Skip to main content
Log in

Static verification of component composition in contextual composition frameworks

  • Regular Contribution
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

Abstract

Contextual component frameworks, such as Enterprise JavaBeans (EJB), allow for components to specify boundary conditions for the runtime context. These conditions are satisfied at runtime by services of the underlying platform, thus ensuring that the context in which components run exhibits properties that allow them to operate correctly. Depending on how components call each other, it is possible that satisfying such conditions lead to problems such as reduced performance due to redundant service execution, or permanent errors (composition mismatches), due to incompatible boundary conditions. Currently, the semantics of these boundary conditions are expressed in natural language only, making it impossible to incorporate them into an automatic analysis tool. Furthermore, early understanding of how components call each other would be necessary, but it is currently difficult to achieve by means of a tool, as the method dispatch rules in a component system differ from the dispatch rules of the programming language(s) in which they were developed. We have developed a metamodel, \({\mathbb{M}}\) , for describing boundary conditions, an analysis method, \({\mathbb{A}}\) , and a static component-level call graph extraction method for EJB applications, CHA EJB . \({\mathbb{A}}\) uses \({\mathbb{M}}\) models to analyze inter-component call graphs, and thus detect problems such as composition mismatches or redundancies, thus allowing for remedial action to take place. We present \({\mathbb{M}},{\mathbb{A}}\) and CHA EJB in this article, show that \({\mathbb{A}}\) produces correct results, and describe a prototype analysis tool implementing the three, which we used to validate our approach on two popular EJB applications.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Sun Microsystems. Enterprise JavaBeans Specification (2003). http://java.sun.com/products/ejb/docs.html#specs

  • Don Box. Essential COM. Addison-Wesley (1998)

  • Object Management Group. Corba Component Model (2002). http://www.omg.org

  • Ammons, G., Choi, J.-D., Gupta, M., Swamy, N.: Finding and removing performance bottlenecks in large systems. In: Proceedings of ECOOP (2004)

  • Trofin, M., Murphy, J.: A self-optimizing container design for enterprise java beans applications. In: Proceedings of the Second International Workshop on Dynamic Analysis (WODA 2004), pp. 52–59 (2004)

  • Trofin, M., Murphy, J.: Removing Redundant Boundary Checks in Contextual Composition Frameworks. J. Obj. Technol pp. 63–82, July–August 2006

  • Vallée-Rai, R., Hendren, L., Sundaresan, V., Lam, P., Gagnon, E., Co, P.: SOOT - a Java Optimization Framework. In: Proceedings of CASCON 1999, pp. 125–135 (1999)

  • Flanagan, C., Leino, K., Lillibridge, M., Nelson, C., Saxe, J., Stata, R.: Extended static checking for Java. In: Proceedings of Programming Language Design and Implementation (2002)

  • Dean J., Grove D. and Chambers C. (1995). optimization of object-oriented programs using static class hierarchy analysis. Lecture Notes Comput. Sci. 952: 77–101

    Article  Google Scholar 

  • Lindholm, T., Yellin, F.: The JavaTM Virtual Machine Specification. Sun Microsystems, Inc. (1999)

  • Bruneton, E., Lenglet, R., Coupaye, T.: ASM: a Code Manipulation Tool to implement adaptable systems. In: Proceedings of the ASF (ACM SIGOPS France) Journées Composants 2002 : Systèmes à composants adaptables et extensibles (Adaptable and Extensible Component Systems), November 2002

  • Gansner E.R. and North S.C. (2000). An open graph visualization system and its applications to software engineering. Softw. Pract. Exp. 30(11): 1203–1233

    Article  MATH  Google Scholar 

  • Sun Microsystems. Java Pet Store Demo 1.3.2 (2003). http://java.sun.com/developer/releases/petstore/

  • BEA Systems, Inc. Avitek Medical Records 1.0 Architecture Guide (2003)

  • Grundy, J., Ding, G.: Automatic validation of deployed j2ee components using aspects. In ASE ’02: Proceedings of the 17th IEEE International Conference on Automated Software Engineering. Washington, DC, USA, p. 47. IEEE Computer Society (2002)

  • Hatcliff, J., Deng, X., Dwyer, M.B., Jung, G., Ranganath, V.P.: Cadena: An integrated development, analysis, and verification environment for component-based systems. In: International Conference on Software Engineering (ICSE), pp. 160–173 (2003)

  • Demartini, C., Iosif, R., Sisto, R.: dSPIN: a dynamic extension of SPIN. In SPIN, pp. 261–276 (1999)

  • Naumovich G. and Centonze P. (2004). Static analysis of role-based access control in J2EE applications. SIGSOFT Softw. Eng. Not. 29(5): 1–10

    Article  Google Scholar 

  • Clarke, D., Richmond, M., Noble, J.: Saving the World from Bad Beans: Deployment-Time Confinement Checking. In: OOPSLA ’03: Proceedings of the 18th annual ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications. New York, NY, USA, pp. 374–387. ACM Press, New York (2003)

  • Reimer, D., Schonberg, E., Srinivas, K., Srinivasan, H., Dolby, J., Kershenbaum, A., Koved, L.: Validating Structural Properties of Nested Objects. In: OOPSLA ’04: Companion to the 19th annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications. New York, NY, USA, pp. 294–304. ACM Press, New York (2004)

  • Adamek J. and Plasil F. (2005). Component Composition Errors and Update Atomicity: Static Analysis. J. Softw. Mainten. Evolut. Res. Pract. 17(5): 363–377

    Article  Google Scholar 

  • Plasil, F.: Enhancing component specification by behavior description: the SOFA Experience. In: WISICT ’05: Proceedings of the 4th International Symposium on Information and Communication Technologies, pp. 185–190. Trinity College Dublin (2005)

  • Bacon, D.F., Sweeney, P.F.: Fast Static Analysis of C++ Virtual Function Calls. In: OOPSLA ’96: Proceedings of the 11th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 324–341. ACM Press, New York (1996)

  • Fernandez, M.F.: Simple and effective link-time optimization of Modula-3 Programs. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 103–115 (1995)

  • Sundaresan, V., Hendren, L., Razafimahefa, C., Vallée-Rai, R., Lam, P., Gagnon, E., Godin, C.: Practical virtual method call resolution for Java. In OOPSLA ’00: Proceedings of the 15th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications. New York, NY, USA, pp. 264–280. ACM Press, New York (2000)

  • Hearn, A.C.: REDUCE User’s and Contributed Packages Manual, Version 3.7. Knorad-Zuse-Zentrum Berlin, Germany, February 1999

  • Cardelli L. (1996). Handbook of Computer Science and Engineering, chapter Type Systems. CRC Press, New York

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mircea Trofin.

Additional information

The support of the Informatics Commercialisation initiative of Enterprise Ireland is gratefully acknowledged.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Trofin, M., Murphy, J. Static verification of component composition in contextual composition frameworks. Int J Softw Tools Technol Transf 10, 247–261 (2008). https://doi.org/10.1007/s10009-007-0061-y

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-007-0061-y

Keywords

Navigation