Separating Functional and Non-functional Concerns through Coordination: An Application to Reliability

This paper presents a software architecture that ensures system dependability through external coordination. Under this architecture, a distributed system is decomposed into two types of entities, i.e., computational components and coordinators. The system's computational functionalities are carried out by computational components, whereas coordinators are to coordinate these computational components to respect the system's non-functional requirements, such as reliability constraints. Coordination in the system is done implicitly through intercepting, rerouting and suppressing communications between components. Additionally, roles are introduced into the system to bridge the connection between components and coordinators. Roles abstract the non-functional behaviors shared by computational components. Thus role-based coordination is more scalable than individual component-based coordination. Additionally, the dynamicity of components is concealed from the coordinators by the roles. A proof of concept implementation is built on top of the Actor Architecture, a middleware for distributed systems based on the Actor model by G. Aghal et al. (1997), The results show that not only such separation is feasible, but also that the architecture allows us to better control the dependability of the system. Finally, the application developed based on the proposed model is more modularized and consequently more reusable

[1]  Jeffrey J. P. Tsai,et al.  Reconfigurable coordination model for dynamic autonomous real-time systems , 2006, IEEE International Conference on Sensor Networks, Ubiquitous, and Trustworthy Computing (SUTC'06).

[2]  Kevin A. Kwiat,et al.  A Coordination Model for Improving Software System Attack-Tolerance and Survivability in Open Hostile Environments , 2007, Int. J. Distributed Sens. Networks.

[3]  Harlan D. Mills,et al.  Engineering software under statistical quality control , 1990, IEEE Software.

[4]  Nadeem Jamali,et al.  A layered architecture for real-time distributed multi-agent systems , 2005, SELMAS.

[5]  Gul Agha,et al.  Formalizing multimedia QoS constraints using actors , 1997 .

[6]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[7]  Edward Curry,et al.  Extending message-oriented middleware using interception , 2004, ICSE 2004.

[8]  Juan Carlos Cruz,et al.  OpenCoLaS a Coordination Framework for CoLaS Dialects , 2002, COORDINATION.

[9]  George Candea,et al.  Recovery-oriented computing: building multitier dependability , 2004, Computer.

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

[11]  Robert E. Filman,et al.  Inserting ilities by controlling communications , 2002, CACM.

[12]  J. Zinky,et al.  Using QoS-adaptive coordination artifacts to increase scalability of communication in distributed multi-agent systems , 2005, International Conference on Integration of Knowledge Intensive Multi-Agent Systems, 2005..

[13]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[14]  Brian Randell,et al.  Fundamental Concepts of Dependability , 2000 .

[15]  Dionisio de Niz,et al.  Time weaver: a software-through-models framework for embedded real-time systems , 2003 .

[16]  John Keeney,et al.  Chisel: a policy-driven, context-aware, dynamic adaptation framework , 2003, Proceedings POLICY 2003. IEEE 4th International Workshop on Policies for Distributed Systems and Networks.

[17]  Ragunathan Rajkumar,et al.  Time weaver: a software-through-models framework for embedded real-time systems , 2003, LCTES.

[18]  Bedir Tekinerdogan,et al.  The Six concerns for Separation of Concerns , 2001 .

[19]  Priya Narasimhan,et al.  Using Interceptors to Enhance CORBA , 1999, Computer.