許春亮,鄧蔚,李英,張瑩,王永倫
(1.公安部第一研究所,北京100048;2.天津市公安局人口管理總隊,天津300000)
信息采集認證系統(tǒng)分為兩個子系統(tǒng),即信息采集系統(tǒng)和身份認證系統(tǒng)。由于現(xiàn)有主流架構(gòu)技術(shù)是微服務(wù)架構(gòu),并且其具有架構(gòu)風(fēng)格輕量、易于開發(fā)和維護、跨平臺性良好等優(yōu)點,因此,本文中的信息采集認證系統(tǒng)從設(shè)計開發(fā)到部署實施都是采用微服務(wù)架構(gòu)[1]。
本文中的信息采集系統(tǒng)可與印章治安管理系統(tǒng)等現(xiàn)有系統(tǒng)配合使用。為了更好地與信息采集系統(tǒng)配合使用,本文設(shè)計了一套身份認證系統(tǒng),該系統(tǒng)可為印章申領(lǐng)過程中所涉及的印章相關(guān)人進行身份認證,加強了對法人的身份認證,實現(xiàn)了物電人一體化綜合管理。
SpringBoot 框架是Java 平臺上的一種開源應(yīng)用框架,其自身對編程模型沒有限制。Spring 框架為開發(fā)者提供了一系列的解決方案,如利用面向切面編程進行聲明式的事務(wù)管理,整合多種持久化技術(shù)管理數(shù)據(jù)訪問等。
SpringBoot 的啟動過程主要涉及兩個部分,即SpringBoot的初始化模塊和SpingBoot 的具體啟動模塊,圖1 為SpringBoot 的啟動流程圖[2]。整個啟動過程中涉及一個重要概念,即自動化配置模塊,該模塊是SpringBoot 自動配置的核心。
圖1 SpringBoot 啟動流程
SpringBoot 的初始化是由組裝SpringApplication 開始。SpringBoot 初始化后調(diào)用run 方法。每個SpringBoot 程序都有一個主入口,也就是main方法,main里面調(diào)用SpringApplication.run()啟動整個SpringBoot 程序,該方法所在類需要使用@SpringBootApplication 注解。
SpringBoot 快速開發(fā)了Spring 應(yīng)用框架,其中內(nèi)嵌了tomcat 和jetty 容器,不需要單獨安裝容器。SpringBoot 簡化了maven 配置,一站式引入需要的各種依賴,并且由其封裝的jar包可以直接發(fā)布Web 應(yīng)用。SpringBoot 是基于注解的零配置思想,與各種流行框架無縫整合。
信息采集認證系統(tǒng)分為兩級子系統(tǒng),即信息采集系統(tǒng)和身份認證系統(tǒng)。信息采集系統(tǒng)的主要功能是對法人及法人單位等相關(guān)信息進行采集,該系統(tǒng)可與印章治安管理系統(tǒng)進行對接。印章是法人單位的身份象征。身份認證系統(tǒng)的主要功能是對法人及印章相關(guān)人的身份進行認證。身份認證系統(tǒng)以互聯(lián)網(wǎng)可信身份認證平臺為依托,對法人及印章相關(guān)人進行實人、實證的身份認證,實現(xiàn)了人證合一的綜合管理。
信息采集認證系統(tǒng)是由信息采集系統(tǒng)和身份認證系統(tǒng)組成,圖2 為信息采集認證系統(tǒng)的架構(gòu)設(shè)計圖。由于各省份都已建立各自的省級印章治安管理系統(tǒng),因此信息采集系統(tǒng)可以與各省份的印章治安管理系統(tǒng)和電子印章管理系統(tǒng)配合使用。該系統(tǒng)同時可為可信印章鑒別監(jiān)測平臺等提供查詢接口。
身份認證系統(tǒng)可以為法人及印章相關(guān)人進行身份認證。同樣,該系統(tǒng)可與各省的印章治安管理系統(tǒng)和電子印章管理系統(tǒng)對接配合使用,各省通過各自集成了采集認證構(gòu)件的終端設(shè)備對相關(guān)人員的身份數(shù)據(jù)進行采集,然后依次發(fā)送至印章治安管理系統(tǒng)或電子印章管理系統(tǒng)、身份認證系統(tǒng),最終到達互聯(lián)網(wǎng)可信身份認證平臺對認證人員進行身份認證,并將認證結(jié)果返還至終端設(shè)備。本文在設(shè)計和實現(xiàn)信息采集認證系統(tǒng)時,考慮開發(fā)簡單、易于部署和微服務(wù)化,因此開發(fā)的過程中統(tǒng)一使用SpingBoot 框架。
信息采集認證系統(tǒng)分為信息采集子系統(tǒng)和身份認證子系統(tǒng),每個子系統(tǒng)下包括主要功能和輔助功能,圖3 為信息采集認證系統(tǒng)的功能劃分。
3.4.1 信息采集系統(tǒng)的接口設(shè)計
信息采集接口是通過https 傳輸協(xié)議方式對外提供服務(wù)的,請求方法為POST,數(shù)據(jù)包格式為xml。在對法人信息采集的過程中考慮到數(shù)據(jù)來源的不同,將接口分為三類即法人印章信息采集接口、印章從業(yè)人員采集接口和電子印章用章人采集接口。具體接口設(shè)計如下:
①接口名稱:法人印章信息采集接口。
功能:接收并處理法人單位及印章相關(guān)信息;
圖2 信息采集認證系統(tǒng)架構(gòu)
圖3 信息采集認證系統(tǒng)功能
輸入:法人單位為起始的嵌套物理印章信息及電子印章信息數(shù)據(jù)包;
輸出:法人印章反饋數(shù)據(jù)包。
②接口名稱:印章從業(yè)人員采集接口。
功能:接收并處理從業(yè)人員信息;
輸入:印章從業(yè)人員信息數(shù)據(jù)包;
輸出:印章從業(yè)人員反饋數(shù)據(jù)包。
③接口名稱:電子印章用章人采集接口。
功能:接收并處理電子章用章人信息;
輸入:電子印章用章人信息數(shù)據(jù)包;
輸出:電子印章用章人反饋數(shù)據(jù)包。
3.4.2 身份認證系統(tǒng)的接口設(shè)計
身份認證系統(tǒng)包括身份認證申請服務(wù)接口和身份認證請求服務(wù)接口,通過https 傳輸協(xié)議方式對外提供服務(wù),請求方法為POST,數(shù)據(jù)包格式為JSON。具體的接口設(shè)計如下:
①接口名稱:身份認證申請接口。
功能:接收客戶端發(fā)來的認證申請;
輸入:讀控件版本(可選)、認證模式等;
輸出:業(yè)務(wù)流水號、隨機數(shù)等。
②接口名稱:身份認證請求接口。
功能:接收客戶端發(fā)來的認證請求;
輸入:業(yè)務(wù)流水號(一包返回)、認證模式、認證數(shù)據(jù)(可選)等;
輸出:認證結(jié)果等。
Docker 是一個開源的應(yīng)用容器引擎,使開發(fā)者可以打包其應(yīng)用以及依賴包到一個可移植的鏡像中。作為一種輕量級的虛擬化方式,Docker 的優(yōu)點有:更快速的交付和部署、更高效的資源利用、更輕松的遷移和擴展、更簡單的更新管理。結(jié)合本文的系統(tǒng),設(shè)計系統(tǒng)Docker 微服務(wù)化部署圖,如圖4 所示。
衡量一個應(yīng)用系統(tǒng)的標(biāo)準(zhǔn)是性能,因此,在部署安裝完成后對信息采集認證系統(tǒng)進行性能測試。根據(jù)系統(tǒng)的性質(zhì)和內(nèi)容,本系統(tǒng)分別對信息采集數(shù)據(jù)裝載速度、信息采集裝載規(guī)模、身份認證并發(fā)數(shù)和身份認證響應(yīng)時間幾個指標(biāo)進行性能分析。
圖4 系統(tǒng)Docker 微服務(wù)化部署
由于數(shù)據(jù)在數(shù)據(jù)庫中是不能重復(fù)的,因此,本文根據(jù)模板數(shù)據(jù)包生成大量的測試數(shù)據(jù)包,然后利用測試程序?qū)ζ溥M行數(shù)據(jù)裝載。信息采集數(shù)據(jù)裝載平均速度為80 萬條/h。
同樣利用測試程序?qū)π畔⒉杉到y(tǒng)進行數(shù)據(jù)裝載,裝載測試數(shù)據(jù)2300 萬條。因此該系統(tǒng)支持千萬級信息采集數(shù)據(jù)裝載規(guī)模。
身份認證需要互聯(lián)網(wǎng)的實時認證,因此要考慮其認證并發(fā)數(shù)和認證平均響應(yīng)時間。本文選擇Jemeter 作為身份認證的測試工具。身份認證的并發(fā)數(shù)不少于1500,身份認證的平均響應(yīng)時間小于15s。
本文利用微服務(wù)技術(shù)設(shè)計了一套信息采集認證系統(tǒng),其中包括信息采集系統(tǒng)和身份認證系統(tǒng)。系統(tǒng)將主流框架SpringBoot 和微服務(wù)容器Docker 與信息采集認證系統(tǒng)結(jié)合,使該系統(tǒng)開發(fā)簡單、部署簡易、方便遷移。同時,本文通過法人身份的有效驗證,可以實現(xiàn)物理印章、電子印章、法人信息相結(jié)合的物電人一體化綜合管理,可有效杜絕違法犯罪分子利用假冒印章進行違法犯罪行為,重構(gòu)我國與公章相關(guān)的誠信體系,使印章能夠真正代表企業(yè)的法定身份,極大地降低此類經(jīng)濟犯罪案件的損失。