360 likes | 547 Views
SOA-23: Enterprise Integration Patterns in Sonic ™ ESB. Christian Stiller. Technical Account Manager. Agenda. Enterprise Integration Patterns in Sonic ESB. Enterprise Integration Patterns Sonic ESB “built in” patterns Using patterns in Sonic workbench. What are Design Patterns?.
E N D
SOA-23: Enterprise Integration Patterns in Sonic™ ESB Christian Stiller Technical Account Manager
Agenda Enterprise Integration Patterns in Sonic ESB • Enterprise Integration Patterns • Sonic ESB “built in” patterns • Using patterns in Sonic workbench SOA-23: Enterprise Integration Patterns in Sonic ESB
What are Design Patterns? • Repeatable solution to a software designproblem • Design “template” • Relationships & interactions between classes and/or objects • Situation dependent, must be adapted • Not all patterns are “design” patterns • Architectural pattern • Code pattern SOA-23: Enterprise Integration Patterns in Sonic ESB
Benefits • Accelerates the development process • Tested & proven approaches • Familiar to developers • Provides a lexicon, facilitates communication • Basis for standards and documentation SOA-23: Enterprise Integration Patterns in Sonic ESB
Finding Patterns SOA-23: Enterprise Integration Patterns in Sonic ESB
One potential source • 60+ Patterns • 600+ Pages • Icon language http://www.enterpriseintegrationpatterns.com/ SOA-23: Enterprise Integration Patterns in Sonic ESB
Agenda Enterprise Integration Patterns in Sonic ESB • Enterprise Integration Patterns • Sonic ESB “built in” patterns • Using patterns in Sonic workbench SOA-23: Enterprise Integration Patterns in Sonic ESB
Message Bus pattern “What is an architecture that enables separate applications to work together, but in a decoupled fashion such that applications can be easily added or removed without affecting the others?” (http://integrationpatterns.com/MessageBus.html) SOA-23: Enterprise Integration Patterns in Sonic ESB
Message Bus pattern “An enterprise contains several existing systems that must be able to share data and operate in a unified manner in response to a set of common business requests.” SOA-23: Enterprise Integration Patterns in Sonic ESB
Control Bus pattern “How can we effectively administer a messaging system that is distributed across multiple platforms and a wide geographic area?” (http://integrationpatterns.com/ControlBus.html) SOA-23: Enterprise Integration Patterns in Sonic ESB
Control Bus pattern “Use a Control Bus to manage an enterprise integration system. The Control Bus uses the same messaging mechanism used by the application data, but uses separate channels to transmit data that is relevant to the management of components involved in the message flow.” SOA-23: Enterprise Integration Patterns in Sonic ESB
Guaranteed Delivery pattern “How can the sender make sure that a message will be delivered, even if the messaging system fails?” (http://integrationpatterns.com/MessageBus.html) SOA-23: Enterprise Integration Patterns in Sonic ESB
Guaranteed Delivery pattern “Use Guaranteed Delivery to make messages persistent so that they are not lost even if the messaging system crashes.” SOA-23: Enterprise Integration Patterns in Sonic ESB
Agenda Enterprise Integration Patterns in Sonic ESB • Enterprise Integration Patterns • Sonic ESB “built in” patterns • Using patterns in Sonic workbench SOA-23: Enterprise Integration Patterns in Sonic ESB
CBR pattern “The Content-Based Router examines the message content and routes the message onto a different channel based on data contained in the message. The routing can be based on a number of criteria such as existence of fields, specific field values etc.” (http://integrationpatterns.com/ContentBasedRouter.html) SOA-23: Enterprise Integration Patterns in Sonic ESB
CBR pattern • Incoming message routed to exactly one destination based on the content of the message SOA-23: Enterprise Integration Patterns in Sonic ESB
CBR pattern implementation • Standard ESB Content Based Routing service • xcbr rules file • Routed to first rule that matches SOA-23: Enterprise Integration Patterns in Sonic ESB
Recipient List pattern “The logic embedded in a Recipient List can be pictured as two separate parts even though the implementation is often coupled together. The first part computes a list of recipients. The second part simply traverses the list and sends a copy of the received message to each recipient.” (http://integrationpatterns.com/RecipientList.html) SOA-23: Enterprise Integration Patterns in Sonic ESB
Recipient List pattern • Incoming message routed to one or more destinations based on the content of the message SOA-23: Enterprise Integration Patterns in Sonic ESB
Recipient List pattern implementation • Standard ESB Content Based Routing service • xcbr rules file • Routed to all rules that match SOA-23: Enterprise Integration Patterns in Sonic ESB
Detour pattern “The Detour uses a simple context-based router with two output channels. One output channel passes the unmodified message to the original destination. When instructed by the Control Bus, the Detour routes messages to a different channel. This channel sends the message to additional components that can inspect and/or modify the message. Ultimately, these components route the message to the same destination.” (http://integrationpatterns.com/Detour.html) SOA-23: Enterprise Integration Patterns in Sonic ESB
Detour pattern • Incoming message routed to particular destination, but might have to go through some extra steps before it is routed to that destination SOA-23: Enterprise Integration Patterns in Sonic ESB
Detour pattern implementation • Standard ESB Content Based Routing service • xcbr rules file • Routed to first rule that matches • Default Destination is “pass through” branch SOA-23: Enterprise Integration Patterns in Sonic ESB
Wire tap pattern “The Wire Tap is a fixed Recipient List with two output channels. It consumes messages off the input channel and publishes the unmodified message to both output channels. To insert the Wire Tap into a channel, you need to create an additional channel and change the destination receiver to consume of the second channel. Because the analysis logic is located inside a second component, we can insert a generic Wire Tap into any channel without any danger of modifying the primary channel behavior. This improves reuse and reduces the risk of instrumenting an existing solution.” (http://integrationpatterns.com/WireTap.html) SOA-23: Enterprise Integration Patterns in Sonic ESB
Wire tap pattern • Send a copy of an incoming message to another process without changing the original message or its destination SOA-23: Enterprise Integration Patterns in Sonic ESB
Wire tap pattern implementation • Standard ESB Content Based Routing service • Delete decision branch • xcbr rules file • Routed to all rules that match • Always route to DEFAULT • Conditionally route to wiretap destination SOA-23: Enterprise Integration Patterns in Sonic ESB
Message Filter pattern “The Message Filter has only a single output channel. If the message content matches the criteria specified by the Message Filter, the message is routed to the output channel. If the message content does not match the criteria, the message is discarded.” (http://integrationpatterns.com/Filter.html) SOA-23: Enterprise Integration Patterns in Sonic ESB
Message Filter pattern • Incoming message should either be routed to its destination or be discarded SOA-23: Enterprise Integration Patterns in Sonic ESB
Message Filter pattern implementation • Standard ESB Content Based Routing service • Delete decision branch • xcbr rules file • Rule to route to destination • Default destination NULL SOA-23: Enterprise Integration Patterns in Sonic ESB
Other default services to build patterns • Transformation service • Database service • PSDN SOA-23: Enterprise Integration Patterns in Sonic ESB
Other Integration Patterns On-Ramp Off-Ramp Mediation Routing Interaction Models Interaction Models • Pipes and Filters/Routing Slip • Content Based Router • Splitter • Produce • Fire and Forget • Request-Reply • Async Request-Reply • Bulk Read • Consume • Event Driven Consumer • Selective Consumer • Polling Consumer • Replier • Bulk Load Transformation • Canonical Data Model • Envelope Wrapper • Content Enricher System Interaction System Interaction • Adapter Emitter • Bridges • Messaging • Application Server (SSB or Servlet) Operate/Aggregate/Correlate • Adapter Requestor/Sender • Bridges • Messaging • Application Server (MDB) • Cache • Claim Check • Process Manager • Resequencer • Gather SOA-23: Enterprise Integration Patterns in Sonic ESB
Relevant Exchange Sessions • SOA-27: Practical Approaches for Implementing a Service-Oriented Architecture • SOA-30: Getting the Most Out of Sonic Workbench • SOA-32: Progress SOA Portfolio Roadmap • SOA-33: Transactions in an SOA World—Practical Examples SOA-23: Enterprise Integration Patterns in Sonic ESB
Relevant Exchange Sessions • SOA-7: Introduction to the Progress Sonic ESB Product Family • SOA-11: Common Applications of Sonic ESB • SOA-14: Continuous Integration in SOA Projects • SOA-15: Using Portal and Sonic ESB to Integrate Information from Public Resources SOA-23: Enterprise Integration Patterns in Sonic ESB
? Questions SOA-23: Enterprise Integration Patterns in Sonic ESB
Thank You SOA-23: Enterprise Integration Patterns in Sonic ESB