ServiceMix企业服务总线(ESB)
作者: , 出处:Matrix, 责任编辑: 叶江,
2006-07-13 14:02
ESB是集中化的、逻辑上的,具有架构层次的组件,提供在分布式异构环境中高度可扩展性、容错、消息服务等服务框架的一种实现。本文将讨论开源项目ESB ServiceMix,及其与JBI Java业务集成规范的关系。
---SOAP绑定组件
- o 通过ActiveSOAP提供基于StAX(XML流处理API)的对SOAP栈的支持
- o对基于JAXP的Web服务客户端调用、 服务宿主提供支持,并且支持多种协议方式
- o 使用反射支持POJO对象的部署。
- o 支持Java SOAP附件API和Apache Axis
- o 通过XFire SOAP栈集成POJO对象支持
- o 集成Apache WSIF (Web Service Invocation Framework,Web服务调用框架)
---传输绑定
- o 通过JavaMail支持Email功能
- o 基于文件操作的组件提供将消息写进文件、目录轮询、向JBI发送文件
- o 通过Jakarta Commons Net库提供FTP支持
- o 支持客户端/服务器端HTTP处理
- o 通过 XMPP (Extensible Messaging and Presence protocol,可扩展的消息提供协议)提供与Jabber网络的连接
- o 使用ActiveMQ支持JMS功能
- o 使用Rome库支持RSS的访问及处理
- o 使用Jakarta Commons Net库支持VFS(virtual filesystem switch,虚拟文件系统转换),提供对于文件系统、jar/zip/bzip2临时文件、万维网分布验证及版本机制、Samba文件系统、HTTP、HTTPS、FTP、SFTP等的访问。
大部分的ServiceMix系统初始化过程、活动过程以及消息交换过程,涉及到基于JBI的组件间的通信或交互。 以下部分通过简单的消息交换场景说明这些过程. (ServiceMix 2.0)
初始化JBI容器
使用JBI容器之前,必须调用其init()方法执行初始化过程。此方法会实例化核心系统服务,为JMX管理BEAN服务器以及事务管理器等资源赋值。
代码1是容器启动代码.
代码1. JBI容器初始化
| protected JBIContainer jbiContainer = new JBIContainer(); jbiContainer.init(); |
JBIContainer类的init方法会依次进行如下操作:
- ---初始化org.servicemix.jbi.management.ManagementContext对象,并在JMX MBean服务器中注册。此对象是JBI管理工具如JMX管理器的调用的首要访问点。
- ---初始化org.servicemix.jbi.container.EnvironmentContext实例并在JMX MBean服务器中注册。此对象创建资源目录结构,各种资源包括安装文件、部署文件、组件、共享库、服务组合的文件等
- ---初始化org.servicemix.jbi.framework.Registry实例,此对象维护服务端点和组件等信息。
- ---初始化org.servicemix.jbi.nmr.Broker实例,此对象管理消息队列,并在org.servicemix.jbi.nmr.flow.Flow对象帮助下分发消息。消息流程对象管理消息代理对象的消息分发策略。
- ---初始化实现org.servicemix.jbi.framework.FrameworkInstallationService的实例,此对象管理文件包的安装和卸载。
- ---初始化org.servicemix.jbi.framework.DeploymentService实例,此对象部署服务单元及其相关服务单元。
- 本文关键词:

