JBI(Java Business Integration)是SUN公司解决SOA的方案,当然JBI没有得到IBM与BEA的承认(IBM与BEA等公司推荐SCA和SDO)。
这里先介绍下JBI架构思想,JBI目的主要是在于创建一个可以集成各种组件服务的运行环境,当然这也是一种服务总线思想的体现。
目前流行的服务容器有Servlet容器、EJB容器、JMS容器。
1. Servlet容器只能处理以HTTP/SOAP协议传输的消息(接收与响应);
2. EJB容器只能处理RMI协议传输的消息;
3. JMS容器则处理的是JMS协议传输的消息;
它们之间无法进行通讯,如果想集成上面不同类型的容器服务,则必须有一种能融合以上不同容器的新容器出现。JBI就是基于解决这种问题的思路出现的,JBI提供了各种各样的容器绑定组件(Binding Component,称BC),BC专门负责接收各种各样的传输协议的消息与发送请收消息给外部容器。当然JBI还提供其它的功能,要不这纯属一种代理了,就没什么意义;
JBI提供处理各种业务的组件(即Service Engines组件,称SE)的消息,比如接收到HTTP的消息后需要转发给外部组件EJB,则需要SE组件来进行转换(更准确的说是Transform SE组件)。其实BC与SE之间是无法直接通信的,所有的消息都是通过传输通道(Deliver Channel)传送到NMR(Normalized Message Router),再由NMR通过DC将信息转到SE或BC的。以下是JBI容器架构图,方便大家理解。