470 likes | 630 Views
Introduction to WSO2 ESB. Kasun Indrasiri Associate Technical Lead PMC, Apache Synapse Member, Integration MC WSO2 Inc. May 2013. Background. Service Oriented Architecture (SOA)
E N D
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
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
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
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
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? • REpresentationalState Transfer • An architectural Style – Not a Standard • RESTfulapplications 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 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)