A Formal Approach to the Engineering of Domain-Specific Distributed Systems
This work addresses the engineering of distributed systems for researchers and practitioners, but it is incremental as it reviews and applies existing formalisms.
The paper reviews specification, programming, and verification techniques for domain-specific distributed systems, presenting four languages (Klaim, Cows, Scel, AbC) and applying them to a travel booking scenario.
We review some results regarding specification, programming and verification of different classes of distributed systems which stemmed from the research of the Concurrency and Mobility Group at University of Firenze. More specifically, we examine the distinguishing features of network-aware programming, service-oriented computing, autonomic computing, and collective adaptive systems programming. We then present an overview of four different languages, namely Klaim, Cows, Scel and AbC. For each language, we discuss design choices, present syntax and semantics, show how the different formalisms can be used to model and program a travel booking scenario, and describe programming environments and verification techniques.