1. 引言
在上世纪70年代,西方工业化国家就提前进入汽车时代,同时汽车带来的诸多交通问题也迎面而来。1971年,德国亚琛建立了世界上最早的光电显示停车引导标志,驾驶员可以根据屏幕上显示的动态停车信息选择是否停车。该信息装置是第一个利用信息技术实现的城市停车诱导系统(PGIS)系统[1]。1995年,日本在40多个城市的交通管理中引入了停车引导系统,东京新宿的停车引导系统综合考虑了路网控制、交通管制、安全监控等相关因素,被认为是日本第一个成熟的案例[2]。相对于其它国家我国的停车系统虽起步较晚,但近年来发展迅猛。2001年,北京市建成全市第一套停车引导系统:王府井停车引导系统,2012年,该系统升级,采用物联网云计算技术,让司机随时随地了解停车信息。随后,上海、深圳、杭州等大城市也建立停车引导系统。
目前,随着我国新能源汽车的迅猛发展,人均汽车拥有量也大幅度提升。截止到2024年6月底,我国人均汽车拥有量为每千人244辆,即平均每4个人里就有一个人拥有汽车[3]。随之而来的便是巨大的交通压力,尤其是城市地区更为明显。因工作和生活的需要,汽车是每个家庭日常生活中必备的交通工具,但由于城市人口基数的密集和土地资源的紧张,停车问题也是困扰城市居民的头等难题。相关研究表明,路面上大约30%的行驶车辆是在寻找停车位,平均停车时间是7.8 min,由此不仅会浪费资源,造成关键道路节点拥堵,还会进一步加重大气污染[4]。基于国家智慧城市、绿色交通和“碳中和”的建设目标需要,急需一种能快速引导和管理汽车停车的智能系统,帮助居民更好地解决停车难题,缓解交通压力,同时满足智慧城市的建设需要。
本文基于智慧城市和绿色交通的需要,研发一种智能停车引导管理系统。该系统通过地图定位向用户直观展示目的地附近的停车场相关信息,并根据算法调控,给用户提供不同的停车策略[5],可以很好解决城市“停车难”问题,为未来停车引导系统的研发和智慧城市交通建设探索提供有力支持。
2. 系统需求分析与技术架构
系统程序的需求分析是指在软件开发过程中,通过与用户及相关人员的沟通与讨论,全面理解和确定软件需求的过程[6]。从智能停车引导系统的应用场景出发,系统需求分析包括功能需求分析、用例模型管理分析和系统性能分析。功能需求分析主要基于用户和管理员的系统操作需要,分析系统开发必备的功能板块。功能需求分析应包括停车场需求分析,根据用户目的地自动搜索附近停车场,并根据停车场收费规则、远近距离,提供最优的停车方案;自主搜寻需求分析,提供模糊查询,自主提示用户相关的目的地信息;停车场定位需求分析,按照用户到达的目的地,可自行查询附近范围内停车场;车辆最优线路需求分析;通过分析出发地与目的地距离,自动汇算直线距离并提供最优线路、最快线路等到达方案;车辆管理需求分析,按照停车场的车位,自主计算该停车场的库存信息及使用率。用例模型分析主要包括管理员和用户两种角色。管理员用例通过登录系统来对用户进行管理,包括修改用户信息、停用用户、删除用户、给用户分配角色和重置用户密码等。当管理员用例进入后台管理页面后,可以对停车场等基础信息进行管理,如图1所示,包括修改、新增和保存停车场信息。用户用例则通过输入账号名和密码进入系统,使用所需求的系统功能,还可通过搜索框输入目的地,点击系统弹出的位置,即可显示出距离该位置最近的几个停车场;用户点击停车场即可规划出三条路线(时间最短、距离最短和避开高速),用户可根据需求选择路线,也可点击停车场查看相关信息,选择自己要到达的停车场。除此之外,用户也可登录系统进入个人信息管理界面,修改、添加或删除个人基础信息。系统性能分析是评估系统的性能好坏,确保系统稳定运行并进一步优化完善的重要环节。智能停车引导管理系统应对系统的关键性能指标包括响应时间、并发量、数据吞吐量、定位准确率和运行可靠性进行量化分析。系统响应时间指停车用户发出停车查询到系统收到请求并反馈给用户的响应时间,应着重统计系统在不同时间阶段和不同用户查询请求下的响应时间并分析响应数据。系统并发量是指停车管理系统能够同时处理用户操作请求的数量,可以在不同时间下使用测试工具测试系统处理并发量,并统计最大、最小与平均值。数据吞吐量单位时间内系统能够处理的数据量,可以统计一段时间内系统处理的总数据量,并根据平均数据吞吐量包括设定合理的数据吞吐量指标,以确保系统能够稳定高效运行。
![]()
Figure 1. Parking lot information management sequence diagram
图1. 停车场信息管理时序图
在系统需求分析后,获知智能停车引导管理系统的功能需要,可根据需要采用合适的技术架构来设计实现系统。智能停车引导管理系统采用SSM框架,由客户端、B/S模式、数据库三层分布式结构组成。系统运行流程是用户可通过Internet/Intranet利用浏览器登录到WEB服务器,请求调用URL链接,再通过URL链接调用控制层并执行相应的方法,产生的执行结果动态生成HTML页面并返回浏览器进行应答。系统开发语言使用Java语言,开发环境是IDEA,开发工具选用Windows平台上的JDK1.8,文件名为jdk-8u281-windows-x64.exe。开发环境安装操作如下,下载安装IDEA后,在File-Settings中找到Maven,选择Maven的安装目录与Maven的config文件,在File -->Project Structure,点击左侧标签页和SDKs,最后点击+号,选择电脑上已安装的JDK,开发环境便部署完成。系统前端的开发,采用流行的Beetl模板[7],它封装了BeetlUI的通用组件,是一款高性能的Java模板引擎,能生成动态HTML页面,使项目开发更加简化。另外,它还支持前后端分离应用,可以通过Beetl模板将后端数据信息渲染到前端页面,与手机API对接更加方便。用户功能界面使用Bootstrap3平面化的页面设计[8],在Bootstrap3框架的响应式设计中,栅格系统可以实现页面布局的自适应,CSS媒体查询能进一步优化页面尺寸,响应组件表格、按钮等也能提升用户体验感。在页面性能优化上,除了在进入新页面或者功能页面进行整体刷新外,其他情况均使用Ajax交互[9]。关键系统功能地图定位、停车场搜索与查询的技术实现,主要引用百度地图相关组件和数据包,并在查询中结合Jeesite框架和Sharding JDBC 4.0读写分离技术,优化查询要素及定位方式,同时在地图组件相关搜索过程中,实现自动收集附近区域停车场信息并同步入库[10]。对于系统的后端开发,主要采用Spring Boot和SpringMVC框架。Spring Boot利用Maven构建项目,含有自动配置功能,可以提高系统后端开发效率。SpringMVC是Spring框架的Web模块,用于处理HTTP请求和响应,适合停车引导系统的响应模式。对于系统数据库的开发,选择MySQL关系型数据库,设计用户表、车辆信息表和停车场信息表等数据集合,并用SQL语句在数据库视表软件进行管理和操作。总之,通过各种技术架构的选型和方法实现,智能停车引导管理系统在前端可以快速响应客户需求并根据操作交互,在后端实现高效的数据处理,并通过MySQL数据库的优化设计保证数据的高效存储和查询。
3. 系统设计与实现
智能停车引导管理系统主要功能板块是用户停车引导、基础信息管理和停车数据汇总。用户停车引导包括的功能是地图定位、线路规划和停车场信息查询。基础信息管理包括的功能是用户信息管理、车辆信息管理和停车场信息管理。停车数据汇总包括的功能是车辆行驶记录汇总、车辆停靠记录汇总和停车场消费汇总。
3.1. 用户停车引导
当用户有停车需求时登录智能停车系统,在系统用户页面,用户可以打开地图定位搜索功能模块。系统根据用户目前IP,自动定位所处地市位置,并将地点标注自动跳跃,突出位置信息。位置搜索框提供位置模糊搜索,如图2所示,用户输入相关地点名称,自动出现有关地点供用户选取。当用户选取定位目的地,自动定位到相关地点及相关名称地点。在用户选定地点后,如图3所示,按照右侧导航区域的地址自动规划线路,其标准按照最短时间、距离最短和避开高速三种策略路线进行规划,并且系统还可根据目的地显示搜索附近1000米以内的停车场,右侧目录栏则展示附近停车场信息。在看到停车场信息后,用户便可选取合适的停车场并查看目前停车场使用情况、收费规则及标准等重要信息,相关功能如图4所示。
Figure 2. Map location search
图2. 地图定位搜索
Figure 3. Route selecting
图3. 线路规划
Figure 4. Parking lot information search
图4. 停车场信息查询
3.2. 基础信息管理
除了实现主要的停车功能,系统还提供基础信息管理板块。管理员和用户可以对用户个人信息、车辆信息以及停车场信息进行管理,以实现停车核心功能的辅助信息支持。在用户信息管理模块,用户个人可以对个人基础信息如昵称、姓名、地区和联系方式等修改或添加。管理员有更高的权限,可以查询、修改、删除、重置或禁用用户,以确保系统的安全运行。在车辆信息管理板块,系统用户可自主添加个人所属车辆信息,管理员则可按车牌号、车辆品牌、车主及车主电话等进行模糊搜索,以保证紧急情况下车主信息的数据查找。在停车场信息管理模块,如图5所示,系统提供所有用户使用的停车场,并可自主学习记忆各地停车场相关数据,通过不断地自主记忆和批量导入,为系统提供不同城市地区强大的停车场数据库支持。同时系统用户也可按停车场名称、收费规则、标准和车位情况进行模糊查询来了解比较不同停车场的具体信息。
Figure 5. Parking lot information management
图5. 停车场信息管理
3.3. 停车数据汇总
为了使用户更好地了解个人车辆常用行驶线路、停靠记录和停车场消费等数据信息,系统研发停车数据汇总功能板块,旨在帮助用户更方便地选择停车路线、管理停车消费习惯。如图6所示,车辆行驶记录汇总提供用户历史行驶记录信息,用户在地图定位使用过程中会自动记忆相关路线出发地和目的地及行驶距离与行驶时长等数据,根据历史数据用户可以清晰了解日常车辆的行驶信息,在车辆行驶停车时做出相应规划。系统的车辆停靠记录汇总提供给管理员及用户查询车辆阶段内总共停靠时长的统计,并可以按照车辆牌号、停靠日期段和停车场收费规则等查询条件,供用户快速获取历史停车信息。停车场消费数据汇总则展示用户在不同停车场消费总记录及当前车辆数,以便用户做出最优的停车选择,如图7所示。
Figure 6. Vehicle driving record summary
图6. 车辆行驶记录汇总
Figure 7. Parking lot consumption summary
图7. 停车场消费汇总
4. 系统评估与优化
任何一款程序系统的设计研发最后都要经过严格的测试分析和评估优化环节。智能停车引导管理系统作为一款为解决用户停车引导的应用型程序,应从系统安全性分析、系统测试和评估优化三个方面进行全面的考量,以达到系统研发的最终效果。
4.1. 系统安全性分析
系统程序安全是指保护系统应用程序免受恶意攻击、未经授权的访问、数据泄露和其他安全威胁的实践[11]。智能停车引导管理系统在Java SE 8、Servlet 3.0/3.1和Apache Maven 3.x环境下,采用Java编程语言结合经典技术(Spring Boot、Spring MVC、Beetl、MyBatis、AdminLTE、Bootstrap)开发,具有高效性、通用性、安全性和平台可移植性等优良特性。系统分层设计层次清晰,各层访问必须通过接口,进行参数验证,耦合度低,保证数据操作安全[12]。系统用户表单需提供双重验证,包括服务器端验证与客户端验证,防止用户在浏览器上恶意修改[13] (如上传非法文件,更改文本域、隐藏变量篡改等),避免通过客户端直接跳过验证操作数据库。系统对管理端链接都会进行用户身份验证,防止用户可以直接获取到资源。在密码方面,登录用户的密码将被哈希加密[14],这种重新加密的方法不可逆,保证密文泄露后的安全性问题。对于系统的权限审查[15],包括账号密码审查(没修改过的初始密码、过于简单的密码、定期未修改的密码、长期未登录的账号、未设置密保的账号、以上全部、审查结果数据导出),菜单权限审查(根据菜单以及权限查询,分析出都有哪些用户),用户权限审查(根据用户查询出都有哪些菜单以及权限)。
4.2. 系统测试
系统测试是程序的一种执行过程,其目的是尽可能地发现和纠正被测系统中的错误,提高系统的可靠性[16]。系统测试原则要秉承着早测试早优化的原则,如果条件允许可以在需求分析阶段进行测试[17]。除此之外,系统开发过程中开发人员常遇到的系统问题是开发出来的功能与需求不符,这就要求在进行系统测试的过程中开发者尽量运用多种技术方法多次测试系统。智能停车引导管理系统是系统测试的主要对象,测试内容包括登录测试如表1、用户管理测试如表2、功能模块测试如表3、数据库测试如表4和系统性能测试等。通过多次在不同状态情形下使用黑白盒方法[18]分阶段测试系统登录、停车引导和信息展示等功能,并在测试过程中要严格按照计划设计测试用例、梳理测试记录,最后形成测试报告并对报告分析。部分功能模块测试结果在下表展示。除了在系统功能模块进行考量外,系统关键性能指标如停车响应时间、停车请求吞吐量和并发量等也是测试的重中之重。因此,在保持模拟环境下,确立单用户和多用户测试场景,并采用不同的测试工具等对系统响应时间、吞吐量和并发量分批执行测试。在测试的同时关注系统CPU等资源运行状态,保证系统正常运行状态下收集系统响应时间的最大、最小和平均值、单位时间内请求处理量和系统处理最大并发请求数等数据。测试结果显示,当单个用户操作时系统响应时间最大、最小和平均值分别是325 ms、42 ms和208 ms,当多个用户操作时系统响应时间最大、最小和平均值分别是480 ms、86 ms和310 ms,其结果都小于500 ms。除此之外单位时间内请求处理量和最大并发请求数分别是688条/秒和1350,这样的测试结果满足智能停车引导管理系统的基本标准。另外,系统还在在早上、中午和下午不同时间段内和不同时间间隔进行系统测试,整理分析数据结果显示早上和下午的用户停车操作大于中午,这可能是上下班早晚高峰所导致的,但在多用户需求下系统仍可以正常运行,这符合研发预期效果。
Table 1. Login test
表1. 登录测试
功能 |
测试条件 |
输出结果 |
是否成功 |
失败原因 |
账户登录 |
输入用户名system密码admin |
成功进入系统 |
是 |
无 |
输入用户名user01密码admin |
提示账户密码错误 |
否 |
账户密码错误 |
输入用户名user01密码123456 |
成功进入系统 |
是 |
无 |
Table 2. User management test
表2. 用户管理测试
功能 |
测试条件 |
输出结果 |
是否成功 |
失败原因 |
用户添加 |
点击添加按钮,输入相关数据 |
添加成功 |
是 |
无 |
用户删除 |
选取user02,点击删除 |
弹出提示框,确认后,用户删除 |
是 |
无 |
用户修改 |
选取user03,点击修改按钮 |
更改电话号码 |
是 |
无 |
用户查询 |
查询user,自动查询所有包含user名称的人员 |
查询成功 |
是 |
无 |
密码重置 |
选取user02,重置密码 |
原先密码登录失败,使用123456登录成功 |
是 |
无 |
停用账户 |
选取user02,停用账户 |
用户登录失败,提示未有权限 |
是 |
无 |
Table 3. Map positioning module test
表3. 地图定位模块测试
功能 |
测试条件 |
输出结果 |
是否成功 |
失败原因 |
现场定位 |
默认进入地图,自动定位当前位置 |
已显示当前位置,并有图标在跳动 |
是 |
无 |
地点搜寻 |
搜寻输入框,输入“振华” |
下拉列表显示振华相关地点 |
是 |
无 |
地点巡航 |
选取振华商厦 |
系统自动规划振华商场的线路,分了最短时间、最近距离、避开高速三种 |
是 |
无 |
目的地停车场追踪 |
到达振华商厦后,自动显示附近1000米停车场位置 |
在地图显示一个大圈,大圈内显示了停车场 |
是 |
无 |
停车场状态 |
点击中心医院停车场 |
弹出中心医院停车场的使用情况 |
是 |
无 |
Table 4. Parking lot information module test
表4. 停车场信息模块测试
功能 |
测试条件 |
输出结果 |
是否成功 |
失败原因 |
停车场添加 |
点击添加按钮,输入相关数据 |
添加振华商厦停车场成功 |
是 |
无 |
停车场修改 |
修改振华商厦停车场,车位总数为450 |
车辆总数由500变为450 |
是 |
无 |
停车场删除 |
删除振华商厦停车场 |
弹出确认框,选确认后,车辆被删除 |
是 |
无 |
停车场查询 |
输入停车场 |
列表显示所有包含停车场的信息 |
是 |
无 |
4.3. 评估与优化
系统评估是智能停车引导管理系统改进优化的重要手段。为更好评估智能停车引导管理系统的应用可行性,从用户调查问卷和不同系统对比分析两个方面对系统进行综合评价。用户调查问卷采用HTML5的表单功能,结合JavaScript控制弹出窗口,实现问卷的动态显示和填写。调查问卷从系统响应、功能使用、界面交互和用户建议等多个方面收集用户对系统的反馈并打分(满分10分)。结果显示发放的100份问卷中,填写回收的有84份(回收率84%)。其中,回收填写的用户中有93%对系统给出9分以上的评价,4%的用户未评价,2%的用户给出9分以下评价。另外还有一些用户从系统界面响应交互上给出合理建议,后续将在问卷结果分析和用户建议上进一步优化系统。除了用户评估,将所开发的智能停车引导系统与基于超声波搜索停车引导系统和基于地磁的停车引导系统进行比较分析。基于超声波搜索停车引导系统通过在车位上安装超声波探测器,利用超声波反射原理检测车位状态,并将停车信息通过引导屏展示给用户。这种停车引导技术检测精度高,成本较低,但只适用于停车场内的引导场景,需结合其它地图软件使用。基于地磁的停车引导系统通过在地下埋设地磁体,检测地面磁场变化来判断停车信息,用户可通过场内引导屏获取车位信息。这种系统安装方便,无需复杂布线且性能稳定,但硬件投入较大成本较高并且也需配合地图定位使用。本文所开发的智能停车引导系统基于互联网技术,通过接入地图组件快速搜索查找停车信息,不需其它软件就能给出不同路线选择并导航至停车场,用户体验感极佳。但该系统也存在着信息存储不足的情况,这是系统初期用户较少的缘故,后续增加用户后便得以改进。总体来说,智能停车引导管理系统在易用性、功能完整性和使用表现上都能满足用户需求,且有较好的使用反馈,该系统对停车引导管理系统的研发探索具有一定的创新性和应用性。
5. 结语
本文在智慧城市背景下,提出一种智能停车引导管理系统,系统包括用户停车引导、基础信息管理和停车数据汇总等主要功能,极大解决当前巨大交通压力下“停车难”问题。对于系统的评估与优化也证明所研发系统的应用可行性,为未来探索更智能化的停车引导系统提供新的思路与研究方向。