Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2 Inc.

45
Kasun Indrasiri Associate Technical PMC, Apache Synapse Member, Integration WSO2 Inc. May 2013 Introduction to WSO2 ESB

description

Introduction to WSO2 ESB. Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2 Inc. May 2013. Background. Service Oriented Architecture (SOA) - PowerPoint PPT Presentation

Transcript of Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2 Inc.

Page 1: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Kasun IndrasiriAssociate Technical LeadPMC, Apache SynapseMember, Integration MCWSO2 Inc.May 2013

Introduction to WSO2 ESB

Page 2: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Background

• Service Oriented Architecture (SOA)– A design paradigm and discipline - used by IT to improve its ability

to quickly and efficiently meet business demands.– A style of software architecture that is modular, distributed and

loosely coupled.– Componentization – The main driver of SOA– Business Functionalities are implemented in different Business

Components– Business Components provide their functionality to its consumers

as a ‘Service’ with the well-defined service interfaces.

Page 3: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Background

• Why ESB? – Modern Enterprises• Comprised of so many Systems and Services • built based on open standards, custom-built, acquired from a

third party, part of a legacy system or any such combination– Integration • Organizations move away from monolithic systems • Multiple Systems connected via SOA as the blue print

Source : http://bonfirehealth.com/week-13-insights-spark-integration/

Page 4: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Background

• Why ESB? – Spaghetti Integration Dilemma

• How about ?– maintainability, scalability, troubleshooting and governance etc.

Page 5: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Background

• Why ESB? – ESB – The standard infrastructure to implement the SOA

Page 6: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Background

• Enterprise Service Bus (ESB)– An ESB is a middleware solution that enables interoperability

among heterogeneous environments using a service-oriented model.

– Stateless and Seamless Integration– Standard Protocols – SOAP, REST, JSON etc.– Transports – HTTP/S, JMS, TCP, VFS etc.

Source : http://graegert.com/programming/no-soa-criticism-somewhere

Page 7: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

WSO2 ESB is…

• A lightweight, high performance ESB• Feature rich and standards compliant– SOAP and WS-* standards– REST support– Domain specific protocol support (eg: FIX, HL7)

• User friendly and highly extensible• 100% free and open source with commercial

support

Page 8: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Under the Hood: Apache Synapse

• A lightweight, open source ESB implementation from the

ASF : http://synapse.apache.org

• Makes up the mediation engine of WSO2 ESB

• Multithreaded and asynchronous message processing core

• Based on a number of well known open source projects (eg:

Axis2, Http Core)

Page 9: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Under the Hood: WSO2 Carbon

• An OSGi based components framework for SOA

• Extensive modularity and reusability

• Easily add, remove and customize features

– Similar to Eclipse plug-ins

• Easily deploy third party libraries and custom code

into the server runtime

• Web based management console

Page 10: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

WSO2 Carbon

Page 11: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

WSO2 Carbon

Page 12: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

WSO2 Carbon

Page 13: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

WSO2 Carbon

Page 14: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

WSO2 Carbon

Page 15: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

ESB Functional Components

Page 16: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

More on Functional Components

• Each functional component serves a specific purpose

• Functional components can be mixed and matched to implement various integration scenarios and patterns

• Configuring WSO2 ESB for a given scenario requires:– Identifying the right set of components– Putting them together in the optimal manner

Page 17: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Mediators

Page 18: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Sequences

• A chain of mediators• Messages are sent through all the

mediators in the sequence, in the order they appear

Page 19: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Endpoints

• A logical entity to which messages can be sent from the ESB– A service endpoint reference (EPR)– A JMS queue– A FIX session

• Various operational and QoS constraints can be engaged on an endpoint– SOAP version– WS-Security

Page 20: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Proxy Services

• A virtual service hosted in ESB

Page 21: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Configuring the ESB

• The task of laying out and connecting the ESB functional components

• Done using Synapse configuration language (XML based)

• WSO2 ESB makes the job easier by providing a set of UI wizards and graphical tools

• Equivalent to programming in many ways

Page 22: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

An Example Configuration

Page 23: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Modes of Operation

• WSO2 ESB supports 4 modes of operation– Message mediation (ESB as a message router)

– Service mediation (Expose service endpoints on ESB)

– Task scheduling (Run periodic tasks on ESB)

– Eventing (ESB as an event broker)• Most real world scenarios require the ESB to

operate in multiple modes at the same time

Page 24: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Key Features: Routing

Page 25: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Key Features: Filtering

Page 26: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Key Features: Transformation

Page 27: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Key Features: Protocol Switching

Page 28: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Key Features: Load Balancing

Page 29: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Key Features: QoS

Page 30: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Enterprise Integration Patterns (EIP)

• WSO2 ESB offers comprehensive supports for all EIPs Provides a comprehensive documentation on EIP and sample scenarios on

applications of EIPs using WSO2 ESB. http://docs.wso2.org/wiki/display/IntegrationPatterns/Enterprise+Integration+Patterns+

with+WSO2+ESB

Page 31: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Supported Protocols/Standards

• Transports– HTTP/S, POP/IMAP, SMTP, JMS, AMQP, FIX, Raw TCP, Raw UDP,

SAP, File transports (FTP/SFTP/CIFS)

• Content Interchange Formats– SOAP 1.1, SOAP 1.2, POX, HTML, Plain text, binary, JSON, Hessian

• WS-* Standards– WS-Addressing, WS-Security, WS-Reliable Messaging, WS-Policy,

WS-Discovery, MTOM/SwA

Page 32: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

WSO2 ESB Also Supports…

Page 33: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

REST API

• What is REST?• REpresentational State Transfer• An architectural Style – Not a Standard• RESTful applications use HTTP requests to

• post data (create and/or update)• read data (e.g., make queries)• delete data.

• REST uses HTTP for all four CRUD (Create/Read/Update/Delete) operations.

• Eg: Twitter REST API • https://dev.twitter.com/docs/api/1.1

Page 34: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

REST API

• Motivation

Page 35: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

REST API

• Exposing RESTful APIs • An easy way to expose existing SOAP services over REST

• REST SOAP conversion• Mainly used in WSO2 API Manager

• API Gateway uses Synapse is the mediation engine

Page 36: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Templates

• With complex business requirements, ESB config can grow bigger..

• Need a way to reuse the configuration

• WSO2 ESB 4.0 introduces – Templates

• An analogy… classes vs instances

Page 37: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Message Store and Processors

• Store and Forward

Page 38: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Why Store and Forward?

• Matching Request Rates

• Guaranteed Delivery

Page 39: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Why Store and Forward?

• In-Order Delivery

• Separation of Concerns

Page 40: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Message Store and Processors

• Message Store Storage for ESB messages In-memory, JMS

• Message Processors Consume the messages in message stores and

do the processing of them

Page 41: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

WSO2 ESB In Action

Page 42: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

High Level Architecture

Page 43: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

WSO2 ESB Roadmap

Page 44: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Questions

Page 45: Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2  Inc.

Thank You