摘? 要: 基于Web Service的框架為多數據系統提出了一種新的分布式體系結構。該系統可擴展到Internet,并且具有松耦合、跨平臺、語言無關、與特定服務無關等特點。
關鍵詞: Web Service程序? 多數據庫? SOAP消息
?
隨著數據庫技術和網絡技術的發展,人們對數據資源共享的要求越來越高。在實際應用領域中,需要將分布在同一網絡甚至不同網絡中的異構數據庫系統中的數據進行集成和共享。
多數據庫系統(MDBS)是多個已存的、自治的、異構的數據庫系統的聯合。參與構成多數據庫系統的各數據庫系統稱為局部或成員數據庫系統(LDBS)。局部數據庫分布在網絡的不同節點上。多數據庫系統在所有局部數據庫系統之上構成全局系統管理層,提供外部用戶接口,使用戶能實現對異種數據庫的透明訪問。多數據庫系統屏蔽了不同數據庫在物理上和邏輯上的差異,從而滿足人們對數據資源共享的要求。
目前,對于異構系統的集成和通信有多種理論和技術方案,比較主流的是微軟的DCOM/COM和.NET、Sun的Java以及OMG的CORBA。但是,基于這些技術的架構在互聯互通方面存在較大缺陷,需要構建專門的通信組件來實現它們之間的通信。
Web Service是新一代的面向服務的分布式計算模型?;诖四P?本文提出了一種新的多數據庫體系結構,并且在自行設計的多數據系統Panorama上進行了部分原型實現,論證了該種設計的可行性。
1?Web Service概述
Web Service是一種新型的Web應用程序,是自適應、自我描述、模塊化的應用程序。這些應用程序可以跨越Web進行發表、定位和調用。Web Service解決了不同平臺之間、不同程序間的交互,相當于一個集成中間件平臺。通常,Web Service基于幾種通用標準:UDDI(Universal Discovery,Description,Integration)提供了一種讓客戶端動態發布和查找 Web Service的機制;WSDL(Web Service Description Language)描述Web Service的功能及接口,為發布和查找Web Service提供支持;SOAP(Simple Object Access Protocol)提供了一種在無中心分布式的環境中使用XML交換結構化數據的簡單輕量級通信機制。
2?基于Web Service的多數據庫系統參考模型WSD-RM
WSD-RM基于Web Service進行構建,所以模型構建的重點是如何架構服務層次、如何定義具體的服務以及如何使定義的服務互操作能組成有效的服務鏈。
2.1 架構WSM-RM模型的服務模型
圖1從系統服務層次間通信的情況描述了基于Web Service的多數據庫參考模型WSM-RM的體系結構。該體系結構主要由三個層次構成:服務提供者、服務請求者和服務代理。服務提供者作為服務的提供方,發布處于服務代理中的具體服務(如操作方式、網絡資源等)的描述信息。服務請求者作為請求服務的客戶端,向服務代理發出請求,查詢所需服務的描述信息,得到返回的相關服務信息后,向服務提供者請求相應的服務。服務代理注冊服務相關信息,為服務請求者提供服務相應的信息。
?
?
服務提供者用WSDL描述WSM-RM體系中各項服務的相關操作特性及接口。每一項操作都可能具備四種操作狀態:
(1)單向狀態:該種狀態下服務只單項接收消息。
(2)通知狀態:這種狀態下服務發送消息。
(3)請求—回應狀態:服務接收消息,并返回相應的結果。
(4)懇求—回應狀態:服務發送消息,接收相應的返回消息。
多數據庫系統服務池作為具體的服務集存在于WSM-RM中。它接收來自服務請求的服務請求并將這一請求推送至服務提供者。服務提供者對請求進行一定的檢查(如權限檢查等)后將這一請求轉化為以WSDL描述的標準服務激起服務池中的相應服務鏈,最后把結果集返回給服務請求者。
WSM-RM體系中各項服務的通信基于SOAP消息。由于SOAP基于XML的消息機制,并且使用諸如HTTP、SMTP這樣的標準協議族,所以SOAP天生具有跨平臺、語言無關等特性。但是SOAP也存在缺陷:XML的機制使得消息體冗長龐大;HTTP協議使得網絡傳輸效率低下;SOAP目前只定義了諸如String、Int等簡單數據類型,對復雜數據類型的支持還有待完善。
2.2 組織WSM-RM模型的服務
從WSM-RM模型的服務模型中可以看出,其根本的功能是服務。如何定義基礎的服務、尤其是如何使這些基礎的服務合同協作,有機地組合成“復合”的服務(有效服務鏈)是該模型需要解決的問題。
定義基礎服務集實質上是一個需求分析的過程,它涉及到軟件工程的問題,限于篇幅,本文恕不贅述。根據用戶的需求和系統本身功能的需要,該模型定義了二類基礎服務集:管理類服務集和事物類服務集。管理類服務集包括四項基礎服務:模式信息管理服務、查詢優化服務、全局查詢管理服務、全局事務管理服務。事物類服務集包括四項服務:查詢事務服務、更新事務服務、刪除事務服務和創建事務服務。
WSM-RM為了解決基礎服務的互操作問題,定義了有效服務規則:通過比較服務的語義特點(服務的具體內容)和語法特點(服務操作狀態)來決定是否可以把服務添加到有效服務鏈中以組成復合服務。下面重點介紹根據語義特點進行服務組合的方法。
????Web服務潛在的語義對檢察有效服務至關重要。目前,對Web服務進行描述的WSDL語言幾乎不支持語義描述,但是有研究人員提出用實體的概念來描述Web服務的語義。本文將用此概念來描述Web服務的語義并進行擴展。
根據詞在語義上的同義性對實體進行分類。服務操作可以定義為二類實體:范疇(Category)和類別(Type)。每一項服務操作包含二個成員實體,一個屬于范疇實體,另一個屬于類別實體。服務提供者確定服務操作和這二個實體的關系并且對每一項服務操作進行初始化。
范疇的成員實體包含三個屬性:名字(Name)、同義詞(Synonyms)和細述(Specification)。名字屬性給出當前操作的主題域名,例如數據、模式等。同義詞屬性給出當前操作影響域的同義替換域名,例如數字、數值等可以作為數據的同義詞。細述屬性定義當前范疇實體的特征集,例如數據庫、模式、表等可以作為數據實體的細述。
類型的成員實體同樣包含名字、同義詞和細述三個屬性。名字屬性描述當前服務操作提供的具體服務,例如查詢、更新等;其他二個屬性和范疇實體的成員屬性相同。
對Web服務進行語義描述后,服務之間的互操作問題轉化為服務操作的范疇和類型是否兼容、是否存在包含關系的問題。下面定義服務之間的兼容性。
假設有二種服務操作opi和opj,若滿足以下條件,則稱Category(opi)與Category(opj)兼容:
第一個條件檢驗opi和opj的主題域是否相同或相似。第二個條件檢驗opi是否提供opj范疇實體的所有特征集。同理也可以定義Type(opi)與Type(opj)的兼容規則?;诖?這里定義服務的語義組合規則:如果服務操作滿足相應的范疇兼容和類型兼容,則認為相應的服務在語義上是可以組合的。
2.3 WSM-RM模型的體系結構
圖2為WSM-RM模型的體系結構圖。WSM-RM模型可以分為五個層次:局部數據源層、局部代理層、基礎服務層、復合服務層和全局管理層。
?
?
全局管理層中包括幾個組件:請求處理器、服務組織管理器、服務定位器、服務匹配器和服務優化器。請求處理器接收來自用戶的請求并進行處理;服務組織管理器根據經處理的請求和收集到的關于服務的信息定制服務計劃并將計劃推送到服務匹配器;服務匹配器根據“有效服務”規則檢查服務計劃是否有效可行,然后將檢查通過的服務計劃送至服務優化器,對服務計劃進行優化后返回至服務匹配器;服務定位器接收來自服務匹配器的服務計劃,通過查詢位于服務代理中的WSDL描述定位所需的服務,將結果服務計劃集返回給請求處理器;請求處理器根據服務計劃調用相應的復合服務或基礎服務。
復合服務層定義了多個復合服務。復合服務實質上是滿足有效服務規則的若干服務計劃。為了提高服務效率,使請求處理器不需每次按照服務計劃在基礎服務層提取相應的服務,復合服務層事先根據用戶需求定義好若干服務計劃供請求處理器調用,同時根據一定邏輯規則將新的服務計劃加入其中。由于復合服務層相當于一個服務緩沖區,容量有限,因此需要對服務定義優先級,以決定其是否應該留在復合服務層中。優先級的級別可以用通常的FIFO(First In First Out)原則或者LRU(Last Recently Used)原則排隊。
基礎服務層定義了滿足用戶需求的所有基礎服務。基礎服務包含事物類服務和管理類服務。
局部數據源層定義了若干局部數據庫,后者是已存的、自治的、異構的數據庫系統,有各自的模式信息和數據結構。在局部代理層根據局部數據源的數量定義了相應數量的局部代理。后者一方面提取局部數據源的數據信息、模式信息等為上層服務,另一方面也接受來自上層的數據請求信息并轉發至下層。局部代理提取的各項關于局部數據源的信息經過包裝器作用后成為統一可用的數據,為各項基礎服務提供數據來源。
2.4 WSM-RM模型的特點
WSM-RM模型充分利用了Web Service規范面向服務的特點,將局部數據庫通過局部代理和包裝器封裝成若干Web Service服務,對外提供基本的數據操縱、事務處理等服務。任何數據庫系統只要設計出相應的局部代理和包裝器,并且進行適當的數據集成,提供相應的模式信息,就可以加入到基于WSM-RM的多數據庫系統。該系統甚至可以集成文件系統、Web網頁等。在這里局部代理和包裝器起了至關重要的作用:屏蔽了具體數據源的差異,對上層呈現統一的接口。不同的局部數據庫配備不同的局部代理,在處理局部查詢時并行執行,提高了系統的效率。另外,還可以根據需要通過增添或者卸載某些Web服務來加入、替換或升級所需的功能,使系統具有良好的伸縮性。由于Web Service協議棧的最底層是網絡層,該層可表示任意多個網絡協議,如HTTP、FTP、SMTP、消息隊列(Message Queuing)、因特網ORB間協議(Internet Inter ORB Protocol,IIOP)上的遠程方法調用(Remote Method Invocation,RMI)等。因此可以根據不同的需求來選擇網絡技術,包括安全性、可用性以及可靠性,從而使Web Service具有良好的可擴展性。
由于WSM-RM模型基于Web Service規范,因此Web Service尤其是SOAP實現的性能直接影響系統的性能。
3? 結束語
如何將Web Service技術和多數據庫相結合,研究和開發出具有松耦合、跨平臺、語言無關、與特定服務無關并且可擴展到Internet的多數據庫系統已成為目前Internet和數據庫技術研究領域交叉的一個新的發展方向。本文提出的基于Web Service框架的多數據系統體系結構,克服了傳統多數據庫體系結構的不足,充分利用了基于面向服務的Web Service分布式計算模型的優勢,具有良好的擴展性、伸縮性、易維護性等特點。
在研究中發現,作為Web Service底層通信協議的SOAP,盡管與它的前輩DCOM和CORBA等比較起來有良好的伸縮性、互操作性等優勢,但是這些優勢在某種程度上是以效率相對低下來換取的,這對于科學計算和海量數據操作等應用來說是致命問題。未來的工作將集中在SOAP協議的研究上,探索其作為通信協議效率低下的原因以及對SOAP的改進技術。
?
參考文獻
1?uddi.org.UDDI Technical White Paper,2000.http://www.uddi.org
2?Christensen E.Web Services Description Language(WSDL) 1.0.IBM/Microsoft Joint Working Document. http://www4.ibm.com/software/developer/library/wwsdl.html?dwzone=web/,2000
3?Mitra.N.Simple Object Access Protocol(SOAP) 1.2.W3C?working draft,2002;6