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