程大衛(wèi)
摘要:文章基于Spring Cloud微服務(wù)的軟件架構(gòu)模式進(jìn)行研究,場(chǎng)景適用于安防場(chǎng)所中人體安檢的應(yīng)用,實(shí)現(xiàn)安防場(chǎng)所信息集中管理和人體安檢流程實(shí)時(shí)監(jiān)控等目的。首先,采用微服務(wù)的軟件架構(gòu),以Spring Cloud為基礎(chǔ)組件進(jìn)行開發(fā),微服務(wù)訪問(wèn)權(quán)限管理采用OAuth 2.0協(xié)議,通過(guò)Eureka模塊對(duì)系統(tǒng)中加入的服務(wù)進(jìn)行注冊(cè)管理,注冊(cè)的服務(wù)均采用WebAPI接口對(duì)外提供接口;其次,采用Redis作為數(shù)據(jù)緩存,實(shí)現(xiàn)系統(tǒng)的高并發(fā);此外,系統(tǒng)引入人臉識(shí)別的邊緣計(jì)算盒子提供生物信息驗(yàn)證,為人體安檢方案在智慧化安防方面提供相關(guān)理論支撐、技術(shù)驗(yàn)證。
關(guān)鍵詞:人體安檢;微服務(wù);分布式;Spring Cloud
中圖分類號(hào):TP311.52? ?文獻(xiàn)標(biāo)識(shí)碼:A? ?文章編號(hào):1674-0688(2023)04-0046-04
0 引言
隨著人體安檢儀在安防場(chǎng)所的應(yīng)用場(chǎng)景逐漸復(fù)雜化,市場(chǎng)對(duì)人體安檢儀進(jìn)行系統(tǒng)集成的需求也越來(lái)越高。為保證安防場(chǎng)所訪客身份信息的合法性,用戶對(duì)指紋認(rèn)證、掌靜脈認(rèn)證、虹膜認(rèn)證及人臉認(rèn)證等生物信息識(shí)別驗(yàn)證的需求也與日俱增。從市場(chǎng)調(diào)研及安檢相關(guān)項(xiàng)目招標(biāo)投標(biāo)的技術(shù)需求可知,單個(gè)安防場(chǎng)所中需要多臺(tái)人體安檢設(shè)備及多個(gè)安防場(chǎng)所協(xié)同安檢的情況經(jīng)常存在,因此對(duì)安檢信息進(jìn)行集中管理顯得尤為必要,而安檢信息的集中管理對(duì)安防場(chǎng)所人體安檢系統(tǒng)的應(yīng)用靈活性和數(shù)據(jù)業(yè)務(wù)的處理與計(jì)算能力提出更高的要求,因此需要開發(fā)一套能滿足客戶定制化需求、基于生物信息驗(yàn)證的高效、穩(wěn)定的人體安檢信息管理系統(tǒng)。
國(guó)內(nèi)外生物識(shí)別技術(shù)已經(jīng)相當(dāng)成熟,特別是人臉識(shí)別技術(shù)在安防場(chǎng)所進(jìn)出記錄管理上的集成應(yīng)用;國(guó)內(nèi)一些安防廠商雖然在視頻分析技術(shù)中加入出入口人臉識(shí)別技術(shù),但是缺少對(duì)安防場(chǎng)所系統(tǒng)業(yè)務(wù)的集成和安檢設(shè)備的集成。鑒于客戶對(duì)安檢數(shù)據(jù)集成管理及提升工作效率有很大需求,本研究采用微服務(wù)架構(gòu)模式作為解決方案進(jìn)行人體安檢信息管理系統(tǒng)的設(shè)計(jì),該模式的靈活架構(gòu)可應(yīng)對(duì)復(fù)雜多變的用戶需求,將復(fù)雜系統(tǒng)根據(jù)應(yīng)用需求拆分成多個(gè)小服務(wù),采用分布式的方式,實(shí)現(xiàn)各個(gè)分系統(tǒng)的協(xié)同運(yùn)行,為系統(tǒng)提供彈性框架以應(yīng)對(duì)用戶方的業(yè)務(wù)需求、性能需求和安全需求。
1 系統(tǒng)支撐理論與技術(shù)
1.1 相關(guān)理論
1.1.1 負(fù)載均衡
負(fù)載均衡的意義是有效地將傳入的網(wǎng)絡(luò)流量分布到一組后端服務(wù)器上,也稱為服務(wù)器池。為節(jié)約成本并在有效的規(guī)模下滿足這些高容量的需求,最佳的實(shí)現(xiàn)途徑通常是添加更多的服務(wù)器[1]。目前,負(fù)載均衡需要通過(guò)應(yīng)用軟件實(shí)現(xiàn),一般采用Nginx作為網(wǎng)站的負(fù)載均衡器,用以實(shí)現(xiàn)http網(wǎng)站的數(shù)據(jù)分流任務(wù)。本系統(tǒng)采用Nginx作為前端網(wǎng)頁(yè)的負(fù)載均衡器,采用Ribbon作為分布式服務(wù)調(diào)用的負(fù)載均衡。
1.1.2 分布式緩存
高并發(fā)的應(yīng)用環(huán)境中,大量的數(shù)據(jù)庫(kù)讀寫工作會(huì)給數(shù)據(jù)庫(kù)的存取造成一定的壓力。由于單一機(jī)器的承受能力和內(nèi)存有一定的限度,因此提升系統(tǒng)性能一般采用分布式緩存實(shí)現(xiàn)[1]??紤]本系統(tǒng)的應(yīng)用場(chǎng)景,設(shè)計(jì)擬采用Redis緩存系統(tǒng)解決Session(會(huì)話控制)共享在分布式環(huán)境中的應(yīng)用。
1.1.3 分布式服務(wù)治理
目前,分布式服務(wù)框架的使用是分布式服務(wù)治理的一個(gè)重要選擇。分布式服務(wù)框架在有效管理服務(wù)的同時(shí),也監(jiān)控服務(wù)質(zhì)量[1]。本系統(tǒng)模式采用Spring Cloud;服務(wù)發(fā)現(xiàn)框架采用Eureka;系統(tǒng)熔斷和降級(jí)采用Hystrix延遲和容錯(cuò)庫(kù),以提高整個(gè)系統(tǒng)的彈性。分布式框架的優(yōu)勢(shì)表現(xiàn)為能大幅提高并發(fā)訪問(wèn)量、大幅度節(jié)省設(shè)備成本(僅從架構(gòu)方面進(jìn)行優(yōu)化,因此不需要配置大量的服務(wù)器)、將服務(wù)層與表現(xiàn)層的耦合性降到最低[1],從而實(shí)現(xiàn)解耦目的。
本研究采用的這些理論所形成的技術(shù)在最大限度地節(jié)約硬件的基礎(chǔ)上,提高了系統(tǒng)的穩(wěn)定性。
1.2 關(guān)鍵技術(shù)
1.2.1 Spring Cloud微服務(wù)框架
微服務(wù)架構(gòu)是一種由多個(gè)小服務(wù)組成的應(yīng)用開發(fā)模式,每個(gè)服務(wù)可以獨(dú)立運(yùn)行,同時(shí)采用輕量級(jí)交互[2]。微服務(wù)架構(gòu)的目的是實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)徹底組件化和服務(wù)化,從而達(dá)到一個(gè)組件就是一個(gè)產(chǎn)品的目標(biāo),并且每個(gè)組件均可獨(dú)立對(duì)外提供服務(wù),組件對(duì)外發(fā)布的方式采用HTTP Rest API(應(yīng)用程序編程接口)方式。
Spring Cloud是基于Spring Boot的微服務(wù)框架。Spring Cloud為開發(fā)者提供微服務(wù)開發(fā)所需要的配置管理、服務(wù)發(fā)現(xiàn)、智能路由、微代理、全局鎖、分布式會(huì)話和集群狀態(tài)管理等組件[3]。Spring Cloud Gateway是Spring Cloud的核心組件,作為Spring Cloud生態(tài)系統(tǒng)中的網(wǎng)關(guān),它提供統(tǒng)一的路由方式,并且基于Filter鏈的方式提供網(wǎng)關(guān)的基本功能,例如安全、監(jiān)控/埋點(diǎn)、限流等。微服務(wù)的核心由Spring Cloud Netflix與各種Netflix OSS組件集成。 Spring Cloud架構(gòu)模式下的服務(wù)注冊(cè)中心采用Netflix Eureka云端服務(wù)發(fā)現(xiàn)組件,用于發(fā)現(xiàn)服務(wù),達(dá)到云端中間層服務(wù)發(fā)現(xiàn)和故障轉(zhuǎn)移的目的。Spring Cloud架構(gòu)模式下的熔斷器采用Netflix Hystrix,以提高延遲能力和對(duì)故障的容錯(cuò)能力。
1.2.2 Nginx
Nginx是一個(gè)HTTP服務(wù)器和反向代理服務(wù)器,它是一個(gè)開源框架,能夠很好地解決高連接并發(fā)問(wèn)題,能支持高達(dá)5萬(wàn)個(gè)并發(fā)連接數(shù)的響應(yīng),并且內(nèi)存占用和CPU資源消耗也很低。當(dāng)服務(wù)器和帶寬受到限制時(shí),能極大地提高Web系統(tǒng)的運(yùn)行效率,增加服務(wù)器的吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)的處理能力,進(jìn)而降低因數(shù)據(jù)擁堵而造成的連接延遲或等待現(xiàn)象[4]。
1.2.3 Redis
Redis 作為一個(gè)開源的內(nèi)存數(shù)據(jù)庫(kù)項(xiàng)目,以其持久性和高性能的優(yōu)勢(shì),實(shí)現(xiàn)一種分布式內(nèi)存鍵值存儲(chǔ)模式[5]。本系統(tǒng)使用Redis緩存系統(tǒng),實(shí)現(xiàn)存儲(chǔ)訪客流程狀態(tài)、實(shí)時(shí)記錄狀態(tài)轉(zhuǎn)換、異常流程報(bào)警、緩存被檢人安檢流程信息等功能,達(dá)到快速獲取被檢人信息、優(yōu)化安檢流程的目的。
2 系統(tǒng)設(shè)計(jì)
2.1 應(yīng)用場(chǎng)景
本系統(tǒng)主要應(yīng)用于安防場(chǎng)所人體安檢流程、安檢信息的管理。系統(tǒng)采用微服務(wù)和分布式架構(gòu),融入人臉識(shí)別技術(shù),對(duì)安防場(chǎng)所出入人員的人臉信息及基本信息進(jìn)行集中管理。預(yù)約注冊(cè)登記、進(jìn)入安防場(chǎng)所的入口驗(yàn)證、安檢設(shè)備檢查前,都需要進(jìn)行人臉識(shí)別、身份信息認(rèn)證,系統(tǒng)的安檢流程如下:出入安防場(chǎng)所的被檢人員需要提前預(yù)約訪問(wèn)時(shí)間并提供對(duì)應(yīng)的人臉等個(gè)人數(shù)據(jù)信息;系統(tǒng)記錄被檢人員進(jìn)入安防區(qū)域的起始時(shí)間,設(shè)置最長(zhǎng)停留時(shí)間;如果發(fā)生身份認(rèn)證失敗、被檢人在安檢場(chǎng)所內(nèi)出現(xiàn)安檢異?;虺鱿薅ㄍA魰r(shí)間等情況,安防場(chǎng)所管理平臺(tái)將實(shí)時(shí)顯示該報(bào)警信息直至人工進(jìn)行干預(yù)解決。系統(tǒng)應(yīng)具備如下功能:協(xié)同完成安防區(qū)域內(nèi)到訪人員、工作人員的檢查和管理工作;實(shí)現(xiàn)安防場(chǎng)所內(nèi)所有人員的全程跟蹤,并且綁定被檢人員的人體安檢結(jié)果信息(包括是否攜帶、夾藏違禁品的安檢圖像和手檢結(jié)論等);將所有單個(gè)通道、單個(gè)安防場(chǎng)所的安檢結(jié)果數(shù)據(jù)匯總、存儲(chǔ)到中心服務(wù)器,并提供歷史數(shù)據(jù)查詢、異常安檢結(jié)果數(shù)據(jù)統(tǒng)計(jì)等服務(wù),為整個(gè)安防場(chǎng)所或整個(gè)業(yè)務(wù)系統(tǒng)提供更多的決策支持。具體安檢場(chǎng)景和流程如圖1和圖2所示。
2.2 軟件系統(tǒng)架構(gòu)
2.2.1 安防場(chǎng)所管理系統(tǒng)
對(duì)權(quán)限、用戶、安防場(chǎng)所出入口、攝像機(jī)、歷史記錄、流程報(bào)警、圖像進(jìn)行管理、提供統(tǒng)計(jì)分析功能,并提供基于RESTful的WebAPI、WebSocket接口供相關(guān)網(wǎng)頁(yè)端調(diào)用。
2.2.2 底層人臉識(shí)別接口
對(duì)接邊緣計(jì)算盒子人臉識(shí)別模塊,對(duì)相關(guān)接口進(jìn)行封裝,對(duì)外提供人臉比對(duì)相關(guān)接口。
2.2.3 攝像機(jī)控制服務(wù)
提供攝像機(jī)控制接口,如啟動(dòng)視頻流、開啟視頻流抓拍、停止視頻流抓拍。
2.2.4 數(shù)據(jù)傳輸服務(wù)
實(shí)現(xiàn)訪客預(yù)約數(shù)據(jù)的流轉(zhuǎn),收集訪客探訪流程產(chǎn)生的業(yè)務(wù)數(shù)據(jù)。
2.2.5 人臉驗(yàn)證服務(wù)
通過(guò)調(diào)用邊緣計(jì)算盒子的人臉比對(duì)服務(wù)和攝像機(jī)控制服務(wù),向入口驗(yàn)證客戶端和安檢設(shè)備端軟件提供人臉驗(yàn)證的接口。
2.2.6 安防場(chǎng)所綜合管理平臺(tái)
收集各個(gè)安防場(chǎng)所的訪客來(lái)訪數(shù)據(jù),匯總顯示總體來(lái)訪情況和統(tǒng)計(jì)分析。管理系統(tǒng)架構(gòu)如圖3所示。
3 系統(tǒng)實(shí)現(xiàn)
3.1 安防場(chǎng)所管理系統(tǒng)功能
3.1.1 權(quán)限控制
系統(tǒng)使用OAuth 2.0協(xié)議進(jìn)行微服務(wù)訪問(wèn)權(quán)限管理,同時(shí)采用客戶端憑證和令牌認(rèn)證2種認(rèn)證方式,保證權(quán)限認(rèn)證的安全性。用戶管理功能可以為不同用戶角色分配不同的用戶權(quán)限,通過(guò)角色的區(qū)別在后端控制請(qǐng)求訪問(wèn)權(quán)限和在前端控制功能頁(yè)面的跳轉(zhuǎn)權(quán)限。
3.1.2 用戶管理
對(duì)系統(tǒng)用戶的登錄、登出、查詢提供支持,并提供用戶新增、修改及修改密碼的功能。
3.1.3 安防場(chǎng)所管理
在數(shù)據(jù)庫(kù)設(shè)計(jì)中增設(shè)安防場(chǎng)所ID字段,在安防場(chǎng)所的服務(wù)器中以配置文件的形式配置當(dāng)前安防場(chǎng)所ID,實(shí)現(xiàn)安防場(chǎng)所數(shù)據(jù)的互聯(lián)共享。
3.1.4 出入口管理
出入口管理為安防場(chǎng)所的出口和入口節(jié)點(diǎn)的管理,包括新增出入口信息,修改出入口信息,以及刪除出入口信息等管理功能。
3.1.5 攝像機(jī)管理
作為訪客通道內(nèi)的節(jié)點(diǎn),攝像機(jī)需要納入系統(tǒng)的管理,攝像機(jī)管理包括對(duì)攝像機(jī)進(jìn)行新增、修改及刪除,用戶可以靈活綁定攝像機(jī)與出入口和設(shè)備之間的連接關(guān)系。
3.1.6 安檢設(shè)備管理
作為訪客通道內(nèi)的節(jié)點(diǎn),安檢設(shè)備需要納入系統(tǒng)的管理,主要包括對(duì)設(shè)備信息的新增、修改及刪除。該功能可以實(shí)現(xiàn)按鍵區(qū)域內(nèi)設(shè)備數(shù)量及連接關(guān)系的靈活配置。
3.1.7 進(jìn)出記錄
以時(shí)間為檢索條件,提供查詢?cè)L客、員工出入安防場(chǎng)所的歷史記錄信息,其中包含進(jìn)入安防場(chǎng)所的認(rèn)證信息、安檢圖像信息、離開安防場(chǎng)所的認(rèn)證信息,并提供訪客預(yù)約信息查詢的功能。
3.1.8 統(tǒng)計(jì)分析
該功能主要是對(duì)報(bào)警信息、預(yù)約信息、員工出勤率、逗留時(shí)間、訪問(wèn)次數(shù)進(jìn)行統(tǒng)計(jì)分析,可以對(duì)報(bào)警信息較多的訪客進(jìn)行統(tǒng)計(jì)、預(yù)警。
3.1.9 實(shí)時(shí)信息統(tǒng)計(jì)
可視化實(shí)時(shí)展示當(dāng)天訪客預(yù)約總數(shù)、進(jìn)入安防場(chǎng)所內(nèi)的訪客數(shù)量、離開安防場(chǎng)所的訪客數(shù)量,使安防場(chǎng)所管理人員隨時(shí)掌握實(shí)時(shí)訪客客流情況。
3.1.10 報(bào)警管理
當(dāng)進(jìn)入安防場(chǎng)所的人員流程出現(xiàn)異常時(shí),系統(tǒng)發(fā)出報(bào)警信息至實(shí)時(shí)信息界面,并記錄入系統(tǒng),然后將報(bào)警信息以郵件等形式發(fā)送通知安防場(chǎng)所管理員。
3.1.11 數(shù)據(jù)上傳服務(wù)
用于將多個(gè)安防場(chǎng)所數(shù)據(jù)互聯(lián)共享,主要將單個(gè)安防場(chǎng)所的預(yù)約記錄、訪客進(jìn)出歷史記錄、安防場(chǎng)所工作人員進(jìn)出歷史記錄、訪客安檢信息、員工安檢信息等數(shù)據(jù)上傳至中心服務(wù)器。
3.2 人臉識(shí)別接口服務(wù)
用于將預(yù)約照片存入人臉庫(kù),能根據(jù)不同的攝像機(jī)類型切換人臉庫(kù),定時(shí)從人臉庫(kù)解綁當(dāng)天訪客的人臉圖片;還能將視頻流中實(shí)時(shí)抓拍到的照片與系統(tǒng)人臉庫(kù)圖片進(jìn)行比對(duì)驗(yàn)證,將比對(duì)結(jié)果推送至人臉驗(yàn)證服務(wù)端。
3.3 攝像機(jī)控制服務(wù)啟動(dòng)抓拍
該服務(wù)提供攝像機(jī)的抓拍、停拍功能(包括出入口和人體安檢儀端的攝像機(jī))。
3.4 數(shù)據(jù)傳輸服務(wù)
用于系統(tǒng)內(nèi)部的數(shù)據(jù)傳輸,包括安防場(chǎng)所預(yù)約記錄數(shù)據(jù)的上傳和人體安檢數(shù)據(jù)上傳中心服務(wù)器。
3.5 人臉驗(yàn)證服務(wù)
該服務(wù)通過(guò)對(duì)邊緣計(jì)算盒子的接口封裝,為出入口客戶端和人體安檢設(shè)備客戶端提供人臉驗(yàn)證的應(yīng)用功能接口,包括對(duì)攝像機(jī)的抓拍、停拍的控制;提供證件類型查詢、人臉比對(duì)等功能,并將查詢和比對(duì)的結(jié)果提交至服務(wù)器,同時(shí)提供配置人臉比對(duì)超時(shí)提醒功能,當(dāng)出現(xiàn)人臉比對(duì)超時(shí)等異常情況時(shí),可以通過(guò)系統(tǒng)提醒工作人員進(jìn)行人工核驗(yàn)身份。
4 結(jié)語(yǔ)
本系統(tǒng)設(shè)計(jì)的創(chuàng)新之處在于:運(yùn)用分布式架構(gòu)和負(fù)載均衡技術(shù),在控制成本的同時(shí)提升系統(tǒng)的高可用和高并發(fā),有效避免因流量激增引起的數(shù)據(jù)壓力;使用Spring Cloud 微服務(wù)架構(gòu)設(shè)計(jì)模式,通過(guò)小而可靠的功能模塊構(gòu)建整體方案,每個(gè)服務(wù)都可以獨(dú)立于其他服務(wù)進(jìn)行部署;在OAuth 2.0授權(quán)模式下,采用客戶端憑證和令牌認(rèn)證方式,保證權(quán)限認(rèn)證的安全性;使用Redis緩存系統(tǒng),快速獲取實(shí)時(shí)訪客流程狀態(tài)轉(zhuǎn)換、異常流程報(bào)警等數(shù)據(jù)信息。本系統(tǒng)可以實(shí)現(xiàn)安防場(chǎng)所的互聯(lián)互通,共享多個(gè)安防場(chǎng)所管理平臺(tái)的數(shù)據(jù),促進(jìn)智慧化安防場(chǎng)所的發(fā)展。
5 參考文獻(xiàn)
[1]周雪萍,烏嶸,王俊麗,等.基于分布式數(shù)據(jù)平臺(tái)的數(shù)據(jù)采集系統(tǒng)—以新疆油田公司采氣一廠為例[J].信息系統(tǒng)工程,2020(9):26-27.
[2]程芳.基于三層框架的經(jīng)濟(jì)責(zé)任審計(jì)管理系統(tǒng)研究[J].自動(dòng)化技術(shù)與應(yīng)用,2020,39(11):147-150.
[3]牟林鋼.一種微服務(wù)架構(gòu)下的負(fù)載均衡策略優(yōu)化方法[J].電子設(shè)計(jì)工程,2020,28(7):87-90,94.
[4]田純青.利用Nginx實(shí)現(xiàn)基于URI的Web負(fù)載分配[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2009(7):187-191.
[5]詹利群,程海林,任曉煒.Redis緩存技術(shù)在自動(dòng)氣象站資料調(diào)用中的優(yōu)化應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2019,28(5):77-83.