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

Post on 23-Dec-2015

228 views 0 download

Tags:

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

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

Introduction to WSO2 ESB

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.

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/

Background

• Why ESB? – Spaghetti Integration Dilemma

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

Background

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

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

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

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)

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

WSO2 Carbon

WSO2 Carbon

WSO2 Carbon

WSO2 Carbon

WSO2 Carbon

ESB Functional Components

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

Mediators

Sequences

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

mediators in the sequence, in the order they appear

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

Proxy Services

• A virtual service hosted in ESB

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

An Example Configuration

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

Key Features: Routing

Key Features: Filtering

Key Features: Transformation

Key Features: Protocol Switching

Key Features: Load Balancing

Key Features: QoS

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

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

WSO2 ESB Also Supports…

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

REST API

• Motivation

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

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

Message Store and Processors

• Store and Forward

Why Store and Forward?

• Matching Request Rates

• Guaranteed Delivery

Why Store and Forward?

• In-Order Delivery

• Separation of Concerns

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

WSO2 ESB In Action

High Level Architecture

WSO2 ESB Roadmap

Questions

Thank You