劉耕陽 公安部第一研究所
計(jì)算機(jī)技術(shù)的快速發(fā)展引領(lǐng)著軟硬件的設(shè)計(jì)與應(yīng)用快速迭代更新,在一些領(lǐng)域中這種更新顯得相對遲緩,從而導(dǎo)致舊有軟件難以在新的環(huán)境中運(yùn)行,民航安檢中的信息系統(tǒng),便是其中之一。近十年來,全國機(jī)場數(shù)量顯著增長,實(shí)現(xiàn)網(wǎng)絡(luò)化覆蓋,頒證運(yùn)輸機(jī)場從158個增加到238個,機(jī)場密度從每10萬平方公里1.6個增加到2.5個,頒證通用機(jī)場由25個增長到240個,數(shù)量超過運(yùn)輸機(jī)場,全國機(jī)場年旅客吞吐量從4.1億人次增長到12.6億人次。這一系列數(shù)字背后所透露出的是國內(nèi)民航安檢力度及工作強(qiáng)度相較十年前快速增長,使民航安全保障任務(wù)變得極為嚴(yán)峻。對于保障民航空防安全而言,機(jī)場的安檢工作作為一個關(guān)鍵步驟,在民航空防、恐怖事件預(yù)防以及避免安全事故的發(fā)生中具有非常重要的地位。
安檢信息系統(tǒng)作為保證安檢工作有序順利進(jìn)行的重要手段,已被廣泛應(yīng)用于各類大型機(jī)場,其構(gòu)成包括驗(yàn)證工作站、開包工作站、管理員工作站等各類安檢業(yè)務(wù)相關(guān)站點(diǎn),將這些站點(diǎn)融入同一局域網(wǎng)之中,便構(gòu)成了安檢信息系統(tǒng),如圖1所示。通過安檢信息系統(tǒng),可以把旅客信息、行李信息、安檢工作人員信息等多個站點(diǎn)的數(shù)據(jù)信息進(jìn)行整合,高效、安全、集中的存儲,使得安檢信息能夠被有效管理,這對提高安檢工作質(zhì)量與效率、提高機(jī)場信息化建設(shè)具有重要作用。
構(gòu)成安檢信息系統(tǒng)的各類站點(diǎn)通常需要采集各種各樣的外部數(shù)據(jù)以便進(jìn)行分析和處理,因此需要集成多種外設(shè),這些外設(shè)的生產(chǎn)廠家各異、所生產(chǎn)的設(shè)備型號各異,對于一些使用周期較長的安檢信息系統(tǒng),現(xiàn)場會依據(jù)實(shí)際情況同時接入不同廠家、不同型號的同類型外設(shè),這就增加了系統(tǒng)的復(fù)雜程度,導(dǎo)致其穩(wěn)定性降低,影響安檢效率與信息反饋。當(dāng)前,安檢信息系統(tǒng)中常見的站點(diǎn)大都是把所有的外設(shè)集成在一個程序上,或者把部分外設(shè)所涉及的模塊獨(dú)立成一個程序,使用兩套設(shè)備。對于前者,程序維護(hù)開銷會隨著外設(shè)數(shù)量及類型的增加而增加,導(dǎo)致系統(tǒng)穩(wěn)定性下降;對于后者,則會在有限空間內(nèi)放置多余的顯示器、主機(jī)等設(shè)備用于處理相應(yīng)的外設(shè)信息,使本已局促的工作空間變得更加局促。此外,隨著Windows系統(tǒng)的不斷升級,以及安檢業(yè)務(wù)處理對計(jì)算機(jī)硬件性能的要求,Windows 32位系統(tǒng)的處理能力已逐漸不能滿足當(dāng)前業(yè)務(wù)需求,而由于歷史或現(xiàn)實(shí)原因,部分外設(shè)只支持32位,導(dǎo)致集成這些外設(shè)的站點(diǎn)也只能設(shè)計(jì)成32位程序,這極大限制了安檢信息系統(tǒng)的工作效率以及采用新技術(shù)的能力,導(dǎo)致處理潛在威脅的能力下降,從而帶來一定的安全隱患。
為了既能兼容32位外設(shè),又能利用64位系統(tǒng)所提供的良好硬件性能,同時能夠集成各種各樣的外設(shè)又不影響安檢信息系統(tǒng)的穩(wěn)定運(yùn)行,筆者提出了一種橋接64位與32位程序的系統(tǒng)設(shè)計(jì)方法,這一方法基于Socket技術(shù),服務(wù)端程序編譯為64位,用于處理安檢信息,客戶端程序編譯為32位,用于集成各種外設(shè),以獲取外部信息,然后把接收到的外部信息進(jìn)行解析,發(fā)送給服務(wù)端程序。這樣,便可在不增加額外設(shè)備的前提下使用64位系統(tǒng),同時兼容各種類型的外設(shè),并且降低系統(tǒng)維護(hù)成本。
橋接64位與32位程序的總體設(shè)計(jì)框圖如圖2所示,系統(tǒng)分為兩個部分,分別是服務(wù)端和客戶端??蛻舳诉B接各種類型的外設(shè),用于獲取通過外設(shè)得到的外部信息,然后通過Socket技術(shù)將獲取到的數(shù)據(jù)發(fā)送至服務(wù)端;服務(wù)端接收到數(shù)據(jù)后,對其進(jìn)行處理并判斷是否滿足相應(yīng)的功能需求,同時,服務(wù)端還會發(fā)送當(dāng)前狀態(tài)給客戶端,避免系統(tǒng)工作流程紊亂。
在編譯的過程中,服務(wù)端編譯為64位,以便更好的利用計(jì)算機(jī)資源,客戶端編譯為32位,用以兼容32位外設(shè)。通過這樣的設(shè)計(jì),安檢信息系統(tǒng)能夠在兼容性提升的同時,避免外設(shè)故障影響整個系統(tǒng)運(yùn)行,還能避免因外設(shè)頻繁更換而頻繁修改整個系統(tǒng)程序。
基于上述設(shè)計(jì),橋接64位與32位程序的系統(tǒng)設(shè)計(jì)方法的系統(tǒng)架構(gòu)可分為七層,如圖3所示。
第一至三層為客戶端,包含外部信息源層、讀取設(shè)備層和數(shù)據(jù)格式化層三部分內(nèi)容。第四到七層為服務(wù)端,包含信息源層、數(shù)據(jù)處理層、功能應(yīng)用層和反饋結(jié)果層四部分內(nèi)容。接下來,將就設(shè)計(jì)中的每一層進(jìn)行詳細(xì)介紹。
客戶端的主要功能在于獲取外部信息,其數(shù)據(jù)支撐來自于外部信息源層,也即旅客或工作人員出示的證件、票據(jù)或憑證等信息,包括但不限于身份證、護(hù)照、登機(jī)牌、二維碼、指紋信息等,之后通過讀取設(shè)備層的各種相應(yīng)設(shè)備(如身份證閱讀儀、登機(jī)牌閱讀儀等)把上述信息數(shù)字化,最后經(jīng)過數(shù)據(jù)格式化層將這些信息打包成指定的格式發(fā)送到服務(wù)端。
以上流程都是在獲取到外部信息后自動觸發(fā)的,不需要與服務(wù)端進(jìn)行交互。通過這一設(shè)計(jì),無論現(xiàn)場信息源與外設(shè)如何變化,只要現(xiàn)場能夠提供獲取相應(yīng)信息源的外設(shè),然后以指定的格式發(fā)送數(shù)據(jù),就能保障準(zhǔn)確獲取到外部信息。同時,客戶端編譯為32位獨(dú)立運(yùn)行,對32位外設(shè)進(jìn)行兼容,由于是一個獨(dú)立的程序,因此外設(shè)故障引起的程序崩潰并不會影響服務(wù)端的正常工作,從而保證了系統(tǒng)的穩(wěn)定性。
服務(wù)端的主要目的是對外部信息進(jìn)行處理,針對信息的正確性給出一個結(jié)果。這個結(jié)果的依據(jù)來自于信息源,也即整個安檢信息系統(tǒng)的數(shù)據(jù)中心,里面存儲了旅客離港信息、航班信息、行李信息等數(shù)據(jù),通過數(shù)據(jù)處理層解析客戶端發(fā)來的旅客信息,在數(shù)據(jù)中心進(jìn)行存儲、查詢并比對,再根據(jù)功能應(yīng)用層所需要滿足的功能,一一判斷外部信息是否滿足,最后在反饋結(jié)果層給出結(jié)果。
每當(dāng)接收到客戶端發(fā)送過來的數(shù)據(jù),服務(wù)端就會判斷該條數(shù)據(jù)的合法性,包括判斷當(dāng)前流程是否應(yīng)收這條數(shù)據(jù)、接收的數(shù)據(jù)格式是否正確,如數(shù)據(jù)不合法,將會給出相應(yīng)提示,指導(dǎo)工作人員規(guī)范操作流程。
由于服務(wù)端的設(shè)計(jì)剝離了外設(shè),因此其可以獨(dú)立編譯為64位程序,能夠更有效的利用計(jì)算機(jī)提供的硬件資源,重點(diǎn)是能夠和安檢信息系統(tǒng)中的其它64位工作站相互協(xié)作,整體提升安檢系統(tǒng)的運(yùn)行效率。此外,服務(wù)端也會實(shí)時檢測客戶端的運(yùn)行情況,若出現(xiàn)程序崩潰的情況,則會立即重啟,避免無法自動獲取外部信息的情況出現(xiàn)。
驗(yàn)證工作站作為安檢信息系統(tǒng)中典型的外設(shè)站點(diǎn),需要獲取旅客的票、證、人信息,以驗(yàn)證旅客是否能夠進(jìn)行安檢,集成了包括身份證閱讀儀、護(hù)照閱讀儀、登機(jī)牌閱讀儀、人臉識別模塊等在內(nèi)的多種外設(shè)。這些外設(shè)有的只能用于32位程序,而驗(yàn)證工作站需要設(shè)計(jì)為64位,因此急需解決32位與64位程序兼容性的問題。
根據(jù)上文的設(shè)計(jì)方法,客戶端用于接入驗(yàn)證工作站的各種外設(shè),編譯為32位,服務(wù)端用于執(zhí)行驗(yàn)證工作站核驗(yàn)旅客身份的功能,最終反饋旅客核驗(yàn)是否成功,編譯為64位?;诖?,在Windows10的64位系統(tǒng)下,采用C#編碼,成功實(shí)現(xiàn)了驗(yàn)證工作站,無需安裝除外設(shè)驅(qū)動之外的其它插件就可正常運(yùn)行。此外,客戶端程序和服務(wù)端程序同時部署在一臺主機(jī)上,通過監(jiān)聽本機(jī)IP 127.0.0.1的高位端口,避免了額外的硬件和網(wǎng)絡(luò)開銷,同時保證Socket通信的時效性。
通過采用客戶端與服務(wù)端的方式,旅客信息獲取與安檢信息處理相分離,因此能夠通過客戶端模擬出旅客信息,將其發(fā)送給服務(wù)端,進(jìn)而進(jìn)行自動測試。在Windows 10的64位系統(tǒng)環(huán)境下,通過于上萬條不間斷的模擬旅客信息進(jìn)行自動化測試,旅客驗(yàn)證信息準(zhǔn)確記錄到數(shù)據(jù)庫,旅客照片和證件照片全部保存,驗(yàn)證結(jié)果反饋正確,工作站運(yùn)行正常,說明采用文中所提出的設(shè)計(jì)方法實(shí)現(xiàn)的驗(yàn)證工作站具備可行性。
詳細(xì)介紹了一種橋接64位與32位程序的系統(tǒng)設(shè)計(jì)方法,并以機(jī)場安檢信息系統(tǒng)中的驗(yàn)證工作站為例,說明這種設(shè)計(jì)方法的有效性。相較于傳統(tǒng)的把外部信息獲取與安檢信息處理集成一體的設(shè)計(jì)方法,文中所提出的設(shè)計(jì)方法基于Socket技術(shù),把外部信息獲取從安檢信息處理中獨(dú)立出來,分別編譯為32位和64位程序,保證各自的獨(dú)立性。這樣的設(shè)計(jì)方法使安檢信息系統(tǒng)中的各站點(diǎn)在兼容32位外設(shè)使用的前提下,又能設(shè)計(jì)為64位程序,使之能夠更好的利用計(jì)算機(jī)資源,同時確保這些站點(diǎn)不會因?yàn)橥庠O(shè)的故障而導(dǎo)致系統(tǒng)崩潰,保障其平穩(wěn)有效運(yùn)行。每當(dāng)有新的外設(shè)需要接入時,只需將其開發(fā)文件封裝成一個類集成到用于獲取外部信息的客戶端源碼中即可,不需更改作為站點(diǎn)主程序的服務(wù)端程序,降低整個站點(diǎn)的維護(hù)成本。最后,通過模擬上萬人次的旅客安檢,結(jié)果顯示采用文中所提方法設(shè)計(jì)的安檢信息系統(tǒng)組成部分之一的驗(yàn)證工作站運(yùn)行正常,充分說明這一設(shè)計(jì)具有切實(shí)可行性。