苏白莉,张洪华,苏楠
(1.江西电力职业技术学院教务处,江西南昌330022; 2.长沙理工大学计算机与通信工程学院,湖南长沙410004;
3.长沙电业局,湖南长沙 410015)
随着信息化产业的飞速发展,人们的生活逐渐实现了数字化,而园区一卡通正是数字化时代的一种体现.技术的进一步发展,使园区一卡通系统的智能化程度大幅度提高,而人们对这种智能化系统的可靠性和便利性提出了更高要求.因此,使用低成本、高效率、更安全的园区一卡通管理系统是一种满足时代发展的理念.本文结合实际,介绍了园区一卡通管理系统的研究概况,并设计了一种新的一卡通管理系统.
1970年,法国工程师MORENO Roland发明了IC卡,其基本思想是使用集成电路代替传统方法(如在卡片上印刷字符、嵌入磁条等技术)来记录信息[1,2].目前,一卡通管理系统从最初的门禁系统,已经逐渐发展为广泛应用的一卡通系统,几乎涉及单位运作管理的各个层面,包括考勤、访客、巡更、会议签到、消费、物品流通、停车场出入、电梯控制等多个子系统模块.
一卡通管理系统作为安防系统中的一个专业领域,在经历了构想、研发、生产、销售、使用、服务多个阶段后[3],现已发展成多元化、网络化、智能化的开放性系统.国内常见的一卡通系统如下.
(1)3C一卡通系统2005年由达实公司推出,其功能设计的基本理念是“一卡、一库、一网”,包括消费、考勤、工资、门禁等多个功能子系统,整个系统的开发相当成功.
(2)CAS一卡通系统平台软件2006年5月由亿源智能科技有限公司推出.这套系统集成了包括中心管理、消费、考勤、门禁、巡更、会议出勤、通道出入、领导查询、多媒体查询、Web查询等多个功能子系统.整体软件采用了多项新技术:全网络化设计;独立模块结构,各个子系统可以被分别安装在不同的电脑中;独立统一的中心数据库,可以将所有数据集中管理;独立的人事发卡管理,不会出现多处发卡、相互冲突的问题;独特的操作员权限管理,实现了操作员分模块、分部门管理;独特的数据查询算法,让操作员可以查询任何数据;自定义报表功能,让技术人员和工程商可以随机应变等.此外,CAS一卡通系统还具有独特的系统功能导航图设计、全个性化软件开发服务和分模块安装等优点.
(3)东方电气集团一卡通系统于2006年开始实施,其一卡通系统包括:全部的办公区门禁、员工食堂及小卖部消费、停车场收费3个子系统.其中,门禁系统已于2011年5月份全部实施完成,而食堂消费系统仍采用原消费管理系统,主要原因是新的消费管理软件的实用性较差.
国内同类产品的模型都为“一卡、一库、一网”:卡是指IC卡(如射频卡、接触式IC卡、磁条卡),根据成本和安全等级来定制相应的读卡器;库是指数据库;网指的是以太网或其他介质的网络等.本系统也采用了“一卡、一库、一网”的理念,基于客户/服务器(C/S)模式,采用了Philips Mifare 1 S50卡,SQL sever 2000数据库,以太网,服务器通信协议为TCP/IP.
在功能设计方面,本系统主要是针对居民小区小成本、高效率的特点来特别定制的,除了权限管理、货币数据高层管理外,还融合了门禁、车库、用户信息查询、物业管理、出勤等具体的应用管理,充分满足了小区居民和管理人员对便利性和安全性的要求.
在技术创新方面,新系统的服务器端采用了基于delphi VCL[4]的组件,使用Indy10作为服务器与客户端通信的控件,采用dbExpress连接数据库,使得编写程序更为安全高效,程序的各个功能模块能够各司其职、互不影响.终端可以是桌面型电脑或特定的嵌入式设备(如W indows CE或W indows XP等操作平台,其中W indows CE环境下要求单独编译).数据传输方面(包括读卡器与终端、终端与服务器),新系统定制了灵活的加密方式(用户自定义加密),可以使用户数据更加安全,并在TCP/IP协议基础上,加入了应用层协议,使数据传输更加稳定可靠.同时,设置了不同的权限级别操作,分部门授权,使得非法人员不能随意破坏整个管理系统.
本系统最大的特点是服务器采用了多线程编程结合合理的自定义应用层协议,使服务器端与客户端通信更加稳健高效,这在delphi平台下的C/S编程中是很少见的.
园区一卡通系统是用于现代化园区管理的系统,其主要功能包括园区大楼门禁管理、园区地下车库出入管理,以及园区消费帐户开设、充值、消费刷卡、消费结算等.
为了满足园区对安全、实用和人性化的要求,有必要进行详细的需求分析.其中,设计初期应优先考虑系统的数据组成,在了解实际情况后,确定其业务流程,进而确定系统的各个处理对象,以及系统所需的功能.
系统需要处理的对象主要有:
(1)园区人员基本信息(Carduser);
(2)值班室基本信息(Management);
(3)小区日常事务管理基本信息(Daily-Manage);
(4)主控门信息(GateRec);
(5)车库信息(GarageRec);
(6)消费信息(ConsumptionRec);
(7)“个人卡”基本信息(Card);
(8)园区管理员(Operator).
系统功能模块如图1所示.
图1 系统功能模块
根据系统的特点,将其分为3层:数据库为最上层,服务端为中间层,客户端为最底层,读卡终端作为客户端的必需硬件设施同为底层,如图2所示.这种层次结构有利于数据的集中管理和安全性控制,在设计时,由于其功能明确,使得设计简化,有利于系统的设计与实现.
在进行系统整体设计时,考虑到实时性,系统采用了C/S模式,而通信介质则使用了以太网,通信协议TCP协议可以进行少量数据的传输,以确保数据的安全.为了节省时间与成本,将开发环境确定为delphi 2007,这样就可以利用delphi的VCL设计来减少界面开发所占用的时间.另外,系统的运行环境为W indows XP,使用的数据库为SQL Server 2000.
图2 系统层次模块
数据库设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键,包括概念模型设计和新系统流程两个部分.其中,概念模型可用ER图[5]描述,如图3所示.
图3 数据库概念模型ER图
根据需求分析可知,每一个对象都可以确立对应的数据表,而表中各属性即为对象所拥有的信息.系统使用的数据库为SQL Server 2000,命名为CMSDB,按照需求分析将所得的对象转换为表加入数据库中.
服务端在整个系统中起着交通枢纽的作用,占有极为重要的地位.服务器既要管理和控制数据系统,也要控制传输系统,其编程相对比较复杂,也较难调试.要求其具有数据库连接、终端数据传输、数据合理性分析和操作权限分析的功能.为了增加安全性与稳定性,将帐户控制与管理具体功能分布到终端程序设计,并为其留出相应的编程接口.
服务器程序中采用Indy10作为与客户端通信的控件,使用dbExpress连接数据库.
dbExpress主要控件功能说明如下.
SQLConnection1为TSQLConnection连接数据库;SQLStoredProc1为TSQLStoredProc存储过程[6],在管理员登录、注销等时使用; sdsetUserOnline为TsimpleDataSet在线用户列表; sdsetUserAcount为TsimpleDataSet用户帐号管理; SQLQuery1为TSQLQuery,其他基本连接操作,如还原与备份.
在Indy 10中使用了IdTCPServer,作为服务端TCP的连接控件,该控件将Socket类连接操作封装起来,使程序编写方便而且运行更稳定.由于其为阻塞式[7]控件,因此将连接后处理操作转换为线程操作.服务端线程执行的数据处理模型IdTCPServerExecute过程如下.
其中数据包为应用层自定义协议,其完整结构如图4所示.
图4 应用层自定义协议
为了保证C/S连接后数据传送的安全性,需要对数据段进行加密处理.同时为了加强数据传输的稳定性,程序中加入了心跳包处理,以解决TCP长连接掉线问题.
由于程序启动时要事先连接数据库,因此在服务端程序启动之前,首先要对服务端数据库进行连接设置,在本设计中附加了一个配置程序(请参见Connection_SetupTool工程),连接成功后生成Config.ini配置文件.
配置文件格式如下:
由于车库管理与大楼正门门禁系统相似,都有手工登入或读卡器登入,也可以查询人员(车辆)的通行记录,因此将车库管理系统归于门禁系统进行探讨.
在与服务器通信时,使用服务端定义好的通信协议,包括通信控件TIdTCPClient和TidAntiFreeze,还有读卡器连接的串口通信控件Spcomm[8].其中,TIdTCPClient是与服务端TIdTCPServer对应的Indy 10控件,其连接方式也为阻塞式,所以每次会话应由客户端发起.当服务端处理完后,客户端接收返回的数据,在服务端处理且未返回数据时,客户端只能等待,不进行其他操作,包括界面输入响应.
查询通行记录后,返回记录字串,包括用户名、车牌号和通行时间等记录信息,实现这一功能的函数QueryforRec()程序流程如图5所示.
该流程作为客户端连接服务端的一般通信模型,在消费刷卡、卡务管理等操作也同样适用,只需在具体使用时改变包头类型和数据包大小即可.消费刷卡客户端的基本功能包括手工刷卡与定值刷卡、操作员登录、客户端运行日志、当日消费统计和消费汇总等.
图5 查询通行记录的函数程序流程
设计的难点是确定刷卡数据流程.在本系统的设计中,先发送串口信息并打开超时定时器(100 ms),在串口控件读出卡号、序列号与金钱值后,将数据发送到服务器确认,若数据有效且完整,则通过串口写卡,并在写卡成功后返回数据库保存消费信息与更新卡的钱款数额.其中,串口通信控件为Spcomm,其操作方式与门禁系统大同小异,详细流程如图6所示.
卡务管理端的基本功能包括发卡、充值、挂失、解除挂失、换卡与卡存款数额修复、退款、退卡、用户注册、用户注销等,这与服务端连接的核心代码和门禁操作相似,都使用了服务端通信模型,所以代码大致相同.
图6 消费刷卡程序流程
本系统采用了自上而下设计的方法,在设计时,首先描绘出系统总体框架,再按功能将其划分成多个子模块,专门针对用户数据安全性和稳定性要求较高的特点,设计了较完善的数据库、服务端和多个客户端.采用了delphi VCL组件,使编写程序更为安全高效.本系统实现了门禁、消费等功能,为今后大型一卡通系统的设计提供了借鉴.
[1]陈大才.射频识别(RFID)技术[M].北京:电子工业出版社,2001:7-11.
[2]WONG JK,LIH,WANG SW.Intelligentbuilding research: a review[J].Automation in Construction,2005,14(1):143-159.
[3]ZAHEERUDDIN A,MANDVIWALLA M.Integrating the supply chain with RFID:a technical and business analysis[J].Communications of the AIS,2005,15(3):393-426.
[4]MARCO Cantù.Delphi 2009 Handbook[M].Italy:W intech Italia Srl.,2009:329-359.
[5]萨师煊,王珊.数据库系统概论[M].第四版.北京:高教出版社,2008:23-25.
[6]桑德里克.SQL Server存储过程与XML编程[M].陈浩争,谢俊,石朝江,译.第2版.北京:清华大学出版社,2003:70-72.
[7]O’Reilly.Delphi in a nutshell[M].北京:中国电力出版社,2001:103-108。
[8]赵兰涛,苏彦华.Delphi串口通信技术与工程实践[M].北京:人民邮电出版社,2004:7-17.
(编辑白林雪)