董曉輝 楊 勇
摘 要:本文結(jié)合西北師范大學校園“一卡通”項目及筆者在工作中的疑惑,探討了校園“一卡通”數(shù)據(jù)庫的主流設(shè)計模式,伴隨著數(shù)據(jù)同步的疑問,提出了一種可行的、滿足“一卡通”平臺和各部門子系統(tǒng)數(shù)據(jù)庫需求的數(shù)據(jù)庫集成機制,對校園“一卡通”系統(tǒng)和數(shù)字化校園建設(shè)具有一定的參考價值。
關(guān)鍵詞:一卡通 分布式異構(gòu)數(shù)據(jù)庫 XML 數(shù)據(jù)同步
中圖分類號:TP311.13文獻標識碼:A 文章編號:1673-8454(2009)05-0027-02
一、概述
校園“一卡通”系統(tǒng)是以非接觸式射頻IC卡作為身份認證、信息存儲、儲值消費和信息傳遞介質(zhì),以計算機數(shù)據(jù)庫技術(shù)和網(wǎng)絡(luò)通信技術(shù)為支撐,將計算機網(wǎng)絡(luò)的數(shù)字化理念注入到校園管理,一定程度上把校園內(nèi)的各個獨立的管理子系統(tǒng)有機地銜接起來,采用一張校園卡代替校內(nèi)使用的學生證、教師證、借書證、飯卡等各種證件,加強校內(nèi)的資源共享,減少重復建設(shè)和數(shù)據(jù)冗余,實現(xiàn)校園信息統(tǒng)一管理的數(shù)據(jù)平臺,是數(shù)字化校園的基礎(chǔ)工程。[1]
作為高校的數(shù)字化平臺,校園“一卡通”如何發(fā)揮其數(shù)據(jù)中心的作用,如何與現(xiàn)有的各個獨立的子系統(tǒng)數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)集成,采用什么樣的集成機制才能實現(xiàn)數(shù)據(jù)的有效共享和同步,成為校園“一卡通”建設(shè)的核心問題。
二、問題的提出
傳統(tǒng)的“一卡一庫”設(shè)計模式(即所有的功能模塊都使用一個數(shù)據(jù)庫),雖然能夠保證數(shù)據(jù)的高度一致性和有效共享,但后期系統(tǒng)升級和功能擴展時,開銷太大,幾乎要重新建設(shè),不適合“一卡通”數(shù)據(jù)庫的設(shè)計要求。
隨著“一卡通”概念的成熟和建設(shè)經(jīng)驗的積累,“一卡多庫”的分布式數(shù)據(jù)庫共享模式已經(jīng)成為“一卡通”數(shù)據(jù)庫設(shè)計的主流模式。[2] 以卡戶信息數(shù)據(jù)庫為核心庫,校內(nèi)各部門可根據(jù)部門性質(zhì)和功能需求各自建立相對獨立的子系統(tǒng)和功能模塊數(shù)據(jù)庫,與核心庫對接形成分布式數(shù)據(jù)庫,各部門的數(shù)據(jù)由自己的DBMS(數(shù)據(jù)庫管理系統(tǒng))管理,具有自治處理能力。這樣的優(yōu)點是反應速度快,可擴展性好,能適應學校規(guī)模的不斷擴大,同時增加了“一卡通”系統(tǒng)的靈活性與獨立性,便于“一卡通”應用系統(tǒng)的擴充與升級改造。然而這種數(shù)據(jù)庫設(shè)計方法由于各子系統(tǒng)數(shù)據(jù)庫相對獨立,必然導致核心數(shù)據(jù)庫中的卡信息與各子系統(tǒng)數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)出現(xiàn)不同步的問題。下文將討論如何建立有效的數(shù)據(jù)庫集成機制來解決這樣的問題。
三、數(shù)據(jù)庫集成機制研究
1.校園“一卡通”數(shù)據(jù)庫的復雜性
在“一卡多庫”的分布式數(shù)據(jù)庫共享模式下,由于各部門職能不盡相同,所需的數(shù)據(jù)也不盡相同,采用的數(shù)據(jù)庫各有差異,使得數(shù)據(jù)庫的集成變得異常復雜。下面以西北師范大學校園“一卡通”工程為例說明。
(1)各職能部門所需數(shù)據(jù)不一
圖書館數(shù)據(jù)庫和一卡通核心庫的同步以個人編號(學號或工號)為關(guān)鍵字,機房管理數(shù)據(jù)庫與一卡通核心庫的同步以校園卡賬號為關(guān)鍵字,學生處、財務處數(shù)據(jù)與校園一卡通核心庫的同步以身份證號為關(guān)鍵字。
(2)數(shù)據(jù)庫平臺和運行環(huán)境不一
一卡通核心庫采用Oracle 10g數(shù)據(jù)庫,圖書館采用Informix數(shù)據(jù)庫,運行環(huán)境都為Redhat Linux As4;機房管理系統(tǒng)采用SQL Server 2000數(shù)據(jù)庫,學生處和財務處采用Visual FoxPro數(shù)據(jù)庫,運行環(huán)境都為Windows server 2003 sp2。
(3)建設(shè)時間和數(shù)據(jù)格式不一
各個子系統(tǒng)數(shù)據(jù)庫是在不同階段開發(fā)建設(shè)的,每個子數(shù)據(jù)庫都有自己的運行環(huán)境和數(shù)據(jù)庫系統(tǒng),這些數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)格式又不一致,數(shù)據(jù)難以交換和同步。
(4)硬件配置和網(wǎng)絡(luò)狀況不一
一卡通核心庫使用的服務器是IBM 460,機房管理子系統(tǒng)使用IBM 346服務器,其他部門所使用的服務器各不相同。一卡通核心庫、機房管理子系統(tǒng)、圖書館系統(tǒng)都通過校園網(wǎng)主干線路接入,而學生處、財務處等部門的系統(tǒng)則是通過校園網(wǎng)分支線路接入,造成網(wǎng)絡(luò)狀況的不一致。
在這種復雜的情況下,采用怎樣的機制才能保證數(shù)據(jù)的有效同步、保證數(shù)據(jù)在核心數(shù)據(jù)庫與各子系統(tǒng)數(shù)據(jù)庫之間的一致性、保證校園卡用戶正常辦理各種業(yè)務。
2.分布式異構(gòu)數(shù)據(jù)庫的同步機制
(1)分布式異構(gòu)數(shù)據(jù)庫概念
分布式異構(gòu)數(shù)據(jù)庫的異構(gòu)主要表現(xiàn)在各個子系統(tǒng)的計算機體系平臺的異構(gòu)、操作系統(tǒng)的異構(gòu)、DBMS中的數(shù)據(jù)模型和物理模型的異構(gòu)等等。分布式異構(gòu)數(shù)據(jù)庫同步的核心就是要解決各個子系統(tǒng)的分布性和異構(gòu)性,實現(xiàn)數(shù)據(jù)的同步和一致。
(2)數(shù)據(jù)庫同步技術(shù)
目前比較先進的異構(gòu)數(shù)據(jù)庫同步技術(shù)是利用標準的XML傳輸和SQL數(shù)據(jù)操縱,采用基于訂閱與發(fā)布模式的數(shù)據(jù)庫同步技術(shù),靈活地選擇數(shù)據(jù)庫中的某些表,生成和解析XML文件,從而實現(xiàn)SQL Server,Oracle,MySql和DB2等流行數(shù)據(jù)庫系統(tǒng)之間的數(shù)據(jù)同步。
3.校園“一卡通”數(shù)據(jù)庫的有效同步機制
依據(jù)以上的分布式異構(gòu)數(shù)據(jù)庫同步技術(shù),本文就校園“一卡通”的數(shù)據(jù)庫同步和工作原理,提出如下有效的同步機制。
(1)搭建FTP站點、通過XML文件實現(xiàn)數(shù)據(jù)庫的定時同步
采用XML作為數(shù)據(jù)描述與交換的語言,利用XML文件作為中間文件進行數(shù)據(jù)庫間的數(shù)據(jù)同步。[3] 待同步的數(shù)據(jù)先以XML文件的格式從核心數(shù)據(jù)庫中導出來,放置在FTP相應的目錄中,各個子系統(tǒng)通過FTP獲取XML文件,再經(jīng)過解析XML文件,轉(zhuǎn)化為本地數(shù)據(jù)庫類型,然后導入到本地數(shù)據(jù)庫中。這樣,一種系統(tǒng)的數(shù)據(jù)就能夠透明地轉(zhuǎn)化為另外一種系統(tǒng)的數(shù)據(jù)。
校園“一卡通”數(shù)據(jù)庫是一卡通龐大系統(tǒng)中的基礎(chǔ)數(shù)據(jù)平臺,為各個子系統(tǒng)提供基礎(chǔ)數(shù)據(jù),比如,學號、身份證號、姓名、校園卡賬號、銀行賬號等基礎(chǔ)字段。根據(jù)一卡通的功能,在數(shù)據(jù)庫設(shè)計中要建立身份驗證庫,用來識別卡戶的身份,各個子系統(tǒng)利用授權(quán)給自己的賬號和密碼通過FTP站點定時獲取所需表的XML文件,解析轉(zhuǎn)化后導入本地數(shù)據(jù)庫中,實現(xiàn)數(shù)據(jù)庫的定時同步。
(2)兩層身份識別機制
如上所述的同步機制,存在著很大的缺陷,這種同步機制不是實時的,在同步之前存在一段時間的數(shù)據(jù)不一致情況。當某個卡戶掛失了丟失的卡以后,由于短時間的數(shù)據(jù)不一致,導致該掛失卡還可以在圖書管理系統(tǒng)中借書,這將會給圖書館或者失主帶來一定的損失,但是如果數(shù)據(jù)庫實現(xiàn)實時同步,每天將會有成千上萬條信息實時傳輸,數(shù)據(jù)庫每日將要提交和同步處理上萬次事務,這對于一卡通系統(tǒng)和校園網(wǎng)來說是個很大的壓力和開銷,甚至承受不了這么大的負載。
在這里我們構(gòu)建兩層處理機制。第一、建立對接機,對一卡通的所有終端進行監(jiān)控,調(diào)用身份驗證數(shù)據(jù)庫??☉粼诮K端刷卡時,對接機就可以通過核心數(shù)據(jù)庫的身份驗證庫直接驗證卡戶的信息和狀態(tài),這樣可以避免數(shù)據(jù)庫同步之前子系統(tǒng)庫與核心庫不一致的情況。第二、數(shù)據(jù)庫定時同步,在網(wǎng)絡(luò)比較空閑的情況下(比如凌晨三四點),通過FTP站點、XML解析機制進行數(shù)據(jù)庫同步。各個子系統(tǒng)可以各取所需,在各自規(guī)定的時間里,取得與核心數(shù)據(jù)庫的數(shù)據(jù)一致。如圖1對數(shù)據(jù)庫集成機制進行了圖示化的詳細說明。
這種數(shù)據(jù)庫集成機制在保證數(shù)據(jù)的有效同步、降低校園網(wǎng)壓力和開銷的同時,使卡戶和相關(guān)部門的業(yè)務也可以正常進行。
四、總結(jié)
本文結(jié)合我校校園“一卡通”系統(tǒng),在分布式異構(gòu)數(shù)據(jù)庫同步原理的基礎(chǔ)上,構(gòu)建了一個可行的、高效的校園“一卡通”數(shù)據(jù)庫集成機制。為校園“一卡通”的建設(shè)和高校數(shù)字化建設(shè)提供了經(jīng)濟、有效的建設(shè)思路。
參考文獻:
[1]西北師范大學數(shù)字化校園建設(shè)規(guī)劃.西北師范大學網(wǎng)絡(luò)教育學院,2005.5.
[2]趙生艷,張琳娜.校園“一卡通”信息系統(tǒng)數(shù)據(jù)庫設(shè)計芻議[J].科技咨詢導報,2007(2).
[3]熊現(xiàn),邱衛(wèi)東,陳克非.基于JAVA/XML的分布式異構(gòu)數(shù)據(jù)庫同步系統(tǒng)的實現(xiàn)[J].計算機應用與軟件,2008(2).