|
集团型企业异构系统的中间件集成方案本文试图提出一种基于面向服务的体系结构(Service Oriented Architeeture,SOA)的中间件解决方案,通过构建一个松散耦合的异构系统集成服务平台. 3.2 数据集成 系统集成的初始层次是不同域间数据的集成,需要在各域的异构业务系统中创建一系列数据适配服务,相当于在已有的异构系统之上增加一个统一的、符合标准的抽象层。 以一个典型的应用场景为例:总部需要各下属企业的销售数据。一个总部的合成服务(composite service)被手工或定时启动,将输人的筛选条件分解为适合各企业数据服务的请求并调用之;数据服务从业务系统中提取相应的数据,转换成总部的数据格式,作为服务的响应;总部将传回的数据收集在缓冲区,待各服务请求都传回数据后进行最后的数据合成和适配,装人总部的业务系统,完成该次服务调用。在这样的业务模式中,有若干问题值得考虑: 企业的原子服务(atomic services)企业提供的数据服务不可再分解,可看作企业级遗留系统的封装器。这些服务接收SOAP请求,转换为遗留系统能够处理的形式,如调用正确的EJB或者将请求加人遗留系统的消息队列等。集成服务平台的服务生成器根据典型的应用场合,提供自动化地创建和部署原子服务的模板和工具。 服务的合成数据服务合成的结果实现跨域的数据集成,合成的服务仍是较细粒度的,可用于更复杂业务流程的编排。 服务层数据模型服务层的数据模型独立于企业业务系统的数据类型细节,原子服务的输出是根据总部业务领域的模式定义的。 事务处理服务通常是无状态的,但大部分应用场景中合成服务都应看作事务,需要在分布式环境下保证事务特性。这在需要分布式写的场合(例如总部向各企业分解下达预算)尤其重要。相关的原子服务应支持事务处理特性,以便将事务协调交由平台上层处理。 3.3业务集成和服务编排 为了实现跨应用域的业务过程的集成,需要将业务流程逻辑从程序逻辑中显式地分离出来.利用针对业务过程的模型和工具进行管理,使平台支持的业务系统对流程变迁有最大的灵活性。主要通过以下四部分实现: 业务建模建模是对实际业务流程的抽象,业务领域专家可选用适当的流程建模工具对跨域业务流程建模,业务流程模型将作为集成平台服务编排模块的输入。 服务编排服务的编排是从流程模型到Web服务组合的映射,本平台利用BPEL(Rusiness Process _execution Ian}uage)作为编排语言,根据业务模型对已有的细粒度服务进行编排形成复杂的业务服务。平台对服务编排的支持包括服务注册库、交互式编排界面以及编排语言1编排引擎三部分:服务注册库支持Web服务发现。编排引擎通过调用平台的服务注册库获取组成业务过程的细粒度服务的相关信息,包括服务契约、访问规则和策略安全/权限属性等。交互式编排界面将BPEL中定义的任务和被调用服务表示为可视化的图形节点和连接,并定义节点间的时序、调用、分支选择等关系,业务领域专家或IT人员可以通过该界面将抽象业务模型映射到Web服务的调用关系,并将整个流程发布为复杂的业务服务。编排语言及编排引擎将来自交互界面的图元及其关系自动映射输出为BPEL文件;并生成合成服务的业务契约和访问策略。 发布和部署编排的结果是可执行的业务服务,和与之对应的流程控制脚本。将业务服务注册至平台的服务注册库,注册的信息包含服务的契约、访问策略及服务与流程控制脚本的关联。 流程的执行运行时引擎在流程服务执行期解析流程脚本,创建流程实例,根据控制流结构调用原子服务;同时在必要时调用错误处理或事务处理机制。 3.4集成平台的管理功能 集成服务平台的管理功能主要解决服务注册管理、安全/权限管理和事务处理问题。 服务注册管理服务注册和发现技术大体分为基于开放标准的(如UDDD和基于私有框架的两类。UDDI作为主要面向公共领域的服务发现规范,不甚适合本平台应用集成场合的需求,因此集成服务平台将采用一个私有注册库,通过层次模型为服务的调用者提供静态的精确服务匹配。对服务注册信息的存储既包括UDDI标准提供的业务实体、服务描述、绑定信息、调用规范,也包括UDDI难以提供的WSDL契约文件、安全角色、事务支持等。 安全/权限管理以往的Web服务安全的讨论议题,大多集中在单个应用域内的安全机制和访问控制,对穿越多个防火墙边界的服务访问,基本上不采取集中式的解决方案。鉴于集团型企业的各应用域间具有明确的层次关系和跨域流程关联,在集成服务平台建立一个全局认证和授权中心GAAC(Global Authorization and Authentication Center),提供统一的安全和权限管理,实现基于角色的授权机制,显式地将安全逻辑和业务逻辑分离。 基于角色的访问控制一般应用在单个应用域内,在跨域访问的场合该机制的应用受限,因为每个域都不持有其他域的最终用户(End User)身份及访问规则。本平台的解决方案是:对于跨域的服务调用,通过总部集中式地进行身份验证,授予服务调用者一个抽象代理用户身份,利用该抽象身份调用另一域内的服务。其好处主要有:①对于无需跨域的服务访问,各域仍可独立地实现基于最终用户的授权,无需持有其他域的最终用户身份;②总部可全局地管理全平台的服务授权;③保待了基子角色的安全机制灵活的管理和授权功能。 服务认证授权系统的结构如上图所示,由位于总部的GAAC和多个位于企业的企业授权验证中心EAAC(EnterpriseAuthorization a司Authentication Cenler)组成,EAAC是GAAC在企业域内的代理。权限可由服务提供者声明也可由总部全局地设定。 一次典型的跨域服务调用如图3所示:①服务调用方EAAC1将最终用户身份卿果需要的话)转换为一个代理用户,向GAAC发起调用请求;)GA.AC根据鉴权结果,向EAACI发布一个合法性令牌或拒绝访问消息(鉴权服务响应);③EAAC1持有该令牌向服务提供方EAAC2发起调用请求;④被调用服务传回业务数据响应。 事务处理如果一个业务服务需要平台提供事务支持,在服务设计期应引入平台提供的事务服务,且组成该业务服务的子服务需满足一定的条件:提供支持回滚的方法;支持向事务服务主动报告状态;支持事务服务对其查询状态。业务服务被调用时,先向平台的服务协调器(Coordinator)注册一个事务实例,其他参与的子服务依次加人这个事务实例;每个子服务完成操作后向协调器报告状态,协调器根据全部子服务的报告确定事务执行的策略。 对于协调器而言,参与者有两种操作类型(读和写),以及三种结果状态:准备好(prepared),表明执行成功;失败(failed),需要回滚或补偿;未决(indoubt),协调器失去与参与者的联系,参与者的执行结果未知。而参与者的执行结果仪有准备好和失败两种类型,而由底层业务系统保证其域内的事务支持特性。全部的参与者状态报告均为prepared时事务执行成功;如果存在其他状态,协调器采取采取以下策略: 4、总结 本文提出一种基于SOA架构实现集团型企业的多个私有应用域跨Internet集成的中间件平台。该平台提供工具对遗留系统进行服务封装;提供基于BPEL的服务编排引擎实现模型驱动、面向流程的服务编排;提供私有的层次模型用于平台服务的统一注册和发现,并着重解决分布异构环境下服务集成的授权和访问控制,事务支持等特殊问题。该平台推进了多个程序域间的深度集成和总部对业务的全局管理,具有良好的应用前景。 本文作者创新点:将Web服务技术运用于集团型企业异构系统的信息集成,提出了实现数据和应用集成的一种解决方案。
责编:刘书畅 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
推荐博客 |
|