APP下载

一种异构主从模式数据同步园区停车系统的设计与实现

2016-05-09冯凌颖陈耀武蒋荣欣

计算机应用与软件 2016年4期
关键词:岗亭白名单服务中心

冯凌颖 陈耀武 蒋荣欣

一种异构主从模式数据同步园区停车系统的设计与实现

冯凌颖 陈耀武 蒋荣欣

(浙江大学生物医学工程与仪器科学学院 浙江 杭州 310027)

针对目前大多城市的园区停车系统中岗亭车辆出入管理的缺陷,从总体需求、功能模块和实现方式出发,设计一种异构主从模式数据同步的园区停车管理系统。采用.NET框架的C#开发,系统包括数据服务中心、中心客户端和岗亭客户端三个部分。数据服务中心采用Windows IIS服务器的WebService部署,中心数据库使用SQL Server,岗亭本地数据库采用Access数据库。实验结果表明,该系统利用中心和岗亭之间的数据库同步,有效地使系统在网络故障下各岗亭仍能正常工作,并能在4秒左右时间内能完成所有数据同步,具有很高的实用价值。

停车管理 WebService 分布式数据库 数据同步

0 引 言

近年来,随着科学的进步和国民经济的高速发展,车辆是人们出行以及货物运输的重要交通工具。随着车辆数目的急剧增加,不仅城市公路的管理建设需要加强,而且各种小区和停车场对进出车辆的管理也显得尤为重要。目前比较典型的停车管理系统主要采用的是摄像头监控并识别车牌、道闸的进出放行以及统一的管理软件[1-3]。本文所设计的是一套园区停车管理系统,具有车牌识别、道闸的全自动管理,采用异构主从模式的分布式数据库层、WebService服务层和客户端应用层的三层模型。引入数据同步模块,将各岗亭数据库与中心数据库进行同步,支持岗亭断网等故障下仍然能正常工作,一定程度上降低了管理人员和维护人员的工作强度,并提高了车辆出入放行的效率,具有很好的安全保障和实际应用价值。

1 停车管理系统的整体架构

针对目前的比较主流的园区或停车场设计,一般有多个(2~20个)主要出入口,每个出入口岗亭有进出两个车道,并且有两名岗亭管理员进行操作。在每个岗亭和中心服务器安装一套园区停车管理系统,实现对园区内每个岗亭两个车道的进出车辆进行控制和管理。整个系统的模型如图1所示。

图1 园区停车管理系统的模型图

从安全、效率和可操作性上考虑,主要实现以下功能:

1) 每个岗亭有双车道:一个岗亭配置一台工控机,一个车道配置一台中等配置以上的个人显示器和打印机;

2) 每个岗亭安装两个高清抓拍摄像机(分别对应两个车辆),只要有车辆进出岗亭即可将车辆的车牌照片采集并输送到工控机的车牌识别功能处;

3) 每个岗亭一个车道配备一名执勤工作人员,执勤工作人员通过系统的岗亭客户端查看车牌识别结果;如果无法识别车牌,执勤人员可以手动输入车辆号码,根据数据服务中心提供的车辆信息决定放行,禁止通行或者打印临时通行证放行,执勤工作人员也可一键开启道闸放行;

4) 数据服务中心负责中心数据库的白名单、违章信息、中心管理人员权限和执勤人员信息的录入,修改,删除和查询等操作;数据服务中心提供车辆信息的查询,包括当前园区内车辆和车辆通行的历史信息;

5) 正常情况下所有岗亭访问中心数据库,当出现网络故障的情况下,单个岗亭能切换到访问本地数据库继续正常工作;中心管理员可以手动通过管理中心客户端将中心数据同步到各个岗亭,岗亭本地系统也可自动同步本地和数据服务中心的数据,此外,系统也可设定定时进行数据同步。

针对以上功能分析,本文设计的园区停车管理系统主要分为数据服务中心、管理中心客户端、岗亭本地系统三个部分[4-6]。其中岗亭本地系统包括工控机、高清摄像机、打印机、LED显示器、道闸和地感线圈。其整体框架如图2所示。

图2 园区停车管理系统的主要软件框架图

1.1 数据服务中心

数据服务中心提供各个岗亭对车牌号码的信息查询,各个岗亭人员的执勤情况,以及整个区域的车辆进出历史信息。中心管理员对数据服务中心内部的数据进行更新,包括车辆白名单、人员在岗信息、人员执勤卡信息、岗亭信息、用户信息等。数据服务中心通过网络建立和各个岗亭的直接数据连接,当管理中心客户端发起一键应急开启或关闭道闸时,可以立即响应该指令。

1.2 管理中心客户端

中心客户端的主要功能有白名单的录入、违章数据的查询、用户权限的增删改查、对车辆信息的查询(包括实时在园区内的车辆和历史车辆进出信息)、当前工作人员执勤信息的查询等功能。

当出现紧急情况时,中心客户端可以启动一键紧急开或者一键紧急关闭功能,通过数据服务中心已经和岗亭客户端建立的网络连接,打开全部道闸或者关闭全部道闸。

1.3 岗亭客户端

岗亭设在各个道闸的路口,负责车辆从驶进道闸直到车辆离开道闸的整个动作过程的数据交互工作。当有车辆压到地感线圈时,工控机启动高清摄像机抓拍车牌照片并且传到岗亭客户端予以显示,程序自动对新进的车牌信息进行分析。若分析成功,客户端查询数据服务中心获取该号牌的信息,查询包含白名单和违章记录。若车牌识别程序无法识别时,执勤人员可以在岗亭客户端手动输入当前的号牌信息,同样该号牌进入数据服务中心比对白名单,并查询违章记录。

岗亭客户端设有一块LED屏幕用于显示车辆的车牌,权限信息和违章记录等信息。获取了该车辆的详细情况后,若该车辆属于白名单,则自动放行;若数据显示违章数目超标,则禁止驶入;若既不是白名单且违章记录不超标,则由岗亭执勤人员打印通行证,并且车辆驾驶员交纳24小时的临时通行费用,由执勤人员刷卡放行。

2 岗亭与数据中心的工作方式

结合实际需求,本着先进、实用,保证工程的成本优化,本文所设计的园区停车管理系统采用.NET框架下C#开发。支持现有的网络编程新标准,也能够消除大量程序错误,对版本的更新提供内在的支持,降低了开发成本。

2.1 ADO.NET数据库访问技术

ADO.NET是微软.NET框架的一部分,是一组用于和数据源进行交互的面向对象类库[7-9]。并提供了平台互用性和可伸缩的访问。它是当前数据库中的重要技术,特别是在C#应用开发实例中,主要作用是将数据库与数据之间建立起链接,为对方的数据存取提供一个平台。

并且ADO.NET提供程序可以支持SQLServer、ODBC、Access和Oracle等多种数据库。其中比较重要的两个类——数据集(DataSet)和数据表(DataTable)能够实现独立于所有数据源的数据访问,表示的是内存关系数据库,不但能方便与实际数据库做数据交换,并且能够方便与XML文件进行读写数据。

2.2 分布式数据库的设计

根据系统的架构设计,如果要满足在网络出现故障时,各个岗亭仍然能够单机运行,那么则需要在岗亭本地系统设置临时数据库。该临时数据库需备份数据服务中心的白名单记录,车辆通行信息和人员执勤信息。当网络恢复时,岗亭临时数据库只需要手动或者按照设定的时间间隔自动与中心数据库进行白名单、车辆通行信息和执勤人员数据的同步。

中心和岗亭数据库的设计如图3所示。系统的数据服务中心采用Windows上IIS服务器的WebService部署[10,11],中心数据库使用SQL Server,而岗亭的本地数据库采用轻量级的Access数据库。当网络不通畅时,启用岗亭的本地数据库,将正常情况下的白名单查询都从本地数据库查询获取,车辆通行信息以及岗亭执勤人员交班也根据本地数据库信息执行。岗亭车辆出入控制的基本流程如图4所示。

图3 中心和岗亭数据库的设计

图4 岗亭车辆出入控制的基本流程图

岗亭客户端初始化本地数据库的全局链接和数据中心WebService初始化中心数据库的全局链接代码如下所示。其中DataBaseLayer是本文自定义的.NET通用数据库访问层的封装类,以支持不同类型的中心数据库和岗亭数据库。

岗亭客户端初始化本地数据库的全局链接localConn:

public static string mdbpath = Config.GetConfig((string)App. Current.FindResource(″LocalDbPath″));

public static DataBaseLayer localConn = new DataBaseLayer(@″ Provider=Microsoft.Jet.OLEDB.4.0;data source=″ + mdbpath, ″ Access″);

数据中心WebService初始化中心数据库全局链接centerConn:

public static string conStr = ConfigurationSettings.AppSettings [″CenterDbAddress″];

public static DataBaseLayer centerConn = new DataBaseLayer (conStr, ″SqlServer″);

3 系统数据同步的实现

本文所设计的分布式数据库系统采用的是主从模式的异构数据库系统。各个岗亭的本地Access数据库集合可以与数据服务中心的SQL Server进行数据共享和访问。数据库系统的各个组成部分分别具有自身的自治性,在实现数据同步和共享的同时,每个数据库仍保持有自己的独立应用特性。

常用的数据库复制技术[12,13]分为同步复制和异步复制。主要方法有基于触发器法、基于事务法、基于时间戳法和基于API法。考虑到本文所设计的园区停车系统只有在网络出现故障的情况下,岗亭才会访问自身本地的Access临时数据库,一般情况下所有岗亭均统一访问中心数据库,因而不需要数据库之间频繁的通信。所以本文采用的是占用较少额外系统资源的基于API的复制方法。在系统中引入中同步模块,当网络恢复正常后,同步模块可以自动将各岗亭的数据与中心数据库同步,而中心管理员可以手动选择将中心数据库同步到各个岗亭。

3.1 同步模块的设计

针对需求,同步模式分为从—主模式同步和主—从模式同步,同步功能类型分为新增、修改或删除。所有同步的表格数据以DataSet类型进行传输,并根据不同的表数据定义,不同的API复制接口进行相应的解析和操作。

1) 从—主模式的异步复制方法

从—主模式的异步数据复制方法在该系统中主要是实现当岗亭网络恢复后,自动将本地数据库的数据同步到中心数据库。首先由岗亭客户端向数据服务中心WebService提交异步请求;WebService响应请求后,各个岗亭客户端准备好需要同步一致的数据集,然后根据维护类型对中心数据库进行同步更新。

2) 主—从模式的同步复制方法

主—从模式的同步数据复制方法在该系统中主要是实现当中心管理员修改了中心数据库的白名单时,实时地同步到各个岗亭数据库的白名单,以防止后续网络故障出现的数据差错。当中心管理员成功修改了白名单时,通过网络发送命令至岗亭数据库,将更新的白名单同步到所有岗亭数据库。

图5为岗亭数据库和中心数据库的从—主模式的自动同步流程。当中心管理员更改白名单和违章信息后,可以选择手动同步主—从模式,其流程与图中从—主模式自动同步数据库的步骤5-步骤8相同。

图5 岗亭和中心数据库的从—主模式的自动同步流程

3.2 同步模块定时器

在数据服务中心模块中,设定了一个独立定时线程,主要完成整个停车管理系统的日常定时同步数据任务。定时任务精度要求不高,并且粒度较大,因而只用精确到秒级即可。在初始化定时队列时,分配一定数量的定时节点,并放入空闲队列中,需要添加定时任务时,从空闲队列中申请一个节点,填充好超时时间和定时回调任务等内容后加入到定时队列中。节点超时后,定时线程执行节点中的回调函数,并回收节点到空闲队列中。任务队列中,超时时间(time)使用相对与前一个节点的超时时间,节点按照时间递增排序,只要队列头节点未超时,后面的节点也未超时。其增加定时任务节点的流程如图6所示。任务节点的主要结构成员如表1所示。

图6 定时队列增加节点的流程图

结构成员说明func任务回调函数指针arg任务回调参数指针time超时时间

对于中心管理员而言,可以使用管理中心客户端人为地设定定时任务,从而规定整个系统数据同步的时间间隔。管理中心客户端对中心数据库的白名单、门卫个人信息或岗亭信息等一些数据表做相应修改后,希望能够及时同步信息到各个岗亭,那么可以添加某固定时间的定时任务到任务队列,等待执行。

在每做一次数据同步,每个岗亭同时都要获取数据中心的时间(DataTime类型)做一次时钟同步,以确保系统每个模块的时间一致性。并且可以人为选择设定规定时间(如1分钟)进行系统自动循环数据同步和时钟同步。

4 实验结果

为了考查该系统的性能,为系统搭建局域网,多台工控机作为多个岗亭的本地系统,一台主流的PC机作为数据服务中心,其基本配置如表2所示。园区停车系统的岗亭客户端和中心客户端界面如图7和图8所示。

表2 系统配置表

图7 岗亭客户端界面

图8 中心客户端(查询车辆通行信息)界面

对系统进行以下实验:在工控机上安装Access数据库,在数据服务中心安装SQL Server 2008数据库。以一般园区停车管理系统数据库所要存储的最高历史数据量为测试用例数据。中心数据库白名单(共5个字段)5000条数据、车辆通行信息表(共11个字段)30 000条数据、执勤历史信息表(共5个字段)10 000条数据并包括其他表的信息(门卫个人信息表、权限卡表、岗亭表、用户表和角色表)。将开发的系统WebService API使用IIS服务器部署到数据服务中心PC机上。

在实验中主要测试两种模式同步所耗费的时间,以确保在该设计方案下,停车管理系统能够正确工作。测试结果如表3所示。测试结果可以表明该系统16个岗亭(大型园区或停车场的规模)能在大约4 s左右的时间内能完成历史最高数据量的同步,具有很高效的实用价值。

表3 实验结果 单位:s

5 结 语

本文设计了一种基于异构主从模式数据同步的园区停车管理系统设计。其核心的分布式数据库采用异构主从模式,中心数据库采用SQL Server,岗亭数据库采用Access,支持两者之间的主动和手动同步。通过本系统的开发实施,设计出了标准化并具有灵活性的停车管理系统。系统采用基于.NET框架的三层体系结构,提高了系统的可伸缩性、扩展性和可维护性。

目前,该系统已应用于某些城市的工业园区,效果良好,改善了以往由于个别岗亭的网络故障,使得该岗亭暂停服务或者是人为放行车辆但未能准确记录信息的问题。很有效地解决了车辆进入园区混乱的局面,一定程度上降低了人工操作和管理成本。该系统的成功应用,既提高了车管部门的信息化水平,也方便了人们的日常出行。

[1] 戴帅,刘金广,朱建安,等.城市路内停车管理战略及实践[J].城市交通,2014,12(1):6-11.

[2] 段里仁,毛力增.停车管理的基本理念与国际经验[J].综合运输,2012,1(2):69-73.

[3] Michael Kodransky,Gabrielle Hermann.Europe’s Parking U-Turn:From Accommodation to Regulation[R].USA:Institute for Transportation & Development Policy,2011.

[4] 孙裕.停车管理系统的设计与实现[D].成都:电子科技大学,2013.

[5] 李晗.基于物联网的无线车辆管理系统设计与实现[D].长沙:国防科学技术大学,2011.

[6] 任杰.小区智能车辆管理系统的设计与实现[D].上海:华东师范大学,2012.

[7] Alfred J Lendvai,Hao Shi.ADO and ADO.NET Object Model Comparisons:A Relational Perspective[J].International Journal oComputer Science and Network Security,2007,7(1):23-25.

[8] Abraham Silberschatz,Henry F Korth,S Sudar shan.Database System Concepts[M].New York: McGraw-Hill,2010.

[9] 蒋薇,赖青贵,秦玲,等.基于ADO.NET数据访问技术的研究和应用[J].微计算机信息,2010,10(3):141-143.

[10] Tamer Ozsu M,Patrick Valduriez.Principles of Distributed Database Systems[M].3rd ed.London: Prentice Hall,2011.

[11] 任建辉,徐林,蔡航标.一种基于XML/Web Services的分布式数据库同步技术的研究与实现[J].成都大学学报:自然科学版,2009,28(2):136-138.

[12] 孙广,刘建军.通过数据库复制功能实现数据库同步备份[J].电子世界,2012,15(22):156-160.

[13] 刘海,陈启买.基于角色的数据交换中间件的研究与实现[J].计算机应用,2009,29(1):34-36.

DESIGN AND IMPLEMENTATION OF A RESIDENT AREA PARKING SYSTEM BASED ON DATA SYNCHRONISATION IN HETEROGENEOUS MASTER-SLAVE MODE

Feng Lingying Chen Yaowu Jiang Rongxin

(CollegeofBiomedicalEngineeringandInstrumentScience,ZhejiangUniversity,Hangzhou310027,Zhejiang,China)

We designed a resident area parking system with data synchronisation in heterogeneous master-slave mode commencing from total requirements, function modules and implementation approach for the defects of current resident area parking systems in vehicle access management of sentrybox in most cities. Developed with C# of .NET framework, the system consists of three parts—data service centre, centre client and sentrybox client. The data service centre uses WebService deployment of Windows IIS server, the centre database uses SQL Server, and the local database of sentrybox uses Access database. Experimental results showed that by utilising database synchronisation between centre and sentryboxs, the system effectively made every sentrybox working well under the circumstance of network failure, and could complete the whole data synchronisation within about 4 seconds. To sum up, this system has very high practical value.

Parking management WebService Distributed database Data synchronisation

2014-11-07。国家高技术研究发展计划项目(2010AA 09Z104)。冯凌颖,硕士,主研领域:网络多媒体,数据库技术。陈耀武,教授。蒋荣欣,副研究员。

TP319

A

10.3969/j.issn.1000-386x.2016.04.015

猜你喜欢

岗亭白名单服务中心
基于白名单的车道工控系统信息安全解决方案
基于C#的高速公路收费站岗亭云管理系统
队旗在党群服务中心飘扬
小螃蟹上学校
中证法律服务中心调解程序知多少
核电厂仪控系统安全防护策略研究及应用
UAC提示太烦 教你做个白名单
股东大会知多少
节能型收费岗亭冬季室内热舒适性研究★
“猫头鹰”岗亭(大家拍世界)