技术开发 频道

JBI-Java实现SOA的标准途径

  基于仲裁者体系

  JBI 定义了基于插件方式的架构,以便服务能融入“ JBI 运行时”环境。 JBI 提供了详细的接口,使服务能与“ JBI 运行时”环境交互。这些服务要为“ JBI 运行时”环境暴露接口,以便“ JBI 运行时”环境为服务路由消息。“ JBI 运行时”环境在部署在 SOA 环境中的服务间扮演仲裁者的角色。

  

  在同一 JVM 中,“ JBI 运行时”核心主要包括如下组件:

  ·组件框架:组件框架把不同类型的组件部署到“ JBI 运行时”。

  ·归一化消息路由器:归一化消息路由器利用标准机制实现服务间消息交换。

  ·管理框架:管理框架基于 JMX 进行部署、管理以及监控“ JBI 运行时”中的组件。

  组件模型

  JBI 在“ JBI 运行时”环境中定义了两种组件:

  服务引擎组件:该组件负责实现业务逻辑和其他服务。服务引擎组件在其内部可使用多种技术和设计模式。服务引擎组件可提供数据传输和转换这种简单的基础服务,也可实现像 WS-BPEL 实例一样复杂的业务处理。

  绑定组件:绑定组件主要为已部署服务提供传输级绑定。绑定组件有多种类型:

  ·利用标准传输协议与外部系统进行远程通讯。

  ·使已部署服务能在同一个 JVM 内部相互调用。

  ·服务间可使用标准的 WS-I ( Web 服务协同工作组织)规范通讯。

  JBI 的关键是分离服务引擎和绑定组件,以便业务逻辑不被下面的具体细节所干扰。这种方式促进了体系的灵活性和可扩展性。绑定组件和服务引擎组件在 JBI 内部都可以是服务提供者和 / 或服务消费者。

  绑定组件和服务引擎组件为“ JBI 运行时”提供接口以便从“ JBI 运行时”接收消息。同样的,它们也利用 JBI 提供的接口来和“ JBI 运行时”通讯。

  消息传输模型

  JBI 利用消息传输模型分离服务提供者和服务消费者之间的耦合。消息传输模型利用了 WSDL 。 WSDL 用于描述暴露的服务引擎组件和绑定组件的业务处理。另外, WSDL 也用于定义抽象服务处理的传输级绑定。

  JBI 架构中一个关键组件是 NMR (归一化消息路由器,也译作“正规消息路由器”)。 NMR 基于 WSDL 提供了主要的消息传输中枢, NMR 为部署在“ JBI 运行时”中的服务引擎组件和绑定组件间的消息传递提供松散耦合。服务需要有聚合业务处理的接口,每个业务处理由零个或多个消息组成。而一个接口有一个或多个传输级绑定。

  “ JBI 运行时”利用归一化格式描述消息。一个归一化消息由以下部分组成:

  ·消息属性

  ·消息有效载荷

  ·消息附件

  利用 NMR , JBI 规范为服务提供者和消费者的消息交换提供标准接口。 NMR 支持服务生产者和消费者之间单向模式和服务响应模式的调用。

  管理

  JBI 利用 JMX 实现运行时的服务安装、配置和监控。服务必须实现 JBI 接口集,以便这些服务在 JBI 环境中是可管理的。 JBI 环境必须提供一套 JMX MBeans 实现“ JBI 运行时”的管理。

  “ JBI 运行时”环境允许服务引擎组件和绑定组件的相关操作如下:

  ·安装组件:使组件接口可使用归一化消息路由器。

  ·安装 artefact 组件:这将允许已部署的 artefacts 组件获得与已安装组件同样的机能。例如,可以部署一个“连接服务”来提供具体的数据库连接。

  启动、停止服务以及进行相关服务分组。

  JBI 为组件及 artefact 组件定义了标准的部署描述符以及打包模型。

  角色

  JBI 为基于 JBI 的端到端 EAI 解决方案定义了如下角色:

  ·引擎开发者:引擎开发者提供遵循 NMR 和管理约束的服务引擎组件。

  ·绑定开发者:绑定开发者提供遵循 NMR 和管理约束的绑定组件。

  ·JBI 环境提供者: JBI 环境提供者为“ JBI 运行时”使用 J2EE 1.4 或 J2SE 1.4 或更新的平台提供支持。

  ·J2EE 平台提供者: J2EE 平台提供者把“ JBI 运行时”作为提供应用程序服务的一部分。

  ·JBI 应用程序开发者: JBI 应用程序开发者利用服务引擎组件、绑定组件以及 JBI 环境构建 JBI 应用程序。

0
相关文章