''Enterprise Integration Patterns'' is a book by Gregor Hohpe and Bobby Woolf and describes 65
pattern
A pattern is a regularity in the world, in human-made design, or in abstract ideas. As such, the elements of a pattern repeat in a predictable manner. A geometric pattern is a kind of pattern formed of geometric shapes and typically repeated l ...
s for the use of
enterprise application integration
Enterprise application integration (EAI) is the use of software and computer systems' architectural principles to integrate a set of enterprise computer applications.
Overview
Enterprise application integration is an integration framework comp ...
and
message-oriented middleware
Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complex ...
in the form of a
pattern language
A pattern language is an organized and coherent set of ''patterns'', each of which describes a problem and the core of a solution that can be used in many ways within a specific field of expertise. The term was coined by architect Christopher Alexa ...
.
The integration (messaging) pattern language
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
An internal link is a type of hyperlink on a web page to another page or resource, such as an image or document, on the same website or domain.
Hyperlinks are considered either "external" or "internal" depending on their target or destination ...
).
Integration styles and types
The book distinguishes four top-level alternatives for integration:
# File Transfer
# Shared Database
# Remote Procedure Invocation
# Messaging
The following integration types are introduced:
* Information Portal
* Data Replication
* Shared Business Function
*
Service Oriented Architecture
In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provided ...
* Distributed Business Process
* Business-to-Business Integration
* Tightly Coupled Interaction vs. Loosely Coupled Interaction
Messaging
* Message Channel
* Message
* Pipes and Filters
* Message Router
* Message Translator
* Message Endpoint
Message Channel
* 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
* Command Message
* Document Message
* Event Message
* Request-Reply
* Return Address
* Correlation Identifier
* Message Sequence
* Message Expiration
* Format Indicator
Message Router
* 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
* Envelope Wrapper
* Content Enricher
* Content Filter
* Claim Check
* Normalizer
* Canonical Data Model
Message Endpoint
* 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
* 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 an
interviewin ''
IEEE Software
''IEEE Software'' is a bimonthly peer-reviewed magazine and scientific journal published by the IEEE Computer Society covering all aspects of software engineering, processes, and practices. Its mission is to be the best source of reliable, useful ...
''.
Implementation
Enterprise Integration Patterns are implemented in many open source integration solutions. Notable implementations include
Spring Integration,
Apache Camel
Apache Camel is an open source framework for message-oriented middleware with a rule-based routing and mediation engine that provides a Java object-based implementation of the Enterprise Integration Patterns using an application programming inte ...
,
Red Hat Fuse,
Mule ESB
Mule is a lightweight enterprise service bus (ESB) and integration framework provided by MuleSoft. The platform is Java-based but, can broker interactions between other platforms such as .NET using web services or sockets.
The architecture i ...
and
Guaraná DSL
Guaraná DSL is a domain-specific language (DSL) to design enterprise application integration (EAI) solutions at a high level of abstraction. The resulting models are platform-independent, so engineers do not need to have skills on a low-level inte ...
.
See also
*
Enterprise messaging system
An enterprise messaging system (EMS) or messaging system in brief is a set of published enterprise-wide standards that allows organizations to send semantically precise messages between computer systems. EMS systems promote loosely coupled arch ...
*
Loose coupling
In computing and systems design, a loosely coupled system is one
# in which components are weakly associated (have breakable relationships) with each other, and thus changes in one component least affect existence or performance of another comp ...
*
Software design pattern
In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code ...
References
External links
*
*
*
American non-fiction books
2003 non-fiction books
Software engineering books
Software design patterns
Enterprise application integration
Message-oriented middleware
Monographs
{{compu-book-stub