Abstract
Container technology (e.g., Enterprise Java Beans) was designed for fixed network applications. This is unfortunate, because the ability of containers to adapt components transparently (e.g., with persistence and transactions) would be of great advantage in mobile computing. In this paper, we generalize the container model into a new software architecture, the spontaneous container. A spontaneous container allows to homogeneously extend all applications of a network, even if they spontaneously join or leave the network. In the paper we show how to build a spontaneous container by unifying different technologies into one coherent architecture: (i) dynamic aspect-oriented programming, (ii) containers, and (iii) infrastructures for mobile computing. Dynamic aspect-orientation makes a spontaneous container much more flexible than existing commercial containers. Inheriting the container programming model allows a single focus point for modifications for all applications in a network. Basing the overall architecture on dynamic service brokerage and discovery allows a seamless integration with existing infrastructures for both mobile and fixed computing. Following these ideas, we have built and evaluated a spontaneous container prototype that effectively and efficiently transforms applications within a network into a distributed system capable of transactional interaction, access control, and orthogonal persistence.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aksit, M., Wakita, K., Bosch, J., Bergmans, L.: Abstracting Object Interactions Using Composition Filters. In: Guerraoui, R., Riveill, M., Nierstrasz, O. (eds.) ECOOP-WS 1993. LNCS, vol. 791, p. 152. Springer, Heidelberg (1994)
Alarcon, M.P., Fuentes, L., Fayad, M., Troya, J.M.: Separation of Coordination in a Dynamic Aspect Oriented Framework. In: 1st Intl. Conf. on AOSD, Enschede, The Netherlands (April 2002)
Andrade, L., Fiadeiro, J.L.: An architectural approach to auto-adaptive systems. In: Proceedings of the 22nd ICDCS Workshops, Vienna, Austria, July 2002, pp. 439–444 (2002)
Arnold, K., Wollrath, A., O’Sullivan, B., Scheifler, R., Waldo, J.: The Jini Specification. Addison-Wesley, Reading (1999)
Arregui, D., Pacull, F., Willamowski, J.: Rule-Based Transactional Object Migration over a Reflective Middleware. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, pp. 179–196. Springer, Heidelberg (2001)
Atkinson, M.P., Daynes, L., Jordan, M.J., Printezis, T., Spence, S.: An Orthogonally Persistent Java. SIGMOD Record 25(4), 68–75 (1996)
Atkinson, M.P., Morrison, R.: Orthogonally Persistent Object Systems. VLDB Journal 4(3), 319–401 (1995)
Baker, J., Hsieh, W.: Runtime Aspect Weaving Through Metaprogramming. In: 1st AOSD, Enschede, The Netherlands, April 2002, pp. 86–95 (2002)
Bergmans, L., Aksit, M.: Composing Crosscutting Concerns using Composition Filters. CACM, Special Issue on Aspect-Oriented Programming 44(10), 51–57 (2001)
Cardelli, L.: A language with distributed scope. Computing Systems 8(1), 27–59 (1995)
de Lara, E., Wallach, D.S., Zwaenepoel, W.: Puppeteer: Component-based Adaptation for Mobile Computing. In: USITS-2001, Berkeley, CA (March 2001)
Duclos, F., Estubiler, J., Morat, P.: Describing and Using Non Functional Aspects in Component Based Applications. In: AOSD, Enschede, The Netherlands (April 2002)
Itoh, J., Yokote, Y., Lea, R.: Using Meta-Objects to Support Optimisation in the Apertos Operating System. In: Proc. of COOTS, Berkeley, USA (June 1995)
Kassem, N.: Designing Enterprise Applications with the Java 2 Plaform. Sun J2EE Blueprints (June 2000), http://java.sun.com/j2ee/download.html
Kiczales, G., des Rivieres, J.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)
Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kleinoeder, J., Golm, M.: MetaJava — A Platform for Adaptable Operating- System Mechanisms. In: ECOOP 1997 Workshop Reader. LNCS, Springer, Heidelberg (1997)
Kniesel, G.: Type-Safe Delegation for Dynamic Component Adaptation. In: Demeyer, S., Bosch, J. (eds.) ECOOP 1998 Workshops. LNCS, vol. 1543, pp. 136–137. Springer, Heidelberg (1998)
Lehman, T.J., Cozzi, A., Xiong, Y., Gottschalk, J., Vasudevan, V., Landis, S., Davis, P., Bruce, K., Bowman, P.: Hitting the distributed computing sweet spot with TSpaces. Computer Networks (Amsterdam, Netherlands: 1999) 35(4), 457–472 (2001)
Mezini, M.: Dynamic Object Evolution without Name Collisions. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 190–219. Springer, Heidelberg (1997)
Microsoft Corporation. The.NET Internet page(2001), Accessible on-line at http://www.microsoft.com/net/
Sun Microsystems. Enterprise Java Beans Specification, Version 2.0 (August 2001)
Sun Microsystems. Java Data Objects (JSR 12) (May 2001)
Ogawa, H., Shimura, K., Matsuoka, S., Maruyama, F., Sohda, Y., Kimura, F.: OpenJIT: An Open-Ended, Reflective JIT Compiler Framework for Java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, p. 362. Springer, Heidelberg (2000)
Oliva, A., Buzato, L.E.: The design and implementation of Guaran´a. In: Proc. of the 5th USENIX COOTS, pp. 203–216. The USENIX Association (1999)
Orleans, D., Lieberherr, K.: DJ: Dynamic Adaptive Programming in Java. In: Reflection 2001, Kyoto, Japan. Springer, Heidelberg (2001)
Ostermann, K.: Dynamically Composable Collaborations with Delegation Layers. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 89. Springer, Heidelberg (2002)
Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: JAC: A Flexible Solution for Aspect-Oriented Programming in Java. In: Reflection 2001, Kyoto, Japan, pp. 1–24. Springer, Heidelberg (2001)
Pichler, R., Ostermann, K., Mezini, M.: On Aspectualizing Component Models. Software Practice and Experience (2003)
Ponnekanti, S.R., Lee, B., Fox, A., Hanrahan, P., Winograd, T.: ICrafter: A Service Framework for Ubiquitous Computing Environments. In: Abowd, G.D., Brumitt, B., Shafer, S. (eds.) UbiComp 2001. LNCS, vol. 2201, p. 56. Springer, Heidelberg (2001)
Popovici, A., Alonso, G.: Ad-Hoc Transactions for Mobile Sevices. In: Proc. of the 3rd Intl. TES/VLDB Workshop, Hong Kong, China (August 2002)
Popovici, A., Alonso, G., Gross, T.: Design and evaluation of spontaneous container services. Technical report no. 368, CS Department, ETH Zurich (2002)
Popovici, A., Alonso, G., Gross, T.: Just in time aspects: Efficient dynamic weaving for java. In: AOSD 2003, Boston, USA (March 2003)
Popovici, A., Gross, T., Alonso, G.: Dynamic Weaving for Aspect Oriented Programming. In: AOSD 2002, Enschede, The Netherlands (April 2002)
Putrycz, E., Bernard, G.: Using Aspect Oriented Programming to build a portable load balancing service. In: 22nd ICDCS, Vienna, Austria (July 2002)
Redmond, B., Cahill, V.: Towards a Dynamic and Efficient Reflective Architecture for Java. In: Workshop at ECOOP 2000, Cannes, France (June 2000)
Seiter, L.M., Palsberg, J., Lieberherr, K.J.: Evolution of object behavior using context relations. In: Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM Software Engineering Notes, New York, October 16–18, pp. 46–57. ACM Press, New York (1996)
Sirer, E.G., Grimm, R., Gregory, A.J., Bershad, B.N.: Design and Implementation of a Distributed Virtual Machine for Networked Computers. In: Symposium on Operating Systems Principles, pp. 202–216 (1999)
Tarr, P., Ossher, H., Harrison, W., Sutton, S.: N Degrees of Separation: Multidimensional Separation of Concerns. In: 1999 ICSE, Los Angeles, CA, USA (1999)
The Object Management Group. The CORBA Component Model RFP (1997), Available at http://www.omg.org/docs/orbos/97-05-22.pdf
Truyen, E., Joergensen, B., Joosen, W.: Customization of Component- Based Object Request Brokers through Dynamic Configuration. In: TOOLS Europe 2000, pp. 181–194. IEEE Press, Los Alamitos (2000)
Ungar, D., Smith, R.B.: Self: The Power of Simplicity. In: Proc. of OOPSLA, pp. 227–242 (1987)
Xerox Corporation. The AspectJ Programming Guide. Online Documentation (2002), http://www.aspectj.org/
Yau, S.S., Karim, F.: Reconfigurable Context-Sensitive Middleware for ADS Applications in Mobile Ad-Hoc Network Environments. In: Proc. of the 5th ISADS
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Popovici, A., Alonso, G., Gross, T. (2003). Spontaneous Container Services. In: Cardelli, L. (eds) ECOOP 2003 – Object-Oriented Programming. ECOOP 2003. Lecture Notes in Computer Science, vol 2743. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45070-2_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-45070-2_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40531-3
Online ISBN: 978-3-540-45070-2
eBook Packages: Springer Book Archive