Enterprise Integration Patterns

I like to write and speak about EAI, SOA, Web Services, Agile Development, and Patterns. This page lists my white papers and articles. Please check out the Links section for interesting works by other authors. If you find any of these articles useful, feel free to contact me directly.

IEEE Sofwtare Magazine Nov/Dec 2013

A Decade of Enterprise Integration Patterns [Download PDF from IEEE Explore]
IEEE Software Magazine January/February 2016

A little over a decade after EIP was published, Bobby and I sat down with Cesare Pautasso and Olaf Zimmermann to discuss how integration platforms evolved, why the patterns remained relevant, and what we would do differently today.

IEEE Sofwtare Magazine Nov/Dec 2013

20 Years of Patterns' Impact [Download PDF from IEEE Explore]
IEEE Software Magazine November/December 2013

This article under the Impacts column of IEEE Software Magazine celebrates 20 years of software patterns. IEEE Software advisory board members teamed up with members of the Hillside Group, a nonprofit organization that promotes the use of patterns and pattern languages, to reflect on the state of the practice and impact of patterns.

With Rebecca Wirfs-Brock, Joe Yoder, Olaf Zimmermann

SOA Patterns

SOA Patterns - New Insights or Recycled Knowledge? [PDF]
May 2007

Design Patterns have enjoyed enormous popularity in the software community and have become somewhat of a fad. This can make it challenging to distinguish patterns that convey new knowledge from recipes or tutorials that have been cast into patterns form. This article examines the role patterns play in the adoption of new technologies and architectural styles. In particular it describes why the shift to service-oriented architectures requires us to discover, document, and share new patterns.

IEEE Internet Computing

Let's Have a Conversation [PDF]
IEEE Internet Computing May/June 2007

Communicating inside a single program is trivial: one method calls another, the result comes back, and the calling method continues. If anything goes wrong, an exception is thrown. If the program aborts altogether, both caller and callee share the same fate, making the interaction an all-or-nothing affair.
In the land of loosely coupled distributed systems, things are a little more complicated. Messages are sent, correlated, lost, retried, timed out. Soon we are looking at a full fledged conversation between multiple systems.


Workshop Report: Conversation Patterns [PDF]
June 2006, Dagstuhl Seminar Proceedings 06291

In a service-oriented architecture systems communicate by exchanging messages. Message passing provides for robust and loosely coupled interaction but it also provides less structure than traditional RPC models, which are based on a fairly rigid request-response interaction style. Instead, messages exchanged over time between a set of parties can form a multitude of conversations. An expressive contract between communicating parties should define a coordination protocol that describes which conversations are legal. Such a protocol can be expressed in different ways, for example through choreography or public endpoint process definitions. The purpose of conversations patterns is to document common forms of conversations in the design pattern format, highlighting design trade-offs and popular implementations. As part of the Dagstuhl Seminar 06291 on The Role of Business Processes in Service Oriented Architectures in July 2006 we held a Workshop on Conversation Patterns. In this paper, we report on the results of this workshop.

Programmieren ohne Stack: Ereignis-getriebene Architekturen [PDF]
ObjektSpektrum March/April 2006

My first published article in German. Here the (unedited) English adaptation - Programming Without a Call Stack.

Most computer systems are built on a command-and-control scheme: one method calls another method and instructs it to perform some action or to retrieve some required information. But often the real world works differently. A company receives a new order; a web server receives a request for a Web page, the right front wheel of my car locks up. In neither case did the system (order processing, web server, anti-lock brake control) schedule or request the action. Instead the event occurred based on external action or activity, caused either by the physical world or another, connected computer system. Could we change the architecture of our system to relinquish control and instead respond to events as they arrive? What would such a system look like?


Cutter Executive Update: Open Source Middleware: Ready for Prime Time?
July 2005, Cutter Consortium (with Ian Cartwright)

Open source software (OSS) has captured enormous mindshare not only among developers but also among consumers and enterprise users. When you browse the Web, you might well use a Mozilla FireFox browser, be routed to the correct host via a BIND DNS server, and view a Web page served up by the Apache HTTP server running on a LINUX operating system. All four pieces of software are part of the growing repertoire of successful open source applications.

The full text version can be ordered on the Cutter site.

The Best Software Writing I: Selected and Introduced by Joel Spolsky
June 2005, APress

Joel selected my blog entry Starbucks does not use Two-Phase Commit for his collection of software essays.

Your Coffee Shop Does Not Use Two-Phase Commit [HTML] [PDF]
IEEE Software Magazine March/April 2005

Asynchronous processing models can be highly efficient but are not without challenges. If the real world writes the best stories, then maybe we can learn something from Starbucks about designing successful asynchronous messaging solutions.
(on-line article only available to IEEE digital library subscribers)

(This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.)

Developing in a Service-Oriented World [PDF]
January 2005, GI Lecture Notes in Informatics P-65

The biggest shift triggered by SOA is not in the technologies used but in the way we think about our software. This paper explores what SOA means for developers - new architectural styles, new programming models and new tools.

(This paper originally appeared in the proceedings of the BTW 2005 Conference in Karlsruhe.)


Enterprise Integration Patterns with BizTalk Server 2004 [PDF]
July 2004

This paper demonstrates how a pattern-based design approach can help decompose an integration problem into a set of reusable patterns. Next, we map these patterns to the Microsoft BizTalk Server 2004 platform.

Software Development Magazine

An Asynchronous World [HTML]
July 2003, Software Development Magazine

Online, you can get all the documentation you want on the Java Messaging Service API. But when it comes to drafting messaging architectures for distributed logic and data, it's often more interesting to look at what sits between the applications.
(free one-time registration required to access on-line article)

Software Development Magazine

XML Abuse [HTML]
Dec 2002, Software Development Magazine

XML is the wonderdrug of the 21st century. Or so make you the vendors and marchitects believe. However, like any good tool it can be abused in at least five different ways. This article discusses some of the most hair-raising XML abuse I have encountered.
(Free one-time registration required to access on-line article)


Agile EAI [PDF] [HTML]
Nov 2002, with Martin Fowler

This article describes some of the benefits and challenges of implementing agile practices for EAI development. It is based on a talk that Martin and I gave at the LOMA Systems Forum last year.


Test-Driven Development in Enterprise Integration Projects [PDF]
Nov 2002

This whitepaper describes how test-driven development can benefit EAI projects. It examines the challenges of automated testing in an asynchronous messaging environment and presents tools and techniques to help improve quality and productivity on EAI projects.

PLoP Enterprise Integration Patterns [PDF]
July 2002
My original paper on integration patterns. I workshopped this paper at the PLoP conference in 2002. You can see that the patterns have come a long way since last Summer.

Software Development Magazine

Stairway to Heaven - Service Oriented Architectures [PDF]
May 2002, Software Development Magazine

This article tries to dampen some of the hype around Web services and Service-Oriented Architectures (SOA). Web Services supporters herald the advent of the Service-Oriented Architecture which will solve our EAI-style integration pains. SOAs are an intriguing concept, but it will take a multi-phase evolution until SOAs will establish themselves as the integration architecture of choice.
(Free one-time registration required to access on-line article)