校園一卡通與圖書館系統數據接口的設計與實現
文章出處:http://5052h112.com 作者: 人氣: 發表時間:2011年09月16日
摘要:分析現有的圖書管理系統與校園“一卡通”接口模式,并以華東理工大學圖書館與校園“一卡通”系統的數據同步為例,介紹在不修改圖書館現有系統的前提下,實現圖書館集成系統與“一卡通”系統的集成。提出基于接口參數的通用數據同步程序的設計方案,并重點介紹集成方案中基于第三方同步的校園“一卡通”與圖書館系統數據接口的實現。
1 引言
國內高校的圖書管理系統,基本上都是在20世紀90年代初發展起來的,大都比校園“一卡通”發展得早。因此現有的圖書管理系統與校園“一卡通”接口的問題,就凸顯在“一卡通”的建設者與圖書館的技術人員面前。現有的接口模式有:核心數據共享模式、脫機傳輸模式和聯機接收模式。通過分析和研究各種接口模式并結合華東理工大學的實際情況,本文給出了基于第三方同步的校園“一卡通”與圖書館系統數據接口的實現方案,并給出了基于接口參數的通用數據同步程序設計。
2 需求分析與實現思路
華東理工大學校園卡系統使用的是新開普電子技術有限公司的數字化校園解決方案,圖書館采用的是大連網信軟件有限公司的妙思文獻管理系統,而圖書館的借書證采用的是校園卡。當學校師生在一卡通中心有新辦卡、掛失、解掛等數據變動時,要求圖書館集成系統數據庫進行相應的數據變動。由于兩個系統分屬不同公司開發,沒有統一的接口和標準:新開普的一卡通系統數據庫采用的是Oracle數據庫,而圖書館的妙思文獻管理系統采用SQLServer數據庫。這就造成了系統間不能做到互通、互聯和數據共享與更新。如果采用核心數據共享接口模式勢必要修改圖書館集成系統,成本高、不切實際;采用脫機傳輸模式不能實時更新讀者信息,會給讀者帶來損失和不便。目前華東理工大學校園網內采用了全校光纖網絡,網絡傳輸條件比較好,具備聯機接收模式的硬件要求。通過分析各種數據同步的接口模式,參考聯機接收模式并結合本校的實際系統,開發基于第三方同步的校園“一卡通”與圖書館系統數據接口,實現了在不修改圖書館集成系統的情況下與校園“一卡通”數據的同步更新。
圖1 系統構架
3 基于接口參數的數據同步系統實現
3.1 系統功能構架
數據同步系統的功能構架分為新開普同步模塊、接口參數配置模塊、文件模塊和更新模塊,如圖1所示。通過新開普數據同步模塊將一卡通的Oracle數據庫復制成中間同步數據庫存放在接口服務器中。由于一卡通數據庫沒有用戶信息的更新流水表,因此在中間數據庫增加觸發器和信息更新流水表,通過觸發器把卡中心用戶信息變動記錄到信息更新流水表中。當一卡通數據庫有信息更新時,中間同步數據庫信息更新流水表添加一條包含用戶新、舊信息的記錄。第三方同步接口的參數配置模塊用于配置同步程序所需的接口,包括數據庫連接參數(包括服務器名稱、數據庫名稱、數據庫用戶、數據庫口令等)、同步數據庫信息接口參數、集成系統信息接口參數等。文件模塊存放經過參數設置生成的相應參數配置文件、記錄上次處理的最大記錄號的文件和日志文件。更新模塊讀取信息更新流水表,更新相應的圖書館數據信息,從而達到了數據更新的同步。其中基于接口參數的第三方數據同步接口模塊是系統的關鍵模塊。
3.2系統的實現
(1)基于接口參數的通用數據同步方案:由于業界沒有相應的標準來解決圖書館的數據同步問題,當被同步的系統升級時,采用直接訪問被同步系統的數據庫的方法,很容易給圖書館的工作帶來不便。如本校的校園卡系統在2007年9月突然升級,原有的數據結構發生改變,導致圖書館的數據同步系統不能正常運行,影響了圖書館的正常流通秩序。為了避免此類情況的再次發生,筆者研究設計了基于接口的通用數據同步程序。這種通用程序,不再直接訪問被同步數據庫,而是在同步程序里增加接口參數配置模塊,由該模塊配置同步程序所需的接口,包括數據庫連接參數(包括服務器名稱、數據庫名稱、數據庫用戶、數據庫口令等)、“一卡通”數據庫信息接口參數、同步數據庫信息接口參數、集成系統信息接口參數等。這些配置參數將以文本文件或XML文件的形式存儲,通用數據同步程序負責制定參數配置文件的XML Schema,并提供界面來設定或修改參數XML文件,完成接口參數的修改。
(2)基于接口參數的通用數據同步實現:由于接口參數是由被同步系統提供的,這種基于接口參數的數據同步程序,一方面能夠保持穩定,另一方面也同樣適用于各種異構圖書館與校園“一卡通”的數據同步情況,因為圖書館集成系統和校園“一卡通”所要求的讀者信息基本相同,因而系統首次使用時開發人員只需研究如何配置接口參數。配置好的參數存放在文本文件或XML文件中。例如數據庫連接參數配置可以通過圖2所示的界面來設定,連接配置如下。
圖2 數據庫連接參數設置界面
進行數據同步時,系統調用數據庫連接、同步數據庫信息接口、集成系統信息接口等參數配置文件以及最大記錄號文件來確定讀取和修改的信息。對妙思文
獻管理系統等對外提供編程接口的圖書館集成系統,系統根據配置文件讀取到的接口參數去獲取相關信息,并生成系統適用的標準SQL語句提交給服務器執行,從而實現數據的更新同步。對于ILASII2.0等不向外提供編程接口的圖書館集成系統,系統根據配置文件讀取到的接口參數獲取相關信息并生成指定格式的文本,然后通過ILASII2.0系統本身提供的“讀者定長數據接收”功能實現數據的同步。相關代碼如下:
FunConfig()
Begin
+1) +′and′+inttostr(maxnewid) +′′′
End
4 基于接口參數的通用數據同步應用
4.1 開發環境
本數據同步系統中,一卡通卡中心與接口服務器之間是新開普電子技術有限公司開發的新開普第三方數據同步服務,該服務程序采用VisualStudio2005為開發工具。接口服務器與圖書館集成系統之間是圖書館自行開發的第三方同步服務,該服務程序采用BorlandDelphi7為開發工具。服務程序與數據庫連接采用開放數據庫互聯(OpenDatabaseConnectivity,ODBC),它是能在相關或不相關的數據源、數據庫中存取數據的開放性接口。一個基于ODBC的應用程序對數據庫的操作不依賴任何DBMS,不直接與DBMS交互,所有的數據庫操作都由對應的DBMS的ODBC驅動程序完成。也就是說,不論是FoxPro、Access、MYSQL還是Oracle數據庫,均可以用ODBCAPI進行訪問。
4.2 應用實例和效果
基于接口參數的通用數據同步系統功能界面如圖3所示。通過該接口可以設定程序運行的時間間隔,程序提供包括掛失解掛、掛失補證等用戶信息的同步更新,同時還可以設定讀者類別參數來自動新增讀者。
圖3 基于接口參數的第三方同步系統界面
在華東理工大學圖書館實際使用中,該接口被設定為開機啟動并每5分鐘執行一次數據同步。這樣每隔5分鐘系統對交換日志中的未處理記錄逐條循環分別處理掛失、解掛、補證時,首先讀交換日志獲取上次最后修改的記錄號,然后處理掛失補證解掛情況并根據情況類別分別記入相應的日志文件,同時在相應的文本框中顯示。對于新增的校園卡用戶,接口程序首先檢測該用戶的部門代碼是否在事先所設定的單位代碼列表中,如果在列表中則檢測該用戶的卡號在讀者信息表中是否已存在。如果卡號不存在就往讀者信息表中添加一條新數據,這樣該校園卡用戶就作為新讀者自動同步到圖書館系統中。在本校的實際應用中相關代碼如下:
5 結語
筆者通過分析各種數據同步的模式,開發出適合本校的基于第三方同步的校園“一卡通”與圖書館系統數據的同步程序,實現了在不修改圖書館集成系統的情況下與校園“一卡通”數據的同步更新。并提出了設計基于接口參數的通用數據同步程序的設想,這種模式無論是接口的實現還是硬件設備的投入都是低成本的,具有很強的實用性和通用性。《現代圖書情報技術》(華東理工大學圖書館 周霜菊 吉久明)
【稿件聲明】:如需轉載,必須注明來源和作者,保留文中圖片和內容的完整性,違者將依法追究。