程序终端升级管理客户端
系统总体可看成两部分组成,升级管理后台及车载终端系统,二者通过网络进行交互。终端部分又包括终端升级管理程序及终端运行程序,本文档主要针对终端升级管理程序的设计及实现, 终端升级管理程序主要包括,APP 升级, 协议升级,升级管理及跟踪,终端运行监控。
2.1 终端模块详细设计图
2.2 终端升级管理详细流程图
2.3 升级过程活动图
3.1 综合服务详细类图
3.2 数据访问层模块设计
3.2.1 数据访问操作类图
3.2.2 数据实体设计类图
3.3 日志服务设计
记录日志,做成一个带缓冲的服务,日志记录模块,时间,级别,类别,内容等信息。
- 记录最近 10 天的日志,历史日志删除;
- 报送事件单独记录,保留历史记录 1-3 个月,不在此类;
3.3.1 日志服务类图详细设计
3.4 程序监控运行及事件报告
监控终端的运行并相后台报送终端的运行情况
- 监控指定程序的运行情况;
- 监控数据报送情况;
- 设计事件格式,通过 HTTP 请求将日志报送到后台;
- 后台决定解析格式,后台通过日志进行分析
- 向后端报送事件,后台服务线程;
3.4.1 事件服务类图
3.4.2 终端事件报送流程
3.4.3 终端数据发送监控流程
3.5 版本及配置管理
3.5.1 版本信及配置管理详细类图
3.5.2 版本信息维护管理
主要进行本地版本及配置的管理,记录每一次更新变化的记录,主要进行程序及协议版本管理,主要包括版本类型,终端程序版本号,程序描述信息,程序下载地址,程序本地存储地址,程序文件状态等信息管理管理。
3.5.3 文件下载及追踪
完成文件的下载及保存,监听文件变化情况,删除指定版本的文件。包括文件名称,文件路径,对应的版本信息管理。服务客户端模块详细设计
4.1 设计理念
终端管理程序维护运行程序需要的所有版本信息,包括文件存储;
终端运行程序接收到来自终端升级管理程序的完整的配置列表,列表详细给出了配置的基本信息及存储位置,终端程序使用回溯法启动,直到所有版本全部尝试失败,才宣告失败;
终端接受来自插件管理器的版本,通过版本信息进行相关操作的选择;
终端运行程序可以向终端升级管理程序报送事件,并最终报送到后台服务。
建议:
建议使用插件机制,通过动态加载一般不升级终端程序,除非进行大的更改,否则不进行终端程序的升级,终端程序升级属于较大升级,启动时检查到升级版本已经下载完成后必须进行升级。主要功能都封装在插件中,每次只升级插件,插件由终端管理程序进行管理,负责版本管理及下载,并提供插配置件信息给终端运行程序,终端程序通过接口获取即可。
4.2 服务客户端模块整体类图
4.3 异常类图关系
4.4 日志提交详细类图
4.5 事件提交详细类图
4.6 版本信息交互详细类图
4.7 工具类详细类图
4.8 终端插件机制设计
插件机制运行,主要用于终端程序,终端升级管理程序负责管理插件及配置,监控并报送程序运行状态。至于如何运行,终端管理程序不做其他要求。目前插件机制完全由运行程序决定,本模块提供的插件机制仅供参考,目前只考虑支持 Jar 包升级及配置文件升级。几大要点:
- 插件机制属于运行程序自己的设计,本平台推荐使用插件机制,但是不做任何要求,是否使用插件机制,完全由运行程序自己决定,当然更不关心运行平台采用何种插件机制;
- 本平台提供配置或程序的管理功能,但是本平台并不关心平台指定的到底是何内容,目前支持三种类型的版本管理,包括运行程序, 插件及配置三种, 每种信息目前都是单例配置;
- 本平台提供一个支持 jar 包的演示的插件机制以供参考,运行程序可以参考,插件的设计由程序开发者自己保障,平台不提供过多的支持及限制。
4.8.1 终端插件机制详细类图
4.8.2 插件机制运行活动图
5.1 终端和远程服务的通信接口
API 交互通信使用 HTTP 获取车辆的版本及配置信息;
报送运行事件,如升级故障,运行故障, 程序异常等;
下载升级文件;
上报终端运行版本的版本信息及配置信息;
5.2 应用程序开发接口
下面列出相关的接口,此处仅仅列出作为参考,本处不维护接口的最新状态,完整的且最新的信息参见开发文档说明。