This paper introduces the new Java Business Integration (JBI) technology, as described by Sun Microsystems in the Java Community Process (http://www.jcp.org/en/jsr/detail?id=208). Starting with an overview of current approaches to simplifying enterprise application integration (EAI), the author motivates the need for a new EAI technology with his observation that the available solutions are either too slow or too inflexible. It is indeed a fact that EAI usually involves more than pure Java systems; therefore, an EAI framework must take into account non-Java technologies. Moreover, solutions that involve multiple protocol conversions are known to be slow, and they can also be quite expensive, something the author supports with an example.
JBI is introduced in terms of a service-oriented architecture (SOA). There are components acting as service consumers and other components acting as service providers; both are exposed using Web services description language (WSDL) interfaces, and a specialized router service supports discovery services. According to the paper, the most apparent advantage of JBI, as compared to other EAI frameworks, is its support for the use of Web services and their standardized protocols. The paper helps elucidate the most notable elements of JBI, such as binders and service engines for connecting various container technologies. The section on message normalization also addresses the treatment of reliable messaging in JBI, and explains how it is implemented without seriously affecting system performance.
The abstraction level of the paper is quite appropriate: there isn’t too much technical detail, but the author provides a helpful orientation for finding more information in the JBI specification from Sun, which is 244 pages long. The paper would benefit from additional information on how (or if) JBI addresses certain limitations of a SOA, such as the lack of a standardized mapping from objects and their methods onto services and their operations, which do not support the maintenance of state data, or the transmission of instances of arbitrary classes across the network.