What is ESB? There is no detailed definition: ESB (Enterprise Service Bus) is the product of combining traditional middleware technologies with XML, web services, and other technologies. ESB provides the most basic connection hub in the network and is a necessary element for building an enterprise's neural system.
The Enterprise Service Bus (ESB) is the latest method that provides reliable and guaranteed message technologies. The ESB middleware Products Use Web service standards and recognized reliable message mom protocol interfaces (such as IBM's WebSphere MQ, tibco's rendezvous and sonicmq of sonic software ). Common Features of an ESB product include: connecting to a heterogeneous mom, encapsulating the mom protocol using the Web Service Description Language interface, and uploading and sending simple object Application Protocol (SOAP) at the mom transport layer) the ability to transmit streams. Most ESB products support direct peer-to-peer communication between distributed applications through an intermediate layer such as an integrated proxy.
The concept of Enterprise Service Bus (ESB) is developed from Service-Oriented Architecture (SOA. SOA describes an IT infrastructure application integration model. The soft component set is a hierarchical structure with clear definitions, an ESB is a pre-assembled SOA implementation that includes the basic functional components necessary to achieve the SOA layered goal.
ESB is a product of the combination of traditional middleware technologies and XML, web services, and other technologies.
Computer technology and software technology have been applied to enterprises for 30 years. This is also the main driving force for the development of software technology. At present, it has entered a new development stage. As enterprises continue to process and intelligently improve internal and external business operations of the entire value chain, business integration has grown significantly. The ubiquitous IT technology has turned things that can only be imagined into reality. It can help achieve expansion from the background to the front-end, to partner partners, and to the customer's business market, this demand trend for IT application integration has laid an important foundation for the rise of the ESB platform.
The emergence of ESB has changed the traditional software architecture and can provide cheaper solutions than traditional middleware Products. At the same time, it can eliminate technical differences between different applications, it allows different application servers to coordinate operations and realize communication and integration between different services. In terms of functions, ESB provides event-driven, document-oriented processing modes, and distributed operation management mechanisms. It supports Content-based routing and filtering, it has the ability to transmit complex data and can provide a series of standard interfaces.
I. Enterprise Service Bus (ESB) can be of some use
ESB is not omnipotent. It is not an application framework or a solution for enterprise applications. It is just a messaging module that calls enterprise services based on messages! You can embed it into your application framework, such as the spring container or the workflow system. it provides a framework and simple method for calling SOA services in enterprises.
2. Application features of Enterprise Service Bus (ESB)
Large-scale distributed enterprise applications require relatively simple and practical middleware technologies to simplify and unify more complex and complex enterprise-level information system platforms. Service-Oriented Architecture (SOA) is the ability to link different functional units of an application through well-defined interfaces and contracts between services. SOA allows users to reuse software without restrictions and interconnect various resources. As long as they use standard interfaces to package old applications and build new applications into services, other application systems can easily use these functions and services.
The key to supporting SOA is its message delivery architecture-Enterprise Service Bus (ESB ). ESB is a product of the combination of traditional middleware technologies and XML, web services, and other technologies. It is used to achieve accurate, efficient, and secure transmission of different message consumption and information for enterprise applications. The emergence of ESB has changed the traditional software architecture and can provide cheaper solutions than traditional middleware Products. At the same time, it can eliminate technical differences between different applications, coordinate different application services to achieve communication and integration between different services. ESB is widely used in different fields:
ESB can fully support OSS application integration concepts in the telecom industry. It is an ideal carrier-level application software bearer platform.
ESB is an ideal SCADA System Data Exchange Platform that fully supports the data integration concept of EMS in the power industry.
ESB is an ideal B2B transaction support platform that fully supports the process integration concept of the bank-enterprise business processing platform.
The ESB provides comprehensive support for e-government application software basic business platforms, information sharing and exchange platforms, decision analysis support platforms, and government portal platforms.
Iii. Structure and Functions of Enterprise Service Bus (ESB)
ESB provides an open and standard-based messaging mechanism. It uses simple standard adapters and interfaces to implement interoperability between coarse-grained applications (services) and other components, it can meet the integration requirements of large heterogeneous enterprise environments. It allows several generations of technology to achieve interoperability without changing the existing infrastructure. Interesb is designed for heterogeneous environments. It can help enterprises migrate to SOA and continue to use existing deployed software investment.
By using ESB, you can use a seamless non-intrusive method to provide a completely new service interface for your existing system without changing the code, and supports any standards in the deployment environment. More importantly, the ESB that acts as a "buffer" (responsible for converting the business logic and data format among many services) is separated from the service logic, so that different applications can use the same service at the same time, without modifying the Service Code when the application or data changes.
Iv. Features of interesb
Comprehensive application of multiple communication technologies
Interesb uses a variety of accepted, mature and reliable communication technologies to support multiple upper-layer data transmission modes. Based on CORBA and JMS technologies, interesb supports both synchronous and asynchronous communication modes.
In asynchronous mode, interesb innovatively integrates multiple communication modes, including the target communication mode (Message Channel) and point-to-point communication mode (point-to-point) publish/subscribe communication mode (publish-subscribe), extended publish/subscribe cluster mode (P/s cluster ), it also supports important protection functions such as encryption, compression, and resumable data transfer during communication.
Interesb organically encapsulates the above communication methods into a whole, and publishes them through standard interfaces such as corba idl, soap, and JMS, therefore, enterprise applications built based on interesb can apply different underlying communication mechanisms in a transparent, consistent, and efficient manner.
Highly flexible and deployable information bus
In interesb, multiple message communication services deployed on different nodes and computing domains implement flexible enterprise application communication functions. At the same time, interesb supports distributed deployment functions that can be constantly optimized in the problem-oriented field of these communication services, including the following three modes:
In fully connected bus mode, MQ is deployed in interesb;
A super forwarding server is deployed in interesb in a centralized and pluggable bus mode;
Distributed cascade of "Snowflake structure", multiple super forwarding servers are deployed in some regions of interesb. This mode is deployed in large-scale SOA systems with strong dynamic growth, manageability, maintainability, and high efficiency.
Convenient and standard enterprise application integration mode
Interesb provides simple, fast, and standard-based multi-point integration functions. Interesb provides a complete set of development modes for enterprise application development and integration to help clients connect to services. These models customize a series of mechanisms for describing services, notification and discovery services, and communicating with services. In interesb, standard-based services become integration points between applications. That is, all models around services are implemented based on standards. This allows interesb to adapt to any existing system and prevents systems from being deliberately customized during integration.
Interesb can be expressed as data transmission and application integration when it is oriented to enterprise application integration requirements. Data transmission covers all aspects of data transmission in your application system, such as files, databases, messages, events, and commands; application Integration covers data integration, application integration, device integration, protocol system encapsulation, and other application integration content.
Flexible adapter Technology
A well-designed adapter serves as a well-designed SOA service. It provides an abstraction layer that isolates the rest of the application infrastructure from various tricky issues.
The universal adapter is a reusable and unified interface developed by interesb to solve the connection between systems. Through this interface, each application system only needs to be connected to the business integration platform, instead of connecting to every application system that interacts with it. Interesb adapters generally include legacy system adapters, technical standard class adapters, and adapter development tools.
Integration with CORBA and J2EE technologies
The underlying layer of interesb is based on the middleware INTERBUS of the distributed computing service (CORBA) and the intermq message communication middleware complying with the JMS specifications. Therefore, interesb has a natural combination advantage with CORBA and J2EE.
However, interesb is not equivalent to CORBA. Compared with the CORBA technology, interesb inherits the open standards, distributed architecture, component technology, and high performance of the CORBA technology, and is suitable for complex application integration, interesb also provides SOA functions not available in the CORBA technology, namely:
Interesb supports more technical standards;
Interesb supports wider interoperability;
Interesb has better scalability;
Interesb support for proprietary systems;
Interesb supports future standards.
Through MDB/JDO supported by J2EE, interesb can easily be connected to the J2EE application system to form effective function integration.
Extensive platform support
The interesb plug-in architecture is open at every level, so that it can achieve transparent interoperability with existing basic components, this allows you to balance the speed, cost, and usage skills. Interesb can send data in any format, including XML and binary, in the case of a transient transmission system, and can be implemented on any development platform (C ++ and Java, instead of forcing all applications to use the same development language.
Interesb includes a fully connected bus mode, a centralized pluggable bus mode, and a distributed cascade of snowflake structures.
5. What are the shortcomings between the Enterprise Service Bus (ESB) and actual enterprise applications?
Currently, ESB has many commercial solutions and many open-source products, such as objectweb, codehaus, and SourceForge. there is still a gap between maturity and maturity. In addition, each vendor is a battle. Currently, JCP does not have a draft of this technology, and there is still a long way to specify the standard. of course, the current status is the same as that of SOA. I believe that when SOA is truly popularized, ESB will become more mature.
Vi. Enterprise Service Bus (ESB) technology and innovation
Due to the requirements of larger tasks, the messaging technology is currently in development. To provide real-time enterprises with the required flexibility, a hybrid message transmission model is required to combine the advantages of Web Services with traditional asynchronous message transmission.
The traditional Message Queuing middleware will soon be replaced by the Enterprise Service Bus (ESB) technology, bringing message transmission to a new height. The new ESB backbone (giving birth to next-generation integration and application platform products) will significantly improve the software infrastructure of most enterprises. The industry is turning to message transmission and ESB as the core application platform infrastructure model, marking a turning point: the use of information resources by enterprises has triggered a new wave of great innovation. Enterprises are taking advantage of the event architecture. This will eliminate all recent concerns that it can play a key role in strategic business differentiation.
In the past 10 years, the competitive pressure and ever-changing technologies have fundamentally changed the pace of enterprise operation. In the past, enterprises could make decisions based on the batch reports at the end of the month. Now, the real-time process means that if the raw materials are faulty in the morning or there is a power outage, it will cause failure to deliver and ship finished products in the afternoon. As a result, enterprises have to respond to emergencies at a faster speed-otherwise, they will have to stand. The era of "zero latency enterprise" has arrived.
Today's enterprise environment is developing at 1.1 points to address this challenge. Heterogeneous Storage, networks, and hardware support "isolated island computing" (applications and data are isolated from each other or separated by blocks), which leads to over-complicated environment utilization and management, and make it resource-intensive. For most of the key challenges that enterprises must face, this complexity is undoubtedly an obstacle. These challenges include:
Meet the increasing demand for transferring a large number of information services through multiple channels.
Real-time management infrastructure to meet ever-changing business needs.
Diversify the business to promote flexible business growth and reduce economic risks related to fixed product lines.
Ensure quick and high-quality response to information service requests from customers, partners and employees.
Over the past few years, the rapid development of EAI, B2B, and application development has promoted the development of several key technologies and standards. These technologies and standards have also promoted significant advances in the infrastructure field:
XML, as a common and self-explanatory data exchange format, is already used by most applications. Web-oriented information exchange and subsequent infrastructure make the use of web services inevitable together with XML.
It has been accepted as a major technology for servers, and J2EE has been accepted as the application server standard.
The use of the Enterprise Service Bus in the field of transactional message exchange and real-time event notification has been standardized around Java Message Service (JMS.
The Java Management extension (JMX) standard has implemented a public management framework for server-side components.
Infrastructure must run like a business
The ever-changing market needs to transmit a large number of information services through multiple channels. The next generation of enterprises require loosely coupled resources to share public communication and management infrastructure across multiple fields. The Enterprise infrastructure has to run like a tangible business, allowing dynamic management of resources to respond to fluctuations in the needs of customers and partners, while also dealing with changes in the supply and availability of system resources. Enterprise applications also need a standard-based collaboration model to maximize the use of this infrastructure. To this end, real-time enterprises use the best practices from Real-Time Infrastructure and gridtechnology on the server side ).
Real-Time Enterprise Components
Some concepts that form a Real-Time Enterprise are the same as those used to define a server-side grid environment. The structure used to describe its core components (see Table 1) is similar to Gartner's layer-5 grid technology model.
An ESB built on existing widely used technologies and open standards can provide an adaptive distributed architecture for service collaboration, management, and control. ESB allows you to deploy business services at runtime anywhere within an enterprise, and provides collaboration and Notification Services as part of its core infrastructure. Let's take a look at how the ESB Technology Maps to Gartner's layer-5 model.
Infrastructure resources and Virtual Operating Systems
Layer 3 consists of infrastructure resources, including the operating system environment of the network, server, storage, and each server. Layer 3 is located on the infrastructure layer, and a multi-resource distributed operating system is established, it supports functions such as implementing a work plan, integrating resource names into the overall structure, and ensuring consistent authentication between different systems.
Although Gartner uses J2EE as a 2nd-layer technology, we believe that the combination of distributed JMX and a J2EE-based application server will have the characteristics of a virtual operating system. Allows remote activation and management of services by using containers or microkernels that provide deployment and full JMX management for all components and services.
JMX was originally designed to manage a single proxy, such as an application server. Through the combination of JMX and JMS, the scope of JMX can be expanded to manage a single proxy, cluster, or loose combination (if you like it, it can also be called a super cluster ), allows full lifecycle and deployment management for the combined ESB infrastructure. Because JMX also integrates many traditional management protocols, such as SNMP, the ESB infrastructure can provide on-demand (on-demand) services for Java, web services, and traditional platforms) self-Annealing infrastructure.
Distributed programming model
The distributed programming model forms the 1st layer of Real-Time Enterprise: the core infrastructure for collaboration and notification between applications and services (both internal and external. The ESB provides Event Notification, dynamic routing selection, and transactional transfer assurance. It also uses a clearly defined process language to enable the application to coordinate activities through a public API.
Real-time enterprises require that the correct data be transmitted to the correct location at the right time; JMS (Java Message Service) provides the method for event distribution and transaction to ensure delivery. At the same time, it also requires a Smart Data Structure (datafabric), which can distribute information within the network range as needed, in order to increase throughput and reduce the load of valuable background systems. The backbone of this structure is formed by jcache (Java universal buffer framework.
A tuplespace similar to Linda combines the semantics of "one and only one" transmission in a message queue with the Broadcast Function of publishing/subscription and the loose coupling of the peer system. The space of tuples is like the connected memory shared by an infinite number of processes. A process can add tuples (essentially Data Objects) to the space, or extract them to work in an exclusive manner-if needed, they can remain in the waiting state, directly to the appearance of the matching object. The process can also read tuples without deleting them from the space. This example maps the semantics of one and only one message queue to the top of jcache, and integrates the Broadcast Function of publishing/subscription with the loose coupling of the peer system, it provides a high-performance distributed implementation of this concept.
This can also be combined with a business process model engine (for example, jbpm: www.jbpm.org) to provide a rich set of distributed programming domains. Work independently between processes-get the appropriate input from the tuples and put the output back into the tuples for subsequent tasks. The execution sequence of processes on tuples is less constrained than that on traditional workflow systems. This model provides the basis for Distributed Shared Memory, general clusters, parallel computing, and distributed workflows and BPM.
Applications that constitute the 3rd-layer Real-Time Enterprise depend on the resources of the enterprise's infrastructure and communicate with each other using the collaborative programming model. Architects have realized the advantages of loose coupling and multi-layer component models, rather than developing independent or simple two-layer Client/Server (C/S) applications. The standards used to define, discover, and actually execute this model (for example, WSDL, UDDI, and soap for Web Services) Contribute to the implementation of the service-oriented architecture.
The J2EE application server, as the foundation of the virtual operating system, provides an integration point for the infrastructure based on transactional security services. Distributed ESB is a grid-like enabling technology. Therefore, it is a natural choice to organize and define web service interfaces based on the OGSI source code. Currently, OGSI is a de facto standard for external grid technology. It allows the grid services written in one environment to be easily deployed in other environments.
In addition, ESB can provide a scalable Rule Engine Based on the optimized Tete algorithm. External business rules make it possible to manage rapidly changing business processes and decision-making mechanisms at a lower level, and to filter messages and select routes, you do not need to modify the code of the basic application. It frees businesses from the dependency on slow code development cycles and allows business-proficient analysts to make necessary changes to support the introduction of new products or regulatory requirements, without interrupting the system.
"In the past 10 years, the competitive pressure and ever-changing technologies have fundamentally changed the pace of enterprise operation"
Real-time enterprises require services to manage and coordinate applications and services at both the macro and micro levels. Layer 3 provides management support for implementing security policies, defining resource user guides, and integrating operational processes. Basic functions include:
Monitoring: Sort events and statistical data to understand application performance, resource usage, and operation behavior. It allows you to simulate the entire infrastructure, identify errors, and manually and automatically balance resource utilization.
Response Coordination: smart management, control, self-repair, and fine-tuning of applications through heuristic analysis, dynamic rules, and flexible workflows. Run the application by using an effective dynamic topology layout (running the right number of applications at the right location), real-time enterprise management, and selecting the right hardware and location.
The ESB management structure combines the collection and comparison of distributed JMX and statistical events with the same standard Java specification framework at the application level. This provides location transparency, discovery, remote control, and statistics for resource usage, performance monitoring, and warning notifications. These technologies allow predictive decisions on intelligent resource visualization, collaboration, and supply environments across the entire Real-Time Enterprise, giving it managers and business managers insights.
With a distributed enterprise service bus, enterprises can maximize their existing investments in hardware and software by leveraging standards to provide a flexible and real-time "on-demand service" infrastructure. The flexible infrastructure includes:
It provides technologies that can actively adjust it resources so that business leaders can transform core information services to meet the ever-changing market demands.
Create a unified IT foundation based on open standards, which can be flexibly changed to meet future needs.
Reduces IT infrastructure costs while maintaining a high level of performance.
These goals are achieved through the combination of Enterprise message transmission, real-time buffering, and distributed active management technologies. The result is an IT foundation with lower overall costs and higher capability to cope with business changes. By relying on standards, the Real-Time Infrastructure combines different technologies into a continuous structure, which provides a way to quickly adjust the software and hardware infrastructure to meet enterprises' real-time business needs.
VII. Several ESB Models
John Renault proposed several ESB models. When selecting ESB for enterprise application development, we must first determine which ESB model is suitable for our business model.
For web services, only asynchronous service calls can truly understand the benefits of WS. Asynchronous call means that the user sends a request, and then checks whether the request is returned later. With Asynchronous calls, users do not need to wait for the request to return immediately after sending a request, which enhances user experience. In fact, many services, such as mail service, message service, and online payment, are asynchronous calling services.
8. Application Prospects of Enterprise Service Bus (ESB)
Enterprise-level application systems have been one of the main directions of China's software industry development and play a crucial role. At the same time, it is also affected by the world's IT development trend. The main technology trends in the IT software field are SOA and ESB, the reason is that the continuous development and maturity of information technology gives enterprises the opportunity to integrate their own resources within a larger scope to improve the operational efficiency.
In the 21st century, information sharing and integration are becoming increasingly important to the transformation and development of enterprises. The dependency of enterprises on the network environment and the pursuit of application innovation will be the main challenges we face.