Coordination Models and Languages

A new class of models, formalisms and mechanisms has recently evolved for describing concurrent and distributed computations based on the concept of ``coordination''''. The purpose of a coordination model and associated language is to provide a means of integrating a number of possibly heterogeneous components together, by interfacing with each component in such a way that the collective set forms a single application that can execute on and take advantage of parallel and distributed systems. In this chapter we initially define and present in sufficient detail the fundamental concepts of what constitutes a coordination model or language. We then go on to classify these models and languages as either ``data-driven'''' or ``control-driven'''' (also called ``process-'''' or ``task-oriented''''). Next, the main existing coordination models and languages are described in sufficient detail to let the reader appreciate their features and put them into perspective with respect to each other. The chapter ends with a discussion comparing the various models and some conclusions.

[1]  Farhad Arbab,et al.  VISIFOLD: A Visual Environment for a Coordination Language , 1996, COORDINATION.

[2]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[3]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[4]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[5]  Robert Frank,et al.  ALWAN: A Skeleton Programming Language , 1996, COORDINATION.

[6]  Antonio Brogi,et al.  The concurrent language, Shared Prolog , 1991, TOPL.

[7]  Charles C. Weems,et al.  Linguistic support for heterogeneous parallel processing: a survey and an approach , 1994, Proceedings Heterogeneous Computing Workshop.

[8]  C. Hankin,et al.  Coordination programming: mechanisms, models and semantics , 1996 .

[9]  Fabio Vitali,et al.  Weaving the Web Using Coordination , 1996, COORDINATION.

[10]  James M. Purtilo,et al.  Configuration-level programming of distributed applications using implicit invocation , 1994, Proceedings of TENCON'94 - 1994 IEEE Region 10's 9th Annual International Conference on: 'Frontiers of Computer Technology'.

[11]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[12]  Marc Bourgois,et al.  Concurrency and Communication: Choices in Implementing the Coordination Language LO , 1993, ECOOP Workshop.

[13]  Farhad Arbab,et al.  The IWIM Model for Coordination of Concurrent Activities , 1996, COORDINATION.

[14]  Marco Vanneschi,et al.  A methodology for the development and the support of massively parallel programs , 1992, Future Gener. Comput. Syst..

[15]  Anthony Finkelstein,et al.  A constructive approach to the design of distributed systems , 1990, Proceedings.,10th International Conference on Distributed Computing Systems.

[16]  Nicholas Carriero,et al.  Linda and Friends , 1986, Computer.

[17]  Mario Banville SONIA: An Adaptation of LINDA for Coordination of Activities in Organisations , 1996, COORDINATION.

[18]  Matthew Haines,et al.  Opusc A Coordination Language for Multidisciplinary Applications , 1997 .

[19]  Gordon S. Blair,et al.  A Model for Active Object Coordination and for Distributed Multimedia Applications , 1994, ECOOP Workshop.

[20]  Francesco Tisato,et al.  Cooperative systems configuration in CSDL , 1994, 14th International Conference on Distributed Computing Systems.

[21]  Francesco Tisato,et al.  Development of a collaborative application in CSDL , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[22]  Farhad Arbab,et al.  Control-Based Coordination of Human and Other Activities in Cooperative Information Systems , 1997, COORDINATION.

[23]  Ian T. Foster,et al.  Compositional parallel programming languages , 1996, TOPL.

[24]  Jeannette M. Wing,et al.  A language for distributed applications , 1990, Proceedings. 1990 International Conference on Computer Languages.

[25]  Daniel Le Métayer,et al.  Gamma and the chemical reaction model: ten years after , 1996 .

[26]  Nicholas Carriero,et al.  Bauhaus Linda , 1994, ECOOP Workshop.

[27]  Béat Hirsbrunner,et al.  CoLa: a coordination language for massive parallelism , 1994, PODC '94.

[28]  G. S. Blair,et al.  A Model for Active Object Coordination and i ts Use for Distributed Mult imedia Applications , 1994 .

[29]  Naftaly H. Minsky,et al.  Law-Governed Linda as a Coordination Model , 1994, ECOOP Workshop.

[30]  Roland Mittermeir,et al.  Language Features for the Interconnection of Software Components , 1996, Adv. Comput..

[31]  D. Corkill Blackboard Systems , 1991 .

[32]  Barr and Feigenbaum Edward A. Avron,et al.  The Handbook of Artificial Intelligence , 1981 .

[33]  Munehiro Fukuda,et al.  Intra- and Inter-Object Coordination with MESSENGERS , 1996, COORDINATION.

[34]  Farhad Arbab,et al.  Control-Driven Coordination Programming in Shared Dataspace , 1997, PaCT.

[35]  Gruia-Catalin Roman,et al.  Mixed Programming Mataphors in a Shared Dataspace Model of Concurrency , 1990, IEEE Trans. Software Eng..

[36]  Gert Florijn,et al.  ARIADNE and HOPLa: Flexible Coordination of Collaborative Processes , 1996, COORDINATION.

[37]  Jan A. Bergstra,et al.  The TOOLBUS Coordination Architecture , 1996, COORDINATION.

[38]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[39]  George Horatiu Botorog,et al.  Skil: an imperative language with algorithmic skeletons for efficient distributed programming , 1996, Proceedings of 5th IEEE International Symposium on High Performance Distributed Computing.

[40]  Michael D. Anderson,et al.  The Programmers' Playground: I/O Abstraction for User-Configurable Distributed Applications , 1995, IEEE Trans. Software Eng..

[41]  James M. Purtilo,et al.  The POLYLITH software bus , 1994, TOPL.

[42]  A. A. Holzbacher A Software Environment for Concurrent Coordinated Programming , 1996, COORDINATION.

[43]  Naranker Dulay,et al.  Structuring parallel and distributed programs , 1993, Softw. Eng. J..

[44]  Farhad Arbab,et al.  Coordination of systems with real-time properties in manifold , 1996, Proceedings of 20th International Computer Software and Applications Conference: COMPSAC '96.

[45]  Ian Sommerville,et al.  PCL: a language for modelling evolving system architectures , 1996, Softw. Eng. J..

[46]  Gul A. Agha,et al.  A Language Framework for Multi-Object Coordination , 1993, ECOOP.

[47]  Michael D. Rice,et al.  A Formal Model for Module Interconnection Languages , 1994, IEEE Trans. Software Eng..

[48]  Robert Tolksdorf Coordinating Services in Open Distributed Systems with LAURA , 1996, COORDINATION.

[49]  Jean-Marc Andreoli,et al.  Rule-Based Object Coordination , 1994, ECOOP Workshop.

[50]  Pamela Zave,et al.  A compositional approach to multiparadigm programming , 1989, IEEE Software.

[51]  Paolo Ciancarini,et al.  Jada - Coordination and Communication for Java Agents , 1996, Mobile Object Systems.

[52]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[53]  Antony I. T. Rowstron,et al.  BONITA: a set of tuple space primitives for distributed coordination , 1997, Proceedings of the Thirtieth Hawaii International Conference on System Sciences.

[54]  David Gelernter,et al.  Supercomputing out of recycled garbage: preliminary experience with Piranha , 1992, ICS '92.

[55]  Farhad Arbab,et al.  Reusable coordinator modules for massively concurrent applications , 1996, Softw. Pract. Exp..

[56]  Gul A. Agha,et al.  Abstracting Interactions Based on Message Sets , 1994, ECOOP Workshop.

[57]  Gul A. Agha,et al.  RTsynchronizer: language support for real-time specifications in distributed systems , 1995, Workshop on Languages, Compilers, & Tools for Real-Time Systems.

[58]  Yike Guo,et al.  Functional Skeletons for Parallel Coordination , 1995, Euro-Par.

[59]  Farhad Arbab,et al.  An overview of manifold and its implementation , 1993, Concurr. Pract. Exp..

[60]  Martin Rem,et al.  Associons: A Program Notation with Tuples Instead of Variables , 1981, TOPL.

[61]  Oscar Nierstrasz,et al.  Object-Based Models and Languages for Concurrent Systems , 1994, Lecture Notes in Computer Science.

[62]  Kevin Crowston,et al.  The interdisciplinary study of coordination , 1994, CSUR.

[63]  Paolo Ciancarini,et al.  Enhancing Coordination and Modularity Mechanisms for a Language with Objects-as-Multisets , 1996, COORDINATION.

[64]  Paolo Ciancarini,et al.  The ShaPE of ShaDe: a Coordination System , 1996 .

[65]  Chung-Kwong Yuen,et al.  Distributed Linda Tuplespace Algorithms and Implementations , 1994, CONPAR.

[66]  Thilo Kielmann,et al.  Designing a Coordination Model for Open Systems , 1996, COORDINATION.

[67]  C. T. de Wit Coordination of models , 1982 .

[68]  Mario Barbacci,et al.  Durra: a structure description language for developing distributed applications , 1993, Softw. Eng. J..

[69]  D. B. Skillicorn,et al.  Towards a higher level of abstraction in parallel programming , 1995, Programming Models for Massively Parallel Computers.