摘 要:基于Web Service的設計框架為Web應用開發提出了一種新的分布式應用體系架構,如何充分利用原有系統組件改造為新的Web服務就成為應用設計的重點。論述了將一個傳統的基于組件技術的分布式應用系統改造成為一個基于Web Service系統的實現過程。
關鍵詞:分布式應用系統;組件;Web Service;Web應用
中圖法分類號:TP311文獻標識碼:A
文章編號:1001—3695(2007)02—0238—02
隨著面向對象技術的發展,Internet/Intranet應用的不斷普及,基于組件技術(如DCOM或CORBA)的多層分布式體系結構已成為當前應用程序設計的主要趨勢,其共同特點就是通過創建能夠在應用程序之間可重用和共享的組件模塊,從而實現應用程序互操作性和伸縮性。但是這種傳統的分布式系統設計模式由于各自采用的平臺、協議、體系結構的巨大差異,使得在面對基于異構平臺的Web應用系統的實施與集成的挑戰時,往往顯得力不從心。近年來,隨著以XML和Web Service為基礎的新型分布式應用系統設計模式的崛起和發展,為解決這一難題提供了新的思路。但是如果將原有傳統分布式應用系統中所設計的大量組件全部拋棄,重新設計新的Web Ser-vice組件,將造成巨大的重復浪費。為此,本文將探討一種在原有傳統分布式應用系統基礎之上進行改造,設計成為新的基于Web
Service的分布式應用系統的方法。
1 傳統的分布式應用系統設計
隨著Internet/Intranet應用的不斷普及,基于組件技術的分布式應用體系結構已被廣泛采用,目前流行的分布式對象模型主要包括DCOM(分布式組件對象模型)[1]、CORBA(公共對象請求代理體系結構)[2]、RMI(遠程方法調用)[3]。當前應用程序的設計模式也隨之逐漸從傳統的C/S兩層結構轉變為基于組件技術的三層分布式體系結構。
三層分布式體系結構(圖1)是將原有傳統的兩層結構中的客戶端應用分為兩部分,即客戶應用與服
務器應用。新的客戶應用負責用戶界面和簡單固定的業務邏輯;新的服務器應用中則駐留核心的、易變的、復雜的業務邏輯。這樣,其結構就變為了(Client+Application Server)/Database Server。
(1)客戶層:負責用戶界面及簡單固定的業務邏輯。
(2)應用層:復雜的、可重用的、可共享的業務邏輯。
(3)數據層:提供對數據庫的管理。
采用三層分布式體系結構有著多方面的技術優勢,包括:①邏輯封裝性。這是分布式模式中最具誘惑力的特征。當應用軟件的業務邏輯規則發生改變時,只需改變一個應用服務器的程序即可,而無須更改客戶端用戶界面,從而提高工作效率,便于升級、維護。②性能。三層分布式體系結構將復雜的應用與商業邏輯分離出來,由專門的應用服務器來處理,大大減輕了客戶機的功能負擔,既可以提高應用的執行速度,又可以減少網絡調用的通信量。③安全性管理。由于大量商業邏輯均駐留在應用服務器端,信息管理部門就可以十分方便地監控服務器的運行情況,可以大大簡化管理員對系統的管理,減輕系統維護的工作,并確保系統的可靠運行。
2 基于Web Service的分布式應用架構
雖然傳統的分布式設計模式在當前應用系統的開發中發揮著重要的作用,但是由于它們采用的體系結構和協議均各自獨立和私有,結構緊密耦合,使其并不適用于異構的Internet/Intranet環境;另外,由于傳統組件技術要求動態申請端口,導致無法通過防火墻的防護。這些問題都是傳統分布式應用系統所無法解決的。為此,基于Web Service的設計框架[4,5]通過結合面向組件方法和Web技術的優勢,提出了一種新的面向服務的分布式體系結構,如圖2所示。
Web Service是一組通過標準的Web協議(HTTP)可編程訪問的Web組件。其涉及的相關技術主要包括可擴展標記語言(XML)、簡單對象訪問協議(SOAP)、Web服務描述語言(WSDL)、通用描述、發現與集成(UDDI)。其中,XML是Web Service平臺中表示數據的基本格式;SOAP通過XML文檔形式發送和接收消息實現異構平臺上的不同系統的相互通信和共享數據;WSDL用來描述Web Service所完成的功能和Web Service所提供的服務;UDDI用來注冊、發布已建立的Web Service。
從技術角度來看,Web Service是對象/組件技術在Internet中的延伸。Web Service具有完好的封裝性、松散耦合、使用標準協議規范、高度可集成能力等新的特征。Web Service最突出的優勢就在于它不像傳統的組件技術那樣依賴特定的對象模型協議,如DCOM,CORBA,RMI等,而是利用通用的Internet協議和數據格式來實現服務的訪問,如HTTP傳輸協議、XML數據格式,從而真正實現應用系統的跨平臺、可擴展和易維護性。
3 醫療保險管理系統的改造
3.1 系統簡介
醫療保險管理系統是一個分別應用于社保機構、醫保定點醫院、醫保定點藥店等單位,通過社會保險信息網絡,實現對投保人員進行統一賬戶管理、住院管理、結算管理、報銷管理等,以及社保局與醫院、社保局與藥店進行結算和數據交換管理的分布式應用系統[6]。整個系統的設計模式采用基于組件的三層分布式體系結構,包括服務器應用程序、客戶應用程序和數據庫管理三大部分。服務器應用是在PowerBuilder7.0+Windows 2000+MTS平臺上開發的,以COM組件形式實現,并由MTS進行統一有效管理,主要負責處理大量業務邏輯,提供相應的公共接口,供客戶應用訪問使用;客戶應用則是在PowerBuilder 6.5+Windows 98平臺上開發的,由用戶界面、連接對象、遠程對象的類定義組成,通過調用COM服務器上的遠程對象,傳遞參數,并返回結果;數據庫采用Oracle 7.0。
3.2 系統改造
系統中整個中間業務平臺即組件事務服務器的開發非常復雜,需要實現大量組件,供客戶應用訪問使用。主要包括個人賬戶管理、醫療報銷管理、統籌管理、社保醫院數據交換、社保藥店數據交換、與銀行數據傳送等。那么,如果將整個系統中所設計的這些組件全部拋棄,重新設計新的Web Service組件,將造成巨大的人力和時間的浪費。為此,選擇利用Microsoft SOAP Toolkit 3.0提供的一整套COM對象來實現COM組件向Web Service組件的轉換[7],這樣,我們既能夠實現原有組件的重用,同時又可以享受到Web Service所帶來的好處。下面,以住院登記組件(register.dll)為例介紹實現過程。
3.2.1 應用層實現COM組件向Web Service的轉換
(1) 設置虛擬目錄(“d:\\webservices\\register\\”),以便用戶可以通過HTTP訪問到服務相關的服務描述(WSDL)文件和服務組件描述(WSML)文件。
(2) 利用Microsoft SOAP Toolkit 3.0提供的WSDL Generator指定register.dll中COM對象的相應方法(住院登記),生成與服務相關的服務描述(WSDL)文件和服務組件描述(WSML)文件,將其改造為對應的Web服務。
3.2.2 客戶層實現連接訪問
(1) 創建Web Service代理對象Proxy_register,指定WSDL文件。
(2) Client端通過對象SoapConnection,連接SOAP服務器,調用相應的Web Service。
局部變量:
4 總結
本文首先分析了傳統的基于組件技術的分布式應用體系結構的不足,然后提出了一種新的基于Web Service的分布式應用體系結構,并實現了從傳統的基于組件技術的分布式應用系統向基于Web Service的分布式應用系統的轉換。與傳統的分布式應用體系結構相比,基于Web Service的分布式應用體系結構不僅能更好地適應現代Web應用的飛速發展,還能更好地體現面向對象思想,也更適用于異構平臺的Web應用系統的實施與集成。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。