基于3G/WIFI的远程指纹考勤系统的设计与实现

2016-06-08 05:48彭小明
计算机应用与软件 2016年5期
关键词:指纹识别考勤指纹

彭小明 叶 洁

(贵州大学计算机科学与技术学院 贵州 贵阳 550025)



基于3G/WIFI的远程指纹考勤系统的设计与实现

彭小明叶洁

(贵州大学计算机科学与技术学院贵州 贵阳 550025)

摘要针对工程质量监督中现有指纹考勤方式的不足,如移动性差、数据不能通过网络及时上传、数据统计不及时、结果展示不直观等缺点,结合某省工程质量监督实际需求,以目前最新的移动指纹设备为基础,提出一种基于3G/WIFI的远程指纹考勤系统。描述系统架构、无线网络指纹考勤终端和WEB服务器端软件设计,最后阐述系统开发过程中的数据同步、指纹识别二次开发等关键技术。系统试运行情况表明,基于3G/WIFI的远程指纹考勤系统具有更好的效率和实用性。

关键词指纹识别GPS定位WebService数据同步水晶报表

0引言

随着科学技术的发展和社会的进步,移动智能设备在人们的生活中扮演着越来越重要的角色。它已成为人们生活的一部分,并对人们的信息获得、思考和生活产生不可低估的影响。目前,就指纹考勤产品而言,市面上常见的指纹考勤设备有两种。一种是联机式产品,其特点是使用时必须同电脑配合使用,并且指纹的比对操作需要后台计算机支持。所以大大加重了后台计算机负担,同时无论是考勤设备、传输线路、计算机这些环节的哪一环出现任何故障,整个考勤系统必然会瘫痪,其系统处理能力和处理进度根本无法保障[1]。另一种是脱机型产品,单机就可以完成考勤全过程,使用方便,得到广泛应用。但这类产品也有一些缺点:一方面,移动性差。通常设备大而笨重,且使用交流电源供电。另一方面,数据共享性差。考勤产品要么通过有线网络来传输数据,要么在网络不可用时,先将数据临时存储在设备中,后面集中导出数据,显然这样的设备只适合对工作地点相对固定的情况进行考勤管理[10]。虽然有一些设备做到了可移动考勤,但却无法实时共享数据,对管理人员来说,对数据汇总、实时查看和分析非常不便。基于3G/WIFI的远程指纹考勤系统就是在传统考勤系统的基础上,利用最新的设备和技术进行定制。解决了目前指纹考勤产品中存在的局限,做到了可以在野外工地无交流电源、无有线网络和工作地点易变动的复杂条件下进行考勤。并在考勤后能够通过现有无线网线实时上传考勤数据,在服务器端及时生成考勤分析结果,大大提高了管理和工作效率。

1系统设计

1.1系统架构

根据贵州省水利厅已建好的服务端管理平台和现有的最新移动指纹识别设备以及网络基础设施,基于3G/WIFI的远程指纹考勤系统的系统框架设计示意如图1所示。其中,GGSN(Gateway GPRS Support Node)为网关GPRS支持节点[5]。移动考勤终端为深圳市安华达科技有限公司生产的便携式平板如图2所示。此终端是一个7寸大的基于Android平台的平板,平板上集成了指纹识别、GPS、GPRS和3G等模块。自身配有5500 mAh/3.7 V钴酸锂电池,这款平板具有轻巧、移动性强,接入网络方便,待机时间长等优点。关键是平板系统基于安卓平台,使得在平板上进行按需开发应用软件变得现实可行。另外,框架图中除了后台服务器端和考勤移动终端需要自己搭建和开发外,其他组成部分都可以利用现有基础设施,无需专门搭建,开发成本较低[7]。

图1 系统框架示意图

图2 移动考勤终端

远程指纹考勤系统主要由指纹考勤移动终端软件和WEB服务器考勤管理系统两部分组成。其中,指纹考勤移动终端软件包含指纹录入模块、指纹识别模块、考勤设置模块和无线通信模块等模块。图3给出了完整的系统结构框图。

图3 系统结构框图

1.2数据库设计

指纹考勤移动端是基于Android平台,系统自身带有一个轻量级的、嵌入式的、关系型数据库SQLite。 SQLite可移植性好、容易使用、高效而且可靠。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的、自包含的数据库引擎[2]。

指纹考勤移动端软件所涉及到的数据主要有三类:员工的基本信息表(序号、项目编号、员工工号、员工姓名、员工性别、员工年龄、员工身份证、员工地址、联系方式、入职时间、指纹原始图像、指纹存放地址、是否同步、是否删除、备注、是否管理员、密码)、考勤时间段数据表(序号、项目编号、考勤开始时间、考勤结束时间、是否同步、是否删除、备注)和考勤记录信息表(序号、项目编号、员工工号、时间段编号、考勤时间、考勤结果、所在经度、所在纬度、是否同步、是否删除、备注)。数据表名分别为Employee、Settings和Attendance, 相应的实体关系如图4所示。

图4 实体关系图

2软件设计

本系统的软件设计主要包括两大部分:指纹考勤移动终端的软件设计和Web服务端管理系统的设计。这两大部分分别实现不同的功能,且互相配合共同实现基于3G/WIFI的移动指纹考勤功能[5]。

2.1移动指纹考勤终端的软件设计

移动指纹考勤终端软件设计主要是针对原硬件设备进行二次开发。主要包括人机交互界面设计、基本数据的管理、指纹识别二次开发、控制网络模块(GPRS和3G)数据上下传操作、考勤人员地理位置定位等模块。功能结构如图5所示。

图5 移动考勤终端的软件组成框图

(1) 人机交互界面设计

人机交互界面设计模块主要实现各项功能操作界面的切换,移动终端软件系统的界面设计采用类似Win8风格,并坚持简单直观的设计原则,主要有以下几个特点:

① 简单化

② 可利用性

③ 直接操作

④ 动画效果

⑤ 看和点击

⑥ 用户控制

⑦ 反馈和交流

(2) 基本数据的管理

移动指纹考勤终端大体上包含了如下几类数据:员工的指纹数据(存储地址和指纹特征值)、员工的基本信息(工号、姓名、性别等)、特定项目考勤时间段数据、考勤产生的考勤记录。这些数据移动终端都可以实现对其进行管理(即对数据的增、删、改、查操作),数据变动后并对该条数据进行特定的改动标记,这是后面数据同步时的依据。

(3) 指纹识别二次开发

指纹识别二次开发实质就是利用现有设备集成的指纹模块。通过此模块来采集指纹并存储在闪存和数据库,在进行指纹匹配时利用实时采集到的指纹数据和存储到闪存的数据进行对比,达到区别人与人的目的。但设备本身只实现了指纹识别硬件的正常工作的各种接口,没有应用程序进行按需的输入和输出。所以在开发中关键在于使用指纹产品提供的二次开发接口来开发一款可视操作的应用程序。在应用程序中通过调用开发商提供的接口从而操作指纹模块的硬件,获取所需的指纹数据以及指纹匹配的结果,以一种友好的方式进行人机交互。

(4) 数据上传与下载

为了方便数据的共享,以及共享的实时性,系统加入了数据上传与下载功能,即指纹考勤终端可以通过无线网络将移动端数据上传到服务器,也可以从服务器端下载数据。而通过网络进行数据交互不可能像本地那样直接对数据库数据直接操作即可,必须依靠特定的方式与服务器数据库连通。连通方式有很多种,结合本系统的特点,移动端与服务器是不同的平台和开发语言。最终,本系统采用的是WebService技术与服务器进行数据交互,达到移动端能与服务端进行数据交互的目的。

(5) 考勤人员位置定位

图6 百度地图定位流程图

移动考勤终端在软件设计时考虑到了方便查看被考勤人员的实际考勤位置。在考勤时利用设备具有的GPS定位功能,实时获取了考勤机的精确坐标,这做到了考勤考勤记录的有效性和准确性。被考勤人员一旦考勤则考勤时间、地点就唯一确定下来不可能做假,也不存在部分人员为了人情关系故意让缺勤人员补打考勤的情况。管理员在移动考勤终端上点击一条考勤记录就可以查看到所点击人员的考勤时位置,一目了然知道此条考勤信息的有效性[9]。考勤位置的展示使用的是百度地图,使用百度Android定位SDK必须注册GPS和网络使用权限。定位SDK采用GPS、基站、Wi-Fi信号进行定位[4]。当应用程序向定位SDK发起定位请求时,定位SDK会根据应用的定位因素(GPS、基站、Wi-Fi信号)的实际情况(如是否开启GPS、是否连接网络、是否有信号等)来生成相应定位依据进行定位[3]。

2.2服务器端管理软件设计

图7 Web服务端管理系统功能框图

服务器端管理软件主要功能是为指纹考勤终端提供接口调用服务、常用数据的管理和对考勤记录进行分类统计并水晶报表展示。服务器的管理系统由3个模块组成,分别为数据库管理模块、WebService服务接口模块和水晶报表展示考勤结果,如图7所示。

(1) 数据库管理模块

数据库管理模块又细分为员工信息管理、考勤时间信息管理和考勤记录信息管理3个部分。员工信息管理主要实现对员工的基本的增、删、改、查操作。这里可以批量导入员工的基本信息(指纹信息除外,指纹需要在指纹考勤机上获取)。考勤时间信息管理是控制考勤终端考勤的开关,主要作用是完成对考勤时间段的设置。每个时间段控制一个上下班的可打考勤的一段时间和考勤记录信息管理的作用主要是对考勤中特殊情况的处理,比如员工请假,病假等开情况的操作。

(2) WebService服务接口服务模块

WebService接口服务模块的主要功能是接收和发送XML数据包,以实现与指纹考勤终端数据通信。WebService服务接口模块开发的内容是在服务器端用开发服务器的平台和语言实现移动终端所需要的对服务端数据库操作的方法(或函数)。并把这些方法用Web服务发布出来,这样在移动端或其他平台上需要操作服务器数据库时不需要用直接连接服务端数据库的方式(直连方式需要特定驱动,端口和授权操作等)来操作数据库。选择用WebService接口方式的目的就是为了简化开发方法和提高接口复用率。

(3) 水晶报表展示考勤结果

当管理员在服务器端查看考勤记录时,这些记录都是一条一条的零散记录,没有直观的意义。通过水晶报表可以实现对各个时间段的出勤情况进行统计分类查看,以图形的方式(效果图由于要用四种颜色来区分不同出勤类型,在转换成黑白色后无法区分原定义出勤类型,故不列出)展示给管理人员查看,这样让管理人员一目了然,便于进行管理。

3系统开发中的关键技术

3.1指纹识别二次开发

对指纹平台指纹识别模块进行二次开发的关键在于使用指纹产品可以提供的二次开发接口。开发接口包含了管理指纹库的常用操作,比如添加、删除、搜索等操作功能接口。表1给出了实现指纹识别模块部分功能的函数列表。

表1 指纹识别模块部分功能的函数列表

当用户进行指纹录入时,需要采集两次指纹样本,正如用户注册一个网站时密码需要输入两次一样。当两次样本一致时,设备将两次的样本进行合并,以特征码的形式存入设备闪存指纹库和数据库中,这是为以后指纹比对提供对比原始数据。用户按两次指纹登录一个模板存于Flash 指纹库,流程如图8所示。

图8 指纹录入功能流程图

当用户进行指纹验证时,需要将现场采集的用户特征码数据与指纹库中的指纹特征码数据进行逐一匹配,通过能否找出匹配的指纹数据来确定该用户是否为用户本人[5]。考勤终端从传感器读入现场指纹并搜索指纹库,流程如图9所示。

图9 指纹匹配功能流程图

应用程序调用所需接口方法如下:

1) 引入设备商提供的接口库文件。先将库文件拷贝到项目指定的./libs/armeabi/libfp.so目录下,再在程序中用指定语句引入,调用语句如下:

//引入设备商提供的接口库文件

static {

System.loadLibrary("fp");

}

2) 调用库文件中所需接口方法。从上面的流程图可以看出操作指纹硬件设备是一个复杂的过程,需要调用一系列的接口,下面以打开指纹设备驱动为例,源码如下:

//根据用户ID及产品ID打开驱动

int nRet = LibFp.FpOpenEx((short) 0x2109, (short) 0x7638);

//判断是否打开失败

if (nRet == LibFp.FP_ERROR_OPEN) {

//如果打开失败,获取打开驱动的Root权限

LibFp.GetRootRight();

//再次根据用户ID及产品ID打开驱动

nRet = LibFp.FpOpenEx((short) 0x2109, (short) 0x7638);

}

if (nRet == LibFp.FP_OK) {

//打开成功,继续下一步操作

} else {

//打开失败,提示结果

}

3.2数据上传与下载

移动考勤终端数据上传和下载功能的实现依赖的技术是WebService技术。WebServices通俗的讲它就是服务提供者公布在网络上的API,但它又与我们常使用的本地API不同,这些API中的函数(或方法)不能直接被调用,而必须按照标准的SOAP(Simple Object Access Protocol)协议把函数名和参数以XML数据格式传输给Web服务。然后Web服务接收到XML数据后,对其解析出相应的方法名和参数值。得到具体的方法名和参数后,Web服务调用具体的方法,再把结果以XML格式数据返回给调用端,调用端需要从XML数据中解析出返回的结果[4]。图10为Android调用WebServices原理。

图10 Android调用WebService原理图

从WebService调用的整个过程中,我们发现调用端要做的只是发送带函数名和参数(也可以不带参数)的XML数据和接收并解析带返回结果的XML数据。可见,调用端的所使用的开发平台和编程语言是没有限制的,可以基于Android、IOS或其他,编程语言可以是任何一种语言。

结合WebService以上的特点和优势,移动考勤端的系统在实现数据上传和下载时就使用此技术。通过此技术实现了客户端与服务端不同平台,不同开发语言之间进行数据交互,并且兼容性也很好。同时减少了异构平台组合的难度和成本,甚至为多个组织之间的业务往来提供了一个通用方便的机制[6]。

3.3数据同步原理

本系统中移动考勤终端和服务器相当两个数据端,用C (Client)、S (Server)表示,它们分处于不同的网络,数据库IP不可见,端口不可见,现在需要数据同步,有如下两个情况:

C中的 t1表--> 单向同步到 S中的 t1表

C中的 t2表<-->双向同步到 S中的 t2表

双向同步就是做两次单向同步而已,我们以从C中的t1表单向同步到S中的t1表为例子说明同步方案。

• 在同步源一端表中(如案例中的C站t1表)增加is_syncis_del两个int类型或者bite类型的字段;

• 当做insert或者update操作时,同时将is_sync设置成0,等待同步;

• 当做delete操作时,将is_del设置成1,is_sync设置成0,而不是物理删除;

• 在C端查询所有is_sync=0的数据,传递到S端;

• S端接收到数据之后将S中t1表中已经存在的数据作物理增删改并将成功的结果返回给C;

• C端收到S端操作成功的结果,将is_sync=0且在返回成功中的数据设置is_sync=1,另外如果有is_del=1则物理删除。

这种方案是比较常见的,优点是它做到了进行细粒度的同步,同步精度提高,传输的数据量减少。但缺点是添加了很多附加操作,如增删改操作都要更改is_sync的值。如果正好项目已经做到收尾阶段,所有的数据层已经实现了,再要加同步的话改动就比较大了,对原本的增删改代码影响较大。

另外,在Internet网中必须考虑网络速度,所以应该保证传输的数据量尽量小一点再小一点[8]。

4系统性能

在系统完成设计后,此系统已经应用于贵州省工程施工现场。移动考勤终端应用在每一个项目的施工现场,使用位置不限,工地的负责人员只需要携带带有SIM卡的指纹平板到施工工地即可,无需其他设备辅助,数据的交互无需管理人员来回于工地跟办公室,通过无线网络即可实现。通过综合和实地的测试,得出如下结果:

1) 系统运行特性。指纹考勤平板采用Qualcomm MSM 8225Q 四核处理器,1 GB运行内存,运行考勤应用程序流畅,无卡顿现象。

2) 初始数据来源。员工的基本信息可以直接通过综合管理平台直接调用或手动添加。用户的指纹原始数据需要单独采集,采集方式可以是移动考勤终端,也可以是服务端专用指纹采集设备采集。考勤设置信息需要服务端管理人员手动录入。

3) 续航时间。本系统所使用的指纹平板配有5500 mAh/3.7 V钴酸锂电池,根据厂家的参数显示,此电池可以正常充放电500次左右,每次充电大约需要5小时左右完成,在熄屏状态下可以保持10天以上,用于正常的考勤时可以续航3~5天左右。

4) 指纹容量。该指纹平板的指纹容量可达2000~3000枚,完全可以满足一个大型的施工团队的正常考勤。而考勤记录则采用内置的SQLite数据库,足够大的内存空间,考勤记录的存储没有任何问题。

5) 终端并发数。系统完成后经过测试,服务端同一时间支持最大的终端连接数为20台左右,在不跟服务器进行数据交互时可以自由使用移动终端。

6) 网络网速。该指纹平板集成了2G/3G/WIFI等多种连网方式,即使在偏僻的山区也可以通过无线网连接到互联网,网速取决于设备所在位置的信号强弱,在网络稳定的情况下可以保证数据的正常传输。

7) 数据同步。数据同步采用人工手动同步方式,目的是为了节省流量,只在需要同步时才进行数据同步,区别于自动同步无限循环同步浪费流量。同时,只要在网络可用的情况下都可以完成数据的同步,当然也可以在网络不可用的情况下通过数据的导出或导入来完成数据的交换。

8) 费用花销。系统在数据同步(即数据上传和下载)时需要花费数据流量,一般一条考勤记录或员工基本信息(指纹图片不算,上传指纹图片时用流量稍多一些)都不超过1 KB。按一条1 KB,一天考勤4次,一个工地20~50人计算,一天的流量花费是80~200 KB,按流量收费标准0.29元/MB计算,一天的花费大约就几分钱。其他花费包括耗电、设备磨损和SIM卡所属公司的月租和流量套餐费,几乎无其他额外费用。

最后,系统在实际使用中也出现了一些问题,如在条件恶劣的地区,工地无法使用正常的交流电充电,在平板电池耗尽时,无法正常完成考勤,目前好的解决方式是备用移动电源,此问题可以得到解决。另外,系统虽然在设计上尽量做到了美观,操作简洁,但对于文化水平低和电子产品使用技能不强的员工来说还是会出现操作失误和错误的问题。解决方法是对考勤终端的使用者进行统一培训和考核,使操作者熟悉、正确地使用考勤设备。

5结语

本文介绍了基于3G/WIFI的远程指纹考勤系统的软硬件设计与实现。上述方法设计的指纹考勤系统利用指纹识别技术实现了员工工作考勤,查询的自动化和智能化,方便管理人员考核员工的出勤情况;利用GPS定位技术获取员工考勤时的实时位置,做到了考勤记录位置的准确性,以及直观查看考勤位置;利用无线网络技术可以实时跟服务器进行数据上传与下载,方便服务端管理人员及时统计和查看,促进员工的自主约束和自主管理,及时地为公司各部门提供准确的考勤数据。经过最终的测试,此系统已在某省进行试运行,其结果达到了预想效果,满足了考勤管理高效性与实用性的要求[2]。不足是系统在特定需求下,根据特定的设备,开发平台设计和实现,可能无法满足普遍需求。相信在此基础上不断改进,系统的功能也会越来越完善。

参考文献

[1] 刘记.无线指纹考勤系统的设计与实现[D].河北工程大学,2007.

[2] 林培杰,朱安南,程树英.Android数据库SQLite性能优化[J].计算机系统应用,2014,23(4):193-196.

[3] 何锡标,陈淑荣.一种基于无线定位技术的LBS应用[J].微型机与应用,2014(9):7-10.

[4] 孔勇平,钟致民,杨广龙.基于多运营商基站信号和Wi-Fi信号的混合定位技术探讨[J].移动通信,2013(11):32-37.

[5] 史斌斌,张琴,王宜怀.GPRS无线指纹身份验证系统的应用研究[J].单片机与嵌入式系统应用,2011(7):71-73.

[6] 彭邦伦.基于Web服务的接口平台的设计与实现[C]//第五届中国软件工程大会,2008.

[7] 章通,陈金玉.网络指纹考勤系统的设计与实现[J].计算机应用与软件,2011,28(2):73-75.

[8] 博客园.数据同步解决方案[R].2008.http://www.csharpwin.com/csharpspace/1940.shtml.

[9] 彭曙蓉,王耀南.一种基于指纹识别的网络考勤系统[J].长沙电力学院学报:自然科学版,2006,21(2):56-58.

[10] 李悦,刘广荣,林锡龙.一种便携式自动指纹识别系统的设计与实现[C]//2004全国光学与光电子学学术研讨会,2005全国光学与光电子学学术研讨会,广西光学学会成立20周年年会论文集,2005.

DESIGN AND IMPLEMENTATION OF REMOTE FINGERPRINT ATTENDANCE SYSTEM BASED ON 3G/WIFI

Peng XiaomingYe Jie

(SchoolofComputerScienceandTechnology,GuizhouUniversity,Guiyang550025,Guizhou,China)

AbstractAiming at the inadequacy of existing fingerprint attendance methods in engineering quality supervision, such as poor mobility, data can not be uploaded timely to server through networks, untimely statistical data, and unintuitive display of results, etc., we put forward a 3G/WIFI-based remote fingerprint attendance system on the basis of the latest mobile fingerprint devices and in combination with actual needs of project quality supervision in a province. We gave the description on the system architecture, the terminals of wireless network fingerprint attendance and the WEB server software design. At last we expounded some key technologies, they are the data synchronisation in system development process, the secondary development of fingerprint identification, etc. It was showed by the system running situation that remote fingerprint attendance system based on 3G/WIFI had better efficiency and practicality.

KeywordsFingerprint identificationGPS positioningWebServiceData synchronisationCrystal reports

收稿日期:2014-09-25。彭小明,硕士生,主研领域:数据库与应用系统。叶洁,副教授。

中图分类号TP311.52

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.05.026

猜你喜欢
指纹识别考勤指纹
像侦探一样提取指纹
为什么每个人的指纹都不一样
基于人脸识别技术的考勤应用研究
智能人脸识别考勤系统
浅谈电子考勤的优势及简介
基于单片机指纹识别电子寄存柜设计
便携式指纹考勤信息管理系统设计
指纹识别技术综述
基于自适应稀疏变换的指纹图像压缩
基于大容量指纹识别的实时身份认证系统