Visio and Omnigraffle Stencil
Matthew Oskowis (contact) created a Visio stencil that contains 51 integration pattern icons as Visio shapes. Each shape includes the solution text for the corresponding pattern. This stencil is invaluable when drawing out solutions based on the notation defined in the book. The stencil is available in Visio 2002 and a Visio 5 versions. If soneone if willing to port these to a newer version of visio, let me know.
Gunnar Peterson created a stencil for Omnigraffle. According to the site it has over 18000 downloads!
EIP Stencil for Omnigraffle (200 KB)
Articles and Presentations
Pearson has generously made the Introduction, Chapter 2 ("Integration Styles") and Chapter 3 ("Messaging Systems") of our book available for download. If you like what you see, please consider buying the book.
Workflow Patterns, Wil van der Aalst, Arthur ter Hofstede, Marlon Dumas
An extensive collection of workflow patterns from multiple perspectives: control-flow, data, resource, and exception handling. Wil also wrote a good book on Workflow Management and one on Process Mining.
Service Interaction Patterns, Alistair Barros, Marlon Dumas, Arthur ter Hofstede
A collection of basic interaction patterns.
Patterns of System Integration with Enterprise Messaging, Bobby Woolf, Kyle Brown
Bobby and Kyle's original paper workshopped at PLoP 2002 and subsequently merged with my paper to become the nucleus of Enterprise Integration Patterns.
Stylized Architecture, Design Patterns, and Objects, Monroe, Kompanek, Melton, Garlan
A Note on Distributed Computing Samuel C. Kendall, Jim Waldo, Ann Wollrath and Geoff Wyant, 1994
10 years ago Waldo et al. already reminded us why attempting to make distribution transparent to developers is a bad idea. I wish more Web services architects read this paper.
UML Profile for Enterprise Application Integration, Object Management Group , 2002
A more formal approach to describing integration solutions, implemented as a UML profile. While it uses some of the same vocabulary as our patterns the focus is on a formal specification language whereas our patterns provide guidance about proper usage and trade-offs.
Communicating Sequential Processes, C. A. R. Hoare, Communications of the ACM , 1978
Still one of the best concurrency models, which for example inspired the Go Language. ACM on-line library access is required to see the full-text version of this article.
Simple Messaging Toolkit
For my ACM Middleware and OOPSLA tutorials I used a messaging toolkit that implements many of the basic patterns in our book. The toolkit allows users to compose solutions from the basic patterns and observe them in action. I developed the toolkit in C#, mostly because I am more familiar with the .NET user interface libraries. The kit is likely not 100% robust yet, but I am looking for feedback on the usefulness of the concept. The individual components can be run directly from the DOS command line or from a batch script. These scripts have a very nice, Domain-specific language feel to them.
These example implementations are not the patterns, but only a consistent example pattern implementations. Patterns comprise intent, forces, context etc. and are generally technology independent. For this toolkit I chose a specific implementation technology and created a collection of examples of the patterns. Read [more on the relationship between the toolkit and the patterns]
1) Extract the ZIP file, preserving the folder structure.
2) Make sure your Windows Message Queuing service is active (see reference Sheet for details).
3) Run "Exercise1a.bat" from the "Exercises" folder.
4) Select values from the drop-down lists in the Customer window and click ' Send Order'.
5) Follow the Tutorial Presentation for more complex examples and exercises.
Microsoft Windows XP or 2003
Microsoft .NET Framework 2.0
Microsoft Message Queuing (part of Windows)
Loan Broker MSMQ Example from Chapter 9
Multiple readers have asked for the complete source for the Loan Broker example from Chapter 9. While the examples in the book are primarily intended to illustrate design trade-offs, a running example can be a useful learning tool. The ZIP file contains the complete Visual Studio solution. It should also load in newer versions of .Net and Visual Studio. It is also possible to compile the individual projects from the command line and avoid the need for Visual Studio.Requirements:
Microsoft Windows XP or 2003
Microsoft .NET Framework 1.1
Microsoft Visual Studio .NET 2003