Enterprise Integration Patterns

2003 book by Gregor Hohpe and Bobby Woolf

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Author| Gregor Hohpe and Bobby Woolf
Language| English
Series| Martin Fowler Signature Series
Subject| Enterprise integration pattern
Genre| Non-fiction, Software development
Published| 10 October 2003
ISBN| 978-0321200686

Enterprise Integration Patterns is a book by Gregor Hohpe and Bobby Woolf which describes 65 patterns for the use of enterprise application integration and message-oriented middleware in the form of a pattern language.

## The integration (messaging) pattern language

[edit]

The pattern language presented in the book consists of 65 patterns structured into 9 categories, which largely follow the flow of a message from one system to the next through channels, routing, and transformations. The book includes an icon-based pattern language, sometimes nicknamed "GregorGrams" after one of the authors. Excerpts from the book (short pattern descriptions) are available on the supporting website (see External links).

### Integration styles and types

[edit]

The book distinguishes four top-level alternatives for integration:

1. File Transfer
2. Shared Database
3. Remote Procedure Invocation
4. Messaging

The following integration types are introduced:

* Information Portal
* Data Replication
* Shared Business Function
* Service Oriented Architecture
* Distributed Business Process
* Business-to-Business Integration
* Tightly Coupled Interaction vs. Loosely Coupled Interaction

### Messaging

[edit]

* Message Channel
* Message
* Pipes and Filters
* Message Router
* Message Translator
* Message Endpoint

### Message Channel

[edit]

* Point-to-Point Channel
* Publish-Subscribe Channel
* Datatype Channel
* Invalid Message Channel
* Dead Letter Channel
* Guaranteed Delivery
* Channel Adapter
* Messaging Bridge
* Message Bus

### Message Construction

[edit]

* Command Message
* Document Message
* Event Message
* Request-Reply
* Return Address
* Correlation Identifier
* Message Sequence
* Message Expiration
* Format Indicator

### Message Router

[edit]

* Content-Based Router
* Message Filter
* Dynamic Router
* Recipient List
* Splitter
* Aggregator
* Resequencer
* Composed Message Processor
* Scatter-Gather
* Routing Slip
* Process Manager
* Message Broker

### Message Transformation

[edit]

* Envelope Wrapper
* Content Enricher
* Content Filter
* Claim Check
* Normalizer
* Canonical Data Model

### Message Endpoint

[edit]

* Messaging Gateway
* Messaging Mapper
* Transactional Client
* Polling Consumer
* Event-Driven Consumer
* Competing Consumers
* Message Dispatcher
* Selective Consumer
* Durable Subscriber
* Idempotent Receiver
* Service Activator

### System Management

[edit]

* Control Bus
* Detour
* Wire Tap
* Message History
* Message Store
* Smart Proxy
* Test Message
* Channel Purger

The pattern language continues to be relevant as of today, for instance in cloud application development and integration, and in the internet of things. In 2015, the two book authors reunited—for the first time since the publication of the book—for a retrospective and interview in IEEE Software.[1]

## Implementation

[edit]

Enterprise Integration Patterns are implemented in many open source integration solutions. Notable implementations include Spring Integration, Apache Camel, Red Hat Fuse, Mule ESB and Guaraná DSL.

## See also

[edit]

* Enterprise messaging system
* Loose coupling
* Software design pattern

## References

[edit]

1. ^ Zimmermann, Olaf; Pautasso, Cesare; Hohpe, Gregor; Woolf, Bobby (2016). "A Decade of Enterprise Integration Patterns: A Conversation with the Authors". IEEE Software. 33 (1): 13–19\. doi:10.1109/MS.2016.11.

## External links

[edit]

* Official website
* "Table Of Contents". Retrieved 4 June 2014.
* "The Add-in for Enterprise Architect extended the capability of this tool to create EIP models". Archived from the original on 27 November 2021. Retrieved 8 April 2016.

* v
* t
* e

Software design patterns

Gang of Four
patterns|

| Creational|

* Abstract factory
* Builder
* Factory method
* Prototype
* Singleton

|

Structural|

* Adapter
* Bridge
* Composite
* Decorator
* Facade
* Flyweight
* Proxy

Behavioral|

* Chain of responsibility
* Command
* Interpreter
* Iterator
* Mediator
* Memento
* Observer
* State
* Strategy
* Template method
* Visitor

Concurrency
patterns|

* Active object
* Balking
* Binding properties
* Double-checked locking
* Event-based asynchronous
* Guarded suspension
* Join
* Lock
* Monitor
* Proactor
* Reactor
* Read–write lock
* Scheduler
* Scheduled-task pattern
* Semaphore
* Thread pool
* Thread-local storage

Architectural
patterns|

* Front controller
* Interceptor
* MVC
* MVP
* MVVM
* ADR
* ECS
* n-tier
* Specification
* Publish–subscribe
* Naked objects
* Service locator
* Active record
* Identity map
* Data access object
* Data transfer object
* Inversion of control
* Model 2
* Broker

Other
patterns|

* Blackboard
* Business delegate
* Composite entity
* Dependency injection
* Guard clause
* Intercepting filter
* Lazy loading
* Mock object
* Null object
* Object pool
* Servant
* Twin
* Type tunnel
* Method chaining
* Delegation

Books|

* Design Patterns
* Enterprise Integration Patterns

People|

* Christopher Alexander
* Erich Gamma
* Ralph Johnson
* John Vlissides
* Grady Booch
* Kent Beck
* Ward Cunningham
* Martin Fowler
* Robert Martin
* Jim Coplien
* Douglas Schmidt
* Linda Rising

Communities|

* The Hillside Group
* Portland Pattern Repository

See also|

* Anti-pattern
* Architectural pattern

This article about a computer book or series of books is a stub. You can help Wikipedia by expanding it.

|

* v
* t
* e

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template