20
Udayanga Wickramasinghe Software Engineer WSO2 ESB January 2012 Implementing advanced integration patterns with WSO2 ESB

Implementing advanced integration patterns with WSO2 ESB

  • Upload
    wso2

  • View
    2.098

  • Download
    3

Embed Size (px)

DESCRIPTION

Enterprise Integration is a means of linking the different components of an SOA system. The success of an SOA solution heavily depends on proper enterprise integration. However this is easier said than done. There are many complex requirements to this process one of which is the need to interconnect heterogeneous systems which use different message formats and protocols and these systems needs to work together to achieve the final outcome

Citation preview

Page 1: Implementing advanced integration patterns with WSO2 ESB

Udayanga WickramasingheSoftware EngineerWSO2 ESBJanuary 2012

Implementing advanced integration patterns with WSO2 ESB

Page 2: Implementing advanced integration patterns with WSO2 ESB

Overview

• Introduction

• Demo1 – Service Chaining

• Demo 2 – EIP Split/Aggregate/Clone

• Demo3 – EIP Store Forward

Page 3: Implementing advanced integration patterns with WSO2 ESB

SOA & ESB

• SOA The underlying structure supporting communication

between services• ESB

ESB is considered as the backbone of a robust SOA It integrates all the internal systems as well as external

systems of the enterprise

Page 4: Implementing advanced integration patterns with WSO2 ESB

REST

.NET

Java

Java

SAP

WebLogic

SOAP

J2EE

EAI (Enterprise Application integration)

Page 5: Implementing advanced integration patterns with WSO2 ESB

Introducing WSO2 ESB...

• Based on WSO2 Carbon (Modular Middleware) and Apache Synapse

• Designed to be asynchronouso Based on Synapse core with non blocking I/O

• Open source with commercial supporto Apache Software License v2.0

• Rich collection of built-in features supporting

any integration scenario or EIP

• Customizable by adding/removing features

Page 6: Implementing advanced integration patterns with WSO2 ESB

Heterogeneous service integration

• Comprehensive WS Specs and SOAP support

• HTTP/S with REST/POX

• Adapters for various Industry Standards

• SAP

• Financial Information eXchange (FIX)

• Health Level 7(HL7)

• VFS (File/FTP/SFTP)

• JMS

• SMTP

• SMS

Page 7: Implementing advanced integration patterns with WSO2 ESB

WSO2 ESB Components – In a nutshell..

• Message and Service Mediation

Managing and transforming messages

Mediating messages coming into a specific proxy service

hosted on ESB

• Mediators

Simplest functional component.

Performs a predefined action on a given message

• Sequences

Sequential arrangement of mediators

• Proxy Services

Hosting proxy services inside ESB

Protocol switching and QoS

• Endpoints

A logical representation of an actual endpoint, or else a

collection of endpoints wrapped within some logic.

Page 8: Implementing advanced integration patterns with WSO2 ESB

EIP Patterns with ESB

• Splitter

• Aggregator

• Message Translator

• Content Enricher

EIP Patterns with ESB

Page 9: Implementing advanced integration patterns with WSO2 ESB

• Wire Tap

• Content Based Router

• Message Filter

• Message Store

EIP Patterns with ESB

Page 10: Implementing advanced integration patterns with WSO2 ESB

Demo #1 - Service Chaining

• Invoke multiple backend services in a chain fashion for a single client request

• Response of first backend invocation can be used as request of second backend invocation.. And so on…

• Conditional chaining based on responses of backed services

Service 1

Service 2

Service 3

Request - Response

Request - Response

Request - Response

Page 11: Implementing advanced integration patterns with WSO2 ESB

Account Balance Transfer scenario

User Validator

User ID

Valid/Invalid

Accounts Service

User ID

Accounts belongsto user

Transfer Processor

Transaction Info

Status

Transfer Request

Response

•Check user validity

•Check Account ownership

•Perform transfer

Page 12: Implementing advanced integration patterns with WSO2 ESB

Demo #2 - Message Splitting and Aggregation

• Request consists of multiple elements which can process individually

• Collect and store individual messages until a complete set of related messages has been received.

• Create a single message distilled from the individual messages

Page 13: Implementing advanced integration patterns with WSO2 ESB

Split

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body>

<s:symbols xmlns:s="http://demo.wso2.org"><s:symbol>ABC</s:symbol><s:symbol>PQR</s:symbol><s:symbol>XYZ</s:symbol>

</s:symbols></soapenv:Body>

</soapenv:Envelope>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body>

<s:symbol xmlns:s="http://demo.wso2.org">ABC</s:symbol></soapenv:Body>

</soapenv:Envelope>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body>

<s:symbol xmlns:s="http://demo.wso2.org">XYZ</s:symbol></soapenv:Body>

</soapenv:Envelope>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body>

<s:symbol xmlns:s="http://demo.wso2.org">PQR</s:symbol></soapenv:Body>

</soapenv:Envelope>

Page 14: Implementing advanced integration patterns with WSO2 ESB

Aggregate

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body>

<s:symbols xmlns:s="http://demo.wso2.org"><s:symbol>ABC</s:symbol><s:symbol>PQR</s:symbol><s:symbol>XYZ</s:symbol>

</s:symbols></soapenv:Body>

</soapenv:Envelope>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body>

<s:symbol xmlns:s="http://demo.wso2.org">ABC</s:symbol></soapenv:Body>

</soapenv:Envelope>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body>

<s:symbol xmlns:s="http://demo.wso2.org">XYZ</s:symbol></soapenv:Body>

</soapenv:Envelope>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body>

<s:symbol xmlns:s="http://demo.wso2.org">PQR</s:symbol></soapenv:Body>

</soapenv:Envelope>

Page 15: Implementing advanced integration patterns with WSO2 ESB

Scatter-Gather ( Clone and Aggregation )

Ticketing ServiceA

From,To

RatesRequest Best Rate

Best Rate Response

•Check rates

•Aggregate

•Calculate Best Rate

Ticketing ServiceB

Ticketing ServiceC

Page 16: Implementing advanced integration patterns with WSO2 ESB

Demo#3 - Dead Letter Channel

• Push failed message into a message store if sending failed• Automatic/Manual retry using Forwarding message processor• Resembles to “dead letter channel” EIP• Featuring connecting to file system (transport switching)

Page 17: Implementing advanced integration patterns with WSO2 ESB

Q&A

Page 18: Implementing advanced integration patterns with WSO2 ESB

Selected Customers

Page 19: Implementing advanced integration patterns with WSO2 ESB

WSO2 engagement model

• QuickStart

• Development Support

• Development Services

• Production Support

• Turnkey Solutions

• WSO2 Mobile Services Solution

• WSO2 FIX Gateway Solution

• WSO2 SAP Gateway Solution

Page 20: Implementing advanced integration patterns with WSO2 ESB

Thank You.