What is WSO2 ESB?
By Samisa Abeysinghe
- 31 Jul, 2017
WSO2 Enterprise Service Bus is the main integration engine of WSO2 Enterprise Integrator. It is a lightweight, component oriented; Java based enterprise service bus (ESB). WSO2 ESB allows developers to integrate services and applications in an easy, efficient and productive manner. It also provides ease of connecting cloud applications using a wide array of cloud connectors that comes ready to be used.
WSO2 ESB enables connecting and reusing existing IT assets and systems implemented using heterogeneous technologies, including Web Services, Micro Services, HTTP, JMS, JDBC and more. A wide array of enterprise integration patterns are included in the ESB; patterns such as service chaining, store and forward can be used to help connect multiple services and compose value added services in quick time.
The ESB can be deployed anywhere: on premise, on any cloud infrastructure, on private clouds and even using container systems. The ESB is also available on public cloud as a service. All these deployment options come with the same seamless developer experience.
Monitoring and analytics capabilities are built into WSO2 ESB to cater to both real time and in batch mode analytics.
Comprehensive documentation, tutorials, open and free to use training material with lab kits and certification programs are all available to ensure credible, successful delivery of solution development on top of WSO2 ESB.
Key advantages of WSO2 ESB
WSO2 ESB is one of the easiest tools to achieve enterprise application integration (EAI). It has a bus architecture that facilitates communication between applications that helps connect software systems with different data formats into a unified integrated architecture. When used in an enterprise solution, WSO2 ESB becomes the main transit system acting as a medium carrying data between systems using a message oriented communication mechanism.
Powerful capabilities of WSO2 ESB
WSO2 ESB provides mediation, services and data integration under the same roof.
- Help achieve separation of concerns with respect to business logic design and messaging
- Shield services from message formats and transport protocols
- Offload quality of service aspects such as security, reliability, caching from business logic
- Route, filter, enrich and re-sequence messages in a content aware manner or content unaware manner (without regard to the content) and using rules
- Transform data across varying formats and media types to match data acceptance criteria of various services and applications
- Support for various transport protocols based on data formats and data storage and destination characteristics including HTTP, HTTPS, JMS, VFS
- Service hosting
- It is feasible with WSO2 ESB to host services, however, this could become an anti pattern if used in combination with service mediation and service hosting when considering layered deployment for separation of concerns between mediation and hosting
When should you consider using an ESB?
In today's world, application development is mostly about application reuse and integration than green field application development. Given the volume of IT assets an organization has and the amount of those exposed as services or APIs to be reused over the past decade or so, thanks to SOA and Web Services initiatives, integration is a very common case.
Therefore, whenever you want to consider any project, you need to think about the integration and reuse of services and APIs with the ESB pattern. Thus, the realities of modern day application development would be that:
- You are integrating three or more services
- You will have to leave provision for incremental plugging in of applications in the future
- You will have to support more than one message format or media type
- You will have to connect and consume services using multiple communication protocols
- You will need to deal with in-flight message modifications and pick destinations to route messages based on content
- You will need to expose your application as services or APIs to be consumed by other applications
Hence, you need an ESB because an ESB comes packed with features to cater to these requirements. WSO2 provides you with a solution development model that ensures your development team adheres to ESB best practices when realizing your solution.
Why WSO2 ESB?
WSO2 ESB is designed from the ground up to be lightweight and highly scalable. It has evolved over the years to meet the demands of cloud and container trends. The ESB has been iteratively improved to better cater to message pass through needs in large-scale and high message volume deployments.
WSO2 ESB comes packaged with comprehensive development and debugging tools to help with the rapid development of enterprise applications integrating and exposing services. The ESB has been equipped with easy to use debugging and tracing tools to help test, debug and enhance the solutions developed on top of the ESB. It is also equipped with
powerful monitoring and analytics tools to keep track of system and solution health when the solutions are deployed in production on top of the ESB.
Benefits of WSO2 ESB
- Scalable design suited for enterprise wide deployment
- Configuration driven design, as opposed to code driven design, enables agile incremental solution development, early/often deployment, and seamless change management
- Ensure loosely coupled solution with easy to manage plug-in and plug-out of solution components
- Enable refactorable enterprise with proactive patching and regular security updates
WSO2 ESB is an open source solution that safeguards you from vendor lock-in. It is superior in terms of feature compatibility compared to any commercial ESB available in the market. This is because of the rigorous innovation and maintenance cycles used to enhance the ESB implementation and the production hardening, both in terms of performance and feature completeness, enabled via numerous deployments by various industries. WSO2 ESB handles multiple billions of transactions per day across various deployments in leading enterprises today.
WSO2 advantages over competitors
- Ability to easily integrate any component framework. Support of Java based extensions and multiple scripting options. There is no need to have WSO2 specific code to integrate anything with WSO2 ESB
- Numerous built-in message mediators, solution templates and connectors to third-party cloud systems to help cut down redundant engineering efforts and enable significant component reuse
- Freedom for architects and developers to pick and choose message formats, transports, and style of services they want to expose using the ESB
- Component oriented architecture and cloud and container support enables you to deploy the ESB using a topology of your choice based on your needs in a secure, scalable and adaptive manner
- The ready-made scripts and tools help with rapid deployments, ensuring the ability to go to market quickly with your solution using the ESB
- Continuous innovation that helps build future proof solutions on top of the ESB
- Rigorous and frequent product update cycles and state-of-the-art tooling support for managing ESB deployments with DevOps practices. Using Docker descriptors and Puppet scripts
- Proactive testing and tuning of performance and innovation around performance enhancements