Modular construction and composition of distributed software architectures
Mark Astley, Gul Agha · 2002
A complete specification of a distributed software architecture describes two different aspects. First, it decomposes the software into its components and their interconnection. Second, it specifies 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 heterogeniety, availability, and adaptability. Embedding architecture management policies in components and connectors sacrifices modularity. We describe an architecture description language, the Distributed Connection Language (dcl), for specifying distributed software architectures. 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. Specifically, connector policies are implemented by coordinating meta-level customizations over a collection of actors. We describe component and connector abstractions as they are specified in dcl, and illustrate their use by way of several examples.