The Java Business Integration (JBI) specification currently being worked on within the Java Community Process (JCP) extends the Java Platform with the concept of services (as in SOA). It defines in particular what services are and how they can interact with each other over diverse protocols (e.g. JMS, SOAP). For this reason, JBI will be the foundation of modern, standard-based Enterprise Service Buses (ESB), which importance is paramount for integration.
Unfortunately, even though Sun was already publishing in July 2003 a paper which goal was to "inform and motivate users and vendors to track the evolution of the JBI specification within the JCP program, and to factor JBI into their strategic technology roadmaps for integration solutions and products", more than one year later JCP outsiders don't have access to even a draft of the JBI specification and can only rely on the sparse information published by the JCP members in articles, Web logs, and books.
Java Business Integration Services
JBI services are described with WSDL and can communicate with each other over different protocols through the Binding Component (BC) and Normalized Message Service (NMS):
- Binding Component (BC) - Binds to the service to a specific protocol like JMS, SOAP, IIOP, etc. For instance a SOAP BC transforms normalized messages received from the NMS (see below) into a SOAP envelope and pushes the envelope on the wire. Similarly when it receives a SOAP envelope, it transforms the envelope into a normalized message and hands off the normalized message to the NMS.
- Normalized Message Service (NMS) - Provides a Service Programming Interface (SPI) to the service to push and pull normalized messages. Normalized messages contains XML data (message payload), as well as contextual information (e.g. transactional context, security context). The NMS offloads the service from having to deal directly with the contextual information.