APP下载

基于NFC技术和云服务的新型门禁系统设计与实现

2016-12-27

实验室研究与探索 2016年1期
关键词:和云门禁系统云端

孙 恒

(山东大学 外国语学院现代教育技术实验室,山东 济南 250100)



基于NFC技术和云服务的新型门禁系统设计与实现

孙 恒

(山东大学 外国语学院现代教育技术实验室,山东 济南 250100)

目前主流门禁系统中最普遍使用的非接触式感应IC卡,虽然发放灵活,但存在操作步骤繁琐、制卡成本高且易被复制、携带不便、易折损、卡片丢失后无法挂失等缺点。针对以上问题,使用目前流行的NFC技术和已经非常成熟的云端服务,设计并实现了基于NFC技术和云服务的新型门禁系统。以Android智能移动平台为例,通过将具有NFC功能的智能手机作为开锁介质,与运行在微软Windows Azure云服务上的新型门禁系统进行数据交互,完成授权身份验证、实现开关门功能,使具有NFC功能的智能手机代替传统实体钥匙和IC卡作为门禁系统开关门锁成为现实。

NFC; 云服务; Windows Azure; 门禁系统; Android

0 引 言

随着社会经济和科技的发展,智能化门禁系统越来越多地应用于社会各方面。门禁系统不仅可以自动开关门锁,还具有记录进出日志、查询进出人员资料等功能。目前广泛使用的电子磁卡锁、电子密码锁,它们本身的缺陷也很明显,磁卡锁的问题是信息容易复制,密码锁的问题是密码容易泄露,又无从查起,从而使得他们的安全系数都很低。近几年随着科技的进步,多种新技术用于门禁系统,包括指纹识别、虹膜识别、人脸识别等。它们都属于生物识别技术范畴,具有唯一性和不可复制性,成为相对安全的身份识别方法,但由于设备精密、价格昂贵等问题导致这些技术难以普及,只能用于保密等级要求高的地方,并不适合学院办公室、实验室等环境使用[1]。

得益于移动通讯网络的日趋发达和Android智能手机的快速普及,无线网络支持的上下行数据速率不断提高,Android智能手机逐渐成为人们身边不可缺少的信息终端。具有NFC功能的智能手机在市场上占据主导地位,基于NFC技术的应用越来越受到重视。

综合上述分析,本文设计并实现了一种基于NFC技术和云服务的新型门禁系统。用户使用具有NFC功能的智能手机向由云服务提供的门禁系统申请开门权限,在系统分配门禁权限后即可用智能手机打开门锁。使用NFC技术和云服务的新型门禁系统具有安全、方便、成本低等多项优点,是未来新型门禁系统的发展方向[2]。

1 基于NFC技术和云服务的新型门禁系统架构设计

由于需要面向用户提供不间断的7×24 h门禁服务,所以系统的稳定性和安全性处于首要位置。我们采用目前流行的Windows平台应用程序Visual Studio 2015预览版作为程序开发集成环境,使用该环境进行移动端和云端应用程序的开发,数据库采用微软的Windows Azure云服务平台中的SQL Azure应用进行系统开发[3]。

1.1 系统技术架构设计

1.1.1 NFC技术

门禁系统中使用到的近距离无线通讯技术(Near Field Communication,NFC),由飞利浦公司和索尼公司等共同开发的一种非接触式识别和互联技术,能在短距离内与兼容设备进行识别和数据交换。工作频率为13.56 MHz。NFC提供了一种简单、触控式的解决方案,可以在移动设备、消费类电子产品、PC 和智能控件工具间进行近距离无线通信。NFC技术同时也符合ISO/IEC IS 18092国际标准、ECMA-340标准与ETSI TS 102 190标准[4-5]。

NFC共有3种工作模式:

(1) 卡模拟模式。该模式将NFC设备模拟成一张IC卡。在此种方式下,有一个极大的优点,那就是卡片通过非接触读卡器的RF域来供电,即便是NFC设备没电也可以工作。

(2) 点对点模式。该模式用于数据交换,且传输距离较短,传输速度快,功耗低。本系统就是使用该模式,用于智能手机与门禁系统NFC读卡器进行相关数据交换。

(3) 读卡器模式。该模式将NFC设备作为非接触读卡器使用,从电子标签上读取相关信息。

1.1.2 云服务技术

系统选用了微软的Windows Azure云服务作为服务器平台。Windows Azure是微软公司开发的云平台,为用户提供在微软云数据中心内的数据存储、云计算、网络和多种云应用等服务。用户可在Windows Azure上构建多种与自己相关的云应用,还可利用开放架构,开发与用户本地服务器、计算机和其他工具相连的应用[6]。Windows Azure云平台技术架构见图1。

Windows Azure云平台主要包含3种服务:

(1) Windows Azure服务。Windows Azure是云服务的操作系统,提供开发、服务宿主和服务配置管理功能,其中包括提供基于虚拟机的计算服务和基于Blobs等的存储服务。

图1 Windows Azure云平台技术架构

(2) SQL Azure服务。SQL Azure是云端数据库,是建立在SQL Server技术上的基于云计算的数据库服务,由微软基于云进行托管,提供的是可扩展、多租户、高可用的数据库服务。

(3) Windows Azure AppFabric服务。AppFabric是连接Windows Azure和SQL Azure的中间件,帮助开发人员在云部署、内部部署和托管部署之间架起桥梁,帮助开发人员在云端连接应用程序和云计算服务,应用程序可是运行在Windows Azure、Windows Server、Java等平台上。

在实际应用中,用户使用自建服务器的购置成本和运营成本较高,而使用云服务器的成本要大大低于自建服务器。以本系统为例,在自建服务器条件下,购置普通级别服务器价格在3万元左右,SQL Server多用户正版软件的价格在1.8万元左右,仅前期软硬件投入就达到5万元,这并不包括系统在后续使用中出现的软硬件维持费用。而使用WindowsAzure云平台则没有前期投入成本,无终止服务费用,只为使用的服务付费,且按照使用的分钟计费。使用WindowsAzure云平台中标准版SQL数据库一年费用约0.3万元,云服务费1年约1万元,总计1.3万元。最重要的是云服务器的稳定性要远远高于自建服务器,因为其核心技术由微软云平台技术人员完成,不再需要用户抽调专人对操作系统软件和服务器硬件进行前期和后期运行、升级维护[7]。

1.2 系统功能架构设计

基于NFC技术和云服务的新型门禁系统采用框架设计,分为3层体系结构,实现跨平台服务。系统包括4个功能层次:用户接入层,应用服务层、业务管理层及系统支撑环境。通过管理系统平台支持整体业务。管理平台采用模块化管理设计,包含各个功能模块及子系统应用:数据库管理、日志管理、用户管理、门禁核心系统管理、通讯接口管理、配置模块等。在此基础上还可以进一步进行系统功能扩展如来访管理、考勤管理等模块。系统包括云端WEB模式和本地应用程序两种管理模式,可以使管理员人员更加便捷地进行系统维护和审核[8]。系统功能架构见图2。

图2 系统功能架构

基于NFC技术和云服务的新型门禁系统利用先进的NFC技术和互联网云服务进行数据通信。系统物理架构见图3。系统充分使用云服务器进行负载平衡和分布式数据处理,技术性能稳定可靠,费用低,是目前主流的云端的解决方案。具有NFC功能的智能手机通过移动3 G、4 G网络或者无线局域网与在云服务器端运行的门禁系统进行身份认证和数据交互通讯。云服务器通过VPN专用网络对门禁主控制器、门锁控制器进行开关门操作。为防止可能会出现的网络异常导致门禁系统出现故障,特别将本地正在运行的一台服务器作为门禁系统备份服务器使用,每天通过作业计划自动地将云端数据库备份至本地数据库,并且在云数据库出现数据更改时,立即自动同步修改本地备份数据库的相应数据,始终保持本地数据库与云端数据库的一致性和完整性。在云端网络出现故障无法使用时,本地PC主控端和本地数据库服务器可以立刻自动接管门禁系统,完成门禁系统数据库由云端提供服务转为由本地数据库系统提供服务,实现网络端与本地端控制的无缝切换[9]。

图3 系统物理架构

1.3 系统运行流程设计

用户通过智能手机APP程序进行门禁管理系统注册、绑定NFC终端、申请门禁权限等操作。系统管理员分配门禁权限后,用户使用NFC终端作为钥匙即可打开门锁,通过移动终端与门禁的结合,实现了简单快捷的开锁方法[10-11]。

(1) 用户智能手机移动端APP程序注册流程。见图4。用户首先启动移动端的APP程序,填写对应

图4 移动终端注册流程

的详细注册信息通过移动网络或者无线局域网络提交给云服务器进行处理。管理员通过云端信息设定,判定注册申请是否合法。如果不合法,返回信息,并在移动端提示错误信息,并结束注册操作;注册申请合法,则在移动终端进行下一步数据统计。用户在智能手机移动端注册终端号码及使用APP读取移动终端的NFC识别码,将数据发送给云服务器端,并使用服务器返回的验证码,完成移动终端号码及NFC识别码的绑定。经云服务器端核实验证后,如果不一致,则返回绑定失败提示;核实验证一致时,则向移动端发送绑定成功提示,完成整个注册过程。

(2) 门禁系统开锁流程。见图5。门禁系统开锁分为2部分,一部分为移动终端开锁,另一部分为NFC门禁系统开锁。移动终端开锁:用户启动移动终端的APP程序,通过输入密码连接云服务器端进行用户合法性验证,不合法,提示错误信息,并退出操作;用户信息合法,则由移动终端APP显示开锁按钮,并同时启动移动端NFC功能准备与门禁系统的NFC读卡器进行数据通讯。NFC门禁系统开锁:门禁系统的NFC读卡器一直处于通电工作状态中,轮询是否侦测到外界NFC信号。如果侦测到NFC信号,读取移动终端的NFC信息并同时判断门禁系统是否与云端联网,如出现断网现象,就自动连接本地门禁数据库进行开门权限验证;如果系统可以与云端联网,则将信息上传至云端数据库进行开门权限验证。经系统验证、信息一致后,由系统发送开锁指令到门锁控制器,进行开门,并将开门日志写入系统数据库中;如信息不一致,则提示无权限,并退回。

图5 门禁系统开锁流程

1.4 系统云数据库设计

SQL Azure是以微软SQL Server 2008为基础,建构在Microsoft Azure云操作系统上、运行云计算的关系数据库服务,它可以提供网络型应用程序数据存储的服务。外部应用程序或服务可以不用在乎数据库实际存储位置,只需利用SQL Fabric壳层服务即可连接到对应的服务器,虽然每一次连接所提供服务的服务器可能会不同,但是都能保证云存储的高度可用性[12]。整个数据库中最主要的表为信息表NFCCard _info,出入信息表NFCCard_record。信息表NFCCard _info中,NFC_id作为主键来对NFC卡进行唯一性确定。其余字段作为补充条件对用户其他信息进行登记。出入信息表NFCCard_record中,Record_id作为主键,其他相关记录信息作为补充内容标示信息的唯一性。具体内容见表1、表2。

2 基于NFC技术和云服务的新型门禁系统实现

2.1 移动终端系统实现

装有APP开锁程序的智能手机移动终端,通过3G、4G网络、无线网络与门禁管理系统数据库进行网络通信,完成数据交互任务。用户使用登录/注册功能向云端门禁系统申请注册开锁程序,并且绑定用户和NFC识别码,为凭借移动终端开启门禁系统做准备。在成为合法使用门禁系统的用户后,用开/关锁功能将移动终端作为开锁介质进行开门关门操作。在进行与程序相关的其他操作,使用设置功能如更改登录密码等。管理员在没有台式电脑环境下也可以对门禁系统的电子钥匙开门权限进行管理,通过在移动端的APP程序,使用管理员账号登录后,可以对门禁权限和账号进行管理[13]。

表1 信息表NFCCard_info

表2 出入信息表NFCCard_record

移动端APP程序需要与云端服务器进行数据连接,在.Net开发环境下,连接数据库最常用的方法是使用ADO.Net[14]。在SQL Azure环境下,ADO.Net可以继续使用,不用学习新的知识与技能就可以很容易的连接到SQL Azure数据库上,减少了单独学习云应用开发的成本。使用程序连接到SQL Azure,需要使用System.Data.SqlClient.SqlConnectionStringBuilder类,代码如下:

private string GetDbConnection() //连接云端数据库

{

SqlConnectionStringBuilderconnBuilder =

newSqlConnectionStringBuilder();

string server = "unjikh4kim.database.windows.net"; //经过加密的云端数据库地址

connBuilder.DataSource = server;

connBuilder.InitialCatalog = "TestDB"; //云端数据库名

connBuilder.Encrypt = true;

connBuilder.TrustServerCertificate = true;

connBuilder.UserID = "sqladmin"; //云数据库用户名

connBuilder.Password = "pass@word"; //从云服务器端取得的经过加密的密码

returnconnBuilder.ToString();

}

private void ExcuteSQL() //管理员使用移动端进行数据管理时,使用连接字符串,执行SQL语句

{

using (SqlConnection conn = new SqlConnection(GetDbConnection()))

{

using (SqlCommand command = conn.CreateCommand())

{ // 插入数据

command.CommandText = String.Format

("INSERT INTO NFCCard_info(NFC_id, NFC_number,NFC_tape) " +

"values ({*}, {*}, {*})", int, int, int);

introwsAdded = command.ExecuteNonQuery();

DisplayResults(command);

}

}

}

在移动终端与云端服务器完成身份验证后,自动启动移动终端的NFC功能与门禁系统的NFC读卡器进行数据交换认证。在Android平台中,NFC系统模块运行在一个名为com.android.nfc的进程中,该进程对应的应用程序文件名为Nfc.apk。Nfc.apk源码中包含一个NfcApplication类。当该应用启动时,NfcApplication的onCreate函数将被调用。正是在这个onCreate函数中,NFC系统模块的核心成员NfcService得以创建。下面是NfcService的构造函数:

[-->NfcService.java::NfcService]

public NfcService(Application nfcApplication) { //NFC系统模块重要成员

mNfcTagService = new TagService(); //TagService用于和NFC Tag交互

mNfcAdapter = new NfcAdapterService(); //和NfcService的客户端交互

mExtrasService = new NfcAdapterExtrasService(); //和卡模拟客户端交互

sService = this; mContext = nfcApplication;

mDeviceHost = new NativeNfcManager(mContext, this); //与NFC模块交互

HandoverManagerhandoverManager = new HandoverManager(mContext);

mNfcDispatcher = new NfcDispatcher(mContext, handoverManager); //发送nfc tag通知

mP2pLinkManager = new P2pLinkManager(mContext, handoverManager,

mDeviceHost.getDefaultLlcpMiu(), //处理LLCP相关工作

mDeviceHost.getDefaultLlcpRwSize());

mSecureElement = new NativeNfcSecureElement(mContext); //和SE交互

mEeRoutingState = ROUTE_OFF;

mNfceeAccessControl = new NfceeAccessControl(mContext); //判断操作权限

ServiceManager.addService(SERVICE_NAME, mNfcAdapter); //注册名为nfc的服务

newEnableDisableTask().execute(TASK_BOOT); //初始化工作

}

2.2 管理系统各功能实现

基于NFC技术和云服务的新型门禁系统既支持云端操作又支持本地PC电脑端操作,系统功能主要由以下几个模块组成。

(1) 登录模块。管理员可以选择密码登录或者启动移动终端NFC功能进行刷卡确认登录系统进行相关数据操作,如果云端服务器登录失败,可以使用PC端的管理程序登录本地数据库,由于云端数据库与本地数据库进行实时同步,所以可保证数据的一致性。

(2) 设备参数设置模块。用于添加、删除门禁系统控制器,配置控制器的IP地址。设置控制器管理区域。添加、修改门的控制方式、开门延时等。设置NFC读卡器属性等功能。

(3) 用户权限操作模块。设置部门信息和个人用户信息。审核移动端APP提交的门禁权限申请。NFC终端权限的分配及管理。必要时进行考勤功能的添加。可对未分配权限的用户进行查询。

(4) 基本操作模块。添加删除门禁系统管理权限,添加指定用户对选定门的进出权限并上传到总控制台。复制门和用户权限。系统开门详细记录查询。

(5) 常用工具模块。如修改登陆用户名和密码,备份/压缩数据库,同步云端数据库等基本常用功能。

(6) 考勤管理功能模块。适用于实验室以及学校各部门的考勤管理,可以设定自动开始考勤开始时间和考勤结束时间,具有考勤自动统计和自动按需生成报表功能。

(7) 扩展功能模块。可以记录管理员每一次按钮事件,查找每一次按钮事件的具体时间和日志查询功能等功能。并支持其他数据开发操作。

2.3 云服务及数据库功能实现

系统管理员通过Windows Azure管理平台对门禁系统的云平台进行管理控制。首先创建名为door-access的云服务进行整体服务框架建设。接着进行生产部署,通过上传包括门禁应用主程序和相应的配置,实现云服务的正式运行发布。Windows Azure生产部署速度非常迅速,以保证从资源配置、负载平衡到运行状况监控的持续可用性。其次,利用平台SQL数据库新建door-access门禁系统的数据库。从云管理端获取到经过加密后的数据库用户名和数据库链接地址,通过本地端的Visual Studio 2015或者本地SQL Server管理功能对云端数据库进行建表、修改等操作。然后,建立云储存帐户进行应用程序和数据库等相关资源的存储,并且通过建立名为door-access的作业集合,来完成云数据库和本地数据库之间相关同步操作,在云平台端的数据库由云平台自动实现定时定量异地多点备份,免于出现异常故障导致的系统崩溃。最后,使用流量管理器对访问云端的数据流进行阈值相关设置,保证网络访问流量不会过载。至此,云端服务及云端计算就已经完成,门禁系统可进行正常工作运转[15]。

3 基于NFC技术和云服务的新型门禁系统测试

3.1 移动终端开锁测试

用户使用已经在门禁系统注册并且经管理员验证的移动终端,在任意网络连接状态下,只要输入开关锁个人密码,通过网络云服务器进行确认,由移动终端自动开启NFC功能后,再将手机靠近门禁系统NFC读卡器后即可开关门锁。省去了携带IC门卡、实体钥匙的麻烦。如果用户手机丢失或者被其他人未经授权使用,但由于其他人不知道使用者的手机锁屏密码和门禁开锁密码,仍然无法打开门禁系统。

3.2 移动终端管理测试

门禁系统管理员不在PC端时,使用移动端APP程序仍可以对用户和用户权限进行管理,不再仅限于台式电脑端进行管理操作。管理员通过输入管理账号及密码,进入移动端管理界面。在开门权限管理栏目中,可以选择单个删除或者批量删除发给用户的绑定权限及相关用户权限信息。

4 结 语

NFC技术和云服务用于门禁控制管理系统,使用户可以更好地与门禁系统进行交互,同时也给管理人员带来了先进、智能、快捷的运行方案。目前,随着楼宇智能化程度的提升,网络型门禁系统已越来越多地被人们所采用,门禁系统的功能越来越强大,它已经不仅仅是单一的出入口控制,而且还涉及到安防报警、物业管理、停车场出入控制、电梯运行控制等方面,可实现与防盗报警系统、消防系统、电梯系统等集成联动控制的功能。基于NFC技术和云服务的门禁系统能为上述系统的集成应用提供详细的解决方案,具有重要现实的意义。在后续开发工作中,将为基于NFC技术和云服务的新型门禁系统扩充NFC移动支付功能,使其成为真正具有多种功能的移动终端一卡通[16-17]。

[1] 王令群,何世钧,袁小华,等. 基于J2EE和云计算的智慧社区架构设计[J]. 实验室研究与探索,2014,33(1):123-127.

[2] 刘 武,孙东红,任 萍. 基于移动智能终端管理的远程监控与管理技术[J]. 实验技术与管理,2013,30(4):58-61.

[3] 杜 娥. 基于云计算的信息化网络的研究与探索[J]. 实验技术与管理,2014,31(5):160-161.

[4] 王 淼. NFC技术原理与应用[M]. 北京:化学工业出版社,2014.

[5] 赵 波. Android NFC开发实战详解[M]. 北京:人民邮电出版社,2014.

[6] 徐子岩. 实战Windows Azure:微软云计算平台技术详解[M]. 北京:电子工业出版社,2011.

[7] 赵书兰. Windows Azure云计算实践[M]. 北京:电子工业出版社,2014.

[8] 李满玲. 基于云服务的NFC门禁监控系统的设计[J]. 吉林师范大学学报(自然科学版), 2014,35(2):101-104.

[9] 严士超,果 莉,李 明,等. 基于泛在网技术的实验室智能门禁考勤管理系统的研究[J]. 实验技术与管理,2014,31(5):162-163.

[10] 郭 寰. NFC技术与NFC手机测试方法[J]. 信息通信技术,2012(4):58-62.

[11] Thomas L. Norman. Electronic Access Control[M]. United Kingdom: Butterworth-Heinemann,2011.

[12] Itzik Ben-Gan. SQL Server 2012 T-SQL基础教程[M]. 北京:人民邮电出版社,2013.

[13] Tom Igoe. NFC:Arduino、Android与PhoneGap近场通信[M]. 北京:电子工业出版社,2014.

[14] 邓凡平. 深入理解Android.Wi-Fi、NFC和GPS卷[M]. 北京:机械工业出版社,2014.

[15] 吴 剑,梁 琦,马珂洁. 微软云计算:Microsoft Azure开发与应用[M]. 北京:电子工业出版社,2014.

[16] 陈慧芬,卢庆武. 云计算在高校机房管理中的应用[J]. 实验室研究与探索,2013,32(7):213-216.

[17] 李郁峰,高小明. 基于网络的低成本实验室门禁管理系统[J]. 实验室研究与探索,2010,29(6):169-171.

Design and Implementation of New Access Control System Based on NFC Technology and Cloud Service

SUNHeng

(Modern Educational Technology Lab School of Foreign Languages,Shandong University, Jinan 250100, China)

With the development of the mobile communications business, mobile communications and the Internet are combined more closely. Mobile terminal as a portable device, in addition to basic call function, also hosts a growing number of other useful features. In the current mainstream access control system non-contact sensor IC cards are most commonly used. Although issuing flexible, there are many disadvantages, such as complicated operating steps, high fabrication cost and easily copy, inconvenient to carry, easy folded, unable to report the loss after the card is lost and other shortcomings. To solve these problems, the paper proposes a new access control system based on NFC technology and cloud services. In Android smart mobile platform, for example, by having the NFC-enabled smart phone as unlock new medium access control system running on Microsoft’s Windows Azure cloud services for data exchange, the authorization authentication can be completed to achieve door switch function, so the NFC function smart phone can replace the traditional physical key and IC card access control system, and switch lock become a reality.

NFC; cloud services; Windows Azure; access control system; Android

2015-05-29

孙 恒(1981-),男,山东枣庄人,硕士,实验师,主要研究方向为计算机技术应用与网络信息技术。

Tel.:15588823755;E-mail:sunheng@sdu.edu.cn

TP 311.1

A

1006-7167(2016)01-0114-07

猜你喜欢

和云门禁系统云端
基于多种生物特征识别的RFID门禁系统设计
云端之城
基于AI智慧人脸门禁系统的硬件系统设计
基于单片机的安全门禁系统研究设计
基于定位系统和云计算的电缆线路智能巡检系统
行走在云端
云端创意
2017多媒体和云研讨会
基于单片机的小区门禁系统设计
花婆婆和云