JBI(Java
Business Integration,Java业务集成,Java业务整合)即JSR 208是一种企业服务总线(Enterprise
Service Bus,ESB),使我们能够用Java实现面向服务的架构。企业正转向以面向服务架构(SOA)和网络服务,以提供灵活的IT系统,用一种成本低廉的方式来支持快速变化的商业需求。
JBI的主要目的是提供一个基于服务的平台作为对现有Java/J2EE平台功能的扩展。
JBI是一个比较新的Java标准,其评审工作仍在进行。
虽然如此,JBI中至少有一个方面已经流行开来,下面就是它所使用和定义的术语和模式:
·绑定组件:理解特定的协议并能够将其转化为一种标准或常见的系统级协议的软件组件。它们用作系统的入口点和出口点。也称为适配器。
·服务引擎:负责处理请求(通常通过转换的手段)的软件组件。例如,XSLT转换程序、BPEL引擎、规则引擎等等。
·消息交换:消息交换协议。常见的交换模式有请求-响应、in-only等等。
·组建安装:静态或动态地向运行时环境添加可执行的软件组件。
·服务部署:静态或动态地向已安装的组件添加可执行的服务(或应用程序)。
·服务程序集:一组服务。
标准是用来实现互操作性和可移植性的,但是它们在方便通信方面的重要性也不可忽视。
在JavaOne大会上已经能够听到相当数量的关于JBI的谈论了,而且我们也会在近期内首次发布一个开源JBI容器和组件套件ServiceMix,这一切都相当令人高兴。我不清楚是不是所有的人都对JBI有了一定的了解,因为在JavaOne大会上一些关于JBI的讨论中,我看到某些与会者脸上流露出困惑的表情。我想我们需要一些文章来解释一下什么是JBI、其重要的思想是什么,以及如何使用JBI。
首先,可以简要的将JBI描述为一个用于规范化信息服务和路由器的简单API,这个API包含了一些用于部署集成服务的组件和管理模型。这里指的需要部署的集成服务主要包括路由引擎、BPEL引擎、角色系统或传输引擎等等。
JBI提供了一个合理的XML信息传输网络,通过这个网络对HTTP、电子邮件和JMS/MOM等进行良好的映射,使得这种网络能够方便地应用在现有的遗留系统、二进制传输和RPC系统(例如EJB或CORBA)之中。你可以把它想象成在JMS之上的逻辑抽象层,支持多种不同的消息交换机制(例如传统的“请求与应答”方式)。
绑定组件(binding components)处理和所有的传输管道以及协议相关的内容,然后由工作在逻辑XML层的服务引擎组件(service
engine components)提供基于路由、控制、规则、传输或自定义增强功能的内容。
这样一来,BPEL引擎就不用再处理所有可能用到的协议、传输设备及线缆格式了,这些工作可以全部交给JBI来做,JBI会为物理路由或服务终端点完成这些工作。与此类似,基于内容的路由器、规则引擎、传输引擎也可以搭乘JBI这班车,自己则完成自己分内的工作。基于这点,我认为JBI是一套很棒的适合集成组件开发者的API。
当然,很多应用程序开发者仍旧喜欢开发POJO服务、把这些服务放到自己的容器中,然后以Web services的形式进行应用,在这种情况下他们也许不会直接使用到JBI
API。但是,JBI提供了一种使得中间件、集成厂商和OSS项目能够在ESB级别共同协作运行的方法,这种方法对于像我们公司这样的集成组件开发公司而言是非常有意义的。
|