ESB vs P2P: Why It's Finally Time to Ditch P2P
There's a lot of pain associated with application integration done with point-to-point coding (P2P). As Salesforce technologist Chris Tiernan notes, "Quick P2P integrations can become a large headache."
An Enterprise Service Bus (ESB) can eliminate a lot of that pain. Compared to P2P, the ESB offers a faster and more agile way to connect applications. It’s therefore easy to see why many of the most innovative enterprises are turning to the ESB for application integration.
ESB vs P2P: Why P2P Can't Keep Up
In the beginning there was just one application, and all was good with the world. Then came the second application, so the two applications had to be connected. The situation was easily remedied by hand-coding a connection between the two applications, which is point-to-point integration.
In P2P integration, the systems exclusively know about each other, the data models, the capabilities, and all the technology infrastructure that each application is supporting to enable that integration. The two systems are therefore what we would deem “tightly coupled.” If there were only a small number of applications, this would be fine. But as the number of tight couplings grows, the infrastructure becomes brittle, prone to failure, and difficult to maintain.
This is where the real value of the ESB architecture begins to emerge. Before the advent of the ESB, enterprises would continue to branch out, connecting every new application to all the existing applications in P2P style. In a growing infrastructure relying on P2P integration, where everything must be hand-coded, things can get very complex very quickly.
The Challenges of P2P Integration
From the outset, every P2P application integration solution is tedious work for a developer, requiring custom code for every connection made across the applications, systems, and devices that are a part of the IT infrastructure.
The most obvious drawback to P2P is its rigidity. Point-to-point integrations create extreme complexity because of the number of connections and the number of interfaces that need to be maintained. Should an application change its version, or even change the data model which it uses, the impact of that change is massive because the hand-coded integrations to each one of the consuming interfaces need to be modified as a result. Applications are often based on proprietary technologies and skillsets, typically implement multiple transports and communication infrastructures, which is when P2P becomes a nightmare for even the most level-headed developer.
The drain on resources and the risk associated with change in P2P integration are so formidable that it has the potential to cause organizations to resist change because of the impact to the infrastructure.
Obviously when the integration style threatens growth and innovation, it’s time to explore other avenues, which leads us back to the ESB.
Smooth and Seamless Application Integration with an ESB
An Enterprise Service Bus is a more flexible approach to application integration. The ESB is a software architecture style or an architectural pattern that is used to implement the interaction and communication between applications. This integration is achieved by encapsulating and exposing each application functionality as a set of discrete reusable capabilities.
No longer does each application integrate directly with each other. Instead, they integrate through an ESB infrastructure, illustrated below:
Typically, every ESB has these two components:
- Service Registry — Where all the services exposed into the ESB are published and registered. It also serves as a point discovery for those which wish to consume those services or capabilities of other applications.
- Centralized Administration and Monitoring — Provides a view of transactional flows of performance of interactions occurring inside the ESB
How Information Flows Through the ESB
Applications connected to an ESB typically integrate and expose their capabilities through what are called “services”. Usually these are web services, but not necessarily. The integration of these reusable, discreet services is achieved in this flow:
- An application exposes its capabilities through service enablement.
- The application gets broken out into a set of reusable services.
- The services become available in the ESB.
- The services are published to the service registry and made available for consumers
The service enablement is all automated – no hand-coding is required with an ESB. Another big bonus of the ESB is that consumers need to know very little (if anything) about the application they are consuming. The technical architecture, the version, the vendor of the solution, the location of the application – those details are not of importance to the consumer, and have no impact on the consumption of the service.
The Emergence of Real-Time and SOA Capabilities
The ESB enables the decoupling of applications, providing a middle infrastructure through which applications coordinate and communicate, making way for a more rapid integration of a wider range of applications and data sources. ESBs inherently provide rich support for event-driven integration and the service-oriented architecture (SOA) concept – two major integration styles.
In fact, most organizations typically require both styles. Service-oriented and event-driven architecture (EDA) integration styles satisfy diverse needs for different reasons, therefore many ESBs support both of these styles and the transition between them. Event-driven architectures are often used as an initial integration style for some organizations not yet ready or willing to transition to a full SOA.
Speed and Flexibility Win
In the end, it’s easy to point out the limitations of P2P integration. It’s also just as easy to point out the obvious benefits of ESB for application integration:
- Simplifies and speeds integration by supporting a wide variety of standard integration patterns out the box. This also reduces the strain on technical resources.
- Enables a wider variety and greater number of applications and to be quickly integrated.
- Provides orchestration to deliver compound capabilities to either technical infrastructure consumers or business consumers via BPM.
The limitations of point-to-point integration are clear. The benefits of ESB integration are also clear. By providing rich support for major integration styles and the ability to work with a wide variety of standard integration patterns out of the box, it’s no surprise that many organizations are using ESB for their application integration needs.
Try Talend Open Studio for ESB for Free
The benefits of the ESB will become crystal-clear with some first-hand exploration. Talend Open Studio for ESB is a free solution based on extensible open source technology. The Talend Open Studio for ESB makes it easy to service-enable applications and legacy systems to build a powerful service-oriented architecture. Give it a try today.