Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Architecture  



1.1  Functions  







2 History  



2.1  ESB as software  



2.1.1  Characteristics  









3 Key benefits  





4 Key disadvantages  





5 Products  





6 See also  





7 References  





8 Further reading  





9 External links  














Enterprise service bus






العربية
Català
Dansk
Deutsch
Español
فارسی
Français

Italiano
עברית
Magyar
Nederlands

Polski
Português
Русский
Svenska
Українська

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


All customer services communicate in the same way with the ESB: the ESB translates a message to the correct message type and sends the message to the correct consumer service.

Anenterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special variant of the more general client-server model, wherein any application may behave as server or client. ESB promotes agility and flexibility with regard to high-level protocol communication between applications. Its primary use is in enterprise application integration (EAI) of heterogeneous and complex service landscapes.

Architecture[edit]

The concept of the enterprise service bus is analogous to the bus concept found in computer hardware architecture combined with the modular and concurrent design of high-performance computer operating systems. The motivation for the development of the architecture was to find a standard, structured, and general purpose concept for describing implementation of loosely coupled software components (called services) that are expected to be independently deployed, running, heterogeneous, and disparate within a network. ESB is also a common implementation pattern for service-oriented architecture, including the intrinsically adopted network design of the World Wide Web.

No global standards exist for enterprise service bus concepts or implementations.[1] Most providers of message-oriented middleware have adopted the enterprise service bus concept as de facto standard for a service-oriented architecture. The implementations of ESB use event-driven and standards-based message-oriented middleware in combination with message queues as technology frameworks.[2] However, some software manufacturers relabel existing middleware and communication solutions as ESB without adopting the crucial aspect of a bus concept.

Functions[edit]

An ESB applies the design concept of modern operating systems to independent services running within networks of disparate and independent computers. Like concurrent operating systems, an ESB provides commodity services in addition to adoption, translation and routing of client requests to appropriate answering services.

The primary duties of an ESB are:

History[edit]

The first published usage of the term "enterprise service bus" is attributed to Roy W. Schulte from the Gartner Group 2002 and the book The Enterprise Service Bus by David Chappell. Although a number of companies take credit for coining the phrase, in an interview, Schulte said that the first time he heard the phrase was from a company named Candle and went on to say: "The most direct ancestor to the ESB was Candle’s Roma product from 1998"[3] whose Chief Architect and patent application holder was Gary Aven. Roma was first sold in 1998 making it the first commercial ESB in the market, but that Sonic's product from 2002 was also one of the early ESBs on the market.[4]

ESB as software[edit]

The ESB is implemented in software that operates between the business applications, and enables communication among them. Ideally, the ESB should be able to replace all direct contact with the applications on the bus, so that all communication takes place via the ESB. To achieve this objective, the ESB must encapsulate the functionality offered by its component applications in a meaningful way. This typically occurs through the use of an enterprise message model. The message model defines a standard set of messages that the ESB transmits and receives. When the ESB receives a message, it routes the message to the appropriate application. Often, because that application evolved without the same message model, the ESB has to transform the message into a format that the application can interpret. A software adapter fulfills the task of effecting these transformations, analogously to a physical adapter.[5]

ESBs rely on accurately constructing the enterprise message model and properly designing the functionality offered by applications. If the message model does not completely encapsulate the application functionality, then other applications that desire that functionality may have to bypass the bus, and invoke the mismatched applications directly. Doing so violates the principles of the ESB model, and negates many of the advantages of using this architecture.

The beauty of the ESB lies in its platform-agnostic nature and the ability to integrate with anything at any condition. It is important that Application Lifecycle Management vendors truly apply all the ESB capabilities in their integration products while adopting SOA. Therefore, the challenges and opportunities for EAI vendors are to provide an integration solution that is low-cost, easily configurable, intuitive, user-friendly, and open to any tools customers choose.

ESB hive of commodity components

Characteristics[edit]

Category Functions
Invocation support for synchronous and asynchronous transport protocols, service mapping (locating and binding)
Routing addressability, static/deterministic routing, content-based routing, rules-based routing, policy-based routing
Mediation adapters, protocol transformation, service mapping
Messaging message-processing, message transformation and message enhancement
Process choreography¹ implementation of complex business processes
Service orchestration² coordination of multiple implementation services exposed as a single, aggregate service
Complex event processing event-interpretation, correlation, pattern-matching
Other quality of service security (encryption and signing), reliable delivery, transaction management
Management monitoring, audit, logging, metering, admin console, BAM (BAM is not a management capability in other words the ESB doesn't react to a specific threshold. It is a business service capability surfaced to end users.)
Agnosticism general agnosticism to operating-systems and programming-languages; for example, it should enable interoperability between Java and .NET applications
Protocol Conversion comprehensive support for topical communication protocols service standards
Message Exchange Patterns support for various MEPs (Message Exchange Patterns) (for example: synchronous request/response, asynchronous request/response, send-and-forget, publish/subscribe)
Adapters adapters for supporting integration with legacy systems, possibly based on standards such as JCA
Security a standardized security-model to authorize, authenticate and audit use of the ESB
Transformation facilitation of the transformation of data formats and values, including transformation services (often via XSLTorXQuery) between the formats of the sending application and the receiving application
Validation validation against schemas for sending and receiving messages
Governance the ability to apply business rules uniformly
Enrichment enriching messages from other sources
Split and Merge the splitting and combining of multiple messages and the handling of exceptions
Abstraction the provision of a unified abstraction across multiple layers
Routing and Transformation routing or transforming messages conditionally, based on a non-centralized policy (without the need for a central rules-engine)
Commodity Services provisioning of commonly used functionality as shared services depending on context

¹ Some do not regard process choreography as an ESB function. For example, see M.Richards.[6]

² While process choreography supports implementation of complex business processes that require coordination of multiple business services (usually using BPEL), service orchestration enables coordination of multiple implementation services (most suitably exposed as an aggregate service) to serve individual requests.

These solutions often focus on low-level ESB functions, such as connectivity, routing and transformation, and require coding or scripting to implement orchestration.[7] Developers operating at a project or tactical level, e.g., just trying to fix a problem, often gravitate toward lightweight service bus technologies, but there is often ongoing tension between these initiatives and an enterprise architecture whose goal it is to optimize infrastructure across multiple projects.[8]

If the message broker, the ESB software, translates a message from one format to another, then as with any translation, there is the issue of semantics of the message. For example, a record can be translated from JSON to XML, but the same set of fields can be interpreted differently by different applications, specifically in the case of the various corner cases that are usually known only to developers that have extensive experience with the application that is connected to the ESB. For the known corner cases the number of tests that cover all corner cases increases exponentially with every application that is connected to the ESB, because every ESB-connected application must be tested against every other application that is connected to the ESB.

Key benefits[edit]

Key disadvantages[edit]

Products[edit]

Notable products include:

  • IBM App Connect, formerly IBM Integration Bus and IBM WebSphere ESB
  • InterSystems Ensemble
  • Information Builders iWay Service Manager
  • Microsoft Azure Service Bus
  • Microsoft BizTalk Server
  • Mule ESB
  • Oracle Enterprise Service Bus
  • Progress Software Sonic ESB (acquired by Trilogy)
  • SAP Process Integration
  • TIBCO Software ActiveMatrix BusinessWorks
  • webMethods enterprise service bus (acquired by Software AG)
  • Sonic ESB from Aurea
  • XIATech Single Data View
  • Open-source software
  • See also[edit]

    References[edit]

    1. ^ Lapeira, Raul. "ESB is an architectural style, a software product, or a group of software products?". Artifact Consulting. Archived from the original on 2014-08-08. Retrieved 2010-04-16. The first thing an ESB architect should have in mind is that as of 2010 there is no global standard for ESB.
  • ^ Curry, Edward. 2004. "Message-Oriented Middleware"[permanent dead link]. In Middleware for Communications, ed. Qusay H. Mahmoud, 1-28. Chichester, England: John Wiley and Sons. doi:10.1002/0470862084.ch1. ISBN 978-0-470-86206-3
  • ^ McKendrick, Joe. "The great ESB squabble of 2005". ZDNet. Retrieved 2020-12-31.
  • ^ "Difference between a Message Broker and an ESB". Retrieved 2017-07-19.
  • ^ "Enterprise Service Bus [Book]".
  • ^ Richards, Mark. "The Role of the Enterprise Service Bus (presentation)". Retrieved 2009-06-04. I do not consider process choreography part of an ESB, if we consider an ESB as a high-speed messaging middleware. However, I do consider process choreography part of the ESB *platform*. Fortunately most ESB vendors separate out these major components into different products, but package them under a consolidated ESB offering. So, in the strictest sense of the word, no, I would not consider it as part of an ESB. It is a related capability.
  • ^ Feraga, Matthias (6 Jun 2011). "How to: choosing between lightweight and traditional ESBs". Octo. Retrieved 23 April 2014.
  • ^ Fulton, Larry (12 Sep 2007). "Learn How to Embrace Lightweight ESBs". Fo2014. Archived from the original on 27 January 2022. Retrieved 23 April 2014.
  • Further reading[edit]

    External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Enterprise_service_bus&oldid=1204639943"

    Categories: 
    Enterprise application integration
    Message-oriented middleware
    Service-oriented (business computing)
    Software architecture
    Hidden categories: 
    All articles with dead external links
    Articles with dead external links from September 2017
    Articles with permanently dead external links
    Articles with short description
    Short description matches Wikidata
    Articles needing additional references from October 2014
    All articles needing additional references
    Articles with J9U identifiers
    Articles with LCCN identifiers
     



    This page was last edited on 7 February 2024, at 14:52 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki