【功能设计】数据分发功能设计

news2024/11/24 18:48:59

文章目录

  • 设计脑图
    • 功能性
    • 非功能性
  • 功能设计文档
    • 1. 需求分析
      • 1.1、功能性需求
      • 1.2、非功能性需求
    • 2. 功能设计
      • 2.1 业务流程图
      • 2.2 数据流图
      • 2.3 表结构设计
      • 2.4 接口设计
      • 2.5 功能点
    • 3.非功能性设计
      • 3.1 性能
      • 3.2 可用性
      • 3.3 并发性
      • 3.4 安全性

设计脑图

功能性

在这里插入图片描述

非功能性

在这里插入图片描述

功能设计文档

1. 需求分析

1.1、功能性需求

针对主数据管理系统(MDM)需要与外部系统进行主数据交互的需求,设计了以下数据分发管理功能,以实现敏感字段过滤、手动控制数据分发、直观展示分发数据场景以及便捷高效的系统间数据交互:

  1. 敏感字段过滤:根据权限配置过滤掉敏感字段,确保数据的安全性和合规性。
  2. 手动控制数据分发:允许业务管理员手动控制数据分发的触发和停止。
  3. 分发数据场景展示:提供直观的界面展示,用于显示已经分发的数据场景。
  4. 高效的系统间数据交互:为了提高数据传递的效率和便捷性。

适用对象:获取MDM主数据的外部系统、接收MDM分发数据的外部系统

功能场景描述:

  • 系统A需要从MDM拉取数据

    当有系统A需要拉取MDM物料数据时,MDM需要过滤掉对于系统A来说没有权限查看的敏感数据。

    在系统A数据使用审批(线下)通过之后,MDM业务管理员通过执行步骤(已维护直接跳过):

    1. 维护系统A信息
    2. 维护过滤出敏感字段的通用数据权限模板
    3. 配置拉取策略(绑定接入方、调用限制、授权模板、状态、有效期等)

    后,系统A可通过(定时)调用MDM系统方提供的(已开发好的)的标准物料主数据查询接口,拉取到过滤后的物料主数据。

  • MDM向系统B分发数据

    当MDM需要集成系统B,并向其分发物料主数据时,发送的数据需要过滤掉系统B没有权限获取的敏感数据。

    在MDM需要开发推送数据到系统B的需求场景时(如:场景:物料申请-OA审批通过-推送数据到CRMS),系统B数据使用审批(线下)通过之后,MDM业务管理员通过执行步骤(如已维护跳过):

    1. 维护系统B信息
    2. 维护需要过滤敏感字段的通用数据权限模板

    后,告知MDM系统方,MDM系统方开发人员在对应需求场景中,通过执行步骤(如已维护跳过):

    1. 维护数据对象
    2. 开发标准通用主数据推送接口
    3. 维护推送场景(比如:物料申请),生成推送任务(目的:直观展示是哪些场景何时分发了数据)

    后,告知业务管理员,业务管理员通过MDM系统方维护的场景来配置分发策略,执行步骤:

    1. 配置分发策略,包括绑定接入方、指定推送场景、授权模板、重试次数、状态和有效时间等。

    后,MDM系统方开发人员通过调用对应场景下的配置策略,过滤推送到系统B的敏感数据。

具体功能点:

  1. 消费方管理

    外部系统基础信息管理。

    包含消费方新增、修改、删除、列表查看功能。

  2. 元对象管理(字典)

    数据拉取元对象:完整主数据对象,如物料、客户等。

    数据推送元对象:场景,如物料新增、客户上市等。

​ 包含新增、修改、删除、列表查看功能。

  1. 权限模板管理

    主数据元对象,具体授权字段。

    包含模板的新增、修改、删除、列表等功能。

  2. 数据分发配置管理

    配置外部系统接入方对应数据分发策略。

    具体配置内容:

    • 被动拉取:绑定接入方、数据授权模板、调用限制、生效状态、有效起止时间

    • 主动推送:绑定接入方、选择业务推送场景、数据授权模板、重试次数、生效状态、有效起止时间

  3. 分发任务管理

    基于数据推送场景自动创建一条分发任务;展示哪些场景下何时分发数据(场景、创建时间)。

    包含列表功能。

  4. 分发日志管理

    基于分发任务自动推送创建分发日志,记录具体分发数据;对于日志中失败记录,可进行手动推送。

    包含列表查看、手动重新分发按钮功能。

  5. 异常提醒功能

    对于分发异常数据、系统异常,钉钉推送给运维人员处理。

    包含钉钉消息推送功能。

1.2、非功能性需求

  1. 性能
    • 避免同时处理并响应多个数据获取请求时出现响应时间长。
  2. 可用性
    • 系统运行稳定性可靠,避免异常崩溃或意外停机。
  3. 并发性
    • 该功能无并发场景。
  4. 安全性
    • 确保只有经过认证授权的外部系统才能访问系统数据资源。
    • 确保数据传输过程的数据完整性、可验证性、安全性,避免被篡改。
    • 确保数据在传输过程中得到保护(非必须)。

2. 功能设计

2.1 业务流程图

MDM数据被动拉取、或主动分发时,不同参与者处理的业务活动内容。主要分为:接入方、业务管理员、系统方。

image-20230918090308497

2.2 数据流图

顶层数据流图:

image-20230918141623896

细化数据流图:

image-20230918141234300

2.3 表结构设计

消费方管理、权限模板管理、分发配置管理、分发任务管理表、分发日志记录表结构设计如下;元对象(数据对象、场景)管理为字典管理。

tn_mdm_date_distribute_consumer(消费方管理表)

consumer数据类型主键外键描述
consumer_idbigint(20)消费方ID
consumer_namevarchar(50)消费方名称
descriptionvarchar(100)消费方信息
created_byvarchar(64)创建人
created_timedatetime创建时间
updated_byvarchar(64)更新人
updated_timedatetime更新时间
remarkvarchar(500)备注

tn_mdm_date_distribute_authorization_template(权限模板管理表)

列名数据类型主键外键描述
template_idbigint(20)模板ID
template_namevarchar(50)模板名称
element_idvarchar(20)元对象ID
element_namevarchar(50)元对象名称
authorized_fieldsjson授权字段列表
created_byvarchar(64)创建人
created_timedatetime创建时间
updated_byvarchar(64)更新人
updated_timedatetime更新时间
remarkvarchar(500)备注

tn_mdm_date_distribute_config(分发配置管理表)

列名数据类型主键外键描述
config_idbigint(20)配置ID
consumer_idbigint(20)消费方ID
consumer_namevarchar(50)消费方名称
element_idvarchar(20)元对象ID
element_namevarchar(20)元对象名称
distribution_typevarchar(20)分发类型(被动拉取/主动推送)
template_idbigint(20)授权模板ID
template_namevarchar(50)授权模板名称
call_limitint调用限制
is_activeboolean生效状态
start_timedatetime有效起始时间
end_timedatetime有效结束时间
created_byvarchar(64)创建人
created_timedatetime创建时间
updated_byvarchar(64)更新人
updated_timedatetime更新时间
remarkvarchar(500)备注

tn_mdm_date_distribute__task(分发任务管理表)

列名数据类型主键外键描述
distribute_task_idbigint(20)任务ID
element_idvarchar(20)元对象ID
element_namevarchar(20)元对象名称(场景名称)
created_timedatetime创建时间
created_byvarchar(64)创建人
updated_byvarchar(64)更新人
updated_timedatetime更新时间
remarkvarchar(500)备注

tn_mdm_date_distribute_log(分发日志表)

列名数据类型主键外键描述
log_idbigint(20)日志ID
distribute_task_idvarchar(50)任务ID
consumer_idbigint(20)消费方ID
consumer_namevarchar(50)消费方名称
element_idvarchar(20)元对象ID
element_namevarchar(20)元对象名称
business_datajson分发的业务数据
status_codeint(10)接口响应状态码
response_bodyvarchar(200)接口响应内容
error_msgvarchar(200)异常信息
request_timedatetime请求时间
response_timedatetime响应时间
created_byvarchar(64)创建人
created_timedatetime创建时间
updated_byvarchar(64)更新人
updated_timedatetime更新时间
remarkvarchar(500)备注

2.4 接口设计

根据UI界面,设计定义具体接口。

2.5 功能点

功能点功能描述输入输出预期结果
1消费方管理消费方基础信息(系统名称、信息等)执行操作后的提示信息能够方便地管理和维护外部系统消费方的基础信息
2元对象管理(字典)元对象的标识、名称、描述等基本信息执行操作后的提示信息能够方便地管理和维护主数据拉取、推送的元对象
3权限模板管理权限模板的名称、描述以及授权字段的配置执行操作后的提示信息能够方便地管理和维护主数据元对象的权限模板
4数据分发配置管理接入方的信息、数据授权模板、调用限制、生效状态、有效起止时间等配置执行操作后的提示信息能够方便地配置外部系统接入方的数据分发策略
5分发任务管理数据推送场景的信息创建任务后的提示信息,已创建任务的列表能够自动创建分发任务,并清晰地展示哪些场景下何时分发了数据
6分发日志管理分发任务的信息分发日志的列表查看功能,手动重新分发的操作结果能够记录和管理分发任务的日志,便于查看和处理失败的记录
7钉钉提醒功能异常信息提醒分发日志中失败记录(异常)能够推送给MDM系统方运维人员异常信息,便于处理

3.非功能性设计

3.1 性能

  1. 限制分发时数据包大小,控制单次数据分发条数。

  2. 网关负载均衡,采用权重轮询/IP哈希策略。

  3. 限制调用系统接口次数,控制访问时间。

  4. 查询数据放入缓存。

  5. 外部系统获取系统数据异步执行,系统向多个外部系统分发多线程并行执行。

  6. 数据库设计读写分离,主库实例负责写入,从库实例负责读取。

  7. 表设计、索引优化。

3.2 可用性

  1. 通过ESB进行服务限流(设置阈值,监控请求)、熔断(实时监控可用性,出现故障时,暂时关闭活切换到备用结点)。
  2. 高可用应用部署架构,应用部署主备机制。

3.3 并发性

  1. 暂无并发场景。

3.4 安全性

  1. 调用鉴权。

  2. 调用签名。

  3. 数据加密(非必须)。

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

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

相关文章

国庆中秋特辑(三)使用生成对抗网络(GAN)生成具有节日氛围的画作,深度学习框架 TensorFlow 和 Keras 来实现

要用人工智能技术来庆祝国庆中秋,我们可以使用生成对抗网络(GAN)生成具有节日氛围的画作。这里将使用深度学习框架 TensorFlow 和 Keras 来实现。 一、生成对抗网络(GAN) 生成对抗网络(GANs,…

FFMpeg zoompan 镜头聚焦和移动走位

案例 原始图片 # 输出帧数,默认25帧/秒,25*4 代表4秒 # s1280x80 # 输出视频比例,可以设置和输入图片大小一致 # zoom0.002 表示每帧放大的倍数,下面代码是25帧/每秒 * 4秒,共1000帧 # 最终是 0.002*25*4 0.2&…

什么是深度学习?最易懂的机器学习入门文章

1. 什么是深度学习? 深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于人工智能。 原文:【科普&实践】超详细!一文带你玩转深度学习 - 飞桨AI Studio星河社区 深度学习是机器学习领域中一个新的研究方向&#xff…

折腾LINUX复古终端

这个复古终端是cool-retro-term,先来图 点击GITHUB地址 开始用docker运行,报错。后来用x11docker,因为我要远程通过SSH的x11转发,但实际x11docker的默认backbone就说docker,也就说要先用docker下载镜像&#xff0c…

[maven] 实现使用 plugin 及 properties 简述

[maven] 实现&使用 plugin 及 properties 简述 这章内容,我个人感觉可看可不看……? 不过课都上了,笔记 📒 补完才对得起自己嘛 plugins 主要讲一下 maven 的 plugin 时怎么实现的,以及项目中怎么调用自己实现…

成集云 | 用友T+集成聚水潭ERP(用友T+主管供应链)| 解决方案

源系统成集云目标系统 方案介绍 用友T是一款由用友畅捷通推出的新型互联网企业管理系统,它主要满足成长型小微企业对其灵活业务流程的管控需求,并重点解决往来业务管理、订单跟踪、资金、库存等管理难题。 聚水潭是一款以SaaS ERP为核心,集…

mysql事务测试

mysql的事务处理主要有两种方法1、用begin,rollback,commit来实现 begin; -- 开始一个事务 rollback; -- 事务回滚 commit; -- 事务提交 2、直接用set来改变mysql的自动提交模式 mysql默认是自动提交的,也就是你提交一个sql,它就直接执行!我…

微信管理系统可以解决什么问题?

微信作为一款社交通讯软件,已经成为人们日常生活中不可缺少的工具。不仅个人,很多企业都用微信来联系客户、维护客户和营销,这自然而然就会有很多微信账号、手机也多,那管理起来就会带来很多的不便,而微信管理系统正好…

基于径向基神经RBF的空调功率预测,RBF神经网络的详细原理,RBF回归预测代码

目录 完整代码和数据下载链接:基于MATLAB的RBF的空调能耗预测_模糊空调matlab资源-CSDN文库 https://download.csdn.net/download/abc991835105/87833598 RBF的详细原理 RBF的定义 RBF理论 易错及常见问题 RBF应用实例,基于rbf的空调功率预测 代码 结果…

C语言大佬的必杀技---宏的高级用法

C语言大佬的必杀技—宏的高级用法 目录: 字符串化标记的拼接宏的嵌套替换多条语句防止一个文件被重复包含宏和函数的区别 可能大家在学习的时候用得比较少,但是在一些代码量比较大的时候,这样使用,可以大大的提高代码的可读性,…

minio报错should be less than or equal解决方案

minio报错should be less than or equal解决方案 问题背景解决方案Lyric&#xff1a; 当作你的请求 问题背景 在进行minio扩容时&#xff0c;报错 parity validation returned an error: parity 4 should be less than or equal to 2 <- (4, 4), for pool(2nd解决方案 mi…

ModbusTCP 转 Profinet 主站网关控制汇川伺服驱动器配置案例

ModbusTCP Client 通过 ModbusTCP 控制 Profinet 接口设备&#xff0c;Profinet 接口设备接入 DCS/工控机等 兴达易控ModbusTCP转Profinet主站网关&#xff08;XD-ETHPNM20&#xff09;采用数据映射方式进行工作。 使用设备&#xff1a;兴达易控ModbusTCP 转 Profinet 主站网关…

敏捷开发七大步骤和敏捷工具

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中&#xff0c;软件项目的构建被切分成多个子项目&#xff0c;各个子项目的成果都经过测试&#xff0c;具备集成和可运行的特征。敏捷开发并不追求前期完美的设计、完美编码&#xff0c;而是力求在很短的周期内…

2023-9-23 区间分组

题目链接&#xff1a;区间分组 #include <iostream> #include <algorithm> #include <queue>using namespace std;const int N 100010;struct Range {int l, r;bool operator< (const Range &W) const {return l < W.l;} }range[N];int main() {i…

一篇文章带你走进测试工程师的世界

【软件测试行业现状】2023年了你还敢学软件测试&#xff1f;未来已寄..测试人该何去何从&#xff1f;【自动化测试、测试开发、性能测试】 一、 测试工程师&#xff1a; 1、 国内定位和发展前景&#xff1a; 测试工程师&#xff0c;软件质量的把关者&#xff0c;工作起点高&…

Scala最基础入门教程

文章目录 一、简介1、概述2、Idea环境 二、变量和数据类型1、注释2、变量和常量&#xff08;重点&#xff09;3、标识符的命名规范4、关键字(39)5、字符串输出6、数据类型6.1 整数类型(Byte、Short、Int、Long)6.2 浮点类型&#xff08;Float、Double&#xff09;6.3 字符类型&…

量化交易97个Python库、696个策略、55本书合集

今天和大家分享一个超多内容的量化交易资料合集&#xff0c;包含了696个策略&#xff0c;55本书&#xff0c;97个库&#xff0c;目前还在不断更新&#xff0c;强烈推荐量化交易方向的同学收藏学习。 这个合集是由Edouard dArchimbaud、James Munro和GrimyFishTank三位大佬整理…

6.wifi开发【智能家居:下】,正式开发:智能开关灯,智能采集温湿度,智能调彩灯

一。WEB Server开发 1.需求分析 用户通过页面操作插座彩灯温湿度 【开发前端1】&#xff1a;智能插座网页设计 智能插座网页设计需求 1.通过浏览器访问ESP8266 webserver 2.显示“创客学院-WiFi-智能家居” 3.显示“智能插座” 4.显示当前插座工作状态 5.按键触发插座动作 2.…

【【萌新的FPGA学习之初识ZYNQ】】

萌新的FPGA学习之初识ZYNQ 进入 21 世纪&#xff0c;FPGA 的发展进入了累积阶段。人们发现&#xff0c;FPGA 的发展此时遭遇了瓶颈&#xff0c;因此单纯的 提升 FPGA 的容量已经不能满足各类应用的需求。由于更多客户开始追求更高的性价比&#xff0c;FPGA 不得不从 单纯的可编…

swift 天气

定义不同模式主题 自定义颜色 输入框 委托和协议 扩展 协议 http 请求 调用api 闭包