Skip to main content

Binary component adaptation

  • Conference paper
  • First Online:
ECOOP’98 — Object-Oriented Programming (ECOOP 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1445))

Included in the following conference series:

Abstract

Binary component adaptation (BCA) allows components to be adapted and evolved in binary form and on-the-fly (during program loading). BCA rewrites component binaries before (or while) they are loaded, requires no source code access and guarantees release-to-release compatibility. That is, an adaptation is guaranteed to be compatible with a new binary release of the component as long as the new release itself is compatible with clients compiled using the earlier release. We describe our implementation of BCA for Java and demonstrate its usefulness by showing how it can solve a number of important integration and evolution problems. Even though our current implementation was designed for easy integration with Sun's JDK 1.1 VM rather than for ultimate speed, the load-time overhead introduced by BCA is small, in the range of one or two seconds. With its flexibility, relatively simple implementation, and low overhead, binary component adaptation could significantly improve the reusability of Java components.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ali-Reza Adl-Tabatabai, Geoff Langdale, Steven Lucco, Robert Wahbe. Efficient and Language-Independent Mobile Programs. PLDI '96 Proceedings, pp. 127–136, Philadelphia, Pennsylvania, May 1996.

    Google Scholar 

  2. Gilad Bracha. The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. Ph.D. Thesis, University of Utah Computer Science Department, March 1992.

    Google Scholar 

  3. Craig Chambers. The Cecil Language—Specification and Rationale. Technical Report 93-03-05, Computer Science Department, University of Washington, Seattle 1993.

    Google Scholar 

  4. Craig Chambers. Predicate Classes. ECOOP '93 Conference Proceedings, Kaiserslautern, Germany, July 1993.

    Google Scholar 

  5. Brad Cox. Object-Oriented Programming: An Evolutionary Approach. Addison-Wesley, Reading, MA 1986.

    Google Scholar 

  6. Jens Ernst, William Evans, Christopher W. Fraser, Steven Lucco, Todd A. Proebsting. Code Compression. PLDI '97 Proceedings, pp. 358–365, Las Vegas, Nevada, June 15–18, 1997.

    Google Scholar 

  7. M. Franz and T. Kistler. Slim Binaries. Technical Report No. 96-24, Department of Information and Computer Science, University of California, Irvine, June 1996.

    Google Scholar 

  8. Ira R. Forman, Michael H. Conner, Scott H. Danforth, Larry K. Raper. Release-to-Release Binary Compatibility in SOM. Proceedings of OOPSLA '95, ACM SIGPLAN Notices, Volume 30, Number 10, October 1995.

    Google Scholar 

  9. James Gosling, Bill Joy and Guy Steele. The Java Language Specification. Addison-Wesley, 1996.

    Google Scholar 

  10. Susan L. Graham, Steven Lucco, Robert Wahbe. Adaptable Binary Programs. USENIX, Winter 1995, pp. 315–325.

    Google Scholar 

  11. William Harrison and Harold Ossher. Subject-Oriented Programming. OOPSLA '93 Conference Proceedings, Washington DC, October 1993.

    Google Scholar 

  12. Walter L. Hürsch. Maintaining Consistency and Behavior of Object-Oriented Systems during Evolution. Ph.D. Thesis, College of Computer Science of Northeastern University, August 1995.

    Google Scholar 

  13. Chris Horn. Conformance, Genericity, Inheritance and Enhancement. ECOOP '87 Conference Proceedings, pp. 223–233, Paris, France, June 1987. Published as Springer Verlag LNCS 276, Berlin, Germany 1987.

    Google Scholar 

  14. Urs Hölzle. Integrating Independently-Developed Components in Object-Oriented Languages. Proceedings of ECOOP'93, Springer Verlag LNCS 512, 1993.

    Google Scholar 

  15. Ralph Keller and Urs Hölzle. Supporting the Integration and Evolution of Components Through Binary Component Adaptation. Technical Report TRCS97-15, Department of Computer Science, University of California, Santa Barbara, September 1997.

    Google Scholar 

  16. Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification, Addison-Wesley, September 1996.

    Google Scholar 

  17. Kai-Uwe Mätzel and Peter Schnorf. Dynamic Component Adaptation. Ubilab Technical Report 97.6.1, Union Bank of Switzerland, Zürich, Switzerland, June 1997.

    Google Scholar 

  18. Apple Computers. Object-Oriented Programming and the Objective-C Language. http://devworld.apple.com/dev/SWTechPubs/Documents/OPENSTEP/ObjectiveC/objctoc.htm.

    Google Scholar 

  19. William F. Opdyke. Refactoring Object-Oriented Frameworks. Ph.D. Thesis, University of Illinois at Urbana-Champaign, 1992.

    Google Scholar 

  20. Open Systems Foundation. OSF Architecture-Neutral Distribution Format Rationale. Open Systems Foundation, June 1991.

    Google Scholar 

  21. Purtilo J. and Atlee J. Module Reuse by Interface Adaptation. Software Practice and Experience, Vol. 21, No. 6, 1991.

    Google Scholar 

  22. Claus H. Pedersen. Extending ordinary inheritance schemes to include generalization. OOPSLA '89 Conference Proceedings, pp. 407–417, New Orleans, LA.

    Google Scholar 

  23. Jens Palsberg and Michael Schwartzbach. Type substitution for object-oriented programming. ECOOP/OOPSLA '90 Conference Proceedings, pp. 151–160, Ottawa, Canada, October 1990.

    Google Scholar 

  24. David Sandberg. An Alternative to Subclassing. OOPSLA '86 Conference Proceedings, pp. 424–428, Portland, OR, October 1986. Published as SIGPLAN Notices 21(11), November 1986.

    Article  Google Scholar 

  25. Ian Sommerville. Software Engineering. 4th ed., Addison-Wesley, 1992.

    Google Scholar 

  26. Randall B. Smith and David Ungar. A Simple and Unifying Approach to Subjective Objects. Theory and Practice of Object Systems 2(3): 161–178, 1996.

    Article  Google Scholar 

  27. Peter Wegner. Interoperability. ACM Computing Surveys, Vol. 28, No. 1, 1996.

    Google Scholar 

  28. Terry Winograd. Beyond programming languages. Communications of the ACM, 22:7, pages 391–401, July, 1979.

    Article  Google Scholar 

  29. Robert Wahbe, Steven Lucco, Thomas E. Anderson, Susan L. Graham. Efficient Software-Based Fault Isolation. SOSP 1993, pp. 203–216.

    Google Scholar 

  30. Daniel M. Yellin and Robert E. Strom. Protocol Specifications and Component Adaptors. IBM T.J. Watson Research Center. ACM Transactions on Programming Languages and Systems, Vol. 19, No. 2, March 1997, pages 292–333.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Eric Jul

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Keller, R., Hölzle, U. (1998). Binary component adaptation. In: Jul, E. (eds) ECOOP’98 — Object-Oriented Programming. ECOOP 1998. Lecture Notes in Computer Science, vol 1445. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0054097

Download citation

  • DOI: https://doi.org/10.1007/BFb0054097

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64737-9

  • Online ISBN: 978-3-540-69064-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics