基于Web服务的流程工业遗留系统的信息集成.docx
- 文档编号:18485308
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:16
- 大小:68.16KB
基于Web服务的流程工业遗留系统的信息集成.docx
《基于Web服务的流程工业遗留系统的信息集成.docx》由会员分享,可在线阅读,更多相关《基于Web服务的流程工业遗留系统的信息集成.docx(16页珍藏版)》请在冰点文库上搜索。
基于Web服务的流程工业遗留系统的信息集成
《过程系统智能工程和计算机集成环境》--课程论文
基于Web服务的流程工业遗留系统的信息集成
李相育
专业:
计算机应用技术
导师:
钱宇教授
年级:
2003级博
任课教师:
钱宇教授
华南理工大学计算机学院
2004年11月
基于Web服务的流程工业遗留系统的信息集成
李相育
摘要:
为了实现流程工业遗留系统的有效集成,提出了一种基于Web服务的流程工业遗留系统信息集成模型。
首先分析流程工业遗留系统的特点,以及确定遗留系统要公开的数据及功能,再利用WebServiceWrapper技术将其包装为Web服务,然后,企业可以根据自身的集成目标来动态集成这些分布在不同区域的Web服务。
该模型对遗留系统采用包装的方法,保证了遗留系统在集成平台中仍保持原先的安全稳定性。
最后,通过在建立Mini-Plant的计算机信息集成平台上的实际应用,验证了该集成技术的有效性及实用性。
关键词:
遗留系统;网络服务;简单对象存取协议;网络服务描述语言
0引言
流程工业在长期的运行过程中,存在着众多的遗留子系统,由不同的开发者,在不同的时期,采用不同的语言进行开发,并运行于不同的操作系统平台中,彼此之间很少实现信息的共享,随着信息集成在企业作用的日益提高,有必要把这些遗留系统集成起来,使它们成为一个运行整体,实现数据共享,同时也保证遗留系统的运行稳定及安全性。
传统的信息集成技术,由于自身的限制,并不能很好地解决遗留系统的跨平台集成,以及集成系统安全,可靠的运行。
基于以上原因,本文提出了基于Web服务的流程工业遗留系统信息集成技术,来实现集成的动态性,扩展性,以及多入口集成,较好地解决遗留系统的跨平台分布式集成。
1遗留系统基本特征,处理原则及模式
1.1遗留系统基本特征
目前学术与工业界对遗留系统没有统一的定义,Bennett在1995年对遗留系统作出了如下定义[2]:
遗留系统是大家不知道怎么处理但对企业又至关重要的系统。
Brodie和StoneBraker对遗留系统给出了如下定义[3]:
遗留系统是指任何基本上不能进行修改和进化以满足新的变化了的业务需求的信息系统。
据认为,遗留系统应该具有以下特点:
(1)系统虽然完成企业中许多重要的业务管理工作,但已经不能完全满足要求。
一般实现业
务处理电子化及部分企业管理功能,很少涉及经营决策。
(2)系统在性能上已经落后,而且技术已经过时。
如多采用主机/终端形式或小型机系统,软
件使用汇编语言或第三代程序设计语言的早期版本开发,使用文件系统而不是数据库。
(3)通常是大型的软件系统,已经融入企业的业务运行和决策管理机制之中,维护十分困难。
(4)系统没有使用现代软件工程方法进行管理和开发,现在基本上已经没有文档,很难理解。
1.2遗留系统处理的原则
对于遗留系统的处理,一般主要遵循以下的原则:
(1)尽量保护企业的原有投资
遗留系统无论怎样都是企业的一笔财富,企业化费了大量的人力、物力在系统的建设和维护上。
绝大多数系统仍然在运行中,这些系统存储了大量的数据资料(如客户信息),是企业的宝贵财产。
还有的情况是,由于较长的开发周期,旧的信息系统还在建设当中,由于业务的变化或技术的进步,系统不得不重新进行改造、升级。
我们首先应该考虑的就是保护企业原有的投资或大部分投资,使遗留系统本身的价值能够充分发挥。
同时也减少升级改造的新的资金投入。
(2)尽量少冲击企业日常运作
企业的日常运作一般都依赖于遗留系统的工作。
新旧系统的转换必然或多或少地对企业的运作产生冲击。
不可能做到一点影响也没有,只能尽可能减少影响。
特别是用户已经习惯了遗留系统的工作方式。
让用户能尽快接受新的工作环境也是要考虑的因素。
(3)增强功能和方便实现
一般来说,新系统应该涵盖遗留系统的功能,并要有功能上的进一步提高。
同时,升级改造的方案实现起来比较顺利,节约开发的人力物力。
(4)尽量降低开发风险
任何系统的开发都面临失败的风险。
在处理遗留系统的方案选择时,应考虑使系统整体开发的风险最小。
1.3遗留系统处理的基本模式
对于遗留系统的处理,存在以下几类不同的处理方案:
(1)舍弃遗留系统
这是对遗留系统的一种极端的处理方式,这种方式不仅一次性舍弃整个遗留系统,而且也舍弃了对设计新系统有价值的一些原始信息。
采用这种方式,是对企业资源的根本浪费,除非一个遗留系统已经完全不能满足企业目前的需要,一般不提倡对遗留系统采取这种处理方式。
(2)包装遗留系统
目前,对遗留系统进行包装处理是一个研究热点。
这种方式对遗留系统进行包装,隐藏遗留系统的具体实现方式,对外界提供具体的调用接口。
采用这种方式,对遗留系统一般只进行极少量的修改,不影响遗留系统的安全稳定性,而且容易实现且成本低。
(3)重建遗留系统
所谓系统重建(Reengineering),必须建立在对原系统理解的基础上,一般首先对遗留系统的源代码进行分析,理解遗留系统的需求,基本结构等方面的信息,再在此基础上,对遗留系统进行改造,改正其缺点或增强其功能。
这种模式一般要求遗留系统的代码,需要文档等资料比较完备。
(4)业务逻辑与决策数据分离
在一个企业内部存在众多的遗留系统,它们运行于不同的操作平台,使用不同的数据库系统,这些遗留系统目前能够对业务数据进行比较有效的处理,但由于数据分散存放,造成企业决策数据不能为企业决策的制定提供依据。
在这种情况下,一般对遗留系统采用这种处理模式,将数据处理的业务逻辑与决策数据相分离,让遗留系统完成数据处理的基本业务操作,而决策数据则进行集中存放,这样企业的决策者就可以利用决策数据来进行企业决策的制定。
2流程工业遗留系统信息集成技术分析
遗留系统的集成是流程工业信息系统集成的重点和难点[4],因此很多学科多年来一直在进行这方面的研究。
研究如何在现有的通信网和遗留应用系统的基础上,结合最新的软件技术和网络技术,开发适应和促进企业进一步发展的信息系统,同时保护已有的投资,实现各个子系统的有效集成,对于流程工业来说,集成遗留系统不仅是节省投资的问题,更重要的是安全性方面的需要。
一个新开发的系统是不能冒然应用工厂实际中的,因为流程工业一次开停车的浪费非常大,人员安全更是无法用经济来量化的。
鉴于这个问题的重要性,在作
者的论文中,将会对集成遗留系统方面做深入的研究。
以期提出能够解决流程工业中,尤其是在流程工业的运行系统中大量存在的遗留系统问题。
20年来,遗留系统集成的方法也在不断改进发展。
遗留系统的集成主要经历了以下几个阶段:
80年代中期到末期,处理遗留系统的方法集中在读懂程序,提取那些代码的核心功能后重心改写,这是一种被称为系统迁移的方法。
它的目标是开发一个更新,比旧系统更健壮,可维护性更强的新系统。
开发人员努力把遗留系统的应用转换为两层客户机-服务器的结构,数据存放在服务器端,而业务逻辑在用户端,然而很快地,人们就发现,简单的两层结构不能随着网络通信不断增长的要求进行扩展,而且维护臃肿的客户端程序也是一件很困难的工作。
在90年代初,三层结构替换了两层结构,它提供了更大的灵活性并减轻客户端程序的负担,第一层是用户接口,提供应用的前端(显示)。
业务逻辑放置在第二层,编程的大部分工作都是针对第二层完成,这一层通常还包括一个交易监视器,用于和第三层数据层(通常是一个关系数据库)的交互,虽然三层结构在处理网络通信方面取得了很大的成功,分析和重建遗留系统代码的费用还是很高。
在近10年来逐步出现了CORBA,RMI,DCOM,COM,Agent等分布式对象技术,人们对流程工业遗留系统的研究也从系统迁移转向系统集成。
提出了一些基于这些分布式对象技术的流程工业遗留系统信息集成框架,这些框架采用对象封装技术来隐藏旧系统的内部结构,实现方式,并为旧系统定义一个良好的接口,通过该接口来实现不同遗留系统的之间的信息交互。
采用这些技术来实现遗留系统的集成,在节省系统的重新开发费用,实现系统安全稳定性方面的确取得了很大的成功,但是采用这些分布式对象技术来实现遗留系统的集成时,由于技术本身的致命缺点,使得它们只能应用于研究领域或应用范围狭窄。
RMI(RemoteMethodInvocation)的实现要求通信的两端都有Java环境,这从根本上阻止了它的推广。
CORBA虽然定义了一种语言无关的通信方式,但企业防火墙通常会阻止ORB(对象请求代理)通信。
基于COM,DCOM的遗留系统的集成要求集成环境中的计算机节点都支持Windows系统。
基于Agent[5]的流程工业遗留系统信息集成充分考虑了流程工业遗留系统的特点,但对于一个拥有众多遗留系统的化工企业,要实现各个遗留子系统Agent之间的互相通信,协同操作,在实际应用中难以实现。
与此同时,作为一种松散耦合,可复用的分工式计算模型,Web服务越来越多地被用于分布式系统集成。
结合流程工业遗留子系统较多且松散分布,以及对系统安全稳定性能的要求,本文提出了基于Web服务的流程工业遗留系统信息集成框架,较好地解决了传统信息集成技术构建的集成系统不易维护,缺乏扩展性,缺乏动态调整性,以及应用范围狭窄等方面的缺陷。
3.基于Web服务的企业应用集成技术
3.1基于Web服务的企业应用集成
Web服务是部署在Web上的软件组件或应用程序,它为其他的用户提供一种特定功能的服务,而且可以在Web上发布,发现和使用。
Web服务实现了一个与平台和语言无关的,松散耦合的系统集成环境,目前,它被认为是实现跨企业信息信息集成的一种新的架构体系,同时,企业应用集成,也是Web服务应用最看好的方向之一。
大多数企业内部都有着各种各样的应用系统,它们是在不同的领导在任期间,由不同的软件开发商开发,运行在不同的平台和系统上,系统的开发语言也各不相同。
由于现代企业信息自动化要求的提高,各个系统之间的互动和相互通讯便提到日程上。
因此,保护原有投资,重用遗留系统是当前很多中大型企业的重要任务。
由于遗留系统的运行平台是异构环境,因此企业应用集成的代价一般来说是很高的。
但如果使用Web服务作为应用集成的手段,将会大大降低集成的消耗。
Web服务与平台和语言无关的特性,以及各种平台和环境下的开发工具都是企业应用集成的利器。
另外,在开发新的应用系统的时候,仍然需要考虑和其他系统的集成,需要考虑调用其他系统的功能,和被其他系统所调用。
使用Web服务作为系统与外部交流的接口,能够使新的系统和别的系统之间保持松耦合的关系,保持较高的可扩展性。
然而,利用Web服务来实现企业应用的集成,首先最关键的一点是解决Web服务的动态组合问题。
Web服务动态组合已经成为学术界和工业界研究的热点问题,问题的关键是如何实现Web服务自动的,动态的,可靠的组合。
目前已有好几个业界标准来提供Web服务的互操作的基础架构,包括SOAP,WSDL和UDDI,它们提供服务的调用,描述、发布和发现基础架构。
在此之上的其他规范,如XLANG和WSFL,支持服务间的互操作。
XLANG是由微软提出的能根据一个服务所支持的对话来描述一个服务的行为。
WSFL是由IBM提出的基于工作流的符号来描述服务合成的语言。
在WSFL中,服务提供者〈ServiceProvider〉标签内嵌入了可选的服务定位标签〈locator〉,提供了从UDDI注册仓中动态选择服务的功能,但是并没有提供服务提供者动态替换的功能。
最新推出的工业界规范BPEL4WS是由Microsoft、IBM和BEA联合制定的,结合了WS2DL和XLANG这两个规范的优点,提供了描述商业过程的定义语言,但是很复杂,而且只支持静态绑定已有的服务,并且把过程和服务间的绑定作为一个已知条件。
目前已有的规范及服务合成定义语言尽管已经能够实现Web服务的组合,但它们在实现服务的动态组合方面仍然存在一些缺陷,比如如何根据需要在大量的Web服务中选择最佳的服务来进行合成,如何选择Web服务的最佳组合方式,以及如何保证Web服务组合的健壮性,即当Web服务组合中的一个特定Web服务失效时,能够使用相同功能的Web服务来动态替换发生错误的Web服务,避免整个Web服务组合的执行失败。
3.2利用Web服务进行企业应用集成的长处
3.2.1跨防火墙的通信
如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。
因为客户端和服务器之间通常会有防火墙或者代理服务器。
在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。
传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。
这样做的结果是开发难度大,程序很难维护。
从经验来看,在一个用户界面和中间层有较多交互的应用程序中,使用WebService这种结构,可以节省花在用户界面编程上20%的开发时间。
另外,这样一个由WebService组成的中间层,完全可以在应用程序集成或其它场合下重用。
最后,通过WebService把应用程序的逻辑和数据“暴露”出来,还可以让其它平台上的客户重用这些应用程序。
3.2.2应用程序集成
企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。
应用程序经常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。
即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。
通过WebService,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。
例如,有一个订单登录程序,用于登录从客户来的新订单,包括客户信息、发货地址、数量、价格和付款方式等内容;还有一个订单执行程序,用于实际货物发送的管理。
这两个程序来自不同软件厂商。
一份新订单进来之后,订单登录程序需要通知订单执行程序发送货物。
通过在订单执行程序上面增加一层WebService,订单执行程序可以把“AddOrder”函数“暴露”出来。
这样,每当有新订单到来时,订单登录程序就可以调用这个函数来发送货物了。
3.2.3B2B的集成
用WebService集成应用程序,可以使公司内部的商务处理更加自动化。
但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?
跨公司的商务交易集成通常叫做B2B集成。
WebService是B2B集成成功的关键。
通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。
例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。
当然,这并不是一个新的概念,EDI(电子文档交换)早就是这样了。
但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet上,在世界任何地方都可轻易实现,其运行成本就相对较低。
不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。
WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。
用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性。
只要把商务逻辑“暴露”出来,成为WebService,就可以让任何指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。
这样就大大减少了花在B2B集成上的时间和成本,让许多原本无法承受EDI的中小企业也能实现B2B集成。
3.2.4软件和数据重用
软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。
最基本的形式是源代码模块或者类一级的重用,另一种形式是二进制形式的组件重用。
WebService在允许重用代码的同时,可以重用代码背后的数据。
使用WebService,再也不必像以前那样,要先从第三方购买、安装软件组件,再从应用程序中调用这些组件;只需要直接调用远端的WebService就可以了。
举个例子,要在应用程序中确认用户输入的地址,只需把这个地址直接发送给相应的WebService,这个WebService就会帮你查阅街道地址、城市、省区和邮政编码等信息,确认这个地址是否在相应的邮政编码区域。
WebService的提供商可以按时间或使用次数来对这项服务进行收费。
这样的服务要通过组件重用来实现是不可能的,那样的话你必须下载并安装好包含街道地址、城市、省区和邮政编码等信息的数据库,而且这个数据库还是不能实时更新的。
另一种软件重用的情况是,把好几个应用程序的功能集成起来。
例如,要建立一个局域网上的门户站点应用,让用户既可以查询联邦快递包裹,查看股市行情,又可以管理自己的日程安排,还可以在线购买电影票。
现在Web上有很多应用程序供应商,都在其应用中实现了这些功能。
一旦他们把这些功能都通过WebService“暴露”出来,就可以非常容易地把所有这些功能都集成到你的门户站点中,为用户提供一个统一的、友好的界面。
将来,许多应用程序都会利用WebService,把当前基于组件的应用程序结构扩展为组件/WebService的混合结构,可以在应用程序中使用第三方的WebService提供的功能,也可以把自己的应用程序功能通过WebService提供给别人。
两种情况下,都可以重用代码和代码背后的数据。
4.流程工业遗留系统信息集成框架
4.1流程工业遗留系统信息集成的基本要求
考虑到流程工业遗留系统自身的特点,实现流程工业遗留系统信息集成会受到多方面的限制,在实现技术方面应该满足以下基本要求:
①流程工业遗留系统的信息集成应该是遗留系统具体应用的集成,应支持业务正常运转所需信息的正常交互,而不是遗留系统简单的互连及简单的信息交换[5]。
②集成应该是动态的,能根据企业经营策略及流程工业生产流程的变化来及时调整集成方式。
③应充分考虑流程工业对安全稳定运行的要求,保证遗留子系统在集成后仍能保持单独运行时的安全稳定性。
④流程工业遗留系统的信息集成应该是对原有遗留子系统功能的扩展和延伸,不应该推倒遗留子系统原有的所有功能。
4.2流程工业遗留系统信息集成框架
基于流程工业遗留系统信息集成的特殊要求,我们考虑将遗留系统中需要暴露出来的功能另外包装成Web服务,这样遗留系统间既可以通过Web服务进行信息交互,同时也保证了遗留系统的功能,安全稳定性不受影响。
图1给出了基于Web服务的流程工业遗留系统信息集成框架。
图1基于Web服务的流程工业遗留系统信息集成框架
当一个用户访问集成系统时,流程如下:
(1)用户从客户端向ApplicationServer发送请求,要求执行某项Web服务。
(2)ApplicationServer接到请求后,立即到UDDI注册中心查找符合用户要求的Web服务。
(3)UDDI注册中心向ApplicationServer返回符合用户需求的Web服务的相关信息(包括Web服务访问位置及WSDL绑定信息)。
(4)ApplicationService得到返回信息后,生成Web服务代理,并绑定到相应的Web服务上。
(5)ApplicationService调用Web服务并将处理结果返回给用户。
在这个流程中,各遗留系统及新开发系统间的协作和调用都是通过Web服务来实现的,各遗留系统及新开发的系统担当了服务提供者的角色。
WebServiceWrapper[6]实现了对流程工业遗留系统的封装,隐藏了它们的复杂实现,同时也保证了它们的功能不受影响。
4.3集成框架的特点
(1)通过SOAP来实现信息的传递。
SOAP利用XML语言来描述系统间的交互信息,同时使用HTTP,SMTP作为传输协议,从而使遗留系统的跨平台集成成为可能。
(2)Web服务提供完全的封装性,实现遗留系统功能的完整封装,而且不影响其安全稳定性。
(3)可以根据企业集成策略的变化来重新集成各遗留子系统,从而保证了集成的动态性。
(4)传统的系统集成多采用点对点(Point-to-Point)的整合方法,基于Web服务技术,可以实现遗留系统的多入口集成,这些保证了集成策略的灵活性。
4.4关键技术
实现基于Web服务的流程工业遗留系统的信息集成,涉及到众多的技术规范,其中包括:
(1)SOAP(简单对象访问协议)
SOAP是一种基于XML的不依赖于传输协议的表示层协议,用来在应用程序之间方便地以对象的形式交换数据。
SOAP规范主要有SOAP信封,编码规则,RPC表示三部分组成。
众多系统平台都支持SOAP协议[7],SOAP协议是为了解决由于用传统方式提供Web服务所产生的问题而提出的。
它有助于实现大量异构程序和平台之间的互操作。
基于SOAP自身的特点,使用SOAP来完成不同系统之间的信息交互,使实现流程工业遗留系统的跨平台信息集成变得更加容易。
(2)UDDI(UniversalDescription,DiscoveryandIntegration,统一描述,发现和集成)
UDDI是由Ariba和Microsoft提出的一种Web服务的发现技术,它提供一种机制让企业发布Web服务,并让客户能定位他们所提供的Web服务。
UDDI的核心信息模型是由XMLSchema定义的。
在本文提出的基于Web服务的流程工业系统的信息集成技术中,我们把要集成的流程工业遗留子系统转换为相关的Web服务,并在UDDI注册中心进行注册,这样当客户需要访问某个Web服务时,它就会到UDDI注册中心查找相应的服务,而UDDI注册中心会提供相关方法来实现Web服务的快速查找,并及时向客户反馈关于所需Web服务的相关信息。
(3)WSDL(WebServiceDescriptionLanguage,Web服务描述语言)
WSDL是一种基于XML的语言,用于描述Web服务及其函数,参数和返回值。
在本文提出的基于Web服务的信息集成框架中,我们采用WSDL语言来具体描述从流程工业遗留系统中抽象出来的相关服务,描述每个服务对应的具体函数及函数的相关参数值。
4.5实施难点
(1)安全性
流程工业系统对安全性有着极高的要求,因此在实现流程工业遗留系统信息集成的过程中,必须认真考虑如何保证遗留系统在集成平台中的安全性[8]。
目前WebService技术本身并没有提供严格的机制来保证服务本身的安全性,因此在利用Web服务实现流程工业遗留系统的信息集成时,对如何保证流程工业遗留系统在集成环境中的安全性,我们进行了认真的研究,采用了一种利用SOAP消息的指针头传递验证信息的方法,提取调用Web服务的用户的相关信息,再判断其调用Web服务的合法性,拒绝超越用户权限的Web服务调用,较好地保证了Web服务的安全性。
(2)Web服务发现
考虑到对流程工业系统实时性的要求,必须研究这一特定环境下Web服务的高效查找及发现算法,保证客户所需服务的准确,及时的调用。
在本文提出的信息集成框架中,对于每一个通过包装遗留系统而生成的Web服务,我们统一在UDDI注册中心进行登记,记录这些Web服务的相关信息,实现Web服务的集中统一管理,当用户从客户端发送Web服务请求时,首先统一到UDDI注册中心查找,看是否具有满足客户要求的Web服务,如果存在,则生成Web服务的代理供客户调用,如果不存在,则及时向用户传送相关反馈信息。
(3)Web服务间交互信息的特殊处理
数据量大是流程工业遗留系统的一个共同特点,同时本文提出的信息集成框架是一个分布式的结构,涉及到运行于不同地方计算机上的众多遗留系统。
为了实现不同系统间信息的实时交互,有必要对系统间交互的信息进行压缩,以缩短交互数据的传输时间。
在本文提出的信息集成框架中,我们
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Web 服务 流程 工业 遗留 系统 信息 集成
![提示](https://static.bingdoc.com/images/bang_tan.gif)