陳華
(南京萊斯信息技術股份有限公司 江蘇省南京市 210007)
隨著國家“互聯網+政務服務”工作的不斷深入,打通數據壁壘,實現各部門、各層級數據信息互聯互通,實現政務信息充分、及時共享迫在眉睫。
政務信息共享方式從技術實現方式層面上主要包括:庫表共享、文件共享、接口共享。而每種共享方式都需要有具體的業務定義。本文主要是介紹文件共享方式中數據交換文件格式的一種設計思路。通過設計一種通用的數據交換文件,解決各政務平臺之間數據交換文件格式不統一、數據交換內容多樣等問題。
在進行政務數據信息共享時,如果采用文件格式,主要的交換流程如圖1。

圖1:數據文件交換總體流程圖
部門A 與部門B 交換數據時,通過約定相關的交換目錄、交換周期、交換數據存放的位置等信息。部門A 利用自身的業務系統功能或者交換平臺提供的相關功能,按照約定的目錄規范生成數據交換文件,并對數據文件進行加密,并傳輸到約定的交換節點或者位置。部門B 監控相關位置,當有符合要求的文件名或格式的時候,對數據文件進行解密,如果解密成功,對數據文件進行預解析,解析文件內容中的包含文件驗證Hash 的標簽,與文件本身的Hash、交換目錄相關標識進行比對,并驗證。驗證成功后正式解析數據文件,并通過消息、接口等方式通知交換雙方交換情況。
數據交換文件(以下簡稱:交換文件)格式采用XML 文件格式。XML 指可擴展標記語言(EXtensible Markup Language)(參考文獻[1]),主要用來傳輸和存儲數據,具有自我描述性,是 W3C (World Wide Web Consortium 簡稱W3C,萬維網聯盟)推薦標準,廣泛的應用于互聯網及政務數據交換等各個領域。
為了便于標識數據來源特征,數據交換文件名稱命名規范如圖2。

圖2:數據交換文件命名規范示意圖
其中:
(1)S(大寫)為固定標識,表示共享信息。
(2)數據來源單位,采用數據來源代碼的統一社會信用代碼(參考文獻[2]和文獻[3])。
(3)交換目錄編碼:這個可以根據雙方之間的約定編制而成。本文參考了全國信用信息共享平臺工程標準《公共信用信息分類與編碼規范》的定義。
(4)時間戳格式:YYYYMMDDHHMMSS,“4 位年+2 位月份+2 位天+2 位小時+2 位分鐘+兩位秒”,該時間戳指明文件生成時間。
(5)文件后綴為XML,不區分大小寫,建議大寫。
比如數據文件名稱為:S-113200000140004310-210C0402016- 20201011130648.XML,表示市省市場監督管理局共享的行政處罰公示信息,數據文件生成時間為2020-10-11 13:06:48。
交換文件結構如圖3。

圖3
文檔結構說明:
(1)Info 節點表示交換的文件信息。其中messageCode 與Meta 節點的messageCode 對應,可以作為交換目錄驗證使用,與文件名中的目錄編碼對應。fromdeptCode 與文件名格式中的數據來源單位對應。destdeptCode 可以驗證接收數據的目標單位是否正確。
(2)Meta 節點表示目錄信息節點,主要是描述交換的目錄信息,包括目錄編目,目錄包含的數據項內容等。columnType 定義了字段類型,可以是S,表示字符串;N 表示數值;D 表示日期,T 表示時間戳。
(3)Data 節點是具體的數據節點。具體數據采用RECORD 節點表示每條數據。
(4)本文件約束性要求:一個數據交換文件只能存放一個交換目錄內容,不能傳遞多個目錄。主要是為了便于接收方解析同時有利于數據交換的完整性。如果有多個數據交換目錄,可以構造多個類似數據文件即可。
對應的通過定義XML Schema 可以對上述文件結構進行語法定義和約束,具體如圖4。

圖4
本文定義的數據交換文件主要有一下特點:
2.4.1 交換文件支持Hash 一致性驗證
通過讀取文件內容和解析文件內容中的fileId進行一致性驗證,fileId 內容為文件內容的Hash,通過比較即可實現一致性驗證。
2.4.2 交換文件格式通用性強
數據文件格式采用XML 格式,現有主流的計算機編程語言均充分支持,實現難度低,便于交換部門快速適配。
2.4.3 交換目錄按需變化
交換文件接收方可以通過Meta 節點判斷交換目錄的內容,主要包括目錄名稱、目錄編碼、目錄包含的字段及具體類型等。接收方可以根據需要創建自己的庫表結構,實現數據解析、查詢等應用。同時如果后續目錄結構發生變化,可以與之前結構進行對比,更新本地業務結構。數據共享雙方不再需要每次都約定數據交換目錄更改內容,通過解決數據文件即可判斷。
2.4.4 交換內容按需變化
文件交換內容根據交換目錄的不同,交換的數據內容也會有變化,交換單位在解析時可以靈活根據需要解析數據內容。
2.4.5 交換數據自解析
隨著數據源單位業務的不斷變化,交換的目錄及內容也要不斷的變化,而交換的數據文件格式本身不需要調整,只需要按照業務生成相關的節點數據即可。同樣對數據文件的解析程序也不需要隨著業務的變化重新調整,可以做到交換解析程序無需調整,即可完成所有交換目錄數據文件的解析,可以實現“一次開發、長久適用”。
我們以實際交換的數據文件為例來理解交換文件結構的定義,具體樣例如圖5。

圖5
樣例說明:
樣例中以國家目前推行的行政許可公示信息為例構建相應的數據交換文件,其中Meta 節點定義了行政許可公示的信息編碼、名稱,同時定義了該目錄的數據項內容,主要包括:行政相對人名稱、行政許可決定文書號、許可證書名稱等,同時給出的具體的數據內容,具體參見Data 節點定義。
本文定義的數據交換文件格式在一些信用信息共享平臺項目中得到了充分的應用。
信用信息共享平臺是主要是歸集各個地區、各部門(簡稱數源單位)業務系統中產生的信用相關的數據,并對數據進行治理、整合,并加工形成信用主體(包括法人、自然人等)檔案,同時按照有關規定為政府部門、社會公眾和征信機構提供信用信息服務的信息化基礎設施。信用信息交換目錄涉及到信用主體的基本信息、資質信息、行政許可信息、表彰信息、行政處罰信息、資格證書信息等,這些數據通過開發相應的數據采集交換功能,實現各個數源單位數據的及時打包、數據文件生成、數據文件傳輸及解析等。
同時,本文所設計的交換文件思路,也可以為其他領域數據交換文件的設計提供一種參考思路。