Using Application Server To Support Online Evolution

The online evolution of application depends highly on its runtime environment. This paper addresses how to support applications that execute on application servers that compose of component containers and common services. From the requirement’s viewpoint, evolution of software can be divided into four categories: evolution that does not alter requirements, evolution that alters functional requirements, evolution that alters local constrain requirements, and evolution that alters global constrain requirements. All changes at the requirements level can be mapped to changes at the implementation level. Using our approach, implementation level entities, components and interceptors, are responsible for online evolution. Evolution includes adding, removing, updating, and reconfiguring the entities. One key to our approach is to carefully distinguish states of component and interceptor, e.g., ready, active, executing and evolving. A well-designed architecture and feasible mechanisms for runtime instance loading are also keys to the solution. Based on this approach, an application server prototype, named PKUAS, has been implemented and is introduced in the end.

[1]  Sheng Liang,et al.  Dynamic class loading in the Java virtual machine , 1998, OOPSLA '98.

[2]  Pamela Zave Requirements for evolving systems: a telecommunications perspective , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[3]  Jens Palsberg,et al.  Evolution of object behavior using context relations , 1996, SIGSOFT '96.

[4]  Siobhán Clarke,et al.  Advanced Separation of Concerns , 2001, ECOOP Workshops.

[5]  Colin Atkinson,et al.  Dimensions of Component Based Development , 1999, ECOOP Workshops.

[6]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[7]  Michael Jackson,et al.  Distributed Feature Composition: A Virtual Architecture for Telecommunications Services , 1998, IEEE Trans. Software Eng..

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[9]  Lui Sha,et al.  Evolving dependable real-time systems , 1996, 1996 IEEE Aerospace Applications Conference. Proceedings.

[10]  Hong Mei,et al.  Reuse-based software production technology , 2007, Science in China Series F Information Sciences.

[11]  Yow-Jian Lin,et al.  A feature-interaction benchmark for IN and beyond , 1993, IEEE Communications Magazine.

[12]  Wouter Joosen,et al.  Dynamic and selective combination of extensions in component-based applications , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

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

[14]  Pamela Zave Classification of research efforts in requirements engineering , 1997, ACM Comput. Surv..