`
javahero1984
  • 浏览: 11112 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

ServiceMix企业服务总线(ESB)(二)

阅读更多
---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实例,此对象部署服务单元及其相关服务单元。

  启动JBI容器
  如下面代码2所示,简单的调用JBIContainer对象的start()方法即可触发JBI容器的启动过程。此过程会启动所有嵌入的组件和服务,比如服务注册区、消息代理、管理上下文、环境上下文、安装服务、部署服务等。多数组件和服务的启动过程仅仅设置一个标志位,以表明组件或服务处于运行状态,而且与组件关联的定时计划任务开始执行。

  代码2.启动JBI容器

  jbiContainer.start();

  创建支持组件
  ServiceMix框架中作为消息生产者和提供者的对象常被称为支持组件。这些对象实现了javax.jbi.component.Component接口,使得JBI容器和其它关联对象能够以标准方式操作它们。在ServiceMix系统中,此类对象一般继承于org.servicemix.components.util包内的某些支持(Support)类,比如ComponentSupport或者PojoSupport。 通过继承,支持组件获得了作为JBI组件的缺省行为,比如JMX功能等。

  支持组件一般通过javax.jbi.component.ComponentContext对象获得DeliveryChannel对象,以用于实际的消息交换(message exchange)对象的创建和处理。

  请留意代码3中支持组件的类/接口层次。

  代码3 支持组件类层次

//PojoSupport类封装了简单的基于POJO的组件,提供标准的被ServiceMix管//理的组件的功能
public abstract class PojoSupport

   extends org.servicemix.jbi.management.BaseLifeCycle
   implements javax.jbi.component.ComponentLifeCycle
{

}

//ComponentSupport类扩展了PojoSupport类,提供标准JBI组件功能。
public abstract class ComponentSupport
   extends org.servicemix.components.util.PojoSupport
   implements javax.jbi.component.Component
{

}

// SenderComponent类是消息生产者
public class SenderComponent
   extends org.servicemix.components.util.ComponentSupport
   implements Sender
{

}
// 类ReceiverComponent是消息消费者
public class ReceiverComponent
   extends org.servicemix.components.util.ComponentSupport
   implements org.servicemix.MessageExchangeListener, Receiver
{

}

  激活支持组件

  在使用ServiceMix ESB系统中的组件前,这些组件必须得到“激活”。相应步骤如下:

  ---创建DeliveryChannel类的实例, 此对象参与随后的消息交换

  DeliveryChannel负责:

  o 获取路由到此组件的消息
  o 发送异步消息
  o 发送同步消息

  ---注册org.servicemix.jbi.framework.ComponentRegistry类的组件,注册后获得一个org.servicemix.jbi.framework.ComponentConnector类的实例,Servicemix 系统在内部使用此ComponentConnector对象来交换消息。

  ---在组件注册区内注册上面步骤获得的ComponentConnector对象,将此对象与org.servicemix.jbi.container.EnvironmentContext关联。此对象维护组件运行的JBI执行环境,包括安装路径、部署路径、服务单元目录等信息。

  ---调用组件的生命周期init()方法,然后执行其start()方法。

  ---封装对象的ComponentConnector实例为一个JMX 管理Bean,并在JBI容器的JMX管理Bean服务器(MBeanServer)中注册此Bean。

  激活组件需要与org.servicemix.jbi.container.JBIContainer 类交互,调用其activateComponent()方法。 此方法使用org.servicemix.jbi.container.ActivationSpec类的实例,以此构建有效的JBI组件。ActivationSpec对象是最终可以被激活的三种Java类型中的一种的实例。 对应类型如下:

  1.javax.jbi.component.Component

  2.javax.jbi.component.ComponentLifeCycle

  3.org.servicemix.MessageExchangeListener:此对象实例被封装在org.servicemix.components.util.PojoLifecycleAdaptor或org.servicemix.components.util.PojoLifecycleAdaptor 或org.servicemix.components.util.ComponentAdaptor 类型实例中。比如org.servicemix.components.util.ComponentAdaptorMEListener。

  代码4 说明了如何激活消息发送和接收组件。

  代码4 激活发送和接收组件

//激活发送组件
String senderComponentID = "sender";
org.servicemix.jbi.container.ActivationSpec senderActivationSpec =
   new org.servicemix.jbi.container.ActivationSpec(senderComponentID, sender);
jbiContainer.activateComponent(senderActivationSpec);

//激活接收组件
String receiverComponentID = "receiver";
org.servicemix.jbi.container.ActivationSpec receverActivationSpec =
   new org.servicemix.jbi.container.ActivationSpec(receiverComponentID,
                                                   receiver)
jbiContainer.activateComponent(receverActivationSpec);


  使用支持组件发送以及接收消息
  在ServiceMix中发送消息,需要通过发送者支持组件传输此消息,需要消息接收支持组件监听并接收此信息。
分享到:
评论

相关推荐

    基于JBI的ServiceMix服务总线.

    ServiceMix不仅能够作为ESB(Enterprise Service Bus,企业服务总线)的基础组件,还支持多种集成技术和协议,从而简化了复杂的企业级应用集成工作。 #### 二、ServiceMix的关键功能 ServiceMix具备一系列强大的...

    Servicemix(ESB)发布WebService.doc

    【标题】:Servicemix(企业服务总线ESB)发布Web服务 【内容】: Servicemix,作为一款开源的企业服务总线(Enterprise Service Bus,简称ESB),在集成不同系统和服务中扮演着关键角色。它通过提供一个灵活、可...

    开源ESB in Action(中文)

    **企业服务总线(ESB)**是现代IT体系结构中的关键组件之一,尤其在处理复杂的集成挑战方面表现突出。它不仅仅是一个技术概念,更是一种能够促进企业内部及跨企业间服务交互的方法论。 ##### ESB的概念 从广义上来讲...

    servicemix

    Apache ServiceMix是基于Java Business Integration(JBI)规范的企业服务总线(ESB)实现,它提供了构建和部署服务组合的强大平台,支持多种协议和服务类型,如SOAP、JMS、HTTP等。ServiceMix的设计原则之一是其...

    基于SOA和ESB企业总线的OSGi企业级应用

    标题中的“基于SOA和ESB企业总线的OSGi企业级应用”是一个关于构建企业级软件系统的主题,其中涉及到三个关键概念:Service-Oriented Architecture(SOA)、Enterprise Service Bus(ESB)以及OSGi(Open Service ...

    ESB原理架构实现及应用

    摘要:随着面向服务体系结构(s0A)的推出及其深入应用,企业服务总线(EsB)在理论和应用方面成为软件开发、集成与部署的 热点技术。论文分析了ESB的原理,对其体系结构进行了归纳,根据现有的ESB实现平台,重,最介绍...

    开源ESB Servicemix的研究与应用

    企业服务总线(ESB)的出现,在中间件和系统集成市场上掀起了 一个不小的浪潮, 各个厂商都在提出自己的计划, 推出自己的相关产品。 JBI 规范的推出为这个正在兴起的市场提供了一个可以共同遵循的开发 标准。 本文...

    servicemix代理web service

    1. **Apache Servicemix基础**:Servicemix是基于OSGi容器的开源企业服务总线(ESB),它提供了一个灵活的平台来整合不同的系统和应用,通过各种协议和服务标准进行通信。它支持多种服务标准,如JMS、HTTP、FTP、...

    servicemix 7安装使用及camel-cxf代理webservice

    Apache ServiceMix是基于OSGi(开放服务网关倡议)的开源企业服务总线(ESB)。它提供了一个灵活的平台,用于集成各种系统和应用,支持多种消息传递协议和数据格式。在ServiceMix 7中,我们关注的是其最新的特性和...

    apache-servicemix-4.4-fuseesb第四部分

    Apache ServiceMix 和 Fuse ESB 是两个紧密相关的开源企业服务总线(ESB)项目,它们在集成、管理和路由企业应用程序间的数据交换方面扮演着重要角色。Apache ServiceMix 是基于 Java 的 ESB,它实现了多种服务导向...

    ServiceMix做内部服务器发布WebService(附带案例源码)

    ServiceMix是一款基于Java的开源企业服务总线(ESB),它提供了一种灵活的方式来集成不同的系统和服务,支持多种协议和标准,如HTTP、JMS、SOAP等。在本案例中,我们将探讨如何利用ServiceMix来作为内部服务器发布...

    快速入门指南 中文版 ServiceMix4

    Apache ServiceMix快速入门指南旨在帮助用户在20分钟内熟悉并开始使用这款开源企业服务总线(ESB)。ServiceMix是基于OSGi的Java应用程序,它提供了集成多种不同技术和服务的能力,如Java消息服务(JMS)、Web服务、...

    serviceMix

    企业服务总线(EnterpriseServiceBus,ESB)从面向服务体系架构(Service-OrientedArchitecture,SOA)发展而来,是传统中间件技术与XML、Web服务等技术结合的产物。 ESB提供了网络中最基本的连接中枢,是构筑企业...

    论文研究-企业服务总线在工业监控系统中的应用 .pdf

    在探讨企业服务总线(ESB)在工业监控系统中的应用之前,首先需要了解工业以太网的基本概念和它在工业控制系统中的作用。工业以太网是工业自动化领域中使用以太网技术构建的局域网络,用于工厂环境中的数据采集、...

    ESB原理、构架、实现及应用

    随着面向服务体系结构( SOA) 的推出及其深入应用, 企业服务总线( ESB) 在理论和应用方面成为软件开发、集成与部署的热点技术。论文分析了ESB 的原理, 对其体系结构进行了归纳, 根据现有的ESB 实现平台, 重点介绍了...

    apache-servicemix-4.4-fuseesb第五部分

    Apache ServiceMix 和 Fuse ESB 是两个紧密相关的开源企业服务总线(ESB)项目,它们在集成和管理企业应用程序方面发挥着关键作用。本部分主要关注 Apache ServiceMix 的第四个主要版本,即 4.4 版本,以及与之关联...

Global site tag (gtag.js) - Google Analytics