Preface to the special issue on Coordination Models and Languages (Coordination 2010)

This issue of Science of Computer Programming is devoted to papers selected from the 12th International Conference on Coordination Models and Languages (Coordination 2010), which took place as a part of the federated conferences on Distributed Computing Techniques (DisCoTec’10), held in Amsterdam, The Netherlands, 7–9 June 2010. Coordination focuses on software technologies for collaboration and coordination in concurrent, distributed, and socio-technical systems. A distinctive feature of Coordination is the emphasis on high level abstractions capturing interaction patterns at all levels of a system and extending into the realm of the end-user and social domain. It is an exciting time for Coordination, with the emergence of new and important technologies such as wireless sensor networks, cloud computing, and multicore processors, along with the increasing prevalence of software in society via the multitude of mobile networked devices. The best papers of the conference were selected by the programming committee after the conference. Extended versions of these papers were subjected to additional rounds of anonymous peer reviews. The revised versions are included in this special issue, covering topics including session types, service orchestration in nomadic networks, flexible and efficient service provisioning in wireless sensor networks, type system support for object-oriented languages, and behavioural contracts. Multi-party session types provide a means for rigorously specifying interaction protocols for multiple distributed participants, thereby allowing the static verification of compliance of the corresponding distributed programs. In Efficient sessions, K.C. Sivaramakrishnan, Mohammad Qudeisat, Lukasz Ziarek, Karthik Nagaraj, and Patrick Eugster observe that explicit control flow information manifested by multi-party session types opens intriguing avenues for performance improvements. They present a Java-based session type-guided performance enhancement framework for distributed object interaction. An experimental evaluation in the context of Emulab and Amazon’s Elastic Compute Cloud (EC2) illustrates the benefits of their approach. Nomadic or mobile ad hoc networks make service orchestration challenging due to the high volatility of connections – temporary network failures – between services residing on mobile devices. As network failures are considered the rule rather than the exception in this setting, failure handling must be a core element of applicable programming languages and coordination models. NOW: Orchestrating services in a nomadic network using a dedicated workflow language by Eline Philips, Ragnhild VanDer Straeten, and Viviane Jonckers applies this idea to aworkflow language built on top of an ambient-oriented programming language, thereby adding this extra layer of abstraction to assist programmers in developing applications for nomadic networks. The proposed workflow language, NOW, has support for high level workflow abstractions for control flow, rich network and service failure detection, failure handling through compensating actions, and dynamic data flow between the services in the environment. Wireless sensor networks (WSNs) are difficult to program and use due to energy constraints and high connectivity dynamics. Software applications must also be coordinated in terms of resource utilization and adaptation to a dynamic environment. In Adaptive service provisioning for enhanced energy efficiency and flexibility in wireless sensor networks, ChienLiang Fok, Gruia-Catalin Roman, and Chenyang Lu present Adaptive Servilla, a middleware that provides adaptive service provisioning capabilities for coordinating the resources used by WSN applications. The paper demonstrates how adaptive service provisioning enables WSN applications to be more energy efficient while being better able to adapt to the changing availability of network resources. This is achieved through novel service binding strategies that automatically adapt application behaviour when opportunities for energy savings surface, and switch providers in response to changes in the network topology. Adaptive Servillawas implemented on TinyOS and evaluated using the TelosB and Imote2WSNplatforms. Adaptive Servilla is evaluated empirically and its applicability is demonstrated with two e-health applications. Two developments in object-oriented programming over recent years are traits, which increase the flexibility of composing classes by offering fine-grained units of behaviour, and ownership types, which impose hierarchical structure on the run-time object heap. Combining traits with boxes and ownership types in a Java-like setting, by Lorenzo Bettini, Ferruccio