A Framework for Ensuring and Improving Dependability in Highly Distributed Systems

A distributed software system’s deployment architecture can have a significant impact on the system’s dependability. Dependability is a function of various system parameters, such as network bandwidth, frequencies of software component interactions, power usage, and so on. Recent studies have shown that the quality of deployment architectures can be improved significantly via active system monitoring, efficient estimation of the improved deployment architecture, and system redeployment. However, the lack of the appropriate tools for monitoring, analyzing, and effecting redeployment at the architectural level makes improving a system’s deployment architecture a very challenging problem. To cope with these challenges, developers typically resort to ad hoc solutions that decrease the potential for reuse and understandability. In this paper, we first present an extensible framework that guides the design and development of solutions for this type of problem, enables the extension and reuse of the solutions, and facilitates autonomic analysis and redeployment of a system’s deployment architecture. We then discuss a suite of extensible and integrated tools that help developers in realizing the framework.

[1]  Galen C. Hunt,et al.  The Coign automatic distributed partitioning system , 1999, OSDI '99.

[2]  Marija Mikic-Rakic,et al.  Support for disconnected operation via architectural self-reconfiguration , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[3]  Tad Hogg,et al.  Spawn: A Distributed Computational Economy , 1992, IEEE Trans. Software Eng..

[4]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

[5]  Chris J. Walter,et al.  The MAFT Architecture for Distributed Fault Tolerance , 1988, IEEE Trans. Computers.

[6]  Marija Mikic-Rakic,et al.  A Decentralized Redeployment Algorithm for Improving the Availability of Distributed Systems , 2005, Component Deployment.

[7]  Vijay Karamcheti,et al.  Constrained component deployment in wide-area networks using AI planning techniques , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[8]  Sam Malek,et al.  Improving Availability in Large, Distributed Component-Based Systems Via Redeployment , 2005, Component Deployment.

[9]  Burkhard Stiller,et al.  Autonomic service deployment in networks , 2003, IBM Syst. J..

[10]  Marija Mikic-Rakic,et al.  Adaptable Architectural Middleware for Programming-in-the-Small-and-Many , 2003, Middleware.

[11]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[12]  Bradley R. Schmerl,et al.  Increasing System Dependability through Architecture-Based Self-Repair , 2002, WADS.

[13]  Marija Mikic-Rakic,et al.  Increasing the confidence in off-the-shelf components: a software connector-based approach , 2001, SSR '01.

[14]  Steven A. Demurjian,et al.  A Binary Integer Programming Model for Optimal Object Distribution , 1998, OPODIS.

[15]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[16]  Richard S. Hall,et al.  A cooperative approach to support software deployment using the Software Dock , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[17]  Sam Malek,et al.  A Tailorable Environment for Assessing the Quality of Deployment Architectures in Highly Distributed Settings , 2004, Component Deployment.

[18]  Richard S. Hall,et al.  A Characterization Framework for Software Deployment Technologies , 1998 .