圖書(shū)館管理系統(tǒng)與校園一卡通系統(tǒng)關(guān)于數(shù)據(jù)同步機(jī)制的研究
文章出處:http://www.fang1.net 作者:王涌,柏強(qiáng),周密 人氣: 發(fā)表時(shí)間:2010年07月29日
在大學(xué),兩種或多種數(shù)據(jù)服務(wù)交叉的場(chǎng)點(diǎn)非常多。例如:圖書(shū)館。這樣的場(chǎng)點(diǎn),也稱為數(shù)據(jù)服務(wù)問(wèn)題點(diǎn),由于沒(méi)有解決好多路ISP數(shù)據(jù)流整合和同步,出現(xiàn)應(yīng)用滯后或技術(shù)支持缺乏,或者是花了錢(qián)沒(méi)有達(dá)到實(shí)際效果,硬件兼容和搭配、控制系統(tǒng)高度集成,最終形成多路數(shù)據(jù)融合,是數(shù)據(jù)服務(wù)的重要個(gè)功能,本文研究校園一卡通在圖書(shū)館系統(tǒng)中的應(yīng)用。討論基于解析歸檔日志模式的數(shù)據(jù)同步機(jī)制,為不同服務(wù)間數(shù)據(jù)融合提供支持。
1 數(shù)據(jù)同步功能
在圖書(shū)館,實(shí)現(xiàn)IC借閱功能,涉及兩路數(shù)據(jù)服務(wù),因此,數(shù)據(jù)同步也是雙向的,如圖1所示,一是圖書(shū)館自動(dòng)化管理系統(tǒng)數(shù)據(jù)同步,再就是一卡通系統(tǒng)數(shù)據(jù)同步,下面對(duì)其功能分別描述興邦。
1.1 一卡通數(shù)據(jù)同步
圖書(shū)管理系統(tǒng)對(duì)每一位借閱者分配唯一認(rèn)證編碼,或以條形碼式生成。一卡通系統(tǒng)需要完成的功能如下:
(1)身份認(rèn)證
通過(guò)聯(lián)機(jī)終端上的射頻卡機(jī),讀取寫(xiě)在卡內(nèi)存儲(chǔ)芯片上專儲(chǔ)區(qū)域內(nèi)的認(rèn)證編碼,直接在前端完成和圖書(shū)管理系統(tǒng)的數(shù)據(jù)交換。由于畢業(yè)、掛失、離校等因素.各自獨(dú)立的后臺(tái)數(shù)據(jù)庫(kù)需要身份認(rèn)證的完整性和一致性約束,這就要做系統(tǒng)問(wèn)的數(shù)據(jù)同步。
(2)代扣款項(xiàng)
各個(gè)端口的POS機(jī)通過(guò)采集系統(tǒng)把數(shù)據(jù)傳送到交易平臺(tái)的前置機(jī),該數(shù)據(jù)直接提供給財(cái)務(wù)部門(mén)作為核算憑證,完成支付。由于圖書(shū)管理系統(tǒng)中很多服務(wù)涉及到扣款項(xiàng)目,如賠償、罰款、復(fù)印、在線查閱等,需要和一卡通系統(tǒng)支付平臺(tái)建立數(shù)據(jù)同步,保證賬戶數(shù)據(jù)的準(zhǔn)確性。
1.2圖書(shū)館數(shù)據(jù)同步
完善的圖書(shū)管理系統(tǒng),一般采用C/S(數(shù)據(jù)庫(kù)一中間層一客戶端)、B/S (數(shù)據(jù)庫(kù)一Web服務(wù)器一瀏覽器)兩種模式的架構(gòu)。底層數(shù)據(jù)庫(kù)采用Oracle、Sql Server等,提供通用的ODBC數(shù)據(jù)接口??梢詫?shí)現(xiàn)與第三方軟件無(wú)縫連接,完成數(shù)據(jù)交換。
(1)讀卡模式
發(fā)卡、寫(xiě)卡(寫(xiě)身份認(rèn)證到卡的專儲(chǔ)區(qū)域)由一卡通服務(wù)授權(quán)方負(fù)責(zé),一卡通開(kāi)發(fā)商提供讀卡動(dòng)態(tài)鏈接庫(kù)。ILAS(自動(dòng)圖書(shū)館管理系統(tǒng))提供一個(gè)讀卡程序,singbon將讀到的證號(hào)發(fā)送給ILAS客戶端相關(guān)程序,完成借、還管理,該模式不涉及扣款等消費(fèi)功能。
(2)同步模式
實(shí)時(shí)接收讀者信息、掛失、注銷(xiāo)及扣款等功能的實(shí)現(xiàn),需要保持異步數(shù)據(jù)庫(kù)表與表項(xiàng)對(duì)特征描述的一致性??缙脚_(tái)數(shù)據(jù)交換的中心是同步服務(wù)程序,也是一個(gè)開(kāi)放的接口服務(wù)程序,多路數(shù)據(jù)服務(wù)都可以向該接口發(fā)送信息(只要他知道了該接口的地址),只有擁有一定權(quán)限的用戶才能從接口中收取相關(guān)數(shù)據(jù)并處理該數(shù)據(jù)。在沒(méi)有第三方提供標(biāo)準(zhǔn)接口時(shí),只能由數(shù)據(jù)服務(wù)雙方或多方開(kāi)發(fā)同步服務(wù)程序。
1.3同步功能描述
由于討論的是基于兩種服務(wù)的數(shù)據(jù)同步,因此要建立各自的同步軟件,功能描述如下:
(1)一卡通中心軟件方實(shí)現(xiàn)功能如下:
一卡通服務(wù)程序?qū)崟r(shí)將請(qǐng)求(新增讀者、修改讀者記錄、換卡、掛失、注銷(xiāo)等)發(fā)送給ILAS服務(wù)程序,如果操作失敗(或網(wǎng)絡(luò)不通、超時(shí)等異常發(fā)生時(shí))。一卡通服務(wù)程序需將該次請(qǐng)求(相關(guān)信息)記錄下來(lái)(采用文件,或數(shù)據(jù)庫(kù)方式);然后定時(shí)將這些失敗請(qǐng)求重新發(fā)送給ILAS服務(wù)程序進(jìn)行處理。
(2)ILAS系統(tǒng)實(shí)現(xiàn)功能如下:
ILAS系統(tǒng)將接收到的服務(wù)請(qǐng)求進(jìn)行分析,進(jìn)行相應(yīng)的校園一卡通處理(新增讀者、換卡、掛失、注銷(xiāo)等操作),并將操作結(jié)果返回給一卡通服務(wù)程序。
2基于解析歸檔日志的數(shù)據(jù)同步
由于一個(gè)校園或一個(gè)社區(qū),存在多種類(lèi)數(shù)據(jù)服務(wù)交織,不同的開(kāi)發(fā)技術(shù)和后臺(tái)數(shù)據(jù)庫(kù),造成它們之間數(shù)據(jù)分離。另一方面,整體行政管理帶來(lái)電子數(shù)據(jù)交換需求,這就要求實(shí)施數(shù)據(jù)同步。
解析歸檔日志這種技術(shù)現(xiàn)在應(yīng)用的比較廣泛,Quest公司的shareplex軟件、DSG公司的realsync和Oracle的Stream都是這樣的產(chǎn)品。那么,它能做什么呢?實(shí)現(xiàn)數(shù)據(jù)庫(kù)容錯(cuò)和異構(gòu)、異地?cái)?shù)據(jù)庫(kù)完整性和一致性。
2.1歸檔日志的概念
數(shù)據(jù)庫(kù)系統(tǒng)提供記錄對(duì)庫(kù)操作的所有DML語(yǔ)句的日志文件組,該文件組采取循環(huán)重寫(xiě),只要數(shù)據(jù)庫(kù)運(yùn)行在歸檔模式并且設(shè)置自動(dòng)歸檔為“真”,才能產(chǎn)生永久保存的歸檔日志。它的內(nèi)容包括:數(shù)據(jù)庫(kù)的更改歷史、更改類(lèi)型(INSERT、UPDATE、DELETE、DDL等)、更改對(duì)應(yīng)的SCN號(hào)以及執(zhí)行這些操作的用戶信息等。
2.2歸檔日志解析
歸檔日志的解析首先要確定數(shù)據(jù)庫(kù)問(wèn)的主從關(guān)系,目的是隨著主數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)的改變而重置從數(shù)據(jù)庫(kù)。保持異構(gòu)或異地?cái)?shù)據(jù)庫(kù)的同步,這里的邏輯結(jié)構(gòu)包含表、表項(xiàng)及記錄等。解析過(guò)程其實(shí)就是源操作的分解過(guò)程,重構(gòu)等價(jià)的SQL語(yǔ)句。具體如圖2所示。
2.3 Oracle的Stream
Oracle Stream 利用高級(jí)隊(duì)列技術(shù)。從庫(kù)與主庫(kù)可以是不同的操作系統(tǒng)平臺(tái),也可以是多對(duì)一的建立關(guān)聯(lián)。通過(guò)解析歸檔日志,將歸檔日志解析成DDL及DML語(yǔ)句,對(duì)從數(shù)據(jù)庫(kù)組實(shí)施追加操作,實(shí)現(xiàn)數(shù)據(jù)庫(kù)之間的同步。這種技術(shù)可以將整個(gè)主數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)中的對(duì)象備份為一個(gè)新庫(kù),對(duì)歸檔日志和關(guān)聯(lián)的備份庫(kù)進(jìn)行數(shù)據(jù)解析,進(jìn)而在對(duì)主庫(kù)及相關(guān)一卡通支付平臺(tái)沒(méi)有任何采集與更新壓力的情況下,實(shí)現(xiàn)對(duì)主數(shù)據(jù)庫(kù)組及表、對(duì)象、表項(xiàng),甚至整個(gè)數(shù)據(jù)庫(kù)組的同步。
2.4系統(tǒng)配置示例
(1)一卡通數(shù)據(jù)平臺(tái)和交易平臺(tái)
服務(wù)器(舊M小型機(jī)9133—55A)配置:IBM P6 55A (4 X 2.1GHz CPU、16GB內(nèi)存、2 X 146G硬盤(pán)、2 X 4GB HBA光纖卡、DVD、磁帶機(jī)、雙口網(wǎng)卡、顯卡、異步卡AIX6 1操作系統(tǒng)、HA軟件)后臺(tái)數(shù)據(jù)庫(kù):Oracle Database 1OGFOR lBM Al×5L
(2)ILAS系統(tǒng)
服務(wù)器: 浪潮英信NF5280(XeonE5520/2GB/1 46GB)系統(tǒng):SCO(UNIX)OPEN SERVER RE—LEASE 5 O 7
圖1一卡通借閱同步服務(wù)示意圖
圖2主從式歸檔解析示意圖
3 結(jié)束語(yǔ)
基于異構(gòu)平臺(tái)的數(shù)據(jù)同步方法很多,如消息隊(duì)列法、觸發(fā)器法。比較各種方法,考慮數(shù)據(jù)傳輸、交換的瞬時(shí)性和突發(fā)性,需要加強(qiáng)對(duì)數(shù)據(jù)平臺(tái)的保護(hù),特別是對(duì)由數(shù)據(jù)平臺(tái)和支付平臺(tái)組成和一卡通系統(tǒng)尤為重要。雙向數(shù)據(jù)同步,源數(shù)據(jù)和目標(biāo)數(shù)據(jù)具有動(dòng)態(tài)性.歸檔日志解析,通過(guò)建立多級(jí)備份,實(shí)現(xiàn)對(duì)聯(lián)動(dòng)操作的限制和過(guò)濾,保證了數(shù)據(jù)安全。本文是我們完成圖書(shū)管理系統(tǒng)和一卡通系統(tǒng)數(shù)據(jù)同步工作的總結(jié),被立為三亞市科信局2009年批準(zhǔn)項(xiàng)目。校園一卡通