999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于XML Schema的第三方數據同步接口

2009-04-29 00:00:00周霜菊吉久明
現代情報 2009年7期

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

〔關鍵詞〕第三方同步;一卡通;XML Schema

〔中圖分類號〕TP391 〔文獻標識碼〕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

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

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

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

與DTD模式相比,Schema模式具有強大的復雜數據類型定義和數據結構描述功能。直接映射算法是一種比較新的映射算法,其主要設計思想是根據一系列規定的映射法則,將模式中各元素的嵌套關系和層次結構映射成為關系數據庫支持的標準SQL語句,從而在數據庫中建立相應的表結構和約束關系[2]。

2 需求分析與實現思路

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

解掛等數據變動時,要求圖書館集成系統數據庫進行相應的數據變動。由于兩個系統分屬不同公司開發,沒有統一的接口、標準,新開普的一卡通系統數據庫采用的是Oracle數據庫,而圖書館的妙思文獻管理系統采用SQL Server數據庫,這就造成了系統間不能做到互通、互聯和數據分享與更新。

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

3 基于XML Schema的第三方數據同步接口

3.1 系統功能構架

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

3.2 系統的實現

3.2.1 基于XML Schema的第三方數據同步接口的實現

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

AdoStrConYkt

192.168.96.1

Oracle

sa



ykt

AdoStrConTsg

192.168.96.2

Sql Server

sa



tsg

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

FunConfig()

Begin

∥讀取相關參數

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

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

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

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

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

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

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

if not adoconnection1.Connected then ∥連接一卡通數據庫

begin

?adoconnection1.ConnectionString:=StrConYkt;

?adoconnection1.Connected:=true;

end;

if not adoconnection2.Connected then ∥連接圖書館數據庫

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);∥一卡通當前用戶表的最大記錄號

if maxchangid

begin

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

end;

End

∥更新相應信息

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

∥構造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)+′′′;

∥這樣在實際使用中就構造出了:

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

End

4 基于XML Schema的第三方數據同步接口應用

4.1 開發環境

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

4.2 應用實例和效果

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

begin

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

for k:=0 to line-1 do

begin

s:=lb[k].account;

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

while not adoquery1.Eof do

begin

依次讀取每個用戶相關字段信息;

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

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

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

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

end;

Next;

end;

end;

5 結 語

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

參考文獻

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

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

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

[4]王澤賢.廣州大學圖書館與廣州大學城一卡通系統應用集成的實現[J].現代圖書情報技術,2007,(8):84-88.

主站蜘蛛池模板: 九九热视频在线免费观看| 无码精品国产dvd在线观看9久| 国产精品成人免费综合| 亚洲无码日韩一区| 欧美成人看片一区二区三区 | 91人妻日韩人妻无码专区精品| 99re精彩视频| 99热这里都是国产精品| 国内精品视频区在线2021| 喷潮白浆直流在线播放| 久久国产亚洲欧美日韩精品| 亚洲男女天堂| 亚洲精品在线观看91| 亚洲av日韩av制服丝袜| 欧美福利在线观看| 亚洲欧美在线看片AI| 露脸一二三区国语对白| 欧美综合在线观看| 不卡国产视频第一页| 欧美综合在线观看| 欧美精品H在线播放| 亚洲天堂在线免费| 中文字幕在线日本| 全午夜免费一级毛片| 一本综合久久| 亚洲中文字幕精品| 国产精品美女网站| 自慰网址在线观看| 中文字幕久久亚洲一区| 精品免费在线视频| 在线免费亚洲无码视频| 精品视频在线观看你懂的一区| 色哟哟精品无码网站在线播放视频| 免费a级毛片视频| 精品综合久久久久久97超人| 欧美成人区| 亚洲精品久综合蜜| 国产精品原创不卡在线| 色老头综合网| 亚洲无码高清一区| 日韩AV无码免费一二三区 | 精品久久久久成人码免费动漫| 91在线高清视频| 欧美日韩激情在线| 狠狠干综合| 国产又爽又黄无遮挡免费观看| 一区二区三区在线不卡免费| 国产精品13页| 亚洲欧美在线综合图区| 亚洲一区免费看| 欧美a级完整在线观看| 国产草草影院18成年视频| 色噜噜中文网| 伊人久久婷婷| 五月婷婷精品| 国产永久无码观看在线| 在线免费a视频| 99精品久久精品| 成人在线亚洲| 亚洲h视频在线| 中日韩欧亚无码视频| 91色老久久精品偷偷蜜臀| 亚洲av日韩综合一区尤物| 妇女自拍偷自拍亚洲精品| 黄色三级网站免费| 亚洲伊人久久精品影院| 亚洲第一精品福利| 91人妻日韩人妻无码专区精品| 国产在线一区二区视频| 伊人久久久久久久| 91毛片网| 亚洲无线视频| 亚洲欧洲一区二区三区| 国产福利不卡视频| 欧美亚洲一区二区三区导航| 久久精品嫩草研究院| 亚洲av日韩av制服丝袜| 大学生久久香蕉国产线观看| 综合色88| 亚洲无码高清免费视频亚洲| 国产精品主播| 亚洲成A人V欧美综合天堂|