李春英,湯志康,常戈群
(1.肇慶學(xué)院 計(jì)算機(jī)學(xué)院,廣東 肇慶 526061;2.廣東技術(shù)師范學(xué)院 計(jì)算機(jī)學(xué)院,廣東 廣州 510665;3.北京宇思時(shí)代信息技術(shù)有限公司,北京 100086)
電子政務(wù)異構(gòu)系統(tǒng)數(shù)據(jù)交換平臺的實(shí)現(xiàn)研究
李春英1,湯志康2,常戈群3
(1.肇慶學(xué)院 計(jì)算機(jī)學(xué)院,廣東 肇慶 526061;2.廣東技術(shù)師范學(xué)院 計(jì)算機(jī)學(xué)院,廣東 廣州 510665;3.北京宇思時(shí)代信息技術(shù)有限公司,北京 100086)
以電子政務(wù)資源整合需求為背景,依托政府專網(wǎng),基于XML,Web Services和IBM WebSphere MQSeries中間件等作為數(shù)據(jù)交換的技術(shù)基礎(chǔ),針對電子政務(wù)異構(gòu)系統(tǒng)數(shù)據(jù)交換平臺的內(nèi)部結(jié)構(gòu)、交換標(biāo)準(zhǔn)、安裝配置、傳輸方式和接口以及信息發(fā)送和接收等問題,提出了簡單可行、代價(jià)最小的實(shí)現(xiàn)方法.
XML;Web Services;MQSeries;異構(gòu)系統(tǒng);數(shù)據(jù)交換
在政府信息化過程中,對于少數(shù)部門的應(yīng)用系統(tǒng)和數(shù)據(jù)與其他應(yīng)用系統(tǒng)或數(shù)據(jù)異構(gòu),這里的異構(gòu)是指不同系統(tǒng)或平臺的部署實(shí)例在系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)上的差異,應(yīng)采用基于異構(gòu)的數(shù)據(jù)交換,可以在較短時(shí)間通過較少的投入,實(shí)現(xiàn)這部分系統(tǒng)與其他主流系統(tǒng)間的數(shù)據(jù)信息共享.異構(gòu)數(shù)據(jù)交換具有平臺配置和平臺運(yùn)行2類功能.平臺配置包括設(shè)定發(fā)送和接收主體、設(shè)定發(fā)送與接收方式、設(shè)定傳送時(shí)間、監(jiān)控傳輸狀態(tài).平臺運(yùn)行包括組織待傳輸?shù)臄?shù)據(jù)、發(fā)送與接收,日志記錄與管理等.其中組織待傳輸?shù)臄?shù)據(jù)包括異構(gòu)數(shù)據(jù)源中的各字段信息與XML格式文件映射配置的實(shí)現(xiàn)、從各數(shù)據(jù)源中導(dǎo)出數(shù)據(jù)到XML文件的實(shí)現(xiàn)以及由XML格式的數(shù)據(jù)向關(guān)系型數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)的實(shí)現(xiàn)[1-2].通過數(shù)據(jù)的導(dǎo)入、導(dǎo)出操作實(shí)現(xiàn)了異構(gòu)系統(tǒng)間的信息互動,使異構(gòu)系統(tǒng)數(shù)據(jù)能無縫地遷移和交換,實(shí)現(xiàn)了信息的高效流轉(zhuǎn)和利用.該異構(gòu)系統(tǒng)采用XML,Web Services,IBM WebSphere MQSeries中間件,數(shù)字字典以及預(yù)定義功能,通過配置異構(gòu)數(shù)據(jù)源的數(shù)據(jù)字段信息與XML標(biāo)準(zhǔn)格式文件的映射,打通了其與外部數(shù)據(jù)進(jìn)行交換的出入口,實(shí)現(xiàn)了異構(gòu)系統(tǒng)間異步的數(shù)據(jù)交換.
XML(eXtensible Markup Language)是針對包含結(jié)構(gòu)化信息的文檔而設(shè)計(jì)的一種標(biāo)記語言.XML是元語言中的一種,所謂“元語言”,就是能夠幫助不同個(gè)人和組織定制自己的標(biāo)記語言的語言,定制后的標(biāo)記語言可以用于特定的應(yīng)用領(lǐng)域中實(shí)現(xiàn)信息數(shù)據(jù)的交換.XML已經(jīng)成為數(shù)據(jù)組織和交換的實(shí)施標(biāo)準(zhǔn).通過制訂和執(zhí)行基于XML的信息交換標(biāo)準(zhǔn),可以很好地解決信息化領(lǐng)域中異構(gòu)系統(tǒng)之間信息共享和數(shù)據(jù)交換問題[3].異構(gòu)系統(tǒng)之間約定數(shù)據(jù)交換的XML格式,通過傳送、接收和解析XML格式數(shù)據(jù),實(shí)現(xiàn)異構(gòu)系統(tǒng)間數(shù)據(jù)內(nèi)容的傳輸和共享.
基于XML和Web服務(wù)的分布式電子政務(wù)數(shù)據(jù)交換需要建立多級數(shù)據(jù)交換中心[4],統(tǒng)一服務(wù)和管理,以保證服務(wù)的質(zhì)量和安全性.?dāng)?shù)據(jù)交換中心采用Web服務(wù)技術(shù)進(jìn)行服務(wù)組件和應(yīng)用系統(tǒng)的包裝,將系統(tǒng)的數(shù)據(jù)展示和需求都看作一種服務(wù),通過服務(wù)的請求和調(diào)用實(shí)現(xiàn)系統(tǒng)間的數(shù)據(jù)交換和共享[5].
MQSeries是IBM的商用通訊中間件,它提供一個(gè)具有工業(yè)標(biāo)準(zhǔn)、安全、可靠的信息傳輸系統(tǒng)和應(yīng)用程序接口API.其中信息傳輸系統(tǒng)是用于確保隊(duì)列之間的信息提供以及網(wǎng)絡(luò)故障或關(guān)閉后的恢復(fù).應(yīng)用程序和信息系統(tǒng)之間通過MQSeries API實(shí)現(xiàn)的接口進(jìn)行連接,MQSeries API在所有MQSeries平臺上是一致的[6],這為平臺的實(shí)施提供了便利.利用MQ Series提供的codesetid,實(shí)現(xiàn)了平臺間透明的數(shù)據(jù)轉(zhuǎn)換;利用MQ Series提供的userid,保證了每條消息的安全.因此,使用IBM WebSphere MQSeries作為解決方案的技術(shù)基礎(chǔ),利用直接、簡單的手段實(shí)現(xiàn)上下級電子政務(wù)異構(gòu)系統(tǒng)間穩(wěn)定可靠的消息傳遞、交換重要的數(shù)據(jù)信息、異步事務(wù)處理和并行處理應(yīng)用等.基于MQ消息中間件技術(shù)實(shí)現(xiàn)的數(shù)據(jù)交換平臺內(nèi)部結(jié)構(gòu)如圖1所示.它由3部分構(gòu)成:數(shù)據(jù)封裝與拆卸、MQSeries和消息傳輸交換管理.?dāng)?shù)據(jù)封裝與拆卸負(fù)責(zé)審批管理系統(tǒng)的業(yè)務(wù)件文檔數(shù)據(jù)與MQSeries處理的XML文本數(shù)據(jù)按照審批系統(tǒng)接口規(guī)范進(jìn)行相互轉(zhuǎn)換.在MQSeries中建立總服務(wù)器與其他數(shù)據(jù)庫服務(wù)器的發(fā)送、接收通道以及本地隊(duì)列、遠(yuǎn)程隊(duì)列、傳輸隊(duì)列,MQSeries負(fù)責(zé)查看其發(fā)送隊(duì)列中的內(nèi)容,并按照規(guī)定的設(shè)置發(fā)送其內(nèi)的XML數(shù)據(jù);同時(shí),MQSeries不斷監(jiān)視并接收傳入的XML數(shù)據(jù).消息傳輸交換管理提供對消息傳輸交換系統(tǒng)配置、監(jiān)視的功能.
數(shù)據(jù)交換平臺與政務(wù)運(yùn)行平臺或?qū)iT的軟件系統(tǒng)是通過交換支撐數(shù)據(jù)庫(主要由業(yè)務(wù)系統(tǒng)的關(guān)系表組成)關(guān)聯(lián)起來的.政務(wù)運(yùn)行平臺或?qū)iT的軟件系統(tǒng)對需要上報(bào)的數(shù)據(jù)資料(包括表格數(shù)據(jù)、文字材料、圖文掃描件和各種圖件)進(jìn)行組卷,采用Web Services技術(shù)把要發(fā)送的組卷數(shù)據(jù)寫到交換支撐數(shù)據(jù)庫中,附件存放到指定的目錄下,附件的一些描述信息也寫到交換支撐數(shù)據(jù)庫中(主要包含存放的路徑和附件文件名等信息).政務(wù)運(yùn)行平臺調(diào)用交換平臺的發(fā)送接口,把待發(fā)送信息的唯一標(biāo)識符傳給發(fā)送接口,發(fā)送接口根據(jù)唯一標(biāo)識符整理要發(fā)送的信息,生成XML文件,根據(jù)XML文件中的內(nèi)容找到發(fā)送的指定隊(duì)列進(jìn)行發(fā)送.發(fā)送完畢后把發(fā)送的結(jié)果寫到交換支撐數(shù)據(jù)庫中.交換平臺根據(jù)接收到的信息類型進(jìn)行分類處理,把接收到的XML文件及其他附件存放到指定的目錄下,再把XML文件數(shù)據(jù)采用Web Service技術(shù)存放到交換支撐數(shù)據(jù)庫中.政務(wù)運(yùn)行平臺從交換支撐數(shù)據(jù)庫中讀取接收到的信息進(jìn)行簽收確認(rèn),根據(jù)交換支撐數(shù)據(jù)庫對附件信息的描述定位附件.統(tǒng)一的政務(wù)數(shù)據(jù)交換平臺是一個(gè)具有工業(yè)標(biāo)準(zhǔn)的、安全可靠的異步數(shù)據(jù)傳輸系統(tǒng),通過該數(shù)據(jù)傳輸系統(tǒng)能夠?qū)崿F(xiàn)各級電子政務(wù)系統(tǒng)之間業(yè)務(wù)件數(shù)據(jù)的交換和簽收、辦結(jié)等數(shù)據(jù)的傳遞.
圖1 數(shù)據(jù)交換平臺內(nèi)部結(jié)構(gòu)
為了便于實(shí)現(xiàn)異構(gòu)系統(tǒng)間的數(shù)據(jù)交換,應(yīng)根據(jù)系統(tǒng)需求分析制定數(shù)據(jù)的交換標(biāo)準(zhǔn).如:統(tǒng)一業(yè)務(wù)件ID設(shè)置標(biāo)準(zhǔn);統(tǒng)一的各種數(shù)據(jù)表的名稱;統(tǒng)一規(guī)定材料和附加材料的名稱;統(tǒng)一規(guī)定各種業(yè)務(wù)類型需要上報(bào)到上級的數(shù)據(jù)表、規(guī)定附加材料和補(bǔ)充附加材料;統(tǒng)一需要上報(bào)和下傳的數(shù)據(jù)表的表結(jié)構(gòu)定義;制定異構(gòu)系統(tǒng)間數(shù)據(jù)的XML數(shù)據(jù)交換標(biāo)準(zhǔn).采用標(biāo)準(zhǔn)的數(shù)據(jù)描述語言XML作為數(shù)據(jù)傳輸?shù)臉?biāo)準(zhǔn),上傳下遞主要通過傳遞XML文件及掃描附件完成對業(yè)務(wù)件數(shù)據(jù)的傳輸.適合政務(wù)系統(tǒng)數(shù)據(jù)交換XML文件定義如下.
信息交換的安裝配置相對復(fù)雜,需要配置的主要參數(shù)有:發(fā)送信息路徑、接收信息路徑、安裝交換系統(tǒng)的機(jī)器IP地址、安裝交換系統(tǒng)的機(jī)器名、創(chuàng)建隊(duì)列的腳本文件、數(shù)據(jù)庫連接字符串、數(shù)據(jù)庫用戶名、數(shù)據(jù)庫用戶口令、XML配置文件路徑.?dāng)?shù)據(jù)交換平臺生成一個(gè)包含這些參數(shù)的XML文件Tran-con.xml,供平臺每次啟動時(shí)使用.這個(gè)XML文件的結(jié)構(gòu)定義如下.
在異構(gòu)系統(tǒng)中考慮到編程語言獨(dú)立性且需要與各自審批系統(tǒng)緊密聯(lián)結(jié),采用Web Service技術(shù)開發(fā)接口.接口服務(wù)程序基于Apache Axis開發(fā),以Soap協(xié)議作為數(shù)據(jù)交換雙方請求與響應(yīng)的底層協(xié)議,以Soap信封作為交換具體內(nèi)容的載體.下級接口開發(fā)方需要根據(jù)文本描述的內(nèi)容,正確的生成/解釋Soap請求/響應(yīng),因?yàn)榻涌诜?wù)本身提供WSDL,所以下級接口開發(fā)方可以在自身開發(fā)系統(tǒng)上生成該服務(wù)的客戶端存根代碼,并嵌入到各自審批系統(tǒng)當(dāng)中.下級系統(tǒng)生成符合標(biāo)準(zhǔn)的XML上報(bào)件組裝成Soap請求,發(fā)送到上級系統(tǒng)接收Web Service上,每次發(fā)送一個(gè)上報(bào)件,該服務(wù)將進(jìn)行對上報(bào)件進(jìn)行標(biāo)準(zhǔn)符合驗(yàn)證并保存至數(shù)據(jù)庫中,根據(jù)驗(yàn)證結(jié)果返回成功信息或錯誤提示響應(yīng).Soap請求與響應(yīng)提交請求,將上報(bào)件XML正文以二進(jìn)制編碼,作為receive Item操作的參數(shù)提交,同時(shí)提供用戶密碼作為驗(yàn)證信息.下級接收系統(tǒng)通過上級發(fā)送Web Service,獲取的Soap響應(yīng)內(nèi)容編碼為一個(gè)XML文件,當(dāng)下級系統(tǒng)成功讀取獲取Soap響應(yīng)后,上級發(fā)送服務(wù)即認(rèn)為下級系統(tǒng)已正常獲取XML內(nèi)容,并從服務(wù)器端刪除該XML文件.
交換平臺提供一個(gè)描述要發(fā)送的基本信息與附件描述信息的JAVABEAN類,這個(gè)JAVABEAN類從交換數(shù)據(jù)庫中讀取要發(fā)送的信息;該JAVABEAN類根據(jù)讀到的信息生成一個(gè)XML文件,把生成的XML文件存放到指定的目錄下;JAVABEAN類傳給交換系統(tǒng)后,交換系統(tǒng)依據(jù)JAVABEAN類中提供的附件描述信息與XML描述信息進(jìn)行發(fā)送;交換系統(tǒng)發(fā)送完畢后,更新交換數(shù)據(jù)庫中的記錄,使原來的“等待發(fā)送”狀態(tài)變?yōu)椤耙寻l(fā)送”狀態(tài).信息發(fā)送流程如圖2所示.系統(tǒng)記錄的發(fā)送信息的屬性有:傳輸ID、標(biāo)題、信息接收的目的地、發(fā)送時(shí)間、狀態(tài)(已發(fā)送或發(fā)送失?。┘皞渥ⅲㄈ绯霈F(xiàn)錯誤,提示錯誤類型),根據(jù)發(fā)送狀態(tài)及接收目的地對發(fā)送的信息進(jìn)行分類.系統(tǒng)把發(fā)送信息日志首先記錄到一個(gè)文本文件中,這個(gè)文本文件存放在交換系統(tǒng)的安裝目錄下.
交換平臺接收到遠(yuǎn)端交換系統(tǒng)傳輸?shù)男畔⒑螅罁?jù)傳輸?shù)男畔㈩愋妥飨鄳?yīng)處理:如果是消息回饋或錯誤消息回饋,則直接處理把傳輸?shù)慕Y(jié)果寫到交換數(shù)據(jù)庫中;如果是業(yè)務(wù)上報(bào)、業(yè)務(wù)簽收、業(yè)務(wù)批復(fù)、退卷類型的消息,系統(tǒng)先把接收到的數(shù)據(jù)流轉(zhuǎn)換為XML文件,并與附件文件一起存放到指定的目錄下(目錄的名字、文件的名字都從接收到的信息中得到),然后再從XML文件中讀取信息寫入交換數(shù)據(jù)庫中.?dāng)?shù)據(jù)接收流程如圖3所示.系統(tǒng)記錄的接收信息屬性有:傳輸ID、標(biāo)題、發(fā)送地、接收時(shí)間、傳輸信息類型、備注(如出現(xiàn)錯誤,提示錯誤類型)等.系統(tǒng)把接收信息日志記錄到一個(gè)文本文件中,這個(gè)文本文件存放在交換系統(tǒng)的安裝目錄下.
以電子政務(wù)系統(tǒng)數(shù)據(jù)交換為背景,利用XML平臺無關(guān)性的特點(diǎn),對基于Web Services,IBM Web-Sphere MQSeries中間件的數(shù)據(jù)交換平臺進(jìn)行分析,給出了數(shù)據(jù)交換平臺的結(jié)構(gòu)及主要功能的實(shí)現(xiàn)方法.該數(shù)據(jù)交換平臺在某省布署實(shí)施,它以實(shí)現(xiàn)方法簡單、快捷,代價(jià)最小等特點(diǎn)解決了電子政務(wù)異構(gòu)系統(tǒng)間穩(wěn)定可靠的消息傳遞、交換數(shù)據(jù)信息和異步事務(wù)處理等問題.它具有良好的可擴(kuò)展性,可以適應(yīng)各級電子政務(wù)系統(tǒng)不斷發(fā)展的信息化需要,但目前也存在一些問題,如:標(biāo)準(zhǔn)滯后,使交換系統(tǒng)運(yùn)行不平滑;部分功能還不能適應(yīng)電子政務(wù)信息化工作的現(xiàn)狀,通過報(bào)盤等方式進(jìn)行彌補(bǔ).本文作者的創(chuàng)新點(diǎn)是采用JAVA API調(diào)用Base64類的編碼/解碼方式以較小的代價(jià)實(shí)現(xiàn)了Web Service附件的傳輸.
[1] ANDREW W R A.XML Schema Essentials[M/OL].[2010-05-01].http://www.amazon.com/XML-Schema-Essentials-Allen-Wyke/dp/0471412597#reader_0471412597.
[2] REILLY O.Java and XML Data Binding[M/OL].[2010-05-01].http://std.kku.ac.th/4830401462/Ebooks/XML/O'Reilly%20-%20Java%20and%20XML%20Binding.pdf.
[3] 李冬睿,李梅.一種電子政務(wù)數(shù)據(jù)交換模型的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2010,26(2-3):154-155.
[4] 劉艷輝,董碧丹,張峰.數(shù)據(jù)交換平臺的分布式應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(16):3 780-3 782.
[5] 邵秀麗,韓建彬,閻促蹼.基于XML的異構(gòu)數(shù)據(jù)源間數(shù)據(jù)交換的實(shí)現(xiàn)研究[J].南開大學(xué)學(xué)報(bào):自然科學(xué)版,2007,40(3):9-12.
[6] 方義,朱穎,趙競?cè)?等.基于MQSeries的3層架構(gòu)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(20):3 751-3 753.
Research of Realizing Data Switch Platform for E-government Heterogeneous Systems
LI Chunying1, TANG Zhikang2, CHANG Gequn3
(1.School of Computer Science,Zhaoqing University,Zhaoqing,Guangdong 526061,China;2.School of Computer Science,Guangdong Polytechnic Normal University,Guangzhou,Guangdong 510665,China;3.Beijing Youth Information Technology CO.LTD,Beijing 100086,China)
Based on E-government resource integration requirement,relying on government special network,the technical basis for data switch based on XML,Web Services and IBM WebSphere MQSeries,etc.is put forward.Focused on several issues of data switch platform of E-government heterogeneous systems,such as Internal structure,switch standards,installation configuration,transmission mode and interface,information sending process and information receiving process,a simple and feasible and least costly way to achieve is proposed.
XML;web services;MQSeries;heterogeneous systems;data switch
圖3 異構(gòu)數(shù)據(jù)接收流程圖
TP392
A
1009-8445(2011)02-0018-05
(責(zé)任編輯:徐生然)
2010-09-29
廣東省自然科學(xué)基金資助項(xiàng)目(5300563,7010327)
李 湘(1973-),男,湖南瀏陽人,化學(xué)化工學(xué)院副教授,博士.