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
© Copyright 2024