What is an Enterprise Service Bus?
Enterprise Service Bus (ESB) is a middle layer communication tool that combines the best features of service-oriented architecture with the best features of the message-based architecture. While you must configure it before you can use it within your organization, there are about 65 pre-written integration patterns already on the market you can use to quickly get set up and running without having to create new code.
While there are several different ESB solutions out there, WSO2 ESB is a popular solution that provides the power of ESB with the flexibility and cost-effectiveness of a 100% open source integration platform. This article details Enterprise Service Bus pros and cons.
What are the integration patterns?
Here are a few samples of integration patterns collected from Enterprise Integration Patterns with WSO2 ESB.
What are the advantages of using ESB?
- Message Bus: An Architecture in which all applications work in a decoupled fashion, so that applications can be plugged out or plugged in without any technical difficulties.
- Message bridge: the interconnection between message systems.
- Connectors: easier to connect one system to another. They act as switches between applications.
- Interoperability: one system communicates with another system without any technical difficulties.
- Protocol conversion: Converts messages from one protocol to another.
- Message translation: Fixes the messages with correct data formatting as per a standard.
- Message routing: Defines the path messages take through the system and any filters that are applied from beginning to end.
- Service coordination: manages business and application services.
- Monitoring: monitor development and run time policies, track dependencies and take care of life cycle management.
- Pipes and filters: deals with complex logic and process to maintain simplicity, independence, and flexibility.
- Business rule engine: Sets business logic for a network.
- Publish and subscribe: Coordinates services in an asynchronous fashion.
- Transaction management: Oversees transactions.
- Content enricher: Adds missing required data to messages in a communication channel.
- Security: security and identity management.
- Exception handling: Handles communication and transactional errors.
- Integrated environment: Applications can communicate with each other and your network.
- Connected business: Integrate components and infrastructure from across your enterprise
- Reusability: You can reuse integration patterns and resources.
- Configuration: Change applications settings through a single interface tool instead of coding.
- Load balancing: Custer services together to achieve scalability and high availability
- Quicker time to market: Identify and replace repeated patterns and applications with simpler logic, reducing your time to market.
You will find more information on open source integration platforms, these modules, and their configuration options in the reference documentation - WSO2 Library, and reference from Oracle - Enterprise Service Bus.
It is important to examine the performance of the system to see if the system is performing at the expected capacity. Throughput is measured as the number of transactions performed over a period of time. TPS is defined as atomic action per second. This is a major characteristic for a stateless server.
If a transaction triggers, XML based transformation or processing operations occur. This is categorized under work done per transaction.
At any given time, the number of distinct users simultaneously accessing the system are known as concurrent active users. System throughput increases with the number of concurrent users until it reaches maximum capacity. It is vital to find out the maximum concurrency the system can withstand.
Message size and latency are other parameters used in the system. These details are mentioned under non-functional requirements.
The graph below shows the success and failure rate on an ESB over one hour.
Maximum backend throughput limits:
This is the total number of calls the API manager is permitted to make to the backend whilst the other throttling levels dictate the quota the API invoker gets. When evaluating the maximum backend throughput, the counters managed are shared across all nodes of the gateway cluster. It also applies to all users utilizing any application that access that particular API.
WSO2 API manager is an open source and complete enterprise-wide API management solution with governance and analysis in an open source integration platform.
When should you use an ESB?
If you have more than three applications or services to integrate, you should use ESB. You should also consider ESB if you use third-party services from external vendors.
Let us look at a case study on how much ESB changes your network: A new cost model for comparison of Point to Point and Enterprise Service Bus integration styles
Figure 4 shows how much transitioning to ESB reduces costs. You reach higher savings with higher a number of new planned systems.
Figure 5 shows how much ESB reduces costs for existing systems.
Why should you use an ESB?
The business world is undergoing a revolution. With the proliferation of technology across our lives and work, industries around the world are realising that the tried and trusted methods that have kept them moving forward might no longer suffice. Consumers today are connected, informed, and unprecedentedly technologically savvy, and as a result, the companies they deal with are expected to be the same.
Digital transformation — the process by which organizations modernize themselves to incorporate new digital technologies throughout their entire business — is becoming necessary to survive.
Modern clients want instant service and support from the brands they deal with. They want brands that make themselves available to the client in a way that suits the client, not in a way that suits the organization. And they want this experience to be offered seamlessly across every channel. In order for an organization to meet these needs and wants of the consumer, it is absolutely necessary for companies to be innovative and to stay abreast of digital updates and changes. With this in mind, decision makers in businesses are emphasizing the need for digital transformation within their organizations.
With the rise of tools such as CRM, ERP, SRP and others, it has become necessary to integrate these tools in order to have a complete view of your customers data and to provide them with the level of service they expect. Using an ESB will ensure all of your tools talk to each other and give you the power to understand your customers and drive your business forwards.
Due to the nature of ESB and it's central role of orchestrating all systems on the network, it causes the bus itself to be a single point of failure. Also, due to over-abstraction of the individual tools, performance can be reduced. But, you can reduce these disadvantages with efficient monitoring and exception handling. You can also reduce them by using multiple reliable cloud systems and connectors.
WSO2 is a fully open source integration platform ESB solution with standardized, fully interoperable, and single point of contact for all your business infrastructure. It allows you to quickly monitor and handle risks and points of failure in your network.
If you know you need to implement an ESB for your organisation, but don't know where to begin or if you just need advice, contact our consultants to discuss your options. We are experts in the area of ESB integration and have worked with many clients to help them succeed.