A mobile agent approach to dynamic architecture-based software adaptation

Increasingly, software are required to be ready to adapt itself to the changing environment caused by a wide range of maintenance, evolution and operation problems. Furthermore, in large complex distributed systems and continuous running systems, the traditional approaches to bringing about change require that the system be taken offline temporarily, which is often undesirable due to requirements for high availability. To address this new kind of capability, dynamic software adaptation, which refers to software changes in both structure and behavior without bring it down, is proposed.In this paper, we explore an architecture-based mobile agent approach to dynamic software adaptation. Our goal is to automate the software adaptation on the fly on the basis of explicating and reasoning about architectural knowledge about the running system. For that, we introduce the dynamic software architecture, which means the architecture itself can also be introspected and altered at runtime, to guide and control the adaptation. We use the architectural reflection to observe and control the system architecture, while use the architectural style to ensure the consistency and correctness of the architecture reconfiguration. To handle the adaptation of the running system, mobile agents, which is well suited for complex management issues, is employed. Mobile agents carry self-contained mobile code and act upon running components.The usage of meta-architecture and the mobile agents not only forms an adaptation feedback loop onto the running system, it also separates the concerns among the architectural model, the target system and the facilities use for adaptation. It will simplify the developing, deploying and maintaining of the system, while pose a good basis for enabling the reuse of the adaptation facilities.

[1]  Bradley R. Schmerl,et al.  Model-based adaptation for self-healing systems , 2002, WOSS '02.

[2]  Seyed Masoud Sadjadi,et al.  Composing adaptive software , 2004, Computer.

[3]  Richard C. H. Connor,et al.  Exploiting Persistent Linkage in Software Engineering Environments , 1995, Comput. J..

[4]  Jim Dowling,et al.  The K-Component Architecture Meta-model for Self-Adaptive Software , 2001, Reflection.

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

[6]  David Garlan,et al.  Specifying and Analyzing Dynamic Software Architectures , 1998, FASE.

[7]  Tony White,et al.  Mobile agents for network management , 1998, IEEE Communications Surveys & Tutorials.

[8]  Vinny Cahill,et al.  Supporting Unanticipated Dynamic Adaptation of Application Behaviour , 2002, ECOOP.

[9]  Ronald A. Olsson,et al.  An approach to genuine dynamic linking , 1991, Softw. Pract. Exp..

[10]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

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

[12]  Satoshi Matsuoka,et al.  Metalevel Architectures and Separation of Crosscutting Concerns , 2001, Lecture Notes in Computer Science.

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

[14]  Fabio Kon,et al.  Secure Dynamic Reconfiguration of Scalable CORBA Systems with Mobile Agents , 2000, ASA/MA.

[15]  David Notkin,et al.  ArchJava: connecting software architecture to implementation , 2002, ICSE '02.

[16]  Alberto Rodrigues da Silva,et al.  The Agent Pattern for Mobile Agent Systems , 1998, EuroPLoP.

[17]  Klara Nahrstedt,et al.  2K: a distributed operating system for dynamic heterogeneous environments , 2000, Proceedings the Ninth International Symposium on High-Performance Distributed Computing.

[18]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[19]  Francesco Tisato,et al.  Rule-based strategic reflection: observing and modifying behaviour at the architectural level , 1999, 14th IEEE International Conference on Automated Software Engineering.

[20]  James A. Gosling,et al.  The java language environment: a white paper , 1995 .

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

[22]  Rex E. Gantenbein Dynamic binding in strongly typed programming languages , 1991, J. Syst. Softw..

[23]  James M. Purtilo,et al.  Dynamic reconfiguration in distributed systems: adapting software modules for replacement , 1993, [1993] Proceedings. The 13th International Conference on Distributed Computing Systems.

[24]  Gordon S. Blair,et al.  The Design and Implementation of OpenORB v2 , 2001 .