1 引言
二维码相对于条形码是一种新的编码方式,具有信息容量大、编码范围广、纠错能力强、自动识别率高和制作成本低等特点,其可以被自动识别的特点特别适用于作为信息传递的载体。在公安户口迁移业务中,需要将居民的户口信息由A地迁往B地。传统的户口迁移业务需要手动将居民的户口信息录入信息系统,不但工作量大而且容易出错,本文结合二维码适于作为信息传递载体的特点,设计并实现了一个基于二维码的公安户口迁移系统,旨在提高公安工作的信息化水平。
2 二维码户口迁移系统概述
二维码户口迁移系统主要包括登录模块、用户管理模块和户口迁移模块。首先用户需要输入正确的用户名和密码才可以登录使用二维码户口迁移系统;当用户进入系统后系统会根据用户名自动从数据库中查询用户的权限,只有管理员用户才可以使用用户管理模块,普通用户只能使用户口迁移模块;户口迁移模块包括户口迁入模块和户口迁出模块。户口迁出模块可以将数据库里户口信息表中的记录转化成为二维码,并通过打印机打印出带二维码的户口迁移证,户口迁入模块可以将带有二维码的户口迁移证上的户口信息通过二维码扫描器扫描到数据库的户口信息表中。其功能模块如图1所示。
3 系统开发技术方案
二维码户口迁移系统采用面向对象的软件工程思想进行开发,主要涉及到四个关键技术:(1)对象持久化,即实现应用程序中的对象与数据库中的记录的相互转化;(2)对象序列化和反序列化,即实现对象和数据流之间的相互转化;(3)二维码编码和解码,即实现数据流和二维码之间的相互转化;(4)二维码打印和扫码,即将实现现实世界中的二维码图片和计算机内存中的二维码图像相互转化。
3.1 对象的持久化
对象持久化是指将内存中的对象保存到可以长久保存的存储媒介中,存储媒介一般是数据库。居民的户口信息在数据库中以记录的形式存在,在应用程序中以对象的形式存在,信息系统开发需要实现对象与记录的相互转化。.NET平台下有多种技术可以实现对象和记录的相互转化,例如技术、Entity Framework技术、NHibernate技术等。其中NHibernate技术相对于其他技术拥有多种优点:首先采用了面向对象思想为开发人员屏蔽了底层的数据库;其次具有较好的移植性,当底层数据库需要迁移或升级时只需要修改一下配置文件;最后简化了程序的开发,缩短了开发周期,提高了开发效率。
3.2 对象的序列化和反序列化
对象序列化是指将内存中的对象转化数据流的过程,对象反序列化是指将数据流化为内存中的对象的过程。对象序列化与反序列化的作用在于:(1)可以用最小的花销来保存各种类型的数据;(2)使内存中的对象可以跨平台传递。对象可以采用多种序列化格式,例如可以将对象序列化为XML格式、SOAP简单对象访问协议格式、JSON格式等。由于二维码编码是对字符串的编码,所以需要先将对象序列化为内存流,然后再将内存流转化为二维码。在进行二维码解码时先将二维码图片解析为内存流,然后再将内存流反序列化为对象。
3.3 二维码编码和解码
现存有多种类型的二维码,本文采用了QR二维码技术来开发系统。QR二维码有四级容错率,最高容错率可达30%。现行多种类库可以用来对二维码进行编码和解码,其中以Google的开源项目ZXing最为流行,不但包含的二维码种类齐全,而且性能稳定。其中的QR二维码处理器主要包含读和写两个功能,读二维码功能是指将二维码图像转化成数据流,写二维码功能是指将数据流转化为二维码图像。只需要在应用程序中添加动态链接库,并声明正确的命名空间,就可以生成QR二维码处理器对象,实现数据流和二维码图像的相互转化。
3.4 二维码打印和扫码
二维码打印比较简单,只要调用连接在计算机上的打印机就可以完成。对于二维码扫码,虽然有专业的二维码扫码器,但是一般市场价格比较昂贵。现在的智能手机和平板电脑自带的摄像头都具有二维码扫码功能,但是将台式机或笔记本电脑的摄像头制作成二维码扫码器并不常见,本系统通过编程开发可以将普通的计算机摄像头制作成为性能稳定的二维码扫码器。原理如下:(1)定位计算机的摄像头并打开它进行视频采集;(2)每隔一段间隔捕获一个帧生成图像;(3)其次对生成的帧图像进行二值化处理生成二进制流;(4)根据生成的二进制流再次生成图像;(5)对在此生成的图像进行二维码解析,如果解析成功则完成二维码扫码,如果解析失败则返回步骤(2)。
4 系统功能实现
以上从背景、业务和技术三方面对系统进行了概述,现在从功能模块的角度对系统进行深入分析。
4.1 用户登录模块
用户登录模块主要用于满足系统的安全性需求,在此主要体现了访问控制和分权制衡的原则。访问控制通过用户名和口令来实现,只有输入正确的用户名和口令被授权的用户才可以使用系统。除此之外用户登录模块还负责界面重定向功能,因为设置了管理员用户和普通用户两个权限,所以对于普通用户户登录模块会将其重定向到户口迁移模块,对于管理员用户会将其重定向到用户管理模块,如果管理员用户也需要使用户口迁移模块可以为其再单独添加一个用户。
4.2 用户管理模块
管理员使用用户管理模块来维护数据库中的用户表,主要实现对用户表的增删改查。当需要添加用户时,要根据用户名查询用户表中是与否有与之同名的记录,如果没有才能增加新纪录;当需要删除用户时,要查询寻用户表中是否有该记录,如果有该记录才能将其删除;当修改用户信息时,要先将记录从用户表中提取到内存的对象中,修改完毕后再将最终结果更新到数据库中。
4.3 户口迁移模块
户口迁出模块会根据居民的身份证号码在户口信息表中查询,并将查询的结果和同时将生成的二维码展示在工作台账中,通过打印机将带有二维码的户口迁移证打印出来。户口迁入模块不需要民警手动输入任何信息,只需要通过计算机摄像头扫描二维码,便可以将居民的户口信息扫描到计算机中并展示在台账上,经确认无误后,通过单击按钮将台账上的信息保存到数据库中。
5 结束语
通过对系统测试证明该系统可以完成公安户口迁移业务中的基本需求。二维码技术用途广泛,随着公安信息化建设的推进和发展,相信会有更多的公安业务领域引入二维码技术。
参考文献
[1] ISO/IEC 18004:2000. Information technology - Automatic identification and data capture techniques - Bar code symbology - QR Code[S], 2000.
[2] Soon T J. QR code[J]. Synthesis Journal, 2008: 59-78.
作者简介:
韩宇(1987-),男,中国人民公安大学,研究生;主要研究方向和关注领域:网络安全、信息安全、公安信息化建设。
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。