夏勝楠
(金陵科技學院,江蘇南京, 210023)
隨著物聯(lián)網(wǎng)技術的發(fā)展,該技術運用于倉儲中的技術也愈發(fā)成熟,使用RFID將用戶與管理員權限區(qū)分開,從而使倉庫的入庫、管理、到出庫等環(huán)節(jié)變得尤為簡單且更加安全。
在此其基礎上加入后端微服務框架,使其各個功能分開,減少冗余度以及軟件的性能壓力,以至于保證倉儲管理系統(tǒng)的穩(wěn)定性和有效性。本系統(tǒng)將計算機現(xiàn)代技術、傳感器以及通信原理結合,使所有問題進行統(tǒng)一,解決了傳統(tǒng)倉儲管理人員不足等問題,通過本文研究,希望能夠加強物聯(lián)網(wǎng)與微服務框架的使用,為百姓以及企業(yè)帶來真正的便捷。
本文將系統(tǒng)功能劃分為詳細用戶、管理員,再者就是其他的交互細節(jié)。目的是綜合性實現(xiàn)對倉儲的管理,在整個研究過程中將依照圖1的系統(tǒng)功能圖進行解決問題方案的依據(jù)。
圖1 系統(tǒng)功能模塊劃分圖
系統(tǒng)在開發(fā)和設計之前對主要的方法和設計原則進行分析,只有確定了設計的原則以后才可以進行后續(xù)的設計工作。包括簡單實用的設計原則和可靠穩(wěn)定的原則本系統(tǒng)也是根據(jù)以上設計的原則進行確定設計總體框架的。
系統(tǒng)實現(xiàn)過程中需要對系統(tǒng)內部進行松耦合的設計,合理安排接口使用及性能調度,同時還需要對系統(tǒng)硬件部分的穩(wěn)定性提出更高要求,這樣就能實現(xiàn)對系統(tǒng)整體使用及軟硬件維護進行動態(tài)把控。
設備箱收集到的現(xiàn)場環(huán)境進行數(shù)據(jù)傳輸上傳至云平臺,顯然云平臺也可反方向下發(fā)指令給設備箱。在客戶端可以發(fā)送請求,云平臺會接收指令返回相應數(shù)據(jù)。圖2為系統(tǒng)設計框架圖。其中設備箱由LCD顯示器、攝像頭、傳感器、感應器組成,其中傳感器主要以RFID、ESP32-CAM、ESP8266組成。云平臺包括MQTT協(xié)議、OKHTTP協(xié)議以及接口加密技術。
圖2 系統(tǒng)框架圖
如圖3所示,用戶通過輸入對應的Web端網(wǎng)址進入操作界面,注冊登錄后即可根據(jù)所需時間的不同對設備進行選擇或預約設備,用戶在后臺可以查看到自己所選擇的設備。本系統(tǒng)特設用戶使用反饋模塊,用戶根據(jù)使用感受及時提出建議反饋。
圖3 設計流程圖
管理員在管理端可以查看設備信息、實時監(jiān)控、客戶反饋、設備流轉情況、設備定位、設備預警情況。因用戶反饋模塊的設立,從而推動開發(fā)人員進行系統(tǒng)的升級與更新。系統(tǒng)采用B/S架構,故不必安裝,操作界面簡潔靈活,無須過多學習,即可上手使用。
在系統(tǒng)設計中,單體應用在以往發(fā)展中常被廣泛應用,但是此技術的開發(fā)結構是極其復雜且相當具有冗余性的。同時若想在單體應用中更新已開發(fā)完成的軟件或者添加新的功能,必須結束所有軟件從而部署整個應用,這種應用由于沒有管理分割,沒有重疊交叉的管理方式從而會導致整個系統(tǒng)接二連三地重復建設,而微服務的出現(xiàn)直接解決了這一問題。
2014 Martin Fowler 正式提出微服務架構的概念[1],而微服務架構本質上是傳統(tǒng)單體架構的演進[2],言外之意就是把單體應用結構總體劃分成若干微小部分,并且每個微小的部分都會單獨對應的數(shù)據(jù)庫,然后利用一系列的API網(wǎng)關作為微小部分和客戶端之間的橋梁,而這每段微小的部分就稱為微服務,因此用此等方法可以有效降低服務端的耦合性,提高系統(tǒng)的整體性能[3]。
本系統(tǒng)微服務應用架構實例為圖4所示PC端、移動端等多種應用終端進行請求發(fā)起。正如上所說網(wǎng)關是微服務部分和客戶端聯(lián)系的一個橋梁通道。即所有客戶端發(fā)送請求后,路經(jīng)網(wǎng)關,從而訪問倉儲管理系統(tǒng)的微服務后臺。如果由若干個請求同時需要系統(tǒng)進行并發(fā)處理,則這些請求會部署成集群形式。最后API接收到這些發(fā)出的請求后,意味著它們到達微服務應用。
圖4 微服務架構設計圖
由此將這些從單體中拆分出來后,這些微應用根據(jù)自身的負載均衡進行部署。在微服務架構內,若其中的任意子微應用需要進行體系形成時,后端服務器會依照前后順序進行排列依次接受請求。而這形成體系會同樣對待后端中的每一臺服務器??偨Y以上,服務器實際的連接數(shù)量無論如何都不會受當前系統(tǒng)負載數(shù)量的影響,所以對本系統(tǒng)體系也不會造成任何影響。也就產(chǎn)生了負載均衡的效果。
心跳機制是通信協(xié)議中的一種,心跳機制的用途主要有兩種,一種是用于監(jiān)測通信鏈路的實時狀況,一種是用于保持發(fā)端與收端的長連接[4]。前者亦可稱短連接,后者為長連接。
第一種實時狀況用一種操作頻繁的通訊作解釋,并且此通訊次數(shù)不能過多。在計算機網(wǎng)絡下,每個TCP在傳輸層都會經(jīng)歷三次握手四次揮手。因此它適用于每個用戶在不頻繁操作且并發(fā)數(shù)比較大的情況下。若用戶需重復操作,性能時延會受短連接的重復操作而造成層疊,由此可得短連接是受頻繁操作限制的。
而長鏈接是客戶端和服務端首先建立連接同時互不斷開,之后進行報文的發(fā)與收,而此等操作一直連續(xù),直至兩者中的任意一方關閉連接為止。在本系統(tǒng)中,采用的就是第二種長鏈接方式的心跳機制。本系統(tǒng)采用應用層心跳,即使用網(wǎng)絡切換和超時的心跳包執(zhí)行重連操作。這里的心跳一般指客戶端或者服務端隔一定的時間向對面端口發(fā)送自定義的指令,以這種方式判斷兩者是否存活,而這間隔發(fā)送類似于心跳跳動間隔,因此也可以稱之為心跳指令。
通過這種機制可以在服務端一直沒有等到某個客戶端的心跳回應時主動關閉窗口使其下限,重新獲取新的客戶端。圖5為本系統(tǒng)心跳機制圖。
圖5 心跳機制設計圖
使用者在進入倉儲時需要進行攝像頭身份認證,攝像頭將抓取到的人臉圖片上傳到巴法云平臺,則服務器通過HTTP協(xié)議與巴法云平臺進行互聯(lián)得到圖片,在經(jīng)過下文提到的基于深度學習的圖片篩選算法進行比對(由圖片接收到多元擬合到訓練模型到下發(fā)圖片最后到服務器),從而開門或報警。圖6為開門過程設計流程圖。
對圖6的算法處理模塊進行詳細分析。對圖像的分類與篩選是機器視覺中比較常規(guī)的兩種問題。依照發(fā)展情況在應用上計算機領域中的機器學習領域核心就是上述的兩種情況。而傳統(tǒng)機器學習技術分析數(shù)據(jù)是利用數(shù)據(jù)最早之前未處理時的形態(tài)進行的,其實這也比較依賴于開發(fā)者具備豐富的經(jīng)驗,才能設計出能把未處理的數(shù)據(jù)轉換成有意義的特征向量當作架構的輸入。這種方法很大程度上還是人工篩選特征值,因此這種學習方法耗時耗力,是一種啟發(fā)式的方法,同時它存在著極大的不確定性。引入深度學習后,它的方法為特征學習法,而這種方法時能把未處理數(shù)據(jù)輸入到模型,然后得以獲取更為抽象的特征值。與前者的傳統(tǒng)機器學習最大不同在于,基于深度學習的圖像篩選想要獲取較明顯的特征是可以不經(jīng)過專業(yè)工程師之手的,只需要采用通用的學習程序從數(shù)據(jù)中學習即可。因此本文通過Python的PIL圖像庫,進行圖片的識別與保存,下一步使用開源機器學習庫,最后通過基于深度學習的圖片篩選算法識別人體特征從而達到區(qū)分與篩選人臉是否符合圖片庫的目的,這樣可以保證倉儲的安全性。圖7為圖片篩選算法設計流程圖。
圖6 系統(tǒng)開門設計圖
圖7 圖片篩選算法設計流程圖
在本文研究與實現(xiàn)中,主要通過介紹傳統(tǒng)倉儲管理所存在的問題引出需要建立現(xiàn)代化無人高效的倉儲管理系統(tǒng)。研究了系統(tǒng)的基本組成與設計流程。本系統(tǒng)使用RFID射頻技術保證用戶與管理員的權限,并使之交叉分開,選用以微服務為后端框架來保證web端的具有高擴展性、高容錯率以及低冗余性,保證系統(tǒng)的維護性。同時引入了心跳機制以及基于深度學習的圖片篩選算法。
綜上設計并實現(xiàn)一套基于物聯(lián)網(wǎng)的倉儲管理系統(tǒng),結合眾多技術,具有便于管理、高效等優(yōu)點。