面向全生命周期的公共自行车管理系统设计和实现
2017-11-09李晓明
刘 炎,李晓明
(浙江理工大学 机械与自动控制学院,浙江 杭州 310018)
面向全生命周期的公共自行车管理系统设计和实现
刘 炎,李晓明
(浙江理工大学 机械与自动控制学院,浙江 杭州 310018)
为解决城市公共自行车管理系统运营和维护中存在的问题,对传统系统中公共自行车的使用、调度、维修等进行分析,建立了以公共自行车全生命周期为核心的租赁管理系统模型.通过研究分析公共自行车系统的业务需求,确定系统的多角色用户及其交互的模型,建立以公共自行车为核心的系统软件模型与功能框架.采用HTML5和Java EE技术开发一系列面向不同用户的移动应用软件,打破了各角色之间的信息交互壁障.该系统最终实现了公共自行车从管理、维护到使用的智能化、网络化和数据化,对推动公共自行车行业的精细化管理具有重要意义.
公共自行车系统;全生命周期;HTML5;Java EE
在我国,公共自行车已经成为一种方便、快捷的出行工具,基本满足了人们短程出行的需求[1].但是,传统公共自行车系统中管理、维修、调度、用户等模块相对独立,角色定义模糊[2],导致了各模块之间数据与信息的流通不暢,系统功能单一.针对上述问题,不同学科背景或不同研究领域的学者从不同角度出发进行了探索.周扬军提出了具有普适意义的城市公共自行车系统规划框架[3];莫娇等针对现有公共自行车系统的信息管理问题,设计了基于移动互联技术的城市公共自行车租赁系统[4];吴满金等针对公共自行车系统的自行车时空分布不均衡问题,建立了公共自行车系统动态调度多目标优化模型[5].这些研究主要针对系统中某个具体模块或者某一特定角色进行分析和规划,并未考虑系统的整合和全平台数据互通、多角色信息交流的潜在需求,从而无法构建包括管理、维护、租赁为一体的信息系统.
面向全生命周期的公共自行车系统是一套以自行车为主线,以多角色为主体的租赁管理系统.本文通过分析公共自行车从入库登记、管理调度、使用报修到维修报废等生命周期各阶段的流程和状态,使用统一建模语言UML(Unified Modeling Language)对整个租赁管理系统进行设计和建模,运用Java EE和HTML5等技术对系统进行软件实现,为该系统的进一步改进提供理论基础和设计方案.
1 系统建模
在传统公共自行车系统中,自行车的管理、维护和租赁是相互独立的[6],各系统模块的分离导致了系统服务的滞后和脱节.为了提高系统的协调性和完整性,需要对公共自行车全生命周期的业务需求进行研究分析.公共自行车管理系统有两个基本需求.第一个需求针对本企业职工而言,注重的是自行车的管理和系统的维护,包括:①自行车信息的增删改查;②自行车的巡检、维护保养和实时调度.第二个需求针对普通用户的自行车使用,具体来说就是用户正常租借和归还自行车的功能.但是,为了保证系统的完整性和可维护性,新系统还应该拥有以下功能:①自行车预约;②对已损坏车辆进行报修;③手机扫码借车;④导航功能.根据需求可确定公共自行车管理系统的整体框架(图1).系统服务器从站点设备终端获取站点和车辆信息,将信息分类整理后存入数据库.PC管理后台主要负责数据维护和信息的接收和发布.用户、调度人员和巡检维修人员根据移动端设备来获取数据信息并进行相关的业务操作.
图1 公共自行车管理系统整体框架
在确定系统框架的情况下,可对系统进行建模.本文通过多种维度和角色建立自行车全生命周期的管理需求模型,为系统设计提供更加全面的依据.
1.1系统功能描述
UML是对软件密集系统进行可视化建模的一种面向对象的建模语言,它运用统一、标准化的标记和定义对软件系统进行面向对象的描述和建模[7].图2描述了公共自行车系统中用户对象、需求和系统功能之间的关系,展示了包括系统管理员、巡检人员、维修人员、普通用户和调度人员能够观察到的公共自行车系统的功能模型[8].该软件模型描述了所有角色作为一个整体的系统设计.
图2 公共自行车管理系统全生命周期功能模型
1.2系统流程分析
根据公共自行车系统的相关功能和业务需求,可得出图3所示的公共自行车管理系统全生命周期活动图.
图3描述了整个活动的顺序,着重表现系统的行为而非系统的处理过程.传统公共自行车系统流程包含自行车的信息录入、使用、维修和调度等[9].梳理各模块在系统中的业务活动,建立各模块之间的业务联系和功能联系,可展现系统中不同角色活动的控制流,并显示出各种活动状态的先后顺序.在图3中,用泳道来表示系统中5个不同角色在整个工作流程中的对应职责,系统中会出现多个并发运行的控制流,比如在“投放自行车”之后,用户“借车”和巡检人员参与“巡检”同时进行,两个角色的业务流程不存在任何冲突,但最终都会汇集到系统管理员处,以便进行数据的更新和维护.
图3 公共自行车管理系统全生命周期活动图
1.3自行车进程状态分析
状态图主要描述的是软件构成元素在触发事件作用下的状态变化路径[10].它既可以描述一个对象所经历的状态序列,又可以描述整个场景的状态变化.状态图作为描述系统状态变化的直观方式,一直以来在系统设计中发挥着不可替代的作用.
图4所示为公共自行车管理系统全生命周期的状态图.它描述了系统中自行车从入库到最后销毁报废的过程.包括自行车从起始状态到登记之后变成“入库”的状态;自行车处于“在桩”状态时会出现“预约”、“借出”、“维修”和“调度中”等状态,并在这些状态之间相互转换,直到自行车维修失败而进入“报废”状态,生命终止.
图4 公共自行车管理系统全生命周期状态图
2 系统设计和实现
公共自行车管理系统的设计主要包括服务器端、浏览器端和移动端的开发.
2.1服务器端
服务器的重要功能是与各个移动端和浏览器端进行交互,确保数据传输过程的稳定性、可靠性和可控性.其主要模块包括微信接口模块、客户端接口模块、数据库模块和资源接口模块.
(1)微信接口模块负责处理用户使用公共自行车时发送过来的用户请求,例如用户借还车请求等.
(2)客户端接口模块负责处理用户的App客户端和PC端的数据请求.一个请求对应一个处理流程.数据被存储在队列中或者数据库中,以方便功能扩展.
(3)资源接口模块用来提供软件系统所需的静态文件,包括HTML文档、视频文件、图像文件等.
2.2通信协议
HTTP协议可以应用于各种各样的网络系统(特别是独立IP比较稀缺的环境). HTTP 协议基于请求应答的通讯模式并不保持长久连接,避免了客户端长期占用网络资源,可以同时服务较多的客户端[11].考虑到本系统需要多种终端的实时通讯,这里优先选择HTTP通信协议.
通信协议内容采用的是JSON(Java Script Object Notation)格式封装的字符串.JSON是一种描述数据的文本.Java支持JSON字符串与对象的相互转换,同时前台的JavaScript对JSON提供原生支持.因此,本系统采用 JSON格式的数据交换方式是不存在任何障碍的.JSON 数据可以通过HTTP协议的 POST方法传递.HTTP协议中定义了多种操作指定资源方式,例如 GET、POST、HEAD等.这里只考虑GET 和POST,同时考虑到GET传递的字符串长度受限,本系统首选POST方法.上述方法只能用来传递文本数据,对于照片、图片等二进制信息,必须使用标准的HTTP协议进行传递.因此,系统首先通过JSON传递需要下载的二进制文件URL(Uniform Resource Locator),然后通过解析URL,从服务器下载指定的二进制文件并保存.
2.3浏览器端
浏览器端主要是实现系统管理员通过可视化界面与服务器的数据通讯,获取实时信息,并对自行车相关信息进行录入和发布.
(1)以图表方式显示自行车、站点和车桩等实时信息,包括自行车的编号、状态、生产日期,站点车桩的可租借状态和数量等.
(2)实现自行车、站点和车桩信息的手动增删改查操作,以及数据的自动更新功能.
(3)加载高德地图,并根据站点的空桩比来标识不同状态的站点图标,实时显示各个站点的编号和名称等信息.
(4)实现各种订单和任务的管理和发布,包括对报修维修订单的审核,并根据站点的实时空桩比来生成最佳调度任务.
(5)实现系统用户的设置和管理.系统中包含本企业员工和普通用户,需要分别设置各角色的访问权限和功能权限.
2.4移动端
对于移动端来说,普通用户是其主要使用者.而微信作为一个超过2亿用户的移动平台已经不仅仅是“通讯工具”,更是一个应用平台.本系统将微信公众号[12]作为依托,使用HTML5来自行开发包括租赁在内的手机端应用,并通过调用微信公众平台提供的开发接口使用手机的相关功能.为了识别每个关注微信公众号的用户,开发平台针对每个用户会产生一个安全的OpenID.
为保证用户方便快捷地借还车,系统应用中通过调用高德地图提供的API(Application Programming Interface)来植入地图,同时标记用户附近的站点.点击站点图标会显示当前站点可用车辆数目,并且可以提前预约,预约保留5 min,以方便用户自行计划出行.用户到达站点后通过系统的扫码借车功能进行车辆的借出.
针对其他用户(包括巡检、维修和调度人员)的人数基数小,功能要求单一,本系统采用HTML5来开发相关手机软件[13],并通过Hbuilder工具进行打包发布.
调度人员可以通过查看系统管理员发布的调度任务执行调度,期间可以手动输入或者扫码来录入自行车信息.巡检人员通过提交自行车相关的位置信息和故障信息来完成报修,而维修人员得到相关的任务信息后可以到指定的地点进行维修.如果自行车损坏太严重则搬运至维修中心进行检查维修.公共自行车管理系统的移动端界面如图5所示.
图5 公共自行车管理系统的移动端界面
3 系统测试
在整个系统的开发过程中,软件测试是非常重要的一部分,是系统能否正常运行的关键.为了测试该系统的稳定性和实用性,将系统服务器部署到私有云上,并接入浙江工业大学智能交通系统联合研究所的硬件平台进行测试.测试主要包括微信公众号扫码借还车,巡检人员提交报修表单,维修人员查看实时报修任务,调度人员查看系统管理员发布的实时调度任务等.测试表明系统运行正常,各个业务流程运行无障碍,数据传输流畅,界面设计合理,比较符合当前国内用户和系统工作人员的使用习惯.
4 结束语
(1)本文通过UML建立系统模型,使用Java EE和HTML5等技术完成系统软件的开发,实现了数据采集、分析和共享为一体的全方位公共自行车管理系统,完成了自行车全生命周期的状态监控.该系统独立于现有任何公共自行车系统,具有良好的可扩展性和可移植性,可以在多种平台和系统中进行部署发布.
(2)研究过程中发现,本系统还存在不足之处,包括未对站点自行车的数量进行提前预测,没有对用户进行起点到终点的路径规划.今后将重点研究系统的站点信息预测功能,使其更加完善.
[1] Zhao Y,Chen L, Teng C,et al. Greenbicycling: A smartphone-based public bicycle sharing system for healthy life[C]//The 2013 IEEE International Conference on Cyber, Physical and Social Computing.Beijing:Beihang University,2013:1335-1340.
[2] 曾帅帅, 王红方, 薛 斌, 等. “互联网+” 时代下的公共自行车租赁研究[J].当代体育科技,2017,7(5):149-150.
[3] 周扬军. 城市公共自行车系统规划研究[J].城市交通,2012(5): 50-54.
[4] 莫 娇,廖 斌,徐少波,等.基于移动互联技术的公共自行车租赁系统设计[J].科技创新与应用,2015(20):31-32.
[5] 吴满金, 董红召, 刘冬旭, 等. 公共自行车多目标动态调度建模与算法研究[J].机电工程,2015,32(7):1006-1010.
[6] Fishman E,Washington S,Haworth N.公共自行车文献综述[J].城市交通,2014,12(2):84-94.
[7] 郭 婧, 吴军华. 面向方面的 UML 建模[J].计算机工程与设计,2011,32(12):4260-4264.
[8] 袁国铭, 刘 瑞, 樊 波, 等. UML 用例图在软件工程中的步骤设计研究[J].微型电脑应用,2014(1):46-48.
[9] 柳祖鹏, 李克平, 朱晓宏. 基于蚁群算法的公共自行车站间调度优化[J].交通信息与安全,2012,30(4):71-74.
[10] 樊 波, 袁国铭, 周 萍, 等. UML 状态图在软件工程设计中的应用研究[J].微型电脑应用,2015(11):36-37,44.
[11] 祝 瑞,车 敏.基于HTTP协议的服务器程序分析[J].现代电子技术,2012(4):117-119.
[12] 杜 辉,刘 晓,袁百成. 基于微信公众平台的高校图书馆学科服务创新[J].图书情报工作,2015(6):41-45.
[13] 黄悦深.基于HTML5的移动Web App开发[J].图书馆杂志,2014,33(7):72-77.
DesignandImplementationofFull-life-cyclePublicBicycleSystem
LIU Yan,LI Xiao-ming
(School of Mechanical Engineering and Automation,Zhejiang Sci-Tech University,Hangzhou 310018,China)
In order to solve the problems in the operation and maintenance of the urban public bicycle system, the user activity, scheduling and maintenance of bicycles in traditional system are studied, and the leasing management system model with the full-life-cycle public bicycle is established. Through the analysis of the business requirements in the public bicycle system, the standard software model of the system is established, and a series of software application based on mobile devices have been designed and developed by use of HTML5 and Java EE. These software applications have successfully broken the data transmission and communication barrier between the sub-system and system roles. The system finally realized the intelligent, networked and digitization of the public bicycle system’s management, maintenance and usage, which is of great significance to promote the public bicycle industry to quickly enter the Internet 3.0 era.
public bicycle system; full life cycle;HTML5; Java EE
2017-06-06
国家自然科学基金联合基金资助项目(U1609205)
刘 炎(1992-),男,湖北随州人,硕士研究生,研究方向为软件工程技术.
1006-3269(2017)03-0024-05
TP24
A
10.3969/j.issn.1006-3269.2017.03.006