An Open Component Model and Its Support in Java

  • Eric Bruneton
  • Thierry Coupaye
  • Matthieu Leclercq
  • Vivien Quema
  • Jean-Bernard Stefani
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3054)

Abstract

This paper presents Fractal, a hierarchical and reflective component model with sharing. Components in this model can be endowed with arbitrary reflective capabilities, from black-boxes to components that allow a fine-grained manipulation of their internal structure. The paper describes Julia, a Java implementation of the model, a small but efficient run-time framework, which relies on a combination of interceptors and mixins for the programming of reflective features of components. The paper presents a qualitative and quantitative evaluation of this implementation, showing that component-based programming in Fractal can be made very efficient.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aldrich, J., Chambers, C., Notkin, D.: Architectural Reasoning in ArchJava. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 334. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Aldrich, J., Sazawal, V., Chambers, C., Notkin, D.: Language Support for Connector Abstractions. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)Google Scholar
  3. 3.
    Ancona, D., Lagorio, G., Zucca, E.: A Smooth Extension of Java with Mixins. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, Springer, Heidelberg (2000)CrossRefGoogle Scholar
  4. 4.
    Bellissard, L., de Palma, N., Freyssinet, A., Herrmann, M., Lacourte, S.: An Agent Plateform for Reliable Asynchronous Distributed Programming. In: Symposium on Reliable Distributed Systems (SRDS 1999), Lausanne, Switzerland (October 1999)Google Scholar
  5. 5.
    Bergmans, L., Aksit, M.: Composing Crosscutting Concerns Using Composition Filters. Communications of the ACM 44(10) (2001)Google Scholar
  6. 6.
    Bruneton, E., Coupaye, T., Stefani, J.B.: The Fractal Component Model. Technical report, Specification v2, ObjectWeb Consortium (2003)Google Scholar
  7. 7.
    Clarke, M., Blair, G., Coulson, G., Parlavantzas, N.: An Efficient Component Model for the Construction of Adaptive Middleware. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, p. 160. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  8. 8.
    David, P., Ledoux, T.: Towards a Framework for Self-adaptive Component-Based Applications. In: Stefani, J.-B., Demeure, I., Hagimont, D. (eds.) DAIS 2003. LNCS, vol. 2893, pp. 1–14. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    Duclos, F., Estublier, J., Morat, P.: Describing and Using Non Functional Aspects in Component Based Applications. In: AOSD 2002 (2002)Google Scholar
  10. 10.
    Dumant, B., Dang Tran, F., Horn, F., Stefani, J.B.: Jonathan: an open distributed platform in Java. Distributed Systems Engineering Journal 6 (1999)Google Scholar
  11. 11.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 327. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  12. 12.
    Leavens, G., Sitaraman, M. (eds.): Foundations of Component-Based Systems. Cambridge University Press, Cambridge (2000)MATHGoogle Scholar
  13. 13.
    McDirmid, S., Flatt, Hsieh, W.C.: Jiazzi: New-age components for oldfashioned Java. In: Proceedings OOPSLA 2001, ACM Press, New York (2001)Google Scholar
  14. 14.
    Medvidovic, N., Taylor, R.N.: A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Trans. on Soft. Eng. 26(1) (2000)Google Scholar
  15. 15.
    Outhred, G., Potter, J.: A Model for Component Composition with Sharing. In: Proceedings ECOOP Workshop WCOP 1998 (1998)Google Scholar
  16. 16.
    Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: JAC: A Flexible Solution for Aspect-Oriented Programming in Java. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, p. 1. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  17. 17.
    Pichler, R., Ostermann, K., Mezini, M.: On Aspectualizing Component Models. Software Practice and Experience (2003)Google Scholar
  18. 18.
    Popovici, A., Alonso, G., Gross, T.: Just in time aspects: Efficient dynamic weaving for Java. In: AOSD 2003 (2003)Google Scholar
  19. 19.
    Popovici, A., Alonso, G., Gross, T.: Spontaneous Container Services. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)Google Scholar
  20. 20.
    Prochazka, M.: Jironde: A Flexible Framework for Making Components Transactional. In: Stefani, J.-B., Demeure, I., Hagimont, D. (eds.) DAIS 2003. LNCS, vol. 2893, pp. 98–109. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  21. 21.
    Rivierre, N., Coupaye, T.: Observing component behaviors with temporal logic. In: 8th ECOOP Workshop on Correctness of Model-Based Software Composition, CMC 2003 (2003)Google Scholar
  22. 22.
    Szyperski, C.: Component Software, 2nd edn. Addison-Wesley, Reading (2002)Google Scholar
  23. 23.
    ASM: A Java Byte-Code Manipulation Framework, Objectweb (2002), http://www.objectweb.org/asm/
  24. 24.
    Java Message Service Specification Final Release 1.1, Mars, Sun Microsystems (2002), http://java.sun.com/products/jms/docs.html
  25. 25.
    JORAM: Java Open Reliable Asynchronous Messaging, Objectweb (2002), http://www.objectweb.org/joram/

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Eric Bruneton
    • 1
  • Thierry Coupaye
    • 1
  • Matthieu Leclercq
    • 2
  • Vivien Quema
    • 2
  • Jean-Bernard Stefani
    • 2
  1. 1.France Telecom R&D 
  2. 2.INRIA Rhône-Alpes 

Personalised recommendations