Coordination of Distributed and Parallel Activities in the IWIM Model

We present an alternative way of designing new as well as using existing coordination models for parallel and distributed environments. This approach is based on a complete symmetry between and decoupling of producers and consumers, as well as a clear distinction between the computation and the coordination/ communication work performed by each process. The novel ideas are: (i) to allow both producer and consumer processes to communicate with each other in a fashion that does not dictate any one of them to have specific knowledge about the rest of the processes involved in a coordinated activity, and (ii) to introduce control or state driven changes (as opposed to the data-driven changes usually employed) to the current state of a computation. Although a direct realisation of this model in terms of a concrete coordination language does exist, we argue that the underlying principles can be applied to other similar models. We demonstrate our point by showing how the functionality of the proposed model can be realised in a general coordination framework, namely the Shared Dataspace one, using as driving force the Linda-based formalism. Our demonstration achieves the following objectives: (i) yields an alternative (control- rather than data-driven) Linda-based coordination framework, and (ii) does it in such a way that the proposed apparatus can be used for other Shared-Dataspace-like coordination formalisms with little modification.

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

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

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

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

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

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

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

[8]  Nicholas Carriero,et al.  A Program Building Tool for Parallel Applications , 1994, Specification of Parallel Algorithms.

[9]  Nicholas Carriero,et al.  Collaborative applications experience with the Bauhaus coordination language , 1997, Proceedings of the Thirtieth Hawaii International Conference on System Sciences.

[10]  Stijn Bijnens,et al.  Sender-Initated and Receiver-Initated Coordination in a Global Object Space , 1994, ECOOP Workshop.

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

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

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

[14]  Daniel Le Métayer,et al.  The GAMMA Model and Its Discipline of Programming , 1990, Sci. Comput. Program..

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

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

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

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

[19]  Henri E. Bal,et al.  Parallel programming using shared objects and broadcasting , 1992, Computer.

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

[21]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[22]  Naftaly H. Minsky,et al.  The Imposition of Protocols Over Open Distributed Systems , 1991, IEEE Trans. Software Eng..