Theme: Putting Systems Together

Next: Research Goals
Up: Research brief
Previous: Research brief
Theme: Putting Systems Together
Software techniques have developed enormously over the past 30-40
years, from primitive machine languages to sophisticated programming
languages and tools for system configuration. We are working on the
next great leap, shifting focus from programming-at-the-module level
to programming-at-the-system level. In the former activity we build
programs in terms of procedures and abstract data types using simple
module interconnection as a way to compose modules; in the latter
activity, we build systems in terms of more sophisticated components,
usually entire systems themselves, and connect them with more
sophisticated abstractions for composition.
What makes the construction of composable systems different from
programming?
- We are liberating ourselves from thinking of the
task as merely programming.
We are not just building a program, we
are building a system, where in the most general sense a system has
not just software but hardware components as well.
- Our units
of manipulation are components and connectors. They may be
primitive or composite.
We describe components with interface
specifications; connectors, protocol specifications. Our innovative
claim is that connectors are first-class entities, just as components
are, in a system. Program modules like procedures are just examples
of primitive components. Procedure call is just one example of a
primitive connector between two modules. Our connectors must support
richer interactions than procedure call. We want to support composite
components and connectors whose properties, via their interface and
protocol specifications, are as understandable as their constituents.
- We want to provide ways to talk precisely about common patterns
of structures. This allows us to provide larger abstractions for
system structuring. It also allows us to exploit special properties
of particular composition idioms for analysis, design guidance, and
efficient implementation.
Thu Jun 29 11:17:27 EDT 1995