夏勝楠
(金陵科技學院,江蘇南京, 210023)
隨著物聯網技術的發展,該技術運用于倉儲中的技術也愈發成熟,使用RFID將用戶與管理員權限區分開,從而使倉庫的入庫、管理、到出庫等環節變得尤為簡單且更加安全。
在此其基礎上加入后端微服務框架,使其各個功能分開,減少冗余度以及軟件的性能壓力,以至于保證倉儲管理系統的穩定性和有效性。本系統將計算機現代技術、傳感器以及通信原理結合,使所有問題進行統一,解決了傳統倉儲管理人員不足等問題,通過本文研究,希望能夠加強物聯網與微服務框架的使用,為百姓以及企業帶來真正的便捷。
本文將系統功能劃分為詳細用戶、管理員,再者就是其他的交互細節。目的是綜合性實現對倉儲的管理,在整個研究過程中將依照圖1的系統功能圖進行解決問題方案的依據。

圖1 系統功能模塊劃分圖
系統在開發和設計之前對主要的方法和設計原則進行分析,只有確定了設計的原則以后才可以進行后續的設計工作。包括簡單實用的設計原則和可靠穩定的原則本系統也是根據以上設計的原則進行確定設計總體框架的。
系統實現過程中需要對系統內部進行松耦合的設計,合理安排接口使用及性能調度,同時還需要對系統硬件部分的穩定性提出更高要求,這樣就能實現對系統整體使用及軟硬件維護進行動態把控。
設備箱收集到的現場環境進行數據傳輸上傳至云平臺,顯然云平臺也可反方向下發指令給設備箱。在客戶端可以發送請求,云平臺會接收指令返回相應數據。圖2為系統設計框架圖。其中設備箱由LCD顯示器、攝像頭、傳感器、感應器組成,其中傳感器主要以RFID、ESP32-CAM、ESP8266組成。云平臺包括MQTT協議、OKHTTP協議以及接口加密技術。

圖2 系統框架圖
如圖3所示,用戶通過輸入對應的Web端網址進入操作界面,注冊登錄后即可根據所需時間的不同對設備進行選擇或預約設備,用戶在后臺可以查看到自己所選擇的設備。本系統特設用戶使用反饋模塊,用戶根據使用感受及時提出建議反饋。

圖3 設計流程圖
管理員在管理端可以查看設備信息、實時監控、客戶反饋、設備流轉情況、設備定位、設備預警情況。因用戶反饋模塊的設立,從而推動開發人員進行系統的升級與更新。系統采用B/S架構,故不必安裝,操作界面簡潔靈活,無須過多學習,即可上手使用。
在系統設計中,單體應用在以往發展中常被廣泛應用,但是此技術的開發結構是極其復雜且相當具有冗余性的。同時若想在單體應用中更新已開發完成的軟件或者添加新的功能,必須結束所有軟件從而部署整個應用,這種應用由于沒有管理分割,沒有重疊交叉的管理方式從而會導致整個系統接二連三地重復建設,而微服務的出現直接解決了這一問題。
2014 Martin Fowler 正式提出微服務架構的概念[1],而微服務架構本質上是傳統單體架構的演進[2],言外之意就是把單體應用結構總體劃分成若干微小部分,并且每個微小的部分都會單獨對應的數據庫,然后利用一系列的API網關作為微小部分和客戶端之間的橋梁,而這每段微小的部分就稱為微服務,因此用此等方法可以有效降低服務端的耦合性,提高系統的整體性能[3]。
本系統微服務應用架構實例為圖4所示PC端、移動端等多種應用終端進行請求發起。正如上所說網關是微服務部分和客戶端聯系的一個橋梁通道。即所有客戶端發送請求后,路經網關,從而訪問倉儲管理系統的微服務后臺。如果由若干個請求同時需要系統進行并發處理,則這些請求會部署成集群形式。最后API接收到這些發出的請求后,意味著它們到達微服務應用。

圖4 微服務架構設計圖
由此將這些從單體中拆分出來后,這些微應用根據自身的負載均衡進行部署。在微服務架構內,若其中的任意子微應用需要進行體系形成時,后端服務器會依照前后順序進行排列依次接受請求。而這形成體系會同樣對待后端中的每一臺服務器。總結以上,服務器實際的連接數量無論如何都不會受當前系統負載數量的影響,所以對本系統體系也不會造成任何影響。也就產生了負載均衡的效果。
心跳機制是通信協議中的一種,心跳機制的用途主要有兩種,一種是用于監測通信鏈路的實時狀況,一種是用于保持發端與收端的長連接[4]。前者亦可稱短連接,后者為長連接。
第一種實時狀況用一種操作頻繁的通訊作解釋,并且此通訊次數不能過多。在計算機網絡下,每個TCP在傳輸層都會經歷三次握手四次揮手。因此它適用于每個用戶在不頻繁操作且并發數比較大的情況下。若用戶需重復操作,性能時延會受短連接的重復操作而造成層疊,由此可得短連接是受頻繁操作限制的。
而長鏈接是客戶端和服務端首先建立連接同時互不斷開,之后進行報文的發與收,而此等操作一直連續,直至兩者中的任意一方關閉連接為止。在本系統中,采用的就是第二種長鏈接方式的心跳機制。本系統采用應用層心跳,即使用網絡切換和超時的心跳包執行重連操作。這里的心跳一般指客戶端或者服務端隔一定的時間向對面端口發送自定義的指令,以這種方式判斷兩者是否存活,而這間隔發送類似于心跳跳動間隔,因此也可以稱之為心跳指令。
通過這種機制可以在服務端一直沒有等到某個客戶端的心跳回應時主動關閉窗口使其下限,重新獲取新的客戶端。圖5為本系統心跳機制圖。

圖5 心跳機制設計圖
使用者在進入倉儲時需要進行攝像頭身份認證,攝像頭將抓取到的人臉圖片上傳到巴法云平臺,則服務器通過HTTP協議與巴法云平臺進行互聯得到圖片,在經過下文提到的基于深度學習的圖片篩選算法進行比對(由圖片接收到多元擬合到訓練模型到下發圖片最后到服務器),從而開門或報警。圖6為開門過程設計流程圖。
對圖6的算法處理模塊進行詳細分析。對圖像的分類與篩選是機器視覺中比較常規的兩種問題。依照發展情況在應用上計算機領域中的機器學習領域核心就是上述的兩種情況。而傳統機器學習技術分析數據是利用數據最早之前未處理時的形態進行的,其實這也比較依賴于開發者具備豐富的經驗,才能設計出能把未處理的數據轉換成有意義的特征向量當作架構的輸入。這種方法很大程度上還是人工篩選特征值,因此這種學習方法耗時耗力,是一種啟發式的方法,同時它存在著極大的不確定性。引入深度學習后,它的方法為特征學習法,而這種方法時能把未處理數據輸入到模型,然后得以獲取更為抽象的特征值。與前者的傳統機器學習最大不同在于,基于深度學習的圖像篩選想要獲取較明顯的特征是可以不經過專業工程師之手的,只需要采用通用的學習程序從數據中學習即可。因此本文通過Python的PIL圖像庫,進行圖片的識別與保存,下一步使用開源機器學習庫,最后通過基于深度學習的圖片篩選算法識別人體特征從而達到區分與篩選人臉是否符合圖片庫的目的,這樣可以保證倉儲的安全性。圖7為圖片篩選算法設計流程圖。

圖6 系統開門設計圖

圖7 圖片篩選算法設計流程圖
在本文研究與實現中,主要通過介紹傳統倉儲管理所存在的問題引出需要建立現代化無人高效的倉儲管理系統。研究了系統的基本組成與設計流程。本系統使用RFID射頻技術保證用戶與管理員的權限,并使之交叉分開,選用以微服務為后端框架來保證web端的具有高擴展性、高容錯率以及低冗余性,保證系統的維護性。同時引入了心跳機制以及基于深度學習的圖片篩選算法。
綜上設計并實現一套基于物聯網的倉儲管理系統,結合眾多技術,具有便于管理、高效等優點。