1
Pattern-Oriented Software Architecture, Patterns for Concurrent and
Networked Objects, Volume 2
by Douglas Schmidt, Michael Stal, Hans Rohnert and Frank Buschmann
ISBN: 0471606952
John Wiley & Sons © 2000 (633 pages)
An examination of 17 essential design patterns used to build modern object-
oriented middleware systems.
2
Table of Contents
Pattern-Oriented Software Architecture—Patterns for
Concurrent and Networked Objects, Volume 2
Foreword
About this Book
Guide to the Reader
Chapter 1
-
Concurrent and Networked Objects
Chapter 2
-
Service Access and Configuration Patterns
Chapter 3
-
Event Handling Patterns
Chapter 4
-
Synchronization Patterns
Chapter 5
-
Concurrency Patterns
Chapter 6
-
Weaving the Patterns Together
Chapter 7
-
The Past, Present, and Future of Patterns
Chapter 8
-
Concluding Remarks
Glossary
Notations
References
Index of Patterns
Index
Index of Names
3
Pattern-Oriented Software
Architecture—Patterns for
Concurrent and Networked Objects,
Volume 2
Douglas Schmidt
University of California, Irvine
Michael Stal
Siemens AG, Corporate Technology
Hans Rohnert
Siemens AG, Germany
Frank Buschmann
Siemens AG, Corporate Technology
John Wiley & Sons, Ltd
Chichester · New York · Weinheim · Brisbane · Singapore · Toronto
Copyright © 2000 by John Wiley & Sons, Ltd
Baffins Lane, Chichester,
West Sussex PO19 1UD, England
National 01243 779777
International (+44) 1243 779777
e-mail (for orders and customer service enquiries):
<cs-books@wiley.co.uk>
Visit our Home Page on http://www.wiley.co.uk or http://www.wiley.com
All rights reserved. No part of this publication may be reproduced, stored in a retrieval
system, or transmitted, in any form or by any means, electronic, mechanical, photocopying,
recording, scanning or otherwise, except under the terms of the Copyright, Designs and
Patents Act 1988 or under the terms of a licence issued by the Copyright Licensing Agency,
90 Tottenham Court Road, London, UK W1P 9HE, without the permission in writing of the
publisher, with the exception of any material supplied specifically for the purpose of being
entered and executed on a computer system for exclusive use by the purchaser of the
publication.
4
Neither the author nor John Wiley & Sons, Ltd accept any responsibility or liability for loss or
damage occasioned to any person or property through using the material, instructions,
methods or ideas contained herein, or acting or refraining from acting as a result of such
use. The author and publisher expressly disclaim all implied warranties, including
merchantability or fitness for any particular purpose.
Designations used by companies to distinguish their products are often claimed as
trademarks. In all instances where John Wiley & Sons, Ltd is aware of a claim, the product
names appear in initial capital or all capital letters. Readers, however, should contact the
appropriate companies for more complete information regarding trademarks and registration.
Other Wiley Editorial Offices
John Wiley & Sons, Inc., 605 Third Avenue,
New York, NY 10158-0012, USA
Weinheim • Brisbane • Singapore • Toronto
British Library Cataloguing in Publication Data
A catalogue record for this book is available from the British Library.
ISBN 0-471-60695-2
For Sonja, Mom, and Dad
Douglas C. Schmidt
For Gisela
Michael Stal
For Regine, Anja, Sandro, and Nicolas
Hans Rohnert
For Bebé
[1]
and Martina
Frank Buschmann
About The Authors
Douglas C. Schmidt
Dr. Douglas Schmidt is an Associate Professor in the Electrical and Computer Engineering
department at the University of California, Irvine, USA. He is also serving as a Program
Manager in the Information Technology Office (ITO) at DARPA, leading the national
research effort on middleware. Before this he was an Associate Professor and Director of
the Center for Distributed Object Computing in the Department of Computer Science at
Washington University in St. Louis, Missouri. His research focuses on design patterns,
optimization principles, and empirical analyses of object-oriented techniques that facilitate
the development of high-performance and real-time distributed object computing middleware
running over high-speed networks and embedded system interconnects.
Doug is an internationally-recognized expert on distributed object computing patterns,
middleware frameworks, real-time CORBA, and open-source development. He has
published widely in top technical journals, conferences, and books. He was editor of the C++
5
Report magazine for several years and has co-edited several popular books on patterns
[PLoPD1] and frameworks [FJS99a] [FJS99b]. In addition to his academic research, Doug
has led the development of ACE and TAO, which are widely-used open-source middleware
frameworks that contain a rich set of reusable components implemented using the patterns
presented in this book.
In his 'spare' time, he enjoys ballroom dancing with his wife Sonja, weight-lifting, guitar
playing, world history, and Chevrolet Corvettes.
Michael Stal
Michael Stal joined the Corporate Technology department of Siemens AG in Munich,
Germany in 1991. In his previous work he gained extensive experience developing software
for compilers and computer graphics. He worked on runtime type information for C++ and
served on the C++ standardization group X3J16. Since 1992 Michael's work has focused on
the development of concurrent and distributed object-oriented systems using Sockets,
CORBA, COM, and Java. Michael is Siemens' primary contact on CORBA at the OMG and
is head of the Distributed Object Computing Group at Siemens's Corporate Technology
department. He co-authored the first POSA volume A System of Patterns.
Michael's main research interests focus on methods for developing distributed systems
efficiently and on patterns for describing the architecture of middleware platforms. In this
context he has published articles in many magazines and given talks at many conferences.
In addition, he is Editor-in-Chief of Java Spektrum, the major German magazine on the Java
platform, as well as a columnist and member of the advisory board for Objektspektrum, the
major German magazine on object technology.
In his spare time Michael attends soccer matches, supports his favorite team Bayern
München, visits Munich beer gardens, tries to prevent his cats from destroying his
apartment, watches movies, and reads books on physics, philosophy and humor. He is fan
of Douglas Adams, Scott Adams, and Terry Pratchett.
Hans Rohnert
Dr. Hans Rohnert is a Senior Software Engineer at the Communication Devices business
unit of Siemens AG in Munich, Germany. His primary aims are exploiting promising software
technologies and introducing them into new products, such as next-generation mobile
phones. His professional interests are software architecture, design patterns, and real-world
programming. He has presented numerous talks on subjects ranging from dynamic graph
algorithms to embedded Java virtual machines.
Hans is currently a member of the expert groups defining the small footprint KVM Java
virtual machine and its libraries for use in small devices. His programming projects have
included server-side modules for embedded servers, work flow in C++, base support for
ATM switching, Java GUI front-ends for CORBA clients, and HTTP clients. He is also a co-
author of the first POSA volume A System of Patterns and a co-editor of the fourth book in
the PLoPD series [PLoPD4]. As a graduate student he performed original research on
combinatorial algorithms, publishing and lecturing on them early in his career.
Hans is an ambitious tennis player, with more matches lost than won. He also enjoys
exploring the nearby mountains, rock-climbing, and cross-country skiing. His most important
'hobby', however, is his family, most notably a new baby born during the hectic final phase of
writing this book.
Frank Buschmann