ServiceMix企业服务总线(ESB)
作者: , 出处:Matrix, 责任编辑: 叶江,
2006-07-13 14:02
ESB是集中化的、逻辑上的,具有架构层次的组件,提供在分布式异构环境中高度可扩展性、容错、消息服务等服务框架的一种实现。本文将讨论开源项目ESB ServiceMix,及其与JBI Java业务集成规范的关系。
服务单元
在已安装的引擎或绑定组件中部署的特定于某组件的构件,一般被称为服务单元。服务单元被集成为一个部署文件,称为服务组合。服务组合包含一个部署描述符文件,指定组合中各服务单元的部署方式,如确定将某服务单元部署到那个组件。
服务单元包含内容如下:
- ---元数据:使用或者生成的服务的JBI描述符
- ---生成物:一般是XML信息(可能是二进制,或者目标绑定组件或服务引擎需要的任何对象)
ServiceMix 简介
ServiceMix是基于JBI的ESB。它是开源的基于JBI语义和API的ESB和SOA工具包,以Apache许可证方式发布。 它是轻量的ESB实现,易于作为嵌入式ESB使用;集成了对Spring技术的支持;可以在客户端或服务器端运行;可以作为独立的ESB提供者,也可以作为另外ESB的服务组件; 可以在JavaSE或JavaEE服务器中使用;ServiceMix同Apache Geronimo以及JBoss服务器完全集成,并且在Apache Geronimo服务器中可以直接部署JBI组件和服务。
图2 是JBI和ServiceMix关系图

图2 . JBI和ServiceMix
ServiceMix 中包含完整的JBI容器,支持JBI规范的所有功能要求:
- ---规范化消息服务和路由
- ---JBI管理Beans (MBeans)
- ---组件管理和安装的Ant任务
- ---对JBI部署单元的完全支持,支持JBI组件的热部署
ServiceMix还包含如下的组件和服务:
---Service服务组件
- o 通过Drools规则引擎的提供基于规则的路由
- o 提供客户端API与JBI组件和服务交互
- o Web服务通知(Web Services Notification)协议的实现
- o 通过PXE(preboot execution environment, 预启动执行环境)提供对于Web服务BPEL(Business Process Execution Language,业务流程执行语言)的BPEL的支持
- o 使用Map缓存或者JCache,支持服务调用缓存
- o 支持Java连接架构
- o 通过Quartz库集成Timer任务
- o 脚本语言支持。任何兼容于JSR-223规范的脚本语言可以用来创建组建,执行信息转换,或者作为表达式语言使用。
- o 支持XSLT扩展样式语言转换
- o 通过JAXP 1.3 和XML Schema或者RelaxNG提供XML Schema验证支持。
- o 通过Oracle的XSQL库支持SQL及XML的XSQL
- 本文关键词:

