摘要
自从进入21 世纪以后,汽车产业迅速发展,伴随着人们生活程度的日益进步的人口的迅速增加,汽车的数量也如雨后春笋般在城市里不断的增加。这种现象,一方面是值得我们高兴的,这代表着我们国家的经济发展非常迅速,但同时它也给城市的泊车带来了极大的挑战。在我国各个城市当中,由于资源使用的不完善,资源配置的不合理,所以始终存在着泊车难、泊车贵的问题。
事实证实,增加停车位的供应诚然重要,但充分利用车位资源将更加可行。所以将当前固有的车位发挥最大的使用效率是目前实施力最强的解决方案。
本课题就是针对停车位管理这一需求主体,基于Spring MVC + Spring + MyBatis三个Web应用程序成熟的开源框架作为系统基础框架,Tomcat提供服务支撑,MySQL提供完整的数据存储撑持,设计了一款智能停车场管理系统。该停车场管理系统的智慧化、信息化和自动化也有所进步,既降低了人工压力,同时也显著减少人工登记由于个人错误而引发的一系列问题。通过该停车场管理系统,一方面可以省去繁琐的人工登记,也可以节省一笔不小的人员支出,同时也有利于问题出现以后的追踪查询增加安全性。该系统同时拥有灵活性和拓展性。
关键词:停车场管理;车牌识别算法;收费停车场;SSM
一、引言
1.1 研究背景
随着汽车市场的快速发展,各个社会中的汽车和私有车数量都在快速增长。停车位的供给速度远远低于汽车数量的增长速度,招致城市停车位越来越紧张[1]。停车难情况的原因不但是因为停车场以及停车位建立的缺乏,而且也是由于停车场没有秩序的管理方式。
因此,停车场的要满足现代城市建设这个宗旨就必须要经营管理。当然,对于“城市停车难”的情况,最直接有用的方法是增加停车场地的数量,增加停车位,并根据不同停车场或区域的汽车数,在现今的公共区域上新建停车位,建造更多的停车场[2]。但由于国家土地资源稀缺的限度,已不能随意增加建设大量的停车场。所以根本上的解决方法还是要靠合理的优化配置当前已建设的停车场,提升停车场的管理效率,通过运用科学、合理的管理技术来达到提升停车场利用率的效果。
基于此,设计一个具有高效率、低成本、便于管理停车场的管理系统已成为国内现代社会发展一个不可避免的趋势。
1.2 课题研究目的及意义
在我国传统的停车管理系统中,车辆进出停车场必须使用专用护照IC卡。以传统方式管理的停车场,面临着几个共同问题:首先由于车主可能会丢失或者借与其他人IC卡,假如这样做就会给停车场的管理带来一些困难;再有就是停车场内的车位使用情况不能得到及时的监控,因此不能获取停车场内所停车辆的车主信息,那么安全隐患就会一直存在[3]。
针对上述问题,通过出入停车场的车辆车牌可以被车牌被迅速检测以及识别,系统同时完成对车辆信息的录入,极大减少了车辆通过所需的时间,与传统的人工或IC卡管理系统对比,系统的优点更加明显,一方面可以对停车场进行实时监控,有效监控停车场停车位的使用变化,整理最终收集的数据,通过图表的方式向管理人员进行展现[4]。另外,建立停车场管理系统,可以正确收费,避免违规收费,保护司机的正当权利和利益。
系统的设计和实施可以大大提高停车场的操作和灵活性,转变了停车场人工管理的固有概念,让停车场管理变得愈加高效智能。
1.3 国内外发展状况
1.3.1 国外研究现状
在国外,智能停车场管理系统的设计开发相对来说高效,基本上改变了出入停车场的传统车辆的复杂方式,停车场的进出方法也比较灵活。在国外,停车场系统的运营商重视智能管理系统的构建和技术输入[5]。许多先进的停车场管理电子设备基本上不需要手动管理进出车辆。人才需求少,基本上能够完成软件的自动管理。随着科学技术的发达,智能停车管理系统大多数已经使用网络进行管理,人们可以通过网站进行车位预约的操作,也可通过网站及时查看停车场的停车位情况[6]。
就实际情况来说,Designa、Mengli、西门子等国外停车场的知识管理系统的研发已经达到了比较成熟的水平。在那些所有的智能管理系统中,比较有代表性的是:由德国Designa公司开发设计的终端控制计算机TCC和数据控制中心BFR,及其配套的一整套控制设备和语音车牌识别系统[6]。包括中央停车引导程序PLC、停车卡管理SITY和机械停车程序SICALOSAPS在内的多种程序和系统都是由门吉利公司经过多年探索并投入大量资金进行设计开发[7]。
从上面数据可以看到,国外对于智能停车管理系统的设计开发上比较注重用户体验。比较有代表性的Young等设计开发的PARKSIM系统,使用这个系统,用户能自动引导用户在停车场内搜寻车位[7]。还有一些国外学者提出了更特别的观念,比如停车泊位抉择模型,该模型基于大批考察数据以后进行分析,然后得出个人特征与泊位抉择之间的关系。
1.3.2 国内研究现状
现如今,在国内停车场的管理系统中,还是主要以收费管理为焦点。如何提高收费效率是当前首要需要解决的问题,并根据各车辆的进出时间来计算收费。在一些非一二线城市,依然还在采用磁卡和远程IC卡用于访问,更有一些地方还是使用手写纸条的方式来记录车辆进出信息[8]。如此费力的方式却没有达到很好的效果,这种方式仅仅是将信息进行登记和记录,没有将客户和信息进行关联,对于后续的管理非常的不便。不过在一些一二线城市已经实现了进入以后车牌识别的停车场,不过覆盖率并没有特别高,还处于发展阶段。
对于一个停车管理系统来说,比较核心的就是车牌辨别技术。关于车牌辨别技术的研究。可以追踪到上个世纪90年代的交通智能研究,最重要是对于智慧交通中车牌识别的研究[9]。汉王眼是目前国内关于车牌识别十分成熟的系统,是由中国中科院设计开发的一整套智能系统。同时,深圳及通电子有限公司也有非常深的研究,还包括国内排名靠前的高校研究室、国家重点实验室等[10]。
不过国内的停车场管理系统都没有泊车引导系统,不能引导司机以最短的路径开往空闲停车位。同时国内的停车场管理系统管理不够简洁化、系统化,因此有必要开发一个易于上手,简洁操作的停车管理系统。
1.4 本文章节结构
本文主要分为七大部分。
第一章引言:介绍停车场管理系统的研究背景和研究目的和意义。接着分析了停车场管理系统的国内外发展状况。
第二章软件开发相关技术:介绍了本停车管理系统开发过程中所使用的各类软件开发技术。
第三章需求分析:先对停车场的进行了可行性的相关分析,接着对系统功能需求进行分析,包括使用系统用例图、用例规约的方法对各个模块进行需求分析。
第四章系统设计:首先介绍了停车场管理系统的系统结构、系统功能结构图等。然后介绍了主要功能模块的设计思路,最后介绍了数据库表的相关设计。
第五章系统实现:介绍了停车管理系统的开发环境,以及介绍了车辆自动进场和手动进场的具体实现方法等,并展示了系统各个功能的界面截图。
第六章系统测试:主要介绍了对停车场管理系统功能测试的测试用例和测试结果。
第七章总结与展望:总结了本停车管理系统功能的功能,展望今后应该如何让系统更加完善。
二、相关技术
2.1 开发工具及开发环境
本管理系统是基于JavaWeb进行开发,因此使用了IntelliiJ IDEA作为集成开发环境。IntelliiJ IDEA是一款十分实用方便的集成开发工具。IntelliiJ IDEA支持自定义窗口,在开发过程中能够依据实践需求进行显示和操作。作为一个集成开发工具,IntelliiJ IDEA可以为我们提供各种框架和服务器接口。管理系统中的Tomcat8.0服务器只要在IntelliiJ IDEA里做好相关配置,就可直接使用。
对于利用Maven的项目管理,现在市面上销售的许多新项目都推荐利用Maven进行项目管理。Maven开始改变管理我们本来项目的习惯,团队管理、项目建设具有本质性的飞跃。Maven有助于我们构建项目的更加可维护性、科学性、模块性,所制作的项目具有更加具有可重复使用等优点[11]。
利用Maven进行项目管理,目前的市面上的很多新项目都推荐使用Maven进行项目管理。Maven已然开始扭转我们原先的管理项目的方式,关于公司的管理,项目的构建都是一种巨大的进步。Maven帮助我们构建项目愈加具备可维护性,更加科学,更加模块化,做出来的项目更加具有可复用性等优势。
2.2 Bootstrap
Bootstrap是当今市场上最受开发者钟意的一个前端框架,它是由美国的Twitter公司研究开发的。Bootstrap十分便捷灵活的,它是以HTML、CSS、JavaScript为基础进行集成的,提供了非常优秀的HTML和CSS标度,使得开发者能够迅速且方便的开发网页,开源是它热门的一个十分重要的原因。Bootstrap从来都是Github上有名气的项目,一经推出就极受欢迎。并且Bootstrap提供了特别实用、美观的文档,包括HTML、CSS、jQuery等各种专业文档。本停车场管理系统因为是后台管理系统,正好非常适合使用Bootstrap来进行敏捷开发,Bootstrap提供的动态效果、CSS样式、图形库等,节省了造轮子的工夫和精力,大大提高了开发速度,并且提高了页面的美观[11]。
2.3 JavaScript
如今的网站开发,特别是前端设计师,掌握JavaScript既是基础也是最重要的技术,很多大型前端框架都是基于JavaScript进行开发,如果能掌握JavaScript对今后的框架学习具有事半功倍的效果。它的神奇在于其优秀的动态效果和交互效果。让用户拥有更好的使用体验。
JavaScript是开发人员中最受欢迎的解释脚本语言。它可以直接嵌入到网页中,无需外部服务器的支撑,并且可以直接处理请求或在浏览器中运行,以获得页面交互的效果。JavaScript十分轻量,对服务器担负不高。JavaScript在开发行业中占有很高的地位,因为它还可以支持跨平台操作[12]。
在前端就可以直接对用户的操作做验证,是JavaScript的特有优势。因为前端直接反馈结果,不用通过查询数据库的操作,因此效率极高。
2.4 Ajax
Ajax技术是由多种技术组成的[13]。它使得用户得以异步的方法从网络浏览器获得请求。对于传统的技术,如果用户选择上传页面或者填写表单后,服务器将发送一个完整的页面用于更新,对于现在图片很多的页面,将会给用户带来很不好的体验。如今使用Ajax技术,在用户上传数据以后,只有选定的部分将从服务器里更新到页面上。
在停车场管理系统中也经常性的使用到Ajax技术。例如添加用户时,在输入用户名以后先利用Ajax到服务器上查询是否已经存在相同的用户名,如果存在则进行提示。还有在添加停车卡时,也对停车卡号进行Ajax验证等。
Web网站通常由服务器将所有内容发送给用户,这极大的拖累了系统的性能。Ajax的功能是作为浏览器和服务器的调度器发挥作用[13]。这将根据用户的需求提取专门用于验证的数据,大大缩短用户的等待时间,同时减轻服务器的负担,也给用户更迅速、更舒适的使用体验。
2.5 Redis
Redis是利用c语言开发的开源(合乎BSD协定)高性能键值对(key-value)的内存数据库,可以用作消息中间件、缓存、数据库等[14]。
Redis是一个内存数据库,具备高性能的优势,数据由于位于内存中,因此读取和写入速度极其迅速,效率极高。运用单进程单线程、线程安全、IO多路复用机制。具有多种的数据类型,包括strings、sets、hash、lists等。支持数据持久性,您可以将内存中的数据保存到硬盘,并在重新启动时加载这些数据[14]。Redis用于本地缓存用户停车信息,不再从数据库中获取信息,从而大大减少了用户等候时间,提升用户使用体验。
在本停车场系统中对于数据量比较大又不需要实时更新的的历史停车数据等就采用Redis进行了本地缓存,需要时直接从本地取,不用多次的到数据库进行查询,大大减少了管理员等待时间。
2.6 车牌识别技术
车牌号是车辆唯一的信息识别。自动车牌识别技术允许车辆信