基于ARM—Linux与JavaEE网络化门禁考勤系统的设计

2014-07-18 18:40房好帅志鹏哲豪春景
电脑知识与技术 2014年13期
关键词:数据库

房好帅 志鹏 哲豪 春景

摘要:提出了一种网络化门禁考勤系统的设计方案,由门禁考勤机和后台服务器通过网络连接构成。门禁考勤机以ARM处理器为核心,连接RFID读卡器、摄像头、LCD显示屏、门禁控制器等构成硬件系统,移植Linux作为嵌入式操作系统;采用JavaEE技术实现后台服务接口,部署在后台服务器安装的Tomcat中;利用数据库和FTP文件传输保存门禁考勤信息记录;整体架构设计扩展性较好,现有的人事管理系统经过少量的二次开发便可与本方案进行集成。

关键词:门禁考勤系统;嵌入式Linux;JavaEE;后台服务接口;数据库

中图分类号:TP316 文献标识码:A 文章编号:1009-3044(2014)13-2967-04

Design of Networked Access Control and Attendance System Based on ARM-Linux and JavaEE

FANG Hao-shuai, LI Zhi-peng, ZHENG Zhe-hao, WANG Chun-jing

(Department of Computer Science and Engineering, North China Institute of Aerospace Engineering, Langfang 065000, China)

Abstract: Proposes a design proposal of networked access control and attendance system, includes access control and attendance clients connect server via network. The hardware of access control and attendance client consists of ARM as the core processor, connects the RFID card reader, camera, LCD and access controller. Develops the service interfaces using JavaEE technology, and then deployed in Tomcat which the server has installed. The access control attendance record information can saved in database and by FTP file transferring. The overall architecture of this design has a preferable expansibility, only after a few secondary developments, existing personnel management systems can be integrated with the design proposal.

Key words: Access control and attendance system; Embedded Linux; JavaEE; service interface; database

1 门禁考勤系统的现状及发展趋势

门禁考勤系统主要应用于人员进出控制与授权,同时与人事管理系统集成、机电设备控制等联动,实现自动化身份识别与信息统计。市场上已有产品对于人员身份识别的方式目前有密码、RFID卡、生物特征识别3种,有些产品同时支持多种方式。就工作时的联接方式而言,已经从最初的单机门禁考勤系统逐渐向联机、网络化门禁系统发展,也出现了一些网络化的解决方案,但这些方案普遍没有考虑基于当前已有系统进行整合或二次开发,授权方式不够灵活,与人事管理系统结合才能更有效的发挥其作用。

本文提出一种基于嵌入式ARM-Linux和JavaEE技术的设计与实现方案,后台服务接口可在人事管理系统的基础上采用JavaEE进行二次开发,门禁考勤机通过Http协议与后台进行通信,实现分布式的网络化进出控制系统,也有利于人事部门的统一管理和授权。系统开发也充分利用开源操作系统、中间件和第三方库,增强了健壮性同时降低了成本。

2 方案总体设计

门禁考勤系统的实现总体流程如图1所示,员工使用RFID刷卡进行身份验证,并拍下刷卡的即时照片,门禁考勤机程序通过Http协议向后台身份验证与信息保存服务接口发出请求,服务器中的服务接口验证身份并保存刷卡信息,返回员工的基本信息和档案照片,门禁考勤机提示刷卡完成,显示基本信息并将即时照片上传到服务器FTP,作为防止代刷证明供人事部门查询。

系统技术架构如图2所示,门禁考勤机采用ARM处理器扩展多种外设构成硬件系统,软件部分移植bootloader,交叉编译Linux内核并配置所需硬件驱动程序,文件系统中加入第三方库Qt Embedded、JSON lib、jpeg lib,开发门禁考勤终端程序。服务器部分包括后台服务接口部署在Web Server(如Tomcat),采用开源MVC框架Struts,ORM框架Hibernate实现访问数据库,JSON lib进行标准JSON数据格式序列化与反序列化。

3 后台服务接口的关键技术实现

为使用JavaEE开发后台服务接口,采用流行的Struts框架进行设计,代码实现层次划分为action、services、dao三层。实现控制器的action层将POJO类进行配置便可以作为Servlet请求接口,实现如下:

1) 编写POJO类实现Servlet,其方法作为后台服务接口的实现,主要方法如下:endprint

public class PersonRecordAction {

public void recordByCard() {……}//进行身份验证和保存刷卡信息

public void searchRecords() {……}//按条件查询刷卡信息

//其它方法实现在此省略 }

2) 在struts.xml的标签内对Servlet实现的POJO类进行配置,将其方法配置为action,主要代码如下:

method="recordByCard">

method="searchRecords">

<!—其它action配置在此省略—>

配置完成之后,将工程打包生成部署文件RecordServices.war,使用Tomcat控制台或直接拷贝到webapp目录下,Tomcat启动后即可自动完成部署。门禁考勤终端程序可以编程访问URL“http://服务器ip:端口号/RecordServices/recordByCard.action”进行请求服务接口进行服务,接口中的流程如下:

1)获取HttpServletRequest、HttpServletResponse类的实例:

HttpServletRequest request = ServletActionContext.getRequest();

HttpServletResponse response=ServletActionContext.getResponse();

2)HttpServletRequest解析GET/POST请求提交的参数:

String paraval = request.getParameter(paraname);

3)调用业务逻辑实现的services层,services层的实现需要访问数据库,其底层代码采用流行的ORM数据库访问框架Hibernate实现;为了将业务逻辑和数据库访问代码耦合度降低,业务逻辑层调用数据库访问层dao类的方法;

4)将业务逻辑执行结果封装至一POJO类ReqRet实例aret,使用JSON lib进行序列化,使用HttpServletResponse类的实例进行结果的返回:

PrintWriter out = response.getWriter();

out.print(JSONObject.fromObject(aret).toString());

4 基于ARM-Linux平台实现门禁考勤机终端

4.1 ARM-Linux系统平台搭建前期准备工作

在Linux系统中移植与交叉编译U-Boot、Linux内核,采用BusyBox制作嵌入式根文件系统。界面的开发采用第三方库Qt 4.8,标准数据交换格式采用json-c-0.9,图像格式的转换采用lib-jpeg,这些库都提供开源源代码,编译并加入嵌入式根文件系统的方法如下:

1)下载完整的源代码压缩包,解压到有访问权限的目录;

2)切换到源代码目录执行“./configure –help”,显示编译配置项帮助信息;

3)执行“./configure +配置项”命令,进行编译前配置,设置交叉编译器设置,安装路径在/usr/local,编译为共享库;

4)执行“make”命令开始编译,编译完成后执行“make install”将编译后生成的头文件和共享库安装拷贝到Linux下安装路径;

5)将编译后的共享库拷贝到嵌入式根文件系统;

6)将共享库目录添加到LD_LIBRARY_PATH环境变量(在嵌入式跟文件系统/etc/profile中修改)。

4.2 门禁考勤终端程序的实现关键技术

4.2.1 员工刷卡与门禁控制器串口设备的访问

RFID读卡器和门禁控制器通过串口与ARM处理器连接,使用Posix_QextSerialPort类进行串口操作。需要读取RFID读卡器串口数据,在Qt程序中,采用定时器轮询的方法进行读取:

1)设定定时器的timeout信号的槽函数为readCardNo():

QTimer cardserialPortTimer = new QTimer(this);

connect(cardserialPortTimer, SIGNAL(timeout()), this, SLOT(readCardNo()));

cardserialPortTimer→start(TIMER_INTERVAL);

2)在槽函数readCardNo()中采用Posix_QextSerialPort类的方法读取串口,直到读取内容为开始第一个字符为0x02,最后字符为0x0D0x0A0x03,截取中间的字符作为RFID的卡号。

门禁控制器通过RS485总线连接处理器,需要通过串口发送命令字符串进行控制,Posix_QextSerialPort类提供了writeData(const char * data, qint64 maxSize)方法进行发送数据。

4.2.2 即时拍照摄像头设备的访问endprint

摄像头的图像采集使用V4L2 API获取一帧图像,访问设备文件进行读取后格式转换得到即时拍照,实现方法步骤为:

1)使用open系统调用打开“/dev/video0”设备;

2)使用ioctl系统调用设置摄像头视频数据格式(VIDIOC_S_FMT,如RGB565),并启动视频采集(VIDIOC_STREAMON);

3)使用read系统调用从视频中读取一帧图像至缓冲区,使用lib-jpeg提供的图像格式转换函数转换为jpeg格式;

4)使用close系统调用关闭摄像头设备。

4.2.3 门禁考勤终端程序访问后台服务接口

在Qt4提供的network API中,QNetworkAccessManager类提供了发送网络请求和接收网络应答的方法,QNetworkRequest类用来管理请求,QNetworkReply类用来接收应答,通过信号和槽的机制三者进行协同工作:

1)使用QNetworkRequest类实例构造Http请求头,调用QNetworkAccessManager类的post或get方法请求后台服务接口,返回QNetworkReply类实例;

2)使用connect方法绑定QNetworkReply类实例readyRead信号与槽函数httpReadyRead(),finished信号与槽函数httpFinished ();

3)当应答从服务器返回时,httpReadyRead()槽函数被调用,使用QNetworkReply类实例的readAll方法读取返回字符串;

4)当一次Http请求结束后,httpFinished ()被调用,使用QNetworkReply类实例的deleteLater方法做清除处理。

4.2.4 门禁考勤终端程序访问FTP服务器

使用QFtp类进行档案照片和即时拍照的传输,其中的login方法进行登录FTP服务器进行验证,get和put用来下载和上传文件,操作完成产生done信号。

5 设计方案的原型系统的实现与测试

基于上述设计方案实现原型系统,门禁考勤机采用S3C6410 ARM11开发板,连接13.56MHz RFID读卡器(RS232接口)、门禁控制器(RS485接口);烧写U-Boot-1.1.6、Linux-2.6.28内核、BusyBox-1.15.3文件系统,Qt 4.8作为界面开发库;服务器采用MyEclipse6.5开发后台服务接口,MVC库为struts2-2.1.8.1,ORM库为hibernate-3.1,安装JDK_1.6及JRE,使用Tomcat-6.0.18进行部署服务,安装mysql-5.1.73及其Java驱动。

系统测试使用一台服务器和多个门禁考勤机终端,经过与实际的实验室门禁系统集成,多人次使用运行稳定,界面显示正确无乱码,门禁考勤机LCD显示屏用户界面如图3所示,显示了员工基本信息、档案照片和即时拍照,并提示刷卡成功。

图2 门禁考勤机LCD显示屏用户界面

6 结束语与展望

本文针对门禁考勤系统的网络化的发展趋势,基于主流的ARM-Liux平台和JavaEE技术,设计与实现了门禁考勤机的原型系统。在此系统上可方便的增加密码方式或是指纹识别、面部识别等模块,后台服务与人事管理系统结合可以实现灵活的授权控制,方便了人事管理人员的查询、统计报表,因此系统整体结构设计具有良好的扩展性,可以为相关行业产品化的技术路线提供参考。

参考文献:

[1] 凌振宝,李娇阳,朴冠宇,等.基于RFID的考勤系统的设计与实现[J].吉林大学学报:信息科学版,2013,31(5):470-476.

[2] 高小明.办公楼群网络门禁管理系统的设计[J].计算机光盘软件与应用,2013(21):279-280.

[3] 郭盛,黄刚,王峰.校园卡门禁系统在高校实验室中的应用研究[J].中国现代教育装备,2013(19):8-10.

[4] 朱仕浪,王宜怀,冯德旺,等.基于流水线和RFID技术的快速门禁系统[J].福建农林大学学报:自然科学版,2013,42(5):552-556.

[5] 王月浩,刘杰,余洲,等.RFID在实验室门禁考勤上的应用[J].重庆文理学院学报:社会科学版,2013,32(5):132-135.

[6] 金贻,郑军,鄢吉多,等.门禁考勤管理系统的设计与实现[J].贵阳学院学报:自然科学版,2013,8(29):51-52.

[7] 李杰文.当前门禁考勤管理系统设计[J].信息与电脑:理论版,2013(9):16-17.

[8] 周细义,任亚运,肖祥,等.RFID技术在实验室管理系统中的应用研究[J].湖南理工学院学报:自然科学版,2013,26(3):40-44.

摄像头的图像采集使用V4L2 API获取一帧图像,访问设备文件进行读取后格式转换得到即时拍照,实现方法步骤为:

1)使用open系统调用打开“/dev/video0”设备;

2)使用ioctl系统调用设置摄像头视频数据格式(VIDIOC_S_FMT,如RGB565),并启动视频采集(VIDIOC_STREAMON);

3)使用read系统调用从视频中读取一帧图像至缓冲区,使用lib-jpeg提供的图像格式转换函数转换为jpeg格式;

4)使用close系统调用关闭摄像头设备。

4.2.3 门禁考勤终端程序访问后台服务接口

在Qt4提供的network API中,QNetworkAccessManager类提供了发送网络请求和接收网络应答的方法,QNetworkRequest类用来管理请求,QNetworkReply类用来接收应答,通过信号和槽的机制三者进行协同工作:

1)使用QNetworkRequest类实例构造Http请求头,调用QNetworkAccessManager类的post或get方法请求后台服务接口,返回QNetworkReply类实例;

2)使用connect方法绑定QNetworkReply类实例readyRead信号与槽函数httpReadyRead(),finished信号与槽函数httpFinished ();

3)当应答从服务器返回时,httpReadyRead()槽函数被调用,使用QNetworkReply类实例的readAll方法读取返回字符串;

4)当一次Http请求结束后,httpFinished ()被调用,使用QNetworkReply类实例的deleteLater方法做清除处理。

4.2.4 门禁考勤终端程序访问FTP服务器

使用QFtp类进行档案照片和即时拍照的传输,其中的login方法进行登录FTP服务器进行验证,get和put用来下载和上传文件,操作完成产生done信号。

5 设计方案的原型系统的实现与测试

基于上述设计方案实现原型系统,门禁考勤机采用S3C6410 ARM11开发板,连接13.56MHz RFID读卡器(RS232接口)、门禁控制器(RS485接口);烧写U-Boot-1.1.6、Linux-2.6.28内核、BusyBox-1.15.3文件系统,Qt 4.8作为界面开发库;服务器采用MyEclipse6.5开发后台服务接口,MVC库为struts2-2.1.8.1,ORM库为hibernate-3.1,安装JDK_1.6及JRE,使用Tomcat-6.0.18进行部署服务,安装mysql-5.1.73及其Java驱动。

系统测试使用一台服务器和多个门禁考勤机终端,经过与实际的实验室门禁系统集成,多人次使用运行稳定,界面显示正确无乱码,门禁考勤机LCD显示屏用户界面如图3所示,显示了员工基本信息、档案照片和即时拍照,并提示刷卡成功。

图2 门禁考勤机LCD显示屏用户界面

6 结束语与展望

本文针对门禁考勤系统的网络化的发展趋势,基于主流的ARM-Liux平台和JavaEE技术,设计与实现了门禁考勤机的原型系统。在此系统上可方便的增加密码方式或是指纹识别、面部识别等模块,后台服务与人事管理系统结合可以实现灵活的授权控制,方便了人事管理人员的查询、统计报表,因此系统整体结构设计具有良好的扩展性,可以为相关行业产品化的技术路线提供参考。

参考文献:

[1] 凌振宝,李娇阳,朴冠宇,等.基于RFID的考勤系统的设计与实现[J].吉林大学学报:信息科学版,2013,31(5):470-476.

[2] 高小明.办公楼群网络门禁管理系统的设计[J].计算机光盘软件与应用,2013(21):279-280.

[3] 郭盛,黄刚,王峰.校园卡门禁系统在高校实验室中的应用研究[J].中国现代教育装备,2013(19):8-10.

[4] 朱仕浪,王宜怀,冯德旺,等.基于流水线和RFID技术的快速门禁系统[J].福建农林大学学报:自然科学版,2013,42(5):552-556.

[5] 王月浩,刘杰,余洲,等.RFID在实验室门禁考勤上的应用[J].重庆文理学院学报:社会科学版,2013,32(5):132-135.

[6] 金贻,郑军,鄢吉多,等.门禁考勤管理系统的设计与实现[J].贵阳学院学报:自然科学版,2013,8(29):51-52.

[7] 李杰文.当前门禁考勤管理系统设计[J].信息与电脑:理论版,2013(9):16-17.

[8] 周细义,任亚运,肖祥,等.RFID技术在实验室管理系统中的应用研究[J].湖南理工学院学报:自然科学版,2013,26(3):40-44.

摄像头的图像采集使用V4L2 API获取一帧图像,访问设备文件进行读取后格式转换得到即时拍照,实现方法步骤为:

1)使用open系统调用打开“/dev/video0”设备;

2)使用ioctl系统调用设置摄像头视频数据格式(VIDIOC_S_FMT,如RGB565),并启动视频采集(VIDIOC_STREAMON);

3)使用read系统调用从视频中读取一帧图像至缓冲区,使用lib-jpeg提供的图像格式转换函数转换为jpeg格式;

4)使用close系统调用关闭摄像头设备。

4.2.3 门禁考勤终端程序访问后台服务接口

在Qt4提供的network API中,QNetworkAccessManager类提供了发送网络请求和接收网络应答的方法,QNetworkRequest类用来管理请求,QNetworkReply类用来接收应答,通过信号和槽的机制三者进行协同工作:

1)使用QNetworkRequest类实例构造Http请求头,调用QNetworkAccessManager类的post或get方法请求后台服务接口,返回QNetworkReply类实例;

2)使用connect方法绑定QNetworkReply类实例readyRead信号与槽函数httpReadyRead(),finished信号与槽函数httpFinished ();

3)当应答从服务器返回时,httpReadyRead()槽函数被调用,使用QNetworkReply类实例的readAll方法读取返回字符串;

4)当一次Http请求结束后,httpFinished ()被调用,使用QNetworkReply类实例的deleteLater方法做清除处理。

4.2.4 门禁考勤终端程序访问FTP服务器

使用QFtp类进行档案照片和即时拍照的传输,其中的login方法进行登录FTP服务器进行验证,get和put用来下载和上传文件,操作完成产生done信号。

5 设计方案的原型系统的实现与测试

基于上述设计方案实现原型系统,门禁考勤机采用S3C6410 ARM11开发板,连接13.56MHz RFID读卡器(RS232接口)、门禁控制器(RS485接口);烧写U-Boot-1.1.6、Linux-2.6.28内核、BusyBox-1.15.3文件系统,Qt 4.8作为界面开发库;服务器采用MyEclipse6.5开发后台服务接口,MVC库为struts2-2.1.8.1,ORM库为hibernate-3.1,安装JDK_1.6及JRE,使用Tomcat-6.0.18进行部署服务,安装mysql-5.1.73及其Java驱动。

系统测试使用一台服务器和多个门禁考勤机终端,经过与实际的实验室门禁系统集成,多人次使用运行稳定,界面显示正确无乱码,门禁考勤机LCD显示屏用户界面如图3所示,显示了员工基本信息、档案照片和即时拍照,并提示刷卡成功。

图2 门禁考勤机LCD显示屏用户界面

6 结束语与展望

本文针对门禁考勤系统的网络化的发展趋势,基于主流的ARM-Liux平台和JavaEE技术,设计与实现了门禁考勤机的原型系统。在此系统上可方便的增加密码方式或是指纹识别、面部识别等模块,后台服务与人事管理系统结合可以实现灵活的授权控制,方便了人事管理人员的查询、统计报表,因此系统整体结构设计具有良好的扩展性,可以为相关行业产品化的技术路线提供参考。

参考文献:

[1] 凌振宝,李娇阳,朴冠宇,等.基于RFID的考勤系统的设计与实现[J].吉林大学学报:信息科学版,2013,31(5):470-476.

[2] 高小明.办公楼群网络门禁管理系统的设计[J].计算机光盘软件与应用,2013(21):279-280.

[3] 郭盛,黄刚,王峰.校园卡门禁系统在高校实验室中的应用研究[J].中国现代教育装备,2013(19):8-10.

[4] 朱仕浪,王宜怀,冯德旺,等.基于流水线和RFID技术的快速门禁系统[J].福建农林大学学报:自然科学版,2013,42(5):552-556.

[5] 王月浩,刘杰,余洲,等.RFID在实验室门禁考勤上的应用[J].重庆文理学院学报:社会科学版,2013,32(5):132-135.

[6] 金贻,郑军,鄢吉多,等.门禁考勤管理系统的设计与实现[J].贵阳学院学报:自然科学版,2013,8(29):51-52.

[7] 李杰文.当前门禁考勤管理系统设计[J].信息与电脑:理论版,2013(9):16-17.

[8] 周细义,任亚运,肖祥,等.RFID技术在实验室管理系统中的应用研究[J].湖南理工学院学报:自然科学版,2013,26(3):40-44.

猜你喜欢
数据库
超星数据库录入证
本刊加入数据库的声明
两种新的非确定数据库上的Top-K查询
国外数据库高被引论文排行TOP10
国内主要期刊数据库