Next: References
Up: On the Composition and
Previous: 2.7 Example
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
-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 -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 -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
-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
-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.
Carlos Canal, Ernesto Pimentel, and Jose M. Troya