Enterprise Integration Patterns
Tools & Downloads
HOME PATTERNS RAMBLINGS ARTICLES TALKS DOWNLOAD BOOKS CONTACT
Subscribe  Ramblings
My latest thoughts on integration architecture:
Queues invert control flow but require flow control
Control Flow—The Other Half of Integration Patterns
Event-driven = Loosely coupled? Not so fast!
Subscribe  Upcoming Events
Articles & Interviews
A Decade of Enterprise Integration Patterns
(IEEE Software)
20 Years of Patterns' Impact
(IEEE Software)
Conversations Between Loosely Coupled Services
(Video on InfoQ)
Developing in a Service-oriented World
(Video on InfoQ)
SOA Patterns - New Insights or Recycled Knowledge?
(Whitepaper)
Let's Have a Conversation
(IEEE Internet Computing)
Programming Without a Call Stack - Event-driven Architectures
(ObjektSpektrum, 2006)
Your Coffee Shop Does Not Use Two-Phase Commit
(IEEE Software)
Developing in a Service-Oriented World
(ThoughtWorks Whitepaper)
An Asynchronous World
(Software Development)
Presentation Downloads
Nearfield Communication (NFC) in Japan
(OOP 2012)
Embedded OSS
(OOP 2012)
Programming the Cloud
(QCOn Tokyo 2010)
Distributed Programming the Google Way
(Devoxx 2009)
Developing in a Service-Oriented World
(SOACon 2007)
Programming without a Call Stack: Event-driven Architectures
(SOACon 2007)
Software Visualization and Model Extraction
(TheServerSide)
Where did all my beatiful code go?
(SpringOne, 2006)
Conversations Between Loosely Coupled Systems
(SD West, 2006)
Enterprise Integration Patterns
(JAOO, 2003)

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.

EIP Stencil for Visio 2002 (147 KB ZIP)
EIP Stencil for Visio 5 (134 KB ZIP)

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

You can download most of my articles from the Articles page and many of my presentations from the Talks page. You may also want to check out my blog.

Sample Chapter

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.

Chapter 2: "Integration Styles" PDF Download from Pearson Education (1073 KB)
Chapter 3: "Messaging Systems" PDF (614 KB)

On-line Resources

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.

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.

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]

Quickstart: download_notes

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.

Requirements:

Microsoft Windows XP or 2003
Microsoft .NET Framework 2.0
Microsoft Message Queuing (part of Windows)

Download ZIP File (1 MB) • Reference Sheet and Installation (51 KB) • Tutorial Presentation (1.2 MB) • Release Notes

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

Download ZIP File (48 KB) • ReadMe File