饒曉黎 翁翰 詹素萍 蔡丹琳 黃瑋佳
摘 要:本文通過了解物流運(yùn)輸方面的實(shí)際管理需求,使用QR碼技術(shù)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)第三方物流的管理信息系統(tǒng),加強(qiáng)了委托方、物流公司和貨運(yùn)員三者之間的緊密聯(lián)系。運(yùn)用REST架構(gòu)風(fēng)格,并使用Web技術(shù)開發(fā)后臺(tái)管理系統(tǒng)。利用服務(wù)器建立一套Web端和手機(jī)客戶端共同使用的API數(shù)據(jù)接口,提高了開發(fā)的動(dòng)態(tài)性,降低了溝通成本和管理成本,提升了物流運(yùn)輸?shù)臉I(yè)務(wù)效率。
關(guān)鍵詞:QR碼;手機(jī)客戶端;物流管理系統(tǒng);Web技術(shù);REST
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2018)04-0178-04
Abstract:The thesis using QR code technology design and implement a logistics information management system though understanding the actual management requirements of logistics transportation,closer the relationship between the three parties include clients,logistics companies and freight clerks. The back-stage management system applying REST architectural style and using Web technology. Establishing a API socket on server that Web clients and mobile clients can able to use together,improve the dynamics of development,reduce the cost of communication and management,improve the service efficiency of logistics transportation.
Keywords:QR code;Mobile client;logistics management system;Web technology;REST
0 引 言
在企業(yè)信息化中,條形碼技術(shù)解決了工作效率低與信息存取低效等問題。貨物包裝上的各種條形碼已成為物流管理系統(tǒng)的標(biāo)配。但通過手持設(shè)備掃描時(shí),條形碼掃描速度已不及二維碼,還經(jīng)常出現(xiàn)“一對(duì)多”的情況,而且在無網(wǎng)絡(luò)情況下極難獲取數(shù)據(jù)。更重要的是,由于條形碼碼制較為容易,數(shù)據(jù)僅存儲(chǔ)在水平方向上,導(dǎo)致其容易被偽造,從而給企業(yè)造成資產(chǎn)損失。隨著信息吞吐量的不斷增大,系統(tǒng)中使用一維條碼技術(shù)已不能滿足實(shí)際需求,因此二維條碼技術(shù)應(yīng)運(yùn)而生[1]。
1 關(guān)鍵技術(shù)
1.1 QR碼
QR碼是一種矩陣式二維碼,具有高可靠、快速識(shí)讀、存儲(chǔ)量大等特性,應(yīng)用于電子票務(wù)、身份認(rèn)證、宣傳社交等領(lǐng)域,在人們生活中已不可或缺。
QR碼遵循如圖1所示的圖形結(jié)構(gòu),三個(gè)相同的方塊是位置探測圖形,之間的虛線為定位圖形,版本高則會(huì)增加校正圖形,它們用來定位掃描到的圖像。位置探測圖形旁部分區(qū)域存儲(chǔ)格式與版本信息,其余空間用來存儲(chǔ)數(shù)據(jù)和糾錯(cuò)碼。糾錯(cuò)碼有L、M、Q、H四個(gè)水平,對(duì)應(yīng)7%、15%、25%、30%的字碼修正量。隨著糾錯(cuò)水平提高,容錯(cuò)區(qū)域增加,數(shù)據(jù)存儲(chǔ)量減少。
1.2 QR碼的生成
在生成時(shí),首先確定版本和編碼的字符類型,分析數(shù)據(jù)特點(diǎn);再將數(shù)據(jù)字符分組和其計(jì)數(shù)轉(zhuǎn)為二進(jìn)制,并排成序列,根據(jù)編碼模式在序列前端加入相應(yīng)的模式指示符;然后分塊編碼后的序列,按照糾錯(cuò)等級(jí)產(chǎn)生糾錯(cuò)碼并添加到序列末尾;最后將已生成的序列分布在圖形內(nèi)。為了避免出現(xiàn)干擾設(shè)備識(shí)別的大面積黑白色塊,需要計(jì)算后指定一款掩碼來加以處理,并繪圖生成圖像[2]。
QR碼的生成使用JavaScript來實(shí)現(xiàn)。開發(fā)時(shí)會(huì)指定背景色和糾錯(cuò)等級(jí)等參數(shù),再封裝成框架組件。使用時(shí)根據(jù)表單中提交的數(shù)據(jù)值生成
1.3 QR碼的識(shí)別
識(shí)別QR碼主要通過手機(jī)攝像頭掃描的方式,根據(jù)位置探測圖形、定位圖形和分隔符確定圖像;再通過格式信息和版本信息確定圖形版本和解析程度,利用圖像中顏色的深淺灰度進(jìn)行預(yù)處理;然后去除掃描過程中的像素噪點(diǎn),將灰度化的信息像素變成黑白雙色,根據(jù)解析公式轉(zhuǎn)化成二進(jìn)制信息;最后解碼和對(duì)比得到的版本信息、數(shù)據(jù)和糾錯(cuò)碼,同時(shí)進(jìn)行糾錯(cuò),得到最終的數(shù)據(jù)[3]。
手機(jī)客戶端采用ZXing組件庫進(jìn)行QR碼識(shí)別[4],它是Google公司的一個(gè)開源項(xiàng)目,代碼涉及Java等主流編程語言。目前多數(shù)Android APP簡化或修改項(xiàng)目代碼,實(shí)現(xiàn)使用手機(jī)客戶端識(shí)別各種條形碼和二維碼。
2 物流管理信息系統(tǒng)設(shè)計(jì)
2.1 總體設(shè)計(jì)
本文介紹的物流管理系統(tǒng)適用于第三方物流,主要滿足貨物運(yùn)輸業(yè)務(wù)的現(xiàn)代化管理需求。如圖2所示的系統(tǒng)業(yè)務(wù)流程中,運(yùn)輸貨物前需要委托方創(chuàng)建運(yùn)單,涉及與物流企業(yè)和貨運(yùn)員在運(yùn)單中的聯(lián)系,在設(shè)計(jì)時(shí),擬定后臺(tái)管理系統(tǒng)和手機(jī)客戶端兩個(gè)開發(fā)方向。
2.1.1 系統(tǒng)功能框架
按照功能從屬關(guān)系,劃分出如圖3所示的功能框架。后臺(tái)管理系統(tǒng)提供給委托方和物流管理員使用,手機(jī)客戶端提供給貨運(yùn)員使用。
2.1.2 系統(tǒng)總體架構(gòu)
由于第三方物流企業(yè)獨(dú)立開發(fā)物流管理模塊,這就要求物流管理信息系統(tǒng)具有網(wǎng)絡(luò)依賴。鑒于系統(tǒng)復(fù)雜度,為了方便開發(fā)、維護(hù)和對(duì)后續(xù)功能的擴(kuò)展,使用Web服務(wù)已成為系統(tǒng)開發(fā)的選擇之一。
MVC模式在軟件開發(fā)中被大量運(yùn)用,它將系統(tǒng)分為模型(Model)、視圖(View)和控制器(Controller)。當(dāng)用戶在視圖上輸入指令和數(shù)據(jù)時(shí),控制器將其傳遞給模型處理業(yè)務(wù)邏輯,必要時(shí)連接數(shù)據(jù)庫讀取或儲(chǔ)存數(shù)據(jù)。指令和數(shù)據(jù)再通過模型選擇需要輸出的控制器,控制器所在的視圖上輸出數(shù)據(jù)和所需要的動(dòng)作。近年來隨著Web應(yīng)用的發(fā)展,誕生了基于JavaScript的MVC框架,旨在方便開發(fā)人員進(jìn)行跨平臺(tái)系統(tǒng)開發(fā)。
如圖4所示的后臺(tái)系統(tǒng)的視圖層使用Facebook公司開發(fā)的前端框架React,控制器層則使用Redux定義和控制事件。手機(jī)端的視圖層和控制器層,采用React Native開發(fā)環(huán)境,它利用React生成手機(jī)應(yīng)用中的原生組件[5]。
手機(jī)端與后臺(tái)系統(tǒng)共用模型層和數(shù)據(jù)庫,并采用REST(Representational State Transfer,表述性狀態(tài)轉(zhuǎn)移)風(fēng)格。在這種架構(gòu)方式中,使用Node.js[6]編寫業(yè)務(wù)邏輯的模型層與MySQL數(shù)據(jù)庫結(jié)合為REST API服務(wù)端,傳輸?shù)臄?shù)據(jù)不再返回XML頁面,而采用瀏覽器和手機(jī)端都能解析的JSON格式,實(shí)現(xiàn)跨平臺(tái)數(shù)據(jù)交互[7]。
2.2 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
在進(jìn)行系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)時(shí),必須明確用戶權(quán)限,體現(xiàn)用戶對(duì)貨物和運(yùn)單之間的多層級(jí)關(guān)聯(lián)性。
根據(jù)系統(tǒng)功能需求,使用Navicat for MySQL設(shè)計(jì)關(guān)系數(shù)據(jù)庫和數(shù)據(jù)表,包括用戶表、運(yùn)單表、貨物信息表等。每張表都擁有其主鍵,并根據(jù)業(yè)務(wù)邏輯和表之間的關(guān)系設(shè)計(jì)外鍵和數(shù)據(jù)類型以及鍵值能否為空。
2.3 后臺(tái)管理系統(tǒng)設(shè)計(jì)
后臺(tái)管理系統(tǒng)主要負(fù)責(zé)運(yùn)單的前期流程,下面主要介紹QR碼運(yùn)單生成功能的設(shè)計(jì),流程如圖5所示。
用戶進(jìn)入建立運(yùn)單頁,系統(tǒng)檢索有無待運(yùn)貨物信息,有則在表單頁選擇運(yùn)單貨物,并填寫運(yùn)單始發(fā)和終到地址及接收方聯(lián)系方式,提交運(yùn)單。物流方管理員登陸系統(tǒng),審核成功后,系統(tǒng)獲取必要信息,生成QR碼運(yùn)單。
2.4 手機(jī)客戶端設(shè)計(jì)
手機(jī)客戶端在設(shè)計(jì)時(shí)首先需要保證特定權(quán)限的用戶登錄,如圖6所示為QR碼掃描驗(yàn)證功能設(shè)計(jì)流程。
用戶在主界面點(diǎn)擊掃碼驗(yàn)證按鈕后請求相機(jī)權(quán)限,允許后進(jìn)入掃碼界面并調(diào)用攝像頭。系統(tǒng)會(huì)分析外部光線情況,自動(dòng)打開閃光燈。如果攝像頭正常對(duì)焦,圖像成功解碼,系統(tǒng)利用解碼后的數(shù)據(jù)驗(yàn)證貨運(yùn)員的用戶ID,一致后顯示掃描的運(yùn)單信息和貨物驗(yàn)證結(jié)果。
3 物流管理信息系統(tǒng)的實(shí)現(xiàn)
3.1 運(yùn)行環(huán)境
客戶端軟硬件需要在辦公環(huán)境下流暢運(yùn)行,推薦使用Chrome瀏覽器或Firefox瀏覽器,限制IE瀏覽器版本為9+。手機(jī)端系統(tǒng)版本需要為Android 5.1+和iOS 9+。
3.2 后臺(tái)管理功能的實(shí)現(xiàn)
服務(wù)器環(huán)境運(yùn)行成功,就能使用瀏覽器進(jìn)入后臺(tái)管理系統(tǒng)。用戶如需進(jìn)行運(yùn)單生成操作,可在左側(cè)導(dǎo)航欄中依次選擇“運(yùn)單事務(wù)”、“運(yùn)單生成”進(jìn)入操作頁面。點(diǎn)選運(yùn)單貨物后,輸入運(yùn)單始發(fā)地址、運(yùn)單終到地址和接收方聯(lián)系方式后,提交運(yùn)單進(jìn)行審核,如圖7所示。
3.3 手機(jī)客戶端功能的實(shí)現(xiàn)
QR碼的掃描驗(yàn)證功能是手機(jī)客戶端主要的技術(shù)實(shí)現(xiàn)。在主界面點(diǎn)擊“QR碼掃描驗(yàn)證”按鈕,會(huì)請求相機(jī)權(quán)限并進(jìn)入掃碼界面,將中間透明矩形框?qū)?zhǔn)QR碼,應(yīng)用會(huì)自動(dòng)判斷條件,提示用戶進(jìn)行下一步操作,如圖8所示。
4 結(jié) 論
以上介紹了物流管理信息系統(tǒng)使用QR碼的優(yōu)點(diǎn),并進(jìn)行了設(shè)計(jì)與實(shí)現(xiàn),但系統(tǒng)還需要進(jìn)一步的改進(jìn),包括深度運(yùn)用QR碼的加密算法和解決系統(tǒng)開發(fā)調(diào)試中遇到的新挑戰(zhàn)。從長遠(yuǎn)來看,本文介紹的物流管理信息系統(tǒng)將會(huì)得到大中型企業(yè)的認(rèn)可,并成為系統(tǒng)開發(fā)的主流方向之一。
參考文獻(xiàn):
[1] 伊俊敏.物流工程 [M].第4版.北京:電子工業(yè)出版社,2017(6).
[2] Kun Qian,Xiaolei Yu,Yinshan Yu et al. Design for two-dimensional barcode dynamic recognition system in the environment of large-scale logistics [C]//Proceedings of 2015 IEEE Advanced Information Technology,Electronic and Automation Control Conference(IAEAC 2015),2015-12,Chongqing,China:Institute of Electrical and Electronics Engineers,2015:909-913.
[3] 宋桂萍.基于二維QR碼的物流數(shù)據(jù)管理系統(tǒng)的研究 [D].上海:上海交通大學(xué),2015.
[4] BHARDWAJ N,KUMAR R,VERMA R,et al. Decoding algorithm for color QR code:A mobile scanner application;proceedings of the 2016 International Conference on Recent Trends in Information Technology (ICRTIT),F(xiàn) 8-9 April 2016,2016 [C].
[5] 潘婷婷.React Native在APP開發(fā)中的應(yīng)用研究 [J].無線互聯(lián)科技,2016(19):142-143.
[6] 黃揚(yáng)子.基于NodeJS平臺(tái)搭建REST風(fēng)格Web服務(wù) [J].無線互聯(lián)科技,2015(16):57-59.
[7] 覃國蓉,何濤.REST在異構(gòu)移動(dòng)客戶端接入中的應(yīng)用研究 [J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(4):77-79+144.
作者簡介:饒曉黎,女,漢族,福建三明人,本科。研究方向:信息管理與信息系統(tǒng)。