操人,69714苍井空在线观看,亚洲Se图15P精品,亚洲成熟av

    歡迎進(jìn)入上海陽(yáng)合供應(yīng)鏈管理有限公司!
  •  13472705338 

  • “視聽(tīng)+云倉(cāng)儲(chǔ)+精準(zhǔn)扶貧”電商模式的脫貧經(jīng)驗(yàn)探討
  • 倉(cāng)儲(chǔ)型物流企業(yè)的經(jīng)營(yíng)模式創(chuàng)新
  • 現(xiàn)代倉(cāng)儲(chǔ)管理中條形碼技術(shù)的運(yùn)用
  • 基于IOS平臺(tái)的小型倉(cāng)儲(chǔ)管理系統(tǒng)設(shè)計(jì)
  • 用6S管理注入倉(cāng)儲(chǔ)管理系統(tǒng)內(nèi)涵推升倉(cāng)儲(chǔ)運(yùn)營(yíng)水準(zhǔn)
  • 基于第三方物流的倉(cāng)儲(chǔ)成本控制研究
  • 物流公司倉(cāng)儲(chǔ)管理案例分析
  • 第三方物流企業(yè)倉(cāng)儲(chǔ)貨位系統(tǒng)優(yōu)化分析
  • 鄭州航空物流倉(cāng)儲(chǔ)合理化研究
  • 新形勢(shì)下深化完善國(guó)有糧食倉(cāng)儲(chǔ)企業(yè)內(nèi)控機(jī)制的實(shí)踐與思考
  • 企業(yè)智能倉(cāng)儲(chǔ)作業(yè)流程分析——以徐州新沂百世云倉(cāng)公司為例
  • 醫(yī)藥物流邁向云倉(cāng)多倉(cāng)聯(lián)動(dòng)
  • RFID技術(shù)在銅仁地區(qū)煙草倉(cāng)儲(chǔ)物流管理系統(tǒng)中的應(yīng)用
  • 淺談糧情測(cè)控遠(yuǎn)程監(jiān)管系統(tǒng)在倉(cāng)儲(chǔ)管理中的應(yīng)用
  • 淺談石油物資倉(cāng)儲(chǔ)管理部門(mén)入庫(kù)驗(yàn)收管理
  • 多層倉(cāng)儲(chǔ)式數(shù)據(jù)中心建筑設(shè)計(jì)研究
  • 煙葉倉(cāng)儲(chǔ)害蟲(chóng)綜合治理研究進(jìn)展
  • 無(wú)線(xiàn)智能倉(cāng)儲(chǔ)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  • 靜電粉末與殺蟲(chóng)劑混用對(duì)倉(cāng)儲(chǔ)甲蟲(chóng)的殺蟲(chóng)效果及谷物品質(zhì)的影響
  • 關(guān)于云計(jì)算技術(shù)物聯(lián)網(wǎng)倉(cāng)儲(chǔ)管理系統(tǒng)設(shè)計(jì)
  • 當(dāng)前位置:首頁(yè) >>   新聞資訊新聞資訊

    RFID與MongoDB融合的分布式云倉(cāng)儲(chǔ)管理系統(tǒng)

      信息來(lái)源:   發(fā)布時(shí)間:2021-05-28  點(diǎn)擊數(shù):

    1 概 述

    大數(shù)據(jù)、云計(jì)算、分布式存儲(chǔ)系統(tǒng)、區(qū)塊鏈等新技術(shù)的提出,不斷創(chuàng)造出獨(dú)特的新互聯(lián)網(wǎng)模式,同時(shí)也向人們展示了去中心化分散基礎(chǔ)設(shè)施建立的模型?;诙嘣默F(xiàn)代倉(cāng)儲(chǔ)系統(tǒng)也逐漸得到研究與重視,現(xiàn)代化的倉(cāng)儲(chǔ)區(qū)域規(guī)劃與管理的智能化程度直接影響倉(cāng)儲(chǔ)作業(yè)效率和儲(chǔ)存能力[1],這些現(xiàn)象在帶來(lái)海量數(shù)據(jù)頻繁存取問(wèn)題[2]的同時(shí),隨著倉(cāng)儲(chǔ)企業(yè)規(guī)模的不斷擴(kuò)大,也出現(xiàn)了物資可能會(huì)存放于不同部門(mén)、不同地域,尤其是多層級(jí)倉(cāng)庫(kù)的貨品管理及各組織的倉(cāng)庫(kù)資源賬目不能及時(shí)掌控庫(kù)存的情況,導(dǎo)致產(chǎn)生大量繁瑣數(shù)據(jù)、數(shù)據(jù)不統(tǒng)一、無(wú)法及時(shí)統(tǒng)計(jì)分析,造成倉(cāng)儲(chǔ)企業(yè)管理效率低下的現(xiàn)象[3]。為了實(shí)現(xiàn)高效、智能化的企業(yè)倉(cāng)庫(kù)管理,許多學(xué)者針對(duì)智能化倉(cāng)儲(chǔ)管理系統(tǒng)應(yīng)用進(jìn)行了深入研究[4]。復(fù)旦大學(xué)的許嘉勛提出了一種基于云數(shù)據(jù)庫(kù)的企業(yè)資產(chǎn)管理,并以MongoDB數(shù)據(jù)庫(kù)為例,分析了MongoDB數(shù)據(jù)庫(kù)建模的可行性,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于MongoDB數(shù)據(jù)庫(kù)的高可靠、高擴(kuò)展的分布式企業(yè)資產(chǎn)管理系統(tǒng)[5]。

    在基于Web的架構(gòu)中,數(shù)據(jù)庫(kù)難以實(shí)現(xiàn)橫向擴(kuò)展[6],非關(guān)系數(shù)據(jù)庫(kù)中利用查詢(xún)語(yǔ)言對(duì)數(shù)據(jù)進(jìn)行查詢(xún)沒(méi)有行的概念,數(shù)據(jù)在存儲(chǔ)的時(shí)候沒(méi)有固定的鍵值模式,一般都是通過(guò)文檔的形式進(jìn)行存儲(chǔ)[7]。朱愛(ài)華等針對(duì)經(jīng)典的倉(cāng)儲(chǔ)信息服務(wù)系統(tǒng)大都使用關(guān)系型數(shù)據(jù)庫(kù),結(jié)合前端交互技術(shù)以及非關(guān)系型數(shù)據(jù)庫(kù)MongoDB來(lái)搭建Web服務(wù),并通過(guò)性能測(cè)試證明了該架構(gòu)比傳統(tǒng)的數(shù)據(jù)庫(kù)操作在處理速度和資源占用上具有更好的性能優(yōu)勢(shì)[8]。文獻(xiàn)[9]也證明了在非關(guān)系型數(shù)據(jù)庫(kù)NoSQL中引入Web的架構(gòu)系統(tǒng),可以利用NoSQL優(yōu)勢(shì)來(lái)彌補(bǔ)關(guān)系型數(shù)據(jù)庫(kù)的不足。

    該文在充分研究分析非關(guān)系型數(shù)據(jù)庫(kù)MongoDB在分布式存儲(chǔ)方面的特性,利用前端開(kāi)源框架Angular設(shè)計(jì)實(shí)現(xiàn)軟件邏輯操作功能;通過(guò)將Angular與RFID技術(shù)融合設(shè)計(jì)實(shí)現(xiàn)一種分布式智能倉(cāng)儲(chǔ)管理系統(tǒng),并利用基于MongoDB云數(shù)據(jù)庫(kù)的高可用性構(gòu)架特性將倉(cāng)儲(chǔ)企業(yè)的各分支機(jī)構(gòu)的數(shù)據(jù)存儲(chǔ)系統(tǒng)整合起來(lái)建立一個(gè)私有云,解決對(duì)異地分布的倉(cāng)儲(chǔ)的物資、設(shè)備容量不斷擴(kuò)容的需求與倉(cāng)儲(chǔ)管理運(yùn)營(yíng)成本之間的矛盾,旨在為多站點(diǎn)多倉(cāng)庫(kù)共享數(shù)據(jù)的倉(cāng)儲(chǔ)系統(tǒng)Web管理應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。

    2 系統(tǒng)總體架構(gòu)

    針對(duì)建立數(shù)據(jù)倉(cāng)庫(kù)時(shí)存在的系統(tǒng)需求不斷變化、語(yǔ)義斷層以及數(shù)據(jù)倉(cāng)庫(kù)改動(dòng)難、代價(jià)大等問(wèn)題,建立數(shù)據(jù)倉(cāng)庫(kù)采用分層架構(gòu)是一種很常見(jiàn)的模式,也叫N層架構(gòu)[10]。該文提出一種4層數(shù)據(jù)倉(cāng)庫(kù)體系結(jié)構(gòu)模型,包括表述層、控制層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫(kù)物理層。系統(tǒng)分層結(jié)構(gòu)示意參見(jiàn)圖1。

    圖1 系統(tǒng)分層結(jié)構(gòu)

    圖1 系統(tǒng)分層結(jié)構(gòu)   


    3 系統(tǒng)云架構(gòu)

    3.1 系統(tǒng)數(shù)據(jù)庫(kù)分區(qū)建立

    建立系統(tǒng)云架構(gòu),首先要解決的就是需對(duì)大量分散的數(shù)據(jù)進(jìn)行分區(qū)存儲(chǔ)的問(wèn)題,即將數(shù)據(jù)拆分并分散儲(chǔ)存在不同的服務(wù)器上。

    該文利用MongoDB能夠支持?jǐn)?shù)據(jù)自動(dòng)分區(qū)的特性,將數(shù)據(jù)庫(kù)中的數(shù)據(jù)按相關(guān)屬性劃分成若干數(shù)據(jù)組,并將這些數(shù)據(jù)組分散到若干較大的分區(qū)中,每個(gè)分區(qū)負(fù)責(zé)總數(shù)據(jù)的一部分。系統(tǒng)主控程序中在對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)分區(qū)之前先建立兩個(gè)路由進(jìn)程,一個(gè)是用于對(duì)多個(gè)分區(qū)的數(shù)據(jù)庫(kù)進(jìn)行路由探測(cè)并提出連接申請(qǐng)的進(jìn)程Mongo_sq;另一個(gè)是用于系統(tǒng)在沒(méi)有數(shù)據(jù)分區(qū)(隱藏?cái)?shù)據(jù)分區(qū)的細(xì)節(jié))的時(shí)候提供給客戶(hù)端連接路由的進(jìn)程Mongo_pt,可以實(shí)現(xiàn)在不修改系統(tǒng)程序的情況下對(duì)系統(tǒng)分布的節(jié)點(diǎn)進(jìn)行增加或刪減。

    具體的做法是在對(duì)系統(tǒng)進(jìn)行數(shù)據(jù)分區(qū)時(shí),從數(shù)據(jù)屬性集選擇某個(gè)具有代表性的字段作為一個(gè)共享“鍵”(Shard key),該“鍵”的鍵值即作為數(shù)據(jù)分區(qū)的主要依據(jù),并對(duì)這些鍵進(jìn)行編號(hào)(如Shardkey_01,Shardkey_02,……)。如可以使用“倉(cāng)庫(kù)ID”來(lái)定義各倉(cāng)庫(kù)、產(chǎn)品存儲(chǔ)位置、庫(kù)位設(shè)置等數(shù)據(jù)庫(kù)或數(shù)據(jù)表的共享“鍵”,在此基礎(chǔ)上建立不同數(shù)據(jù)的分區(qū),并存放于不同的服務(wù)器或本地計(jì)算機(jī)上,當(dāng)系統(tǒng)查詢(xún)“倉(cāng)庫(kù)ID”如果是屬于“物資庫(kù)存管理”時(shí)即直接將該共享“鍵”有針對(duì)性地發(fā)送到“物資庫(kù)存管理”數(shù)據(jù)分區(qū)所在的服務(wù)器或本地計(jì)算機(jī)上,同樣,如果RFIDI設(shè)備掃描到的產(chǎn)品隸屬于某個(gè)倉(cāng)庫(kù),就直接將該產(chǎn)口的相關(guān)信息發(fā)送到對(duì)應(yīng)的分區(qū)數(shù)據(jù)庫(kù)中。

    3.2 云數(shù)據(jù)庫(kù)系統(tǒng)用例

    云數(shù)據(jù)庫(kù)系統(tǒng)用例(包括普通用戶(hù)和管理員用戶(hù))參見(jiàn)圖2。

    圖2 云數(shù)據(jù)庫(kù)系統(tǒng)用例

    圖2 云數(shù)據(jù)庫(kù)系統(tǒng)用例   


    普通管理員可以按照一定的需求條件申請(qǐng)所需的云數(shù)據(jù)庫(kù)(如果是企業(yè)外的用戶(hù)需繳納一定的費(fèi)用才能獲得),通過(guò)系統(tǒng)自動(dòng)分配成功后,提供給相應(yīng)的普通管理用戶(hù)對(duì)相應(yīng)云數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的地址、端口及數(shù)據(jù)庫(kù)名稱(chēng)等信息;相應(yīng)地,如果普通管理員放棄對(duì)該數(shù)據(jù)庫(kù)的使用權(quán),系統(tǒng)會(huì)根據(jù)自動(dòng)對(duì)相關(guān)數(shù)據(jù)進(jìn)行處理后回收該云數(shù)據(jù)庫(kù)所占用資源。

    超級(jí)管理員通過(guò)硬件設(shè)備的管理功能子模塊、對(duì)普通管理員的管理子模塊以及對(duì)云數(shù)據(jù)庫(kù)的管理操作等對(duì)云數(shù)據(jù)庫(kù)進(jìn)行訪(fǎng)問(wèn),包括設(shè)置綁定終端節(jié)點(diǎn)的ip地址,使得僅被綁定的ip才有權(quán)訪(fǎng)問(wèn)選定云數(shù)據(jù)庫(kù)、為普通管理員用戶(hù)設(shè)定初始化的用戶(hù)名、登錄條件及啟/停云數(shù)據(jù)庫(kù)服務(wù)等功能。普通管理員對(duì)云數(shù)據(jù)庫(kù)的操作功能則主要包括通過(guò)啟/停云數(shù)據(jù)庫(kù)、更改用戶(hù)信息、變更數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)權(quán)限、日常功能維護(hù)以及通過(guò)倉(cāng)庫(kù)管理系統(tǒng)對(duì)商品的信息采集與管理等功能模塊對(duì)云數(shù)據(jù)庫(kù)進(jìn)行訪(fǎng)問(wèn)。

    3.3 系統(tǒng)高可用性架構(gòu)

    系統(tǒng)高可用性架構(gòu)(Replica Set)是MongoDB系統(tǒng)為了構(gòu)建具有自動(dòng)容錯(cuò)及恢復(fù)功能的一項(xiàng)非常實(shí)用的高可用性方案[11]。該文提及的系統(tǒng)設(shè)計(jì)建立的基礎(chǔ)思想是,將一些位于同一地點(diǎn)或不同地點(diǎn)的服務(wù)器集合起來(lái)建立業(yè)務(wù)服務(wù)器云,數(shù)據(jù)庫(kù)層采用分布式的物理結(jié)構(gòu)進(jìn)行云架構(gòu),系統(tǒng)云架構(gòu)示意參見(jiàn)圖3。

    圖3 系統(tǒng)云架構(gòu)示意

    圖3 系統(tǒng)云架構(gòu)示意   


    系統(tǒng)依據(jù)數(shù)據(jù)庫(kù)的規(guī)模設(shè)定一個(gè)或多個(gè)數(shù)據(jù)分區(qū)并配置相應(yīng)的能夠表明數(shù)據(jù)位于哪個(gè)分區(qū)的共享數(shù)據(jù)元素“鍵”的拷貝,這樣就構(gòu)成了一個(gè)Replica Set節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)可進(jìn)一步分為一個(gè)或多個(gè)子節(jié)點(diǎn),但每個(gè)節(jié)點(diǎn)須持有相同數(shù)據(jù)的拷貝。同時(shí),還需定義主從節(jié)點(diǎn),即一個(gè)節(jié)點(diǎn)為主節(jié)點(diǎn),其他為從節(jié)點(diǎn),且這些節(jié)點(diǎn)均需具有系統(tǒng)重構(gòu)功能,即如果主節(jié)點(diǎn)出現(xiàn)故障,可選擇一個(gè)從節(jié)點(diǎn)自動(dòng)承擔(dān)主節(jié)點(diǎn)的工作。

    每個(gè)節(jié)點(diǎn)服務(wù)器需配置—個(gè)或多個(gè)路由器提出連接申請(qǐng)的進(jìn)程Mongo_sq路由器提供給客戶(hù)端路由申請(qǐng)服務(wù),并將請(qǐng)求分發(fā)到相應(yīng)的數(shù)據(jù)分區(qū)服務(wù)器上。分區(qū)服務(wù)器配置內(nèi)容主要包括服務(wù)器名稱(chēng)、IP地址、端口三個(gè)方面。

    其中端口配置的內(nèi)容比較復(fù)雜,主要應(yīng)包括:

    (1)整個(gè)系統(tǒng)所有分區(qū)共享“鍵”(Shard key)訪(fǎng)問(wèn)端口的分配(各個(gè)“鍵”可分配同一端口),該“鍵”的鍵值即作為數(shù)據(jù)分區(qū)的主要依據(jù),并對(duì)這些鍵進(jìn)行編號(hào)(如Shardkey_01,Shardkey_02,……);

    (2)用于訪(fǎng)問(wèn)沒(méi)有數(shù)據(jù)分區(qū)的時(shí)候提供給客戶(hù)端連接路由的Mongo_pt端口;

    (3)用于對(duì)多個(gè)分區(qū)的數(shù)據(jù)庫(kù)進(jìn)行路由探測(cè)并提出連接申請(qǐng)的進(jìn)程Mongo_sq;

    (4)服務(wù)器配置詳細(xì)過(guò)程就不贅述。

    3.4 分區(qū)數(shù)據(jù)庫(kù)操作的均衡問(wèn)題

    對(duì)MongoDB數(shù)據(jù)庫(kù)操作必然會(huì)存在對(duì)各節(jié)點(diǎn)的文檔訪(fǎng)問(wèn)操作的均衡性問(wèn)題,而且須對(duì)這個(gè)均衡問(wèn)題進(jìn)行協(xié)調(diào)控制,否則系統(tǒng)很容易因?yàn)閷?duì)某個(gè)節(jié)點(diǎn)文檔的高密度訪(fǎng)問(wèn)而造成數(shù)據(jù)擁堵問(wèn)題。

    利用文獻(xiàn)[12]提出的基于數(shù)據(jù)操作的頻率(FODO)改進(jìn)的均衡算法設(shè)計(jì),以解決對(duì)數(shù)據(jù)庫(kù)操作的均衡問(wèn)題,算法可描述如下:

    (1)初始化。

    設(shè)集群有p個(gè)節(jié)點(diǎn),有d個(gè)文檔塊被集合在一起形成由MongoDB自動(dòng)分隔的集群文檔;

    (2)定義變量。

    Int i=1,2,…,n;

    Int Bi,Oi,Ii,Fi,Ci,DOi,DOi,λ;

    Int SUM_DOi,SUM(SUM_DO);

    //Bi是文檔塊數(shù),Oi、Ii、Fi、Ci分別存放對(duì)文檔塊的操作頻率、插入操作頻率、查詢(xún)操作頻率和更改操作頻率;DOi表示每個(gè)節(jié)點(diǎn)中文檔塊數(shù)據(jù)某個(gè)操作的頻率;SUM_DOi存放每個(gè)節(jié)點(diǎn)中所有文檔塊數(shù)據(jù)的所有操作頻率之和;λ表示調(diào)節(jié)負(fù)載均衡過(guò)程中分配各節(jié)點(diǎn)各文檔塊數(shù)據(jù)操作的比重參數(shù),SUM(SUM_DO)存放整個(gè)集群分區(qū)各個(gè)節(jié)點(diǎn)中數(shù)據(jù)操作頻率之和[13]

    (3)計(jì)算各節(jié)點(diǎn)各文檔塊數(shù)據(jù)操作頻率。

    DOi=Oii=1nOiDΟi=Οi∑i=1nΟi

    (4)計(jì)算各節(jié)點(diǎn)各文檔塊數(shù)據(jù)所有操作頻率。

    SUM_DOi=Iii=1nIi+Fii=1nFi+Cii=1nCiSUΜ_DΟi=Ιi∑i=1nΙi+Fi∑i=1nFi+Ci∑i=1nCi

    (5)計(jì)算帶有均衡修正系數(shù)λ(λ>1)的各節(jié)點(diǎn)各文檔塊數(shù)據(jù)所有操作頻率之和。

    SUM_DOi=λIii=1nIi+Fii=1nFi+Cii=1nCiSUΜ_DΟi=λΙi∑i=1nΙi+Fi∑i=1nFi+Ci∑i=1nCi

    (6)計(jì)算整個(gè)分區(qū)的操作頻率可以用每個(gè)節(jié)點(diǎn)中所有文檔數(shù)據(jù)的操作頻率之和。

    SUM(SUM_DO)=i=1nBi(SUM_DOi)_DΟ)=∑i=1nBi(SUΜ_DΟi)

    其中λ是為了調(diào)整插入操作與查找、修改操作的均衡關(guān)系參數(shù)。由于MongoDB對(duì)數(shù)據(jù)的訪(fǎng)問(wèn)與修改時(shí)會(huì)對(duì)前一次查詢(xún)過(guò)或修改過(guò)的數(shù)據(jù)進(jìn)行記憶并將其保存到緩存中,當(dāng)下一次需對(duì)這些訪(fǎng)問(wèn)過(guò)的數(shù)據(jù)查詢(xún)或修改時(shí)相當(dāng)于訪(fǎng)問(wèn)的是本地緩存的數(shù)據(jù);MongoDB對(duì)每個(gè)分區(qū)的操作會(huì)提供一個(gè)包含分別承擔(dān)數(shù)據(jù)的寫(xiě)、讀負(fù)載的primary和secondary兩個(gè)節(jié)點(diǎn)的replica set,使數(shù)據(jù)最大限度被利用。因此,MongoDB系統(tǒng)對(duì)數(shù)據(jù)插入操作負(fù)載的影響要比讀和寫(xiě)操作負(fù)載的影響要大得多,尤其是每當(dāng)在進(jìn)行插入數(shù)據(jù)操作時(shí),每一個(gè)數(shù)據(jù)塊所在的節(jié)點(diǎn)中的數(shù)據(jù)信息均會(huì)造成負(fù)載不均衡,而當(dāng)不均衡的數(shù)據(jù)量達(dá)到一定程度時(shí),系統(tǒng)的數(shù)據(jù)遷移閾值會(huì)觸發(fā)啟動(dòng),對(duì)不均衡的現(xiàn)象進(jìn)行調(diào)節(jié),在這個(gè)過(guò)程中,系統(tǒng)資源被極大地浪費(fèi)[14]。因此,為平衡插入與讀寫(xiě)操作的比重,在計(jì)算插入操作頻率中增加一個(gè)系數(shù)調(diào)節(jié)參數(shù)λ(λ>1)[15],確保節(jié)點(diǎn)負(fù)載的均衡。

    4 系統(tǒng)功能分析

    4.1 系統(tǒng)功能模塊

    系統(tǒng)主要由統(tǒng)計(jì)分析、庫(kù)存管理、記錄查詢(xún)、產(chǎn)品管理、RFID讀頭管理、倉(cāng)庫(kù)管理、系統(tǒng)設(shè)置七大部分組成。系統(tǒng)通過(guò)B/S(Browser/Server)結(jié)構(gòu)進(jìn)行布置,物料或貨品的基礎(chǔ)數(shù)據(jù)和系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行管理的程序可分別運(yùn)行于不同的服務(wù)器,系統(tǒng)終端的控制程序可以同時(shí)運(yùn)行于不同的微機(jī)上。

    (1)統(tǒng)計(jì)分析:

    用戶(hù)對(duì)近期出庫(kù)入庫(kù)趨勢(shì)及流動(dòng)物資總量有一個(gè)直接的了解,如庫(kù)存總量、入庫(kù)總量、出庫(kù)總量;

    (2)庫(kù)存管理:

    包括物資出庫(kù)、入庫(kù)、調(diào)撥、移庫(kù)、報(bào)損、盤(pán)點(diǎn)等功能;

    (3)記錄查詢(xún):

    針對(duì)物資操作后的記錄進(jìn)行查詢(xún),通過(guò)不同的搜索條件聚合查詢(xún),快速準(zhǔn)確地定位到用戶(hù)需要的記錄信息;

    (4)產(chǎn)品管理:

    主要對(duì)批量標(biāo)簽綁定商品的管理,設(shè)置了產(chǎn)品型號(hào)管理和商品添加功能,可以實(shí)現(xiàn)對(duì)單獨(dú)一個(gè)型號(hào)的產(chǎn)品管理;

    (5)RFID讀頭管理:

    依據(jù)不同環(huán)境下對(duì)不同的讀著性能進(jìn)行調(diào)整設(shè)置;

    (6)倉(cāng)庫(kù)管理:

    每個(gè)倉(cāng)庫(kù)中包含了多個(gè)門(mén),門(mén)與讀頭屬于對(duì)應(yīng)關(guān)系,以表明其出庫(kù)還是入庫(kù)屬性,倉(cāng)庫(kù)內(nèi)也有很多個(gè)庫(kù)位,庫(kù)位也包含了庫(kù)位容量、庫(kù)位屬性等屬性的設(shè)置、修改與綁定等功能;

    (7)系統(tǒng)設(shè)置:

    超級(jí)管理員才有操作權(quán)限,可以添加普通管理員,修改賬號(hào)信息等。

    4.2 頂層數(shù)據(jù)流圖

    頂層數(shù)據(jù)流主要描述管理員之間的角色數(shù)據(jù)關(guān)系,不同角色對(duì)應(yīng)操作不同功能模塊,并將操作結(jié)果數(shù)據(jù)存儲(chǔ)到云端數(shù)據(jù)庫(kù)。管理員之間的數(shù)據(jù)流(頂層)參見(jiàn)圖4所示。

    圖4 管理員之間的數(shù)據(jù)流(頂層)

    圖4 管理員之間的數(shù)據(jù)流(頂層)   


    4.3 第二層數(shù)據(jù)流圖

    描述不同管理員與對(duì)應(yīng)功能模塊的數(shù)據(jù)流向關(guān)系。超級(jí)管理員無(wú)權(quán)限限制,包括硬件信息管理、出庫(kù)、入庫(kù)、調(diào)撥、移庫(kù)、報(bào)損、盤(pán)點(diǎn)操作及記錄查詢(xún)、庫(kù)存查詢(xún)、對(duì)產(chǎn)品產(chǎn)品類(lèi)型的定義、添加商品等功能。而普通管理員主要針對(duì)邏輯操作及查詢(xún)功能,沒(méi)有進(jìn)行硬件信息管理的權(quán)限。管理員與對(duì)應(yīng)功能模塊的數(shù)據(jù)流(第二層)參見(jiàn)圖5。

    圖5 管理員與各模塊的數(shù)據(jù)流(第二層)

    圖5 管理員與各模塊的數(shù)據(jù)流(第二層)   


    5 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    5.1 數(shù)據(jù)庫(kù)設(shè)計(jì)

    數(shù)據(jù)庫(kù)的設(shè)計(jì)充分考慮業(yè)務(wù)場(chǎng)景、數(shù)據(jù)讀寫(xiě)頻率、安全一致性等方面的需求,以及主節(jié)點(diǎn)服務(wù)器出現(xiàn)系統(tǒng)崩潰后能夠迅速切換到其他節(jié)點(diǎn),采用MongoDB分布式副本集架構(gòu)為基礎(chǔ),共設(shè)計(jì)了6張表:用戶(hù)信息表、倉(cāng)庫(kù)表、商品信息表、倉(cāng)庫(kù)門(mén)信息表、倉(cāng)庫(kù)位信息表、商品庫(kù)存表。

    (1)用戶(hù)信息表:

    用戶(hù)名、用戶(hù)密碼、用戶(hù)ID、用戶(hù)角色、用戶(hù)郵箱;

    (2)倉(cāng)庫(kù)表:

    倉(cāng)庫(kù)ID、倉(cāng)庫(kù)名稱(chēng)、管理員、倉(cāng)庫(kù)地址、屬性;

    (3)商品信息表:

    商品序列號(hào)、編號(hào)、名稱(chēng)、生產(chǎn)日期、商品EPC碼、商品NFC碼、型號(hào)、類(lèi)別、圖片地址;

    (4)倉(cāng)庫(kù)門(mén)信息表:

    門(mén)ID、名稱(chēng)、類(lèi)型,庫(kù)位ID、庫(kù)位名稱(chēng)、庫(kù)位規(guī)模;

    (5)倉(cāng)庫(kù)位信息表:

    所屬倉(cāng)庫(kù)、倉(cāng)庫(kù)位ID、管理員、倉(cāng)庫(kù)地址、倉(cāng)庫(kù)位規(guī)模、當(dāng)前存放量;

    (6)商品庫(kù)存表:

    商品序列號(hào)、編號(hào)、名稱(chēng)、入庫(kù)時(shí)間、商品EPC碼、商品NFC碼、型號(hào)、類(lèi)別,倉(cāng)庫(kù)編號(hào)、倉(cāng)庫(kù)名稱(chēng)、庫(kù)位編號(hào)、庫(kù)位名稱(chēng)等。

    5.2 前端訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)

    前端使用Angular封裝的httpClient模塊,在ng-alain中又被封裝成更為便捷的httpClient方法,可以很方便地自動(dòng)添加請(qǐng)求頭并處理返回的對(duì)應(yīng)的數(shù)據(jù)格式,其實(shí)質(zhì)上仍然還是使用http方法請(qǐng)求數(shù)據(jù),返回的數(shù)據(jù)用rxjs中的observable訂閱處理。該文的數(shù)據(jù)接口用postman軟件進(jìn)行梳理和測(cè)試、調(diào)試,最后將所有項(xiàng)目打包部署在服務(wù)器上。為了數(shù)據(jù)安全,運(yùn)行中的數(shù)據(jù)請(qǐng)求應(yīng)用改為https請(qǐng)求。

    5.3 功能模塊實(shí)現(xiàn)

    著重介紹登錄,RFID讀頭管理,庫(kù)存管理中的入庫(kù)、出庫(kù)、調(diào)撥、移庫(kù)、報(bào)損、盤(pán)點(diǎn),并以登錄功能實(shí)現(xiàn)主要代碼及登錄主界面、RFID讀頭管理主界面截圖(其他模塊的界面圖略)為例。

    (1)登錄模塊。

    登錄模塊主要是在用戶(hù)輸入時(shí)進(jìn)行了表單驗(yàn)證和登錄失敗時(shí)提示信息,并且在登錄成功后顯示用戶(hù)頭像、用戶(hù)郵箱等信息。在Session Storage中存儲(chǔ)用戶(hù)角色以及攜帶的Token,Token精度設(shè)置在秒,有效期為兩個(gè)小時(shí)。用戶(hù)登錄主界面參見(jiàn)圖6,實(shí)現(xiàn)代碼可簡(jiǎn)單表述如下(其他功能模塊的實(shí)現(xiàn)代碼詳略)。

    //清空路由復(fù)用信息

    this.reuseTabService.clear(); //設(shè)置用戶(hù)Token信息

    this.tokenService.set(res);

    //重新獲取StartupService內(nèi)容,信息一般都會(huì)受當(dāng)前用戶(hù)授權(quán)范圍而影響

    const user={

    name:res.name,//avatar:res.avatar,avatar:'./assets/tmp/img/avatar.jpg',userId:res.id,

    };

    this.settingsService.setUser(user);this.startupSrv.load().then(()=>{let url=this.tokenService.referrer.url||'/';

    if (url.includes('/passport')) url='/';

    this.router.navigateByUrl(url);

    });

    }

    圖6 用戶(hù)登錄主界面

    圖6 用戶(hù)登錄主界面   


    (2)RFID讀頭管理。

    讀頭設(shè)置需要先獲取模式等相關(guān)硬件參數(shù),包括讀寫(xiě)器硬件屬性信息、射頻輸出功率、天線(xiàn)、蜂鳴器、標(biāo)簽過(guò)濾規(guī)則等,可依據(jù)不同的場(chǎng)景的需要調(diào)整讀頭配置。讀頭詳細(xì)功能設(shè)置參見(jiàn)圖7。

    圖7 RFID讀頭詳細(xì)設(shè)置

    圖7 RFID讀頭詳細(xì)設(shè)置 


    (3)物資入庫(kù)。

    利用數(shù)據(jù)實(shí)時(shí)傳輸通信功能的ngx-mqtt插件,獲取倉(cāng)庫(kù)/門(mén)主題并將接收到的數(shù)據(jù)存入數(shù)據(jù)庫(kù)提供給查詢(xún)系統(tǒng),將得到相應(yīng)的商品信息轉(zhuǎn)換成用戶(hù)需要的格式展示在表格中,并在表格的底部顯示匯總統(tǒng)計(jì)信息。操作員確認(rèn)后點(diǎn)擊入庫(kù)按鈕、填寫(xiě)入庫(kù)單號(hào)、選擇庫(kù)位、提交入庫(kù)。

    (4)物資出庫(kù)。

    商品出庫(kù)功能先進(jìn)行掃描然后過(guò)濾重復(fù)的商品信息,填寫(xiě)出庫(kù)單號(hào),執(zhí)行出庫(kù)。與入庫(kù)操作不同的是,出庫(kù)時(shí)掃描的商品是在庫(kù)存里查找,入庫(kù)的信息則是在商品信息庫(kù)中查找。

    (5)物資調(diào)撥。

    調(diào)撥是物資從一個(gè)倉(cāng)庫(kù)轉(zhuǎn)移到另一個(gè)倉(cāng)庫(kù)的過(guò)程,拆分開(kāi)就是先執(zhí)行出庫(kù)再入庫(kù),在執(zhí)行調(diào)撥時(shí)需要選擇目的倉(cāng)庫(kù),在目的倉(cāng)庫(kù)入庫(kù)時(shí)選擇庫(kù)位就完成了整個(gè)調(diào)撥過(guò)程。

    (6)物資移庫(kù)。

    移庫(kù)與調(diào)撥是不同的概念,是在同一個(gè)倉(cāng)庫(kù)內(nèi)不同的庫(kù)位周轉(zhuǎn)的過(guò)程。在確認(rèn)物資信息正確之后選擇新庫(kù)位與舊庫(kù)位,執(zhí)行移庫(kù)操作。

    (7)物資報(bào)損。

    在物資使用或者存放過(guò)程中會(huì)出現(xiàn)損壞情況,報(bào)損功能為了及時(shí)分離這些損壞商品,功能流程與出庫(kù)一致。找出損壞商品,讀頭掃描,執(zhí)行報(bào)損,數(shù)據(jù)庫(kù)實(shí)時(shí)更新報(bào)損數(shù)據(jù),并做統(tǒng)計(jì)。

    (8)物資盤(pán)點(diǎn)。

    按照倉(cāng)庫(kù)管理的要求,需要進(jìn)行不定期的盤(pán)點(diǎn)。前端網(wǎng)頁(yè)按照需要盤(pán)點(diǎn)的物資條件查詢(xún)到指定商品,生成盤(pán)點(diǎn)信息單,發(fā)送到手持機(jī),手持機(jī)拉取盤(pán)點(diǎn)單,在指定庫(kù)位進(jìn)行掃描,將掃描結(jié)果進(jìn)行對(duì)比,將結(jié)果展示給操作員。

    (9)入庫(kù)記錄查詢(xún)。

    記錄查詢(xún)主要是搜索條件比較多,接口也相應(yīng)地做了聚合查詢(xún)??梢詥螚l查詢(xún),也可以多條。正因?yàn)樗阉鳁l件較多,為了得到更好的用戶(hù)體驗(yàn)也加上了清除功能,用來(lái)清除表單中已經(jīng)有的值,方便重新輸入。查詢(xún)結(jié)果中,查看按鈕對(duì)應(yīng)每條數(shù)據(jù)的詳情單,可以選擇查看并打印。

    (10)調(diào)撥記錄查詢(xún)。

    調(diào)撥與盤(pán)點(diǎn)、報(bào)損、移庫(kù)搜索條件均為相應(yīng)單號(hào)和操作時(shí)間,搜索結(jié)果以單號(hào)分類(lèi),點(diǎn)擊單條單跳轉(zhuǎn)到相應(yīng)的單詳情頁(yè),所有的詳情單提供導(dǎo)出pdf功能。

    (11)硬件信息操作。

    在項(xiàng)目中是沒(méi)有出現(xiàn)過(guò)硬件信息這條的,但是因?yàn)閺膫}(cāng)庫(kù)到讀頭、庫(kù)位、門(mén)這些都屬于硬件范疇。而且規(guī)劃好了之后一般是不會(huì)去修改的,所以就把它們統(tǒng)一劃分到硬件范疇,但是功能還是獨(dú)立的,也設(shè)置了單獨(dú)的功能頁(yè)面。

    (12)人員管理。

    人員管理主要針對(duì)密碼和郵箱的修改。這是只有超級(jí)管理員才有的權(quán)限。如果需要添加超級(jí)管理員賬號(hào)需要聯(lián)系我們?cè)跀?shù)據(jù)庫(kù)添加,這也保證了一定程度的數(shù)據(jù)安全。

    6 結(jié)束語(yǔ)

    通過(guò)非關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)建立分布式云存儲(chǔ)系統(tǒng),針對(duì)在多點(diǎn)多級(jí)倉(cāng)儲(chǔ)管理系統(tǒng)所涉及的復(fù)雜應(yīng)用管理,系統(tǒng)結(jié)合RFID技術(shù)對(duì)物資二維碼標(biāo)簽進(jìn)行唯一性的識(shí)別,以使系統(tǒng)管理的可靠性、穩(wěn)定性得到有力的保證。系統(tǒng)綜合考慮倉(cāng)儲(chǔ)業(yè)務(wù)多元化發(fā)展的需求,探索了在同構(gòu)系統(tǒng)中將分布式數(shù)據(jù)庫(kù)與云存儲(chǔ)原理結(jié)合在倉(cāng)儲(chǔ)企業(yè)的應(yīng)用,對(duì)于異地性、分布式的倉(cāng)儲(chǔ)企業(yè)的大規(guī)模物品管理具有一定的借鑒意義,系統(tǒng)也可拓展應(yīng)用于其他具有分布式需求的企業(yè)倉(cāng)儲(chǔ)管理。下一步將從兩個(gè)方面進(jìn)一步開(kāi)展研究:(1)在異構(gòu)系統(tǒng)中對(duì)信息查詢(xún)?cè)L問(wèn)、數(shù)據(jù)庫(kù)之間的數(shù)據(jù)遷移、數(shù)據(jù)歸并、所定義的數(shù)據(jù)結(jié)構(gòu)等方面的性能評(píng)價(jià)還需做進(jìn)一步的探索與研究;(2)該文只是涉及設(shè)計(jì)實(shí)現(xiàn)分布式倉(cāng)儲(chǔ)管理系統(tǒng)的關(guān)鍵功能,但對(duì)各不同倉(cāng)儲(chǔ)系統(tǒng)的權(quán)限、角色、功能等的可擴(kuò)展性還需進(jìn)一步研究。

    權(quán)所有©:上海陽(yáng)合儲(chǔ)運(yùn)
    專(zhuān)業(yè)承接上海倉(cāng)庫(kù)租賃、上海倉(cāng)儲(chǔ)配送物流、上海電商倉(cāng)儲(chǔ)企業(yè)服務(wù)與微笑同在"的先進(jìn)理念不斷發(fā)展壯大。 

    友情鏈接: 消防車(chē)  分析儀器  北京拓展訓(xùn)練    雞排加盟   恒溫振蕩器  別墅泳池設(shè)備  外貿(mào)論壇    檔案管理系統(tǒng)    酒精測(cè)試儀    旋轉(zhuǎn)火鍋設(shè)備  假山制作   煙臺(tái)裝修  地坪漆    實(shí)心輪胎   垃圾車(chē) 位移傳感器     貨運(yùn)管理軟件   鋼制暖氣片  濟(jì)南雕刻機(jī)  羅斯蒙特3051  影像測(cè)量?jī)x
       食品級(jí)軟管     鶴管    三相電表   AGV叉車(chē)  切削液  有限元分析
    機(jī)房監(jiān)控   數(shù)控銑床  原子熒光光譜儀   移動(dòng)廁所
    滬公網(wǎng)安備 31011402008344號(hào) 滬ICP備14036201號(hào)-32