CSP as a Coordination Language
The process algebra Communicating Sequential Processes (CSP) offers a way of taming the complexity of concurrent systems by focusing on the interaction behavior of systems and abstracting from synchronization mechanisms and other implementation details. However, the derivation of a system's implementation from its CSP-based model is still a problem and subject to ongoing research. It is, for example, not obvious how to integrate CSP with internal actions of a system, because CSP abstracts from internal actions to a great extent. As a solution, this book presents the use of CSP as a formal coordination language for arbitrary sequential host languages. The benefit of this approach is that CSP can be used not only for the design and verification of concurrent systems but also for their implementation. This book focuses on the theory of a suitable coordination environment. Moreover, the implementation of a CSP-based coordination environment for the target language Java is presented along with a case study of constructing a workflow server as a coordinated concurrent Java program.