C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

35
C8: Enterprise Integration Patterns in Sonic ESB Stefano Picozzi Solutions Architect

Transcript of C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

Page 1: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

C8: Enterprise Integration Patterns in Sonic™ ESB

Stefano PicozziSolutions Architect

Page 2: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation2

Agenda

Enterprise Integration Patterns Sonic ESB “built in” patterns Using patterns in Sonic workbench

Enterprise Integration Patterns in Sonic ESB

Page 3: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation3

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

Page 4: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation4

Benefits

Accelerates the development process Tested & proven approaches Familiar to developers Provides a lexicon, facilitates communication Basis for standards and documentation

Page 5: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation5

Finding Patterns

Page 6: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation6

60+ Patterns

600+ Pages

Icon language

One potential source

http://www.enterpriseintegrationpatterns.com/

Page 7: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation7

Agenda

Enterprise Integration Patterns Sonic ESB “built in” patterns Using patterns in Sonic workbench

Enterprise Integration Patterns in Sonic ESB

Page 8: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation8

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)

Page 9: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation9

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.”

Page 10: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation10

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)

Page 11: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation11

“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

Page 12: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation12

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)

Page 13: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation13

Guaranteed Delivery pattern

“Use Guaranteed Delivery to make messages persistent so that they are not lost even if the messaging system crashes.”

Page 14: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation14

Agenda

Enterprise Integration Patterns Sonic ESB “built in” patterns Using patterns in Sonic workbench

Enterprise Integration Patterns in Sonic ESB

Page 15: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation15

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)

Page 16: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation16

CBR pattern

Incoming message routed to exactly one destination based on the content of the message

Page 17: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation17

CBR pattern implementation

Standard ESB Content Based Routing service• xcbr rules file

– Routed to first rule that matches

Page 18: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation18

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)

Page 19: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation19

Recipient List pattern

Incoming message routed to one or more destinations based on the content of the message

Page 20: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation20

Recipient List pattern implementation

Standard ESB Content Based Routing service• xcbr rules file

– Routed to all rules that match

Page 21: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation21

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)

Page 22: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation22

Detour pattern

Incoming message routed to particular destination, but might have to go through some extra steps before it is routed to that destination

Page 23: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation23

Detour pattern implementation

Standard ESB Content Based Routing service• xcbr rules file

– Routed to first rule that matches– Default Destination is “pass through” branch

Page 24: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation24

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)

Page 25: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation25

Wire tap pattern

Send a copy of an incoming message to another process without changing the original message or its destination

Page 26: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation26

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

Page 27: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation27

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)

Page 28: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation28

Message Filter pattern

Incoming message should either be routed to its destination or be discarded

Page 29: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation29

Message Filter pattern implementation

Standard ESB Content Based Routing service• Delete decision branch

• xcbr rules file– Rule to route to destination– Default destination NULL

Page 30: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation30

Transformation service Database service PSDN

Other default services to build patterns

Page 31: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation31

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

Page 32: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation32

Relevant Exchange Sessions

C3: Introduction to the Progress SOA Portfolio

C4: Common Applications of Sonic ESB

Page 33: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation33

Questions?

Page 34: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation34

Thank You

Page 35: C8: Enterprise Integration Patterns in Sonic ™ ESB Stefano Picozzi Solutions Architect.

© 2008 Progress Software Corporation35