A Behavioral Model for Software Containers

  • Nigamanth Sridhar
  • Jason O. Hallstrom
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3922)


Software containers present an effective mechanism for decoupling cross-cutting concerns in software. System-wide concerns such as persistence, transaction management, security, fault masking, etc., are implemented as container services. While a lot of effort has been expended in developing effective container implementations, specifications for software containers are largely presented in informal natural language, which hampers predictable reasoning about the behavior of components deployed within containers. In this paper, we present a formal model for reasoning about the behavior of software containers. Our model allows developers to reason precisely about how the behaviors of software components deployed within a container are modified by the container. We further present the specifications of a few examples of container services that are found in different container implementations, and use our formal model to prove the correctness of the behavioral transformations that these services cause.


Method Call Service Group Method Invocation Transaction Management Target Method 


  1. 1.
    Barnett, M., Leino, R., Schulte, W.: The spec# programming system: An overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 49–69. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Bellifemine, F., Poggi, A., Rimassa, G.: Developing multi-agent systems with a FIPA-compliant agent framework. Software: Practice & Exp. 31, 103–128 (2001)MATHGoogle Scholar
  3. 3.
    Chandra, T.D., Toueg, S.: Unreliable failure detectors for reliable distributed systems. J. ACM 43(2), 225–267 (1996)MathSciNetCrossRefMATHGoogle Scholar
  4. 4.
    Clifton, C., Leavens, G.T.: Observers and assistants: A proposal for modular aspect-oriented reasoning. Technical Report TR-02-04a, CS, Iowa State U (2002)Google Scholar
  5. 5.
    Crnkovic, I., Schmidt, H., Stafford, J.A., Wallnau, K.C.: 5th ICSE cbse workshop. In: Proc. 24th ICSE, Orlando, FL, May 2002, pp. 655–656 (2002)Google Scholar
  6. 6.
    Hallstrom, J.O., Leal, W.M., Arora, A.: Scalable evolution of highly-available systems. IEICE/IEEE Joint Special Issue on Assurance Systems and Networks E86-D(10), 2154–2166 (2003)Google Scholar
  7. 7.
    JBoss. The JBoss home page, http://www.jboss.org
  8. 8.
    Kumar, S., Weide, B.W., Sivilotti, P.A., Sridhar, N., Hallstrom, J.O., Pike, S.M.: Encapsulating concurrency as an approach to unification. In: FSE Workshop on Specification and Verification of Component-Based Systems (October 2004)Google Scholar
  9. 9.
    Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems (November 1994)Google Scholar
  10. 10.
    Meyer, B.: Design by contract, ch. 1. Prentice Hall, Englewood Cliffs (1992)Google Scholar
  11. 11.
    Object Management Group. CORBA Component Model, V3.0 (2002)Google Scholar
  12. 12.
    Popovici, A., Alonso, G., Gross, T.: Spontaneous container services. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 29–53. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  13. 13.
    Popovici, A., Gross, T., Alonso, G.: Dynamic weaving for aspect-oriented programming. In: AOSD 2002, pp. 141–147. ACM Press, New York (2002)Google Scholar
  14. 14.
    Soundarajan, N., Fridella, S.: Framework-based applications: From incremental development to incremental reasoning. In: Proceedings of the 6th International Conference on Software Reuse, London, UK, pp. 100–116. Springer, Heidelberg (2000)Google Scholar
  15. 15.
    Sridhar, N.: Dynamically Reconfigurable Parameterized Components. PhD thesis, The Ohio State University (2004)Google Scholar
  16. 16.
    Sridhar, N., Hallstrom, J.O.: Generating configurable containers for component-based software. In: 6th ICSE Workshop on Component-Based Soft. Eng. (May 2003)Google Scholar
  17. 17.
    Sun Microsystems. Enterprise JavaBeans specification, http://java.sun.com/ejb/
  18. 18.
    Sun Microsystems. J2EE information and specification, http://java.sun.com/j2ee/
  19. 19.
    The ObjectWeb Consortium. JOnAS: Java open application serverGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Nigamanth Sridhar
    • 1
  • Jason O. Hallstrom
    • 2
  1. 1.Electrical & Computer Engg.Cleveland State UniversityUSA
  2. 2.Computer ScienceClemson UniversityUSA

Personalised recommendations