基于Web Service实现企业应用集成
2013-11-05李卫明
李卫明
(中国石油燃料油有限责任公司 华中销售分公司,湖北 武汉 430014)
随着企业的信息化开展,许多企业已经开发了客户机/服务器(C/S)和浏览器/服务器(B/S)应用程序。随着企业应用的逐步完善,迫切需要将这些应用系统进行信息系统集成,以充分发挥信息系统的整合作用。目前系统集成方式有功能集成、表示集成和数据集成3种。企业中应用较多的系统集成方式为数据集成和功能集成。随着Web Service和XML技术的日益普及和完善,基于Web Service的功能集成已成为一种较好的集成方式。
本文介绍了企业应用集成的必要性,重点介绍了C/S构架和B/S构架的应用,同时提出了基于数据集成和基于Web Service的功能集成的两种解决方案,并根据软件发展的趋势和方案的适应情况,推荐采取基于Web Service的面向功能的企业集成方式。
1 企业应用集成的必要性
企业应用集成(EAI)是指在企业范围内,将多个应用系统的过程、软件、标准和硬件集成起来,使其成为无缝运作的整体。与企业资源规划(ERP)的出现和发展一样,EAI也是企业管理思想发展的结果[1]。由物料需求规划(MRP)发展到MRPⅡ,ERP,ERPⅡ,这个过程反应了生产企业中的管理范围逐步扩大,从核心的生产部门扩展到物料、财务、配送、采购等部门,从员工的出勤信息、工资奖金的计算、业绩考核、员工的综合评价,扩展到企业管理的方方面面。系统不再是一个个独立封闭的系统,各个系统的数据在EAI环境中都作为系统的基础数据供应用程序调用和使用。应用系统在一个企业级的范围内工作,大大提高了企业的工作效率。在管理范围扩大的同时,信息技术所运用的层次也在不断地提高。企业内部各个经营环节以及企业与外部链接越来越紧密,同时也影响着企业内部的作业流程,业务信息将在更大范围内流动。在这种情况下,企业的信息系统不再是一个个封闭系统,而是需要互相信息交流和沟通的整体,这就要求将企业各个应用系统无缝、高效、联动地集成到一起,实现系统集成效益。
EAI包括硬件、体系结构和过程的集成,含有业务过程集成、应用集成和数据集成3个层次。在进行EAI时,必须选择一个集成标准,常见的集成标准有COM/COM+,CORBA,EDI,Java RMI,XML,Web Service[1]。
1998年,中国石油哈尔滨石化公司(简称哈石化)开始建设信息系统,从调度处的生产日报开始,陆续开发了有关生产、管理、运销、库存、人事和门户等信息管理系统。开发过程逐渐从生产、库存、财务、工资扩展到人事、管理、文档等方面。经过6年的开发建设,逐渐形成了生产、销售、库存、人事、综合等管理系统。生产系统主要包括生产调度、计量数据、化验分析、成本核算、罐区计量等管理系统。各个系统完成不同的功能。在哈石化开发的应用系统中部分实现了系统集成,如调度日报中集成了计量数据的数据。但这种数据集成的力度非常小,效率低,安全性不好。销售系统主要包括自备车管理、销售管理和地付管理等管理系统。库存系统主要包括供应管理系统。人事系统主要包括工资、档案、公积金、业绩考核和经济责任制考核等管理系统。
在刚开始使用应用系统时,工作效率确实提高了很多,但随应用程序的不断开发,系统之间的数据交换成为限制系统使用的瓶颈所在,因此,迫切需要将应用系统集成起来,消除应用系统之间的封闭情况。
现在的系统开发存在众多的后续问题,其中重要的一条是:各个分系统建设的提出,是由于当时生产经营的需要临时开发的,所以在各个系统投用后,各个系统之间的系统沟通性不好,每个系统各自成为信息孤岛,系统应用程序不能将这些有效数据进行充分整合,形成了大量的数据冗余,甚至不知道哪个系统的数据是最终可靠的数据。应用程序之间的数据传输只能通过了解应用程序的数据结构来实现,给应用程序的系统集成造成极大困难。同时,如果不了解应用程序的结构,就无法有效地将系统充分地集成起来,无法提供更高的信息技术服务。
由于防火墙的作用,公司员工无法在石油网内使用应用系统,给系统的应用造成严重影响。而Web Service技术是基于WWW服务方式的服务,防火墙默认通过对WWW服务的访问,这样可在石油网内进行应用系统的应用。
哈石化开发的程序主要包括以PB开发为主的C/S应用程序和以ASP/ASPNET开发为主的B/S应用程序。如何在后面的系统集成中将原有的C/S应用程序和B/S应用程序集成到系统中,可以通过Web Service服务来实现。
2 C/S架构的应用情况
C/S架构是基于资源的不对等、且为实现共享而提出来的,于20世纪90年代开发成熟。C/S架构由数据库服务器、客户应用程序和网络3个主要部分组成。
C/S架构的应用分为两个部分:一部分在服务器端运行,另一部分在客户端应用程序运行。服务器端一般为数据库服务器,用于存储系统的数据并进行数据管理。这部分通常由DBMS实现。客户机完成自身与用户的交互任务。服务器为多个客户应用程序管理数据。客户程序向服务器端发送、请求和分析从服务器接收的数据。
C/S架构系统包括传统的二层结构、三层结构和多层结构。哈石化现有的绝大部分软件都是基于C/S架构的二层结构应用系统。二层结构C/S架构软件系统中的二层结构是单一服务器,以局域网为中心,难以扩展到特大型企业广域网或Internet;软硬件的组合和集成能力有限,系统的可扩展性差,如果一台服务器出现性能差,只能通过更新服务或网络性能来实现;数据的安全性不好,客户端程序直接访问数据库服务器,使数据库的安全性受到威胁。
三层结构C/S架构解决了二层结构C/S架构存在的上述问题。三层结构C/S架构中,增加了一个应用服务器,应用程序的业务逻辑驻留在该应用服务器上,在客户端只是将业务逻辑返回的数据按照客户的要求表示给客户端,这样不仅减少了客户端应用的性能要求,同时由于业务逻辑驻留在应用服务器上,因此更改业务逻辑时不需再对客户端应用系统进行更新。此外,应用程序通过业务逻辑层访问数据库,增加了数据库的安全性。在系统性能下降时,可通过增加应用服务器来扩展系统性能。
C/S架构软件的缺点是对于应用较广泛的系统,在软件进行更新后,必须将所有的应用客户端应用程序进行更新,同时客户端的计算机必须安装应用程序需要的支持软件,如用PB开发的Oracle数据库程序,需要安装Oracle客户端来访问数据库,还需要安装PB运行时的链接库以支持PB应用程序的运行等。如果在广域网范围内,由于防火墙的限制,无法通过广域网访问信息系统。
3 B/S架构的应用
B/S架构是三层应用程序结构的一种实现方式,其具体的结构为浏览器/WWW服务器/数据库服务器。B/S架构软件系统是一种以WWW服务器为应用服务器、结合浏览器的脚本技术、通过通用的浏览器来实现的软件系统。从某种程度上来说,B/S架构是一种全新的软件架构。
在B/S架构中,应用程序以文件的方式保存在WWW服务器中,不同的WWW服务器支持不同的脚本语言。在企业级的开发中,有SUN公司引导的J2EE架构和微软公司提供的DotNet解决方案。哈石化由于广泛采用Windows操作系统,因此选择了DotNet解决方案。
在DotNet解决方案中,利用微软公司的ⅡS作为WWW服务器,安装DotNet FrameWork,在服务器端提供VB,C#,J#,C++等语言支持,利用微软公司的集成开发环境Visual Studio 2003实现了B/S应用程序的开发。
4 Web Service技术的提出和应用
Web Service技术是解决应用程序之间相互通信的一项技术。严格地说,Web Service是描述一系列操作的接口[2]。如果熟悉Windows开发程序,就可以通过直接调用系统,或调用自己开发的DLL动态链接库来调用系统,或调用软件编程者开发的函数来协助应用程序的开发。哈石化现在可在WWW服务器端开发Web Service服务,是应用程序通过网络,特别是通过WWW服务来调用该Web Service提供的方法和服务。Web Service技术使用标准的、规范的XML描述接口。该描述包括与服务交互所需的全部细节(消息格式、传输协议和服务位置)。而对外的接口则隐藏了服务实现的细节,仅提供一系列可执行的操作。
XML在Web Service中有着非常重要的应用,它将形态各异的数据结构、程序接口等有效地结合起来。在使用DotNet架构的开发环境中,系统可通过DataSet将系统内数据表的内容按照XML格式进行数据传输。XML具有严密的数据格式和灵活的表现方式,便于数据传输、转换和表现。在使用XML时,需要了解SOAP,UDDI,WSDL协议,而这些协议在DotNet中都进行了完善的封装。
5 哈石化软件集成的解决方案
5.1 基于数据集成的方案
数据集成(见图1)是跳过界面和业务逻辑界面,直接从应用软件的数据库或数据结构开始进行集成。这种集成方式需要系统集成商或开发人员对所有需要集成的应用系统的数据库和数据结构有深入的了解,且对每一个系统的业务流程都非常熟悉。
基于数据集成的系统集成的优势为:1)由于直接访问系统数据,对于深入了解该系统的人员来说,可提高数据访问的灵活性。2)可直接访问系统数据,避免了中间层的性能消耗,可提高系统的效率。
基于数据集成的系统集成的劣势为:1)必须深入了解每个系统的数据结构,只有这样才能真正进行数据集成;对于一个较大和复杂的系统,增加了系统集成的难度。2)必须了解各个系统的业务流程,这样在系统集成后,才能实现系统功能;对于已有的系统功能必须重新开发,加大了开发工作量。3)不同系统集成之间代码的可重复使用概率降低,系统的扩展性不好。4)系统的开发还是基于C/S架构,无法将其应用扩展到广域网或Intranet和Internet。
5.2 基于Web Service的功能集成方案
功能集成是在业务逻辑上进行的集成。功能集成的集成点存在于程序代码中,集成只需使用公开的调用服务就可完成访问。这样系统可根据需求在系统中集成不同的应用系统,且只要在后开发的应用系统中建立相同的功能模块,就可在集成程序中添加新功能。相对于数据集成,功能集成的灵活性更好,且与集成部分无关。在开发系统应用时,功能集成不必考虑系统如何集成,系统只要提供相应的业务逻辑功能服务即可。基于功能的集成通常可采用远过程调用、面向消息的中间件、分布式对象、事务处理监控器等方法。随着Web Service技术的广泛应用,也可采用基于XML的Web Service来进行企业应用集成。同时,Web Service和XML现已成为工业标准,完全可以跨平台开发和实现系统的向前兼容。
基于Web Service的功能集成(见图2)方式,中间层位于WWW服务器上,这样在广域网、Intranet甚至Internet可以通过TCP/IP的WWW服务端口来实现对局域网内服务的访问,实现企业集成应用的跨防火墙访问。
图1 基于数据的集成方式Fig.1 Data-oriented integration way.
图2 基于Web Service的功能集成方式Fig.2 Data-oriented integration way based on Web Service.
哈石化现有的开发环境为PowerBuilder环境和DotNet环境。DotNet环境自动提供对Web Service的支持,而PowerBuilder环境也在9.0后支持了Web Service的调用。在ⅡS上建立基于FrameWork的DotNet Web服务器,可建立以PB为工具开发的C/S架构的系统集成,也可使用Visual Studio建立基于C/S或B/S的企业系统集成应用。
基于Web Service的功能集成方案的具体思路为:
1)对哈石化的基础数据进行抽取和优化,对基础性数据进行统一管理。在Web Server上提供Web Service不同的基础数据的服务工作,可减少数据的冗余,保证数据一致性,同时为系统集成提供基础数据支持。
2)如果对现有的所有软件进行重新编码开发,工作量极大且不现实,可为各个系统建立相应的Web Service,提供该系统能够提供的数据支持。
5.3 两种集成方式的比较
将基于数据的集成方式和基于Web Service的功能集成方式进行对比,对比结果见表1。由表1可见,基于数据集成的应用在系统性能上强于基于Web Service功能集成的应用。但在企业系统集成的方式、系统建立的复杂度、系统的可扩展性、系统的向前兼容型、系统架构和系统的安全性等方面,基于XML的Web Service的功能集成方式更适合于企业的系统集成方案。特别是在XML和Web Service成为工业标准的前提下,基于Web Service的企业应用集成在企业未来的应用系统集成和开发的灵活性方面,更具有竞争优势。
表1 两种集成方式的对比Table 1 Comparison between the two integration ways
6 结语
在网络信息和经济一体化的今天,企业内部各经营环节以及企业与外部连接日益紧密,企业应用集成将企业的应用系统整合起来。目前可以采用的企业应用集成方式有基于数据集成和基于Web Service的功能集成两种方式。考虑到系统开发的多层体系的发展方向和Web Service的日益完善和优势,建议在开发中采用基于Web Service的面向功能的企业集成方式。
[1] 张友生,徐峰. 系统分析师技术指南[M]. 北京:清华大学出版社,2004:15 - 18.
[2] 齐治昌,谭庆平,宁洪. 软件工程[M]. 北京:高等教育出版社,1997:2 - 5.