A Channel-based Coordination Model for Components

In this paper we present a coordination model for component-based software systems based on the notion of mobile channels, and describe its implementation in the Java language. Channels allow anonymous, and point-to-point communication among components, while mobility allows dynamic reconfiguration of channel connections in a system. This model supports dynamic distributed systems where components can be mobile. It provides an efficient way of interaction among components. Furthermore, our model provides a clear separation between the computational part and the coordination part of a system, allowing the development and description of the coordination structure of a system to be done in a transparent and exogenous way. Our description of the Java implementation of this coordination model demonstrates that it is self-contained enough for developing component-based systems in object-oriented languages. However, if desired, our model can be used as a basis to extend other models that focus on other aspects of components that are less concerned with composition and coordination issues.

[1]  Nicholas Carriero,et al.  How to write parallel programs , 1990 .

[2]  Oscar Nierstrasz,et al.  Piccola - A Small Composition Language , 1999, ECOOP Workshops.

[3]  Farhad Arbab,et al.  Mobile Channels, Implementation Within and Outside Components , 2002, Formal Methods and Component Interaction @ ICALP.

[4]  Farhad Arbab,et al.  A coordination language for mobile components , 2000, SAC '00.

[5]  Juan Guillen Scholten MoCha, a model for distributed mobile channels , 2004 .

[6]  Farhad Arbab,et al.  MoCha: a middleware based on mobile channels , 2002, Proceedings 26th Annual International Computer Software and Applications.

[7]  Peter Sewell,et al.  Nomadic Pict: language and infrastructure design for mobile agents , 1999, Proceedings. First and Third International Symposium on Agent Systems Applications, and Mobile Agents.

[8]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[9]  Johannes F. Broenink,et al.  Communicating threads for Java , 1999 .

[10]  Farhad Arbab Coordination of Mobile Components , 2001, Electron. Notes Theor. Comput. Sci..

[11]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[12]  Farhad Arbab,et al.  A Logical Interface Description Language for Components , 2000, COORDINATION.

[13]  Gregory R. Andrews,et al.  Paradigms for process interaction in distributed programs , 1991, CSUR.

[14]  Bernhard Rumpe,et al.  UML+ROOM as a standard ADL? , 1999, Proceedings Fifth IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'99) (Cat. No.PR00434).

[15]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[16]  Ken Arnold,et al.  JavaSpaces¿ Principles, Patterns, and Practice , 1999 .

[17]  Farhad Arbab,et al.  Reo: A Channel-based Coordination Model for Component Composition , 2005 .

[18]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[19]  Benjamin C. Pierce,et al.  Pict: a programming language based on the Pi-Calculus , 2000, Proof, Language, and Interaction.

[20]  Nicholas Carriero,et al.  How to write parallel programs - a first course , 1990 .