赵叶梅*,胡静,宋铁成
车载多模通信终端系统管控中心的设计与实现
赵叶梅*,胡静,宋铁成
(东南大学信息科学与工程学院,江苏南京,211102)
针对汽车后服务领域存在的客户粘性较低等问题,本论文提出了车载多模通信终端系统的总体方案,设计与实现了其管控中心部分。管控中心主要由Web应用、监听服务器和数据库三部分组成,本论文采用了MySQL数据库存储系统需要的后台数据;本论文采用了ASP.NET三层架构实现Web应用,为用户提供了简洁友好的用户界面;本论文采用了SuperSocket框架实现监听服务器,它可以监听客户端的连接请求,实现管控中心与车载终端、手机App端的数据通信。
车联网;ASP.NET;MySQL;SuperSocket
随着中国的汽车市场逐渐走向成熟,整个行业的竞争将逐步聚焦到汽车后服务领域。然而大多数4S集团在汽车后服务领域面临着服务同质化严重,保养履约率不稳定,客户粘性较低等问题。针对这些问题,本论文提出了车载多模通信终端系统的总体方案,设计与实现了其管控中心部分。管控中心提供了简洁友好的用户界面,并为不同权限的系统用户提供了不同的功能,它可以结合手机应用程序实现对车辆的远程监控和管理。
车载多模通信终端(简称C-Box)系统的总体方案设计如图1所示,该系统主要由车载终端、车辆仿真终端、手机终端以及管控中心四个部分组成。其中,车载终端是管控中心、手机终端与车辆仿真终端之间进行数据通信的处理中枢,它集成了定位、导航、通信等多项功能;车辆仿真终端模拟车辆收到管控中心指令后的各项行为,如打开/关闭车门、启动/关闭空调等;手机终端实现了手机租车、远程车辆诊断、预约保养、远程控制等多项功能;管控中心是本论文的主要研究点,一方面,它为用户提供了简洁友好的显示和操作界面;另一方面,它监听来自车载终端和手机终端的用户请求,并对其进行反馈和处理。
图1 车载多模通信终端系统的总体方案
本论文的主要研究点是车载多模通信终端系统管控中心的设计与实现,本节给出了管控中心的总体方案,并分别从软件功能模块设计、数据库的设计、Web应用的设计、监听服务器的设计四个方面来对管控中心的软件设计部分进行介绍。
管控中心软件主要面向PC平台,它的实现基于Windows操作系统,并运行在.NET平台上。管控中心的总体方案设计如图2所示,主要包括Web应用、监听服务器和数据库三部分。Web应用为用户提供了简洁友好的显示和操作界面,并为不同权限的系统用户提供不同的功能。监听服务器是管控中心的数据处理中心,一方面它监听来自C-Box或者手机App发送的请求数据,并予以反馈,另一方面,它是Web应用与C-Box、手机App进行数据通信的桥梁;数据库用于存储系统的各项后台数据。
系统采用IIS作为Web服务器,IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等。在本系统中,IIS的主要功能是Web服务器,用于部署系统的UI页面程序、业务逻辑处理程序以及数据访问逻辑程序。
图2 管控中心的总体方案
根据应用场景需求,将管控中心软件部分分为三大模块:租车中心模块、4S店模块以及服务中心模块。三个模块的功能框图如图3所示,每个模块都具有登录认证和权限管理功能。另外,租车中心模块实现了租赁管理、车辆状态监控以及实时跟踪功能,4S店模块实现了远程车辆诊断以及预约保养功能,服务中心模块实现了远程控制车辆、按键服务功能等。
图3 功能模块框图
2.2.1 租车中心模块
租车中心模块实现了登录认证、权限管理、租赁管理、车辆状态监控以及实时跟踪功能。
(1)登录认证。本系统需要通过网站来实现,并且通过用户信息进行登录控制。
(2)权限管理。本系统的用户包括普通用户、管理员以及超级管理员三类。因此在账户的设计上需要增加权限字段,来限定不同账户的功能。在登录认证时,可以通过权限控制来返回不同的操作页面0。
(3)租赁管理。用户可以通过系统网站进行租车或者续租操作;系统需要维护车辆的租赁信息,若检测到用户未按规定日期归还车辆、超出电子围栏、拆卸车辆器件等情况,则采取相应的措施来提醒、警告甚至远程控制车辆。
(4)车辆状态监控。C-Box端会定时采集车辆运行时的车速、引擎温度、转速、车内温度、位置信息、胎压、安全气囊等数据信息,并将这些信息发送给系统进行存储和分析。
(5)实时跟踪。系统通过跟踪车辆的动态数据,如行驶的速度、方向、具体位置信息等,并调用第三方的地图应用,在网站上实时显示车辆行进路线。
2.2.2 4S店模块
4S店模块实现了登录认证、权限管理、远程车辆诊断以及预约保养功能,其中登录认证和权限管理功能与租车模块类似,此处不再介绍。
(1)远程车辆诊断。若车辆突然发生故障,用户可以通过手机App请求对车辆进行远程诊断。管理员可以利用系统网站以及采集到的车辆状态信息、故障码等来对车辆进行分析诊断,并将诊断结果反馈给用户。
(2)预约保养。用户可以通过系统网站为车辆预约保养;管理员可以对用户的预约进行处理,并将预约结果反馈给用户。
2.2.3 服务中心模块
服务中心模块实现了登录认证、权限管理、远程控制车辆、按键服务功能等功能,其中登录认证和权限管理功能与租车模块类似,此处不再介绍。
(1)远程控制。用户可以对车辆进行远程控制,包括远程开启/关闭车门、远程开启/关闭空调、远程启动/关闭发动机等。
(2)按键服务。用户可以通过打电话或者按下车辆上的按键连接服务中心,实现自动导航、寻找停车点等功能。
车载多模通信终端系统涉及到了三种类型的数据,固定数据、动态数据以及业务数据。固定数据包括车辆信息、用户信息等,这些信息的数据量很小,不会频繁改动,因此不会对数据库性能造成太多影响。动态数据包括车辆状态信息、位置信息等,这些信息的数据量很大,会频繁增加,有较强的实时性要求,对数据库的压力在于频繁的写操作。业务数据包括租赁管理数据、诊断记录、预约记录等,数据会不断变动,但不会很频繁。
由上述的分析可知,关系型数据库即可满足对以上三类数据的存储和操作。关系型数据库是指采用了关系模型来组织数据的数据库,现在非常流行的关系型数据库主要有Oracle、MySQL等。Oracle是大型的关系型数据库,它凭借自身结构严谨、高可用、高性能的优点,越来越广泛地被应用到如电信、金融、政府、交通、能源等传统行业的数据化业务中,成为基于大数据访问的重要数据库平台,缺点是价格昂贵,成本高0;MySQL是一个开源数据库,体积小,速度快,并且拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用而不用担心其稳定性。由于需要控制成本,本系统选用了开源的MySQL数据库。
Web应用的主要功能是为系统提供简洁友好的展示和控制界面,并为不同权限的系统用户提供不同的功能,例如在租车模块中,Web应用为普通用户提供了租车、还车、查看车辆行驶路线等功能,为管理员提供了租赁管理、远程控制车辆等功能。另外,Web应用需要处理大量的交互和反馈逻辑,如从数据库读取数据展示在页面上或者将用户输入的相关信息存储到数据库中。针对目前软件开发领域的系统架构,主要有两种架构可供选择:第一种是客户端/服务器模式(Client/Server模式,简称C/S模式),第二种是浏览器/服务器模式(Browser/Server模式,简称B/S模式)。由于B/S模式操作简单,用户只需要安装通用的浏览器就可以访问Web应用,而且它的维护和升级方式简单,所以系统选用了B/S模式来实现Web应用。
系统采用了ASP.NET三层B/S架构实现该Web应用,ASP.NET三层架构是目前软件体系架构设计中最常见且最重要的一种结构,分为用户表示层(UI)、业务逻辑层(BLL)以及数据访问层(DAL)三层,使得用户操作部分、逻辑操作部分和数据访问部分分开,很好地实现了高耦合低内聚的思想。Web应用的整体架构如图4所示,该图主要体现了ASP.NET三层结构各层间的依赖关系和数据传递方向,即高层请求低层,低层响应高层。
(1)用户表示层实现内容的展现和用户的交互,它封装了人机界面的所有表单和组件,是应用系统与系统用户之间的直接接口。一方面,用户表示层用于显示业务逻辑层动态传送过来的数据信息,另一方面在用户录入信息并对信息经过简单的校验后,它将信息传送给业务逻辑层进行后续处理0。
(2)业务逻辑层实现业务逻辑和验证规则,在为用户表示层提供功能调用的同时,它又通过调用数据访问层所提供的功能来访问数据库。
(3)数据访问层只能被业务逻辑层访问,并且系统只通过它访问数据库来获取数据。当数据访问层根据业务逻辑层的要求连接数据库、调用存储过程或执行MySQL语句时,它主要完成对数据表的增、删、改、查等操作。
(4)实体类是描述一个业务实体的类,即将数据表中的每一个字段定义成属性,并将这些属性用一个类封装,这个类就称为实体类。用户表示层、业务逻辑层以及数据访问层都依赖于业务实体,各层之间数据的传递主要是实体对象。
图4 Web应用整体架构图
Web应用需要为用户提供简洁友好的操作界面,该界面有前台、后台之分,前台即各个后缀名为.aspx的文件0,由ASP.NET框架的相关控件实现,在用户界面中控制这些基本控件的位置,大小以及排版等属性即可完成页面布局;后台即各个后缀名为.aspx.cs的文件,用于响应前台的触发,调用业务逻辑层的函数,处理具体业务。
NET Framework提供了两种方法访问MySQL数据库,一种是使用MySQL推出的MySQL Connector/Net组件,该组件是MySQL为ADO.NET访问MySQL数据库设计的.NET专用访问组件,另一种是使用ODBC.NET,它的DataProvider是标准的.NET框架的一部分,可自动安装。在Web应用的实现过程中,系统选用了第一种方式,即使用 ADO.NET访问MySQL数据库。ADO.NET是一种基于.NET Framework的数据访问技术,通过操作Connection(连接数据库)、Command(执行SQL语句)、DataAdapter(填充DataSet)、DataReader(读取数据库)以及DataSet(数据集)五大对象,使得应用程序可以连接到数据存储,并以各种方式操作存储在其中的数据。
监听服务器是与车载终端以及手机App直接进行交互的服务端组件,从功能需求角度来说,一方面它监听来自C-Box或者手机App发送的请求数据,并予以反馈;另一方面,它是Web应用与C-Box、手机App进行数据通信的桥梁。经过分析可知,监听服务器的主要功能是实现可靠的双向网络数据传输,对网络连接的安全性和可靠性要求较高,因此系统选择了基于TCP/IP协议的Socket通信实现监听服务器与Web应用等应用程序之间的数据通信,TCP协议的三次握手在很大程度上保证了连接的可靠性。
Socket是一个用于表示IP地址以及端口的通信链的句柄,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个Socket,它是支持TCP/IP协议的网络通信的基本操作单元0。对于Socket连接而言,有两种实现方式,一是采用原生的Socket编程模型,使用Socket组件自己去定义监听和数据处理,例如C#中的Socket类,二是采用网络编程框架,如.NET环境下的SuperSocket框架等。由于第一种方式在客户端数量很庞大的时候,服务端的运行效率低下,系统未采用第一种方式。SuperSocket框架是一个轻量级,跨平台而且可扩展的.NET/Mono Socket服务器程序框架0,使用它可以快速创建服务器Socket程序而不需要处理很多底层细节。它的主要作用在于建立服务端与客户端或者其他端点的通信,对其进行管理和维护,并提供常见的通信协议、解析等,也可以自定义协议和协议处理相关接口,可直接作为应用程序的服务器应用程序框架。另外,因为车载多模通信终端系统包含三个独立的功能模块(租车中心、4S店以及服务中心),且三个模块之间相互独立,监听服务器需要同时监听对这三个模块的通信请求,而 SuperSocket框架支持多监听器,在一个服务器实例内能监听多个端口,所以本系统选用了SuperSocket框架作为服务器应用程序框架。
监听服务器的整体架构如图5所示,它运行在.NET Framework平台上,并集成了SuperSocket框架以及ADO.NET组件。SuperSocket框架用于监听来自C-Box或者手机App发送的请求数据,并予以反馈;类似于Web应用,监听服务器也利用了MySQL Connector/Net组件,使用 ADO.NET访问MySQL数据库。
图5 监听服务器整体架构图
SuperSocket的请求处理模型图如图6所示,共分为三个阶段,第一阶段为SocketSession会话阶段,第二阶段为AppSession会话阶段,第三阶段为消息处理阶段。在SocketSession会话阶段,服务端启动监听器,进入监听状态并等待客户端的连接。当接收到一个客户端的请求后,服务端验证该请求并创建一个SocketSession会话,该会话具备收发消息的能力,但是无法处理数据。在AppSession会话阶段,由AppServer(一个Socket监听对象)根据SocketSession创建AppSession会话,并启动该会话。在消息处理阶段,AppSession首先对原始数据完整性和过滤特性进行处理,主要是过滤掉一些不合法的消息或者具有某种特性的消息,然后将过滤后的消息进行协议解析并封装成RequestInfo一类的结构,即将过滤后的流数据进行拆分,并封装成多个RequestInfo实例,最后根据RequestInfo实例中不同的命令字,将其路由给具体的命令执行单元进行处理。
图6 SuperSocket请求处理模型图
监听服务器和其他应用程序之间进行通信时,要约定好通信协议。SuperSocket框架中内置命令行协议、结束符协议、固定数量分隔符协议、固定请求大小的协议以及带起止符的协议等。由于SuperSocket默认的命令行协议即可满足本系统的通信需求,所以本系统中采用了命令行协议。命令行协议使用空格来分割请求的命令字和消息体,并定义了每个请求必须以回车换行(“ ”)结尾。如表1所示,根据要实现的功能需求,本系统定义了多种命令字,它们包含不同的消息体,并代表了不同的命令。在SuperSocket使用命令行协议,所有接收到的数据都会转化成RequestInfo实例,最后路由给图6所示的各个具体的命令执行单元进行处理0。
表1 部分Socket通信协议命令定义
成功搭建硬件平台后,本系统和C-Box平台、手机App、车辆仿真软件进行了联调和测试,证明该系统可以正常运行。系统主要包含三个功能模块,租车中心模块,4S店模块以及服务中心模块。在C-Box工作在租赁模式下时,对租车中心模块的功能进行了测试,实现了租赁车辆管理、用户网上租车还车、车辆状态监控以及对车辆实时跟踪等各项预期的功能,如用户租车页面运行时如图7所示,用户可以在该页面查询可供租借的车辆信息,点击“租车”链接即可跳转至租车页面进行相应的操作。
图7 用户租车页面
在C-Box工作在常规模式下时,对4S店模块的功能进行了测试,实现了远程车辆诊断以及为车辆进行预约保养等各项预期的功能,如管理员远程诊断页面运行时如图8所示,管理员可对车辆的相关状态信息和故障码进行分析,并将诊断结果反馈给用户;在C-Box工作在常规模式下时,对服务中心模块的功能进行了测试,实现了远程控制车辆、按键服务等预期的功能。
图8 远程诊断页面
在进行联调时,SuperSocket框架监听C-Box以及手机App的连接请求时,经常会出现部分客户端连接不上服务器的问题。经过排查发现,是由TCP连接中TIME_WAIT状态过多引起的。在高并发短连接的TCP服务器上,当服务器处理完请求后主动关闭连接,大量的Socket端口会处于TIME_WAIT状态,部分客户端就会显示连接不上服务器。为了解决这个问题,一方面系统修改了TIME_WAIT的超时时间参数,缩短端口的超时时间,加快回收;另一方面系统修改了两个内核参数(net.ipv4.tcp_tw_reuse和net.ipv4.tcp_tw_recycle),将这两个参数置为1,即打开了系统的TIME_WAIT重用和快速回收,通过调整系统的各项参数最终实现了服务器端和客户端的正常通信。
本论文主要完成了车载多模通信终端系统管控中心的设计和开发工作,管控中心为用户提供了简洁友好的用户界面,并监听来自车载终端和手机终端的用户请求,对其进行反馈和处理,它结合手机应用程序实现了对车载终端的远程监控和管理。
[1] 虞洋. 基于车联网的汽车远程信息系统服务器软件设计[D]. 浙江大学, 2016.
[2] 于颖. Oracle的性能调整与优化分析[J]. 信息安全与技术, 2013, 4(02): 54-56.
[3] 乔冰. ASP.NET三层架构的概念及关系分析[J]. 电子世界, 2013, (02): 94-95.
[4] 缪苏津, 徐圆, 胡静,等. 智能公共交通物联网管控中心的设计与实现[J]. 信息化研究, 2013, (4): 7-11.
[5] 罗杨. 基于互联网的多媒体信息发布系统的设计与实现[D]. 重庆大学, 2016.
[6] 刘朴, 莫家勤. 基于SuperSocket的北斗终端数据接收服务的设计与实现[J]. 华中师范大学学报(自然科学版), 2016, 50(01): 32-37.
[7] Ou D X, Yang Y C, Xu T L. Analysis on the Development of Vehicle Telematics in China[J]. Applied Mechanics & Materials, 2012, 209-211, (396): 992-997.
Design of the Control Center in Vehicle Mounted Multimode Communication Terminal System
ZHAO Yemei*, HU Jing, SONG Tiecheng
(School of Information Science and Engineering, Southeast University, Jiangsu Nanjing, 211102, China)
Aiming at solving the problem of low customer stickiness in the field of automative aftermarket, this paper proposes the overall scheme of the vehicle mounted multimode communication terminal system, designs and implements the control center part of this system. The control center consists of three parts, Web application, monitor server and the database. This paper uses MySQL database to store the background data needed by the system. This paper uses the ASP.NET three layer architecture to implement the Web application, providing the user with a simple and friendly user interface. This paper uses the SuperSocket framework to implement the monitor server, which can monitor the connection requests coming from the client and realize communication between the control center, the vehicle terminal and the mobile App.
IOV; ASP.NET; MySQL; SuperSocket
10.19551/j.cnki.issn1672-9129.2018.01.037
TP311
B
1672-9129(2018)01-0095-04
赵叶梅, 胡静, 宋铁成. 车载多模通信终端系统管控中心的设计与实现[J]. 数码设计, 2018, 7(1): 95-98.
ZHAO Yemei, HU Jing, SONG Tiecheng. Design of the Control Center in Vehicle Mounted Multimode Communication Terminal System[J]. Peak Data Science, 2018, 7(1): 95-98.
2017-09-10;
2017-11-06。
国家自然科学基金资助项目(61771126);国家自然科学基金资助项目(61372104)。
赵叶梅(1993-)女,东南大学信息科学与工程学院电子与通信工程专业。E-mail:13124774690@qq.com