1. 项目介绍
本次项目目的在于以电信云作为云端服务器,在服务端进行业务开发,实现接受工业物联网设备消息并记录分析,以及前端web界面的展示。功能主要包括云端服务器接受物联网设备信息,状态监测和下发控制指令。
2. 软件结构
在具体了解软件架构的视图之前,为了理解软件架构中的关键要素所表现出来的特征,我们先来看看软件架构的风格和策略,然后在逐一分析软件架构的视图。本项目作为一个前后端分离的项目,后端使用成熟的spring boot框架,前端使用vue和Element UI ,整体项目使用B/S架构,在客户-服务模式中,客户是主动的,服务是被动的。客户知道它向哪个服务发出请求,而服务却不知道它正在为哪个客户提供服务,甚至不知道正在为多少客户提供服务。客户-服务模式的架构风格具有典型的模块化特征,降低了系统中客户和服务构件之间耦合度,提高了服务构件的可重用性。
3. 系统接口和API
3.1 用户登录
采用POST请求进行用户登录验证
request:{
"usrname":"",
"usrpwd":""
}
response:{
"msg":"",
"data":""
}
3.2 管理用户
管理用户采用POST添加,DELETE删除
request:{
"usrname":"",
"usrpwd":"",
"authority":"",
"area":""
}
response:{
"msg":"",
"data":""
}
3.3 管理设备
管理设备采用POST添加,DELETE删除,PUT修改
request:{
"devname":"",
"area":"",
}
response:{
"msg":"",
"data":""
}
3.4 信息查看
查看信息使用GET方法,对于需要实时刷新的数据采用WebSocket方式
request:{
"devname":"",
"devip":"",
"devport":"",
"protocol":"",
"area":"",
}
response:{
"msg":"",
"data":{
"source":"",
"destination":"",
"timestamp":"",
}
}
4 . 视图分析
4.1 分解视图
分解是构建软件架构模型的关键步骤,分解视图也是描述软件架构模型的关键视图,一般分解视图呈现为较为明晰的分解结构(breakdown structure)特点。分解视图用软件模块勾划出系统结构,往往会通过不同抽象层级的软件模块形成层次化的结构。
4.2 依赖视图
前端查询展示通过http或者websocket向后端询问,获取数据或者输入数据;service负责实现所有的服务,包括处理Netty网络服务器的数据,对数据库的管理,和前端contorller的处理。
4.3 执行视图
4.4 部署视图
后端基于springboot部署时可以制作成一个jar包,还可以进一步部署到docker仓库中。前端基于element ui和vue,实现前后端分离。
4.5 数据库设计
根据之前的用例建模和数据类图的分析,下面建立数据模型。
User
Device
Channel
Message
5. 系统运行环境及技术选型
5.1 系统运行环境
基于初步考虑部署在docker上,运行环境为ubuntu。
5.2 相关技术选择
基于spring boot作为后端框架,vue和element ui作为前端。数据库采用mysql,主要开发工具为idea和vscode。
6. 核心工作机制
用户先登陆系统,系统根据用户的权限等级展示相应的功能模块;
需要获取信息时,点击对应的设备可以获取实时运行状态曲线;
需要添加删除设备时,通过添加删除申请,来向系统提供对应设备信息;
7. 总结
通过分析对本次项目进行了分解,对真正的需求和注意点都更加了解。