企业服务总线中的状态管理

  
2010/7/7 16:26:17
SOA(Service Oriented Architecture)即而向服务架构,最近几年来越来越热,不断发展。各大厂商在这方面也不断加大投入,推出自己的解决方案和相关产品。

本文关键字: SOA 企业总线

1   引言

SOA(Service Oriented Architecture)即而向服务架构,最近几年来越来越热,不断发展。各大厂商在这方面也不断加大投入,推出自己的解决方案和相关产品。ESB(Enterprise Service Bus)企业服务总线就是最近两年一种遵循SOA框架的,解决软件系统集成问题的方案。IBM,BEA, Sonic, INOA等公司都推出了自己的ESB产品和解决方案。

ESB是逻辑上与SOA 所遵循的基本原则保持一致的服务集成基础架构,它提供了服务管理的方法和在分布式异构环境中进行服务交互的功能。可以这样说,ESB是特定环境下(SOA架构中)实施EAI的方式。具有如下特点[4]:

(1)面向服务:分布式的应用由可重用的服务组成 。

(2)面向消息:应用之间通过ESB发送和接受消息 。

(3)事件驱动:应用之间异步产生和接收消息。
                    
                                        图 1 Sun-OpenESB架构图

业务流程是ESB中核心的概念,能被最简单的定义成:为达到某种特定的、可用的管理目标,而需要的一系列步骤和动作。在ESB中,各个组件及服务按照一定的规则和序列组成业务流程,来实现完成用户需求的目的。本文研究了在ESB系统中业务流程的实现方式,并针对SynchroESB定义了业务流程运行和设计的规则,对系统运行提供了支持,同时具有灵活性和可扩展性。

2   业务流程定义和设计

ESB可以看成是一系列服务组件的容器,而这些服务组件是可以动态插入的,即可插入组件(pluggable component)。每个组件提供特定的服务,并通过ESB和别的组件通信。业务流程则通过一定的规则,将这些服务组件关联起来,形成一个服务序列,最终完成用户的需求。

在SynchroESB系统中,组件在运行时被部署到节点服务器(Peer Server,PS)上,并具有用户配置的运行时信息。运行时的组件,我们称它提供的服务叫服务单元(Service Unit,SU),而一个PS上部署的所有的SU称为一个服务组合(Service Assembly,SA)。系统中不同的SU相互通信并完成自己的功能,来共同完成一个业务流程。

因此,业务流程需要包含的信息:PS节点信息(该流程涉及的所有节点名称),SA信息(一个PS上所包含的SU)以及SU信息(提供服务的组件以及用户配置的信息)。

2.1   服务单元(SU)设计

SU包含运行时组件的配置信息和启动参数等。在SynchroESB中,是这些信息以配置文件的形式来描述。下面是一个组件的SU配置信息的样例:
含义如下:

<sm:activationSpec componentName="myTransformer" service="foo:myTransformer"
destinationService="foo:WSClientModel">
<sm:component>
<bean class="org.apache.servicemix.components.xslt.XsltComponent">
 <property name="xsltResource" value="classpath:myTransformer.xsl" />
</bean>
 </sm:component>
</sm:activationSpec>

ComponentName:组件名称

Service:组件提供的服务名称

destinationService:目标服务的名称

<bean>…</bean>:组件的功能类及配置信息。

在运行时,PS获得该描述信息后,将动态加载和配置组件并启动相应的服务。

在物理上,SU是以zip的形式存储的,其中包含了组件配置文件,相关文件(如上例的xsl文件)等。

2.2   服务组合(SA)设计

SA包含了一个PS上部署的所有组件的信息,及SU的集合。PS是以SA为单位来管理服务单元的,所以SA在流程的运行及控制方面具有重要的作用。SA的信息也是以配置文件的形式来描述的,下面是一个SA的描述信息:

<jbi xmlns="http://java.sun.com/xml/ns/jbi" version="1.0">
<service-assembly>
<identification>
<name>mysa</name>
    <description>generated by SPO</description>
</identification>
<service-unit>
 <identification>
    <name>http-su</name>
    <description>Contains http components</description>
 </identification>
 <target>
    <artifacts-zip>mysa-http-su.zip</artifacts-zip>
<component-name>synchroesb-http</component-name>
 </target>
</service-unit>
<service-unit>……</service-unit>
</service-assembly>
</jbi>

含义如下:

identification:描述了该SA的信息,包括名称,描述等。

service-unit:包含了属于该SA的SU的描述信息,包括SU包名称,以及要部署到的组件的名称。改部分可以是多个。

在物理上,SA也是以zip形式存储的,里面包含了SU包,以及上述的配置文件。

2.3   业务流程设计

业务流程是一个动态的概念,是运行时所有服务的集合。物理上的业务流程设计,除了需要包含相关的SA文件外,还要包含描述服务部署信息的描述文件,它包括PS节点信息,SA信息等。用户通过该描述文件,将SA部署到相关的PS上,运行后实现业务流程。描述文件的实例如下:

<processName name="test" version="1.0">
<PeerServer>
<PsName>ps1</PsName>
<SaFileName>test_ps1.zip</SaFileName>
<SaName>test</SaName>
<Components>
 <Component>myFTPServertest</Component>
 <Component>myScreenOutputtest</Component>
</Components>
</PeerServer>
……
</processName>

 

共2页: 上一页1 [2]
责编:王立新
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
推荐博客
创新平台技术,助力政企私有云..

创新平台技术,助力政企私有云建设金蝶中间件有限公司 奉继承 博士第16届软博会高峰论坛,2012.05.31……

畅享
首页
返回
顶部
×
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918