朱 渝,郭 毅
ZHU Yu,GUO Yi
(四川理工學院 圖書館,自貢 643000)
區域圖書館是目前圖書館發展的一個重要的模式,主要是通過對某一行業或地理區域的文獻資源進行整合,形成一個基于網絡的虛擬圖書館,實現圖書館的文獻資源建設、流通等功能。Windows Communication Foundation (WCF)是Microsoft為構建面向服務的應用提供的分布式通信編程框架,是.NET Framework 3.5的重要組成部分。使用該框架,開發人員可以構建跨平臺、安全、可靠和支持事務處理的區域圖書館。基于WCF構建區域圖書館的過程中,能使用SOA對圖書館的各種服務和功能進行規劃,通過契約對服務進行公開和約定,可以使用OO對具體的服務進行設計,最終通過WCF這一平臺或編程模型來實現區域圖書館。
現代的區域圖書館應該是一個以服務為中心的圖書館。區域圖書館的可以看作是一個又文獻的查詢、借閱、傳遞、咨詢、讀者認證等多種服務通過松耦合形成的一個服務集,那么在規劃的時候就需要面向服務的體系結構(Service-Oriented Architecture,SOA)這一個組件模型來實現。同時,區域圖書館的各個成員的提供的信息資源彼此孤立,結構各異,這也需要將這些異構資源進行整合和封裝,使得SOA也成為了一個必然的選擇。(參考基于SOA的數字圖書館研究)
一方面,區域圖書館的特性使得SOA成為系統設計的必然選擇,另一方面, WCF合并了當前分布式系統技術,為SOA提供了良好的支撐。WCF的編程模型為區域圖書館的實現提供了統一、簡化并且可管理的分布式系統開發的方法,能夠很好的支持SOA。使得我們能夠在設計區域圖書館的時候采用SOA,并通過WCF來編程模型來實現一個松散耦合的區域圖書館系統。

圖1 文獻傳遞
例如,使用WCF可以這樣來設計區域圖書館中的文獻傳遞系統(如圖1所示)。整個文獻傳遞系統主要包括兩項服務:1)文獻傳遞處理服務,主要用來接收文獻請求;2)文獻發送處理,主要用來對請求的文獻進行發送。在區域圖書館中,需要處理文獻傳遞請求數量很大,必須在文獻傳遞處理器前加入一個路由器將傳遞請求分發到某個文獻傳遞處理服務。在文獻分發處理系統前面也加上一個分發路由器,其功能和文獻傳遞路由器相同,將文獻分發的請求轉發到某個分發處理系統。其他的內部系統能與和文獻傳遞系統相互通信和交換信息,和文獻傳遞服務之間相互獨立自治,任何一個服務的改動都不會影響其他服務。
根據區域圖書館特點能夠很快的構劃出區域圖書館的SOA服務模型,當各個服務以及服務之間的聯系一旦建立,我們就需要為區域圖書館的各個服務綁定到一個或多個端點上去,并通過契約來約束客戶端端點允許的操作和有效服務方法使用的數據類型。
契約是用戶定義某些方面的服務,如消息的格式與結構,以及具有同等重要性的服務的行為。(應用書WCF高級編程29頁)在WCF中支持有三種契約格式,分別是服務契約、消息契約和數據契約。在應用這些服務在設計區域圖書館的服務的時候,主要是使用服務契約,來告訴客戶提供的小事數據類型、操作位置、通信協議以及服務提供的操作等內容。如區域圖書館中的讀者認證服務可以通過服務契約定義對服務端點有效的用戶認證、密碼修改、用戶查詢等有效的操作,還可以定義這些操作基本的消息交換模式,是單向、雙向的。具體的實現可以通過WCF中的類和接口來進行定義。消息契約主要是對SOAP的控制,數據契約主要定義交換的數據協議,在設計這兩個級別的契約一般很少用到。
WCF中可以使用SOA在規劃整個區域圖書館的中的各種服務以及服務和服務之間的關系。具體的實現某一服務的時候,除了使用契約來聲名這一服務的行為和規范外,還需要對服務的具體行為進行設計和編碼。這個時候在WCF中可以使用面向對象的方法(OO)來設計,通過對程序設計到的對象和對象屬性、行為的分析,可以設計出一個一個結構清晰的區域圖書館中的具體服務內容。在WCF中對OO和SO的設計都能很好的支撐,并能使這兩種方法同時應用到系統程序中去,這對于在構建區域圖書館的時候,可以靈活方便的選擇自己熟悉的設計方法。
比如,在實現服務器端的讀者驗證服務的時候,用接口來定義并使用契約來聲明。在LibUser類中來實現這個接口,就可以通過在類中的公開方法來實現用戶的登陸和注銷了。

WCF中通過SOAP進行通信的,這樣一來能提高整個區域圖書館的通信效率和安全性,同時使得通信能夠跨越不同的操作系統平臺;由于基于WCF的區域圖書館服務和通信通過應用XML來解決各種異構數據之間通信問題,就可以將區域內的各種異構資源很好的進行整合,使的服務還能跨越不同的數據源[3]。最后,我們在客戶端只需要發現和調用服務,就能夠使用區域圖書館了。
[1] 百度百科.WCF [EB/OL].http://baike.baidu.com/view/1140438.htm?fr=ala0_1_1.2010-9-14.
[2] 徐震.基于SOA的數字圖書館研究[J].圖書館學研究,2009(10):13-15.
[3] 年福豐,劉秋讓.基于WCF的異構數據源集成系統的研究和實現[J].科學技術與工程,2009(11):3116-3119.
[4] scot klein.WCF高級編程.北京:清華大學出版社,2008.
[5] 黃文鏑,廖小梅,劉磊.論區域圖書館區位設置與規劃[J].圖書與情報,2009(6):8-13,50.
[6] 范亞芳,王傳衛.我國高校區域性圖書館聯盟建設模式研究[J].圖書館,2008(1):65-67,80.