| |
| |
Foreword | |
| |
| |
| |
Foreword | |
| |
| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
Introduction | |
| |
| |
| |
Solving Integration Problems Using Patterns | |
| |
| |
The Need for Integration | |
| |
| |
Integration Challenges | |
| |
| |
How Integration Patterns Can Help | |
| |
| |
The Wide World of Integration | |
| |
| |
Loose Coupling | |
| |
| |
One-Minute EAI | |
| |
| |
A Loosely Coupled Integration Solution | |
| |
| |
Widgets & Gadgets 'R Us: An Example | |
| |
| |
Internal Systems | |
| |
| |
Taking Orders | |
| |
| |
Processing Orders | |
| |
| |
Checking Status | |
| |
| |
Change Address | |
| |
| |
New Catalog | |
| |
| |
Announcements | |
| |
| |
Testing and Monitoring | |
| |
| |
Summary | |
| |
| |
| |
Integration Styles | |
| |
| |
Introduction | |
| |
| |
File Transfer | |
| |
| |
| |
Shared Database | |
| |
| |
| |
Remote Procedure Invocation | |
| |
| |
| |
Messaging | |
| |
| |
| |
Messaging Systems | |
| |
| |
Introduction | |
| |
| |
Message Channel | |
| |
| |
Message | |
| |
| |
Pipes and Filters | |
| |
| |
Message Router | |
| |
| |
Message Translator | |
| |
| |
Message Endpoint | |
| |
| |
| |
Messaging Channels | |
| |
| |
Introduction | |
| |
| |
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 | |
| |
| |
Introduction | |
| |
| |
Command Message | |
| |
| |
Document Message | |
| |
| |
Event Message | |
| |
| |
Request-Reply | |
| |
| |
Return Address | |
| |
| |
Correlation Identifier | |
| |
| |
Message Sequence | |
| |
| |
Message Expiration | |
| |
| |
Format Indicator | |
| |
| |
| |
Interlude: Simple Messaging | |
| |
| |
Introduction | |
| |
| |
Request-Reply Example | |
| |
| |
Publish-Subscribe Example | |
| |
| |
JMS Request-Reply Example | |
| |
| |
Request-Reply Example | |
| |
| |
Request-Reply Code | |
| |
| |
Invalid Message Example | |
| |
| |
Conclusions | |
| |
| |
.NET Request-Reply Example | |
| |
| |
Request-Reply Example | |
| |
| |
Request-Reply Code | |
| |
| |
Invalid Message Example | |
| |
| |
Conclusions | |
| |
| |
JMS Publish-Subscribe Example | |
| |
| |
The Observer Pattern | |
| |
| |
Distributed Observer | |
| |
| |
Publish-Subscribe | |
| |
| |
Comparisons | |
| |
| |
Push and Pull Models | |
| |
| |
Channel Design | |
| |
| |
Conclusions | |
| |
| |
| |
Message Routing | |
| |
| |
Introduction | |
| |
| |
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 | |
| |
| |
Introduction | |
| |
| |
Envelope Wrapper | |
| |
| |
Content Enricher | |
| |
| |
Content Filter | |
| |
| |
Claim Check | |
| |
| |
Normalizer | |
| |
| |
Canonical Data Model | |
| |
| |
| |
Interlude: Composed Messaging | |
| |
| |
Loan Broker Example | |
| |
| |
Obtaining a Loan Quote | |
| |
| |
Designing the Message Flow | |
| |
| |
Sequencing: Synchronous versus Asynchronous | |
| |
| |
Addressing: Distribution versus Auction | |
| |
| |
Aggregating Strategies: Multiple Channels versus Single Channel | |
| |
| |
Managing Concurrency | |
| |
| |
Three Implementations | |
| |
| |
Synchronous Implementation Using Web Services | |
| |
| |
| |
Solution Architecture | |
| |
| |
Web Services Design Considerations | |
| |
| |
Apache Axis | |
| |
| |
Service Discovery | |
| |
| |
The Loan Broker Application | |
| |
| |
Components of the Loan Broker Application | |
| |
| |
Client Application | |
| |
| |
Running the Solution | |
| |
| |
Performance Limitations | |
| |
| |
Limitations of This Example | |
| |
| |
Summary | |
| |
| |
Asynchronous Implementation with MSMQ | |
| |
| |
Loan Broker Ecosystem | |
| |
| |
Laying the Groundwork: A Messaging Gateway | |
| |
| |
Base Classes for Common Functionality | |
| |
| |
Designing the Bank | |
| |
| |
Designing the Credit Bureau | |
| |
| |
Designing the Loan Broker | |
| |
| |
Refactoring the Loan Broker | |
| |
| |
Putting it All Together | |
| |
| |
Improving Performance | |
| |
| |
A Few Words on Testing | |
| |
| |
Limitations of This Example | |
| |
| |
Summary | |
| |
| |
Asynchronous Implementation with TIBCO ActiveEnterprise | |
| |
| |
| |
Solution Architecture | |
| |
| |
The Implementation Toolset | |
| |
| |
The Interfaces | |
| |
| |
Implementing the Synchronous Services | |
| |
| |
The Loan Broker Process | |
| |
| |
Managing Concurrent Auctions | |
| |
| |
Execution | |
| |
| |
Conclusions | |
| |
| |
| |
Messaging Endpoints | |
| |
| |
Introduction | |
| |
| |
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 | |
| |
| |
Introduction | |
| |
| |
Control Bus | |
| |
| |
Detour | |
| |
| |
Wire Tap | |
| |
| |
Message History | |
| |
| |
Message Store | |
| |
| |
Smart Proxy | |
| |
| |
Test Message | |
| |
| |
Channel Purger | |
| |
| |
| |
Interlude: System Management Example | |
| |
| |
Loan Broker System Management | |
| |
| |
Instrumenting the Loan Broker | |
| |
| |
Management Console | |
| |
| |
Loan Broker Quality of Service | |
| |
| |
Verify the Credit Bureau Operation | |
| |
| |
Credit Bureau Failover | |
| |
| |
Enhancing the Management Console | |
| |
| |
Limitations of This Example | |
| |
| |
| |
Integration Patterns in Practice | |
| |
| |
Case Study: Bond Pricing System | |
| |
| |
| |
Building a System | |
| |
| |
Architecture with Patterns | |
| |
| |
Structuring Channels | |
| |
| |
Selecting a Message Channel | |
| |
| |
Problem Solving with Patterns | |
| |
| |
Flashing Market Data Updates | |
| |
| |
Major Production Crash | |
| |
| |
Summary | |
| |
| |
| |
Concluding Remarks | |
| |
| |
Emerging Standards and Futures in Enterprise Integration | |
| |
| |
| |
The Relationship between Standards and Design Patterns | |
| |
| |
Survey of Standards Processes and Organizations | |
| |
| |
Business Process Components and Intra-Web Service Messaging | |
| |
| |
ebXML and the Electronic Business Messaging Service (ebMS) | |
| |
| |
Business Process Execution Language for Web Services (BEPL4WS) | |
| |
| |
Web Service Choreography Interface (WSCI) | |
| |
| |
Java Business Process Component Standards | |
| |
| |
WS-* | |
| |
| |
Conclusions | |
| |
| |
Bibliography | |
| |
| |
Index | |