Towards Efficient Java Virtual Machine Support for Dynamic Deployment of Inter-type Declarations

By: Bashar Gharaibeh, Hridesh Rajan, and J. Morris Chang

PDF Download Download Paper

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.

ACM Reference

Gharaibeh, B. et al. 2010. Towards Efficient Java Virtual Machine Support for Dynamic Deployment of Inter-type Declarations. Technical Report #09-23b. Department of Computer Science, Iowa State University.

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 = {Department of Computer Science, Iowa State University},
  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.
  }
}