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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Aldrich, J., Chambers, C., Notkin, D.: Architectural Reasoning in ArchJava. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 334. Springer, Heidelberg (2002)
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)
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)
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)
Bergmans, L., Aksit, M.: Composing Crosscutting Concerns Using Composition Filters. Communications of the ACM 44(10) (2001)
Bruneton, E., Coupaye, T., Stefani, J.B.: The Fractal Component Model. Technical report, Specification v2, ObjectWeb Consortium (2003)
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)
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)
Duclos, F., Estublier, J., Morat, P.: Describing and Using Non Functional Aspects in Component Based Applications. In: AOSD 2002 (2002)
Dumant, B., Dang Tran, F., Horn, F., Stefani, J.B.: Jonathan: an open distributed platform in Java. Distributed Systems Engineering Journal 6 (1999)
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)
Leavens, G., Sitaraman, M. (eds.): Foundations of Component-Based Systems. Cambridge University Press, Cambridge (2000)
McDirmid, S., Flatt, Hsieh, W.C.: Jiazzi: New-age components for oldfashioned Java. In: Proceedings OOPSLA 2001, ACM Press, New York (2001)
Medvidovic, N., Taylor, R.N.: A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Trans. on Soft. Eng. 26(1) (2000)
Outhred, G., Potter, J.: A Model for Component Composition with Sharing. In: Proceedings ECOOP Workshop WCOP 1998 (1998)
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)
Pichler, R., Ostermann, K., Mezini, M.: On Aspectualizing Component Models. Software Practice and Experience (2003)
Popovici, A., Alonso, G., Gross, T.: Just in time aspects: Efficient dynamic weaving for Java. In: AOSD 2003 (2003)
Popovici, A., Alonso, G., Gross, T.: Spontaneous Container Services. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)
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)
Rivierre, N., Coupaye, T.: Observing component behaviors with temporal logic. In: 8th ECOOP Workshop on Correctness of Model-Based Software Composition, CMC 2003 (2003)
Szyperski, C.: Component Software, 2nd edn. Addison-Wesley, Reading (2002)
ASM: A Java Byte-Code Manipulation Framework, Objectweb (2002), http://www.objectweb.org/asm/
Java Message Service Specification Final Release 1.1, Mars, Sun Microsystems (2002), http://java.sun.com/products/jms/docs.html
JORAM: Java Open Reliable Asynchronous Messaging, Objectweb (2002), http://www.objectweb.org/joram/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bruneton, E., Coupaye, T., Leclercq, M., Quema, V., Stefani, JB. (2004). An Open Component Model and Its Support in Java. In: Crnkovic, I., Stafford, J.A., Schmidt, H.W., Wallnau, K. (eds) Component-Based Software Engineering. CBSE 2004. Lecture Notes in Computer Science, vol 3054. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24774-6_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-24774-6_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21998-9
Online ISBN: 978-3-540-24774-6
eBook Packages: Springer Book Archive