How to Implement Software Connectors? A Reusable, Abstract and Adaptable Connector

In recent software developments, applications are made up of a collection of reusable software entities (components) and mechanisms that permit their interaction (connectors). These latter mechanisms have many forms. On the one hand, industrial approaches use simple connectors that are mainly point-to-point connections.On the other hand, academic approaches, like Architecture Description Languages (ADL), recognize complex connectors as first class design entities.However, these concepts are restricted to the architectural level since they have almost no implementation. The current application developments use simple connectors, and high level specifications are under exploited. In this article, we propose a means to fill the gap between connector specification and implementation. For a better reuse of design effort, and to avoid using only simple connectors when realizing applications, we propose to define connectors as complex communication and coordination abstractions and to implement them as a family of generators. We illustrate the development and use of such generators through a full example.

[1]  Walter Mann,et al.  Correction to "Specification and Analysis of System Architecture Using Rapide" , 1995, IEEE Trans. Software Eng..

[2]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[3]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[4]  Stéphane Ducasse,et al.  Executable connectors: towards reusable design elements , 1997, ESEC '97/FSE-5.

[5]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[6]  David Garlan,et al.  A compositional approach for constructing connectors , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[7]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[8]  Mary Shaw Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status , 1993, ICSE Workshop on Studies of Software Design.

[9]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .

[10]  George Coulouris,et al.  Distributed systems (3rd ed.): concepts and design , 2000 .

[11]  David Notkin,et al.  Language Support for Connector Abstractions , 2003, ECOOP.

[12]  Mary Shaw,et al.  Abstractions and implementations for architectural connections , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[13]  Janis R. Putman,et al.  Architecting with RM-ODP , 2000 .