Enforcing Architecture and Deployment Constraints of Distributed Component-Based Software

In the component-based software development process, the formalisation of architectural choices makes possible to explicit quality attributes. When dealing with the deployment of such component-based software in dynamic networks, in which disconnections or machine failures can occur, preserving architectural choices becomes difficult to ensure, as current architecture-centric languages and their support mainly focus on steps prior to the deployment one. We present in this paper a family of languages that formalise not only architectural choices but deployment aspects as well, both as constraints. Then, we show how all of these constraints are reified in order to manage the deployment of a component-based software in this context of a dynamic hosting platform. The proposed solution defines an automatic deployment that ensures permanently, at run time, the preservation of architecture and deployment choices, and thus their corresponding quality attributes.

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

[2]  Murali Sitaraman,et al.  Foundations of component-based systems , 2000 .

[3]  Bradley R. Schmerl,et al.  Exploiting architectural design knowledge to support self-repairing systems , 2002, SEKE '02.

[4]  Thierry Coupaye,et al.  An Open Component Model and Its Support in Java , 2004, CBSE.

[5]  Marija Mikic-Rakic,et al.  Architecture-Level Support for Software Component Deployment in Resource Constrained Environments , 2002, Component Deployment.

[6]  Salah Sadou,et al.  Preserving Architectural Choices throughout the Component-based Software Development Process , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[7]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[8]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[9]  Yves Mahéo,et al.  A java middleware platform for resource-aware distributed applications , 2003, Second International Symposium on Parallel and Distributed Computing, 2003. Proceedings..

[10]  Klaus Waldschmidt,et al.  Architecture of Computing Systems - ARCS 2006 , 2006, Lecture Notes in Computer Science.

[11]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[12]  Yves Mahéo,et al.  Constraint-Based Deployment of Distributed Components in a Dynamic Network , 2006, ARCS.

[13]  Bradley R. Schmerl,et al.  Understanding tradeoffs among different architectural modeling approaches , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[14]  Salah Sadou,et al.  Simplifying transformation of software architecture constraints , 2006, SAC '06.

[15]  Jeff Magee,et al.  Self-organising software architectures for distributed systems , 2002, WOSS '02.