There is a need for communication between different applications inside and outside the company. Enterprise Service Bus (Enterprise service bus,esb) has been considered as a tool to support application integration. But what is an ESB? When is it more appropriate to use an integration suite (Integration suite)? What is the most suitable product for the next project? This article will explain why there is no silver bullet (silver bullet) and why sometimes an ESB may also be the wrong choice. For the success of the project, it is very important to choose the right product.
Definition of the term "Enterprise service Bus"
Many products from different vendors include the name of the Enterprise service Bus. Regrettably, the term does not have a standard definition. As a result, these products offer a number of different features. The term ESB should be clearly defined before it is used. In the latter context, the ESB can be defined as a software product that helps developers integrate their applications, so it provides the infrastructure necessary to implement routing, transformation, and other integration facilities. In accordance with the integrated complexity path, the ESB is typically located between the framework and the suite, as an optional scenario for application integration, as shown in the following illustration:
Figure 1: An optional solution for application integration
After defining the term ESB, the next section will discuss when to consider an ESB and when to integrate a framework or integration suite is a better choice.
Integration Framework
The framework helps implement enterprise integration patterns (Enterprise integration Patterns,eip, http://www.eaipatterns.com), such as splitter or content-based routing (content Based Router) so that application integration can be done in a standard way. Using a standard API to integrate a product can significantly reduce the effort made by the implementation and the source code can be more easily understood by other developers. Frameworks can be well integrated into different applications based on different protocols and technologies, such as endpoints (endpoint), producers (producer), Consumers (consumer), and EIP, which can be used to create integration logic. Even the support tests behind it use the same idea.
The framework contains some common libraries so it can be compatible with any development environment, even with traditional text editors.
The well-known framework examples in the Java environment are the Apache camel and the spring integration, which are nservicebus in. Net.
With frameworks, the development team is more or less solely responsible for the success of the project. There is usually no commercial support. Tools are generally only partially available and not necessarily suitable for "mission critical" (mission-critical) deployments. So the rest of this article will focus on the ESB and the corresponding suite, which is generally a better choice than the framework.
Enterprise Service Bus
Similar to frameworks, the ESB is also used to integrate applications. The ESB is based on the framework behind the scenes. However, it is a more powerful product. In addition to the basic functionality of application integration, the ESB provides powerful tools to support deployment, management, and run-time monitoring, as opposed to the framework. In addition, a graphical editor can be used to implement a variety of integration scenarios. Integration logic can be modeled using drag-and-drop operations, and the corresponding code will be generated automatically. The ESB will contain commercial support.
The great advantage of an ESB in relation to simply using a framework is better tools, which can significantly reduce costs and complexity. Integration issues can be resolved at higher levels of abstraction.
Integration Suite
The suite provides all the features of the ESB. In addition, there are many other features, such as Business process management (Business process MANAGEMENT,BPM), Business Activity Monitoring (Business activities monitoring), master Data management (master Management) or warehouse (Repository). If some additional features are required in addition to pure integration, it is recommended that you use a suite. With a software stack (software stack), you can achieve full integration.
Hopefully you now understand the difference between the framework, the ESB, and the suite. Next, you will find out how to choose the appropriate ESB or suite.