周宇
(河南職業技術學院圖書館,河南 鄭州 450046)
數字化是眾所周知的文獻管理系統的發展趨勢。隨著各種文獻管理系統數字化程度的加深,因不同文獻管理系統之間由于發展程度不同,缺乏協調統一,隨之出現的“數字鴻溝”使得導致各個文獻管理系統的數據無法相互訪問溝通,形成一個個的數據孤島[1]。因此,如何建立一個有效的文獻數據信息交互機制,是擺在圖書資料/文獻業界的一個顯著問題。筆者經過比較幾種導向(資料導向、界面導向、入口導向、方法導向、流程導向、服務導向)的系統整合構架,選擇以網絡服務(Web Services)為基礎的服務導向實現系統整合。
網絡服務是一種完全植基于XML的軟件技術。它提供了一個標準的方式,不管這些應用程序運行在什么樣的平臺和使用什么架構。目前Web Services及相關技術是由全球信息網絡國際協會(W3C)負責制定規范,W3C把網絡服務定義為由一個URI識別的軟件系統,通過標準XML信息存取的網絡操作。使用這種標準、正式的XML觀念來描述和定義,應用系統之間可以通過Internet上傳送基于XML的信息進行相互操作。從使用者的角度而言,網絡服務實際上是一種部署在Web上的應用組件。
在網絡服務技術的架構下,假設我們設計完成了一個程序,而我們也愿意免費/收費的將它提供給他人使用,此時,我們撰寫的程序便視為是一個潛在的網絡服務,它扮演了服務提供者(Service Provider)的角色[2];此時,若在地球的某一端,正好有一個或多個使用者迫切的需要這個程序,那么這些迫切需要應用程式的人便稱他們為服務需求者(Service Requester);在廣大的網絡中,網絡服務的提供者與需求者彼此因事前互不認識,為了讓需求者能找到所需要的應用程序,因此還需要一個服務中介(Service Register)。
以往運用在系統交互的相關技術,例如:DCOM、CORBA、RMI等分散式物件的處理技術,也是被設計用來在異質性系統的溝通,若這些異質性系統是使用不同的分散式技術,要整合使彼此能夠溝通,則還需另外撰寫一個中介軟件(Middleware),而網絡服務使用SOAP技術,能夠充分的解決此問題。在網絡服務技術的架構下,可分散式服務的程序可以不需要知道其他的服務程序所在何處就能夠相互溝通。使用網絡服務的優點是在于程序代碼是可流動的、易于維護軟件元件、應用程序可再利用并容易取得等。
SOAP是網絡服務技術中最重要的一項技術。SOAP是一種架構簡單的輕量級(Light Weight)的資料傳輸協議,用于分散式網絡環境下做資料信息交換,只要雙方機器都支援并看得懂SOAP,彼此就能夠交談,這也正是Web Services可以跨平臺的最佳利器。
SOAP是利用XML的格式來包裝及傳送與執行遠端系統所需的信息,許多討論SOAP技術的文章常以“SOAP=XML+HTTP”來做詮釋,簡單來說SOAP是一套簡單且有彈性的第二代XML協議的規格。SOAP大大的改善傳統分散式技術所遇到的整合困境。當使用這些傳統的分散式物件技術來進行整合時,需要另外安裝一個讓異質平臺之間得以溝通所需的中介軟件(Message Broker),而由于SOAP使用XML純文字信息,因此得以去除通過傳統整合技術所需的額外步驟。
一般而言,SOAP主要包含三個部份[3]:
⑴SOAP信息:定義信息封包的整體架構,用來描述SOAP信息封包的組成及一些信息處理等信息。
⑵SOAP編碼規則:定義特定應用程式間,若要進行資料交換時,所需的信息封包處理方式、應用程式所定義的資料型態與信息封包的編碼與交換規則等。
⑶SOAP遠端程序呼叫:定義處理遠端程序呼叫(Remote Procedure Call,RPC)和回應的相關機制等。
如前所述,SOAP是用來作為傳送XML網絡服務信息的通信協議,用戶端可以在SOAP信息中指定XML網絡服務的方法名稱與參數來呼叫XML網絡服務方法,而客服端會將結果包裝于SOAP信息中回傳給用戶端。當有用戶想要向Server取得服務時,首先必須先從 Server取得一份服務的描述文檔(WSDL)。用戶端依據WSDL中關于服務的描述來建立請求(SOAP Request)信息。然后用戶端將服務要求傳送到服務端。服務端執行相對的核對程序/版本檢查,并且將結果以回應(SOAP Response)的信息封包回傳給用戶端。
WSDL(Web Services Description Language)也是一份符合XML格式的文件,也稱之為網絡服務描述語言,主要是用來描述網絡服務的中繼語言,通過WSDL,網絡服務的用戶端就可以了解如何建構SOAP信息來呼叫網絡服務所提供的方法[4]。通常WSDL是由服務提供者所撰寫,然后提供給服務需求者作為要求服務的參考。
根據W3C所定義的WSDL架構,包含以下元素:Type:使用某種語法(如XML模式)的數據類型定義(string、int)。
Message:要傳遞的數據。
Part:消息參數。
Operation:服務支持的操作的抽象描述。
Port Type/Interface:一個或多個端點支持操作的抽象集。此名稱已更改,因此可能會遇到兩者中的任何一個。
Binding:特定端口類型的具體協議和數據格式規范。
Port/Endpoint:綁定和網絡地址的組合。此名稱也已更改,因此可能會遇到兩者中的任何一個。
Service:相關端點的集合,包括其關聯的接口、操作、消息等。
筆者將以前述的網絡服務為基礎,說明如何依據W3C所定義的SOAP及WSDL相關技術來建立文獻管理系統的信息交互訪問機制,并加以定義出符合文獻管理系統的XML文件[5]。本研究架構如下圖:

其架構可分為兩大部份,分別為使用端/服務端及轉換端/遠端數據管理系統(Data Management Service,DMS),此機制最主要的目的是解決:
⑴圖書館文獻管理系統間的資料無法相互的傳遞。
⑵直接將圖書館文獻管理系統信息記錄轉入DMS。
⑶建立文獻管理系統信息資料流,使文獻信息資源能達到共享及共用并結合其它的信息應用系統。
以下針對使用端/服務端及轉換端/DMS兩大部份做進一步的說明。
①服務端
此部分泛指一切數據提供來源,這部份可以是Web Browser、其它信息系統所輸出的XML資料。為了使文獻管理信息能和外部系統做資料傳遞和交換,使其可通過所接收到的WSDL來描述網絡服務的細節,呼叫的各項功能與提供呼叫的端點(endpoint),并運用SOAP傳輸協議的標準,傳送到DMS。
一開始系統“XML輸出/輸入”功能會先找尋DMS的服務,并和DMS做鏈接,服務端向DMS發出一個服務描述的請求之后,DMS發送一個服務描述文件給服務端,服務端則可依服務描述文件里所定義的參數,向DMS提出服務的要求,最后DMS執行服務端所提出的要求,并回報執行結果給服務端。
②使用端
DMS依據使用端的需要,將轉換后的XML文件傳送至使用端,其使用端請求之過程也是通過XML格式的信息(SOAP信息)來傳送資料,并回報執行結果給使用端。
③轉換端/DMS
轉換端它也是一個特教的單一入口,提供信息交換、查詢與儲存的地方,所有文獻管理系統、信息相關的應用系統均可與它保持聯系,在本研究中它是一個信息互通與交換模組,也是各地文獻管理系統信息的資料儲存庫,當DMS接收到服務端(文獻管理系統信息相關應用系統)所傳送的XML資料,它會將這些資料分類儲存進資料庫中。如:接收到使用端需輸出的文獻管理系統信息,DMS便會依使用端所提出之要求,將資料從資料庫中取出,并轉換成使用端所需要的XML文件格式傳送至使用端。
3.2.1 輸出符合文獻管理系統信息交互標準的XML文件
本研究運用Access資料庫先建立出符合圖書館/文獻管理細則及“中國數字圖書館標準規范—數字資源檢索協議規范”的“數據記錄信息”和“數據位置信息”對照表[6],再通過資料庫結構的分析,建立可以從數據庫的各個位置取得信息的對照表。通過輸出的程序,輸出成XML文件。
3.2.2 XML文件輸送到DMS客服端
將系統所建立的XML文件,通過XML輸出/輸出的功能,選擇XML文件所在位置,通過程序呼叫遠端WSDL的描述文件,使其可通過所接收到的WSDL來描述網絡服務的細節,并運用SOAP傳輸協議的標準,將資料傳送到遠端的DMS客服端,并回傳信息到使用端。
未來如有其他信息系統需呼叫本研究所提供的服務,僅需建立一份符合圖書館/文獻管理細則及“中國數字圖書館標準規范—數字資源檢索協議規范”及“數據記錄信息”和“數據位置信息”的XML文件對照表,再通過網絡鏈結至服務所提供的WSDL描述文檔,調整描述服務所使用的參數與型態及可呼叫此網絡服務。
[1]鄭建明,陳雅,陸寶益.數字時代圖書館的合作與資源共享—寫在《圖書館合作與信息資源共享武漢宣言》發表之后 [J].大學圖書館學報,2006,(2).
[2]AlexanderDavis,Du Zhang.A Comparative Study of DCOM and SOAP.Proceeding of the IEEE Fourth International Symposium on MutimediaSofterware Engineering(MSE’02)2002.
[3]Adopted ISO/IEC 10181-1(1996):Information Technology—Open Systems Interconnection—Security Frameworks for Open Systems:Overview.
[4]劉壯業,姚鄭.基于Web服務的教師管理系統的設計與實現[J].中國科學院研究生院學報,2009,(1).
[5]OASIS Standard.eXtensible Access Control Markup Language (XACML)Version 2.0.1.http://docs.oasis-open.org/xacml/2.0/access_control-xacml-2.0-core-spec-os.pdf.Feb2005.
[6]Fayya,Piatetsky-Shapiro,Smyth.“From Data Mining to Knowledge Discovery:An Overview”,in Fayyad,Piatetsky-Shapiro,Smyth,Uthurusamy, Advances in Knowledge Discovery and Data Mining,AAAI Press/The MIT Press,Menlo Park,CA,1996,pp.1-34.