您的当前位置:首页正文

基于SOA实现企业应用集成

来源:我们爱旅游
第15卷󰀂第9期󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂微󰀂机󰀂发󰀂展Vol.15󰀂No.92005年9月MicrocomputerDevelopment󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂Sep.2005

基于SOA实现企业应用集成

廖建军,胡宏涛

(西安石油大学计算机学院,陕西西安710065)

摘󰀂要:文中分析了企业信息系统集成的必要性和传统EAI解决方案所面临的不足。探讨了面向服务的组件结构模型及其集成思想。提出了基于面向服务架构实现应用集成开发的解决方案,并给出了一个应用微软BizTalk(r)Server实现某石油部门信息系统应用集成的开发实例。充分论证了基于SOA实现系统集成开发的可行性及优越性:只须将应用系统看作一组服务功能集合,对服务编排融合,便能够更好地重用、共享,并能分布式部署。基于SOA的应用集成正是开发响应性好、可适应的新型应用程序所首选的解决方案。关键词:面向服务架构;EAI;Web服务;SOI

中图分类号:TP311.5󰀂󰀂󰀂󰀂󰀂󰀂󰀂文献标识码:A󰀂󰀂󰀂󰀂󰀂󰀂文章编号:1005-3751(2005)09-0114-03

ImplementingEnterpriseApplicationIntegrationBasedonSOA

LIAOJian󰀁jun,HUHong󰀁tao

(InstituteofComputer,Xi anShiyouUniversity,Xi an710065,China)

Abstract:AnalyzesthenecessityofintegrationofinformationsystemofenterprisesandthedeficiencyoftraditionalEAIsolution.Probesintothebasiccomponentmodelsofaservice-orientedarchitectureandintegratedthought.Putsforwardthesolutionofrealizingenter󰀁prisesapplicationintegrationonthebasisofSOA.ProvidesadevelopinginstancewhichapplyMicrosoftBizTalk(r)Servertointegratecertainpetroleumdepartment sinformationsystem.Havefullyprovedandrealizedthefeasibilityandsuperioritydevelopedinsysteminte󰀁grationonthebasisofSOA:onlyusesthesystemtoregardasagroupofservicefunctionsets,willgrademerginginserving,canbegoodtoreusing,sharing,andcandistributetodeployment.ThesolutionofintegrationofapplicationbasedonSOAisjustlythefirstchoosetodevelopthegoodresponsiveandadaptablenew-typeapplication.Keywords:service-orientedarchitecture;EAI;Webservice;SOI

0󰀂引󰀂言

随着业务的增长、信息化的发展,企业间协同商务和EIP(企业信息门户)等要求企业的应用系统是一个高度集成和开放的系统。然而大型企业往往拥有着异构系统,导致系统间信息的交互与互操作非常困难,形成了一个个!信息孤岛∀,出现了电子商务发展的瓶颈。传统的企业应用集成(EAI)解决方案有4种类型:用户界面集成、数据集成、业务流程集成、函数/方法集成[1]。这4种集成方法不能方便、灵活、低代价地实现异构系统的集成,难于快速适应企业现代业务变化的需求。在不改变企业应用底层架构的基础上,基于面向服务架构(SOA)的应用集成开发方案可以很好地解决上述问题。它支持在中间层以服务模块方式实现解决方案,当多个运行在不同平台和技术上的应用程序必须互相通讯时,这种体系结构尤其适用。

1󰀂面向服务的体系结构

SOA(面向服务的架构)随着各大厂商的追捧而变得炙手可热。虽然SOA本身不是一个全新的概念,但由于Web服务以及网格计算等技术的成熟,SOA具备了更好的发展条件。对于EAI来说,基于SOA的企业应用系统可以随着企业业务的变化而逐渐变化,能够实现!柔性化∀的软件系统,从而降低了实施EAI的成本和风险。1.1󰀂SOA的定义及其组件结构

SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过其间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

面向服务体系结构的组件包括:

(1)服务提供者。服务提供者是一个或一组以无状态方式执行业务功能的组件,接受预定义的输入和输出。

(2)服务使用者。服务使用者是一组有兴趣使用服务提供者所提供的一项或多项服务的组件。[2]

收稿日期:2004-11-22

作者简介:廖建军(1979󰀁),男,重庆彭水人,硕士研究生,研究方向为管理信息系统与网络研究。第9期󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂廖建军等:基于SOA实现企业应用集成#115#

(3)服务储备库。服务储备库包含服务的说明。服务提供者在该储备库中注册其服务,而服务使用者访问该储备库已发现的所提供的服务。

图1说明了SOA中的不同角色及其工作流程。

务提供一项特定的业务功能,而细粒度服务代表了技术组件方法。

1.3󰀂实现技术

虽然服务不仅仅是指!Web服务∀,但Web服务是SOA最流行的一种实现方法。Web服务(WebService)提供了一个分布式的计算技术,通过开放的Internet标准:Web服务描述语言(WSDL,用于服务描述);统一描述、发现和集成规范(UDDI,用于服务的发布和集成);简单对象访问协议(SOAP,用于服务调用)和Web服务流语言(WSFL,用来定义工作流),Web服务消除了现存解决方案(如CORBA和DCOM)中的互用性问题。使用Web服务,通过松散的服务捆绑集合形式,能够快速、低代价地开发、发布、发现和动态绑定应用[3]。1.4󰀂面向服务的集成(SOI)

面向服务的集成(Service-OrientedIntegration,SOI)

图1󰀂SOA中的不同组件及其工作流程

将传统的集成对象与开放的、高灵活性的WebServices整合在一起。它提供了一个抽象的接口,通过这些接口,系统可以进行交互,而不是使用低层的协议和自定义的编程接口,来规定系统如何与其它系统进行通讯。系统只需要以服务的形式出现,选择与该系统交互的其它系统,能够简单发现那些服务,并且在运行的时候或者是设计的时候,与这些服务绑定。面向服务的集成使得IT机构能够在已有的应用中提供可重用的服务的功能。

SOA的关键是!服务∀。W3C将服务定义为:!服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常是使用者的状态发生变化,但也可能是提供者的状态改变,或者双方都产生变化∀。服务是网络中可用的软件资源。服务提供者通过标准机制提供服务,服务使用者通过网络有计划地使用服务。服务储备库发布服务所在位置,并在使用者请求服务时定位服务。服务使用者和提供者的角色不是惟一的,服务提供者也可以是使用者,反之亦然。1.2󰀂服务粒度

可以按基于服务的功能及发送和接收的数据数量来划分服务,如细粒度服务、粗粒度服务或组合服务。在SOA中服务粒度有两种相关的意思,即服务是如何实现的,服务使用和返回了多少数据或多少消息。细粒度服务执行了最小的功能,发送和接收少量的数据。粗粒度服务执行了较大的业务功能,并交换了更多的数据。粗粒度服

2󰀂应用实例

2.1󰀂系统结构和原理

本应用实例是某石油部门信息系统,包括原有系统:勘探生产管理系统、财务系统、人事系统、办公自动化系统和新开发的统一权限认证系统。其SOA架构见图2。

图2中的集成开发体系结构可分为应用架构(Appli󰀁cationArchitecture)、服务架构(ServiceArchitecture)和组件架构(ComponentArchitecture)三层子架构

[4]

。应用架

图2󰀂基于SOA的信息系统集成开发架构

󰀂󰀂116#󰀂󰀂#󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂微机发展󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂第15卷

构由服务消费客户层、业务流程层组成;服务架构由业务服务总线层和服务提供层的Web服务组成;组件架构由服务提供层中未封装的应用系统组件环境组成。在服务消费客户层中,服务消费者是挂接于企业信息门户的基于ASP.NET开发的Web应用程序(Web服务客户应用)。业务流程层集成了各种业务规则和逻辑。业务服务总线层将细粒度服务编排融合为粗粒度服务并为各业务对象提供目录、路由服务以动态绑定到所需要的服务。服务总线作为通用平台,消除了服务提供者和请求者之间的依赖关系,提高了可重用性以及已有服务的内部扩展和外部获取。服务提供层将企业原有系统所提供的功能组件以Web服务封装[5],新系统也以Web服务开发,并将这些服务发布到UDDI公共目录服务器中注册,以提供目录路由服务。2.2󰀂系统实现

图2中集成开发体系结构的业务流程层、业务服务总线层和目录路由服务可由微软BizTalkServer实现[6]。BizTalkServer是Microsoft的业务流程管理和企业应用集成平台,它体现了SOA编程模式。BizTalkServer联合了两种框架:SOA和.NET,并结合XML的高层次功能抽象和可视化设计工具,具有无可比拟的高性能、高效率的开发和部署环境。因此采用BizTalkServer结合VisualStu󰀁dio.NET的开发方式,既能兼顾SOA,也能充分利用.NET技术。首先用VisualStudio.NET创建客户端应用程序和服务提供层,将各应用系统业务对象实现为XMLWebServices。然后用集成于VisualStudio.NET中的BizTalkServerOrchestrationDesigner(业务流程设计器)创建流程应用程序(业务流程)并聚集各种WebServices。最后是在IIS和BizTalkServer中运行并部署解决方案,见图3。

现以数据管理员要求修改各月原油生产情况为例,说明面向服务集成的实现流程。如图3所示,修改某年的各月原油生产情况应先获得修改权限并查找到记录再修改,故而可由细粒度服务;查询服务B和更新服务C编排组合为粗粒度服务;各月生产情况修改服务A;由勘探生产管理系统封装出的旧认证服务D和新开发的统一权限认证系统提供的新/旧认证映射服务F;新认证服务G编排组合为权限认证服务E。这些编排过程由BizTalkServer完成。

当数据管理员从客户端访问集成到企业门户中的勘探生产管理系统时,修改流程(权限认证流程类似)如下:(1)数据管理员访问门户递交修改请求,门户会向后台Web应用服务器转发此请求。

(2)Web应用服务器接到请求后,根据相应的业务规则立即在BizTalkServer中查找符合需求的Web服务A。

(3)由BizTalkServer事先编排好的业务逻辑规则:服务A由细粒度服务B、C组合而成,立即到其配置数据库(ConfigurationDatabase)中查找符合需求的Web服务B、C。

(4)配置数据库向BizTalkServer返回服务B、C的访问位置和WSDL绑定信息。

(5)BizTalkServer根据得到的信息,生成WebService代理并绑定到相应的WebService上。

(6)BizTalkServer调用服务B、C实现修改请求并将处理结果返回至Web应用服务器,Web应用服务器生成ASP.NET结果页至客户端显示。

其它应用的实现部署情况类似,各企业应用不管是遗留系统还是外部企业系统,只要能以Web服务进行封装就能像插件一样嵌入消息服务总线,以实现松耦合、敏捷的企业应用集成和可扩展功能。

3󰀂结束语

通过上述对于面向服务架构的集成模式探讨,可以看出只须将应用系统看作用来满足客户需求的一组服务功能集合,进行服务编排融合,各服务能够被更好地重用、共享,并能在网络上进行分布式部署。Web服务能实现SOA

图3󰀂信息系统的具体部署及各月生产情况修改服务的实现

技术。基于SOA的应用集成,可以减少不同

类型的IT系统的依赖性,降低费用和IT操作的复杂性,提高已部署系统的灵活性,同时排除了抑制业务创新的障碍。(下转第119页)

图中,A:修改原油生产情况服务;B:查找服务;C:更新服务;D:旧认证服务;E:权限认证服务;F:新/旧认证映

射服务;G:新认证服务。第9期󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂王󰀂雪等:基于XML的ETL分析与设计#119#

展性,能够准确地描述转换规则的含义。该模块中具体功能的实现层次描述如图4所示。

(3)系统管理完成数据转换调度、数据加载调度等功能。

图3󰀂数据源管理模块的工作模式设计

󰀂󰀂<数据源描述>󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂

󰀂数据来源󰀂数据源类型󰀂数据源驱动类型󰀂数据源名称󰀂∃∃

系统管理模块的功能主要是

从管理角度出发,解决ETL执行过程中!何时触发进程∀的问题。该模块根据不同异构数据源的实际情况的不同,定义不同的调度规则。其中,数据转换调度实现了转换流程的定义,而数据加载调度则实现了基于事件或时间的调度规则。通过这两种调度的管理,充分实现了ETL流程管理的灵活性。

󰀂󰀂󰀂󰀂<数据项描述>󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂󰀂

󰀂数据项所属表名󰀂数据项类型󰀂数据项长度󰀂数据项是否为空󰀂数据项描述󰀂∃∃

󰀂󰀂󰀂󰀂󰀂图4󰀂规则定义实现模型

4󰀂总󰀂结

ETL数据转换是数据仓库技术研究的重点,文中通过对ETL工具原理的研究和功能的设计,提出了基于XML的ETL工具方案。该方案采用了具有结构性强、自描述灵活和通用性良好的可扩展标记语言XML作为关键的技术,实现了对元数据的灵活管理和设计、数据抽取转换加载、ETL流程调度等功能,实现了数据级集成。

参考文献:

[1]󰀂常新功,肖玉巍,金󰀂红.数据仓库的ETL策略[J].山西财

经大学学报,2002,24(5):182-183.

[2]󰀂张󰀂宁,贾自艳,史忠植.数据仓库中ETL技术的研究[J].

计算机工程与应用,2002,38(24):213-216.

[3]󰀂XML中国论坛.XML实用进阶教程[M].北京:清华大学

出版社,2001󰀂

[4]󰀂张雪洁,王志坚,许󰀂峰,等.基于XML的领域异构数据库

间的数据转换[J].计算机与现代化,2004,105(5):71-74.[5]󰀂胡󰀂萍,李文华.基于XML的数据转换中间件的研究与实

现[J].微机发展,2003,13(6):72-74.

[4]󰀂SprottD,WilkesL.UnderstandingService-OrientedArchi󰀁

tecture[EB/OL].http://msdn.microsoft.com/architecture/soa/default.aspx,2004-02.

[5]󰀂刘英丹,董传良.利用Webservices实现企业应用集成[J].

计算机应用,2003,7:124-126󰀂

[6]󰀂MicrosoftArchitectureCenter.ImplementingService-Ori󰀁

entedIntegrationwithBizTalkServer2004[EB/OL].http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/implsoiwithbts.asp,2004-09󰀂

󰀂󰀂󰀂󰀂∃∃

(2)数据转换完成转换规则定义、内容变换定义、计算规则定义、传输规则定义等功能。

这一模块主要实现了ETL的数据清洗和转换的功

能。转换规则定义功能主要进行数据格式转换规则的定义,其操作是面向数据结构层的;内容变换定义功能主要进行数据内容变换的规则定义,其操作是面向数据内容层的;计算规则定义则是实现了元数据到目的数据的计算规则定义,其中包括数据项的各种数学运算和数据项的合并等规则的定义;传输规则定义实现的是源数据到目的数据的传输规则定义,该规则是在最后的数据加载过程中对应关系描述。这里,同样使用了XML文件来保存对应的各种变换的规则的定义,因为XML语言具有非常灵活的扩

(上接第116页)参考文献:

[1]󰀂柴晓路.Web服务架构与开放互操作技术[M].北京:清华

大学出版社,2002.

[2]󰀂IBM.SOAandWebservices专区[EB/OL].http://www-900.ibm.com/developerworks/cn/webservices/newto/web󰀁svc.shtml,2004-08-12

[3]󰀂周󰀂刚,朱晴波,胡南军,等.Web服务解决方案分析[J].

计算机工程,2002(6):47-49󰀂

因篇幅问题不能全部显示,请点此查看更多更全内容