Using role-based coordination to achieve software adaptability

Software systems are becoming more open, distributed, pervasive, and connected. In such systems, the relationships between loosely-coupled application elements become non-deterministic. Coordination can be viewed as a way of making such loosely coupled systems more adaptable. In this paper we show how coordination-systems, which are analogous to nervous systems, can be defined independently from the functional systems they regulate. Such coordination-systems are a network of organisers and contracts. We elaborate how contracts can be used to monitor, regulate and configure the interactions between clusters of software entities called roles. Abstract management contracts regulate the flow of control through the roles and provide monitoring interception points. Concrete contracts are domain specific and allow the specification of performance conditions. These contracts bind clusters of roles into self-managed composites - each composite with its own organiser role. The organiser roles can control, create, abrogate and reassign contracts. Adaptive systems are built from a recursive structure of such self-managed composites. A prototype framework has been built from which adaptive applications can be derived. This framework uses association-aspects as a mechanism to implement contracts.

[1]  Elizabeth A. Kendall,et al.  Role model designs and implementations with aspect-oriented programming , 1999, OOPSLA '99.

[2]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[3]  Jun Han,et al.  Ensuring compatible interactions within component-based software systems , 2003, Tenth Asia-Pacific Software Engineering Conference, 2003..

[4]  H. Van Dyke Parunak,et al.  Changing Roles: Dynamic Role Assignment , 2003, J. Object Technol..

[5]  Frantisek Plasil,et al.  Behavior Protocols for Software Components , 2002, IEEE Trans. Software Eng..

[6]  Marian H. Nodine,et al.  A Metamodel for Agents, Roles, and Groups , 2004, AOSE.

[7]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[8]  Stephan Herrmann,et al.  Object Teams: Improving Modularity for Crosscutting Collaborations , 2002, NetObjectDays.

[9]  Daniel M. Yellin,et al.  Protocol specifications and component adaptors , 1997, TOPL.

[10]  Guido Boella,et al.  Bridging Agent Theory and Object Orientation: Importing Social Roles in Object Oriented Languages , 2005, PROMAS.

[11]  Wolfgang Emmerich,et al.  Engineering Distributed Objects , 2000, Lecture Notes in Computer Science.

[12]  Cristina V. Lopes,et al.  Aspect-Oriented Programming , 1997, ECOOP.

[13]  Antonio Brogi,et al.  Dynamically Adapting the Behaviour of Software Components , 2002, COORDINATION.

[14]  Roles Conceptual Abstraction Theory Practical Language Issues , 1996 .

[15]  Kasper Østerbye,et al.  Roles: Conceptual Abstraction Theory and Practical Language Issues , 1996, Theory and Practice of Object Systems.

[16]  M. Jackson What do you mean? , 1989, Geriatric nursing.

[17]  M. Wooldridge,et al.  Organisational Abstractions for the Analysis and Design of Multi-Agent Systems , 2000 .

[18]  Yuanfang Cai,et al.  Non-modularity in aspect-oriented languages: integration as a crosscutting concern for AspectJ , 2002, AOSD '02.

[19]  Michel Wermelinger,et al.  Separation of Core Concerns: Computation, Coordination, and Configuration , 2001 .

[20]  Franco Zambonelli,et al.  Developing multiagent systems: The Gaia methodology , 2003, TSEM.

[21]  Jun Han,et al.  Operational management contracts for adaptive software organisation , 2005, 2005 Australian Software Engineering Conference.

[22]  W. Siffin,et al.  Bureaucracy , 1971 .

[23]  Frank E. X. Dance,et al.  What Do You Mean , 1987 .

[24]  Marlon Dumas,et al.  Service interaction patterns : towards a reference framework for service-based business process interconnection , 2005 .

[25]  Naoyasu Ubayashi,et al.  Association aspects , 2004, AOSD '04.

[26]  Michel Wermelinger,et al.  Patterns for Coordination , 2000, COORDINATION.

[27]  Marlon Dumas,et al.  Service Interaction Patterns , 2005, Business Process Management.

[28]  Alan Colman,et al.  The implementation of message synchronisation, queuing and allocation in the ROAD framework , 2006 .

[29]  Alan Colman,et al.  An organisational approach to building adaptive service-oriented systems , 2005 .

[30]  Doo-Hwan Bae,et al.  An enhanced role model for alleviating the role‐binding anomaly , 2002, Softw. Pract. Exp..

[31]  Dirk Riehle,et al.  Pattern Languages of Program Design 3 , 1997 .

[32]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[33]  Jun Han,et al.  Using Association Aspects to Implement Organisational Contracts , 2006, Electron. Notes Theor. Comput. Sci..

[34]  Leon Sterling,et al.  ROADMAP: extending the gaia methodology for complex open systems , 2002, AAMAS '02.

[35]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[36]  Eric Horvitz,et al.  Principles of mixed-initiative user interfaces , 1999, CHI '99.

[37]  Philippe Collet,et al.  A contracting system for hierarchical components , 2005, CBSE'05.

[38]  F. Arbab What Do You Mean , Coordination ? , 1998 .

[39]  José Luiz Fiadeiro,et al.  Separating computation, coordination and configuration , 2002, J. Softw. Maintenance Res. Pract..

[40]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[41]  Viktor Mikhaĭlovich Glushkov,et al.  An Introduction to Cybernetics , 1957, The Mathematical Gazette.

[42]  Jun Han,et al.  Organizational roles and players , 2005 .

[43]  Jun Han,et al.  Organizational Abstractions for Adaptive Systems , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.