业务逻辑规划

基本设计

Fota交互序列图


sequenceDiagram
title: Fota序列图
participant Device
participant Device Manager
participant 业务逻辑
participant 数据库
participant 下载服务器


Device->Device Manager: 查询是否需要升级
Device Manager->业务逻辑: 设备ID是否需要升级
业务逻辑-->>数据库: 记录查询动作
业务逻辑->数据库: 查询设备ID & 生成并初始Session ID
数据库->业务逻辑: 返回升级查询结果 & Session ID
业务逻辑->Device Manager: 返回升级查询结果 & Session ID
Device Manager->Device: 返回升级查询结果 & Session ID
Device->Device Manager: 发起升级请求 & Session ID
Device Manager->业务逻辑: 查询升级请求 & Session ID
业务逻辑->数据库: 查询升级请求 & 改Session ID状态为下载
数据库->业务逻辑: 返回升级包信息
业务逻辑->Device Manager: 返回升级包信息
Device Manager->Device: 返回升级包信息
Device-->>下载服务器: 下载差分包
下载服务器-->>Device: 下载完成
Device->Device: check 数据
Device-->>Device Manager: 通知下载完成 & 准备升级
Device Manager-->>业务逻辑: 通知下载完成 & 准备升级
业务逻辑-->>数据库: 记录Session ID状态为下载成功
Device->Device: 执行升级
Device->Device Manager: 通知升级成功
Device Manager->业务逻辑: 通知升级成功
业务逻辑->数据库: 记录升级成功 & 改Session ID 状态为升级成功归档

flow:
st=>start: 开始
e1=>end: 结束(配置手机信息)
e2=>end: 分区问题
e3=>end: 其他问题
op1=>operation: 检查是否有新版本
op6=>operation: 记录查询动作
cond1=>condition: 有新版本?
op2=>operation: 获取新版本信息返回给终端
op3=>operation: 终端发起下载请求
cond3=>condition: 有对应文件?
op4=>operation: 返回文件地址
op5=>operation: 返回错误404
cond2=>condition: 能否复现?
op7=>operation: 告知服务器准备下载
op8=>operation: 下载
cond4=>condition: 成功?
op9=>operation: 告知服务器下载成功
op10=>operation: 告知服务器下载失败

st->op1->op6->cond1->op2->op3->cond3->op4->op7->op8->cond4->op9
cond1(yes)->op2
cond1(no)->e1
cond2(yes)->e2
cond2(no)->e3
cond3(yes)->op4
cond3(no)->op5
cond4(yes)->op9
cond4(no)->op10

sequenceDiagram
title: Fota序列图
participant Device
participant Device Manager
participant 业务逻辑
participant 数据库
participant 下载服务器


Device->Device Manager: 查询是否需要升级
Device Manager->业务逻辑: 设备ID是否需要升级
业务逻辑-->>数据库: 记录查询动作
业务逻辑->数据库: 查询设备ID & Session ID
数据库->业务逻辑: 返回升级查询结果 & Session ID
业务逻辑->Device Manager: 返回升级查询结果 & Session ID
Device Manager->Device: 返回升级查询结果 & Session ID
Device->Device Manager: 发起升级请求 & Session ID
Device Manager->业务逻辑: 查询升级请求 & Session ID
业务逻辑->数据库: 查询升级请求 & Session ID
数据库->业务逻辑: 返回升级包信息
业务逻辑->Device Manager: 返回升级包信息
Device Manager->Device: 返回升级包信息
Device-->>下载服务器: 下载差分包
下载服务器-->>Device: 下载完成
Device->Device: check 数据
Device-->>Device Manager: 通知下载完成 & 准备升级
Device Manager-->>业务逻辑: 通知下载完成 & 准备升级
业务逻辑-->>数据库: 记录状态
Device->Device: 执行升级
Device->Device Manager: 通知升级成功
Device Manager->业务逻辑: 通知升级成功
业务逻辑->数据库: 记录升级成功