APP下载

一种面向业务流程的异构系统集成平台

2010-08-23刘永青

制造业自动化 2010年11期
关键词:跨域调用异构

吴 靖 李 清 刘永青

WU Jing1, LI Qing1, LIU Yong-qing2

(1. 清华大学 自动化系,北京 100084;2. 经纬纺织机械股份有限公司,北京 100125)

0 引言

随着企业信息化技术的不断发展,当前我国企业尤其是大型集团企业普遍面临异构系统集成的三大难题:1)异构系统的互操作、2)跨域交互的安全性、3)集成方案的敏捷性。

SOA(面向服务架构)和Web服务技术提供了一种全新的应用集成模式和体系结构[1],其松散耦合、技术无关和互操作的特点为异构系统的集成及未来随需而变的信息系统的构建奠定了基础[2]。近年来,众多IT厂商纷纷致力于SOA落地的研究,大批商业产品应运而生。遗憾的是,这些产品过分关注推销其新的开发环境,以替代原有的开发模式和技术,忽略了对企业已有IT投资的保护和利用,实施成本很高;另一方面,出于商业包装和技术封锁等原因,各厂商采用的相关技术(例如安全控制、服务管理、性能监控等)大都与自身平台紧密绑定,对于已存在多种平台的实际企业环境,却没有提供可行的解决方案。因此,目前的SOA产品虽然理念上是分布式的,但实质上与企业真正需要的跨平台、跨计算机域的分布式结构,有着本质的区别,而集团企业所面临的系统集成难题也没有得到圆满解决。

本文针对集团企业的特点和集成需求,构建了一套面向业务流程的异构系统集成平台(BPO-P)。该平台提供了跨互联网的异构应用系统的集成策略、运行平台和一组系统开发、维护的工具集,同时能够很好的保护和继承企业已有IT投资并提供良好的发展空间。本文将着重关注对服务跨域访问控制、高效的服务注册机制、通用的服务开发技术及增强IT系统敏捷性等关键技术的研究和实现。

1 BPO-P功能分析与总体设计

支持集团内部企业间系统集成和互操是BPO-P的首要目标,同时为增强其多平台适应性和敏捷性,BPO-P将以中间件形式融入企业IT架构中,具备以下的功能和特点:

1)能够支持异构的业务系统的跨域集成与互操作;

2)能够有效监控通过互联网进行的Web服务访问,保证交互安全性;

3)能够提供一种机制将非Web服务类功能组件封装成为标准服务;

4)能够提供一种方法将分布式部署的简单功能Web服务进行编排,实现复杂的业务功能;

5)经封装、编排生成的Web服务不依赖特定运行环境,能部署在不同的平台上;

6)平台本身能够运行在不同环境(如操作系统、硬件设备、软件平台等)中,并能快速便捷地实现系统迁移和扩展。

基于上述考虑,BPO-P采用将一种典型的中心节点——子节点的星型分布式架构(如图1),在实现上述目标的同时,还能很好的适应集团企业的组织架构和管理模式,实现企业空间分布,集中管理的效果。

图1 BPO-P总体架构

BPO-P具有清晰的层次化结构,自顶向下可分为5层:

1)应用门户层(Portal):采用B/S架构实现,运行在普通应用服务器上,提供系统与终端用户的交互接口。

2)系统管理层:提供用户管理、权限分配、资源管理、登陆控制等系统级管理功能模块。

3)功能组件层:提供支持BPO-P快速实施和正常运行的辅助工具和功能组件。服务访问代理(SAA)提供Web服务跨域访问时的安全保障;服务封装模块实现非服务功能模块到Web服务组件的转换;流程编排模块将已有服务编排组合生成具有更复杂功能的流程服务;服务注册管理模块提供服务发布、WSDL自动解析、服务信息注册维护等后台功能组件。

4)平台数据库层:分系统数据库和服务注册中心两部分。前者存储平台系统数据;后者是平台服务注册库,存储对象为具有业务功能的Web服务组件信息。

5)服务总线层[3]:提供Web服务的运行时环境以及服务管理、性能监控、事务处理等系统级功能,各种第三方应用服务器均可实现。按部署位置分为集团服务总线(CSB)和企业服务总线(ESB)两级。总线上服务粒度的选择要适中,粒度过细会导致复用程度增加影响总线效率,过粗则会使服务复用程度降低,缺乏通用性。

2 基于SAA的服务跨域访问控制

目前单个企业的信息系统结构上相对独立,安全功能完善,执行相同的WS-策略,可将其视为一个“安全域”[4]。但集团内成员企业间的应用集成需要进行跨域访问,这种交互过程超出了原WS-策略的控制范围,此时Web服务的开放性对SOA集成的安全策略提出了新的挑战[5]。针对此问题BPO-P运用了一种基于SAA的跨域交互机制(如图2):

图2 基于代理的Web服务跨域访问机制

在每个成员企业域内设置一个SAA作为本域内服务对外交互的唯一通道。SAA由“输入模块”(Module_I)和“输出模块”(Module_O)两部分组成:前者负责接收域外来访的服务调用请求并进行转发处理;后者功能则与之相反。所有服务与对应SAA的映射关系都会在平台服务中心注册。于是服务跨域交互控制可以分“域间认证、服务授权”两步实现:1)进行跨域访问的双方通过SAA间身份认证机制判断域间交互的合法性,2)认证通过后根据交互双方的授权记录进行服务级的访问控制;从而大大降低实现方案的复杂性。以图2中服务ik跨域调用jl为例:调用发起后首先SAA_i的Module_O得到ik的调用请求并通过注册中心定位jl的代理SAA_j;然后两SAA间通过KDC进行身份认证,认证完成后则与SAA_j的Module_I建立信道传递参数;第三步在SAA_j的Module_I查询服务授权记录判断本次调用是否合法,然后采取相应的响应完成调用过程。

实现技术上,SAA认证机制采用了“安全/代价比”较为理想的Kerberos协议实现。Kerberos使用对称密钥加密算法实现通过可信第三方KDC(密钥分发中心)的双向认证功能[6],具有稳定、高效的特点。服务授权环节的控制则通过检索注册中心存储的服务授权列表来实现。另一方面,Kerberos协议还可以在SAA间建立起安全信道[6],确保了数据传输级安全因此不需要企业再建立专门的数据传输链路(如VPN、企业专网等),有效节约了成本。

最后,本安全解决方案不仅能满足集团企业跨域访问控制的需求,还具有较强的独立性和灵活性。SAA以标准Web服务形式实现,部署方式简单。Kerberos也已在业界得到广泛应用,拥有良好的稳定性和兼容性,受到多种操作系统环境的支持,可以方便地实现跨异构平台的部署和互操作。

3 基于全局ID的服务注册机制

在SOA领域,基于UDDI协议的服务注册机制受到普遍关注,应用广泛[7]。但考虑到集团企业内部对服务访问安全性的强烈需求,UDDI不易与BPO-P的安全策略集成,同时也不能有效提高开发效率,所以采用私有架构来实现服务注册是更好的选择。平台采用了一套基于全局ID的服务注册机制:平台内每个服务拥有全局唯一的ID,对应其一组注册信息,服务调用过程中调用方只需掌握被调方的ID并动态地从注册中心获取其详细信息如图3所示。

图3 基于全局ID的服务动态调用过程

与传统UDDI注册机制相比,本方案能够更好的支持服务动态调用过程,将调用双方有效地解耦,使系统表现出极大的松耦合性。例如由于SAA对其调用目标的不确定性,可以将每次调用目标服务的ID作为参数传递给它,由它自行获取调用参数完成调用过程,而不必在其实现代码中紧密绑定其所有可能的访问目标;又或者由于某服务器迁移导致其上的服务要更改部署信息,也只需要更新服务的注册信息(ID不变),无需改动调用它的上级流程服务或SAA,显著提高了系统的可维护性和流程编排功能的敏捷性。

4 多平台适应的服务开发技术

由于集团企业普遍经历了长期的信息化建设历程并进行了大量投资,如何在应用集成过程中继承和充分利用企业已有IT资产,尽可能降低实施成本是企业决策者尤其关注的问题。BPO-P不仅作为运行平台支持基于SOA的系统集成方案,同时还是一个集成开发环境,提供通用的服务开发方法和交互界面(如图4),支持图元拖拽、交互编辑、参数设置、固定代码生成和服务自动部署等功能,极大简化了企业人员的开发工作且具有很强的适应性和扩展性。

图4 服务封装(上)和流程编排工具(下)GUI

4.1 Web服务封装

服务封装技术是企业实施SOA的关键[8],BPO-P提供了专门的辅助封装工具,如图4所示,引导企业人员快速完成遗留系统服务封装工作。由于Java具有平台无关性优势及J2EE在业界占据主导地位,BPO-P选择其作为封装技术。服务封装过程首先实现遗留系统Java封装,形成具有业务功能的本地Java程序。同时,由于平台采用基于SAA的特殊服务调用方式,Java封装过程包含添加SAA处理逻辑(简称“封套”)的操作。

根据遗留系统功能组件实现方的式不同,Java封装对象可分为两类:一是已存在的标准Web服务,二是针对非服务类功能组件。对于前者,直接编写本地Java应用程序实现对该服务的远程调用并添加“封套”代码;后者的封装过程则需要分两步实现:1)对遗留功能模块进行Java封装使其满足JNI(Java本地接口)的调用规范(标准Java程序模块则不需此步),2)开发本地Java程序调用该模块并添加“封套”代码。完成遗留系统Java封装以后,通过标准Java打包部署过程就可以形成平台标准的Web服务。

4.2 基于Java的流程编排

在SOA架构下,对已有Web 服务进行编排组合可以形成新业务流程服务。当业务流程发生变化时可以通过此方法快速改变流程结构,以适应新的业务需求。

目前在业务流程编排领域,业务流程执行语言(BPEL)已经成为了业界事实上的标准语言,得到众多IT厂商的支持[9]。但是,BPEL流程服务运行需要特殊的执行引擎,尤其是商业编排工具为了商业包装的目的更是把编排的流程服务与自身BPEL引擎紧密绑定,极大地限制了编排结果的适应性。同时,流程服务与原子服务分别部署在不同的运行平台会大大增加服务总线的复杂度和实施成本。

BPO-P提供一种与自身架构相适应的流程编排工具,它支持图形化的流程编排方法如图4所示,并采用标准Java作为流程描述语言和编排结果,提高了在各种服务总线上的部署能力,相比BPEL更具通用性[10]。

在功能实现方面,该工具分为图形化编辑、代码自动转换和服务部署三部分。图形化编辑为编排人员提供直观的流程模型绘制、服务调用、参数设置以及接口定义等界面;代码自动转换部分将前台模型及存储参数按特殊映射规则和数据结构转换成结构化的Java代码;服务部署过程则完成Java程序的打包发布。经上述操作产生的流程服务外部接口同标准服务一致,因此可以将其部署在统一平台上,同时他们还可以被视为新的原子服务被编排进更高层次的流程服务中。而且经该工具编排的流程服务也内嵌了SAA访问机制,也为跨企业、跨平台的业务操作提供了安全保障。

4.3 多平台适应的服务部署

BPO-P的服务封装和流程编排工具都首先以Java作为输出结果,再通过Ant技术进行打包部署。Ant作为Apache软件基金会提供的一个基于Java的、将软件编译、测试、部署等步骤联系在一起自动化执行的开源工具[11],具有平台无关、结构清晰、操作简单、易于集成等特点。通过Ant命令能快速地将Java程序部署到当前被广泛使用的各种服务总线上。在上述封装和编排工具中都集成了Ant部署工具,从而使得封装和编排结果能被自动打包部署到多种底层运行平台,具有良好的通用性。

5 应用实例

BPO-P在经纬纺织机械股份有限公司进行了示范应用。经纬纺机在企业信息化领域起步较早,但随着企业规模增大和业务领域拓展,目前该集团面临营销服务体系集成的迫切需求。本次工程则是为实现集团营销数据集成自动化。

在此案例中,首先由各企业系统提供若干具有基础数据服务功能的原子服务如图5所示,然后总部通过服务编排形成具有完整功能的流程服务。同时为实现集成流程与原有系统的隔离,避免新功能对原系统的干扰,各平台服务器上分别部署了相应的数据总线作为流程服务的数据操作区。基于此两级数据总线结构,可将原子服务如图5所示,编排成三个子流程服务,每个子流程完成数据的一级上传和相应的去异构化,最终通过三个子流程编排形成具备完整功能的主流程服务。考虑到数据集成过程操作复杂,对服务的错误处理能力要求较高。本文通过监控里程碑执行状态的方法进行优化:编排主流程服务时在流程关键点设置状态记录操作和流程启动接口如图5所示。当企业人员运行流程时,可通过日志监控流程执行情况,遇程序出错中断时则根据记录选择最接近的里程碑继续运行流程服务,从而避免过多的冗余操作,提高效率。

图5 营销数据集成流程设计(上)与服务编排(下)

有了集成方案总体架构和详细设计,BPO-P的结构化实施方法可以引导企业人员快速完成实施过程:

1)在总部和企业域内分别部署SAA并注册到平台。

2)企业IT人员根据原子服务定义完成原子级服务开发或封装并部署到对应的ESB上。

3)总部流程编排人员根据流程服务设计编排相应的原子服务形成流程服务并部署到CSB上(服务部署时将自动生成相应操作页面并随注册被一同发布到平台Portal上)。

4)终端业务人员登陆到Portal,在权限范围内完成相应的数据集成操作如图6所示。

图6 BPO-P营销数据集成实施结果

6 结束语

集团型企业异构系统集成和跨企业协同是目前企业信息化领域的热点问题,现有的成熟技术和商业产品并不能完全满足企业的实际需求。针对此问题本文构建的面向业务流程的异构系统集成平台具有以下特征:

1)提供了跨域的异构系统集成的运行环境,为SOA技术在集团企业的应用创造了条件。

2)实现了基于互联网的、跨域服务访问的安全机制,并将该机制与服务的开发、封装、编排、部署、调用紧密结合,形成一套完整的分布式服务访问安全体系。

3)提供结构化的实施方法和通用的辅助开发工具,具有快速部署特性,大大缩短集成实施周期。

4)以中间件形式实现,对原系统兼容性较高,有效保护和继承了企业前期IT资产,降低集成实施成本。

5)部署条件简单且能适应多平的环境,具有较高敏捷性和可扩展性,能够满足现代企业对应用系统的柔性需求。

综上所述,BPO-P提供了完整的分布式异构系统集成方案,其可行性和实用性在实践中得到验证,有效支持了集团型企业基于互联网的应用集成和企业协同目标。

[1]YU.J,HAN.Y,:Service Oriented Computing:Principles and Applications[C].Beijing:Tsinghua University Press,2006.

[2]E.PULIER,H.TAYLOR.Understanding enterprise SOA[M].Greenwich,CT:Manning,2008.

[3]呼斯乐,邵贝恩.集团型企业异构系统的中间件集成方案[J].微计算机信息,2009,25(9).

[4]邴晓燕,邵贝恩.基于SOA的企业应用跨安全域访问控制[J].清华大学学报,2009,49(7):1050-1053.

[5]J.WU,Z.M.HUANG,“Proxy-based web service security,”in IEEE 3rd IEEE Asia-Pacific Service Computing Conference (APSCC)[C],2008,1282-1288.

[6]MIT.Kerberos:The Network Authentication Protocol [E].http://web.mit.edu/kerberos/www/index.html,2009.

[7]Official website of Standard UDDI protocol committee[S].http://uddi.xml.org/.

[8]N.KOMODA,Service Oriented Architecture (SOA) in Industrial Systems[C].Industrial Informatics,2006 IEEE International Conference.2006.

[9]T.ANDREWS,et.al.Business Process Execution Language for Web Services[S],Version 1.1.http://www.oasis-open.org/.

[10]李灿强.基于业务模型的服务编排技术研究[D].北京:清华大学,2009.

[11]Ant[S].http://www.apache.org/ant.

猜你喜欢

跨域调用异构
跨域异构体系对抗联合仿真试验平台
基于多标签协同学习的跨域行人重识别
试论同课异构之“同”与“异”
为群众办实事,崂山区打出“跨域通办”组合拳
G-SRv6 Policy在跨域端到端组网中的应用
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
吴健:多元异构的数字敦煌
异构醇醚在超浓缩洗衣液中的应用探索
LTE异构网技术与组网研究