Join us on:

T11. Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing

Douglas Schmidt, Vanderbilt University

Douglas Schmidt is a Professor of Computer Science and Associate Chair of the Computer Science and Engineering program at Vanderbilt University. He has published 9 books and over 400 technical papers that cover a range of research topics, including patterns, optimization techniques, and empirical analyses of software frameworks and domain-specific modeling environments that facilitate the development of distributed compting middleware and applications. In addition to his academic research, Dr. Schmidt has over fifteen years of experience leading the development of ACE, TAO, CIAO, and CoSMIC, which are widely used, open-source middleware frameworks and model-driven tools.

Developing software for distributed computing applications that effectively utilizes concurrency over high-speed, low-speed, and mobile networks is hard; developing high quality reusable distributed applications is even harder. Many patterns in the software literature focus on distributed computing. Until recently, however, there has been no holistic view of distributed computing that emphasizes how groups of patterns complete and complement each other. Building complex distributed systems has therefore been a craft that many have tried, but few have mastered. To address this issue, this tutorial describes a pattern language that links hundreds of patterns relevant for distributed computing, including: (1) Object interaction, (2) Interface and component partitioning, (3) Application control, (4) Resource management, (5) Concurrency and synchronization. This pattern language has been used successfully by the speaker on production distributed applications and middleware at hundreds of commercial companies for telecommunication systems, network management for personal communication systems, electronic medical imaging systems, real-time avionics and aerospace systems, and automated stock trading. The material presented in this tutorial appears in the book "Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing", Wiley & Sons, 2007 by Frank Buschmann, Kevlin Henney, and Douglas Schmidt.


Upon completing this tutorial, attendees will be able to:

  • Recognize the inherent and accidental complexities involved with developing distributed applications.
  • Understand precisely how object-oriented techniques and tools can and cannot help to alleviate this complexity.
  • Apply key object-oriented design techniques (such as pattern languages, frameworks, and components) to develop reusable distributed application artifacts.
  • Utilize OO language and middleware feature to create efficient, robust, reusable, and extensible distributed applications.
  • Understand advanced OS capabilities and use them effectively to develop extensible, robust, reusable, and efficient concurrent distributed applications.
  • Know where to find additional sources of information on how to successfully apply object-oriented techniques to distributed applications.


Audience: Researchers, Practitioners, Educators
Please email any questions to . This e-mail address is being protected from spambots. You need JavaScript enabled to view it