APP下载

基于IOS平台的小型仓储管理系统设计

2014-10-15龚俊儒沈杏林

计算机与现代化 2014年1期
关键词:出库入库应用程序

乔 木,龚俊儒,沈杏林,杨 虎

(1.国防科学技术大学计算机学院,湖南 长沙 410073;2.国防科学技术大学电子科学与工程学院,湖南 长沙 410073)

0 引言

物流业是近些年快速发展的一大热门行业,美国将其称为发展经济的两大工具之一,人们也可以切身体会到在日常生活中已经越来越频繁地参与到物流活动的各个环节中。对于物流企业来说,大到各家快递公司、超级市场,小到个体商店、小型超市,都需要面对一个重要的问题就是货物的仓储管理。在科技水平日新月异的今天,人们可以借助信息化手段脱离原先的手写笔记的繁琐人工劳动,带来更加先进、更加高效的工作模式。

以信息技术和自动化手段为基础的自动识别技术,对现代物流中仓储管理环节有着重要影响,经过自动识别采集的数据信息相较于纸张记录或人工脑力记忆更加准确,并且借助于计算机对应软件系统的支持也更加易于进行高效快捷的管理。目前物流业中最常使用的自动识别技术是射频识别技术和条码识别技术。射频识别技术需要依靠专门的设备进行信息采集,一个完整的射频识别系统包括电子标签、读写器和天线,利用射频信号通过空间耦合实现非接触信息传递[1],从而达到信息采集的目的,这种方式在很大程度上提高了仓储管理的精细化水平,然而由于其成本较高,也导致目前该技术多应用在大规模的仓储管理活动中;条码识别技术通过扫描平面上黑白相间的图形符号来获取其记录的数据信息[2]。由于成本十分低廉、信息准确率高,使得条码技术得到了普遍应用,如零售业中的一维条码。随着二维条码的提出和应用,条码表示的信息量大大提高,常用的二维码有QR、Data Matrix等。利用二维码技术构建的仓储管理系统通常基于B/S模式,由客户端及服务器组成,通过Windows操作系统搭建,利用SQL Server、Oracle等大型数据库进行业务数据处理,考虑到小规模的物流企业数据交互时效性要求高、业务数据处理量小的特点,现有的B/S模式业务系统略显庞大。

本文介绍的仓储管理系统是针对小型规模物流企业的货物入库、出库环节所设计,基于IOS平台进行开发,通过IOS设备对货物QR二维码的信息采集,完成仓储管理中的相关操作,由于其系统本身的代码不开源,从而确保了货物信息的安全性和稳定性。

1 IOS平台介绍

IOS平台作为当前主流的移动设备系统平台之一,以其自身独特的架构方式,确保了在智能手机应用程序开发过程中的竞争优势,这也是本系统选择IOS平台的原因所在。

1.1 IOS平台概况及优势

IOS平台于2007年1月9日由美国苹果公司在Macworld大会上发布,最早用于其公司的iphone智能手机系列操作系统,之后沿用到其陆续推出的ipad、itouch等设备上,截止到2013年3月,根据Application发布的智能手机市场份额显示,IOS平台市场占有率为61.41%。IOS的平台架构主要分为4层,自下向上依次为核心操作系统层、核心服务层、多媒体层和触摸控制层。核心操作系统层是个多任务的Unix内核,该层提供了网络、文件系统、Socket、安全机制等,这些API都是Unix代码;核心服务层面向对象,并提供了很多底层服务,如本系统使用的SQLite数据库就在该层;多媒体层的相关代码贯彻了整个IOS平台,可以认为核心服务层都是多媒体层的API;触摸控制层也就是用户平常接触做多的各种按钮、滚动条、众多的控件等[3]。由于IOS平台不开放源代码,确保了用户信息以及业务数据的安全性,另外IOS设备借助Apple A系列处理器优越的性能,带来了良好的用户体验,这些优势为本系统构建在IOS平台上提供了有力保障。

1.2 IOS 应用开发

IOS平台下的应用程序需要通过系统接口才能和硬件设备实现交互,因此,IOS平台正是连接底层硬件与各种软件应用程序的中间环节。为了便于第三方进行IOS应用开发,苹果公司于2008年2月免费开放IOS SDK供第三方开发人员对IOS设备下的应用程序进行开发以及测试。IOS SDK包括开发、安装、运行自制应用程序所需的一切工具、资源和接口,目前支持2种类型的应用程序开发。一种是本地应用程序,也就是通过App Store下载的应用程序,而驱动、系统框架或者动态链接库的代码是不支持的;另一种是Web应用程序开发,用于实现应用程序与Web服务器交互的目的,能够在网络间传输,运行在IOS平台下的Safari浏览器内。本地应用程序对网络连接的需求并不绝对,本文构建的仓储管理系统正是运行在无网络的环境下。

1.3 开发工具XCode

IOS系统是从苹果的PC机系统MAC OS X演变来的,因此IOS系统下应用程序的开发工具采用XCode,本系统开发环境是通过虚拟机装载Mac OS Mountain Lion 10.8.4 系统后,并安装 XCode4.6 来搭建的。XCode是一个集成开发环境,提供各种工具方便开发者创建和管理项目[4],在这个过程中XCode工具集中有2个工具起到了重要作用,一个是Interface Builder,用于实现应用程序的用户界面可视化操作,可以直接拖拽组件到程序窗口的各个位置,并能够通过查看器修改组件的属性,当界面符合设计要求时可以选择将当前状态保存为nib文件,以供下次创建相同对象时直接使用存储构成用户界面的窗口和视图的历史版本信息,Interface Builder节省了创建、配置和定位构成用户界面对象所需要的定制代码;另外一个工具是Instruments,用于分析所开发的应用程序在IOS设备上运行的性能情况,Instruments从运行中的应用程序获取数据信息,将过程中的内存使用率、磁盘占有率、网络吞吐量等性能数据反映在时间线图形上,开发者通过自带的分析工具将多次收集的时间线图形进行分析,寻找应用程序性能提升的原因所在,从而达到确保应用程序有最好的用户体验的目的。XCode提供了基本的源代码开发环境,是开发IOS平台下应用程序必不可少的工具。

2 小型仓储管理系统设计

本文设计实现的小型仓储管理系统是基于IOS平台,通过对货物外包装上的QR二维码标签进行扫描,完成出库、入库的操作,能够对货物在库情况进行管理。由于本系统是针对小型规模的仓储场景,货物信息数据并不是十分庞大,因此通过二维码标签录入的货物数据信息存储在IOS设备的本地数据库中,以确保操作的方便快捷,提高货物信息管理的时效性。

2.1 系统总体架构

经过对系统的业务逻辑进行分析后可以将系统的业务流程概括如下:

(1)将货物的标准信息依据企业规定的格式和版本信息生成二维码标签,并将此标签嵌于货物外包装指定位置;

(2)当货物要进行入库时,选择“入库管理”按钮,用装有本软件系统的IOS设备对标签上的货物信息进行采集,货物信息自动录入软件业务系统,确认后完成入库操作;

(3)对在库货物的信息进行维护,整合管理仓库中货物的储备情况;

(4)当收到出库申请时,对货物信息查询找到需要出库的货物信息;

(5)选择“出库管理”按钮,用装有本软件系统的IOS设备对标签上的货物信息进行扫描,确认后完成出库操作。

业务流程如图1所示。

图1 业务流程图

本小型仓储管理系统属于标准的MVC工作模式,即模型(model)-视图(view)-控制器(controller)模式,是一种典型的将业务逻辑和数据显示分离的方法[5]。本系统的模型(model)是基于小型仓储业务活动,通过对货物二维码标签的扫描完成一系列的入库出库等操作获取数据信息;视图(view)在本系统中包括IOS设备上采集二维码信息的后置摄像头和软件界面上的按钮、视窗等,用于发出各种业务操作的行为;控制器(controller)作为中间环节能够接收视图(view)发出的一系列业务操作行为,将其通知给模型(model)进行数据解析,之后从model获取业务逻辑,将其在view屏幕上显示出来。本系统作为一个典型的MVC模型,其系统模型如图2所示。

图2 系统模型图

2.2 各功能模块设计

本小型仓储管理系统功能可以划分为货物QR码标签采集模块、货物信息查询模块、业务操作模块、货物信息管理模块、系统配置项模块这5个部分,如图3所示。

图3 系统功能模块图

(1)货物QR码标签采集模块。

货物QR码标签采集模块由IOS设备后置8.0MP摄像头和软件系统中QR码采集部分程序组成。通过摄像头对标签区域的QR码图片进行扫描[6],采集的图片信息经过译码后将获得的货物信息显示在软件视图界面区域中。

(2)货物信息查询模块。

货物信息查询模块的功能包括对货物入库、出库操作的查询以及在库情况的查询,支持按照多字段、多条件查询,支持模糊查询。

(3)业务操作模块。

业务操作模块在软件系统界面上包括“入库管理”和“出库管理”2个按钮,货物的入库和出库操作是通过扫描货物QR码标签,对在视图界面显示的信息进行确认后完成。

(4)货物信息管理模块。

货物信息管理模块的功能是对采集的货物信息所自动生成的表单进行管理,通过对货物代码的查询,获得货物名称、数量、生产厂商、生成日期等相关信息。

(5)系统配置项模块。

系统配置项模块用于对软件操作日志进行查询,包括操作时间、货物状态、成功与否的情况。另外,由于本系统针对的是小型规模的物流企业,所获取的货物信息所生成的一系列表单在本地IOS设备中进行备份,方便需要时进行查看。

2.3 数据库结构设计

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所示。

表1 货物信息表 tblitem

表2 入库明细表 rk_list

表3 出库主表 ck_main_list

3 测试及结果

本系统QR码扫描模块是借助一个开放源代码的条码图形处理库ZXing来实现的[11],ZXing可以通过设备自带的摄像头完成条码图像的扫描及解码[12]。为了便于进行系统测试,将工程文件打包生成一个ZXingDemo.app的文件,再将此.app文件通过iTunes工具生成ZXingDemo.ipa应用程序,以供IOS设备进行测试。按照数据解析规则编写一个测试用例货物信息如表4所示[13-14],并通过二维码编码软件生成一张相对应的QR码货物标签图片如图4所示。

表4 测试用货物信息

图5 入库操作测试

对该货物信息进行入库测试,打开IOS设备上的应用程序后选择“入库管理”按钮,将扫描框对准测试用QR码标签,采集完信息后会在软件界面的上方视图窗口进行显示,此时点选“确认”按钮即可完成货物的入库操作,如图5所示,出库操作步骤类似,在此不做展示。

结果显示入库操作正常完成,货物信息成功入库,储存在本地数据库中,方便进行实时的查询和管理操作。

4 结束语

本文设计实现的基于IOS平台的小型仓储管理系统,着眼于物流活动中小规模的物流企业,如个体商店、小型超市、餐馆供货商等小型受众群体,对于这部分的物流企业来说,在仓储管理过程中并不需要面对庞大的货物信息进行管理,因此本系统以扫描二维码的方式来进行货物的入库和出库操作,通过这种良好的用户体验方式采集的信息存储在本地设备中,确保了仓储管理的准确性和时效性。笔者下一步的工作侧重点是实现该系统的统计分析功能,对目前存在本地的货物信息进行分析,统计得出货物的库存状态信息、销售信息、利润信息等业务数据,为仓储管理人员提供一个更加方便、高效和安全的仓储管理系统。

[1]刘长征,熊璋,王剑昆.基于智能标签的射频识别系统的研究和实现[J].计算机工程,2003,29(20):162-164.

[2]李俊宏,湛邵斌.条码技术的发展及应用[J].计算机与数字工程,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的智能五子棋的设计[J].计算机与现代化,2012(2):185-186.

[5]徐生菊,王命延.MVC模式在B/S系统开发中的应用研究[J].计算机与现代化,2006(4):112-114.

[6]王文豪,张亚红,朱全银.QR Code二维条形码的图像识别[J].计算机技术与发展,2009,19(10):123-126.

[7]彭艳,杨欧.Android平台的数据存储技术[J].计算机系统应用,2012,21(5):192-194.

[8]倪天龙,张贤高,王培.数据库SQLite在嵌入式系统中的应用[J].单片机与嵌入式系统应用,2005(10):35-37.

[9]彭建新,周元建.IOS设备取证技术研究[J].中国人民公安大学学报:自然科学版,2012,18(4):37-41.

[10]刘乐延,李敬兆.IOS内存开发管理机制的研究[J].计算机与现代化,2013(3):196-199,203.

[11]彭吉练.利用二维码实现图书馆导向标识系统[J].现代图书情报技术,2013,29(4):77-82.

[12]禹世杰,秦斌.基于zxing2.0改进算法的条形码识别[J].电子制作,2013(6):110-111.

[13]罗维鹏.二维码商标化的可行性分析[J].南昌航空大学学报:社会科学版,2013,15(1):67-71.

[14]刘夏,刘明锐.二维码在企业的应用[J].计算机系统应用,2013,22(5):14-17.

猜你喜欢

出库入库应用程序
重磅!广东省“三旧”改造标图入库标准正式发布!
中国食品品牌库入库企业信息公示①
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
卷烟配货出库流程的优化与应用
散粮出库 加快腾仓
“出库费” 应由谁来付
身临其境探究竟 主动思考完任务——《仓储与配送实务》入库作业之“入库订单处理”教学案例
基于PLC的物流自动化包装线出库穿梭车的设计
批量地籍图入库程序设计方法