WSO2 ESB is…

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