《软件架构与中间件》作业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框架来实现,分为多个微服务模块,每个微服务模块又将不同功能的类放置在同一个包内,所以上述的包图中会包含:
在“控制类”和“实体类”中间有一层“服务类”,“控制类”实际上是委托“服务类”来实现各个功能,这样可以使得整个系统功能分区更加明确
从上图可见,“用户购货”这个业务流程中,
从上图可见,“管理员管理数据”这个业务流程中,
一般实际中购物平台的访问量很大,为了模拟真实情况,采用多台服务器去部署,并且使用限流策略等。因此管理端和客户端,中间件,数据库部署在不同集群
服务器 |
部署内容 |
购物服务器集群 |
部署购物平台前端 |
管理服务器集群 |
部署管理系统后端微服务 |
数据库服务器集群 |
部署mysql等数据库 |
中间件服务器集群 |
部署nacos,sentinel等中间件 |