物流業是近些年快速發展的一大熱門行業, 美國將其稱為發展經濟的兩大工具之一, 人們也可以切身體會到在日常生活中已經越來越頻繁地參與到物流活動的各個環節中。對於物流企業來說, 大到各家快遞公司、超級市場, 小到個體商店、小型超市, 都需要麵對一個重要的問題就是貨物的倉儲管理。在科技水平日新月異的今天, 人們可以借助信息化手段脫離原先的手寫筆記的繁瑣人工勞動, 帶來更加先進、更加高效的工作模式。
以信息技術和自動化手段為基礎的自動識別技術, 對現代物流中倉儲管理環節有著重要影響, 經過自動識別采集的數據信息相較於紙張記錄或人工腦力記憶更加準確, 並且借助於計算機對應軟件係統的支持也更加易於進行高效快捷的管理。目前物流業中最常使用的自動識別技術是射頻識別技術和條碼識別技術。射頻識別技術需要依靠專門的設備進行信息采集, 一個完整的射頻識別係統包括電子標簽、 讀寫器和天線, 利用射頻信號通過空間耦合實現非接觸信息傳遞[1], 從而達到信息采集的目的, 這種方式在很大程度上提高了倉儲管理的精細化水平, 然而由於其成本較高, 也導致目前該技術多應用在大規模的倉儲管理活動中; 條碼識別技術通過掃描平麵上黑白相間的圖形符號來獲取其記錄的數據信息[2]。由於成本十分低廉、信息準確率高, 使得條碼技術得到了普遍應用, 如零售業中的一維條碼。隨著二維條碼的提出和應用, 條碼表示的信息量大大提高, 常用的二維碼有QR、Data Matrix等。利用二維碼技術構建的倉儲管理係統通常基於B/S模式, 由客戶端及服務器組成, 通過Windows操作係統搭建, 利用SQL Serv- er、Oracle等大型數據庫進行業務數據處理, 考慮到小規模的物流企業數據交互時效性要求高、業務數據處理量小的特點, 現有的B/S模式業務係統略顯龐大。
本文介紹的倉儲管理係統是針對小型規模物流企業的貨物入庫、出庫環節所設計, 基於ioses平台進行開發, 通過ioses設備對貨物QR二維碼的信息采集, 完成倉儲管理中的相關操作, 由於其係統本身的代碼不開源, 從而確保了貨物信息的安全性和穩定性。
ioses平台作為當前主流的移動設備係統平台之一, 以其自身獨特的架構方式, 確保了在智能手機應用程序開發過程中的競爭優勢, 這也是本係統選擇ioses平台的原因所在。
ioses平台於2007年1月9日由美國蘋果公司在Macworld大會上發布, 最早用於其公司的iphoness智能手機係列操作係統, 之後沿用到其陸續推出的ipads、itouch等設備上, 截止到2013年3月, 根據Ap- plication發布的智能手機市場份額顯示, ioses平台市場占有率為61. 41%。ioses的平台架構主要分為4層, 自下向上依次為核心操作係統層、核心服務層、多媒體層和觸摸控製層。核心操作係統層是個多任務的Unix內核, 該層提供了網絡、文件係統、Socket、安全機製等, 這些API都是Unix代碼; 核心服務層麵向對象, 並提供了很多底層服務, 如本係統使用的SQLite數據庫就在該層; 多媒體層的相關代碼貫徹了整個ioses平台, 可以認為核心服務層都是多媒體層的API; 觸摸控製層也就是用戶平常接觸做多的各種按鈕、滾動條、眾多的控件等[3]。由於ioses平台不開放源代碼, 確保了用戶信息以及業務數據的安全性, 另外ioses設備借助Apple A係列處理器優越的性能, 帶來了良好的用戶體驗, 這些優勢為本係統構建在ioses平台上提供了有力保障。
ioses平台下的應用程序需要通過係統接口才能和硬件設備實現交互, 因此, ioses平台正是連接底層硬件與各種軟件應用程序的中間環節。為了便於第三方進行ioses應用開發, 蘋果公司於2008年2月免費開放ioses SDK供第三方開發人員對ioses設備下的應用程序進行開發以及測試。ioses SDK包括開發、安裝、運行自製應用程序所需的一切工具、資源和接口, 目前支持2種類型的應用程序開發。一種是本地應用程序, 也就是通過App Store下載的應用程序, 而驅動、係統框架或者動態鏈接庫的代碼是不支持的; 另一種是Web應用程序開發, 用於實現應用程序與Web服務器交互的目的, 能夠在網絡間傳輸, 運行在ioses平台下的Safari瀏覽器內。本地應用程序對網絡連接的需求並不絕對, 本文構建的倉儲管理係統正是運行在無網絡的環境下。
ioses係統是從蘋果的PC機係統MAC OS X演變來的, 因此ioses係統下應用程序的開發工具采用XCode, 本係統開發環境是通過虛擬機裝載Mac OS Mountain Lion 10. 8. 4係統後, 並安裝XCode4. 6來搭建的。XCode是一個集成開發環境, 提供各種工具方便開發者創建和管理項目[4], 在這個過程中XCode工具集中有2個工具起到了重要作用, 一個是Inter- face Builder, 用於實現應用程序的用戶界麵可視化操作, 可以直接拖拽組件到程序窗口的各個位置, 並能夠通過查看器修改組件的屬性, 當界麵符合設計要求時可以選擇將當前狀態保存為nib文件, 以供下次創建相同對象時直接使用存儲構成用戶界麵的窗口和視圖的曆史版本信息, Interface Builder節省了創建、 配置和定位構成用戶界麵對象所需要的定製代碼; 另外一個工具是Instruments, 用於分析所開發的應用程序在ioses設備上運行的性能情況, Instruments從運行中的應用程序獲取數據信息, 將過程中的內存使用率、磁盤占有率、網絡吞吐量等性能數據反映在時間線圖形上, 開發者通過自帶的分析工具將多次收集的時間線圖形進行分析, 尋找應用程序性能提升的原因所在, 從而達到確保應用程序有最好的用戶體驗的目的。XCode提供了基本的源代碼開發環境, 是開發ioses平台下應用程序必不可少的工具。
本文設計實現的小型倉儲管理係統是基於ioses平台, 通過對貨物外包裝上的QR二維碼標簽進行掃描, 完成出庫、入庫的操作, 能夠對貨物在庫情況進行管理。由於本係統是針對小型規模的倉儲場景, 貨物信息數據並不是十分龐大, 因此通過二維碼標簽錄入的貨物數據信息存儲在ioses設備的本地數據庫中, 以確保操作的方便快捷, 提高貨物信息管理的時效性。
經過對係統的業務邏輯進行分析後可以將係統的業務流程概括如下:
( 1) 將貨物的標準信息依據企業規定的格式和版本信息生成二維碼標簽, 並將此標簽嵌於貨物外包裝指定位置;
( 2) 當貨物要進行入庫時, 選擇“入庫管理”按鈕, 用裝有本軟件係統的ioses設備對標簽上的貨物信息進行采集, 貨物信息自動錄入軟件業務係統, 確認後完成入庫操作;
( 3) 對在庫貨物的信息進行維護, 整合管理倉庫中貨物的儲備情況;
( 4) 當收到出庫申請時, 對貨物信息查詢找到需要出庫的貨物信息;
( 5) 選擇“出庫管理”按鈕, 用裝有本軟件係統的ioses設備對標簽上的貨物信息進行掃描, 確認後完成出庫操作。
業務流程如圖1所示。
本小型倉儲管理係統屬於標準的MVC工作模式, 即模型 ( model) - 視圖 ( view) - 控製器 ( control- ler) 模式, 是一種典型的將業務邏輯和數據顯示分離的方法[5]。本係統的模型 ( model) 是基於小型倉儲業務活動, 通過對貨物二維碼標簽的掃描完成一係列的入庫出庫等操作獲取數據信息; 視圖 ( view) 在本係統中包括ioses設備上采集二維碼信息的後置攝像頭和軟件界麵上的按鈕、視窗等, 用於發出各種業務操作的行為; 控製器 ( controller) 作為中間環節能夠接收視圖 ( view) 發出的一係列業務操作行為, 將其通知給模型 ( model) 進行數據解析, 之後從model獲取業務邏輯, 將其在view屏幕上顯示出來。本係統作為一個典型的MVC模型, 其係統模型如圖2所示。
本小型倉儲管理係統功能可以劃分為貨物QR碼標簽采集模塊、貨物信息查詢模塊、業務操作模塊、 貨物信息管理模塊、係統配置項模塊這5個部分, 如圖3所示。
( 1) 貨物QR碼標簽采集模塊。
貨物QR碼標簽采集模塊由ioses設備後置8. 0MP攝像頭和軟件係統中QR碼采集部分程序組成。通過攝像頭對標簽區域的QR碼圖片進行掃描[6], 采集的圖片信息經過譯碼後將獲得的貨物信息顯示在軟件視圖界麵區域中。
( 2) 貨物信息查詢模塊。
貨物信息查詢模塊的功能包括對貨物入庫、出庫操作的查詢以及在庫情況的查詢, 支持按照多字段、 多條件查詢, 支持模糊查詢。
( 3) 業務操作模塊。
業務操作模塊在軟件係統界麵上包括“入庫管理”和“出庫管理”2個按鈕, 貨物的入庫和出庫操作是通過掃描貨物QR碼標簽, 對在視圖界麵顯示的信息進行確認後完成。
( 4) 貨物信息管理模塊。
貨物信息管理模塊的功能是對采集的貨物信息所自動生成的表單進行管理, 通過對貨物代碼的查詢, 獲得貨物名稱、數量、生產廠商、生成日期等相關信息。
( 5) 係統配置項模塊。
係統配置項模塊用於對軟件操作日誌進行查詢, 包括操作時間、貨物狀態、成功與否的情況。另外, 由於本係統針對的是小型規模的物流企業, 所獲取的貨物信息所生成的一係列表單在本地ioses設備中進行備份, 方便需要時進行查看。
SQLite作為一種輕量級的嵌入式數據庫, 被廣泛應用於ioses、androids以及一些移動設備的小型Web應用係統[7], 支持Windows、Linux、Unix等主流操作係統, 能夠與Java、PHP、C#等多種編程語言結合, 提供ODBJ接口。SQLite是MySQL數據庫的精簡版[8], 處理速度快, 並且占用內存資源很少, 無需服務器也能完成數據庫操作, 與本文所設計的小型倉儲管理係統契合度很高, 這十分符合本係統采用通過QR碼標簽獲取貨物數據信息後將其存儲在本地的方式。由於ioses平台在其核心服務層集成了SQLite數據庫[9], 因此ioses平台上的應用程序可以使用SQLite數據庫[10], 這也為數據庫設計帶來了很大的方便。
本小型倉儲管理係統擁有貨物信息表、入庫明細表、出庫明細表、入庫主表、出庫主表這5個數據庫表。 下麵給出主要的數據表結構, 如表1 ~表3所示。
本係統QR碼掃描模塊是借助一個開放源代碼的條碼圖形處理庫ZXing來實現的[11], ZXing可以通過設備自帶的攝像頭完成條碼圖像的掃描及解碼[12]。為了便於進行係統測試, 將工程文件打包生成一個ZXingDemo. app的文件, 再將此. app文件通過iTunes工具生成ZXingDemo. ipa應用程序, 以供ioses設備進行測試。按照數據解析規則編寫一個測試用例貨物信息如表4所示[13-14], 並通過二維碼編碼軟件生成一張相對應的QR碼貨物標簽圖片如圖4所示。
對該貨物信息進行入庫測試, 打開ioses設備上的應用程序後選擇“入庫管理”按鈕, 將掃描框對準測試用QR碼標簽, 采集完信息後會在軟件界麵的上方視圖窗口進行顯示, 此時點選“確認”按鈕即可完成貨物的入庫操作, 如圖5所示, 出庫操作步驟類似, 在此不做展示。
結果顯示入庫操作正常完成, 貨物信息成功入庫, 儲存在本地數據庫中, 方便進行實時的查詢和管理操作。
本文設計實現的基於ioses平台的小型倉儲管理係統, 著眼於物流活動中小規模的物流企業, 如個體商店、小型超市、餐館供貨商等小型受眾群體, 對於這部分的物流企業來說, 在倉儲管理過程中並不需要麵對龐大的貨物信息進行管理, 因此本係統以掃描二維碼的方式來進行貨物的入庫和出庫操作, 通過這種良好的用戶體驗方式采集的信息存儲在本地設備中, 確保了倉儲管理的準確性和時效性。筆者下一步的工作側重點是實現該係統的統計分析功能, 對目前存在本地的貨物信息進行分析, 統計得出貨物的庫存狀態信息、銷售信息、利潤信息等業務數據, 為倉儲管理人員提供一個更加方便、高效和安全的倉儲管理係統。
上一篇: 現代倉儲管理中條形碼技術的運用