A component-oriented model for the design of safe multi-threaded applications

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.

[1]  Alexander Egyed Consistent Architectural Refinement and Evolution using the Unified Modeling Language , 2001 .

[2]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[3]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[4]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[5]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[6]  Wolfgang Emmerich,et al.  Deadlock detection in distributed object systems , 2001, FSE 2001.

[7]  Nenad Medvidovic,et al.  Enabling the Refinement of a Software Architecture into a Design , 1999, UML.

[8]  Mark Grand Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML , 2002 .

[9]  R. E. Stirewalt,et al.  Designing and implementing a model of synchronization contracts in object-oriented languages , 2003 .

[10]  Toby Bloom,et al.  Evaluating synchronization mechanisms , 1979, SOSP '79.

[11]  R. E. Kurt Stirewalt,et al.  The universe model: an approach for improving the modularity and reliability of concurrent programs , 2000, SIGSOFT '00/FSE-8.

[12]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[13]  Wolfgang Emmerich,et al.  Deadlock detection in distribution object systems , 2001, ESEC/FSE-9.

[14]  Bernhard Rumpe,et al.  «UML»’99 — The Unified Modeling Language , 2003, Lecture Notes in Computer Science.

[15]  Roberto Ierusalimschy,et al.  Programming in Lua , 2003 .

[16]  Mark Grand,et al.  Patterns in Java, Volume 1, A Catalog of Reusable Design Patterns Illustrated with UML , 1998 .

[17]  Matthew B. Dwyer,et al.  Cadena: enabling CCM-based application development in Eclipse , 2003, eclipse '03.

[18]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[19]  Willy Zwaenepoel,et al.  Performance and scalability of EJB applications , 2002, OOPSLA '02.

[20]  Paolo Tonella,et al.  Analysis and testing of Web applications , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[21]  Jeff Magee,et al.  Dynamic structure in software architectures , 1996, SIGSOFT '96.

[22]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[23]  Laura K. Dillon,et al.  Avoiding Serialization Vulnerabilities through the Use of Synchronization Contracts , 2004 .

[24]  David O. Holmes Synchronisation Rings Composable Synchronisation for Object-Oriented Systems , 1999 .

[25]  Daniel Sabbah Software engineering and the internet , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[26]  Per Brinch Hansen,et al.  Java's insecure parallelism , 1999, SIGP.

[27]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[28]  Acm Sigsoft Proceedings of the 23rd International Conference on Software Engineering, May 12-19, 2001, Toronto, Ontario, Canada , 2001 .

[29]  Barton P. Miller,et al.  What are race conditions?: Some issues and formalizations , 1992, LOPL.