□張貴芳(河南省水利信息中心)
□肖 航(河南省水文水資源局)
□??〕?□陳 磊(河南省水利信息中心)
河南省水利電子公文交換系統(tǒng)是廳機(jī)關(guān)與直屬單位、各地市水利局之間的電子公文交換平臺(tái),用來實(shí)現(xiàn)上下兩級(jí)水利部門之間公文及時(shí)的上傳下達(dá)和下傳上達(dá),在功能設(shè)計(jì)上實(shí)現(xiàn)與上下級(jí)單位的公文交換。其功能設(shè)計(jì)主要包括發(fā)文件、收文件、地址本和系統(tǒng)管理等功能。其中發(fā)文件主要包括新建發(fā)文、蓋章、補(bǔ)發(fā)(重發(fā))、發(fā)件箱、發(fā)文監(jiān)控以及發(fā)文查詢;收文件包括收文簽收、收文打印、收件箱以及收文查詢;地址本包括地址本維護(hù)以及地址本使用;系統(tǒng)管理包括用戶樹管理、交換單位配置以及崗位管理。其詳細(xì)功能如圖1所示:
圖1 電子公文交換系統(tǒng)功能圖
河南省水利電子公文交換系統(tǒng)是河南省水利廳電子政務(wù)系統(tǒng)的一個(gè)子系統(tǒng)。該系統(tǒng)采用XML(Extensible Markup Language)語言作為通用的數(shù)據(jù)標(biāo)準(zhǔn)和數(shù)據(jù)交換標(biāo)準(zhǔn)。XML用標(biāo)簽存儲(chǔ)的數(shù)據(jù)都是格式化的;把封裝好的對(duì)象存儲(chǔ)為XML文件的元素;對(duì)象的屬性存儲(chǔ)為一個(gè)XML元素的子元素或?qū)傩?;XML存儲(chǔ)的一個(gè)元素,相當(dāng)于數(shù)據(jù)庫(kù)的一行數(shù)據(jù)。把公文存儲(chǔ)為XML文件,充分利用了XML文件結(jié)構(gòu)化存儲(chǔ),容易解析的特點(diǎn),實(shí)現(xiàn)了數(shù)據(jù)交換的跨平臺(tái)。
作為一種Web上的數(shù)據(jù)通用語言,XML是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。XML可使用一系列自定義的簡(jiǎn)單標(biāo)簽描述數(shù)據(jù)的內(nèi)容和結(jié)構(gòu),便于數(shù)據(jù)在網(wǎng)絡(luò)上進(jìn)行交換和處理。雖然XML占用空間比二進(jìn)制數(shù)據(jù)更多,但XML極易于掌握和使用,具有較好的應(yīng)用前景。XML主要具有以下特點(diǎn):
第一,文檔是純文本,即可以在可視化開發(fā)環(huán)境中使用開發(fā)工具進(jìn)行創(chuàng)建和編輯,也可使用文本編輯器進(jìn)行編輯處理;格式簡(jiǎn)單易懂,易于處理。第二,表現(xiàn)方式靈活多樣,規(guī)則可以隨便定義,具有良好的擴(kuò)展性。第三,良好的跨平臺(tái)性。XML是純文本格式,屬于W3C正式批準(zhǔn)的公開的標(biāo)準(zhǔn),不依賴于任何操作系統(tǒng)和開發(fā)平臺(tái),幾乎所有的語言都支持XML,應(yīng)用前景廣闊。第四、檢索方便。用戶利用XQL語言,在XML文檔中檢索數(shù)據(jù),實(shí)現(xiàn)簡(jiǎn)單,方便實(shí)用。
作為一個(gè)開放的平臺(tái),由于資源的共享性和互操作性,互聯(lián)網(wǎng)也面臨著各種各樣的安全威脅,如信息竊取、惡意欺騙、偽裝、非法修改以及各種擾亂破壞等。隨著XML技術(shù)的廣泛應(yīng)用和深入發(fā)展,因其本身具有平臺(tái)無關(guān)、易于擴(kuò)展、自描述、語義性強(qiáng)等特點(diǎn),并且能方便描述結(jié)構(gòu)化或非結(jié)構(gòu)化的數(shù)據(jù),故而成為異構(gòu)數(shù)據(jù)集成中描述公共模型的最好選擇。XML語言自身具有的結(jié)構(gòu)化特征,對(duì)數(shù)據(jù)信息安全技術(shù)提出了新的要求,如XML加密解密、XML數(shù)字簽名和確認(rèn)、XML文檔局部數(shù)據(jù)的安全性要求等。
數(shù)據(jù)交換涉及的安全性內(nèi)容包括以下幾點(diǎn):
①身份驗(yàn)證。要求數(shù)據(jù)交換雙方的身份可鑒別,防止第三者假冒。②訪問控制。對(duì)不同的用戶,能控制其對(duì)數(shù)據(jù)的訪問權(quán)限。③數(shù)據(jù)的機(jī)密性。防止未授權(quán)的用戶竊取數(shù)據(jù)。④數(shù)據(jù)的完整性。確認(rèn)數(shù)據(jù)在傳輸過程中沒有被篡改。⑤非否認(rèn)服務(wù)。保證收發(fā)雙方無法否認(rèn)已接收或發(fā)送數(shù)據(jù)這一事實(shí)。
河南省水利電子公文交換系統(tǒng)實(shí)現(xiàn)了電子公文按照主送單位和抄送單位的準(zhǔn)確分發(fā)功能,實(shí)現(xiàn)公文正文和附件數(shù)據(jù)的上傳和刪除功能,實(shí)現(xiàn)對(duì)公文信息的XML格式封裝和分發(fā)功能;實(shí)現(xiàn)對(duì)簽章后的電子公文信息進(jìn)行加密,并將加密后的公文信息封裝成XML文件格式,提供公文的發(fā)送、補(bǔ)發(fā)和重發(fā)功能。其發(fā)文流程如圖2所示:
圖2 公文發(fā)文流程圖
在整個(gè)流程中,公文信息封裝成XML文件是比較關(guān)鍵的一步。發(fā)文過程中如何把一個(gè)公文封裝為XML文件;收到公文后,又是怎樣對(duì)XML文件進(jìn)行分解;程序上將如何處理?我們下面談?wù)劙l(fā)文數(shù)據(jù)XML格式封裝和收文數(shù)據(jù)XML分解。
在發(fā)送公文時(shí),需要把發(fā)件人、發(fā)送單位、密級(jí)、緩急、公文標(biāo)題、公文正文、附件等公文信息封裝成XML格式文檔文件,通過網(wǎng)絡(luò)發(fā)送到公文交換服務(wù)器。
如何把一個(gè)公文封裝為XML文件?
第一步,需要?jiǎng)?chuàng)建一個(gè)文件名為公文的ID.XML的XML文件,并獲取一個(gè)文件輸出路對(duì)象out,用以輸出公文的信息。
第二步,輸出公文的簡(jiǎn)單信息到文件“公文的ID.XML”,輸出的公文的簡(jiǎn)單信息,是根據(jù)公文的ID,從后臺(tái)數(shù)據(jù)庫(kù)中可以檢索到包含發(fā)件人、發(fā)送單位、密級(jí)、緩急、公文標(biāo)題。其程序處理如下:
第三步,輸出公文的正文及類型信息到文件“公文的ID.XML”,輸出公文的正文到XML文件,是轉(zhuǎn)換公文的重點(diǎn)。封裝公文正文為XML格式文件時(shí),將電子公文CEB版式文件或加密文件寫入XML文件ZWCONTENT標(biāo)簽。其程序處理如下:
第四步,輸出公文的附件,當(dāng)然不是所有的公文都有附件,如果有才輸出。
在輸出附件的時(shí)候,現(xiàn)根據(jù)公文的ID,進(jìn)行檢索,如果有附件,檢索得到一個(gè)附件id數(shù)組attachIds;否則返回null。如果檢索的結(jié)果不為null,遍歷數(shù)組attachIds,依次輸出每一個(gè)附件。
第五步,保存之前輸出的XML文件“公文的ID.XML”,關(guān)閉輸出流out,至此完成了一個(gè)公文向XML轉(zhuǎn)換的封裝。
以上步驟對(duì)發(fā)文數(shù)據(jù)XML格式文件封裝過程進(jìn)行介紹,對(duì)實(shí)現(xiàn)數(shù)據(jù)處理的關(guān)鍵程序進(jìn)行了設(shè)計(jì)和分析。
收文管理模塊主要完成對(duì)XML文件的分解,提取收文數(shù)據(jù),生成電子公文接收表單,并將從XML文件中提取的收文數(shù)據(jù),寫入電子公文接收表GWJH_SWGL;對(duì)待收公文進(jìn)行解密和簽收,并根據(jù)公文簽收狀態(tài)對(duì)電子公文進(jìn)行分類。其關(guān)鍵在于對(duì)XML文件的解析?,F(xiàn)在我們采用JDOM借口對(duì)XML文件進(jìn)行解析來提取收文數(shù)據(jù)。
第一步,需要先加載XML文件,如果加載成功,返回XML文檔樹對(duì)象的根節(jié)點(diǎn)對(duì)象。成功獲取之后進(jìn)行第二步解析公文XML文件,并進(jìn)行分解。
第二步,解析分解公文XML,使用JDOM獲取一個(gè)XML文件的根節(jié)點(diǎn)后,就可以輕松獲得它的任意子節(jié)點(diǎn)元素,以獲取公文正文節(jié)點(diǎn)來解析公文節(jié)點(diǎn)的內(nèi)容,進(jìn)行說明。
第三步,讀取XML文件ZWCONTENT內(nèi)容來獲取公文內(nèi)容。獲取公文內(nèi)容的方法如下:
收文管理模塊通過分解XML文件,提取收文數(shù)據(jù),生成電子公文接收表單;對(duì)待收公文進(jìn)行解密和簽收,并根據(jù)公文簽收狀態(tài)對(duì)電子公文進(jìn)行分類,實(shí)現(xiàn)了收文管理功能。
河南省水利電子公文交換系統(tǒng)采用XML作為數(shù)據(jù)交換語言,以XML格式對(duì)公文信息進(jìn)行描述和傳輸,大大降低了系統(tǒng)各個(gè)部分的耦合程度,方便系統(tǒng)更改,盡可能實(shí)現(xiàn)松散結(jié)合的系統(tǒng),很好地解決了內(nèi)外部系統(tǒng)之間和異構(gòu)系統(tǒng)之間的數(shù)據(jù)交換問題,加快了河南省水利系統(tǒng)內(nèi)部無紙化公文傳輸?shù)倪M(jìn)程。