李衛(wèi)明
(中國石油燃料油有限責(zé)任公司 華中銷售分公司,湖北 武漢 430014)
隨著企業(yè)的信息化開展,許多企業(yè)已經(jīng)開發(fā)了客戶機(jī)/服務(wù)器(C/S)和瀏覽器/服務(wù)器(B/S)應(yīng)用程序。隨著企業(yè)應(yīng)用的逐步完善,迫切需要將這些應(yīng)用系統(tǒng)進(jìn)行信息系統(tǒng)集成,以充分發(fā)揮信息系統(tǒng)的整合作用。目前系統(tǒng)集成方式有功能集成、表示集成和數(shù)據(jù)集成3種。企業(yè)中應(yīng)用較多的系統(tǒng)集成方式為數(shù)據(jù)集成和功能集成。隨著Web Service和XML技術(shù)的日益普及和完善,基于Web Service的功能集成已成為一種較好的集成方式。
本文介紹了企業(yè)應(yīng)用集成的必要性,重點(diǎn)介紹了C/S構(gòu)架和B/S構(gòu)架的應(yīng)用,同時(shí)提出了基于數(shù)據(jù)集成和基于Web Service的功能集成的兩種解決方案,并根據(jù)軟件發(fā)展的趨勢(shì)和方案的適應(yīng)情況,推薦采取基于Web Service的面向功能的企業(yè)集成方式。
企業(yè)應(yīng)用集成(EAI)是指在企業(yè)范圍內(nèi),將多個(gè)應(yīng)用系統(tǒng)的過程、軟件、標(biāo)準(zhǔn)和硬件集成起來,使其成為無縫運(yùn)作的整體。與企業(yè)資源規(guī)劃(ERP)的出現(xiàn)和發(fā)展一樣,EAI也是企業(yè)管理思想發(fā)展的結(jié)果[1]。由物料需求規(guī)劃(MRP)發(fā)展到MRPⅡ,ERP,ERPⅡ,這個(gè)過程反應(yīng)了生產(chǎn)企業(yè)中的管理范圍逐步擴(kuò)大,從核心的生產(chǎn)部門擴(kuò)展到物料、財(cái)務(wù)、配送、采購等部門,從員工的出勤信息、工資獎(jiǎng)金的計(jì)算、業(yè)績考核、員工的綜合評(píng)價(jià),擴(kuò)展到企業(yè)管理的方方面面。系統(tǒng)不再是一個(gè)個(gè)獨(dú)立封閉的系統(tǒng),各個(gè)系統(tǒng)的數(shù)據(jù)在EAI環(huán)境中都作為系統(tǒng)的基礎(chǔ)數(shù)據(jù)供應(yīng)用程序調(diào)用和使用。應(yīng)用系統(tǒng)在一個(gè)企業(yè)級(jí)的范圍內(nèi)工作,大大提高了企業(yè)的工作效率。在管理范圍擴(kuò)大的同時(shí),信息技術(shù)所運(yùn)用的層次也在不斷地提高。企業(yè)內(nèi)部各個(gè)經(jīng)營環(huán)節(jié)以及企業(yè)與外部鏈接越來越緊密,同時(shí)也影響著企業(yè)內(nèi)部的作業(yè)流程,業(yè)務(wù)信息將在更大范圍內(nèi)流動(dòng)。在這種情況下,企業(yè)的信息系統(tǒng)不再是一個(gè)個(gè)封閉系統(tǒng),而是需要互相信息交流和溝通的整體,這就要求將企業(yè)各個(gè)應(yīng)用系統(tǒng)無縫、高效、聯(lián)動(dòng)地集成到一起,實(shí)現(xiàn)系統(tǒng)集成效益。
EAI包括硬件、體系結(jié)構(gòu)和過程的集成,含有業(yè)務(wù)過程集成、應(yīng)用集成和數(shù)據(jù)集成3個(gè)層次。在進(jìn)行EAI時(shí),必須選擇一個(gè)集成標(biāo)準(zhǔn),常見的集成標(biāo)準(zhǔn)有COM/COM+,CORBA,EDI,Java RMI,XML,Web Service[1]。
1998年,中國石油哈爾濱石化公司(簡稱哈石化)開始建設(shè)信息系統(tǒng),從調(diào)度處的生產(chǎn)日?qǐng)?bào)開始,陸續(xù)開發(fā)了有關(guān)生產(chǎn)、管理、運(yùn)銷、庫存、人事和門戶等信息管理系統(tǒng)。開發(fā)過程逐漸從生產(chǎn)、庫存、財(cái)務(wù)、工資擴(kuò)展到人事、管理、文檔等方面。經(jīng)過6年的開發(fā)建設(shè),逐漸形成了生產(chǎn)、銷售、庫存、人事、綜合等管理系統(tǒng)。生產(chǎn)系統(tǒng)主要包括生產(chǎn)調(diào)度、計(jì)量數(shù)據(jù)、化驗(yàn)分析、成本核算、罐區(qū)計(jì)量等管理系統(tǒng)。各個(gè)系統(tǒng)完成不同的功能。在哈石化開發(fā)的應(yīng)用系統(tǒng)中部分實(shí)現(xiàn)了系統(tǒng)集成,如調(diào)度日?qǐng)?bào)中集成了計(jì)量數(shù)據(jù)的數(shù)據(jù)。但這種數(shù)據(jù)集成的力度非常小,效率低,安全性不好。銷售系統(tǒng)主要包括自備車管理、銷售管理和地付管理等管理系統(tǒng)。庫存系統(tǒng)主要包括供應(yīng)管理系統(tǒng)。人事系統(tǒng)主要包括工資、檔案、公積金、業(yè)績考核和經(jīng)濟(jì)責(zé)任制考核等管理系統(tǒng)。
在剛開始使用應(yīng)用系統(tǒng)時(shí),工作效率確實(shí)提高了很多,但隨應(yīng)用程序的不斷開發(fā),系統(tǒng)之間的數(shù)據(jù)交換成為限制系統(tǒng)使用的瓶頸所在,因此,迫切需要將應(yīng)用系統(tǒng)集成起來,消除應(yīng)用系統(tǒng)之間的封閉情況。
現(xiàn)在的系統(tǒng)開發(fā)存在眾多的后續(xù)問題,其中重要的一條是:各個(gè)分系統(tǒng)建設(shè)的提出,是由于當(dāng)時(shí)生產(chǎn)經(jīng)營的需要臨時(shí)開發(fā)的,所以在各個(gè)系統(tǒng)投用后,各個(gè)系統(tǒng)之間的系統(tǒng)溝通性不好,每個(gè)系統(tǒng)各自成為信息孤島,系統(tǒng)應(yīng)用程序不能將這些有效數(shù)據(jù)進(jìn)行充分整合,形成了大量的數(shù)據(jù)冗余,甚至不知道哪個(gè)系統(tǒng)的數(shù)據(jù)是最終可靠的數(shù)據(jù)。應(yīng)用程序之間的數(shù)據(jù)傳輸只能通過了解應(yīng)用程序的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn),給應(yīng)用程序的系統(tǒng)集成造成極大困難。同時(shí),如果不了解應(yīng)用程序的結(jié)構(gòu),就無法有效地將系統(tǒng)充分地集成起來,無法提供更高的信息技術(shù)服務(wù)。
由于防火墻的作用,公司員工無法在石油網(wǎng)內(nèi)使用應(yīng)用系統(tǒng),給系統(tǒng)的應(yīng)用造成嚴(yán)重影響。而Web Service技術(shù)是基于WWW服務(wù)方式的服務(wù),防火墻默認(rèn)通過對(duì)WWW服務(wù)的訪問,這樣可在石油網(wǎng)內(nèi)進(jìn)行應(yīng)用系統(tǒng)的應(yīng)用。
哈石化開發(fā)的程序主要包括以PB開發(fā)為主的C/S應(yīng)用程序和以ASP/ASPNET開發(fā)為主的B/S應(yīng)用程序。如何在后面的系統(tǒng)集成中將原有的C/S應(yīng)用程序和B/S應(yīng)用程序集成到系統(tǒng)中,可以通過Web Service服務(wù)來實(shí)現(xiàn)。
C/S架構(gòu)是基于資源的不對(duì)等、且為實(shí)現(xiàn)共享而提出來的,于20世紀(jì)90年代開發(fā)成熟。C/S架構(gòu)由數(shù)據(jù)庫服務(wù)器、客戶應(yīng)用程序和網(wǎng)絡(luò)3個(gè)主要部分組成。
C/S架構(gòu)的應(yīng)用分為兩個(gè)部分:一部分在服務(wù)器端運(yùn)行,另一部分在客戶端應(yīng)用程序運(yùn)行。服務(wù)器端一般為數(shù)據(jù)庫服務(wù)器,用于存儲(chǔ)系統(tǒng)的數(shù)據(jù)并進(jìn)行數(shù)據(jù)管理。這部分通常由DBMS實(shí)現(xiàn)。客戶機(jī)完成自身與用戶的交互任務(wù)。服務(wù)器為多個(gè)客戶應(yīng)用程序管理數(shù)據(jù)??蛻舫绦蛳蚍?wù)器端發(fā)送、請(qǐng)求和分析從服務(wù)器接收的數(shù)據(jù)。
C/S架構(gòu)系統(tǒng)包括傳統(tǒng)的二層結(jié)構(gòu)、三層結(jié)構(gòu)和多層結(jié)構(gòu)。哈石化現(xiàn)有的絕大部分軟件都是基于C/S架構(gòu)的二層結(jié)構(gòu)應(yīng)用系統(tǒng)。二層結(jié)構(gòu)C/S架構(gòu)軟件系統(tǒng)中的二層結(jié)構(gòu)是單一服務(wù)器,以局域網(wǎng)為中心,難以擴(kuò)展到特大型企業(yè)廣域網(wǎng)或Internet;軟硬件的組合和集成能力有限,系統(tǒng)的可擴(kuò)展性差,如果一臺(tái)服務(wù)器出現(xiàn)性能差,只能通過更新服務(wù)或網(wǎng)絡(luò)性能來實(shí)現(xiàn);數(shù)據(jù)的安全性不好,客戶端程序直接訪問數(shù)據(jù)庫服務(wù)器,使數(shù)據(jù)庫的安全性受到威脅。
三層結(jié)構(gòu)C/S架構(gòu)解決了二層結(jié)構(gòu)C/S架構(gòu)存在的上述問題。三層結(jié)構(gòu)C/S架構(gòu)中,增加了一個(gè)應(yīng)用服務(wù)器,應(yīng)用程序的業(yè)務(wù)邏輯駐留在該應(yīng)用服務(wù)器上,在客戶端只是將業(yè)務(wù)邏輯返回的數(shù)據(jù)按照客戶的要求表示給客戶端,這樣不僅減少了客戶端應(yīng)用的性能要求,同時(shí)由于業(yè)務(wù)邏輯駐留在應(yīng)用服務(wù)器上,因此更改業(yè)務(wù)邏輯時(shí)不需再對(duì)客戶端應(yīng)用系統(tǒng)進(jìn)行更新。此外,應(yīng)用程序通過業(yè)務(wù)邏輯層訪問數(shù)據(jù)庫,增加了數(shù)據(jù)庫的安全性。在系統(tǒng)性能下降時(shí),可通過增加應(yīng)用服務(wù)器來擴(kuò)展系統(tǒng)性能。
C/S架構(gòu)軟件的缺點(diǎn)是對(duì)于應(yīng)用較廣泛的系統(tǒng),在軟件進(jìn)行更新后,必須將所有的應(yīng)用客戶端應(yīng)用程序進(jìn)行更新,同時(shí)客戶端的計(jì)算機(jī)必須安裝應(yīng)用程序需要的支持軟件,如用PB開發(fā)的Oracle數(shù)據(jù)庫程序,需要安裝Oracle客戶端來訪問數(shù)據(jù)庫,還需要安裝PB運(yùn)行時(shí)的鏈接庫以支持PB應(yīng)用程序的運(yùn)行等。如果在廣域網(wǎng)范圍內(nèi),由于防火墻的限制,無法通過廣域網(wǎng)訪問信息系統(tǒng)。
B/S架構(gòu)是三層應(yīng)用程序結(jié)構(gòu)的一種實(shí)現(xiàn)方式,其具體的結(jié)構(gòu)為瀏覽器/WWW服務(wù)器/數(shù)據(jù)庫服務(wù)器。B/S架構(gòu)軟件系統(tǒng)是一種以WWW服務(wù)器為應(yīng)用服務(wù)器、結(jié)合瀏覽器的腳本技術(shù)、通過通用的瀏覽器來實(shí)現(xiàn)的軟件系統(tǒng)。從某種程度上來說,B/S架構(gòu)是一種全新的軟件架構(gòu)。
在B/S架構(gòu)中,應(yīng)用程序以文件的方式保存在WWW服務(wù)器中,不同的WWW服務(wù)器支持不同的腳本語言。在企業(yè)級(jí)的開發(fā)中,有SUN公司引導(dǎo)的J2EE架構(gòu)和微軟公司提供的DotNet解決方案。哈石化由于廣泛采用Windows操作系統(tǒng),因此選擇了DotNet解決方案。
在DotNet解決方案中,利用微軟公司的ⅡS作為WWW服務(wù)器,安裝DotNet FrameWork,在服務(wù)器端提供VB,C#,J#,C++等語言支持,利用微軟公司的集成開發(fā)環(huán)境Visual Studio 2003實(shí)現(xiàn)了B/S應(yīng)用程序的開發(fā)。
Web Service技術(shù)是解決應(yīng)用程序之間相互通信的一項(xiàng)技術(shù)。嚴(yán)格地說,Web Service是描述一系列操作的接口[2]。如果熟悉Windows開發(fā)程序,就可以通過直接調(diào)用系統(tǒng),或調(diào)用自己開發(fā)的DLL動(dòng)態(tài)鏈接庫來調(diào)用系統(tǒng),或調(diào)用軟件編程者開發(fā)的函數(shù)來協(xié)助應(yīng)用程序的開發(fā)。哈石化現(xiàn)在可在WWW服務(wù)器端開發(fā)Web Service服務(wù),是應(yīng)用程序通過網(wǎng)絡(luò),特別是通過WWW服務(wù)來調(diào)用該Web Service提供的方法和服務(wù)。Web Service技術(shù)使用標(biāo)準(zhǔn)的、規(guī)范的XML描述接口。該描述包括與服務(wù)交互所需的全部細(xì)節(jié)(消息格式、傳輸協(xié)議和服務(wù)位置)。而對(duì)外的接口則隱藏了服務(wù)實(shí)現(xiàn)的細(xì)節(jié),僅提供一系列可執(zhí)行的操作。
XML在Web Service中有著非常重要的應(yīng)用,它將形態(tài)各異的數(shù)據(jù)結(jié)構(gòu)、程序接口等有效地結(jié)合起來。在使用DotNet架構(gòu)的開發(fā)環(huán)境中,系統(tǒng)可通過DataSet將系統(tǒng)內(nèi)數(shù)據(jù)表的內(nèi)容按照XML格式進(jìn)行數(shù)據(jù)傳輸。XML具有嚴(yán)密的數(shù)據(jù)格式和靈活的表現(xiàn)方式,便于數(shù)據(jù)傳輸、轉(zhuǎn)換和表現(xiàn)。在使用XML時(shí),需要了解SOAP,UDDI,WSDL協(xié)議,而這些協(xié)議在DotNet中都進(jìn)行了完善的封裝。
數(shù)據(jù)集成(見圖1)是跳過界面和業(yè)務(wù)邏輯界面,直接從應(yīng)用軟件的數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu)開始進(jìn)行集成。這種集成方式需要系統(tǒng)集成商或開發(fā)人員對(duì)所有需要集成的應(yīng)用系統(tǒng)的數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu)有深入的了解,且對(duì)每一個(gè)系統(tǒng)的業(yè)務(wù)流程都非常熟悉。
基于數(shù)據(jù)集成的系統(tǒng)集成的優(yōu)勢(shì)為:1)由于直接訪問系統(tǒng)數(shù)據(jù),對(duì)于深入了解該系統(tǒng)的人員來說,可提高數(shù)據(jù)訪問的靈活性。2)可直接訪問系統(tǒng)數(shù)據(jù),避免了中間層的性能消耗,可提高系統(tǒng)的效率。
基于數(shù)據(jù)集成的系統(tǒng)集成的劣勢(shì)為:1)必須深入了解每個(gè)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),只有這樣才能真正進(jìn)行數(shù)據(jù)集成;對(duì)于一個(gè)較大和復(fù)雜的系統(tǒng),增加了系統(tǒng)集成的難度。2)必須了解各個(gè)系統(tǒng)的業(yè)務(wù)流程,這樣在系統(tǒng)集成后,才能實(shí)現(xiàn)系統(tǒng)功能;對(duì)于已有的系統(tǒng)功能必須重新開發(fā),加大了開發(fā)工作量。3)不同系統(tǒng)集成之間代碼的可重復(fù)使用概率降低,系統(tǒng)的擴(kuò)展性不好。4)系統(tǒng)的開發(fā)還是基于C/S架構(gòu),無法將其應(yīng)用擴(kuò)展到廣域網(wǎng)或Intranet和Internet。
功能集成是在業(yè)務(wù)邏輯上進(jìn)行的集成。功能集成的集成點(diǎn)存在于程序代碼中,集成只需使用公開的調(diào)用服務(wù)就可完成訪問。這樣系統(tǒng)可根據(jù)需求在系統(tǒng)中集成不同的應(yīng)用系統(tǒng),且只要在后開發(fā)的應(yīng)用系統(tǒng)中建立相同的功能模塊,就可在集成程序中添加新功能。相對(duì)于數(shù)據(jù)集成,功能集成的靈活性更好,且與集成部分無關(guān)。在開發(fā)系統(tǒng)應(yīng)用時(shí),功能集成不必考慮系統(tǒng)如何集成,系統(tǒng)只要提供相應(yīng)的業(yè)務(wù)邏輯功能服務(wù)即可。基于功能的集成通??刹捎眠h(yuǎn)過程調(diào)用、面向消息的中間件、分布式對(duì)象、事務(wù)處理監(jiān)控器等方法。隨著Web Service技術(shù)的廣泛應(yīng)用,也可采用基于XML的Web Service來進(jìn)行企業(yè)應(yīng)用集成。同時(shí),Web Service和XML現(xiàn)已成為工業(yè)標(biāo)準(zhǔn),完全可以跨平臺(tái)開發(fā)和實(shí)現(xiàn)系統(tǒng)的向前兼容。
基于Web Service的功能集成(見圖2)方式,中間層位于WWW服務(wù)器上,這樣在廣域網(wǎng)、Intranet甚至Internet可以通過TCP/IP的WWW服務(wù)端口來實(shí)現(xiàn)對(duì)局域網(wǎng)內(nèi)服務(wù)的訪問,實(shí)現(xiàn)企業(yè)集成應(yīng)用的跨防火墻訪問。
圖1 基于數(shù)據(jù)的集成方式Fig.1 Data-oriented integration way.
圖2 基于Web Service的功能集成方式Fig.2 Data-oriented integration way based on Web Service.
哈石化現(xiàn)有的開發(fā)環(huán)境為PowerBuilder環(huán)境和DotNet環(huán)境。DotNet環(huán)境自動(dòng)提供對(duì)Web Service的支持,而PowerBuilder環(huán)境也在9.0后支持了Web Service的調(diào)用。在ⅡS上建立基于FrameWork的DotNet Web服務(wù)器,可建立以PB為工具開發(fā)的C/S架構(gòu)的系統(tǒng)集成,也可使用Visual Studio建立基于C/S或B/S的企業(yè)系統(tǒng)集成應(yīng)用。
基于Web Service的功能集成方案的具體思路為:
1)對(duì)哈石化的基礎(chǔ)數(shù)據(jù)進(jìn)行抽取和優(yōu)化,對(duì)基礎(chǔ)性數(shù)據(jù)進(jìn)行統(tǒng)一管理。在Web Server上提供Web Service不同的基礎(chǔ)數(shù)據(jù)的服務(wù)工作,可減少數(shù)據(jù)的冗余,保證數(shù)據(jù)一致性,同時(shí)為系統(tǒng)集成提供基礎(chǔ)數(shù)據(jù)支持。
2)如果對(duì)現(xiàn)有的所有軟件進(jìn)行重新編碼開發(fā),工作量極大且不現(xiàn)實(shí),可為各個(gè)系統(tǒng)建立相應(yīng)的Web Service,提供該系統(tǒng)能夠提供的數(shù)據(jù)支持。
將基于數(shù)據(jù)的集成方式和基于Web Service的功能集成方式進(jìn)行對(duì)比,對(duì)比結(jié)果見表1。由表1可見,基于數(shù)據(jù)集成的應(yīng)用在系統(tǒng)性能上強(qiáng)于基于Web Service功能集成的應(yīng)用。但在企業(yè)系統(tǒng)集成的方式、系統(tǒng)建立的復(fù)雜度、系統(tǒng)的可擴(kuò)展性、系統(tǒng)的向前兼容型、系統(tǒng)架構(gòu)和系統(tǒng)的安全性等方面,基于XML的Web Service的功能集成方式更適合于企業(yè)的系統(tǒng)集成方案。特別是在XML和Web Service成為工業(yè)標(biāo)準(zhǔn)的前提下,基于Web Service的企業(yè)應(yīng)用集成在企業(yè)未來的應(yīng)用系統(tǒng)集成和開發(fā)的靈活性方面,更具有競(jìng)爭(zhēng)優(yōu)勢(shì)。
表1 兩種集成方式的對(duì)比Table 1 Comparison between the two integration ways
在網(wǎng)絡(luò)信息和經(jīng)濟(jì)一體化的今天,企業(yè)內(nèi)部各經(jīng)營環(huán)節(jié)以及企業(yè)與外部連接日益緊密,企業(yè)應(yīng)用集成將企業(yè)的應(yīng)用系統(tǒng)整合起來。目前可以采用的企業(yè)應(yīng)用集成方式有基于數(shù)據(jù)集成和基于Web Service的功能集成兩種方式。考慮到系統(tǒng)開發(fā)的多層體系的發(fā)展方向和Web Service的日益完善和優(yōu)勢(shì),建議在開發(fā)中采用基于Web Service的面向功能的企業(yè)集成方式。
[1] 張友生,徐峰. 系統(tǒng)分析師技術(shù)指南[M]. 北京:清華大學(xué)出版社,2004:15 - 18.
[2] 齊治昌,譚慶平,寧洪. 軟件工程[M]. 北京:高等教育出版社,1997:2 - 5.