Java Business Integration
What is the Need ?
- Use of Non-Standard Technologies to create Integration Solutions resulting in Vendor Lock.
How does JBI Solve this problem ?
- JBI Creates a Standards Based Architecture for Integration Solutions.
- Third Party Components are assembled by the End User.
- These Components are allowed to inter-operate predictably and reliably.
- User is free to chose components that address certain functionalities, and then assembled to provide an end to end solution.
- The Assembling is done through a Service Oriented Architecture, that enables decoupling of components, and creates well defined intereroperation semantics based on standards based messaging.
What does JBI Provide ?
- JBI Provides a standards based framework into which components from different vendors can be plugged in. [rather than having separate dedicated connections between disparate applications from various vendors]
- The Services that the Component expose are descrived using WSDL 2.0
What are the different categories of components that can be plugged in ?
- The Service Engine [SE]
- The Binding Component [BC]
In Summary, what do these components do ?
The Service Engine is used for Business Logic and Transformation Needs, whereas Binding Components are used for Connectivity.
What do we gain from having described services using WSDL ?
- Decoupling [Provider-Consumer Decoupling]
- Portability [Description is independant of implementation]
- Interoperability [Through Definition of XML Based Message Exchnage]
- A Service Oriented Architecture
How does a JBI Environment look like ?
The JBI Environment is where the Plugin components reside. The Environment provides the following services.
- Execution of Services
- Component Interaction [Through Message based Service Invocation] Note that JBI uses an Abstract Service Model as the basis of Component interaction. i.e. [Abstract Service Model means definition of service without reference to protocols or wire encoding]
- Overall System Management [Lifecycle and installation Management Services]
How does a Message within the JBI Environment look like ?
Only Normalized Messages travel within the JBI Environment. Normalized Messaged have two parts.
- Abstract XML Message
- Message Metadata [used by System and plugin components]
Can a JBI Environment span over multiple Virtual Machines?
No.
How would a detailed list of components within a JBI Environment contain ?
- SE Framework [Containing the Different SEs]
- The NMS [For providing the Mesage and Control interaction infrastructure]
- The BC Framework containing the WS-I BC and optionally, other BCs
So JBI Provides SEs or the Frameworks for the SEs?
JBI defines the frameworks that provide the pluggable infrastructure for adding SEs and BCs.
What about the Message Exchange within the environment ?
Its WSDL messaging all the way. Inbound Service Requests are received by the BCs, routed by the NMS, and delivered to an SE. An Outbound Service Request is generated by an SE, routed by an NMS, and delivered to a BC.
The BC itself is describes as an inbound WSDL endpoint [ The WSDL 2.0 definition of a Port]. All outbound messages from the SE define the outbound destination as an abstract service name. The NMS plays the responsiblity to route the outbound message to the appropriate BC.
What are the other infrastructure within the JBI Environment ?
The JBI environment also has services for life cycle management, environmental inspection, administration and reconfiguration, for relaiable operations.
In Simple terms, how would a simple Message Routing lifecycle look like ?
- Service Consumer sends service request bound to a particular protocol and transport to BC.
- BC converts request to normalized form [ as per WSDL Model]
- Normalized message is sent to NMS by the BC
- NMS Routes the Message to the appropriate SE
- SE Creates a Normalized Message, requesting a Service to be performed by a service references by its WSDL Service Name
- BC denormalizes the Message into protocol and transport format, and sends the message across the wire to the service provider.