While you do the day to day programming for solving business problems, you will be generating business code as well as business integration code. The traditional Java/J2EE APIs provide you with enough tools and frameworks to do the business coding. The business code will help you to implement a business service such as creating orders or finding products. On the contrary, business integration code wires together multiple applications and systems to provide seamless information flow. It is in this context you need to understand ESB & JBI, and subsequently EIP.
<<Q: What are ESB>> : ESB is Enterprise Service Bus, an Architectural pattern for Integrating services. The service bus approach to integration makes use of technology stacks to provide a bus for application integration. Different applications will not communicate directly with each other for integration; instead they communicate through this middleware Service Oriented Architecture (SOA) backbone. The most distinguishing feature of the ESB architecture is the distributed nature of the integration topology. Thus ESB differs from its peer topologies viz. Point-to-Point, Hub-And-Spoke and Message-Bus. More here: Article on ESB on International Association of Software Architects (IASA) site
<<Q: What are JBI>> : Java Business Integration (JBI) specification (JSR 208) defines the core of a service oriented integration bus and component architecture for SOA. It standardizes the common message routing architecture, plug-in interfaces for service engines and bindings, and a mechanism to combine multiple services into a single executable and auditable unit of work. More here: http://java.sun.com/integration/
<<Q: What are EIP>> : EIP refers to Enterprise Integration Patterns. While doing integration we can start thinking in terms of connectors, brokers, or message routers which have a very specific role and responsibility in the integration domain. These are integration blocks which when combined together in different ways will give out new styles or patterns of message exchange. Hence, EAI patterns are nuggets of advice made out of aggregating basic MEP (Message Exchange Patterns) elements to solve frequently recurring integration problems. For every practical purpose these are similar to design patterns and we can look at EAI patterns as design patterns for solving integration problems. More here: http://www.enterpriseintegrationpatterns.com
Enterprise Service Bus provides infrastructure for integration of different services old or new . The services could be written in different programming languages or running on different platform. For e.g. a newly written WS can talk to some legacy application. The ESB provides routing and message transformation services.
Still hard to digest Please correct my if I'm wrong. ESB ESB is something like MOM. Application1 sends (or call) a signal to an ESB server which in turns pass it to Application2. Does ESB employs an architecture/technologies other than Web Services? JBI JBI is the same ESB but since ESB doesn't has the "J" letter, JCP decided to create a new JSR.
Originally posted by John Todd: JBI JBI is the same ESB but since ESB doesn't has the "J" letter, JCP decided to create a new JSR.
Enterprise Service Bus Java Business Integration
An ESB product that supports only one platform (Java) wouldn't be very good at its job. Ideally you want all your business applications, regardless of platform, to be able to interact with the ESB.
Given that, it is more likely that JBI is a specification that outlines features that would be useful for Java Applications to "talk to" an ESB in order to participate in a large scale distributed business process. Therefore an ESB product may claim to support JBI but in fact JBI would actually only be a fraction of its functionality.