rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780321200686

Enterprise Integration Patterns Designing, Building, and Deploying Messaging Solutions

by ;
  • ISBN13:

    9780321200686

  • ISBN10:

    0321200683

  • Edition: 1st
  • Format: Hardcover
  • Copyright: 2003-10-10
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
  • Complimentary 7-Day eTextbook Access - Read more
    When you rent or buy this book, you will receive complimentary 7-day online access to the eTextbook version from your PC, Mac, tablet, or smartphone. Feature not included on Marketplace Items.
List Price: $69.99 Save up to $0.07
  • Buy New
    $69.92
    Add to Cart Free Shipping Icon Free Shipping

    THIS IS A HARD-TO-FIND TITLE. WE ARE MAKING EVERY EFFORT TO OBTAIN THIS ITEM, BUT DO NOT GUARANTEE STOCK.

    7-Day eTextbook Access 7-Day eTextbook Access

Summary

bull;Would you like to use a consistent visual notation for drawing integration solutions? Look inside the front cover. bull;Do you want to harness the power of asynchronous systems without getting caught in the pitfalls? See "Thinking Asynchronously" in the Introduction. bull;Do you want to know which style of application integration is best for your purposes? See Chapter 2, Integration Styles. bull;Do you want to learn techniques for processing messages concurrently? See Chapter 10, Competing Consumers and Message Dispatcher. bull;Do you want to learn how you can track asynchronous messages as they flow across distributed systems? See Chapter 11, Message History and Message Store. bull;Do you want to understand how a system designed using integration patterns can be implemented using Java Web services, .NET message queuing, and a TIBCO-based publish-subscribe architecture? See Chapter 9, Interlude: Composed Messaging. Utilizing years of practical experience, seasoned experts Gregor Hohpe and Bobby Woolf show how asynchronous messaging has proven to be the best strategy for enterprise integration success. However, building and deploying messaging solutions presents a number of problems for developers. Enterprise Integration Patterns provides an invaluable catalog of sixty-five patterns, with real-world solutions that demonstrate the formidable of messaging and help you to design effective messaging solutions for your enterprise. The authors also include examples covering a variety of different integration technologies, such as JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP, and XSL. A case study describing a bond trading system illustrates the patterns in practice, and the book offers a look at emerging standards, as well as insights into what the future of enterprise integration might hold. This book provides a consistent vocabulary and visual notation framework to describe large-scale integration solutions across many technologies. It also explores in detail the advantages and limitations of asynchronous messaging architectures. The authors present practical advice on designing code that connects an application to a messaging system, and provide extensive information to help you determine when to send a message, how to route it to the proper destination, and how to monitor the health of a messaging system. If you want to know how to manage, monitor, and maintain a messaging system once it is in use, get this book. 0321200683B09122003

Author Biography

Gregor Hohpe leads the enterprise integration practice at ThoughtWorks, Inc., a specialized provider of application development and integration services. Drawing from his extensive experience designing and implementing integration solutions for enterprise clients, Gregor has published a number of papers and articles presenting a no-hype view on enterprise integration, Web services, and Service-Oriented Architectures. He is a frequent speaker at technical conferences around the world.

Bobby Woolf is coauthor of The Design Patterns Smalltalk Companion (Addison-Wesley, 1998), and author of articles in IBM DeveloperWorks, Java Developer's Journal, and elsewhere. He has been a tutorial presenter at OOPSLA, JavaEdge, and Smalltalk Solutions, among other conferences.



0321200683AB09122003

Table of Contents

Foreword by John Crupi xv
Foreword by Martin Fowler xvii
Preface xix
Acknowledgments xxv
Introduction xxix
Chapter 1: Solving Integration Problems Using Patterns 1(38)
The Need for Integration
1(1)
Integration Challenges
2(2)
How Integration Patterns Can Help
4(1)
The Wide World of Integration
5(4)
Loose Coupling
9(2)
One-Minute EAI
11(4)
A Loosely Coupled Integration Solution
15(2)
Widgets & Gadgets 'R Us: An Example
17(20)
Internal Systems
18(1)
Taking Orders
18(2)
Processing Orders
20(6)
Checking Status
26(4)
Change Address
30(2)
New Catalog
32(1)
Announcements
33(1)
Testing and Monitoring
34(3)
Summary
37(2)
Chapter 2: Integration Styles 39(18)
Introduction
39(4)
File Transfer (by Martin Fowler)
43(4)
Shared Database (by Martin Fowler)
47(3)
Remote Procedure Invocation (by Martin Fowler)
50(3)
Messaging
53(4)
Chapter 3: Messaging Systems 57(42)
Introduction
57(3)
Message Channel
60(6)
Message
66(4)
Pipes and Filters
70(8)
Message Router
78(7)
Message Translator
85(10)
Message Endpoint
95(4)
Chapter 4: Messaging Channels 99(44)
Introduction
99(4)
Point-to-Point Channel
103(3)
Publish-Subscribe Channel
106(5)
Datatype Channel
111(4)
Invalid Message Channel
115(4)
Dead Letter Channel
119(3)
Guaranteed Delivery
122(5)
Channel Adapter
127(6)
Messaging Bridge
133(4)
Message Bus
137(6)
Chapter 5: Message Construction 143(40)
Introduction
143(2)
Command Message
145(2)
Document Message
147(4)
Event Message
151(3)
Request-Reply
154(5)
Return Address
159(4)
Correlation Identifier
163(7)
Message Sequence
170(6)
Message Expiration
176(4)
Format Indicator
180(3)
Chapter 6: Interlude: Simple Messaging 183(42)
Introduction
183(4)
Request-Reply Example
183(2)
Publish-Subscribe Example
185(2)
JMS Request-Reply Example
187(11)
Request-Reply Example
187(2)
Request-Reply Code
189(7)
Invalid Message Example
196(1)
Conclusions
197(1)
.NET Request-Reply Example
198(9)
Request-Reply Example
198(2)
Request-Reply Code
200(5)
Invalid Message Example
205(1)
Conclusions
206(1)
JMS Publish-Subscribe Example
207(18)
The Observer Pattern
207(1)
Distributed Observer
208(1)
Publish-Subscribe
209(3)
Comparisons
212(1)
Push and Pull Models
213(6)
Channel Design
219(3)
Conclusions
222(3)
Chapter 7: Message Routing 225(102)
Introduction
225(5)
Content-Based Router
230(7)
Message Filter
237(6)
Dynamic Router
243(6)
Recipient List
249(10)
Splitter
259(9)
Aggregator
268(15)
Resequencer
283(11)
Composed Message Processor
294(3)
Scatter-Gather
297(4)
Routing Slip
301(11)
Process Manager
312(10)
Message Broker
322(5)
Chapter 8: Message Transformation 327(34)
Introduction
327(3)
Envelope Wrapper
330(6)
Content Enricher
336(6)
Content Filter
342(4)
Claim Check
346(6)
Normalizes
352(3)
Canonical Data Model
355(6)
Chapter 9: Interlude: Composed Messaging 361(102)
Loan Broker Example
361(10)
Obtaining a Loan Quote
361(1)
Designing the Message Flow
362(2)
Sequencing: Synchronous versus Asynchronous
364(2)
Addressing: Distribution versus Auction
366(2)
Aggregating Strategies: Multiple Channels versus Single Channel
368(1)
Managing Concurrency
368(1)
Three Implementations
369(2)
Synchronous Implementation Using Web Services (by Conrad F D'Cruz)
371(30)
Solution Architecture
371(1)
Web Services Design Considerations
372(4)
Apache Axis
376(3)
Service Discovery
379(1)
The Loan Broker Application
379(2)
Components of the Loan Broker Application
381(15)
Client Application
396(1)
Running the Solution
397(2)
Performance Limitations
399(1)
Limitations of This Example
400(1)
Summary
400(1)
Asynchronous Implementation with MSMQ
401(44)
Loan Broker. Ecosystem
401(1)
Laying the Groundwork: A Messaging Gateway
402(3)
Base Classes for Common Functionality
405(5)
Designing the Bank
410(2)
Designing the Credit Bureau
412(1)
Designing the Loan Broker
413(18)
Refactoring the Loan Broker
431(4)
Putting it All Together
435(1)
Improving Performance
435(5)
A Few Words on Testing
440(3)
Limitations of This Example
443(1)
Summary
444(1)
Asynchronous Implementation with TIBCO ActiveEnterprise (by Michael J. Rettig)
445(18)
Solution Architecture
445(3)
The Implementation Toolset
448(3)
The Interfaces
451(1)
Implementing the Synchronous Services
452(3)
The Loan Broker Process
455(4)
Managing Concurrent Auctions
459(1)
Execution
460(2)
Conclusions
462(1)
Chapter 10: Messaging Endpoints 463(74)
Introduction
463(5)
Messaging Gateway
468(9)
Messaging Mapper
477(7)
Transactional Client
484(10)
Polling Consumer
494(4)
Event-Driven Consumer
498(4)
Competing Consumers
502(6)
Message Dispatcher
508(7)
Selective Consumer
515(7)
Durable Subscriber
522(6)
Idempotent Receiver
528(4)
Service Activator
532(5)
Chapter 11: System Management 537(40)
Introduction
537(3)
Control Bus
540(5)
Detour
545(2)
Wire Tap
547(4)
Message History
551(4)
Message Store
555(3)
Smart Proxy
558(11)
Test Message
569(3)
Channel Purger
572(5)
Chapter 12: Interlude: System Management Example 577(26)
Loan Broker System Management
577(26)
Instrumenting the Loan Broker
578(1)
Management Console
579(1)
Loan Broker Quality of Service
579(8)
Verify the Credit Bureau Operation
587(5)
Credit Bureau Failover
592(3)
Enhancing the Management Console
595(7)
Limitations of This Example
602(1)
Chapter 13: Integration Patterns in Practice 603(22)
Case Study: Bond Pricing System (by Jonathan Simon)
603(22)
Building a System
603(1)
Architecture with Patterns
604(6)
Structuring Channels
610(4)
Selecting a Message Channel
614(4)
Problem Solving with Patterns
618(1)
Flashing Market Data Updates
618(2)
Major Production Crash
620(3)
Summary
623(2)
Chapter 14: Concluding Remarks 625(24)
Emerging Standards and Futures in Enterprise Integration (by Sean Neville)
625(24)
The Relationship between Standards and Design Patterns
626(1)
Survey of Standards Processes and Organizations
627(2)
Business Process Components and Intra-web Service Messaging
629(2)
ebXML and the Electronic Business Messaging Service (ebMS)
631(3)
Business Process Execution Language for Web Services (BEPL4WS)
634(2)
Web Service Choreography Interface (WSCI)
636(1)
Java Business Process Component Standards
637(2)
WS-*
639(8)
Conclusions
647(2)
Bibliography 649(10)
Index 659

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Excerpts

This is a book about enterprise integration using messaging. It does not document any particular technology or product. Rather, it is designed for developers and integrators using a variety of messaging products and technologies, such as Message-oriented middleware (MOM) and EAI suites offered by vendors such as IBM (WebSphere MQ Family), Microsoft (BizTalk), TIBCO, WebMethods, SeeBeyond, Vitria, and others. Java Message Service (JMS) implementations incorporated into commercial and open source J2EE application servers as well as standalone products. Microsoft's Message Queuing (MSMQ), accessible through several APIs, including the System.Messaging libraries in Microsoft .NET. Emerging Web services standards that support asynchronous Web services (for example, WS-ReliableMessaging) and the associated APIs such as Sun Microsystems' Java API for XML Messaging (JAXM) or Microsoft's Web Services Extensions (WSE). Enterprise integration goes beyond creating a single application with a distributedn-tier architecture, which enables a single application to be distributed across several computers. Whereas one tier in a distributed application cannot run by itself, integrated applications are independent programs that can each run by themselves, yet that function by coordinating with each other in a loosely coupled way. Messaging enables multiple applications to exchange data or commands across the network using a "send and forget" approach. This allows the caller to send the information and immediately go on to other work while the information is transmitted by the messaging system. Optionally, the caller can later be notified of the result through a callback. Asynchronous calls and callbacks can make a design more complex than a synchronous approach, but an asynchronous call can be retried until it succeeds, which makes the communication much more reliable. Asynchronous messaging also enables several other advantages, such as throttling of requests and load balancing. Who Should Read This Book This book is designed to help application developers and system integrators connect applications using message-oriented integration tools: Application architects and developerswho design and build complex enterprise applications that need to integrate with other applications. We assume that you're developing your applications using a modern enterprise application platform such as the Java 2 Platform, Enterprise Edition (J2EE), or the Microsoft .NET Framework. This book will help you connect the application to a messaging layer and exchange information with other applications. This book focuses on the integration of applications, not on building applications; for that, we refer you toPatterns of Enterprise Application Architectureby Martin Fowler. Integration architects and developerswho design and build integration solutions connecting packaged or custom applications. Most readers in this group will have experience with one of the many commercial integration tools like IBM WebSphere MQ, TIBCO, WebMethods, SeeBeyond, or Vitria, which incorporate many of the patterns presented in this book. This book helps you understand the underlying concepts and make confident design decisions using a vendor-independent vocabulary. Enterprise architectswho have to maintain the "big picture" view of the software and hardware assets in an enterprise. This book presents a consistent vocabulary and graphical notation to describe large-scale integration solutions that may span many technologies or point solutions. This language is also a key enabler for efficient communication between the enterprise architect and the integration and application architects and developers. What You Will Learn This book does not attempt to make a business case for enterprise application integration; the focus is on how to make it work. Yo

Rewards Program