李衛明
(中國石油燃料油有限責任公司 華中銷售分公司,湖北 武漢 430014)
隨著企業的信息化開展,許多企業已經開發了客戶機/服務器(C/S)和瀏覽器/服務器(B/S)應用程序。隨著企業應用的逐步完善,迫切需要將這些應用系統進行信息系統集成,以充分發揮信息系統的整合作用。目前系統集成方式有功能集成、表示集成和數據集成3種。企業中應用較多的系統集成方式為數據集成和功能集成。隨著Web Service和XML技術的日益普及和完善,基于Web Service的功能集成已成為一種較好的集成方式。
本文介紹了企業應用集成的必要性,重點介紹了C/S構架和B/S構架的應用,同時提出了基于數據集成和基于Web Service的功能集成的兩種解決方案,并根據軟件發展的趨勢和方案的適應情況,推薦采取基于Web Service的面向功能的企業集成方式。
企業應用集成(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服務來實現。
C/S架構是基于資源的不對等、且為實現共享而提出來的,于20世紀90年代開發成熟。C/S架構由數據庫服務器、客戶應用程序和網絡3個主要部分組成。
C/S架構的應用分為兩個部分:一部分在服務器端運行,另一部分在客戶端應用程序運行。服務器端一般為數據庫服務器,用于存儲系統的數據并進行數據管理。這部分通常由DBMS實現??蛻魴C完成自身與用戶的交互任務。服務器為多個客戶應用程序管理數據??蛻舫绦蛳蚍掌鞫税l送、請求和分析從服務器接收的數據。
C/S架構系統包括傳統的二層結構、三層結構和多層結構。哈石化現有的絕大部分軟件都是基于C/S架構的二層結構應用系統。二層結構C/S架構軟件系統中的二層結構是單一服務器,以局域網為中心,難以擴展到特大型企業廣域網或Internet;軟硬件的組合和集成能力有限,系統的可擴展性差,如果一臺服務器出現性能差,只能通過更新服務或網絡性能來實現;數據的安全性不好,客戶端程序直接訪問數據庫服務器,使數據庫的安全性受到威脅。
三層結構C/S架構解決了二層結構C/S架構存在的上述問題。三層結構C/S架構中,增加了一個應用服務器,應用程序的業務邏輯駐留在該應用服務器上,在客戶端只是將業務邏輯返回的數據按照客戶的要求表示給客戶端,這樣不僅減少了客戶端應用的性能要求,同時由于業務邏輯駐留在應用服務器上,因此更改業務邏輯時不需再對客戶端應用系統進行更新。此外,應用程序通過業務邏輯層訪問數據庫,增加了數據庫的安全性。在系統性能下降時,可通過增加應用服務器來擴展系統性能。
C/S架構軟件的缺點是對于應用較廣泛的系統,在軟件進行更新后,必須將所有的應用客戶端應用程序進行更新,同時客戶端的計算機必須安裝應用程序需要的支持軟件,如用PB開發的Oracle數據庫程序,需要安裝Oracle客戶端來訪問數據庫,還需要安裝PB運行時的鏈接庫以支持PB應用程序的運行等。如果在廣域網范圍內,由于防火墻的限制,無法通過廣域網訪問信息系統。
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應用程序的開發。
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中都進行了完善的封裝。
數據集成(見圖1)是跳過界面和業務邏輯界面,直接從應用軟件的數據庫或數據結構開始進行集成。這種集成方式需要系統集成商或開發人員對所有需要集成的應用系統的數據庫和數據結構有深入的了解,且對每一個系統的業務流程都非常熟悉。
基于數據集成的系統集成的優勢為:1)由于直接訪問系統數據,對于深入了解該系統的人員來說,可提高數據訪問的靈活性。2)可直接訪問系統數據,避免了中間層的性能消耗,可提高系統的效率。
基于數據集成的系統集成的劣勢為:1)必須深入了解每個系統的數據結構,只有這樣才能真正進行數據集成;對于一個較大和復雜的系統,增加了系統集成的難度。2)必須了解各個系統的業務流程,這樣在系統集成后,才能實現系統功能;對于已有的系統功能必須重新開發,加大了開發工作量。3)不同系統集成之間代碼的可重復使用概率降低,系統的擴展性不好。4)系統的開發還是基于C/S架構,無法將其應用擴展到廣域網或Intranet和Internet。
功能集成是在業務邏輯上進行的集成。功能集成的集成點存在于程序代碼中,集成只需使用公開的調用服務就可完成訪問。這樣系統可根據需求在系統中集成不同的應用系統,且只要在后開發的應用系統中建立相同的功能模塊,就可在集成程序中添加新功能。相對于數據集成,功能集成的靈活性更好,且與集成部分無關。在開發系統應用時,功能集成不必考慮系統如何集成,系統只要提供相應的業務邏輯功能服務即可。基于功能的集成通??刹捎眠h過程調用、面向消息的中間件、分布式對象、事務處理監控器等方法。隨著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,提供該系統能夠提供的數據支持。
將基于數據的集成方式和基于Web Service的功能集成方式進行對比,對比結果見表1。由表1可見,基于數據集成的應用在系統性能上強于基于Web Service功能集成的應用。但在企業系統集成的方式、系統建立的復雜度、系統的可擴展性、系統的向前兼容型、系統架構和系統的安全性等方面,基于XML的Web Service的功能集成方式更適合于企業的系統集成方案。特別是在XML和Web Service成為工業標準的前提下,基于Web Service的企業應用集成在企業未來的應用系統集成和開發的靈活性方面,更具有競爭優勢。

表1 兩種集成方式的對比Table 1 Comparison between the two integration ways
在網絡信息和經濟一體化的今天,企業內部各經營環節以及企業與外部連接日益緊密,企業應用集成將企業的應用系統整合起來。目前可以采用的企業應用集成方式有基于數據集成和基于Web Service的功能集成兩種方式??紤]到系統開發的多層體系的發展方向和Web Service的日益完善和優勢,建議在開發中采用基于Web Service的面向功能的企業集成方式。
[1] 張友生,徐峰. 系統分析師技術指南[M]. 北京:清華大學出版社,2004:15 - 18.
[2] 齊治昌,譚慶平,寧洪. 軟件工程[M]. 北京:高等教育出版社,1997:2 - 5.