An application server to support online evolution

Most online evolution of an application depends on its runtime environment. This paper addresses how to support online evolution by an application server, which is considered as a third kind of system software, besides OS and DBMS. From the view of requirements, evolutions of software can be divided into four categories: evolutions that do not alter requirements, evolutions that alter functional requirements, evolutions that alter local constraint requirements, and evolutions that alter global constraint requirements. All changes at the requirement level should be mapped to changes at the implementation level. In our approach implementation level entities, such as components and interceptors are responsible for online evolution. Evolutions in implementation level include adding, removing, updating, and reconfiguring the entities. One of the keys to our approach is to carefully distinguish states of components and interceptors, that is, whether they are in a ready, active, executing or evolving state. 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 our paper.

[1]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

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

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

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

[5]  Jens Palsberg,et al.  Evolution of Object Behavior Using Context Relations , 1998, IEEE Trans. Software Eng..

[6]  Chang Jun CORBA Component Model , 2003 .

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

[8]  J. Steven Perry,et al.  Java Management Extensions , 2002 .

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

[10]  Wouter Joosen,et al.  A Dynamic Customization Model for Distributed Component-Based Applications , 2001, ICDCS 2001.

[11]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[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]  Lui Sha,et al.  Evolving dependable real-time systems , 1996, 1996 IEEE Aerospace Applications Conference. Proceedings.

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

[15]  Yow-Jian Lin,et al.  A Fea ture-In teraction Benchmark for IN and Beyond The intelligent network will accelerate development of new features for customers, but those features must coexist. , 1993 .

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

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

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