技术框架:springCloud + springBoot + Maven + mybatis系统介绍:主要是车、TBOX的交互。核心功能为车辆远控、TBOX注册、TBOX登录、OTA升级、车辆行程、驾评等,整个项目主要涉及三个部分,TSP平台、APP、GATEWAY;1. APP:旨在为车主提供车联网服务,比如远控功能,可远程操作开启/关闭发动机,解锁/上锁车窗等功能;2. TSP平台:旨在对客户、车辆、TBOX、SIM卡等信息的管理,包括可对TBOX进行OTA升级等一系列的功能模块;3. GATEWAY:主要是用于TBOX的交互,比如,我们可以采集TBOX的 CAN数据信息;采集车辆点火熄火信息;采集TBOX的报警信息(防盗,异动,碰撞等);通过TBOX注册,登录,记录TBOX、SIM、VIN的绑定关系等;主要工作:1. 负责提供APP远控接口(APP通过MQ将远控指令下发至网关,网关组装成TBOX可识别的probuf协议,下发至TBOX端,TBOX端在60s之内返回给网关远控的结果,网关将结果记录并返回给APP端显示);2. 负责APP的行程(主要是将成对的点火熄火匹配,形成行程,再将这段行程中的GPS信息描绘成行程轨迹);3. 负责APP的驾评(主要对每一段行程进行某些行为的统计,比如每段行程中急加速和急减速的次数,未系安全带的次数等);4. 负责TSP的OTA升级(先上传升级包;然后添加升级任务,选择要升级的设备和升级包;接着将升级任务下发至网关,网关经过一系列逻辑判断,下发至TBOX;随后TBOX经过对升级包的检验等操作返回至网关升级状态;最后网关再将升级结果返回至TSP平台);5. 负责TSP数据可视化(主要是展示APP的活跃用户数,车辆的活跃数等基础指标,以及操作行为的指标,比如发动机指令,寻车指令等。这些数据基本都是来源于APP埋点数据,以及Tbox上报的车辆状态数据,通过ETL,将最终的数据写入至mysql),ETL的过程是:APP埋点,TBOX将数据分为不同的topic写入kafka,大数据通过flume将kafka的数据写入HDFS中,并通过crontab定时执行spark任务,spark从HDFS中读取到数据之后进行清洗,并写入hive和mysql中。6. 负责短信下发功能(主要分普通短信和物联网短信;普通短信,是指登录APP时涉及的验证码,以及车辆碰撞等报警短信,通过http的get请求调用国都短信接口实现;物联网短信,指下发远控功能时,设备处于睡眠状态,需要下发短信将其唤醒,通过SOAP协议通信);7. 负责SIM卡管理功能(因为各个项目的TBOX注册都会涉及到SIM卡,同时唤醒短信也会涉及到SIM卡,所以为了统一管理,我们根据不同的厂商,产品,供应商,通道来管理SIM卡,在TBOX注册平台之前,会根据不同的通道申请一批SIM卡,并将SIM卡上传);难点:1. 前期TBOX上报的数据存储在MongoDB中,后来因为数据量大,导致TSP查询比较慢,之后又将MongoDB做了分片,但是维持了几个月之后,仍旧查询慢,最后舍弃MongoDB,使用了Hbase。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论