王富罗,王 勇
(1.安徽城市管理职业学院 城市建设系,安徽 合肥 231635;2.温州中津先进科技研究院,浙江 温州 325000)
面向移动和云中心的车联网运维系统设计
王富罗1,王 勇2
(1.安徽城市管理职业学院 城市建设系,安徽 合肥 231635;2.温州中津先进科技研究院,浙江 温州 325000)
具有无线通信功能的OBD为车与其他智能设备,例如智能手机的通信交互提供了接口,使得驾驶员可以远程操控车辆。现有的研究大多集中在单个功能的实现,或者仅限于手机-车载系统之间的多功能模块的实现,而忽略了云资源管理系统的影响。通过云资源管理系统,将各个终端获取的数据加密传输整合到云计算中心集中处理和保存,有助于保护用户的隐私,同时有利于长期对车辆的状态信息进行规范监测,提高机动车的保养效率。通过对手机端和远程服务器端系统体系结构的设计,提供了一种可行的通信架构方案,为未来的大规模商用奠定了基础。
OBD;车联网;智能手机;云计算中心;通信架构
近年来,智能车载终端(OBD)随着车辆的不断增长而增多。已有的OBD系统大多只支持单车离线操作,无法满足车联网中实时交互通信的需求。具有无线通信功能的OBD为车联网与其他智能设备,例如智能手机的通信交互提供了接口,使得驾驶员可以远程操控车辆。现有的研究大多集中在单个功能的实现[1],或者仅限于手机-车载系统之间的多功能模块的组合实现[2-3],而忽略了云资源管理系统的影响。通过云资源管理系统,将各个终端获取的数据加密传输整合到云计算中心集中处理和保存,有助于保护用户的隐私,同时有利于长期对车辆的状态信息进行规范化存储及分析,提高机动车的保养效率。
本研究面向实际生产需求,在现有无线车载终端的基础上开发出手机端和云计算中心通信架构以及车载终端与云计算平台之间的系统架构,提供了一种可行的通信架构方案,为未来的大规模商用奠定了基础。
1.1 车载终端流程
如图1所示,GPS定位模块从GPS以1HZ频率获取自身车辆GPS数据,CAN总线模块从CAN总线读取车辆的安防、油耗、异常管理等信息。把从各个模块接收到的数据根据数据格式进行解码抽取所需要的信息,然后再把数据汇总按照一定的格式打包成字节数组,通过socket连接发送到远程的服务器。
图1 车载终端概要设计图Fig.1 Car terminal profile design
1.2 车载终端与云服务器接口
方法getGPSinf类型为void,用于收集GPS的相关信息;方法ReadCanBus为void类型,用于读取Can总线传来的数据;方法PackData类型为void把从GPS和CAN总线接收到的数据解析打包成字节数组;方法ConnentToServer类型为void,用于车载终端与server建立socket连接,其中的参数ServerIP类型为Java的String类型;方法sendcurrentinf把打包后的当前车载终端的数据传给服务器;方法RemoteAnswer接收服务器的命令,根据命令进行相关的响应,并向服务器发送反馈命令如表1所示。
表1 命令格式
手机端系统主要是负责与远程服务器端系统的通信,获取车载终端上传的实时状态数据,并将控制命令通过远程服务中心向车载终端发布。
2.1 系统框架选择
网络编程中常见的两种编程结构,C/S(客户端/服务器架构)和B/S(浏览器/服务器架构)。C/S架构的优点是开发灵活,可以根据实际需要进行开发,其缺点是特定客户端和特定的服务器端通信。对于B/S架构的优点是,开发时只需开发服务器端,维护方便[4]。考虑到手机端应用中对网络编程的灵活性要求比较高,而仅仅通过浏览器难以胜任;再者,手机端应用无需做到跨平台,只需在安卓系统上运行。综上所述,C/S架构会更适合本系统开发。
2.2 开发工具选择
鉴于整个手机应用仅需和远程数据中心双向传输数据,然后读取本地文件相关内容就可以实现。可以用JAVA网络编程语言来实现整个客户端和服务器端的软件开发工作,灵活性比较强。
2.3 功能概述
手机端应用主要实现以下多个功能:用户管理、远程控制、安防、导航、油耗分析(待添加)、维护保养、异常管理、互动用户文档、用户信息等。
具体实现的功能包括:用户登陆、车辆安全信息监控、车辆位置定位及历史轨迹回放、导航、油耗分析(待定)、维护保养提醒、异常信息显示、提供电子版的保养手册查阅、用户信息查看及密码修改等。
2.4 文件操作与网络接口
手机apk中有两种资源文件,使用两种不同的方式。Raw方法使用如下:InputStream in=getResources().openRawResource(R.raw.test)。或者采用Asset方法,具体用法如下:InputStream in=getResources().getAssets().open(fileName)。
网络接口主要如下:Socket s = new Socket("网址",端口)主要用于建立套接字,DataInputStream中的getInputStream方法取得输入,DataOutputStream中的getOutputStream主要取得输出。boolean phone.log(string userneme, string userpassword)用于传输用户名密码,获取结果,其中userneme是用户名,userpassword是密码,返回值表示信息传输结果,否表示登陆信息未成功传输到服务中心。boolean phone.log_recv()接收登录判断,返回值表示登陆验证结果。phone.control.sendask()发送远程控制请求,boolean phone.control.recv()接收远程控制反馈,否表示服务中心未收到远程控制请求。方法phone.control.sendresultask()发送执行结果请求boolean返回值方法phone.control.recvresult()接收执行结果反馈,否表示远程控制执行失败。方法void phone.safe.askinfo()方法请求车辆安全信息,void phone.safe.recvinfo()方法用于接收车辆安全信息。其他方法包括请求车辆位置信息,接收车辆位置信息,发送车辆总里程和当前保养里程等。
2.5 远程数据中心服务器设计
简单来说,Web Service 就是服务器端的一个对外接口,外部用户能够根据其名字和特性进行远程调用,是一种基于SAOP[5]协议的远程调用标准。系统采用KSOAP[6]实现。
综上所述,手机-远程数据中心系统的总体架构图如图2所示。
图2 手机-远程数据中心架构图Fig.2 Phone-Remote data center architec ture diagram
下面以服务器端向手机端发送车辆的GPS信息为例说明消息从远程云中心下发至手机的实现。首先通过Constants.SERVER_URL配置服务器端的IP和端口,然后创建HttpTransportSE传输对象并实例化SoapObject对象,添加请求的参数以及使用SOAP1.1协议创建Envelop对象。最后通过call方法调用服务器返回的SOAP消息具体实现过程为:
public static String SendData(String tboxID, String date, double latitude, double longitude, int altitude, double speed, double direction) {
String surl = Constants.SERVER_URL+"DataService.asmx";
//()})
String methodName = "SendGPSData";
HttpTransportSE ht = new HttpTransportSE(surl);
ht.debug = true;
SoapObject soapObject = new SoapObject(nsp, methodName);
soapObject.addProperty("tboxID", tboxID+"");
……
SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = soapObject;
envelope.dotNet = true;
try {
ht.call(nsp+ methodName, envelope);
if (envelope.getResponse()!= null){
SoapObject result = (SoapObject) envelope.bodyIn;
……
由于通信过程需要网络支持,所以配置文件里需要加上允许网络访问权限。具体实现如下:
车载终端将获取到手机获取的远程数据中心下发的车辆安全信息,如图3所示。
图3 手机端显示车辆安全信息Fig.3 The velnicle safety information disply on the mobile phone
用户通过手机远程控制车辆“双闪”或者“鸣笛”功能,可以帮助车主寻找车辆,具体工作流程图如图4所示。例如,判断指令类型,如果是开启双闪,则调用Control接口,imsi参数设为登陆时保存的车载设备标识,参数Control_Cmd置为“YH CM 0 :1|1|7 0 ”,向服务器发送双闪开启指令,若Control_Feedback参数返回值为1,在状态栏显示双闪成功开启,为0则显示双闪开启失败。
图4 手机远程控制车辆工作流程图Fig.4 The flow chant of vehicle remote contvol by mobile phone
本文从车载终端与云服务器接口设计,手机端系统和远程数据通信设计两个方面着手,列出了具体实现过程,为车联网运维系统提出了一种可行的通信架构方案。该方案有助于保护用户隐私,有助于对车辆的状态信息进行长期且规范的存储及分析,提高机动车的保养效率。本研究面向实际生产需求,在现有无线车载终端的基础上开发出手机端和云计算中心通信架构以及车载终端与云计算平台之间的系统架构,提供了一种可行的通信架构方案,为未来的大规模商用奠定了基础。
[1]李海涛.基于QNX 的车机蓝牙无线监控系统[J].电子技术应用,2014,40(2):115-121.
[2]罗冰洋,陈苗.基于Android平台汽车监测与诊断终端[J].计算机系统应用 ,2016,5(2):263-267.
[3]蓝星科技公司,2015产品介绍[EB/OL].[2015-2-24].http://www.hiinfo.cn/Showproducts.asp?id=27.
[4]Shari Lawrence Pfleeger, Joanne M. Atlee,软件工程(第4版)[M].北京:人民邮电出版社,2010.
[5]Bill Brogden.SOAP与Java编程指南[M].北京:电子工业出版社,2002.
[6]KSOAP.[EB/OL].[2016-03-24]http://ksoap.objectweb.org/software/downloads/.
[7]王建强,吴辰文,李晓军.车联网架构与关键技术研究[J].微计算机信息,2011,27(4):156-159.
[8]王冬,张菲菲.车联网技术挑战及服务展望[J].物联网技术,2013,3(2):57-59.
[9]马春红,李飞.基于云计算环境的车联网信息服务平台构建[J].测绘与空间地理信息,2014,37(3):83-87.
Designing a Mobile Oriented Cloud Center Based VANET Maintenance System
Wang-FU Luo1,Wang YONG2
(1.Department of City Construction, Anhui Vocational College of City Management, Hefei 231635, China; 2. ZhongJin Advanced Technology Institute Of Wenzhou, Wenzhou 325000, China)
OBD provides an interface for the communication between vehicle and smart devices, such as smart phones, which allows the driver to remotely control the vehicle. Many existing research has concentrated on the realization of one single function, or limited to the implementation of multiple function modules between smart phones and OBDs, they ignored the influence of cloud resource management system. With the cloud computation system, each terminal can send or receive the encrypted data to or from the cloud computing centers, which can help protect the user's privacy, and can regulate the long-term status monitoring for vehicles as well as improve the efficiency of vehicle maintenance. By designing a smart phone and remote server system architecture, we have pave the way for future large-scale commercialization.
OBD;VANET; Smartphone;Cloud Computing Center; Communication Architecture
2016-06-06
王富罗(1988-),女,安徽定远人,助教、硕士。主要研究方向:电子技术。
TP39
A
1673-6125(2016)03-0011-03