喬 木,龔俊儒,沈杏林,楊 虎
(1.國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院,湖南 長沙 410073;2.國防科學(xué)技術(shù)大學(xué)電子科學(xué)與工程學(xué)院,湖南 長沙 410073)
物流業(yè)是近些年快速發(fā)展的一大熱門行業(yè),美國將其稱為發(fā)展經(jīng)濟(jì)的兩大工具之一,人們也可以切身體會(huì)到在日常生活中已經(jīng)越來越頻繁地參與到物流活動(dòng)的各個(gè)環(huán)節(jié)中。對(duì)于物流企業(yè)來說,大到各家快遞公司、超級(jí)市場,小到個(gè)體商店、小型超市,都需要面對(duì)一個(gè)重要的問題就是貨物的倉儲(chǔ)管理。在科技水平日新月異的今天,人們可以借助信息化手段脫離原先的手寫筆記的繁瑣人工勞動(dòng),帶來更加先進(jìn)、更加高效的工作模式。
以信息技術(shù)和自動(dòng)化手段為基礎(chǔ)的自動(dòng)識(shí)別技術(shù),對(duì)現(xiàn)代物流中倉儲(chǔ)管理環(huán)節(jié)有著重要影響,經(jīng)過自動(dòng)識(shí)別采集的數(shù)據(jù)信息相較于紙張記錄或人工腦力記憶更加準(zhǔn)確,并且借助于計(jì)算機(jī)對(duì)應(yīng)軟件系統(tǒng)的支持也更加易于進(jìn)行高效快捷的管理。目前物流業(yè)中最常使用的自動(dòng)識(shí)別技術(shù)是射頻識(shí)別技術(shù)和條碼識(shí)別技術(shù)。射頻識(shí)別技術(shù)需要依靠專門的設(shè)備進(jìn)行信息采集,一個(gè)完整的射頻識(shí)別系統(tǒng)包括電子標(biāo)簽、讀寫器和天線,利用射頻信號(hào)通過空間耦合實(shí)現(xiàn)非接觸信息傳遞[1],從而達(dá)到信息采集的目的,這種方式在很大程度上提高了倉儲(chǔ)管理的精細(xì)化水平,然而由于其成本較高,也導(dǎo)致目前該技術(shù)多應(yīng)用在大規(guī)模的倉儲(chǔ)管理活動(dòng)中;條碼識(shí)別技術(shù)通過掃描平面上黑白相間的圖形符號(hào)來獲取其記錄的數(shù)據(jù)信息[2]。由于成本十分低廉、信息準(zhǔn)確率高,使得條碼技術(shù)得到了普遍應(yīng)用,如零售業(yè)中的一維條碼。隨著二維條碼的提出和應(yīng)用,條碼表示的信息量大大提高,常用的二維碼有QR、Data Matrix等。利用二維碼技術(shù)構(gòu)建的倉儲(chǔ)管理系統(tǒng)通?;贐/S模式,由客戶端及服務(wù)器組成,通過Windows操作系統(tǒng)搭建,利用SQL Server、Oracle等大型數(shù)據(jù)庫進(jìn)行業(yè)務(wù)數(shù)據(jù)處理,考慮到小規(guī)模的物流企業(yè)數(shù)據(jù)交互時(shí)效性要求高、業(yè)務(wù)數(shù)據(jù)處理量小的特點(diǎn),現(xiàn)有的B/S模式業(yè)務(wù)系統(tǒng)略顯龐大。
本文介紹的倉儲(chǔ)管理系統(tǒng)是針對(duì)小型規(guī)模物流企業(yè)的貨物入庫、出庫環(huán)節(jié)所設(shè)計(jì),基于IOS平臺(tái)進(jìn)行開發(fā),通過IOS設(shè)備對(duì)貨物QR二維碼的信息采集,完成倉儲(chǔ)管理中的相關(guān)操作,由于其系統(tǒng)本身的代碼不開源,從而確保了貨物信息的安全性和穩(wěn)定性。
IOS平臺(tái)作為當(dāng)前主流的移動(dòng)設(shè)備系統(tǒng)平臺(tái)之一,以其自身獨(dú)特的架構(gòu)方式,確保了在智能手機(jī)應(yīng)用程序開發(fā)過程中的競爭優(yōu)勢,這也是本系統(tǒng)選擇IOS平臺(tái)的原因所在。
IOS平臺(tái)于2007年1月9日由美國蘋果公司在Macworld大會(huì)上發(fā)布,最早用于其公司的iphone智能手機(jī)系列操作系統(tǒng),之后沿用到其陸續(xù)推出的ipad、itouch等設(shè)備上,截止到2013年3月,根據(jù)Application發(fā)布的智能手機(jī)市場份額顯示,IOS平臺(tái)市場占有率為61.41%。IOS的平臺(tái)架構(gòu)主要分為4層,自下向上依次為核心操作系統(tǒng)層、核心服務(wù)層、多媒體層和觸摸控制層。核心操作系統(tǒng)層是個(gè)多任務(wù)的Unix內(nèi)核,該層提供了網(wǎng)絡(luò)、文件系統(tǒng)、Socket、安全機(jī)制等,這些API都是Unix代碼;核心服務(wù)層面向?qū)ο?,并提供了很多底層服?wù),如本系統(tǒng)使用的SQLite數(shù)據(jù)庫就在該層;多媒體層的相關(guān)代碼貫徹了整個(gè)IOS平臺(tái),可以認(rèn)為核心服務(wù)層都是多媒體層的API;觸摸控制層也就是用戶平常接觸做多的各種按鈕、滾動(dòng)條、眾多的控件等[3]。由于IOS平臺(tái)不開放源代碼,確保了用戶信息以及業(yè)務(wù)數(shù)據(jù)的安全性,另外IOS設(shè)備借助Apple A系列處理器優(yōu)越的性能,帶來了良好的用戶體驗(yàn),這些優(yōu)勢為本系統(tǒng)構(gòu)建在IOS平臺(tái)上提供了有力保障。
IOS平臺(tái)下的應(yīng)用程序需要通過系統(tǒng)接口才能和硬件設(shè)備實(shí)現(xiàn)交互,因此,IOS平臺(tái)正是連接底層硬件與各種軟件應(yīng)用程序的中間環(huán)節(jié)。為了便于第三方進(jìn)行IOS應(yīng)用開發(fā),蘋果公司于2008年2月免費(fèi)開放IOS SDK供第三方開發(fā)人員對(duì)IOS設(shè)備下的應(yīng)用程序進(jìn)行開發(fā)以及測試。IOS SDK包括開發(fā)、安裝、運(yùn)行自制應(yīng)用程序所需的一切工具、資源和接口,目前支持2種類型的應(yīng)用程序開發(fā)。一種是本地應(yīng)用程序,也就是通過App Store下載的應(yīng)用程序,而驅(qū)動(dòng)、系統(tǒng)框架或者動(dòng)態(tài)鏈接庫的代碼是不支持的;另一種是Web應(yīng)用程序開發(fā),用于實(shí)現(xiàn)應(yīng)用程序與Web服務(wù)器交互的目的,能夠在網(wǎng)絡(luò)間傳輸,運(yùn)行在IOS平臺(tái)下的Safari瀏覽器內(nèi)。本地應(yīng)用程序?qū)W(wǎng)絡(luò)連接的需求并不絕對(duì),本文構(gòu)建的倉儲(chǔ)管理系統(tǒng)正是運(yùn)行在無網(wǎng)絡(luò)的環(huán)境下。
IOS系統(tǒng)是從蘋果的PC機(jī)系統(tǒng)MAC OS X演變來的,因此IOS系統(tǒng)下應(yīng)用程序的開發(fā)工具采用XCode,本系統(tǒng)開發(fā)環(huán)境是通過虛擬機(jī)裝載Mac OS Mountain Lion 10.8.4 系統(tǒng)后,并安裝 XCode4.6 來搭建的。XCode是一個(gè)集成開發(fā)環(huán)境,提供各種工具方便開發(fā)者創(chuàng)建和管理項(xiàng)目[4],在這個(gè)過程中XCode工具集中有2個(gè)工具起到了重要作用,一個(gè)是Interface Builder,用于實(shí)現(xiàn)應(yīng)用程序的用戶界面可視化操作,可以直接拖拽組件到程序窗口的各個(gè)位置,并能夠通過查看器修改組件的屬性,當(dāng)界面符合設(shè)計(jì)要求時(shí)可以選擇將當(dāng)前狀態(tài)保存為nib文件,以供下次創(chuàng)建相同對(duì)象時(shí)直接使用存儲(chǔ)構(gòu)成用戶界面的窗口和視圖的歷史版本信息,Interface Builder節(jié)省了創(chuàng)建、配置和定位構(gòu)成用戶界面對(duì)象所需要的定制代碼;另外一個(gè)工具是Instruments,用于分析所開發(fā)的應(yīng)用程序在IOS設(shè)備上運(yùn)行的性能情況,Instruments從運(yùn)行中的應(yīng)用程序獲取數(shù)據(jù)信息,將過程中的內(nèi)存使用率、磁盤占有率、網(wǎng)絡(luò)吞吐量等性能數(shù)據(jù)反映在時(shí)間線圖形上,開發(fā)者通過自帶的分析工具將多次收集的時(shí)間線圖形進(jìn)行分析,尋找應(yīng)用程序性能提升的原因所在,從而達(dá)到確保應(yīng)用程序有最好的用戶體驗(yàn)的目的。XCode提供了基本的源代碼開發(fā)環(huán)境,是開發(fā)IOS平臺(tái)下應(yīng)用程序必不可少的工具。
本文設(shè)計(jì)實(shí)現(xiàn)的小型倉儲(chǔ)管理系統(tǒng)是基于IOS平臺(tái),通過對(duì)貨物外包裝上的QR二維碼標(biāo)簽進(jìn)行掃描,完成出庫、入庫的操作,能夠?qū)ω浳镌趲烨闆r進(jìn)行管理。由于本系統(tǒng)是針對(duì)小型規(guī)模的倉儲(chǔ)場景,貨物信息數(shù)據(jù)并不是十分龐大,因此通過二維碼標(biāo)簽錄入的貨物數(shù)據(jù)信息存儲(chǔ)在IOS設(shè)備的本地?cái)?shù)據(jù)庫中,以確保操作的方便快捷,提高貨物信息管理的時(shí)效性。
經(jīng)過對(duì)系統(tǒng)的業(yè)務(wù)邏輯進(jìn)行分析后可以將系統(tǒng)的業(yè)務(wù)流程概括如下:
(1)將貨物的標(biāo)準(zhǔn)信息依據(jù)企業(yè)規(guī)定的格式和版本信息生成二維碼標(biāo)簽,并將此標(biāo)簽嵌于貨物外包裝指定位置;
(2)當(dāng)貨物要進(jìn)行入庫時(shí),選擇“入庫管理”按鈕,用裝有本軟件系統(tǒng)的IOS設(shè)備對(duì)標(biāo)簽上的貨物信息進(jìn)行采集,貨物信息自動(dòng)錄入軟件業(yè)務(wù)系統(tǒng),確認(rèn)后完成入庫操作;
(3)對(duì)在庫貨物的信息進(jìn)行維護(hù),整合管理倉庫中貨物的儲(chǔ)備情況;
(4)當(dāng)收到出庫申請(qǐng)時(shí),對(duì)貨物信息查詢找到需要出庫的貨物信息;
(5)選擇“出庫管理”按鈕,用裝有本軟件系統(tǒng)的IOS設(shè)備對(duì)標(biāo)簽上的貨物信息進(jìn)行掃描,確認(rèn)后完成出庫操作。
業(yè)務(wù)流程如圖1所示。
圖1 業(yè)務(wù)流程圖
本小型倉儲(chǔ)管理系統(tǒng)屬于標(biāo)準(zhǔn)的MVC工作模式,即模型(model)-視圖(view)-控制器(controller)模式,是一種典型的將業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法[5]。本系統(tǒng)的模型(model)是基于小型倉儲(chǔ)業(yè)務(wù)活動(dòng),通過對(duì)貨物二維碼標(biāo)簽的掃描完成一系列的入庫出庫等操作獲取數(shù)據(jù)信息;視圖(view)在本系統(tǒng)中包括IOS設(shè)備上采集二維碼信息的后置攝像頭和軟件界面上的按鈕、視窗等,用于發(fā)出各種業(yè)務(wù)操作的行為;控制器(controller)作為中間環(huán)節(jié)能夠接收視圖(view)發(fā)出的一系列業(yè)務(wù)操作行為,將其通知給模型(model)進(jìn)行數(shù)據(jù)解析,之后從model獲取業(yè)務(wù)邏輯,將其在view屏幕上顯示出來。本系統(tǒng)作為一個(gè)典型的MVC模型,其系統(tǒng)模型如圖2所示。
圖2 系統(tǒng)模型圖
本小型倉儲(chǔ)管理系統(tǒng)功能可以劃分為貨物QR碼標(biāo)簽采集模塊、貨物信息查詢模塊、業(yè)務(wù)操作模塊、貨物信息管理模塊、系統(tǒng)配置項(xiàng)模塊這5個(gè)部分,如圖3所示。
圖3 系統(tǒng)功能模塊圖
(1)貨物QR碼標(biāo)簽采集模塊。
貨物QR碼標(biāo)簽采集模塊由IOS設(shè)備后置8.0MP攝像頭和軟件系統(tǒng)中QR碼采集部分程序組成。通過攝像頭對(duì)標(biāo)簽區(qū)域的QR碼圖片進(jìn)行掃描[6],采集的圖片信息經(jīng)過譯碼后將獲得的貨物信息顯示在軟件視圖界面區(qū)域中。
(2)貨物信息查詢模塊。
貨物信息查詢模塊的功能包括對(duì)貨物入庫、出庫操作的查詢以及在庫情況的查詢,支持按照多字段、多條件查詢,支持模糊查詢。
(3)業(yè)務(wù)操作模塊。
業(yè)務(wù)操作模塊在軟件系統(tǒng)界面上包括“入庫管理”和“出庫管理”2個(gè)按鈕,貨物的入庫和出庫操作是通過掃描貨物QR碼標(biāo)簽,對(duì)在視圖界面顯示的信息進(jìn)行確認(rèn)后完成。
(4)貨物信息管理模塊。
貨物信息管理模塊的功能是對(duì)采集的貨物信息所自動(dòng)生成的表單進(jìn)行管理,通過對(duì)貨物代碼的查詢,獲得貨物名稱、數(shù)量、生產(chǎn)廠商、生成日期等相關(guān)信息。
(5)系統(tǒng)配置項(xiàng)模塊。
系統(tǒng)配置項(xiàng)模塊用于對(duì)軟件操作日志進(jìn)行查詢,包括操作時(shí)間、貨物狀態(tài)、成功與否的情況。另外,由于本系統(tǒng)針對(duì)的是小型規(guī)模的物流企業(yè),所獲取的貨物信息所生成的一系列表單在本地IOS設(shè)備中進(jìn)行備份,方便需要時(shí)進(jìn)行查看。
SQLite作為一種輕量級(jí)的嵌入式數(shù)據(jù)庫,被廣泛應(yīng)用于IOS、Android以及一些移動(dòng)設(shè)備的小型Web應(yīng)用系統(tǒng)[7],支持 Windows、Linux、Unix 等主流操作系統(tǒng),能夠與Java、PHP、C#等多種編程語言結(jié)合,提供ODBJ接口。SQLite是 MySQL數(shù)據(jù)庫的精簡版[8],處理速度快,并且占用內(nèi)存資源很少,無需服務(wù)器也能完成數(shù)據(jù)庫操作,與本文所設(shè)計(jì)的小型倉儲(chǔ)管理系統(tǒng)契合度很高,這十分符合本系統(tǒng)采用通過QR碼標(biāo)簽獲取貨物數(shù)據(jù)信息后將其存儲(chǔ)在本地的方式。由于IOS平臺(tái)在其核心服務(wù)層集成了SQLite數(shù)據(jù)庫[9],因此IOS平臺(tái)上的應(yīng)用程序可以使用SQLite數(shù)據(jù)庫[10],這也為數(shù)據(jù)庫設(shè)計(jì)帶來了很大的方便。
本小型倉儲(chǔ)管理系統(tǒng)擁有貨物信息表、入庫明細(xì)表、出庫明細(xì)表、入庫主表、出庫主表這5個(gè)數(shù)據(jù)庫表。下面給出主要的數(shù)據(jù)表結(jié)構(gòu),如表1~表3所示。
表1 貨物信息表 tblitem
表2 入庫明細(xì)表 rk_list
表3 出庫主表 ck_main_list
本系統(tǒng)QR碼掃描模塊是借助一個(gè)開放源代碼的條碼圖形處理庫ZXing來實(shí)現(xiàn)的[11],ZXing可以通過設(shè)備自帶的攝像頭完成條碼圖像的掃描及解碼[12]。為了便于進(jìn)行系統(tǒng)測試,將工程文件打包生成一個(gè)ZXingDemo.app的文件,再將此.app文件通過iTunes工具生成ZXingDemo.ipa應(yīng)用程序,以供IOS設(shè)備進(jìn)行測試。按照數(shù)據(jù)解析規(guī)則編寫一個(gè)測試用例貨物信息如表4所示[13-14],并通過二維碼編碼軟件生成一張相對(duì)應(yīng)的QR碼貨物標(biāo)簽圖片如圖4所示。
表4 測試用貨物信息
圖5 入庫操作測試
對(duì)該貨物信息進(jìn)行入庫測試,打開IOS設(shè)備上的應(yīng)用程序后選擇“入庫管理”按鈕,將掃描框?qū)?zhǔn)測試用QR碼標(biāo)簽,采集完信息后會(huì)在軟件界面的上方視圖窗口進(jìn)行顯示,此時(shí)點(diǎn)選“確認(rèn)”按鈕即可完成貨物的入庫操作,如圖5所示,出庫操作步驟類似,在此不做展示。
結(jié)果顯示入庫操作正常完成,貨物信息成功入庫,儲(chǔ)存在本地?cái)?shù)據(jù)庫中,方便進(jìn)行實(shí)時(shí)的查詢和管理操作。
本文設(shè)計(jì)實(shí)現(xiàn)的基于IOS平臺(tái)的小型倉儲(chǔ)管理系統(tǒng),著眼于物流活動(dòng)中小規(guī)模的物流企業(yè),如個(gè)體商店、小型超市、餐館供貨商等小型受眾群體,對(duì)于這部分的物流企業(yè)來說,在倉儲(chǔ)管理過程中并不需要面對(duì)龐大的貨物信息進(jìn)行管理,因此本系統(tǒng)以掃描二維碼的方式來進(jìn)行貨物的入庫和出庫操作,通過這種良好的用戶體驗(yàn)方式采集的信息存儲(chǔ)在本地設(shè)備中,確保了倉儲(chǔ)管理的準(zhǔn)確性和時(shí)效性。筆者下一步的工作側(cè)重點(diǎn)是實(shí)現(xiàn)該系統(tǒng)的統(tǒng)計(jì)分析功能,對(duì)目前存在本地的貨物信息進(jìn)行分析,統(tǒng)計(jì)得出貨物的庫存狀態(tài)信息、銷售信息、利潤信息等業(yè)務(wù)數(shù)據(jù),為倉儲(chǔ)管理人員提供一個(gè)更加方便、高效和安全的倉儲(chǔ)管理系統(tǒng)。
[1]劉長征,熊璋,王劍昆.基于智能標(biāo)簽的射頻識(shí)別系統(tǒng)的研究和實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2003,29(20):162-164.
[2]李俊宏,湛邵斌.條碼技術(shù)的發(fā)展及應(yīng)用[J].計(jì)算機(jī)與數(shù)字工程,2009,39(12):115-118,154.
[3]Apple Info.What is IOS[EB/OL].http://www.apple.com/ios/what-is,2013-07-23.
[4]汪婷,喻金科.基于XCode的智能五子棋的設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2012(2):185-186.
[5]徐生菊,王命延.MVC模式在B/S系統(tǒng)開發(fā)中的應(yīng)用研究[J].計(jì)算機(jī)與現(xiàn)代化,2006(4):112-114.
[6]王文豪,張亞紅,朱全銀.QR Code二維條形碼的圖像識(shí)別[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009,19(10):123-126.
[7]彭艷,楊歐.Android平臺(tái)的數(shù)據(jù)存儲(chǔ)技術(shù)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(5):192-194.
[8]倪天龍,張賢高,王培.數(shù)據(jù)庫SQLite在嵌入式系統(tǒng)中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005(10):35-37.
[9]彭建新,周元建.IOS設(shè)備取證技術(shù)研究[J].中國人民公安大學(xué)學(xué)報(bào):自然科學(xué)版,2012,18(4):37-41.
[10]劉樂延,李敬兆.IOS內(nèi)存開發(fā)管理機(jī)制的研究[J].計(jì)算機(jī)與現(xiàn)代化,2013(3):196-199,203.
[11]彭吉練.利用二維碼實(shí)現(xiàn)圖書館導(dǎo)向標(biāo)識(shí)系統(tǒng)[J].現(xiàn)代圖書情報(bào)技術(shù),2013,29(4):77-82.
[12]禹世杰,秦斌.基于zxing2.0改進(jìn)算法的條形碼識(shí)別[J].電子制作,2013(6):110-111.
[13]羅維鵬.二維碼商標(biāo)化的可行性分析[J].南昌航空大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2013,15(1):67-71.
[14]劉夏,劉明銳.二維碼在企業(yè)的應(yīng)用[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(5):14-17.