段方振 何清頂
(中國衛(wèi)星海上測控部 江蘇江陰 214400)
基于WCF服務的異構數(shù)據(jù)源集成查詢系統(tǒng)的設計與實現(xiàn)
段方振 何清頂
(中國衛(wèi)星海上測控部 江蘇江陰 214400)
異構數(shù)據(jù)集成查詢是當前單位信息化建設過程中面臨的一個重要課題,能夠解決實際應用中的“信息孤島”問題。集成己有系統(tǒng)的數(shù)據(jù),屏蔽各異構數(shù)據(jù)源間的差異,為用戶提供涉及多個異構數(shù)據(jù)源的統(tǒng)一查詢機制,提高了數(shù)據(jù)的查詢效率和利用率。
WCF;異構數(shù)據(jù);集成查詢
針對某單位在信息化發(fā)展過程中形成的異構數(shù)據(jù)源所帶來的數(shù)據(jù)集成問題,通過分析國內(nèi)外數(shù)據(jù)集成技術,統(tǒng)的研究了異構數(shù)據(jù)源數(shù)據(jù)集成的體系結構、主流技術、設計和實現(xiàn),采用Mediator/Wrapper的方式并借鑒面向服務SOA的思想進行數(shù)據(jù)集成,并利用WCF技術的跨平臺特性和SOAP消息[1]的簡單通用、穿透力強的特性,使用SOAP消息封裝數(shù)據(jù)來實現(xiàn)較大范圍的數(shù)據(jù)集成;利用Microsoft.NET中的ADO.NET技術[2]解決數(shù)據(jù)庫數(shù)據(jù)異構的問題,設計并實現(xiàn)了異構數(shù)據(jù)源集成查詢的原型系統(tǒng)。為某單位的業(yè)務系統(tǒng)數(shù)據(jù)共享提供簡單、方便、綜合的查詢服務平臺,該系統(tǒng)在現(xiàn)有各信息管理系統(tǒng)保持自治的基礎上,實現(xiàn)了信息系統(tǒng)間所要共享數(shù)據(jù)的集成查詢,從而達到對整個系統(tǒng)實施統(tǒng)一的控制和訪問。
2.1 系統(tǒng)分析
在已經(jīng)存在的多個異構的、分布的數(shù)據(jù)源的基礎上實現(xiàn)集成查詢,這就需在各業(yè)務系統(tǒng)數(shù)據(jù)源的基礎上建立一個綜合集成查詢平臺,用戶通過集成查詢平臺能夠同時對多個業(yè)務系統(tǒng)數(shù)據(jù)源的數(shù)據(jù)進行透明訪問。用戶的查詢請求所涉及的數(shù)據(jù)可能來自于多個信息系統(tǒng)的數(shù)據(jù)。由于各業(yè)務信息系統(tǒng)的數(shù)據(jù)源都是相互獨立的實體,都具有相對的獨立性、自主性,同時為了各自業(yè)務系統(tǒng)信息的安全,各業(yè)務系統(tǒng)數(shù)據(jù)源只會提供相關的業(yè)務數(shù)據(jù),而不是數(shù)據(jù)源所有的數(shù)據(jù)。為此在參與集成的各業(yè)務系統(tǒng)數(shù)據(jù)以數(shù)據(jù)訪問接口形式的提供訪問,在該數(shù)據(jù)源的WCF Service[3~4]中提供了多個數(shù)據(jù)訪問接口,這些數(shù)據(jù)訪問接口上所能返回的數(shù)據(jù)就是參與系統(tǒng)集成的數(shù)據(jù)。在數(shù)據(jù)接口中不能返回的數(shù)據(jù),用戶則無法訪問。
異構數(shù)據(jù)源集成查詢系統(tǒng)根據(jù)用戶的查詢需求實時從各局部數(shù)據(jù)源獲取所需的數(shù)據(jù),集成查詢系統(tǒng)平臺相當于在多個業(yè)務系統(tǒng)的數(shù)據(jù)源與用戶之間建立一個查詢服務中間層。對用戶來說,只要擁有一個瀏覽器,就可以提交相應的查詢請求,而集成查詢系統(tǒng)平臺對用戶的查詢請求依據(jù)全局模式和屬性映射表中的對應關系進行解析,然后將查詢分解為對各個業(yè)務系統(tǒng)WCF Service本地代理中數(shù)據(jù)訪問接口的調用,最后將各數(shù)據(jù)訪問接口返回的數(shù)據(jù)集成在一起返回給用戶,這樣就可以滿足用戶的查詢請求。
2.2 系統(tǒng)設計方案
針對集成查詢系統(tǒng)的需求,對各業(yè)務系統(tǒng)數(shù)據(jù)源構建WCF Service,將參與集成的數(shù)據(jù)以操作契約的形式封裝在WCF Service中。同時利用WCF Service可跨平臺、能穿越防火墻、互操作等特點,實現(xiàn)集成查詢系統(tǒng)平臺和各業(yè)務系統(tǒng)WCF Servcie之間消息和數(shù)據(jù)傳輸。在每個業(yè)務系統(tǒng)數(shù)據(jù)源端部署一個WCF Servcie,而一個WCF Service中有多個數(shù)據(jù)訪問接口,每個數(shù)據(jù)訪問接口返回的數(shù)據(jù)即為該數(shù)據(jù)源參與系統(tǒng)集成的數(shù)據(jù)。集成查詢系統(tǒng)平臺可按照需要分布在不同的地方,便于用戶應用。
2.3 系統(tǒng)數(shù)據(jù)訪問接口的設計
數(shù)據(jù)訪問接口對參與集成的每個數(shù)據(jù)源中的相關數(shù)據(jù)進行結構化處理后,使這些數(shù)據(jù)訪問接口能夠提供該數(shù)據(jù)源用于參與系統(tǒng)集成的數(shù)據(jù)。WCF Service在集成查詢系統(tǒng)中注冊,并將其中的數(shù)據(jù)訪問接口注冊到全局數(shù)據(jù)庫中,同時建立數(shù)據(jù)訪問接口的屬性和全局模式[5]屬性之間的映射關系。由于參與集成的局部數(shù)據(jù)源可能是不同的類型,例如有些數(shù)據(jù)源提供的是半結構化數(shù)據(jù)如xml,文本文件,excel等。為了將這些不同的數(shù)據(jù)源集成到系統(tǒng)中,就需要根據(jù)集成系統(tǒng)的需求把其中的數(shù)據(jù)轉換為能夠給全局模式提供的結構化數(shù)據(jù)。
通過WCF Service中的操作契約即數(shù)據(jù)訪問接口,利用微軟ADO.NET作為數(shù)據(jù)源的包裝器來實現(xiàn)數(shù)據(jù)的結構化的處理的。ADO.NET通過數(shù)據(jù)提供程序能訪問各種數(shù)據(jù)源,包括SQLServer,MySQL,Oracle,ACCESS等,以及ODBC,OLEDB數(shù)據(jù)源,同時屏蔽了具體數(shù)據(jù)源的一些具體特征,包括該數(shù)據(jù)源所能接受的訪問方法,具體數(shù)據(jù)源所在的地址,對實際數(shù)據(jù)源發(fā)出的請求以及結果的具體數(shù)據(jù)格式等。本文中在按照用戶需求通過數(shù)據(jù)訪問接口對參與集成的每個數(shù)據(jù)源中的相關數(shù)據(jù)進行結構化處理后,使這些數(shù)據(jù)訪問接口能夠提供該數(shù)據(jù)源用于參與系統(tǒng)集成數(shù)據(jù)。而這些數(shù)據(jù)訪問接口能夠在特定查詢限制條件下接受用戶查詢請求,并返回符合查詢條件的數(shù)據(jù)。數(shù)據(jù)訪問接口用F(A1,A2,…,An)來表示,它是在該數(shù)據(jù)源預先確定的一組屬性 A(A1,A2,…,An)上的取值,并輸出固定結構的數(shù)據(jù)
3.1 數(shù)據(jù)采集子系統(tǒng)功能模塊的設計
數(shù)據(jù)采集子系統(tǒng)能實現(xiàn)定時定期采集數(shù)據(jù)源中相關的業(yè)務數(shù)據(jù),將數(shù)據(jù)統(tǒng)一轉換為XML格式的數(shù)據(jù)[6],并將數(shù)據(jù)提交給集成查詢子系統(tǒng),通過數(shù)據(jù)采集子系統(tǒng)消除異構數(shù)據(jù)源間的模式、數(shù)據(jù)類型等的異構。
3.2 集成查詢子系統(tǒng)功能模塊
集成查詢子系統(tǒng)的設計目的是集成各數(shù)據(jù)采集子系統(tǒng)提交的相關業(yè)務數(shù)據(jù),消除數(shù)據(jù)間的異構,將數(shù)據(jù)集成為全局數(shù)據(jù)后開放查詢接口,接受用戶的查詢。
本文針對當前某單位信息化建設面臨的實際情況,研究并提出了一個基于WCF的異構數(shù)據(jù)集成查詢解決方案,詳細論述了異構數(shù)據(jù)集成查詢系統(tǒng)的結構設計和難點問題,并最終實現(xiàn)了異構數(shù)據(jù)集成查詢的原型系統(tǒng)。該系統(tǒng)能實現(xiàn)在保持單位各業(yè)務信息系統(tǒng)相對獨立的同時,對各業(yè)務數(shù)據(jù)的動態(tài)查詢。該方案充分利用了WCF服務的互操作性,具有部署靈活和易管理的優(yōu)點,較好地解決了某單位各業(yè)務系統(tǒng)間數(shù)據(jù)集成查詢的問題。
[1]Bill Evjen等.《ASP.NET4高級編程(第7版)》,清華大學出版社,2010,9.
[2]Bill Hamilton.《ADO.NET3.5經(jīng)典實例第2版》.機械工業(yè)出版社,2009,9.
[3]年福豐,劉秋讓.基于WCF的異構數(shù)據(jù)源集成系統(tǒng)的研究和實現(xiàn)[J].科學技術與工程,2009,11(9).
[4]沈 正,陳 鍾.基于WCF和SOA的電力SCADA系統(tǒng)研究與開發(fā)[J].信息技術,2009,13.
[5]毛國君.高級數(shù)據(jù)庫原理與技術[M].北京:人民郵電出版社,2004:176~197.
[6]邵秀麗,韓建彬,閻仲璞.基于XML的異構數(shù)據(jù)源間數(shù)據(jù)交換的實現(xiàn)研究.南開大學學報(自然科學版)2007,Vol.40(3):9~14.
TP311.5
A
1004-7344(2016)11-0317-01
2016-3-26