《软件架构与中间件》作业1报告
——作业1:软件架构
姓名: 石卓凡 学号: 120L021011
目录
项目介绍................................................................................................................... 1
1. 用例视图............................................................................................................... 2
2. 逻辑视图............................................................................................................... 4
3. 开发视图............................................................................................................... 7
4. 进程视图............................................................................................................... 8
5. 物理视图............................................................................................................. 10
项目题目:基于微服务的网络购物云平台
当今,网络经济模式越来越流行,网上购物方式日益为大家所接受。互联网的飞速发展,已经颠覆了传统的信息采集、传递和外观,对劳动者的劳动技能和工作效率的提高,提供了前所未有的有利条件和推进作用。个人经营,企业等的经济收入增长大多得益于互联网的推广和应用。
网络购物云平台是电子商务的前端商务平台,它在整个商务活动过程中扮演着非常重要的角色。网上购物系统也是一种商业信息系统,它具有强大的交互功能,能向用户提供各种信息资源,能使商家和用户之间能方便地进行信息传递,新型的线上线下整合营销模式可以方便快捷地完成电子贸易。
而一个购物平台的用户分为两类,一类是管理员,负责维护这个购物平台上架的商品,管理本平台销售商品的品牌分类。另一类是普通的手机客户,将会通过购物平台浏览商品最终旋入购物车并下单。
因此,针对两类用户,我们的大作业项目就需要设计成为俩个小项目,管理端和客户端。
与此同时,一般实际中购物平台的访问量很大,为了模拟真实情况,采用多台服务器去部署,并且使用限流策略等。因此管理端和客户端部署在两个不同集群。
图1.1 项目部署图
- 用例视图
该系统可供多种不同身份的用户来登录使用,不同用户登录后所能够执行的模块不尽相同,主要如下:
本系统提供管理员可以管理后台的数据,商品,员工,品牌
购物平台提供客户浏览商品并购物
管理端:
该管理系统可以登录管理员账号,登录员工账号,管理员可以实现对某个电商交易平台的员工,商品,品牌分类等进行管理与查询。后台管理系统中的信息以便于客户手机端可以对电商商品进行下单。
客户端:
客户可以进行登录,采用手机短信验证码登录,然后对商品进行选购下单,通过位置定位确定收货地点来下单。
- 逻辑视图
数据库中含employee员工表,brand品牌表,good商品表;
Brand | id | 主键 |
name | 品牌名 | |
number | 该品牌旗下所含的商品总数 | |
Create_time | 创建时间 | |
update_time | 更新时间 | |
create_user | 创建人 | |
update_user | 修改人 | |
Good | id | 主键 |
name | 商品名 | |
price | 该商品的售价 | |
Brand | 该商品所属的品牌 | |
Create_time | 创建时间 | |
update_time | 更新时间 | |
create_user | 创建人 | |
update_user | 修改人 | |
Img | 商品图片URL | |
Employee | id | 主键 |
name | 员工姓名 | |
status | 状态 0:禁用,1:正常 | |
username | 用户名 | |
password | 密码 | |
phone | 手机号 | |
sex | 性别 | |
Id_number | 身份证号 | |
Create_time | 创建时间 | |
update_time | 更新时间 | |
create_user | 创建人 | |
update_user | 修改人 |
表2.2 数据库各表及其表项含义
在上图中,“控制层”的类均以“Controller”为后缀进行命名,
例如“员工Controller”、“商品Controller”、“品牌Controller”等
(1). Mail-employee模块:
●静态映射backend前端资源并部署上服务器(WebMvcConfig)
●设置全局异常处理器,负责全局处理异常方法(GlobalExceptionHandler)
●根据需求,自己应用新的json对象转换器,扩展mvc框架的消息转换器(JacksonObjectMapper)
●配置MP的分页插件(MybatisPlusConfig)
●员工登录接口
●员工退出
●新增员工
●员工信息分页查询
●根据id修改员工信息
●根据id查询员工信息
(2).Mail-brand模块:
●新增品牌
●品牌信息分页查询
●根据id修改品牌信息
●根据id查询品牌信息
●根据品牌名让修改品牌总数
●返回指定品牌的总数
(3).Mail-good模块:
●新增商品
●商品信息分页查询
●根据id修改商品信息
●根据id查询商品信息
●用于手机端打开展示goodslist
(4).Mail-loginMessage模块:
●随机生成验证码
●调用api向指定手机号发送验证码
- 开发视图
在具体的开发过程中,依据Spring Cloud框架来实现,分为多个微服务模块,每个微服务模块又将不同功能的类放置在同一个包内,所以上述的包图中会包含:
- “控制类”包:Controller
- “服务类”包 Service
- “持久层”包 Mapping
- “实体类”包:Entity
- “边界表示类”包:UI
在“控制类”和“实体类”中间有一层“服务类”,“控制类”实际上是委托“服务类”来实现各个功能,这样可以使得整个系统功能分区更加明确
- 进程视图
从上图可见,“用户购货”这个业务流程中,
- 客户用手机号登录,发送和收到验证码
- 然后在Home中挑选商品并加入购物车
- 购物车确认后进行收货信息校对,最终下单
从上图可见,“管理员管理数据”这个业务流程中,
- 管理员通过管理员账号密码进行登录
- 后台校验账号通过后,在主页展示后台所有数据
- 管理员可以在管理页面进行增删改查
- 进行对应操作之后,会反馈成功页面
- 物理视图
一般实际中购物平台的访问量很大,为了模拟真实情况,采用多台服务器去部署,并且使用限流策略等。因此管理端和客户端,中间件,数据库部署在不同集群
服务器 | 部署内容 |
购物服务器集群 | 部署购物平台前端 |
管理服务器集群 | 部署管理系统后端微服务 |
数据库服务器集群 | 部署mysql等数据库 |
中间件服务器集群 | 部署nacos,sentinel等中间件 |