马拉松赛事辅助系统实现
2018-10-20王昊楠苏钰泽孔钦叶长青
王昊楠 苏钰泽 孔钦 叶长青
Abstract: With the improvement of the economics, people pay more attention to the health and exercise. In this condition, Marathon comes into a new stage of rapid growth and expansion. In recent years, Marathons held by governments and local enterprises spring up. With the appearance of this phenomenon, some problems arise. In this case, a set of effective system is urgently required to help people in the Marathon experience the charm of race and reduce the cost of the Marathon sponsors. The auxiliary system for Marathon based on the Android system and Baidu maps is an Android application to achieve this goal.
引言
互联网技术成为当代中国经济发展新的经济增长引擎,为国内各方面的快速进步提供了现实广阔可能,而互联网技术与各个领域的深度结合已然成为行业吸纳变革与创新的重要决策走向。其中,体育运动App即是依靠宽带无线接入技术的高速发展、移动终端的全面普及以及多媒介终端的无缝联动,以自体传播和大众传播为支撑,有效地突破了现实与互联网虚拟世界的延展罅隙,拓宽了互联网+体育的表现域[1]。在这种背景之下,近年来频频见诸报导的现代马拉松赛事无疑将面临一个效益与效果双重提升的有利契机。众所皆知,举办马拉松赛事是一项复杂性的工作,复杂性主要体现在3个方面,可阐释表述如下。
(1)参赛者数量多。管理和组织如此多的人,单纯依靠举办方招募的志愿者并不能维系有效的管理。这里,仅以2016年北京马拉松为例,参赛者达到了30 302人,完赛人数为28 957人。如此规模的参赛者,对于举办方的管理来说颇具应对难度。
(2)后勤服务问题。马拉松参赛人员的号码牌发放、衣物和芯片的存取都需要指派人员进行管理。由于马拉松赛程长的特点,沿途的医疗救助点、能量补给站和公共盥洗间等,必须形成科学布局,并且保证数量合理且物资充裕。此处还以2016年北京马拉松为例,马拉松组委会在起点、沿途(沿马拉松路线自5 km开始每2.5 km)及终点设立固定医疗点。在2~5 km每间隔1 km,7.5~40 km每间隔2.5 km处设有移动卫生间。
(3)管理人员和赛事成本问题。除了中国著名的国际马拉松赛事有大量的活动赞助商,民间马拉松目前都是由政府财政赞助再配合参赛人员的参赛费用勉强支付开销成本,难以实现盈利,后果就是无法保证举办质量,影响力逐渐减小,赛事举办难以获得长期生命力。
综上可知,针对这项全民皆可参与的大众运动—马拉松运动,参与人数几千到上万不等,此等数目的参赛者共同比赛,将无法仅仅依靠人力来做到对万人级别竞赛提供及时服务或者应对突发情况。基于此,研发设计一整套的赛事流程管理和辅助系统,对保障赛事正常顺利筹办,应对意外事件具有重要的规范和完善行为实践的作用。体育赛事的风险管理是指运用科学的手段和方法对赛事的风险进行评估,制定可行的应急预案,采取有效的措施控制、规避赛事运作过程的事故发生风险,尽量减少事故发生后的各种损失。之所以要引入风险管理,是为了降低或减少在举办体育赛事过程中可能遇到的各种不确定的致损因素,以期增加举办赛事收益的可靠性和稳定性,而并非要增加赛事的运行成本[2]。研发马拉松赛事管理系统即在可以直接减少其运营成本、提高赛事质量、规范赛事流程的同时,也已然成为该项赛事科技应用方面的基础必备配置。
目前,国内针对马拉松的移动应用并不常见,仍有可观的发展和创新空间。本文拟将从马拉松赛事辅助系统实现的优点出发,解读马拉松辅助系统的具体设计过程,从各个方面探讨互联网为马拉松运动带来的改变,以及明晰减少系统管理成本的运作机制,从而实现对参赛者的精细化科学管理,协助参赛者更好地完成比赛。
1研究方法与技术
1.1研究方法
马拉松赛事辅助系统开发之前,首先对马拉松赛事的举办流程展开详尽分析,列举寻出马拉松赛事的成本来源,以及生成其中涉及到马拉松赛事的参赛规则、人数统计、赛程规划、计分标准、后勤保障等诸多方面的组织管理预案。根据统计数据,对研究中管理薄弱的环节和可以削减成本的方面做出可行性分析及需求分析,为下一步设计奠定合理性的坚实基础。
如前所述,马拉松赛事辅助系统一方面致力于为马拉松赛事的参赛者研发配套服务,助益其整场赛事能够取得最佳成績。在另一方面,系统也能帮助赛事的举办方降低组织管理方面的部分成本。基于此,本文客户端则采用了Android手机端的App,手机端自带的GPS定位系统将有利于获取对参赛者的实时定位,而定位系统也是整个马拉松赛事辅助系统的核心与关键。
服务端使用Java语言,基于阿里云服务器搭建Java语言的运行环境和MySQL数据库。MySQL数据库重点用于信息的持久化存储,主要记录用户的个人信息和参赛记录等。
1.2开发环境研究和搭建
马拉松赛事辅助系统的开发软件是Android Studio 2.2.3.0,这是一款专用的Android开发工具软件。Android Studio相对Eclipse代码提示和搜索功能要更加强大、智能,在代码重构、调试等方面有出色表现,极大地减少了Android开发的工作量,提高了开发效率。赛事辅助系统基于Android SDK 23(Android 6.0版本)设计研发,页面调试主要是在模拟器上生成输出结果,并利用AVD Manager(Android Virtual Manager)进行配置设定。
服务器端采用的是Java设计语言,利用Eclipse软件来编写和构建服务器端代码。数据库采用的是免费的MySQL数据库,进行数据的持久化存储。在前期阶段,服务器采用了tomcat,在上线后将采用阿里云服务器的方式来控制操作部署,从而达到真机测试运行的目的。
为了研发得到该系统的部分功能,在开发系统中引用了第三方的包,即:百度的鹰眼Android SDK3.0,可以实现绘制Android手机运动轨迹的功能。
1.3应用技术
在处理过程中,本系统使用了Android开发技术、百度地图API中百度鹰眼功能的相关技术、MySQL数据库的应用技术,以及阿里云的云服务器设计等流行的开发工具。
Android是Google公司在2007年推出的基于Linux平台的手机操作系统。Android的开源性能够支持面对第三方的修改接口,从而第三方厂商就可以自行定义安卓系统,以更好地适应自己开发的硬件。本系统研究使用的安卓开發框架包含如下3个基本模块,也就是:页面展示、逻辑功能和数据存储。
阿里云的云服务器(Elastic Compute Service,ECS)是一种简捷高效、处理能力可弹性伸缩的计算服务,帮助快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本,使用户更专注于核心业务创新。马拉松赛事辅助系统的服务器端搭建在这个云服务器上,配置可参见阿里云的文档,不仅清晰、而且直观。本系统采用了基于Linux系统的各类集成软件,分别是:JDK 1.6/1.7/1.8、Tomcat 6/Tomcat 7/Tomcat 8、MySQL5.6,是Java多版本环境。
1.4应用系统架构
马拉松赛事辅助系统的整体设计架构如图1所示。研究推得,各部分的功能解析可见如下。
(1)客户端。是Android手机应用,手机端自带的GPS服务可以准确定位,将定位信息加工后发送给百度鹰眼服务,再经变换流程后将结果信息回传给手机应用。
(2)服务器端。是建立在阿里云服务器的基础上,代码使用Java语言编写。这一部分主要就是对数据库的数据进行增、删、查、改,传递数据信息,并未增设复杂的数据处理操作。
(3)数据库。采用云端数据库MySQL5.6版本,对于手机应用产生的各种数据来实配系列操作,用于持久化数据存储。
2系统分析
2.1可行性分析
在开发马拉松辅助系统前,即要着手启动该次项目的可行性分析。研究知道,马拉松辅助系统的设计,是一个初级的原型系统,旨在尝试解决马拉松赛事组织和管理上的一些问题,对于举办方来说可以降低成本,对于参赛者而言可以更好地激发参赛状态,创造佳绩。基于此,本文将从技术、经济和操作这3个方面对本次研发系统进行可行性分析,探讨马拉松赛事辅助系统的设计过程能否实现。各要点内容可分述如下。
2.1.1技术可行性
技术可行性方面,由于赛事辅助系统的开发用到了新技术及工具,所以在设计研发中始终都要伴随学习新知识、应用新知识、进而在解决问题中精通新知识的过程,从而使研发得到的最终系统能够满足初期设计要求。
2.1.2经济可行性
经济可行性上即涉及到是否盈利的问题,马拉松赛事的举办方在某些方面的投入为附加成本,就是对于报名、宣传、赛事引导等多个方面,均可缩减大量人工成本。经过分析,得出结论:本次研发在经济上是可行的。
2.1.3操作可行性
操作可行性方面,通过查证马拉松赛事的比赛规则,其中并未规定马拉松爱好者禁止携带手机参加比赛。换言之,带手机参加马拉松比赛是可行的。且日常的手机跑步应用都已经证实:人们已经习惯携带手机跑步,甚至部分跑者是伴着手机音乐跑至目标终点的。如上叙述证实了手机运动应用的可行性,而且也证明了马拉松赛事辅助系统建立在手机端的合理性。
2.2需求分析
至此,在经历了对马拉松赛事举办流程、参赛进程、比赛过程诸多方面的系统探究研读后,并且参考了中国参赛人数最多、影响力最大的北京国际马拉松赛事,这里也将以2016年北京国际马拉松为例,从3个方面据实推演分析,最终得到了系统研发的总体目标为:实现一个赛事原型系统。参赛者可以借助其在赛前及时关注赛事公告,知晓赛事动态。还可以在比赛中帮助参赛者指引赛事路线,绘制参赛者的轨迹,提送参赛者的完赛情况以及全程记录。这个系统将辅助马拉松举办方减少在赛程设置引导上的成本,而且由于实时定位的便利更可以及时帮助需要医疗救助的参赛者,减少医疗投入的成本。
在此基础上,还将实际提出具体功能性目标,可详述如下。
(1)注册登录功能。用户可以注册登录系统,编辑个人信息。
(2)赛事报名功能。用户可以对赛事进行报名。
(3)赛事查询功能。用户可以通过系统查询赛事的详细信息和公告。
(4)运动轨迹功能。通过对百度鹰眼的调用可以绘制出参赛人员的运动轨迹。
(5)标记位置功能。可以在地图上标示出来,注明补给点的地理位置。
(6)运动记录功能。记录用户的运动时间和路程等信息。
2.3系统概要设计
2.3.1系统主要功能
(1)用户注册登录。输入用户名和密码来申请注册,将这些信息存储到MySQL数据库中进行持久保存。用户在登录界面输入用户名和密码,验证通过后登录成功,跳转到主页面。
(2)赛事报名功能。每场赛事在数据库中都对应一张表,内部包括参赛者的姓名和ID,报名就是将当前用户存储到数据库这张表上。当然用户也可以取消报名,就是在此表中删除这一用户。
(3)赛事查询功能。用户点击赛事查询系统,系统会将所有的赛事罗列出来,点击赛事就可以看到详尽的细节信息。
(4)运动轨迹功能。通过系统对百度鹰眼的调用,每经过一段时间打包传送一次实时位置,而后依据这些实时位置点描绘出用户的运动轨迹。
(5)标记位置功能。将特殊用途区域在百度地图的指定位置用不同的标记展示出来,参赛者可以直接找到补给点、医疗点或者卫生间的位置。
(6)运动记录功能。利用计时的方式,将运动耗时、路程等全盘记录下来,再将其保存在MySQL数据库中。
2.3.2系统的用例图
研究中,为了生动呈现该系统的设计功能,根据系统的基本需求研发得到反映系统表述功能的用例图。可得技术应用效果如图2所示。
2.3.3软件结构图
为了整体把握马拉松赛事辅助系统的结构框架,建立了交互模型,可对手机端各个模块之间的关系生成一个全景描述。如图3所示,指出的就是手机Android端的系统模块之间的交互。
3系统功能设计
本节将基于系统流程设计来依序展开马拉松赛事辅助系统的具体实现论述。研究可将整个系统分为个人模块、赛事模块、定位功能模块三大部分。可得研究设计过程如下。
3.1主体功能设计
(1)用户注册登录模块。该模块的数据流图,如图4所示。
(2)赛事报名模块。该模块的系统流程图,如图5所示。
(3)运动轨迹模块。模块的系统流程图,如图6所示。
(4)分组模块。模块流程如图7所示。
(5)标记位置模块。模块的设计流程如图8所示。
(6)运动记录模块
① 运动记录模块的层次图,如图9所示。
② 运动记录模块的流程图,如图10所示。
运动记录模块是手机App、百度云服务和服务器端交互的重要单元构成。手机通过调用百度云服务实现对运动点偏移量和路程的计算。通过对手机端的定位点进行存储,而后调用百度云服务精准记录用户运动轨迹。服务器端的主要功能就是存储手机端产生的定位点、时间、路程等信息数据。
3.2系统界面设计
考虑到本系统的界面设计将遵循簡单、易维护原则,研究中采用了Fragment技术,可以使activity分离成多个可重用的组件,从而便捷创建动态、灵活的UI设计,且每个组件均有其专属的生命周期和UI,这样就可极大节省工作量。另外,Fragment的实现机制是可以在activity运行中得到动态移除、加入、交换等。相比Activity间的切换不流畅,Fragment具有轻量切换的优点。这些优点对马拉松赛事辅助系统的Android 页面开发非常有益。
Fragment虽然有自己的生命周期,但却不能独立存在,而是必须嵌入到activity中,并且Fragment的生命周期将直接受到托载的activity的影响。此种关系示意即如图11所示。
利用Fragment设计的页面,最终的运行效果可如图12所示。
3.3系统核心功能详细设计
研究中,利用了百度鹰眼官方文档,可得设计详情如下。
(1)百度鹰眼Android SDK。实时查询entity最新位置、高度、速度、方向和相关属性信息。设计提供了2种查询方法,功能表述可见如下。
① queryEntityList()。该方法用于查询服务端上存储的最新实时数据。若终端处于断网状态,或有大量缓存数据并未上传,则查询结果将是目前服务端接收到的最新数据,可能并不是终端真实的最新位置。
② queryRealtimeLoc()。该方法用于单独发起一次即时定位,返回为当前终端所在位置。类似定位SDK的使用方法,与轨迹采集上传完全独立,互不关联。
(2)坐标系的说明。输出参数坐标系均为百度经纬度坐标系(bd09ll)。
(3)查询服务端最新数据。queryEntityList()支持通过entity_name列表和可检索的属性字段2种条件查询。可对其重点阐析如下。
① 通过entity_name查询。调用queryEntityList()接口时,在entityNames参数中指定查询的entity_name列表,则会返回这些entity最后更新的位置。
② 通过可检索的entity属性字段查询。使用Web服务API的entity/addcolumn方法,可以自定义entity的属性字段,并设置为可精确搜索字段。之后调用queryEntityList()时,支持通过该自定义属性字段,进行精确筛选。例如开发者创建了team和city这2个可检索的自定义属性字段,需要查询team=2且city=Beijing的entity。
从数据上传到鹰眼服务端,再到利用查询接口查询到该数据,在联网正常的情况下延时在毫秒级别,可认为是无延时地同步。在上传时,受打包周期的限制,会存在一个打包周期的延迟。若开发者对实时性要求较高,可以将打包周期设置成采集周期,但需斟酌评测流量方面的消耗。
(4)即时定位queryRealtimeLoc()。调用queryRealtimeLoc()接口,若gps已定位,则SDK会返回已转换为百度经、纬度的GPS坐标信息;若gps未定位,SDK会采集定位依据(WiFi、基站)上传到定位服务器,并返回定位结果。
4结束语
马拉松赛事辅助系统就是基于移动互联网技术解决一些马拉松赛事的现存问题,进而减少举办方组织和管理的成本,实现马拉松赛事的科学管理。与此同时,通过这个系统,参赛者可以充分地发挥水平、完成比赛。马拉松赛事辅助系统是移动互联网科技与现代体育竞技运动的一次尝试性融合,对未来其它竞技体育项目的科学管理有着深远的借鉴意义。本文研发的马拉松赛事辅助系统的创新性主要表现在如下3个方面。
首先,在系统理念上,马拉松赛事辅助系统,立足于马拉松这一极富挑战性的体育运动,融合了现今的互联网新技术,试图构建一套更加科学、高效的个人马拉松运动服务完备系统。与传统的运动App相比,有本质区别和独特的优势。内容阐述如下。
(1)服务的对象。马拉松赛事辅助系统,核心在于赛事,以赛事为中心,围绕如何使用户更好地参与比赛,乐享比赛。这一核心理念控制并决定了提供的系统服务要与赛事的各个环节相契合,必须具有鲜明的实用性,否则将无法为参赛者提供强力保障。
(2)在执行功能方面,马拉松赛事辅助系统除了具有赛事方面的特有功能,同时对传统的运动App的功能也做到了兼而有之。对于传统运动App的个人运动记录或者运动轨迹服务等功能进行了保留和完善,满足用户多方面的功能需求。
(3)马拉松赛事系统的可扩展性远超传统的App,目前的马拉松赛事尚未臻至高效的互联网化,功能挖掘和发展均有无限空间。也就是说,马拉松赛事辅助系统前瞻性的研发潜能堪称巨大。
其次,在新技術方面,马拉松赛事辅助系统是基于Android平台开发的,服务器端建立在百度云服务和阿里云服务器上,除了运用Android和Java的开发技术和方法,创新地运用了2种目前流行的新技术。一是百度地图提供的开放应用程序接口。二是阿里云服务器技术。马拉松赛事辅助系统为了实现真机测试运行,租用了阿里云的服务器,降低了物理服务器的复杂管理,摒弃了服务器可能产生的风险和隐患。总之,阿里云服务器极大简便了开发过程,降低了成本。
最后,在系统的设计方面,遵循了软件开发流程的设计范本,从可行性分析、到需求分析、系统设计等,严格执行、且保证了系统开发的效率和可靠性。在设计方面,完全滤除了传统运动App的社交功能,专注于赛事服务。值得推介的一点,是利用百度地图的自带服务,创新性地推出道路指引功能设计,为参赛者配备添加了准确的指路功能。这一设计创新是整个马拉松赛事辅助系统与其它系统相比所特有的功能,今后对这一功能可设计更多的交互方式,完善其操作过程,进而全面提升交互体验。
参考文献
[1] 蔡卫清. 体育运动APP对全民健身活动的影响研究[J]. 青海师范大学学报(自然科学版),2016(4):84-89.
[2] 王小群. 风险管理[M]. 上海:上海财经大学出版社,2003.
[3] 中国田径协会. 中国田径协会全国马拉松及相关运动注册赛事日历[Z]. 北京:中国田径协会,2016.
[4] 李雪,冯晓丽,王琰. 路跑热潮下跑步类APP 应用现状与发展困境研究[J]. 辽宁体育科技,2016,38(3):125-128.
[5] 胡静. 浅析黑盒测试与白盒测试[J]. 衡水学院学报,2008,10(1):30-32.