Advertisement

Spontaneous Container Services

  • Andrei Popovici
  • Gustavo Alonso
  • Thomas Gross
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2743)

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.

Keywords

Mobile Node Access Control Policy Business Logic Extension Base Java Virtual Machine 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    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)CrossRefGoogle Scholar
  2. 2.
    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)Google Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    Arnold, K., Wollrath, A., O’Sullivan, B., Scheifler, R., Waldo, J.: The Jini Specification. Addison-Wesley, Reading (1999)Google Scholar
  5. 5.
    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)CrossRefGoogle Scholar
  6. 6.
    Atkinson, M.P., Daynes, L., Jordan, M.J., Printezis, T., Spence, S.: An Orthogonally Persistent Java. SIGMOD Record 25(4), 68–75 (1996)CrossRefGoogle Scholar
  7. 7.
    Atkinson, M.P., Morrison, R.: Orthogonally Persistent Object Systems. VLDB Journal 4(3), 319–401 (1995)CrossRefGoogle Scholar
  8. 8.
    Baker, J., Hsieh, W.: Runtime Aspect Weaving Through Metaprogramming. In: 1st AOSD, Enschede, The Netherlands, April 2002, pp. 86–95 (2002)Google Scholar
  9. 9.
    Bergmans, L., Aksit, M.: Composing Crosscutting Concerns using Composition Filters. CACM, Special Issue on Aspect-Oriented Programming 44(10), 51–57 (2001)Google Scholar
  10. 10.
    Cardelli, L.: A language with distributed scope. Computing Systems 8(1), 27–59 (1995)Google Scholar
  11. 11.
    de Lara, E., Wallach, D.S., Zwaenepoel, W.: Puppeteer: Component-based Adaptation for Mobile Computing. In: USITS-2001, Berkeley, CA (March 2001)Google Scholar
  12. 12.
    Duclos, F., Estubiler, J., Morat, P.: Describing and Using Non Functional Aspects in Component Based Applications. In: AOSD, Enschede, The Netherlands (April 2002)Google Scholar
  13. 13.
    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)Google Scholar
  14. 14.
    Kassem, N.: Designing Enterprise Applications with the Java 2 Plaform. Sun J2EE Blueprints (June 2000), http://java.sun.com/j2ee/download.html
  15. 15.
    Kiczales, G., des Rivieres, J.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)Google Scholar
  16. 16.
    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)CrossRefGoogle Scholar
  17. 17.
    Kleinoeder, J., Golm, M.: MetaJava — A Platform for Adaptable Operating- System Mechanisms. In: ECOOP 1997 Workshop Reader. LNCS, Springer, Heidelberg (1997)Google Scholar
  18. 18.
    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)CrossRefGoogle Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    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)CrossRefGoogle Scholar
  21. 21.
    Microsoft Corporation. The.NET Internet page(2001), Accessible on-line at http://www.microsoft.com/net/
  22. 22.
    Sun Microsystems. Enterprise Java Beans Specification, Version 2.0 (August 2001)Google Scholar
  23. 23.
    Sun Microsystems. Java Data Objects (JSR 12) (May 2001)Google Scholar
  24. 24.
    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)CrossRefGoogle Scholar
  25. 25.
    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)Google Scholar
  26. 26.
    Orleans, D., Lieberherr, K.: DJ: Dynamic Adaptive Programming in Java. In: Reflection 2001, Kyoto, Japan. Springer, Heidelberg (2001)Google Scholar
  27. 27.
    Ostermann, K.: Dynamically Composable Collaborations with Delegation Layers. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, p. 89. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  28. 28.
    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)Google Scholar
  29. 29.
    Pichler, R., Ostermann, K., Mezini, M.: On Aspectualizing Component Models. Software Practice and Experience (2003)Google Scholar
  30. 30.
    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)CrossRefGoogle Scholar
  31. 31.
    Popovici, A., Alonso, G.: Ad-Hoc Transactions for Mobile Sevices. In: Proc. of the 3rd Intl. TES/VLDB Workshop, Hong Kong, China (August 2002)Google Scholar
  32. 32.
    Popovici, A., Alonso, G., Gross, T.: Design and evaluation of spontaneous container services. Technical report no. 368, CS Department, ETH Zurich (2002)Google Scholar
  33. 33.
    Popovici, A., Alonso, G., Gross, T.: Just in time aspects: Efficient dynamic weaving for java. In: AOSD 2003, Boston, USA (March 2003)Google Scholar
  34. 34.
    Popovici, A., Gross, T., Alonso, G.: Dynamic Weaving for Aspect Oriented Programming. In: AOSD 2002, Enschede, The Netherlands (April 2002)Google Scholar
  35. 35.
    Putrycz, E., Bernard, G.: Using Aspect Oriented Programming to build a portable load balancing service. In: 22nd ICDCS, Vienna, Austria (July 2002)Google Scholar
  36. 36.
    Redmond, B., Cahill, V.: Towards a Dynamic and Efficient Reflective Architecture for Java. In: Workshop at ECOOP 2000, Cannes, France (June 2000)Google Scholar
  37. 37.
    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)CrossRefGoogle Scholar
  38. 38.
    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)Google Scholar
  39. 39.
    Tarr, P., Ossher, H., Harrison, W., Sutton, S.: N Degrees of Separation: Multidimensional Separation of Concerns. In: 1999 ICSE, Los Angeles, CA, USA (1999)Google Scholar
  40. 40.
    The Object Management Group. The CORBA Component Model RFP (1997), Available at http://www.omg.org/docs/orbos/97-05-22.pdf
  41. 41.
    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)Google Scholar
  42. 42.
    Ungar, D., Smith, R.B.: Self: The Power of Simplicity. In: Proc. of OOPSLA, pp. 227–242 (1987)Google Scholar
  43. 43.
    Xerox Corporation. The AspectJ Programming Guide. Online Documentation (2002), http://www.aspectj.org/
  44. 44.
    Yau, S.S., Karim, F.: Reconfigurable Context-Sensitive Middleware for ADS Applications in Mobile Ad-Hoc Network Environments. In: Proc. of the 5th ISADSGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Andrei Popovici
    • 1
  • Gustavo Alonso
    • 1
  • Thomas Gross
    • 1
  1. 1.Department of Computer ScienceSwiss Federal Institute of Technology (ETHZ) , ETH ZentrumZürichSwitzerland

Personalised recommendations