胡家明
(貴州高質(zhì)云檢信息科技有限公司,貴陽(yáng)550000)
打造全國(guó)頂尖的檢驗(yàn)檢測(cè)認(rèn)證大數(shù)據(jù)服務(wù)平臺(tái),集在線(xiàn)下單、填寫(xiě)委托、支付、物流等服務(wù)。檢驗(yàn)檢測(cè)平臺(tái)保障人們吃得安心,住的放心,用的省心,提升檢驗(yàn)檢測(cè)機(jī)構(gòu)的綜合能力是時(shí)代的需要。利用“物聯(lián)網(wǎng)”技術(shù),通過(guò)將無(wú)線(xiàn)終端、攝像設(shè)備、煙感設(shè)備、緊急求助設(shè)備等傳感探測(cè)設(shè)備與自動(dòng)滅火裝置等予以整合聯(lián)動(dòng),通過(guò)“智能化”消防和服務(wù)功能相結(jié)合實(shí)現(xiàn)在線(xiàn)監(jiān)督管理,智能化預(yù)警,遠(yuǎn)程監(jiān)測(cè)[1];有文獻(xiàn)通過(guò)互聯(lián)網(wǎng)與居家養(yǎng)老服務(wù)模式相結(jié)合全面提升老人生活水平[2];有文獻(xiàn)提出一種基于物聯(lián)網(wǎng)技術(shù)的移動(dòng)網(wǎng)絡(luò)感知系統(tǒng),多種網(wǎng)絡(luò)制式傳輸[3];有文獻(xiàn)使用物聯(lián)網(wǎng)計(jì)算探究計(jì)算機(jī)網(wǎng)絡(luò)安全實(shí)現(xiàn)對(duì)結(jié)構(gòu)和框架的梳理,對(duì)本文設(shè)計(jì)提供的指導(dǎo)思路[4];有文獻(xiàn)網(wǎng)關(guān)采用硬件TCP/IP設(shè)計(jì)方案,交換機(jī)可支持8個(gè)TCP/IP客戶(hù)端訪(fǎng)問(wèn)并預(yù)留有多類(lèi)接口,接入方便、性?xún)r(jià)比高[5]。
在檢測(cè)機(jī)構(gòu)中有成百臺(tái)PC機(jī)用于處理及分析各大型儀器設(shè)備生成的數(shù)據(jù)。檢測(cè)設(shè)備通過(guò)分離、采集被測(cè)物信息由COM口與PC機(jī)連接,在PC端生成PDF文檔,設(shè)備很難實(shí)現(xiàn)PDF文檔無(wú)線(xiàn)傳送至云端,所以需要通過(guò)Python腳本將PDF文檔解析成列表。解析后的列表利用Python中的正則規(guī)則封裝成Json格式發(fā)送。實(shí)驗(yàn)室設(shè)備與PC機(jī)都是通過(guò)網(wǎng)線(xiàn)或串口線(xiàn)直連通信,在加裝前置機(jī)后,數(shù)據(jù)通過(guò)TCP/IP協(xié)議發(fā)送至前置機(jī),實(shí)驗(yàn)室的每個(gè)PC機(jī)與機(jī)房安裝的前置機(jī)實(shí)現(xiàn)局域網(wǎng)通信,前置機(jī)接受到數(shù)據(jù)發(fā)送至云端服務(wù)器,實(shí)現(xiàn)對(duì)數(shù)據(jù)遠(yuǎn)程存儲(chǔ)。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

圖1 系統(tǒng)總體結(jié)構(gòu)框圖Fig.1 Overall structure diagram of the system
對(duì)一些物體或環(huán)境,需要了解其信息,人類(lèi)的感官很難直接感受。傳感器設(shè)備代替人類(lèi)感知,就是物聯(lián)網(wǎng)的感知層。通過(guò)傳感器去感知樣品成分,分析出數(shù)據(jù),網(wǎng)絡(luò)層通過(guò)感知層協(xié)議實(shí)現(xiàn)與服務(wù)器數(shù)據(jù)通信,應(yīng)用層實(shí)現(xiàn)樣品數(shù)據(jù)的顯示。通過(guò)物聯(lián)網(wǎng)的3層架構(gòu)實(shí)現(xiàn)信息化平臺(tái)的連接,如圖2所示。

圖2 物聯(lián)網(wǎng)網(wǎng)絡(luò)架構(gòu)圖Fig.2 Internet of Things network architecture diagram
實(shí)驗(yàn)室的檢測(cè)數(shù)據(jù)通常以PDF格式保存,為實(shí)現(xiàn)檢測(cè)檢驗(yàn)信息化,需要將生成的PDF文檔格式數(shù)據(jù)實(shí)現(xiàn)遠(yuǎn)端存儲(chǔ),為了減少數(shù)據(jù)失真、保證傳送的實(shí)時(shí)性,通過(guò)Python腳本將PDF文檔轉(zhuǎn)為列表,所有元素放在一對(duì)中括號(hào)中,并使用逗號(hào)分隔開(kāi);再通過(guò)對(duì)不同數(shù)據(jù)類(lèi)型使用正則規(guī)則進(jìn)行解析,實(shí)現(xiàn)對(duì)特征興趣的數(shù)據(jù)、字符的匹配,然后封裝成Json發(fā)送數(shù)據(jù)。PDF文檔解析如圖3所示。

圖3 PDF文檔解析流程圖Fig.3 PDF document parsing flow chart
設(shè)計(jì)使用pdfplumber庫(kù)對(duì)于PDF文檔解析,對(duì)文檔按行掃描,轉(zhuǎn)換成文本信息。在設(shè)計(jì)中首先得在電腦的DOS系統(tǒng)上安裝pip install pdfplumber,庫(kù)安裝之后就可以在pyCharm上實(shí)現(xiàn)程序運(yùn)行。
設(shè)計(jì)針對(duì)實(shí)驗(yàn)室操作人員實(shí)現(xiàn)檢驗(yàn)檢測(cè)數(shù)據(jù)遠(yuǎn)程傳送。所以需要設(shè)計(jì)使用界面,根據(jù)Python就有非常多的圖形化編程庫(kù)選用PyQt5兼容Python程序通過(guò)PyChram的tools實(shí)現(xiàn)與QT5的聯(lián)合開(kāi)發(fā),腳本上可調(diào)用PyQt5庫(kù)實(shí)現(xiàn)界面設(shè)計(jì)。
為了保證本地?cái)?shù)據(jù)的安全可靠,減少外網(wǎng)攻擊,設(shè)置一道網(wǎng)關(guān)實(shí)現(xiàn)數(shù)據(jù)上的安全可信,既保證的數(shù)據(jù)不受外網(wǎng)的入侵,也實(shí)現(xiàn)數(shù)據(jù)遠(yuǎn)程存儲(chǔ)、訪(fǎng)問(wèn)的功能。數(shù)據(jù)在傳輸中屬于物聯(lián)網(wǎng)領(lǐng)域的傳輸層,采用TCP/IP協(xié)議發(fā)送數(shù)據(jù)。
電腦與設(shè)備之間通信交流需要雙方約定協(xié)議才能實(shí)現(xiàn)數(shù)據(jù)收發(fā)。物聯(lián)網(wǎng)架構(gòu)在傳輸層設(shè)計(jì)中主要協(xié)議有TCP和UDP 2種協(xié)議,對(duì)于UDP協(xié)議采用發(fā)報(bào)文的形式,但由于數(shù)據(jù)包發(fā)送時(shí)不能對(duì)其發(fā)送結(jié)果進(jìn)行驗(yàn)證并且在一次發(fā)送中數(shù)據(jù)的載量相對(duì)于TCP協(xié)議不大,所以本次設(shè)計(jì)在傳輸層使用TCP協(xié)議傳輸。
TCP協(xié)議提出的一種端到端的字節(jié)流通信協(xié)議,客服端與服務(wù)器為保證數(shù)據(jù)傳輸?shù)目煽啃裕瑢⒚總€(gè)數(shù)據(jù)包定義一個(gè)序號(hào),保證雙方能夠按序號(hào)通信。服務(wù)器收到一個(gè)序號(hào)之后返回一個(gè)ACK確認(rèn)第一次握手成功;如果客戶(hù)端在心跳包時(shí)間內(nèi)未收到服務(wù)器返回?cái)?shù)據(jù)則連接失敗,繼續(xù)重傳。這樣保證了數(shù)據(jù)的正確性和合法性。在雙方通信中采用3次握手協(xié)議建立連接。TCP3次握手的過(guò)程如圖4所示。

圖4 TCP/IP三次握手Fig.4 TCP/IP three handshakes
通過(guò)TCP協(xié)議建立實(shí)驗(yàn)室PC機(jī)與前置機(jī)通信,實(shí)現(xiàn)數(shù)據(jù)傳輸。實(shí)驗(yàn)仿真使用手機(jī)終端建立AP熱點(diǎn)可實(shí)現(xiàn)多臺(tái)PC機(jī)處于共同的網(wǎng)段下相互通信。手機(jī)AP熱點(diǎn)分配給連接的PC機(jī)IP地址。通過(guò)指定IP對(duì)特定的PC機(jī)建立通信連接。
實(shí)現(xiàn)前置機(jī)與云端通信對(duì)于TCP/IP應(yīng)用層常用HTTP協(xié)議。服務(wù)器和客戶(hù)端之前建立連接需要由客戶(hù)端向服務(wù)器發(fā)起請(qǐng)求消息,服務(wù)器接受到請(qǐng)求返回響應(yīng)消息。如圖5所示,客服端發(fā)送請(qǐng)求報(bào)文和服務(wù)器返回響應(yīng)報(bào)文格式。

圖5 HTTP請(qǐng)求和響應(yīng)報(bào)文格式Fig.5 HTTP request and response packet format
Http協(xié)議傳輸有8種不同的方法獲取指定的資源,在使用中主要應(yīng)用有GET方法和POST方法。雖然在定義上2個(gè)方法不同,但在使用上并沒(méi)有明顯的界限,所以使用POST方法實(shí)現(xiàn)數(shù)據(jù)的上傳。
將實(shí)驗(yàn)室檢測(cè)數(shù)據(jù)發(fā)送至云服務(wù)器,實(shí)現(xiàn)在線(xiàn)云存儲(chǔ),減少實(shí)驗(yàn)室數(shù)據(jù)存儲(chǔ)負(fù)擔(dān),而且可實(shí)現(xiàn)遠(yuǎn)程訪(fǎng)問(wèn),為后續(xù)客戶(hù)打印電子報(bào)告提供數(shù)據(jù)支撐。
云服務(wù)器是系統(tǒng)環(huán)境中運(yùn)行的虛擬服務(wù)器,通過(guò)互聯(lián)網(wǎng)對(duì)計(jì)算機(jī)遠(yuǎn)程操控,依靠配置多樣、獨(dú)立和快速的運(yùn)算環(huán)境能夠?qū)崿F(xiàn)安全、高效的彈性計(jì)算服務(wù)。云服務(wù)器提供獨(dú)立的運(yùn)算、存儲(chǔ)和托管等基礎(chǔ)設(shè)施服務(wù),但是由于組成結(jié)構(gòu)較為復(fù)雜,有很多的集群節(jié)點(diǎn)組成,每一個(gè)集群節(jié)點(diǎn)又由很多的硬件構(gòu)成。依靠強(qiáng)大的硬件設(shè)施提供虛擬化云盤(pán)、動(dòng)態(tài)資源調(diào)度,提升檢測(cè)企業(yè)業(yè)務(wù)辦理綜合能力。云服務(wù)器架構(gòu)如圖6所示。

圖6 云服務(wù)器框架Fig.6 Cloud server framework
通過(guò)物聯(lián)網(wǎng)將實(shí)驗(yàn)室檢驗(yàn)檢測(cè)設(shè)備和云端連接在一起,實(shí)現(xiàn)實(shí)驗(yàn)室檢測(cè)數(shù)據(jù)遠(yuǎn)端存儲(chǔ),在線(xiàn)訪(fǎng)問(wèn)等功能。功能需要完成實(shí)驗(yàn)室設(shè)備數(shù)據(jù)PDF解析、封裝Json格式、操作人機(jī)界面設(shè)計(jì)、與前置機(jī)通信和云端交互。
首先實(shí)現(xiàn)PDF文檔解析,通過(guò)PyCharm編寫(xiě)程序,PDF文檔轉(zhuǎn)換字符串,以“\n”換行符實(shí)現(xiàn)字符串分割,再轉(zhuǎn)換成列表利用正則規(guī)則封裝成Json格式發(fā)送特征數(shù)據(jù)。pdf文檔解析成字符串如圖7所示。

圖7 pdf文檔解析成字符串Fig.7 PDF documents parse into a string
使用pyQt5設(shè)計(jì)人機(jī)操作界面,生成exe應(yīng)用程序。設(shè)置好前置機(jī)的IP地址和端口號(hào),實(shí)驗(yàn)室電腦通過(guò)設(shè)置對(duì)應(yīng)的固定IP地址與前置機(jī)進(jìn)行通信。操作人員只需在操作界面上發(fā)送數(shù)據(jù)至前置機(jī),如圖8所示。

圖8 人機(jī)操作界面Fig.8 Operation interface
使用筆記本模擬機(jī)房中的前置機(jī),實(shí)現(xiàn)多臺(tái)設(shè)備發(fā)送數(shù)據(jù)。實(shí)驗(yàn)室PC機(jī)客戶(hù)端把數(shù)據(jù)封裝成JSON格式,以字符串、數(shù)字、對(duì)象、數(shù)組等形式把數(shù)據(jù)上傳至前置機(jī)數(shù)據(jù)庫(kù),整個(gè)傳送過(guò)程全在局域網(wǎng)內(nèi)實(shí)現(xiàn),保證實(shí)驗(yàn)室電腦不受外網(wǎng)入侵。多臺(tái)設(shè)備與模擬前置機(jī)數(shù)據(jù)通信如圖9所示。

圖9 多設(shè)備運(yùn)行聯(lián)合通信Fig.9 Multiple devices joint communications
數(shù)據(jù)發(fā)送至云端實(shí)現(xiàn)遠(yuǎn)端存儲(chǔ),格式實(shí)時(shí)分類(lèi)存儲(chǔ),生成電子報(bào)告,提高檢驗(yàn)檢測(cè)報(bào)告的安全、可信地存儲(chǔ)、查驗(yàn)的能力,如圖10所示。

圖10 云端顯示數(shù)據(jù)Fig.10 Data display on cloud
前端界面以實(shí)驗(yàn)室檢測(cè)檢驗(yàn)數(shù)據(jù)為支撐,為客戶(hù)提供檢驗(yàn)檢測(cè)認(rèn)證、設(shè)備共享、專(zhuān)家咨詢(xún)、星級(jí)評(píng)價(jià)、強(qiáng)制檢定、檢定校準(zhǔn)、信息庫(kù)、報(bào)告管理、交易維權(quán)、意見(jiàn)建議等方面服務(wù),依托食品安全云和實(shí)驗(yàn)室信息管理平臺(tái),構(gòu)建了以檢驗(yàn)檢測(cè)認(rèn)證服務(wù)為核心,并整合第三方資源平臺(tái)如線(xiàn)上線(xiàn)下支付體系、在線(xiàn)客服、物料體系、機(jī)構(gòu)化標(biāo)準(zhǔn)數(shù)據(jù)、第三方實(shí)驗(yàn)室信息管理系統(tǒng),實(shí)現(xiàn)企業(yè)在線(xiàn)檢測(cè)、認(rèn)證、設(shè)備共享、信息咨詢(xún)、在線(xiàn)支付、在線(xiàn)物流、在線(xiàn)報(bào)告等一列服務(wù)。檢驗(yàn)檢測(cè)信息化平臺(tái)如圖11所示。

圖11 檢驗(yàn)檢測(cè)信息化平臺(tái)搭建Fig.11 Construction of information platform for inspection and testing
本文設(shè)計(jì)實(shí)現(xiàn)了將實(shí)驗(yàn)室檢測(cè)數(shù)據(jù)生成的PDF文檔,在PC端使用PyQt5設(shè)計(jì)的人機(jī)操作界面一鍵發(fā)送至云端,實(shí)現(xiàn)遠(yuǎn)程存儲(chǔ),遠(yuǎn)程訪(fǎng)問(wèn),安全可信的在線(xiàn)生成電子報(bào)告,為搭建檢測(cè)檢驗(yàn)信息化平臺(tái)提供了數(shù)據(jù)支撐,可建成檢驗(yàn)檢測(cè)認(rèn)證公共服務(wù)平臺(tái),打造以檢驗(yàn)檢測(cè)認(rèn)證業(yè)務(wù)、培訓(xùn)、咨詢(xún)、信息化產(chǎn)品、儀器、耗材、信息庫(kù)、星級(jí)評(píng)價(jià)、強(qiáng)檢、校準(zhǔn)為一體的綜合服務(wù)平臺(tái),提供在線(xiàn)全流程無(wú)紙化檢測(cè);完成平臺(tái)食品板塊無(wú)紙化線(xiàn)上檢測(cè)下單、其他板塊提供在線(xiàn)咨詢(xún)服務(wù),如認(rèn)證服務(wù)、設(shè)備共享、橋梁、環(huán)境檢測(cè)等服務(wù)內(nèi)容上線(xiàn)。