Christian Stiller Technical Account Manager SOA-23: Enterprise Integration Patterns in Sonic ™ ESB

Embed Size (px)

DESCRIPTION

© 2008 Progress Software Corporation3 SOA-23: Enterprise Integration Patterns in Sonic ESB What are Design Patterns?  Repeatable solution to a software design problem  Design “template”  Relationships & interactions between classes and/or objects  Situation dependent, must be adapted  Not all patterns are “design” patterns Architectural pattern Code pattern

Citation preview

Christian Stiller Technical Account Manager SOA-23: Enterprise Integration Patterns in Sonic ESB 2008 Progress Software Corporation2 SOA-23: Enterprise Integration Patterns in Sonic ESB Agenda Enterprise Integration Patterns Sonic ESB built in patterns Using patterns in Sonic workbench Enterprise Integration Patterns in Sonic ESB 2008 Progress Software Corporation3 SOA-23: Enterprise Integration Patterns in Sonic ESB What are Design Patterns? Repeatable solution to a software design problem Design template Relationships & interactions between classes and/or objects Situation dependent, must be adapted Not all patterns are design patterns Architectural pattern Code pattern 2008 Progress Software Corporation4 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 2008 Progress Software Corporation5 SOA-23: Enterprise Integration Patterns in Sonic ESB Finding Patterns 2008 Progress Software Corporation6 SOA-23: Enterprise Integration Patterns in Sonic ESB 60+ Patterns 600+ Pages Icon language One potential source 2008 Progress Software Corporation7 SOA-23: Enterprise Integration Patterns in Sonic ESB Agenda Enterprise Integration Patterns Sonic ESB built in patterns Using patterns in Sonic workbench Enterprise Integration Patterns in Sonic ESB 2008 Progress Software Corporation8 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)http://integrationpatterns.com/MessageBus.html 2008 Progress Software Corporation9 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. 2008 Progress Software Corporation10 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)http://integrationpatterns.com/ControlBus.html 2008 Progress Software Corporation11 SOA-23: Enterprise Integration Patterns in Sonic ESB 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. Control Bus pattern 2008 Progress Software Corporation12 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)http://integrationpatterns.com/MessageBus.html 2008 Progress Software Corporation13 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. 2008 Progress Software Corporation14 SOA-23: Enterprise Integration Patterns in Sonic ESB Agenda Enterprise Integration Patterns Sonic ESB built in patterns Using patterns in Sonic workbench Enterprise Integration Patterns in Sonic ESB 2008 Progress Software Corporation15 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/ContentBased Router.html)http://integrationpatterns.com/ContentBased Router.html 2008 Progress Software Corporation16 SOA-23: Enterprise Integration Patterns in Sonic ESB CBR pattern Incoming message routed to exactly one destination based on the content of the message 2008 Progress Software Corporation17 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 2008 Progress Software Corporation18 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)http://integrationpatterns.com/RecipientList.html 2008 Progress Software Corporation19 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 2008 Progress Software Corporation20 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 2008 Progress Software Corporation21 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)Control Bushttp://integrationpatterns.com/Detour.html 2008 Progress Software Corporation22 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 2008 Progress Software Corporation23 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 2008 Progress Software Corporation24 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)Recipient Listhttp://integrationpatterns.com/WireTap.html 2008 Progress Software Corporation25 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 2008 Progress Software Corporation26 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 2008 Progress Software Corporation27 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)http://integrationpatterns.com/Filter.html 2008 Progress Software Corporation28 SOA-23: Enterprise Integration Patterns in Sonic ESB Message Filter pattern Incoming message should either be routed to its destination or be discarded 2008 Progress Software Corporation29 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 2008 Progress Software Corporation30 SOA-23: Enterprise Integration Patterns in Sonic ESB Transformation service Database service PSDN Other default services to build patterns 2008 Progress Software Corporation31 SOA-23: Enterprise Integration Patterns in Sonic ESB Other Integration Patterns Routing Pipes and Filters/Routing Slip Content Based Router Splitter Transformation Canonical Data Model Envelope Wrapper Content Enricher Interaction Models Produce Fire and Forget Request-Reply Async Request-Reply Bulk Read Operate/Aggregate/Correlate Cache Claim Check Process Manager System Interaction Adapter Emitter Bridges Messaging Application Server (SSB or Servlet) Interaction Models Consume Event Driven Consumer Selective Consumer Polling Consumer Replier Bulk Load System Interaction Adapter Requestor/Sender Bridges Messaging Application Server (MDB) Resequencer Gather 2008 Progress Software Corporation32 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 2008 Progress Software Corporation33 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 2008 Progress Software Corporation34 SOA-23: Enterprise Integration Patterns in Sonic ESB Questions ? 2008 Progress Software Corporation35 SOA-23: Enterprise Integration Patterns in Sonic ESB Thank You 2008 Progress Software Corporation36 SOA-23: Enterprise Integration Patterns in Sonic ESB