Automatic runtime evolution of web services with JAsCo dynamic AOP

Wim Vanderperren and Bart Verheecke

Systems and Software Engineering Lab, Vrije Universiteit Brussel, Belgium

Abstract

This presentation focuses on employing JAsCo dynamic AOP to achieve highly adaptive software that is able to evolve automatically at run-time. JAsCo is a novel aspect-oriented programming language that supports adding, altering and removing aspect compositions at run-time. To keep the overhead of the dynamicness as low as possible, JAsCo introduces a dynamic AOP just-in-time compiler, named Jutta, and exploits the novel Java HotSwap technology in order to insert and remove aspects at run-time. As such, JAsCo is able to outperform other state-of-the-art dynamic AOP approaches while supporting a lot more dynamic features. As a concrete and non-trivial case, the Web Service Management Layer (WSML) implemented in JAsCo, is presented. To enable the development of more flexible and robust applications, the WSML realizes dynamic integration, client-side service management, and support for service criteria to govern the selection, integration and composition of web services at runtime. As such, the application becomes more flexible as it can continuously adapt to the changing business environment and communicate with new services that were not known or available at deployment time. When a service becomes unreachable due to network conditions or service-related problems, the WSML enables switching to other services. This hot-swapping mechanism can take into account specific non-functional application requirements based on selection policies that can change over time. Also, generic functionality, necessary to provide support for multi-partner processes (e.g. to guarantee security, transactions, caching, billing, etc) can reside in the WSML, depending on specific application requirements.