Dynamic Code Replacement for Java Applications
Adaptability to the dynamic nature of the computing environments is one of the biggest challenges for software engineering and has become an important feature in today’s modern systems, mobile and pervasive computing. Applications which execute in such environments need to adapt to changing settings they encounter during their active life time. They should be able to react and modify their behavior dynamically in response to changes in their execution environments, without being required to be preprogrammed with software functionality needed for typical adaptations. In this talk we present PROSE, a system that performs controlled, systematic, and efficient changes to running Java applications without requiring them to be shut down. PROSE is a powerful infrastructure that supports software adaptation by extending applications at runtime. It implements adaptation by a novel mechanism based on dynamic bytecode instrumentation that supports method code replacement while an application is running. Modifications take the form of replacement method bodies, and can use both type-based and regular expression patterns to select code for replacement. Changes are composable, and may be reordered or selectively withdrawn at any time.
Moreover, the modifications are expressed as Java classes, providing additional development benefits. PROSE can be used for a wide range of
purposes: program instrumentation and profiling, online debugging and logging, hotfixes and security patches, software adaptation in a number of applications including web servers, and mobile computing.
Furthermore, it provides the infrastructure for a number of industrial and research projects exploring the use of PROSE for assuring application performance, enterprise applications, and software evolution.
Dr. Angela Nicoara is a Senior Research Scientist at Deutsche Telekom R&D Lab USA since 2008. She completed her graduate studies with a PhD from ETH Zurich, Switzerland in 2007 and her undergraduate studies at Politehnica University Timisoara, Romania with a Computer Science degree in 2002. Her research interests are in the areas of services and mobile platforms, adaptive software architectures, virtual machines, middleware for mobile and distributed computing, and distributed systems. Her current research activities include the development of open and programmable mobile platforms (e.g., Android) and novel information technology services to shape the emerging trends in fixed and mobile infrastructure and services sectors. Dr. Nicoara has served as a general chair, industry co-chair, program committee or scientific reviewer member for EuroSys, VMIL, LCN–WNM, MobiCASE, Communications of the ACM.
She had contracts and internships with Google Inc. and WebQuote in California, as well as a German software company Caatoosee.