Modular Construction and Composition of Distributed Software Architectures

A complete speciication of a distributed software architecture describes two diierent aspects. First, it decomposes the software into its components and their in-terconnection. Second, it speciies the policies that are required to manage an architecture. Such policies are dependent on the nature of the execution environment. They are complicated by requirements such as heteroge-niety, availability, and adaptability. Embedding architecture management policies in components and con-nectors sacriices modularity. We describe an architecture description language, the Distributed Connection Language (dcl), for specifying distributed software ar-chitectures. Components in dcl are concurrent and distributed, and implement application functionality. Connectors specify policies governing component interactions and resource use. Thus connectors may specify load balancing or fault-tolerance policies. We base our approach on the Actor model and a meta-architecture which allows transparent customization of actor behaviors. Speciically, connector policies are implemented by coordinating meta-level customizations over a collection of actors. We describe component and connector abstractions as they are speciied in dcl, and illustrate their use by way of several examples.