Abstract
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.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
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)
Bellifemine, F., Poggi, A., Rimassa, G.: Developing multi-agent systems with a FIPA-compliant agent framework. Software: Practice & Exp. 31, 103–128 (2001)
Chandra, T.D., Toueg, S.: Unreliable failure detectors for reliable distributed systems. J. ACM 43(2), 225–267 (1996)
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)
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)
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)
JBoss. The JBoss home page, http://www.jboss.org
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)
Liskov, B.H., Wing, J.M.: A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems (November 1994)
Meyer, B.: Design by contract, ch. 1. Prentice Hall, Englewood Cliffs (1992)
Object Management Group. CORBA Component Model, V3.0 (2002)
Popovici, A., Alonso, G., Gross, T.: Spontaneous container services. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 29–53. Springer, Heidelberg (2003)
Popovici, A., Gross, T., Alonso, G.: Dynamic weaving for aspect-oriented programming. In: AOSD 2002, pp. 141–147. ACM Press, New York (2002)
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)
Sridhar, N.: Dynamically Reconfigurable Parameterized Components. PhD thesis, The Ohio State University (2004)
Sridhar, N., Hallstrom, J.O.: Generating configurable containers for component-based software. In: 6th ICSE Workshop on Component-Based Soft. Eng. (May 2003)
Sun Microsystems. Enterprise JavaBeans specification, http://java.sun.com/ejb/
Sun Microsystems. J2EE information and specification, http://java.sun.com/j2ee/
The ObjectWeb Consortium. JOnAS: Java open application server
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sridhar, N., Hallstrom, J.O. (2006). A Behavioral Model for Software Containers. In: Baresi, L., Heckel, R. (eds) Fundamental Approaches to Software Engineering. FASE 2006. Lecture Notes in Computer Science, vol 3922. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11693017_12
Download citation
DOI: https://doi.org/10.1007/11693017_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-33093-6
Online ISBN: 978-3-540-33094-3
eBook Packages: Computer ScienceComputer Science (R0)