1引言
随着综合体育赛事的发展和人们关注方式的增加,采用先进的技术手段,为赛场内外关注体育赛事的人们提供快速、准确、可靠、多渠道的赛事信息发布服务已成为亟待解决的问题。本论文提出一种基于网络技术的竞赛信息发布系统设计方案,构建了竞赛信息采集与发布系统网络架构,实现了竞赛信息的实时采集与多渠道发布,用户能够方便快捷地查询综合体育赛事中各个单项的竞赛日程、竞赛实时成绩、竞赛奖牌、竞赛总分名次、新纪录等赛事信息。论文在实时性、通用性和跨平台性的实现等方面进行了重点阐述。该方案已应用于“中华人民共和国第十二届运动会”的竞赛信息发布,满足了竞赛实际应用需求。该设计方案具有通用性,通过移植可实现不同赛事信息发布的需求,同时也可为其它信息发布应用领域提供借鉴。
2系统概述
2.1系统结构
竞赛信息发布过程分为信息采集、传输、处理、发布与展示。竞赛信息发布系统的整体架构在设计上分为两大模块。第一块是竞赛信息采集与处理模块,负责为信息发布系统提供信息,而其数据来源于外围接口模块中不同场馆的现场成绩系统;第二块是竞赛信息发布模块,负责发布信息供用户查看,采用B/S网络结构模式,从竞赛信息采集与处理模块接收竞赛信息后,经内部核查系统审核,发布给用户,用户通过互联网,以各种渠道去查看发布与展示的竞赛相关信息,系统整体架构如图1所示。
2.2系统组网模式
根据竞赛信息发布准确、实时、稳定的需求,系统的组网模式设计为“场馆局域网”、“竞赛专网”和“公网Internet(互联网)”三级。每个现场成绩系统连接在各自的场馆局域网内,为信息发布提供数据来源。外围接口模块通过数据交换平台与整个竞赛信息发布系统连接在竞赛专网内。竞赛信息处理系统、竞赛信息发布数据库、内部核查系统与竞赛信息发布服务器共同连接在竞赛专网内,信息经核查,通过Internet与各个用户所用设备进行连接,为现场竞赛和公共查询服务。
3竞赛信息采集与处理模块设计
竞赛信息采集与处理模块负责竞赛数据的实时采集、传输与处理,采集并处理从现场发来的竞赛数据,存储在竞赛信息数据库内,为竞赛信息发布模块提供发布所需信息。该模块包括竞赛信息采集和竞赛信息处理两个部分。
3.1竞赛信息采集
竞赛信息采集模块完成竞赛数据的采集并存储。竞赛数据来自各个现场成绩系统,采集的数据有两种形式,一种是在某一阶段比赛完成后生成的表单文件,通常为PDF报表。另一种是竞赛实时数据,一般以XML可标记性语言文件作为数据传播的桥梁[1]。以往竞赛中普遍发布的只是第一种方式的表单文件,如比赛结束后生成的成绩公告表,可用于查询比分,方法是将采集的表单文件和对应的URL地址分别保存到竞赛信息发布服务器和竞赛信息发布数据库。但是来自各个现场成绩系统的表单文件,只有某一阶段比赛结束后才能完整生成,特点是完整性强而实时性差。为满足用户实时查看比赛信息的需要,系统在每一次竞赛信息变化的时间点,采集实时成绩并发布,使用XML作传输协议,实现现场成绩系统与竞赛信息发布系统间的信息交互,完成竞赛数据实时采集。如十二届全运会“马术项目场地障碍团体第一轮”比赛进程中采集到的XML数据格式的实时成绩信息,如图2所示。Message是根节点;Row是一级节点,按出场顺序记录包括上海、北京、新疆等代表团在本轮的实时成绩信息;二级节点Row1,展示各代表团所有运动员该轮的实时成绩信息。
3.2竞赛信息处理
竞赛信息处理模块主要负责对采集到的XML数据进行解析、计算、归纳与存储,并将处理所得信息提供给竞赛信息发布模块。根据竞赛规程将解析后所得数据进行如积分计算、个人名次排名、团体名次排名、奖牌统计等处理并存储,用于综合信息的发布。
4竞赛信息发布模块设计
竞赛信息发布模块负责将竞赛信息发布数据库中的信息,发布到用户使用的设备上,供用户查看。该模块面临着发布渠道多样、用户终端多样和操作系统平台多样的问题,为达到构建通用的竞赛信息发布方案的目的,系统采用B/S结构模式[2],将发布系统中相对稳定的公共业务放在服务端,负责发布数据与页面的构建和对客户请求的响应;客户端则采用浏览器模式,通过与发布终端配套的信息发布HTML页面模版完成竞赛信息的浏览,竞赛信息发布模块原理如图3所示。客户端采用HTTP通信协议发送请求,服务端针对不同的请求参数完成响应,并将数据或页面返回给客户端,两者之间数据交换的信息载体主要采用URL地址和XML、JSON类型文件。
4.1客户端
客户端完成信息的请求、接收、完整页面的生成与展示。客户端的设计重点在于进行多渠道发布。针对发布渠道单一性,在传统PC设备的基础上增加移动设备,解决的关键问题是跨平台,跨平台是指开发的应用可以在不同操作系统平台下运行。(1)设计原理客户端使用JS模板引擎BaiduTemplate[3],它将页面模板和传入数据进行绑定,生成完整的展示页面。信息请求接收的工作流程则随发布渠道的不同而各有特点。对于PC端或移动App端,当用户首次浏览PC端网页或安装App应用程序时,实时请求服务端的页面资源。各客户端在运行期间,如果下载到本地的资源与服务端保持一致,则访问本地文件,如果服务端资源有所更新,则对比时间参数,重新请求时间参数不一致的资源文件。由于现场数据是实时更新的,客户端需实时发送HTTP请求数据资源。请求的数据有两种,第一种是表单文件,展示的是URL地址对应的表单文件内容。另一种是竞赛实时数据,展示的是实时信息页面。对于微信公众平台客户端,客户端关注微信公众号后,可请求两种数据。一种是普通消息,以XML格式进行数据请求,微信公众平台进行消息转发,客户端接收从服务端返回的XML格式数据。另一种是链接消息,无需通过微信公众平台进行消息转发,由客户端直接向服务端请求。(2)跨平台解决途径客户端设计面临的最大问题是客户端平台多样化。针对PC端,目前已有多种移植方案,本系统采用ASP.NET[4],因为ASP.NET是基于通用语言编译运行的程序,其实现完全依赖于虚拟机,所以它拥有跨平台性,ASP.NET构建的应用程序可以运行在几乎全部平台上。移动App端设计借助移动终端浏览器的跨平台性处理业务逻辑。系统运行时,保存在竞赛信息发布服务器的资源文件会被打包下载到客户端,由浏览器解析数据并运行程序,由于大部分移动客户端的浏览器都能运行HTML5、CSS和JavaScript,是跨平台信息发布的基础。运用核心库jQueryMobile提供的统一的移动UI框架,自适应于各类尺寸规格的移动设备,实现页面随设备大小不同予以自适应展示的功能。微信公众平台客户端,则利用微信平台开放的接口本身的跨平台服务实现二次开发[5]。
4.2服务端
(1)设计原理服务端主要负责页面模板和URL等资源文件的存储、数据库操作、数据响应包括数据解析和数据构造等。存储过程中,服务端的竞赛信息发布数据库存储全部满足业务需求的页面模板及从竞赛信息采集与处理模块接收的资源文件。数据响应过程中,服务端接收不同渠道的客户端发来的请求参数。若请求参数请求的是表单文件,将URL地址所在表单类文件发送至客户端,由于现场成绩系统生成表单文件信息量较多,页面较大,不适于在屏幕相对较小的移动客户端直接展示。若请求参数请求的是竞赛实时数据,根据参数找到相应的方法及路径,访问竞赛信息发布数据库,将数据反馈给客户端。系统后台选择ASP.Net开发环境,采用竞赛信息发布服务器IIS及开发工具VisualStudio2012[4]。(2)公共业务的提取与设计为提高服务端的开发效率,对信息发布系统服务端进行功能划分,模块间遵循高内聚低耦合的基本原则,将具体业务操作与抽象访问逻辑进行分离,将业务逻辑抽象成为类的方法,数据访问、对请求消息的解析、对数据的构造等公共业务,可抽象为公共业务对象,只需调用公共接口函数即可实现相关功能[6]。可以在不同项目中重用公共业务部分的设计模块,无需重复编写大量代码。主要的通用公共类有如下几种:对数据进行访问的类,主要包括数据表的增加、删除、修改、查询等功能,实现从数据库或竞赛信息发布服务器资源文件中获取数据值的功能;对请求消息进行解析的类,主要功能是解析客户端请求,获取请求参数,根据请求参数调用数据访问类中的相应方法;对数据进行构造的类,主要是以客户端和服务端之间统一的数据结构为标准,将数据访问类中获取的数据创建成客户端所需的类或XML文件,也可将获取到的数据格式转化成JSON类型文件。
4.3数据通信
(1)多平台的数据共享由于数据来源及数据去向的未知性,系统还需解决数据在不同平台的共享问题。基于网络通信协议,需要设计多个专用接口向多个模块进行通信,把竞赛信息发布服务器当成一个接口,该系统数据通信示意图如图4所示。现场成绩系统与竞赛信息发布数据库传输XML文件采用SOAP协议,传输PDF文件采用FTP协议;竞赛信息处理系统与竞赛信息发布数据库采用UDP协议;竞赛信息发布服务器与各种客户端之间采用HTTP协议[7];竞赛信息发布服务器与竞赛信息发布数据库之间采用CGI通用网关接口及各公司提供的专用接口API。(2)实时性通信解决方案信息发布系统最基本的要求是确保其高效性和实时性。系统使用jQuery、jQueryMobile分别作为PC端和移动终端的前端开发框架[8]。用此框架,一方面利用HTML5和CSS3快速开发移动网页,HTML5的LocalStorage可以对页面资源进行缓存,以此减少HTTP请求数,避免频繁访问网络资源,牺牲空间来换时间,提高发布效率。另一方面可以提供异步请求的关键技术Ajax。Ajax技术可以按需通过竞赛信息发布服务器去竞赛发布系统数据库请求业务数据,最大程度地减少冗余请求,减少数据下载总量,减少带宽消耗。前端页面可快速实时的更新下载数据,实现客户端与服务端之间的实时通信。
5系统运行与实现
中华人民共和国第十二届运动会共有40个单项,可分别在PC端网页和移动终端上发布竞赛信息。图5、图6所示分别为马术项目竞赛信息发布系统的PC端、移动App端的发布页面图。用户通过PC端,按比赛名称下的项目轮次,查看实时比赛结果,下载报表下的秩序单、成绩公告等查看赛事报表;通过移动App端,查看各个运动员的比赛成绩,整个竞赛信息发布系统提供了友好服务。
6结束语
结合竞赛信息发布系统的需求,基于网络技术进行了本课题研究与设计,实现了竞赛信息的采集与发布,对软件通用、软件架构等进行分析,适应目前移动终端等多平台多渠道发布形式。该方案已应用于“中华人民共和国第十二届运动会”的竞赛信息发布,满足了竞赛实际应用的需求,验证了系统设计方案的可行性。该设计方案具有通用性,通过移植可实现不同赛事信息发布的需求,同时也具有可扩展性,随着平台终端类型的发展,还可支持发布渠道的扩展,该设计思路也可用于其它信息发布应用领域。
作者:高晴 牟艳 陆辉 王灵利 单位:河海大学物联网工程学院