15
colleagues. They spent much of their valuable time helping to review the manuscript in the
countless writer's workshops we ran, thus helping us to polish and shape the final content of
this book. Similarly, we are grateful to members of the Distributed Object Computing (DOC)
group—Tim Harrison, Prashant Jain, Carlos O'Ryan, and Irfan Pyarali—who co-authored
initial versions of six patterns in this book. Together with the four lead authors, these
researchers form the POSA team at Siemens in Munich, Washington University in St. Louis,
and the University of California, Irvine.
We also owe most grateful thanks to Peter Sommerlad, Chris Cleeland, Kevlin Henney, and
Paul McKenney, Peter, our shepherd, reviewed all our material in depth, focusing on its
correctness, completeness, consistency, and quality. Chris, Kevlin, and Paul, our peer
reviewers, provided us with additional detailed feedback. All four contributed significantly to
improving Patterns for Concurrent and Networked Objects.
We are also grateful to the Software Architecture Group at University of Illinois at Urbana
Champain, including Federico Balaguer, John Brant, Brian Foote, Alejandra Garrido, Peter
Hatch, Ralph Johnson, Dragos Manolescu, Brian Marick, Hiroaki Nakamura, Reza Razavi,
Don Roberts, Les Tyrrell, Joseph W. Yoder, Wanghong Yuan, Weerasak Witthawaskul, and
Bosko Zivaljevic, who ran writer's workshops on many POSA2 patterns. They sent
comments that helped us improve the correctness and comprehensibility of the book.
Many others from around the world provided feedback on earlier versions of the book,
including Giorgio Angiolini, Brad Appleton, Paul Asman, David Barkken, John Basrai, Joe
Bergin, Rainer Blome, Don Box, Martina Buschmann, Tom Cargill, Chuck and Lorrie Cranor,
James O. Coplien, Ward Cunningham, Gisela Ebner, Ed Fernandez, Erich Gamma, Sonja
Gary, Luciano Gerber, Bob Hanmer, Neil Harrison, Michi Henning, David Holmes, Tom
Jordan, Fabio Kon, Bob Laferriere, Greg Lavender, Doug Lea, John MacMillan, Mittal
Monani, Duane Murphy, Jaco van der Merwe, Michael Ogg, Bill Pugh, Dirk Riehle, Linda
Rising, Wolfgang Schroeder, Richard Toren, Siva Vaddepuri, John Vlissides, Roger
Whitney, and Uwe Zdun. The Credits section of our patterns outline how their valuable
contributions helped us polish this book.
We are also heavily indebted to all members, past and present, of the DOC group at
Washington University in St. Louis, the University of California, Irvine, Object Computing
Inc., and Riverace, who reified, refined, and optimized all the patterns presented in this book
into components and frameworks in the ACE and TAO middleware projects. This
inspirational group includes Everett Anderson, Alex Arulanthu, Shawn Atkins, Darrell
Brunsch, Luther Baker, Matt Braun, Chris Cleeland, Angelo Corsaro, Sergio Flores-Gaitan,
Chris Gill, Pradeep Gore, Andy Gokhale, Priyanka Gontla, Myrna Harbison, Tim Harrison,
Shawn Hannan, John Heitmann, Joe Hoffert, James Hu, Steve Huston, Prashant Jain,
Vishal Kachroo, Ray Klefstad, Yamuna Krishnamurthy, Michael Kircher, Fred Kuhns, David
Levine, Ebrahim Moshiri, Michael Moran, Sumedh Mungee, Bala Natarjan, Ossama Othman,
Jeff Parsons, Kirthika Parameswaran, Krish Pathayapura, Irfan Pyarali, Carlos O'Ryan,
Malcolm Spence, Marina Spivak, Naga Surendran, Selcuk Uelker, Nanbor Wang, Seth
Widoff, and Torben Worm. We would also like to acknowledge the substantial contribution of
the thousands of ACE and TAO users around the world who have applied and enhanced the
patterns and framework components described in this book over the past decade. Without
their support, constant feedback, and encouragement we would never have written this
book.
Special thanks go to Johannes Nierwetberg, Lothar Borrmann, and Monika Gonauser for
their managerial support and backing at the software engineering labs of Corporate
Technology of Siemens AG, Munich, Germany. We also thank Calinel Pasteanu at the
Communication Devices business unit of Siemens AG in Munich for understanding the
conflict between the chores of writing this book and the pressures of delivering products in
'Internet time'.