哈工大软件架构与中间件作业1

news2024/11/26 23:38:00

《软件架构与中间件》作业1报告

——作业1:软件架构

姓名:  石卓凡             学号:  120L021011            

目录

项目介绍................................................................................................................... 1

1. 用例视图............................................................................................................... 2

2. 逻辑视图............................................................................................................... 4

3. 开发视图............................................................................................................... 7

4. 进程视图............................................................................................................... 8

5. 物理视图............................................................................................................. 10

项目题目:基于微服务的网络购物云平台

项目介绍

当今,网络经济模式越来越流行,网上购物方式日益为大家所接受。互联网的飞速发展,已经颠覆了传统的信息采集、传递和外观,对劳动者的劳动技能和工作效率的提高,提供了前所未有的有利条件和推进作用。个人经营,企业等的经济收入增长大多得益于互联网的推广和应用。

网络购物云平台是电子商务的前端商务平台,它在整个商务活动过程中扮演着非常重要的角色。网上购物系统也是一种商业信息系统,它具有强大的交互功能,能向用户提供各种信息资源,能使商家和用户之间能方便地进行信息传递,新型的线上线下整合营销模式可以方便快捷地完成电子贸易。

而一个购物平台的用户分为两类,一类是管理员,负责维护这个购物平台上架的商品,管理本平台销售商品的品牌分类。另一类是普通的手机客户,将会通过购物平台浏览商品最终旋入购物车并下单。

因此,针对两类用户,我们的大作业项目就需要设计成为俩个小项目,管理端客户端

与此同时,一般实际中购物平台的访问量很大,为了模拟真实情况,采用多台服务器去部署,并且使用限流策略等。因此管理端和客户端部署在两个不同集群。

图1.1 项目部署图

  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向指定手机号发送验证码

  1. 开发视图

 

在具体的开发过程中,依据Spring Cloud框架来实现,分为多个微服务模块,每个微服务模块又将不同功能的类放置在同一个包内,所以上述的包图中会包含:

  1. “控制类”包:Controller
  2. “服务类”包 Service
  3. “持久层”包 Mapping
  4. “实体类”包:Entity
  5. “边界表示类”包:UI

在“控制类”和“实体类”中间有一层“服务类”,“控制类”实际上是委托“服务类”来实现各个功能,这样可以使得整个系统功能分区更加明确

  1. 进程视图

 

从上图可见,“用户购货”这个业务流程中,

  1. 客户用手机号登录,发送和收到验证码
  2. 然后在Home中挑选商品并加入购物车
  3. 购物车确认后进行收货信息校对,最终下单

 

从上图可见,“管理员管理数据”这个业务流程中,

  1. 管理员通过管理员账号密码进行登录
  2. 后台校验账号通过后,在主页展示后台所有数据
  3. 管理员可以在管理页面进行增删改查
  4. 进行对应操作之后,会反馈成功页面
  1. 物理视图

 

一般实际中购物平台的访问量很大,为了模拟真实情况,采用多台服务器去部署,并且使用限流策略等。因此管理端和客户端,中间件,数据库部署在不同集群

服务器

部署内容

购物服务器集群

部署购物平台前端

管理服务器集群

部署管理系统后端微服务

数据库服务器集群

部署mysql等数据库

中间件服务器集群

部署nacos,sentinel等中间件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/529240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

混淆(Proguard R8)和反混淆

本篇来介绍下Android的混淆和反混淆,说起混淆,大家都会很自然地想到Proguard,此外还有R8。事实上,AGP3.3之后,官方默认使用R8做代码优化、混淆和压缩。ProGuard和R8常常用于混淆最终的Android项目,增加项目…

【加载更多 Objective-C语言】

一、咱们上午就做了两件事儿, 1.把我们的数据,加载起来, 2.实现了下面这个”加载更多“按钮的功能, 3.只不过,我们加载数据的时候,用了一个自定义cell, 那么,基本加载数据的办法,我就不再说了, 基本,就是那些步骤, 只是把我们自定义cell部分,再给大家复习一下…

【C语言】宏实现一个整数的二进制位的奇数位和偶数位交换

要写一个宏实现将一个整数的二进制位的奇数位和偶数位交换,我们首先要分析如何将一个整数的二进制位的奇数位和偶数位交换 以下以整数7为例 7的二进制: 0000 0000 0000 0000 0000 0000 0000 0111 7 奇数位与偶数位交换后为: 0000 0000 0000 …

一周狂赚50万,GPT-4帮你在线“脱单”,AI女友按分钟收费,在线男友数量多达1000+

电影情节照进现实 不知道大家有没有看过一部电影《她》,讲述的是在不远的未来人与人工智能相爱的科幻爱情电影。主人公西奥多和人工智能系统OS1的化身萨曼莎在相处中,发现彼此之间都存在双向的需求与欲望,人机友谊最终发展成为一段不被世俗理…

Zookeeper 分布式应用程序的分布式协调服务

老规矩学习一个新技术首先从它的官网入手:Apache ZooKeeper 概览 一谈到集群, 从结构上看: 主从集群:主从集群就可以做读写分离,写在主、读在从无主集群(比如redis cluster) 从数据上看&…

10---正则表达式匹配

给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1: 输入:s…

JavaEE 数据链路层 以太网协议

网络原理补充-数据链路层与以太网协议 文章目录 JavaEE & 网络原理补充-数据链路层 & 以太网协议1. 以太网数据帧1.1 帧头帧尾1.2 类型1.3 载荷 2. IP数据报补充2.1 16位标识2.2 13位片偏移2.3 3位标识 3. DNS3.1 DNS原理3.2 DNS劫持或者污染 JavaEE & 网络原理补…

MongoDB 查询文档中使用文本选择器($text)

之前我们介绍过使用比较选择器、逻辑选择器、元素选择器、数组选择器查询文档,如果您需要进一步了解,可以参考: MongoDB 查询文档中使用比较选择器、逻辑选择器https://blog.csdn.net/m1729339749/article/details/129965699 MongoDB 查询文…

IHS安装ssl证书

1、向专业机构申请证书,或者使用openssl生成自签名证书,openssl生成证书参考以下步骤。 openssl生成证书参考https://blog.51cto.com/longlei/2120718 生成加密私钥 [rootlocalhost test]# openssl genrsa -out test.key 2048 Generating RSA private…

直线模组常见故障的解决方法

直线模组因其具有单体运动速度快、重复定位精度高、本体质量轻、占设备空间小、寿命长等特点,运用的范围一直在扩大,发展至今,已经被广泛应用到各种各样的设备当中。 在直线模组的使用过程中,或多或少都会出现一些问题&#xff0c…

DUBBO 3.x 兼容 invoke 调用

从DUBBO的2.7.22版本升级到了3.x的版本后,发现invoke失灵了 首先是启动报错,注释掉配置 dubbo.protocol.telnetinvoke后程序可运行,但是invoke失效。 通过对比源码 示例: tag-3.0.10 tag-2.7.22 发现3.0.2之后的版本都移除了i…

【网络编程】UDP简单实现翻译软件与网络聊天室

文章目录 一、引入二、翻译软件实现2.1 加载字典2.2 处理数据并传递给用户端2.3 客户端获取结果2.4 结果2.5 执行命名功能 三、网络聊天室实现3.1 管理用户3.2 发送消息3.3 多线程处理3.4 结果 四、源码 一、引入 在上一章【网络编程】demo版UDP网络服务器实现实现了客户端和服…

(1分钟了解)视觉惯性导航初始化方法综述

视觉惯性导航初始化方法综述 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 初始化相关的简介,在这里知道初始化方法可以分为联合初始化、非联合初始化和半联合初始化三种方法即可。 ​ 编辑切换为居中 添加图片注释&…

VIM学习笔记 正则表达式-(vimgrep/grep)

在UNIX问世的前一年,1969年,Ken Thompson将正则表达式整合入QED文本编辑器。在Linux文本编辑器ed中,如果你希望显示包含字母“re”的行时,需要使用命令g/re/p,而grep也因此得名。可以看作此操作的缩写:g (g…

ARM板上的蓝牙对讲功能

1)ARMRTL8723 或RTL8821 RTL8723是USB接口的邮票芯片,集成了wifi和BT。前面已经完成了wifi的处理,这次主要说一下蓝牙语音方面。 蓝牙功能,我们主要是使用Bluez5协议栈.结合alsa使用(pulseaudio也是可以的&#xff0c…

JVM学习(四)

1. JAVA IO/NIO 1.1. 阻塞 IO 模型 最传统的一种 IO 模型,即在读写数据过程中会发生阻塞现象。当用户线程发出 IO 请求之后,内 核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态&#xff0c…

Class 02 - R语言Rstudio的安装

Class 02 - R语言&Rstudio的安装 下载和安装R安装前准备下载R语言安装R语言开始使用R语言 下载和安装RStudio安装前准备下载RStudio安装RStudio开始使用RStudio如何编写代码 下载和安装R 在这个部分中,你将完成在计算机上下载和安装R语言程序。当安装完成后&am…

嫌视频背景杂乱或单调?如何去除视频杂乱背景

录制视频时,有时候视频背景会十分杂乱或单调,这会对用户的视觉体验和注意力产生负面影响。 背景杂乱或单调的场景可能会影响您的观感。这种情况通常发生在自然光线不足或拍摄环境不理想的情况下。如果您想改变视频的背景或者是去除视频杂乱的背景&#…

硬件I2C读写MPU6050代码

1、接线图 SDA接在B11,SCL接在B10 ,软件IIC的两个引脚可以任意更改的,因为都是开漏输出,硬件接在哪个引脚上,程序中就对应操作哪个引脚 但是硬件IIC,通信引脚是不可以任意指定的,查表,由于PB6、…

2023年Android开发者路线-第4部分

2023年Android开发者路线-第1部分 2023年Android开发者路线-第2部分 2023年Android开发者路线-第3部分 2023年Android开发者路线-第4部分 2023年Android开发者路线-第4部分 在上一篇博文中,我们讨论了现代 Android 开发的基本要素,包括 Fragments、…