Towards Efficient Java Virtual Machine Support for Dynamic Deployment of Inter-type Declarations
By: Bashar Gharaibeh, Hridesh Rajan, and J. Morris Chang
Download PaperAbstract
Dynamic deployment is an important feature of an aspect-oriented language design that has many applications, e.g. in runtime monitoring, runtime adaptation to fix bugs or add features to long running applications, runtime update of dynamic policy changes, etc. Many recently proposed language designs support these use cases. In previous work, researchers have demonstrated that the ability to support unanticipated deployment enables simpler and often more efficient implementations. These works have addressed an important subset of aspect-oriented features namely those that can be represented as the pointcut-advice model. In this work, we describe the design, formal semantics, and implementation of our strategy for efficiently supporting dynamic deployment of inter-type declarations, which is another important aspect-oriented feature. Additional contributions of this work are: a detailed real world case study that demonstrates the need for supporting dynamic deployment of inter-type declaration for online update of long running applications, and a prototype based on the Jikes Virtual Machine that supports these features. We evaluate our prototype via a rigorous performance analysis, which shows that flexible, dynamic deployment of inter-type declarations can be efficiently supported in a JVM.
ACM Reference
Gharaibeh, B. et al. 2010. Towards Efficient Java Virtual Machine Support for Dynamic Deployment of Inter-type Declarations. Technical Report #09-23b. Iowa State University, Dept. of Computer Science.
BibTeX Reference
@techreport{gharaibeh2010towards,
title = {Towards Efficient Java Virtual Machine Support for Dynamic Deployment of Inter-type Declarations},
author = {Gharaibeh, Bashar and Rajan, Hridesh and Chang, J Morris},
year = {2010},
month = {March},
institution = {Iowa State University, Dept. of Computer Science},
number = {09-23b},
abstract = {
Dynamic deployment is an important feature of an aspect-oriented language
design that has many applications, e.g. in runtime monitoring, runtime
adaptation to fix bugs or add features to long running applications, runtime
update of dynamic policy changes, etc. Many recently proposed language designs
support these use cases. In previous work, researchers have demonstrated that
the ability to support unanticipated deployment enables simpler and often more
efficient implementations. These works have addressed an important subset of
aspect-oriented features namely those that can be represented as the
pointcut-advice model. In this work, we describe the design, formal semantics,
and implementation of our strategy for efficiently supporting dynamic
deployment of inter-type declarations, which is another important
aspect-oriented feature. Additional contributions of this work are: a detailed
real world case study that demonstrates the need for supporting dynamic
deployment of inter-type declaration for online update of long running
applications, and a prototype based on the Jikes Virtual Machine that supports
these features. We evaluate our prototype via a rigorous performance analysis,
which shows that flexible, dynamic deployment of inter-type declarations can
be efficiently supported in a JVM.
}
}