Skip to main content

A Component-Oriented Model for the Design of Safe Multi-threaded Applications

  • Conference paper
Component-Based Software Engineering (CBSE 2005)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3489))

Included in the following conference series:

Abstract

We previously developed a component-oriented model that combines ideas from self-organizing architectures and from design by contract to address the complexity of design in multi-threaded systems. Components in our model are cohesive collections of objects that publish contracts declaring the conditions under which they access other components. These contracts localize a component’s contextual synchronization dependencies in its interface. Moreover, the resulting systems permit strong guarantees of safety.

This paper reports a case study to validate the efficacy of our model on a realistic design problem: the component-based design of a multi-threaded web server. We first developed a bare-bones web server based on the Apache architecture and then subjected this design to three extension tasks. The study corroborates that our model enables a fine-grain component-based design of multi-threaded applications of realistic complexity, while guaranteeing freedom from certain synchronization errors.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Szyperski, C.: Component software: Beyond object-oriented programming. Addison-Wesley, Reading (2002)

    Google Scholar 

  2. Magee, J., Kramer, J.: Dynamic structure in software architectures. In: Proc. of the 4th ACM SIGSOFT Symposium on the Foundations of Software Engineering (1996)

    Google Scholar 

  3. Meyer, B.: Object-Oriented Software Construction. Prentice-Hall, Englewood Cliffs (1997)

    MATH  Google Scholar 

  4. Behrends, R., Stirewalt, R.E.K.: The universe model: An approach for improving the modularity and reliability of concurrent programs. In: Proc. of ACM SIGSOFT Symp. on the Foundations of Software Engineering (FSE 2000), pp. 20–29 (2000)

    Google Scholar 

  5. Behrends, R.: Designing and Implementing a Model of Synchronization Contracts in Object-Oriented Languages. PhD thesis, Michigan State University (2003)

    Google Scholar 

  6. Behrends, R., Stirewalt, R.E.K., Dillon, L.K.: Avoiding serialization vulnerabilities through the use of synchronization contracts. In: Proc. of the Workshop on Specification and Automated Processing of Security Requirements (2004), Held in conjunction with the IEEE Intl. Conf. on Automated Software Engineering

    Google Scholar 

  7. Lerdorf, R.: PHP and Apache2 (2004), http://news.php.net/php.internals/10491

  8. The Apache Software Foundation: Apache 2.0 thread safety issues (2005), http://httpd.apache.org/docs-2.0/developer/thread_safety.html

  9. Common Vulnerabilities and Exposures (CVE) Editorial Board : Candidate number 2003- 0189 (2003), http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0189

  10. Common Vulnerabilities and Exposures (CVE) Editorial Board : Candidate number 2003- 0789 (2003), http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0789

  11. Ricca, F., Tonella, P.: Analysis and testing of web applications. In: Proceedings of the 23rd International Conference on Software Engineering, IEEE, Los Alamitos (2001)

    Google Scholar 

  12. Sabbah, D.: Software engineering and the internet. In: Proceedings of the 23rd International Conference on Software Engineering, IEEE Computer Society Press, Los Alamitos (2001), Keynote speech

    Google Scholar 

  13. Meyer, B.: Eiffel: the Language. Prentice-Hall, Englewood Cliffs (1992)

    MATH  Google Scholar 

  14. Abi-Antoun, M., Medvidovic, N.: Enabling the refinement of a software architecture into a design. In: France, R.B., Rumpe, B. (eds.) UML 1999. LNCS, vol. 1723, pp. 17–31. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  15. Kaveh, N., Emmerich, W.: Deadlock detection in distributed object systems. In: Proc. of ESEC/FSE 2001 (2001)

    Google Scholar 

  16. Egyed, A., Medvidovic, N.: Consistent architectural refinement and evolution using the unified modeling language. In: Proc. of the 1st Workshop on Describing Software Architecture with UML (2001)

    Google Scholar 

  17. Grand, M.: Patterns in Java. A Catalog of Reusable Design Patterns Illustrated with UML, vol. 1. John Wiley and Sons, Chichester (1998)

    Google Scholar 

  18. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    Google Scholar 

  19. Netzer, R.H.B., Miller, B.P.: What are race conditions?: Some issues and formalizations. ACM Letters on Programming Languages and Systems 1, 74–88 (1992)

    Article  Google Scholar 

  20. Eswaran, K.P., Gray, J.N., Lorie, R.A., Traiger, I.L.: The notions of consistency and predicate locks in a database system. Communications of the ACM 19, 624–633 (1976)

    Article  MATH  MathSciNet  Google Scholar 

  21. Ierusalimschy, R.: Programming in Lua. Lua.org (2004)

    Google Scholar 

  22. Schmidt, D.C., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture Volume 2 – Networked and Concurrent Objects. John Wiley and Sons, Chichester (2000)

    Google Scholar 

  23. Bloom, T.: Evaluating synchronisation mechanisms. In: Seventh International Symposium on Operating System Principles, pp. 24–32 (1979)

    Google Scholar 

  24. Holmes, D.: Synchronisation Rings - Composable Synchronisation for Object-Oriented Systems. PhD thesis, Macquarie University, Sydney (1999)

    Google Scholar 

  25. Hoare, C.A.R.: Communicating Sequential Processes. Prentice/Hall International, Englewood Cliffs (1985)

    MATH  Google Scholar 

  26. Hansen, P.B.: Java’s insecure parallelism. ACM SIGPLAN Notices 34 (1999)

    Google Scholar 

  27. Object Management Group: Corba component model, v3.0 (2002), http://www.omg.org/technology/documents/formal/components.htm

  28. DeMichiel, L., Yalcinalp, L.U., Krishnan, S.: The Enterprise JavaBeans 2.0 specification (2001), http://java.sun.com/products/ejb/docs.html

  29. Ranganath, V.P., et al.: Cadena: enabling CCM-based application development in Eclipse. In: OOPSLA Workshop on Eclipse Technology eXchange, pp. 20–24 (2003)

    Google Scholar 

  30. Cecchet, E., Marguerite, J., Zwaenepoel, W.: Performance and scalability of EJB applications. In: Proc. of ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 246–261 (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Behrends, R., Stirewalt, R.E.K., Dillon, L.K. (2005). A Component-Oriented Model for the Design of Safe Multi-threaded Applications. In: Heineman, G.T., Crnkovic, I., Schmidt, H.W., Stafford, J.A., Szyperski, C., Wallnau, K. (eds) Component-Based Software Engineering. CBSE 2005. Lecture Notes in Computer Science, vol 3489. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11424529_17

Download citation

  • DOI: https://doi.org/10.1007/11424529_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-25877-3

  • Online ISBN: 978-3-540-32049-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics