Runtime software architecture based on reflective middleware

There exists a consensus that software architecture (SA) plays a central role in software development and also plays an important role in the lifecycle phases after software delivery. Particularly, SA can be used to reduce the great difficulty and cost of software maintenance and evolution. In this paper, runtime software architecture (RSA) based on reflective middleware is proposed to support architecture-based software maintenance and evolution. In this approach, the actual states and behaviors of the runtime system can be observed and manipulated in a consistent and understandable way through its architectural view. Being an accurate, up-to-date, semantic and operable view of SA, RSA looks components and connectors as “white-box” entities to accurately and thoroughly describe the runtime system, extends traditional architecture description languages to formally describe itself and naturally inherit plentiful semantics in traditional views of SA, and utilizes reflective middleware to observe and manipulate the runtime system. In order to demonstrate the feasibility of this approach, a reflective J2EE application server, called PKUAS, is implemented to observe and manipulate the components, connectors and constraints in the runtime system. Finally, the performance evaluation proves that making RSA explicit and operable at runtime has little effect on the runtime system.

[1]  Gaurav S. Sukhatme,et al.  Robots: Intelligence, Versatility, Adaptivity , 2002 .

[2]  Hong Mei,et al.  Using Application Server To Support Online Evolution , 2005 .

[3]  Rajiv D. Banker,et al.  Software complexity and maintenance costs , 1993, CACM.

[4]  Carlos O'Ryan,et al.  The Design and Performance of a Pluggable Protocols Framework for Real-Time Distributed Object Computing Middleware , 2000, Middleware.

[5]  David Garlan,et al.  Using Gauges for Architecture-Based Monitoring and Adaptation , 2001 .

[6]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

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

[8]  Benjamin J. Shannon,et al.  Java 2 platform enterprise edition specification , 2001 .

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

[10]  Pattie Maes Concepts and experiments in computational reflection , 1987, OOPSLA 1987.

[11]  Meir M. Lehman,et al.  On understanding laws, evolution, and conservation in the large-program life cycle , 1984, J. Syst. Softw..

[12]  Gang Huang,et al.  A Systematic Approach to Composing Heterogeneous Components , 2003 .

[13]  Feng Chen,et al.  ABC/ADL: An ADL Supporting Component Composition , 2002, ICFEM.

[14]  Microsystems Sun,et al.  Enterprise JavaBeans^ Specification Version 2.1 , 2002 .

[15]  Gordon S. Blair,et al.  The Design and Implementation of Open ORB 2 , 2001, IEEE Distributed Syst. Online.

[16]  Walter Cazzola Communication-Oriented Reflection: a Way to Open Up the RMI Mechanism , 2000 .

[17]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[18]  Reinder J. Bril,et al.  Maintaining a legacy: towards support at the architectural level , 2000 .

[19]  Thomas Ledoux,et al.  OpenCorba: A Reflektive Open Broker , 1999, Reflection.

[20]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[21]  Fabio Kon,et al.  Monitoring, Security, and Dynamic Configuration with the dynamicTAO Reflective ORB , 2000, Middleware.

[22]  E. Burton Swanson,et al.  The dimensions of maintenance , 1976, ICSE '76.

[23]  Feng Chen,et al.  An application server to support online evolution , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[24]  Alexander L. Wolf,et al.  Joint Proceedings of the Second International Software Architecture Workshop (ISAW-2) and International Workshop on Multiple Perspectives in Software Development (Viewpoints '96) on SIGSOFT '96 workshops, ISAW '96, San Francisco, California, USA , 1996, ISAW/Viewpoints.

[25]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[26]  Hong Mei,et al.  A complementary approach to requirements engineering—software architecture orientation , 2000, SOEN.

[27]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[28]  Walter Cazzola,et al.  Architectural Reflection: Bridging the Gap Between a Running System and its Architectural Specification , 2008 .

[29]  Michael W. Godfrey,et al.  The build-time software architecture view , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

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

[31]  David S. Rosenblum,et al.  Supporting architectural concerns in component interoperability standards , 2000, IEE Proc. Softw..

[32]  Nenad Medvidovic ADLs and dynamic architecture changes , 1996, ISAW '96.

[33]  Arie van Deursen Software architecture recovery and modelling: [WCRE 2001 discussion forum report] , 2002 .

[34]  Jichuan Chang,et al.  Software component composition based on ADL and Middleware , 2007, Science in China Series : Information Sciences.

[35]  Geoff Coulson,et al.  What is Reflective Middleware , 2001 .