next up previous
Next: References Up: On the Composition and Previous: 2.7 Example

3 Comparison

In the last few years several proposals related to the specification of software architectures have been presented. However, most of them are not formally based, which prevent any kind of analysis of the systems so specified. All these proposals are compositional, in the sense that they consider a software system as a composition of several more elemental units. However, they differ in which are considered the elemental units for the composition of software systems. Some of them, like Darwin [MK96], consider that systems are built from components, while others, like Wright [AG94b] or UniCon [S+95], also includes connectors as first-order elements of the notation. In [AG94b], this distinction leads to the use of ports for components interfaces, and roles for connectors. This causes an asymmetric interpretation of compatibility which would lead to different relations of inheritance for ports and roles.

Besides, the distinction of components and connectors at language level does not scale very well. If we think of composite structures, formed by several components and connectors, the distinction vanishes, as usually these structures share characteristics of components (computation, data storage) and connectors (they serve to interconnect other components). The composition of components and connectors would lead to hybrid composites with free ports and roles which could not be classified either as components or as connectors. In order to maintain regularity and simplicity, we do not distinguish at language level between these categories, and all system components are specified the same, as a set of roles which represent their interface.

If we focus on formal methods, several papers [AG92,AG94a,IW95] have already proposed the use of CSP, Z or the Chemical Abstract Machine for architecture specification. In [MEK95] the $\pi$-calculus is used for defining the semantics of Darwin, where direct expression of mobility in the calculus is used to endow this language with lazy instantiation and direct dynamic instantiation mechanisms. However, the modeling of the interactions among components is not considered, and type checking is reduced to name equivalence. Aspects of type inheritance or component specialization are not considered either.

With regard to compatibility, our proposal follows the ideas developed in [AG94a], which uses CSP to determine compatibility of ports and roles. However, as it is stated in [MEK95], CCS or CSP do not seem appropriate for the description of evolving or dynamic structures. Our proposal tries to solve this problem by using the $\pi$-calculus. Direct expression of mobility in the calculus makes easier the architectural specifications for dynamic systems. Furthermore, [AG94a] does not address inheritance or specialization.

In [YS97], finite-state diagrams are used for the specification of what they call protocols , and relations of compatibility and protocol subtyping are also provided. Our approach differs from theirs in several relevant characteristics. Some of them derive from the richer expressiveness of process algebras with respect to state diagrams, as indicated in [MS95]. First of all, the use of the $\pi$-calculus allows the specification of dynamic systems simply by sending channel names as arguments of messages, while their proposal refers only to static architectures. Second, using the $\pi$-calculus, every message is send or received through a certain channel. Scope rules permit the restriction of channels to a set of processes, resulting in specifications more robust, modular, and also closer to software implementations, while in [YS97] channels are not considered, and every message is sent to a common pool , from which it could be retrieved by any component in the system; this being easily error-prone. Third, the $\pi$-calculus distinguish between global and local choices, allowing us to express scenarios in which a component may decide locally to commit to a certain transition or not (asynchronously), or in which the components involved in a communication globally agree in the commitment. However, their approach only takes into account synchronous global choices.


next up previous
Next: References Up: On the Composition and Previous: 2.7 Example

Carlos Canal, Ernesto Pimentel, and Jose M. Troya
Sept. 2, 1997