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