Introduction to WSO2 ESB Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse

Introduction to WSO2 ESB
Kasun Indrasiri
Associate Technical Lead
PMC, Apache Synapse
Member, Integration MC
WSO2 Inc.
May 2013
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
•
•
•
•
•
•
•
•
•
•
•
Mediators
Sequences
Endpoints
Proxy Services
REST API
Message
Stores/Processors
Templates
Tasks
Local Entries
Priority Executors
Registry
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…
• JMX based monitoring and
control
• Statistics Collection
• Priority based mediation
• XSLT, XPath, XQuery, Smooks
• Caching and throttling
• Scripting languages
• JDBC
• Registry integration
• Spring
• Drools
• Clustering
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
• What’s new in 4.6.0
– Major revamping and performance
enhancements
– High Performance Pass-Through Transport
– FAST XSLT
– High Performance CBR - Streaming Xpath
– Hierarchical Proxy Services
• Outbound REST improvements
• Multitenant In-Bound transports (JMS, VFS)
Questions
Thank You