Darwin is a general purpose structuring tool of use in building complex distributed systems from diverse components and diverse component interaction mechanisms. It is in essence a declarative binding language which can be used to define hierarchic compositions of interconnected components. Distribution is dealt with orthogonally to system structuring. The language allows the specification of both static structures and dynamic structures which evolve during execution. The central abstractions managed by Darwin are components and services. Bindings are formed by manipulating references to services. The paper describes the operational semantics of Darwin in terms of the π-calculus, Milner’s calculus of mobile processes. The correspondence between the treatment of names in the π-calculus and the management of service references in Darwin leads to an elegant and concise π-calculus model of Darwin’s operational semantics. The model has proved useful in arguing the correctness of Darwin implementations and in designing extensions to Darwin and reasoning about their behaviour. The paper discusses the reasons why other formalisms fail to capture elegantly the system structuring concepts on which Darwin is based. 1
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.