国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于XML Schema的第三方數(shù)據(jù)同步接口

2009-10-13 03:29周霜菊吉久明
現(xiàn)代情報 2009年7期
關(guān)鍵詞:一卡通

周霜菊 吉久明

〔摘 要〕介紹基于XML的信息交換機(jī)制和映射算法,并以華東理工大學(xué)圖書館與校園“一卡通”系統(tǒng)的數(shù)據(jù)同步為例,介紹在不修改圖書館現(xiàn)有系統(tǒng)的前提下,實現(xiàn)圖書館集成系統(tǒng)與“一卡通”系統(tǒng)的集成。結(jié)合XML技術(shù),給出基于Schema XML的第三方數(shù)據(jù)同步接口的校園“一卡通”與圖書館系統(tǒng)數(shù)據(jù)同步的實現(xiàn)方案,并重點介紹了集成方案中基于Schema XML的數(shù)據(jù)同步接口的實現(xiàn)。

〔關(guān)鍵詞〕第三方同步;一卡通;XML Schema

〔中圖分類號〕TP391 〔文獻(xiàn)標(biāo)識碼〕C 〔文章編號〕1008-0821(2009)07-0162-04

A Data Sync Scheme Based on XMLZhou Shuangju Ji Jiuming

(Institute of Scientific and Technical Information,East China University of Science and Technology,

Shanghai 200237),China)

〔Abstract〕Firstly,the paper introduced information-exchange mechanism based on XML and rules about mapping arithmetic based on Schema.Then giving a presentation of the integration scheme of the smart card system and book management system in East China university of science and technology.The design of a universal data sync interface system base parameter is proposed and the major data sync scheme based third party agent technology used in implementation was given.

〔Key words〕third party agent;smart card;XML Schema

國內(nèi)高校的圖書管理系統(tǒng),基本上都是在上世紀(jì)九十年代初發(fā)展起來的,大都比校園“一卡通”發(fā)展得早。因此現(xiàn)有的圖書管理系統(tǒng)與校園“一卡通”接口的問題,就凸顯在“一卡通”的建設(shè)者與圖書館的技術(shù)人員面前[1]。隨著XML技術(shù)的發(fā)展及其相關(guān)技術(shù)體系的日趨完善,XML的可擴(kuò)展性使得異構(gòu)的信息系統(tǒng)之間可以整合不同類型的數(shù)據(jù)源,并且可以利用XML文檔來進(jìn)行數(shù)據(jù)的導(dǎo)入、導(dǎo)出和交換。本文結(jié)合XML技術(shù),給出了基于XML Schema的第三方數(shù)據(jù)同步接口的校園“一卡通”與圖書館系統(tǒng)數(shù)據(jù)同步的實現(xiàn)方案。

1 基于XML的信息交換機(jī)制和映射算法

基于XML Schema的信息交換機(jī)制是一種采用關(guān)系數(shù)據(jù)庫和XML文檔相結(jié)合的數(shù)據(jù)管理機(jī)制,基于這種機(jī)制的信息系統(tǒng)體系結(jié)構(gòu)如圖1所示。該機(jī)制分析用于交換的信息的數(shù)據(jù)結(jié)構(gòu),設(shè)計出相應(yīng)的XML模式,并將模式文檔傳遞給X-RDB功能組件。X-RDB功能組件接收傳遞過來的XML模式文檔和XML文檔,將XML模式影射為數(shù)據(jù)庫關(guān)系模式,采用查詢語言進(jìn)行關(guān)系數(shù)據(jù)庫的更新、查詢、刪除和插入操作[2]。

與DTD模式相比,Schema模式具有強(qiáng)大的復(fù)雜數(shù)據(jù)類型定義和數(shù)據(jù)結(jié)構(gòu)描述功能。直接映射算法是一種比較新的映射算法,其主要設(shè)計思想是根據(jù)一系列規(guī)定的映射法則,將模式中各元素的嵌套關(guān)系和層次結(jié)構(gòu)映射成為關(guān)系數(shù)據(jù)庫支持的標(biāo)準(zhǔn)SQL語句,從而在數(shù)據(jù)庫中建立相應(yīng)的表結(jié)構(gòu)和約束關(guān)系[2]。

2 需求分析與實現(xiàn)思路

華東理工大學(xué)校園卡系統(tǒng)使用的是新開普電子技術(shù)有限公司的數(shù)字化校園解決方案,圖書館采用的是大連網(wǎng)信軟件有限公司的妙思文獻(xiàn)管理系統(tǒng),而圖書館的借書證采用的是校園卡。當(dāng)學(xué)校師生在一卡通中心有新辦卡、掛失、

解掛等數(shù)據(jù)變動時,要求圖書館集成系統(tǒng)數(shù)據(jù)庫進(jìn)行相應(yīng)的數(shù)據(jù)變動。由于兩個系統(tǒng)分屬不同公司開發(fā),沒有統(tǒng)一的接口、標(biāo)準(zhǔn),新開普的一卡通系統(tǒng)數(shù)據(jù)庫采用的是Oracle數(shù)據(jù)庫,而圖書館的妙思文獻(xiàn)管理系統(tǒng)采用SQL Server數(shù)據(jù)庫,這就造成了系統(tǒng)間不能做到互通、互聯(lián)和數(shù)據(jù)分享與更新。

由于業(yè)界沒有相應(yīng)的標(biāo)準(zhǔn)來解決圖書館的數(shù)據(jù)同步問題,當(dāng)被同步的系統(tǒng)升級時,采用直接訪問被同步系統(tǒng)的數(shù)據(jù)庫的方法,很容易給圖書館的工作帶來不便。如我校的校園卡系統(tǒng)在2007年9月突然升級,原有的數(shù)據(jù)結(jié)構(gòu)發(fā)生改變,導(dǎo)致圖書館的數(shù)據(jù)同步系統(tǒng)不能正常運(yùn)行,影響了圖書館的正常流通秩序。為了避免此類情況的再次的發(fā)生,我們正研究設(shè)計基于接口的通用的數(shù)據(jù)同步程序。這種通用程序,不再直接訪問被同步數(shù)據(jù)庫,而是通過在同步程序里增加接口參數(shù)配置模塊。由該模塊配置同步程序所需的接口,包括數(shù)據(jù)庫連接參數(shù)(包括服務(wù)器名稱、數(shù)據(jù)庫名稱、數(shù)據(jù)庫用戶、數(shù)據(jù)庫口令等)、一卡通數(shù)據(jù)庫信息接口參數(shù)、同步數(shù)據(jù)庫信息接口參數(shù)、集成系統(tǒng)信息接口參數(shù)等。這些配置參數(shù)將以文本文件或XML文件形式存儲,通用數(shù)據(jù)同步程序負(fù)責(zé)制定參數(shù)配置文件的XML Schema[3],并提供界面來設(shè)定或修改參數(shù)XML文件,完成接口參數(shù)的修改。

3 基于XML Schema的第三方數(shù)據(jù)同步接口

3.1 系統(tǒng)功能構(gòu)架

數(shù)據(jù)同步系統(tǒng)的功能構(gòu)架分為新開普同步模塊、接口參數(shù)配置模塊、文件模塊、X-RDB功能組件和更新模塊組成,如圖2。通過新開普數(shù)據(jù)同步模塊將一卡通的Oracle數(shù)據(jù)庫復(fù)制成中間同步數(shù)據(jù)庫存放在接口服務(wù)器中。由于一卡通數(shù)據(jù)庫沒有用戶信息的更新流水表,因此在中間數(shù)據(jù)庫增加觸發(fā)器和信息更新流水表,通過觸發(fā)器把卡中心用戶信息變動記錄到信息更新流水表中。當(dāng)一卡通數(shù)據(jù)庫有信息更新時,中間同步數(shù)據(jù)庫信息更新流水表添加一條包含用戶新、舊信息的記錄。第三方同步接口的參數(shù)配置模塊用于配置同步程序所需的接口,包括數(shù)據(jù)庫連接參數(shù)(包括服務(wù)器名稱、數(shù)據(jù)庫名稱、數(shù)據(jù)庫用戶、數(shù)據(jù)庫口令等)、同步數(shù)據(jù)庫信息接口參數(shù)、集成系統(tǒng)信息接口參數(shù)等。文件模塊存放經(jīng)過參數(shù)設(shè)置生成的相應(yīng)參數(shù)配置文件、記錄上次處理的最大記錄號的文件和日志文件。X-RDB功能組件接收文件模塊傳遞過來的XML模式文檔和XML文檔,將XML模式影射為數(shù)據(jù)庫關(guān)系模式,輸出查詢語言給更新模塊進(jìn)行關(guān)系數(shù)據(jù)庫的更新、查詢、刪除和插入操作。更新模塊讀取信息更新流水表,更新相應(yīng)的圖書館數(shù)據(jù)信息,從而達(dá)到了數(shù)據(jù)更新的同步。其中基于Schema XML的第三方數(shù)據(jù)同步接口模塊是系統(tǒng)的關(guān)鍵模塊。

3.2 系統(tǒng)的實現(xiàn)

3.2.1 基于XML Schema的第三方數(shù)據(jù)同步接口的實現(xiàn)

由于接口參數(shù)是由被同步系統(tǒng)提供的,這種基于接口參數(shù)的數(shù)據(jù)同步程序,一方面能夠保持穩(wěn)定,另一方面也同樣適用于各種異構(gòu)圖書館與校園“一卡通”的數(shù)據(jù)同步情況,因為圖書館集成系統(tǒng)和校園一卡通所要求的讀者信息基本相同,因而系統(tǒng)首次使用時開發(fā)人員只需研究如何配置接口參數(shù)就行了。配置好后的參數(shù)存放在文本文件或XML文件中。例如數(shù)據(jù)庫連接參數(shù)配置可以通過圖3的界面來設(shè)定,配置完成后,形成以下形式的XML配置文件:

xml version=′1.0′encoding=′GB2312′?

AdoStrConYkt

192.168.96.1

Oracle

sa

唱唱

ykt

AdoStrConTsg

192.168.96.2

Sql Server

sa

唱唱

tsg

進(jìn)行數(shù)據(jù)同步時,系統(tǒng)調(diào)用數(shù)據(jù)庫連接、同步數(shù)據(jù)庫信息接口、集成系統(tǒng)信息接口等參數(shù)配置文件以及最大記錄號文件來確定讀取和修改的信息。對妙思文獻(xiàn)管理系統(tǒng)等對外提供編程接口的圖書館集成系統(tǒng),系統(tǒng)根據(jù)配置文件讀取到的接口參數(shù)去獲取相關(guān)信息,并生成系統(tǒng)適用的標(biāo)準(zhǔn)SQL語句提交給服務(wù)器執(zhí)行,從而實現(xiàn)數(shù)據(jù)的更新同步。對于ILASII2.0等不向外提供編程接口的圖書館集成系統(tǒng),系統(tǒng)根據(jù)配置文件讀取到的接口參數(shù)獲取相關(guān)信息并生成指定格式的文本,然后通過ILASII2.0系統(tǒng)本身提供的“讀者定長數(shù)據(jù)接收”功能實現(xiàn)數(shù)據(jù)的同步[4]。相關(guān)代碼如下:

FunConfig()

Begin

∥讀取相關(guān)參數(shù)

StrConYkt=DataConfig(AdoStrConYkt);∥從配置文件中讀取一卡通連接的參數(shù)并返回相應(yīng)的連接字符串

StrConTsg=DataConfig(AdoStrConTsg);∥從配置文件中讀取圖書館連接的參數(shù)并返回相應(yīng)的連接字符串

StrTableLsb=GetTable(StrTableLsb);∥從配置文件中讀取同步數(shù)據(jù)庫的流水表名

StrTableYkt=GetTable(TableYkt);∥從配置文件中讀取一卡通用戶表的表名

StrTableTsg=GetTable(TableTsg);∥從配置文件中讀取讀者信息表的表名

StrFieldYkt=ReadInfo(StrFieldYkt);∥從配置文件中讀取一卡通信息接口名稱

StrFieldTsg=ReadInfo(StrFieldTsg);∥從配置文件中讀取集成系統(tǒng)信息接口名稱

if not adoconnection1.Connected then ∥連接一卡通數(shù)據(jù)庫

begin

?adoconnection1.ConnectionString:=StrConYkt;

?adoconnection1.Connected:=true;

end;

if not adoconnection2.Connected then ∥連接圖書館數(shù)據(jù)庫

begin

?adoconnection2.ConnectionString:=StrConTsg;

?adoconnection2.Connected:=true;

end;

End

∥新增讀者

Begin

FunConfig()

method:=′new′;

filename:=′newid.txt′;∥存放上次新增的最大記錄號

tablename:=StrTableYkt;

maxchangid:=readoldid(filename);∥獲取上次最后新增的記錄號

maxnewid:=readnewid(tablename,StrMaxYkt);∥一卡通當(dāng)前用戶表的最大記錄號

if maxchangid

begin

DataSync(maxchangid,maxnewid,method,StrTableLsb,StrTableYkt,StrTableTsg,StrFieldYkt,StrFieldTsg);

end;

End

∥更新相應(yīng)信息

Begin

FunConfig()

method:=′old′;

filename:=′logservermax.txt′;∥存放上次最后修改的記錄號

tablename:=StrTableLsb;

maxchangid:=readoldid(filename);∥獲取上次最后修改的記錄號

maxnewid:=readnewid(StrTableLsb,StrMaxLsb);∥更新流水表里的最大更新記錄號

if maxchangid

begin

DataSync(maxchangid,maxnewid,method,StrTableLsb,StrTableYkt,StrTableTsg,StrFieldYkt,StrFieldTsg);

end;

End

∥構(gòu)造SQL語句

SqlMadeUser(maxchangid,maxnewid,StrTableYkt,StrFieldYkt)

Begin

SqlSelect=strRead(StrFieldYkt,StrUser)∥獲取一卡通中用戶的信息字段名稱

SqlFrom=StrTableYkt∥獲取一卡通用戶信息表的名稱

SqlWhere=strRead(StrFieldYkt,StrMaxYkt)∥獲取一卡通用戶信息表記錄號字段名稱

strSql=SqlSelect+SqlFrom+SqlWhere between′+inttostr(maxchangid+1)+′and′+inttostr(maxnewid)+′′′;

∥這樣在實際使用中就構(gòu)造出了:

∥strSql=′select cardno,name,outid,customerid from BASEzCUSTOMERS where customerid between′+inttostr(maxchangid+1)+′and′+inttostr(maxnewid)+′′′

End

4 基于XML Schema的第三方數(shù)據(jù)同步接口應(yīng)用

4.1 開發(fā)環(huán)境

華東理工大學(xué)一卡通中心和圖書館集成系統(tǒng)數(shù)據(jù)同步系統(tǒng)中,一卡通卡中心與接口服務(wù)器之間是新開普電子技術(shù)有限公司開發(fā)的新開普第三方數(shù)據(jù)同步服務(wù),該服務(wù)程序采用Visual Studio 2005為開發(fā)工具。接口服務(wù)器與圖書館集成系統(tǒng)之間是圖書館自行開發(fā)的第三方同步服務(wù),該服務(wù)程序采用Borland Delphi 7為開發(fā)工具。服務(wù)程序與數(shù)據(jù)庫連接采用ADO(ActiveX DATA Object),它是微軟公司提出訪問任何數(shù)據(jù)源及數(shù)據(jù)庫的通用數(shù)據(jù)訪問對象,它用SQL語言代碼對數(shù)據(jù)庫及數(shù)據(jù)源進(jìn)行創(chuàng)建、插入、刪除和修收。

4.2 應(yīng)用實例和效果

基于XML Schema的第三方通用數(shù)據(jù)同步系統(tǒng)功能如圖4所示。通過該接口可以設(shè)定程序運(yùn)行時間間隔,程序提供包括用戶掛失解掛、掛失補(bǔ)證等用戶信息的同步更新,同時還可以設(shè)定讀者類別參數(shù)來自動新增讀者。在華東理工大學(xué)圖書館實際使用中,該接口被設(shè)定為開機(jī)啟動并每5分鐘執(zhí)行一次數(shù)據(jù)同步這樣每隔5分鐘系統(tǒng)對交換日志中的未處理記錄逐條循環(huán)分別處理掛失、解掛、補(bǔ)證時,首先讀交換日志獲取上次最后修改的記錄號,然后處理掛失補(bǔ)證解掛情況并根據(jù)情況類別分別記入相應(yīng)的日志文件同時在相應(yīng)的文本框中顯示出來。對于新增的校園卡用戶,接口程序首先檢測該用戶的部門代碼是否在事先所設(shè)定的單位代碼列表里,如果在列表里則檢測該用戶的卡號在讀者信息表里是否已存在。如果卡號不存在就往讀者信息表里添加一條新數(shù)據(jù),這樣該校園卡用戶就作為新讀者自動同步到圖書館系統(tǒng)里。在本校的實際應(yīng)用中相關(guān)代碼如下:

begin

readinlb();∥讀取讀者單位類別列表文件

for k:=0 to line-1 do

begin

s:=lb[k].account;

取出第k個單位未處理的新用戶信息;

while not adoquery1.Eof do

begin

依次讀取每個用戶相關(guān)字段信息;

if讀者信息表里不存在該用戶then

插入該用戶信息入讀者信息表中;

在備注框中顯示新增讀者的信息;

在日志文件里寫新增讀者的信息;

end;

Next;

end;

end;

5 結(jié) 語

筆者通過分析各種數(shù)據(jù)同步的模式,開發(fā)出適合本校的基于第三方同步的校園“一卡通”與圖書館系統(tǒng)數(shù)據(jù)的同步程序,實現(xiàn)了不修改圖書館集成系統(tǒng)的情況下與校園“一卡通”數(shù)據(jù)的同步更新。并提出了設(shè)計基于接口參數(shù)的通用數(shù)據(jù)同步程序的設(shè)想,這種模式一方面能夠保持穩(wěn)定,另一方面也同樣適用于各種異構(gòu)圖書館與校園“一卡通”的數(shù)據(jù)同步情況,無論是接口的實現(xiàn)還是硬件設(shè)備的投入都是低成本的,具有很強(qiáng)的實用性和通用性。

參考文獻(xiàn)

[1]鄧堯偉.圖書管理系統(tǒng)與校園“一卡通”接口模式研究[J].圖書館論壇,2005,(2):79-81.

[2]劉偉.基于Schema的XML模式與關(guān)系模式映射算法的研究[J].計算機(jī)應(yīng)用與軟件,2006,(3):113-115.

[3]吉久明,李楠.建立基于知識集成的資源和服務(wù)整合與協(xié)同機(jī)制[J].現(xiàn)代圖書情報技術(shù),2006,(9):58-62.

[4]王澤賢.廣州大學(xué)圖書館與廣州大學(xué)城一卡通系統(tǒng)應(yīng)用集成的實現(xiàn)[J].現(xiàn)代圖書情報技術(shù),2007,(8):84-88.

猜你喜歡
一卡通
基于“一卡通”開發(fā)的員工信息識別系統(tǒng)
公共交通一卡通TSM平臺研究
“銀醫(yī)一卡通”在提高醫(yī)院優(yōu)質(zhì)服務(wù)中的作用
住建部、交通運(yùn)輸部:“一卡通”互聯(lián)互通應(yīng)統(tǒng)—標(biāo)準(zhǔn)
洞头县| 大石桥市| 电白县| 象州县| 望城县| 元氏县| 广宁县| 克拉玛依市| 兰州市| 富锦市| 久治县| 新泰市| 建水县| 财经| 科尔| 乌鲁木齐市| 公主岭市| 麻城市| 资阳市| 江安县| 平舆县| 宿州市| 滁州市| 横峰县| 沛县| 鄂托克前旗| 贵德县| 周宁县| 库车县| 闽侯县| 隆子县| 晴隆县| 河源市| 彩票| 平阳县| 昭通市| 石嘴山市| 团风县| 永德县| 若尔盖县| 东乡族自治县|