We put forward an interface and component algebra through which we characterise fundamental structures that support service-oriented design independently of the specific formalisms that may be adopted to provide models for languages or analysis tools. We view services as an interface mechanism that can be superposed over a component infrastructure, what is sometimes referred to as a 'service overlay'. The component algebra consists of networks of processes that interact asynchronously through communication channels. A service interface offers properties to potential clients and requires properties of external services that, at run time, may need to be discovered and bound to the orchestration of the service. We define what it means for an asynchronous relational net to orchestrate a service interface and prove a number of compositionality results that relate the operations of both algebras. One of the major results of the paper is the characterisation of a sub-class of asynchronous relational nets over which we can guarantee that, when binding, through their interfaces, a client and a supplier service, the composition of the orchestrations of the two services is consistent, i.e., both services can work together as interconnected.
- Asynchronous process networks
- Component algebra
- Interface algebra
- Service-oriented computing
- Temporal logic