Abstract. There is a real need for clear and sound design speci cations of distributed systems at the architectural level. This is the level of the design which deals with the high-level organisation of computational elements and the interactions between those elements. The paper presents the Darwin notation for specifying this high-level organisation. Darwin is in essence a declarative binding language which can be used to de ne hierarchic compositions of interconnected components. Distribution is dealt with orthogonally to system structuring. The language supports the speci cation of both static structures and dynamic structures which m a y e v olve during execution. The central abstractions managed by Darwin are components and services. Services are the means by which components interact. In addition to its use in specifying the architecture of a distributed system, Darwin has an operational semantics for the elaboration of specications such that they may be used at runtime to direct the construction of the desired system. The paper describes the operational semantics of
Darwin REF is a structural configuration language that allows to specify the architecture of distributed and interacting componentbased systems.
Specifying Distributed Software Architectures
ESEC
Computer Science