劉伯駒 張瑩(公安部第一研究所 ,北京,100048,中國)
基于ETL實現(xiàn)全國居民身份證制證跟蹤查詢系統(tǒng)的應用
劉伯駒 張瑩(公安部第一研究所 ,北京,100048,中國)
本文主要對全國各制證中心歷史層數(shù)據(jù)ETL抽取過程和對外發(fā)布WebService查詢服務、傳輸采用ACTIVEMQ等幾個關鍵技術進行了分析并提出解決方法,保證了跟蹤查詢系統(tǒng)的穩(wěn)定性和安全性,該系統(tǒng)是對完成全國制證中心(所)歷史層數(shù)據(jù)庫的數(shù)據(jù)集成,建立全國身份證信息庫和制證中心外圍數(shù)據(jù)庫,供身份證信息查詢以及為其他公安應用服務。
ETL;STRUTS;ACTIVMQ
本項目的提出是為了實現(xiàn)全國制證數(shù)據(jù)庫的整合以及制證信息應用的整合,實現(xiàn)在全國范圍內身份證制證歷史信息的再利用,為全國范圍各類制證信息應用提供服務,使分布于全國的鮮活的制證數(shù)據(jù)切實服務于旅店、出租房屋登記,流動人口管理以及槍支、危險爆炸物品管理、追逃、破案等治安管理工作。同時為身份證業(yè)務主管部門提供了一個統(tǒng)一的管理平臺,可以隨時獲取準確的制證信息,全面掌握全國各制證中心的制證工作情況,監(jiān)督指導地方制證工作。
跟蹤查詢系統(tǒng)通過在公安部中心端建立全國制證信息管理數(shù)據(jù)庫,匯總全國各個制證中心中的制證文本數(shù)據(jù)。在公安部中心端部署查詢服務器,通過該查詢系統(tǒng)一向外部提供各種業(yè)務需求的查詢服務。對于系統(tǒng)的查詢服務由部級數(shù)據(jù)庫直接提供,能夠快速的獲得系統(tǒng)的證件跟蹤查詢結果。根據(jù)以上系統(tǒng)需求跟蹤查詢系統(tǒng)設計了5個子系統(tǒng)如圖1所示。
圖1 跟蹤查詢系統(tǒng)功能設計
系統(tǒng)業(yè)務功能詳細介紹如下:
2.1 證件查詢功能
通過登錄公安部查詢網(wǎng)站,輸入:姓名、身份證號碼、簽發(fā)機關(可選),選擇:分布式查詢/集中式查詢方式,選擇查詢的相關條件信息。
2.2 數(shù)據(jù)集成功能
通過ETLKettle開發(fā)工具在某一規(guī)定時間內制證中心,歷史層制證數(shù)據(jù)導入制證中心外圍數(shù)據(jù)庫,完成數(shù)據(jù)各類情況數(shù)據(jù)的抽取工作。抽取的數(shù)據(jù)項:身份證號、上報受理號、姓名、性別代碼、民族代碼、出生日期、起始有效期、終止有效期、簽發(fā)機關、住址、申領原因、行政區(qū)劃代碼、制證類型、證件類型、受理日期、發(fā)證日期、遷移日期、照片。
2.3 查詢服務功能
系統(tǒng)通過WebService方式發(fā)布WDSL文件,對外發(fā)布相關證件丟失、真?zhèn)蜗嚓P查詢服務功能。外部人員通過調用WDSL接口函數(shù):(姓名、身份證號碼、簽發(fā)機關、起始有效期、終止有效期)等參數(shù),查詢相關信息證件列表(“證件不存在”/“有效證件”/“作廢證件”)的信息。
2.4 傳輸功能
通過使用MQ文件傳輸方式完成制證中心向部級數(shù)據(jù)庫發(fā)送和接收,發(fā)送和接收文件:檢查發(fā)送/接收目錄文件;不符合要求的移到錯誤文件目錄;發(fā)送/接收文件到消息隊列。檢查是否發(fā)送成功;記錄日志信息;在文件名、發(fā)送時間、記錄數(shù)、發(fā)往單位;發(fā)送成功將文件移入已發(fā)送目錄;接收消息,存成文件,放入接收目錄;記錄日志。在數(shù)據(jù)庫中記錄發(fā)送/接收文件信息:文件名、接收時間、發(fā)送單位。
2.5 部級省級用戶管理
部級、省級用戶的操作人員的信息管理,如增加、修改、刪除、查找用戶等,顯示相關部級、省級用戶信息,用戶標識、用戶名、所屬單位代碼、單位名稱、證書編號、級別、狀態(tài)等信息。
跟蹤查詢系統(tǒng)架構在建設中采用公安專網(wǎng)專用的模式,采用分布式開發(fā)的設計,使系統(tǒng)的穩(wěn)定性、擴展性、維護性大大提升,數(shù)據(jù)庫采用了視圖訪問技術,大大提高了對外發(fā)布服務和對內的查詢服務速度,部中心端采用部署web service應用、查詢網(wǎng)站應用,用來查詢服務,部級和制證中心通過ETL服務器用來裝載各省傳輸?shù)脑隽恐谱C數(shù)據(jù),部級/省級建立數(shù)據(jù)庫,用于存儲全國制證文字數(shù)據(jù),文件服務器:FTP/MQ,用于接收各省傳輸?shù)脑隽恐谱C數(shù)據(jù)文件信息。
內外網(wǎng)的交互通過網(wǎng)閘隔離,保證數(shù)據(jù)安全性。如圖2所示。
圖2 跟蹤查詢系統(tǒng)網(wǎng)絡架構設計
系統(tǒng)開發(fā)過程中采用了Struts系統(tǒng)運行管理和系統(tǒng)發(fā)布服務管理WebService服務和制證中心歷史層定時ETL數(shù)據(jù)抽取的三個部分,每個部分獨自開發(fā)后,進行接口數(shù)據(jù)掛接、聯(lián)合調試。
4.1 ETL 技術
ETL即數(shù)據(jù)抽?。‥xtract)、轉換(Transform)、裝載(Load)的過程。它是構建數(shù)據(jù)倉庫的重要環(huán)節(jié)。數(shù)據(jù)倉庫是面向主題的、集成的、穩(wěn)定的且隨時間不斷變化的數(shù)據(jù)集合。ETL過程中的主要環(huán)節(jié)就是數(shù)據(jù)抽取、數(shù)據(jù)轉換和加工、數(shù)據(jù)裝載。為了實現(xiàn)這些功能,各個ETL工具一般會進行一些功能上的擴充,例如工作流、調度引擎、規(guī)則引擎、腳本支持、統(tǒng)計信息等。
制證跟蹤查詢系統(tǒng)采用的模式是kettle 開源開發(fā)工具,每個ETL開發(fā)抽取過程都對一個相對的場景。下面實例是制證中心進行的從歷史層數(shù)據(jù)庫到外圍部級庫的ETL,數(shù)據(jù)包括文本信息和照片信息,數(shù)據(jù)導出清理的數(shù)據(jù)過程。如圖3所示。
圖3 歷史層到部級庫抽取過程
圖4 Kettle節(jié)點數(shù)據(jù)參數(shù)設置
Kettle每個時間點的具體業(yè)務操作,執(zhí)行數(shù)據(jù)裝載過程都需要根據(jù)Kettle本身自帶的變量參數(shù)設置完成數(shù)據(jù)的操作。啟動代理即可定期自動執(zhí)行數(shù)據(jù)導入工作,如圖4所示。
ETL資源庫通過WebService業(yè)務各種服務請求調用可以定期實現(xiàn)省級數(shù)據(jù)庫到部級庫不同的業(yè)務數(shù)據(jù)的批量和增量量的數(shù)據(jù)抽取,如果數(shù)據(jù)導出成功、失敗會自動存到成功、錯誤日志記錄表下。如圖5所示。
4.2 struts 技術
Struts是WEB程序MVC分層架構中的控制層,主要進行處理用戶的請求,基于請求驅動。獲取用戶的請求地址并將表單中的數(shù)據(jù)封裝到Form對象后交給Action進行處理。在Action中進行條用業(yè)務層處理具體的請求后將結果通過ActionMapping封裝跳轉地址返回給用戶。struts是對servlet的再次封裝,簡化了WEB系統(tǒng)的開發(fā)過程,使得更加靈活高效,提高了設計開發(fā)效率。跟蹤查詢系統(tǒng)Struts開發(fā)代碼如圖6所示:
圖5 批量數(shù)據(jù)抽取
圖6 Struts的Action代碼示例
Struts 頁面的跳轉是通過Struts-config.xml配置文件來實現(xiàn)頁面二次重定向完成具體的業(yè)務邏輯跳轉。Action需要業(yè)務邏輯代碼完成后需要跳轉頁面根據(jù)配置Struts文件中的一對〈forward〉〈/forward〉來實現(xiàn)的,如圖7所示。Struts-config.xml
圖7 Struts-config.xml頁面跳轉
4.3 WebService 技術
WebService是一個平臺獨立的,低耦合的,自包含的、基于可編程的Web的應用程序,可使用開放的XML(標準通用標記語言下的一個子集)標準來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調和配置這些應用程序,用于開發(fā)分布式的互操作的應用程序。
WebService不是框架,而是一種技術,且是建立在已有技術基礎上的整合應用,其主要目標是跨平臺的互操作性,為了達到這一目標,WebService完全基于XML、XSD等獨立于平臺、獨立于軟件供應商的標準,是創(chuàng)建可互操作的、分布式應用程序的新平臺。Web服務提供者和服務請求者均使用XML作為消息和數(shù)據(jù)流傳遞的方式。在構建WebService時,主要應用到XML、WSDL、UDDI和SOAP等技術和規(guī)則。
一般常用的WebService開發(fā)模式采用AXIS、XFIRE、CXF 開發(fā)技術,本文制證跟蹤系統(tǒng)采用CXF和Spring相結合的開發(fā)模式。CXF 開發(fā)工具本身自帶攔截過濾器來直接處理WebService服務文件,配置方法如下:
在建立WebService工程后,通過配置WEB-INF目錄下Web.xml 文件來完成CXF過濾器代理,這樣關于工程下WebService所有服務請求都通過CXF代理來處理業(yè)務請求。如圖8所示。
CXF配置信息完成后,就需要開發(fā)具體對外發(fā)布的WebService邏輯接口文件WDSL,現(xiàn)在目前比較流行的開發(fā)方式采用Spring 開發(fā)工具來開發(fā),因為Spring耦合性小、效率高、重用性強的特點,自身的配置文件信息和其他開發(fā)工具集成在一起,使開發(fā)應用系統(tǒng)發(fā)布WebService變得輕松,兩者開發(fā)工具融合在一起使系統(tǒng)開發(fā)過程中具有模塊化、靈活性和重用性的優(yōu)勢。
Spring業(yè)務邏輯實現(xiàn)通過Id 指在Spring 配置的Bean Id Implementor指具體實現(xiàn)WebService的業(yè)務類如圖9所示。
圖8 CXF配置文件信息
圖9 Spring配置文件信息
系統(tǒng)開發(fā)完成后,通過部署WAR 文件實現(xiàn)系統(tǒng)的對外服務發(fā)布,一般JAVA WEB開發(fā)服務器部署采用輕量化的Tomcat,而跟蹤查詢系統(tǒng)為了保證系統(tǒng)穩(wěn)定性、運行速度更強的WAS部署,這樣跟蹤系統(tǒng)ETL數(shù)據(jù)抽取和WebService調用服務變的更加穩(wěn)定可靠。
本文Web應用部署即采用了MyEclipse自動部署方式。Web應用系統(tǒng)部署到Web服務器并啟動服務后,用戶即可通過瀏覽器訪問指定url的頁面,全國居民身份證跟蹤查詢系統(tǒng)各種WebService服務調用如圖10、11所示。
本文綜合采用Java Web Struts 技術、ETL 技術、ActiveMQ技術,實現(xiàn)了基于分布式的全國居民身份證跟蹤查詢系統(tǒng),并成功部署到部級和省級各個制證中心測試試用,從技術上實現(xiàn)并驗證了方案的可行性及有效性。本文所開發(fā)的跟蹤查詢系統(tǒng)可作為原型系統(tǒng)用于各省公安制證中心,對各個省級歷史數(shù)據(jù)庫的定時海量數(shù)據(jù)抽取,居民信息的丟失、查詢證件的真?zhèn)尾樵兎仗峁┝擞行У墓芾怼?/p>
圖10 分布式查詢服務
圖11分布式查詢結果
1. Java 編程思想 陳昊鵬、饒諾楠著 機械工業(yè)出版署
2. Java Web 從入門到精通 姜昊編著 清華大學出版社
ETL implement applications based on the National ID Card tracking and tracing system
Liu Boju Zhang Ying
(The First Research Institute of Ministry of Public Security,Beijing 100048, China)
This paper focuses on the history of each country's accreditation center layer ETL data extraction process and released Web Service tracking, transmission using ACTIVEMQ several key technologies to analyze and propose solutions to ensure the stability and security of tracking and tracing system, which the system is to complete the national accreditation center(the)data history database integration layer, to establish a national identitycard system repositories and outside the center database foridentity information inquiry and other public security applications.
ETL、STRUTS、ACTIVMQ