首 页
产品
方案
体验
视频
优势
客户
知识
联系
电话:0791-88108826
微信:lvyeoa
 
绿叶OA优势
技术框架
绿叶OA办公系统客户培训现场
绿叶OA办公软件客户案例
电话:0791-88108826
售前:413400260
售前:2645991708
售后:2449720376
售后:1479170164

基于SOA的企业服务总线技术研究与应用
                                
发布时间:2009-9-30 9:44:36



0 引言

    随着信息技术的高速发展,企业的业务系统需要高度集成和开放,而且能够快速高效地适应业务变化。同时电子商务也要求企业能够将内部的各种信息系统整合为一个统一的平台。面向服务的体系结构就是一种追求敏捷性的面向服务的体系结构,它能够建立一个业务逻辑抽象和技术抽象,可以把业务逻辑与具体实现技术分离开来,能够适应业务和实现技术的不断变化。基于面向服务的体系结构的企业服务总线技术能够从整体来考虑企业的信息系统,选择一个合适的集成平台,把企业的各个“信息孤岛”有机集成起来。

    本文研究基于面向服务的体系结构的企业服务总线技术,并且利用IBM SIBus服务总线来实现网上药店系统。

    1 面向服务的体系结构

    1.1模型

    Gartner Group于1996年最早提出了面向服务的体系结构SOA(service oriented architecture),其最初的应用并不是为了企业系统,但是由于Web Services的广泛应用,SOA企业化应用的趋势明显加强。

    SOA是一组策略、实践和框架。利用它所提供的基础设施,可以跨网络登记、动态发现、绑定与安全而可靠地调用基于契约的服务,能对服务进行组装,并通过利用与实现环境无关的消息协议使服务之间能互操作;而且,在运行时具有监控服务和处理异常的机制,提供对服务质量和资源进行管理的基础设施。面向服务的体系结构中包括三种角色,它们分别是服务提供者、服务消费者(或称服务使用者)和服务注册中心。服务提供者是一个可通过网络寻址的实体,它接受和执行来自使用者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务消费者可以发现和访问该服务;服务消费者是一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中服务的查询,通过传输绑定服务,并且执行服务功能。服务消费者根据接口契约来执行服务;服务注册中心用来提供服务提供者注册服务、提供对服务的分类和查找功能,以便服务消费者发现服务。面向服务的体系结构中的每个实体都扮演着服务提供者、使用者和注册中心这三种角色中的某一种(或多种)。

    Web Service代表了SOA的一种实现。它是一种新型的Web应用程序,它具有自包含(Self-contained)、自描述以及模块化的特点,可以通过Web发布、查找和调用。Web Service实现的功能可以是响应客户一个简单的请求,也可以是完成一个复杂的业务流程。一旦一个Web Service配置好后,其他应用程序和其他web Service就可以直接发现和调用该服务。

    1.2服务

    面向服务的体系结构代表一个模型,其中的自动化逻辑可以分为小的、不同的单元,这些单元组成较大的业务自动化逻辑片段,并且可以对这些单元进行独立地分布式部署。这些逻辑单元就是所谓的服务。

    服务是面向服务的体系结构中最基本单位。服务的特征可归纳如下:

    服务是软件实体服务作为软件实体,通常为粗粒度的。对特定的高层业务逻辑进行了封装,并向用户提供了有意义的功能。

    服务具有服务契约它规定了服务的提供者和使用者的职责,其中有接口和服务质量以及相关的约束。服务抽象通过服务契约来实现。

    服务是松散耦合的松散耦合是一个服务获知另一个服务的同时依旧保持服务独立性的条件。通过使用服务契约来达到松散耦合,允许服务在预定义的参数内交互。

    服务是底层逻辑的抽象只有经由服务契约所暴露的部分服务对于外部世界是可见的。契约之外所表达的底层逻辑是不可见的,且与服务消费者无关。

    服务是可组合的由服务构造服务,作为成分的服务可以来自多方的提供者。组合后的服务向服务消费者隐藏内部的细节,只向外提供封装了一定业务逻辑的合约。

    服务是自治的逻辑由服务所控制,并且位于一个清晰的边界内。服务在这个边界内被控制,并且不依赖于执行其控制的其他服务。

    服务是无状态的服务应当不需要管理状态信息,因此能够维持松散耦合性。应当尽量设计成无状态的。

    服务是可发布与可发现的服务提供者通过服务注册发布服务合约,以供使用者动态地发现和使用。

    1.3 SOA模型的层次性

    图l描述了SOA参考模型的层次结构。

    图1 SOA模型层次图

    一个业务组织内的服务,一部分供自己内部使用,其余的供外部使用(对外发布)。对于服务的实现采用构建基础设施。应用层中的本地前端应用以及外部应用都使用服务总线。一个业务过程由一些活动组成,一个基本活动对应一个服务。一个(子)业务过程对应一个组合服务。由于业务过程中的活动是由服务实现的,业务过程也就变成了服务流。

    服务总线是一种通过运行本地业务过程为服务使用者提供服务的设施,它实现了应用层和实现服务的构件基础设施层的分离。本地应用或外部应用所请求的一个服务,实现了本地的一个业务过程,在其中也可能要请求其他的服务。被请求的服务可以是基本服务、由静态组合而产生的服务或通过动态组合而产生的服务。所以,应该用构件实现服务,且随同实现服务的构件一起部署服务。构件基础设施层提供实现服务所需要的各种环境和构件,负责用细粒度的构件实现粗粒度的服务。对于已经存在的遗留系统,可以包装成构件。

    由于服务总线分离了与业务逻辑相关的应用层和与实现平台相关的构件基础设施,遵循该体系结构所构造出来的应用能适应业务和技术变化。

2 企业服务总线

    2.1 ESB的概念及功能

    SOA架构实现和解决了服务模块间调用的互操作问题,为了服务于企业应用,引入了企业服务总线ESB的应用架构。ESB就是在SOA架构中实现服务间智能化集成与管理的中介。它提供了服务管理的方法和在分布式异构环境中进行服务交互的功能。它是一种通过运行本地业务过程为服务使用者提供服务的设施。它包含实现SOA分层目标所必须的基础功能部件。ESB提供时间驱动和文档导向的处理模式,以及分布式的运行管理机制,支持基于内容的路由和过滤,具备复杂数据的传输能力,并可以提供一系列的标准接口。ESB的功能如下:

    (1)在所管理的服务之间实现消息路由。

    (2)在服务请求者和服务提供者之间实现传输协议的转换。

    (3)在服务请求者和服务提供者之间实现消息格式的转换。

    (4)处理不同来源的业务事件。

    (5)ESB应该使用户更加关注于核心业务,而不是关注如何将各种程序连接在一起的IT层基础技术。

    (6)ESB应该使用户能够在现有的服务中加入新的服务,或者改变现有服务,而没有对现有服务的使用产生影响。

    2.2 ESB的结构

    企业服务总线是一种通过运行本地业务过程为服务请求者提供服务的设施。企业服务总线的体系结构如图2所示。

    图2 ESB的体系结构图

    其中Web服务、数据库应用、遗留系统、J2EE和.Net等应用位于企业服务层。ESB将所有这些视为服务。各类适配器位于适配器层。适配器层之下为企业服务总线层和相应的服务管理。适配器将从Web服务、数据库应用、遗留系统、J2EE和.Net等应用中传递过来的消息转换成企业服务总线能够识别的信息表示方式,使得信息具有一个统一的表示方式,以事件驱动的形式对服务目录进行查询,使得Web服务、数据库应用、遗留系统、J2EE和.Net等能够与ESB进行交瓦操作。

    企业服务总线通过适配器的转换,使得消息具有了一个统一的表示,这些可靠、异步、安全的消息通过JMS服务器对服务目录进行查询。

    服务目录采用UDDI来实现,UDDI提供服务的注册、更新、删除等机制。通过查询服务目录,通过JMS消息访问服务目录获取服务的路径,实现服务之间的相互通信和协作。

    企业服务总线不但要执行服务,还要管理服务流的状态,并要使用服务总线中的基础设施处理服务检测、生命周期管理、安全管理、例外处理、事务与补偿、日志和审计等。

    3 基于IBM SIBus服务总线的网上药店电子商务系统设计

    3.1基于企业服务总线SIBus的网上药店SOA架构

    基于企业服务总线SIBus的网上药店SOA架构图如图3所示。

    图3 基于SIBus服务总线的网上药店架构图

    在图3所示的架构中,Web应用层产生若干独立的WebService服务接口,这些Web Service服务位于图1所示的应用层。接着把这些服务接口加入S1Bus服务总线,通过服务总线将它们进行整合。所有的网上药店业务请求都通过Struts Web应用(已经整合为Web Service服务)发送给服务总线,服务总线根据不同请求进行相应的转换,再判断不同的请求类型,路由给不同的服务接口。SIBus提供了消息中介、服务的监控和监听功能。

    服务总线上的端点监听器负责接受所有的客户端的请求信息,它对应于相应的入站服务。在创建入站服务时已经创建了它在接收请求消息时所要转向的目标,请求消息将会转向目标,目标在收到请求消息后会通过事先创建的默认转发路由路径转给出站服务,出站服务将请求消息转给外部服务提供者用户管理服务、药品管理服务、库存管理服务和订单管理服务等。

3.2服务总线的创建过程

    服务总线的创建过程分为以下四步:

    (1)创建一个服务总线的名称,然后将应用服务器作为总线成员加入到服务总线中来,接着创建端点监听器来接收外部的服务请求。

    (2)为每个服务总线创建目标队列,以便端点监听器在收到服务请求后,将请求消息传到目标队列。

    (3)出站服务,建立相应的出站服务器端口,在目标队列中配置默认转发路由路径,以便目标队列在收到端点监听器的请求消息后,通过默认路径转给出站服务器端口。

    (4)为每一个服务创建出相应的入站服务,并绑定相应的端点监听器和相应的目标队列,以便端点监听器在收到入站服务的外部请求消息后,将请求消息转发到相应的目标队列,将入站服务发布成Web Service的WSDL,以便外部调用。

    3.3 SIBus服务总线的工作原理

    服务请求者在收到服务总线人站服务发布的WSDL文件后,创建相应的SOAP请求信息给服务总线。由于创建每个服务的入站服务时,已经将每个人站服务与端点监听器及目标队列进行了关联,所以在服务请求者根据入站服务的WSDL发出服务请求时,这个服务请求就会发给相应的端点监听器,并有端点监听器将这个服务请求转给建立人站服务时所指定的目标队列。

    例如,目标队列将服务请求消息根据所创建的默认转发路由路径转给药品管理的出站服务器端口,药品管理的出站服务器端口将服务请求转给外部的药品管理服务提供者。服务总线根据业务需求进行相应的消息格式以及协议的转换。

    外部的服务管理者在实现服务请求后将服务响应消息返回给出站服务器端口,出站服务会返回给目标队列,端点监听器从目标队列得到响应消息后,将响应消息返回给服务请求者。

    4 结论

    综上所述,使用基于SOA的企业服务总线能有效地降低企业的集成成本,快速高效地对企业的资源进行集成,使企业的信息系统很好的适应业务和技术变化,同时使得企业不再依赖于一个集成商,为企业提供了多项选择。本文设计与实现了一个利用IBM S1Bus服务总线构建的基于SOA架构的网上药店系统,使得医药企业资源高效的集成,并对以后系统的扩展创造了有利条件。企业服务总线是实现面向服务的体系结构系统的重要技术,对于该技术还需要进一步的研究。


 


联系我们
电话:0791-88108826
微信:lvyeoa
QQ:413400260
QQ:2645991708
Email:oa169@163.com

核心产品

医院内部办公系统
智慧政务协同办公
企业OA办公平台
教育综合办公系统
建筑企业网络办公
移动办公系统

微信联系

©2007-2024 南昌绿新软件技术有限公司赣ICP备12000799号