Summary
The long awaited fifth volume in a collection of key practices for pattern languages and design.
Author Biography
Dragos Manolescu is a software architect with ThoughtWorks, Inc., where he works on architecture evaluation and enterprise integration projects. Involved with the patterns community since 1996, Dragos chaired the PLoP 1999 conference, contributed to Pattern Languages of Program Design 4 (Addison-Wesley, 2000), and coauthored Integration Patterns (Microsoft Press, 2004).
Markus Voelter is a consultant and coach for software technology and engineering. Markus focuses on software architecture, middleware, and model-driven software development. He is the author of several patterns, the coauthor of Server Component Patterns and Remoting Patterns (both Wiley Patterns Series), and a regular speaker at conferences worldwide.
James Noble is professor of computer science and software engineering at Victoria University in Wellington, New Zealand, where he researches object-oriented approaches to user and programmer interface design. He is the coauthor of Small Memory Software: Patterns for Systems with Limited Memory (Addison-Wesley, 2001).
Table of Contents
| Acknowledgments |
|
ix | |
| Preface |
|
xi | |
| Introduction |
|
xvii | |
|
|
|
1 | (66) |
|
|
|
3 | (22) |
|
|
|
|
|
|
|
|
|
25 | (20) |
|
|
|
|
|
45 | (22) |
|
|
|
PART II Concurrent, Network, and Real-Time Patterns |
|
|
67 | (86) |
|
A Pattern Language for Efficient, Predictable, and Scalable Dispatching Components |
|
|
69 | (20) |
|
|
|
|
|
|
|
``Triple-T''---A System of Patterns for Reliable Communication in Hard Real-Time Systems |
|
|
89 | (38) |
|
|
|
|
|
|
|
Real Time and Resource Overload Language |
|
|
127 | (26) |
|
|
|
PART III Distributed Systems |
|
|
153 | (58) |
|
|
|
155 | (14) |
|
|
|
The Comparand Pattern: Cheap Identity Testing Using Dedicated Values |
|
|
169 | (20) |
|
|
|
|
|
Pattern Language for Service Discovery |
|
|
189 | (22) |
|
|
|
|
|
|
|
PART IV Domain-Specific Patterns |
|
|
211 | (88) |
|
MoRaR: A Pattern Language for Mobility and Radio Resource Management |
|
|
213 | (44) |
|
Rossana Maria de Castro Andrade |
|
|
|
|
Content Conversion and Generation on the Web: A Pattern Language |
|
|
257 | (42) |
|
|
|
|
|
PART V Architecture Patterns |
|
|
299 | (132) |
|
|
|
301 | (36) |
|
|
|
The Grid Architectural Pattern: Leveraging Distributed Processing Capabilities |
|
|
337 | (20) |
|
|
|
|
|
|
|
|
|
Patterns of Component and Language Integration |
|
|
357 | (44) |
|
|
|
Patterns for Successful Framework Development |
|
|
401 | (30) |
|
|
|
|
|
431 | (124) |
|
|
|
433 | (20) |
|
|
|
A Language Designer's Pattern Language |
|
|
453 | (54) |
|
|
|
|
|
The Language of Shepherding |
|
|
507 | (24) |
|
|
|
Patterns of the Prairie Houses |
|
|
531 | (24) |
|
|
| About the Authors |
|
555 | (10) |
| Index |
|
565 | |
Excerpts
On the first day of EuroPLoP, my workshop said to me, "Delete everything on page three."It is strange for us to realize that the design patterns movement in software design is at least ten years old. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides'Design Patterns#x2014;the urtext of patterns in software design#x2014;was unleashed into an unsuspecting world (or at least, the OOPSLA conference) in late 1994#x2014;although, following in the grand tradition of book publishers, its copyright date is 1995. Jim Coplien'sSoftware Patterns, and the first volume (by Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal) in the enduringPatterns of Software Architecturefollowed in 1996, setting the template or the blueprint#x2014;well, the pattern for what would follow. Inspired by these large-scale efforts, many other authors have also taken up the cause of writing patterns, centered around the Pattern Languages of Programming conference series#x2014;the first, PLoP in Monticello, Illinois, beginning in 1994 followed by EuroPLoP beginning at Kloster Irsee in 1995, and then expanding to a series of conferences held worldwide. We are all older: many of us have much less hair than we did back then.Design Patterns#x2014;and all the work that was contemporaneous, that followed, that was inspired, or that reacted against it#x2014;really has two key values. First, to understand and to catalogue successful, proven software designs. Second, to explain and name those designs so that they can be understood, communicated, and adopted by others. To that end, software designs are described as "patterns": small, independent, interdependent pieces of a design that can be combined in many ways with many other patterns and programming techniques to generate many designs for whole programs, just as words in a language may be combined in many ways to generate an infinity of sentences, paragraphs, novels, or book prefaces. This book, and the Pattern Languages of Program Design series of which this is the latest volume, are a testament to the flexibility, diversity, and openness of patterns and the community that has grown up around them.On the second day of Europlop, my workshop said to me, "Too many patterns."This volume represents the fifth installment in a series that collects first-rate patterns from Pattern Languages of Programs conferences. These conferences are unique in that they consist of working sessions. Instead of presenting their work in front of a passive and sometimes dormant audience, pattern authors receive feedback from their peers. During writer's workshops, a group of pattern authors discusses a draft and provides constructive criticism to the author.All the papers in this book were workshopped at PLoP conferences from 1998 through 2004. We invited top submissions from PLoP and ChiliPLoP (USA), EuroPLoP and VikingPLoP (Europe), KoalaPLoP (Australia), SugarLoaf PLoP (Brazil), and MensorePLoP (Japan) conferences. To maintain the tradition of previous PLoPD volumes while adding unique color to this collection, the editing team was comprised of three editors with different backgrounds (and also from different continents), who are themselves pattern authors and long-time members of the patterns community.Current and past pattern authors welcomed the PLoPD5 call for contributions with enthusiasm. Consequently, we received over 70 papers to be considered for this volume. The submissions covered architecture, analysis, and design patterns on a wide range of topics, including aspects, Web-based applications, security, middleware, distributed workflow, finite state machines, patterns about patterns (i.e., meta-patterns), and others. To tackle this repertoire, we enlisted seasoned members of the pattern community to help us with the selection process. Each submission was reviewed for quality as well as fit by at least