当前位置: 首页 > ds >正文

【系统架构师】2025论文《基于架构的软件设计方法》【最新】

在这里插入图片描述

😊你好,我是小航,一个正在变秃、变强的文艺倾年。
🔔本文分享【系统架构师】2025论文《系统可靠性设计》,期待与你一同探索、学习、进步,一起卷起来叭!

目录

  • 项目介绍
    • 背景介绍
    • 系统模块
    • 技术栈
    • 基于架构的软件设计方法
  • 摘要
  • 正文

项目介绍

背景介绍

  • 时间:2021年3月启动,2022年3月上线
  • 参与方:我单位与某省公安厅联合研发
  • 目标:解决数据全生命周期(存储/传输/使用/共享)安全问题
  • 核心价值:保障数据安全性与可用性
  • 用户群体:省市县三级公务员

系统模块

模块名称功能描述
资源模块数据源管理(Oracle/Flink/Spark/文件),支持数据接入、导出及脱敏任务调度
敏感属性模块自动发现敏感字段,支持自定义敏感属性与人工复核
脱敏规则模块策略组合配置(含算法版本控制),支持DES/AES/RSA/遮掩/移位等原子脱敏算法
脱敏模块执行可逆/不可逆脱敏,支持同步/异步任务处理
权限模块RBAC权限控制(省市县三级用户角色分级)
审计模块操作日志记录与合规审查

技术栈

  • 架构风格:微服务 + 分布式部署
  • 开发框架:Spring Cloud + Eureka服务注册
  • 关键算法:对称加密(DES/AES)、非对称加密(RSA)、数据掩码算法

基于架构的软件设计方法

阶段核心任务产出物
架构需求功能/性能/约束需求获取需求规格说明书
架构设计UML模型构建(4+1视图)架构设计文档
架构实现构件开发/集成与系统测试可运行系统
架构演化需求变更管理与构件升级版本迭代记录

摘要

   2021年3月,我单位联合某省公安厅研发了《数据脱敏管理系统》。系统以数据脱敏为核心,分为资源模块、敏感属性模块、脱敏规则模块、脱敏模块、权限模块、审计模块,解决了数据在其生命周期的传输、存储、使用、共享环节的安全问题。在项目中,我担任系统架构设计师,负责架构设计工作。

   本文以该系统为例,论述了基于架构的软件设计方法在系统中的应用,主要从架构需求、架构设计、架构实现三个方面展开说明。在架构需求阶段,采用用户访谈、问卷调查、需求专题讨论会、构造原型的方式全面获取需求;架构设计主要使用UML“4+1”视图来对系统的架构进行建模;架构实现阶段主要是构件获取、开发和组装。最终系统成功上线运行,获得用户一致好评。

正文

   笔者在一个专为政企建设信息系统的集成商任职,过往成果有《某省厅网技综合平台》等。2021年3月,我单位联合某省厅研发了《数据脱敏管理系统》项目(以下简称“系统”),解决了数据在其生命周期的传输、存储、使用、共享环节的安全问题,保护了数据安全性和可用性。

   系统以数据脱敏为核心,主要分为资源模块、敏感属性模块、脱敏规则模块、权限模块、审计模块等。资源模块主要负责识别和维护所有需要进行数据脱敏的数据源,支持用户根据需求接入和导出数据至不同数据源(如oracle、flink、spark、文件等),并负责将抽取的数据发送到敏感属性模块进行属性分析;敏感属性模块负责自动发现数据中的敏感字段,支持用户自定义敏感属性等;脱敏规则模块根据不同敏感属性,灵活组合不同脱敏策略,并做好算法版本控制;数据脱敏模块按用户指定或预定义脱敏策略,对数据实施可逆、不可逆脱敏;权限模块主要是系统安全管理员对省市县三级用户实行权限控制;审计模块用于安全审计员对系统操作的监督核查。在这个项目中,我担任系统架构师的职务,主要负责系统的架构设计相关工作。

   基于架构的软件设计方法主要包括架构需求、架构设计、架构文档化、架构复审、架构实现和架构演化。架构需求阶段明确用户对系统在功能、行为、性能、设计约束等方面的期望,包括需求获取、标识构件和需求评审。架构设计阶段根据需求生成并调整架构决策,包括提出架构模型、映射构件、分析构件相互作用、产生架构和评审;架构文档化阶段对架构设计分析和整理,产生架构规格说明书和架构质量说明书;架构复审阶段评价架构能否满足需求与实现质量属性、层次构件划分是否合理,标识潜在的风险,及早发现设计中的缺陷错误;架构实现阶段对架构进行实现,包括架构分析与设计、构件实现、组装和系统测试;架构演化阶段主要解决开发中用户需求变更的问题,包括架构演化计划、构件变动、更新构件相互作用、构件组装测试与技术评审。

   系统使用基于spring cloud的微服务架构开发,本文着重从架构需求、架构设计和架构实现三个方面,论述基于架构的软件设计方法在项目中的具体应用、遇到的问题和解决办法。

   1. 架构需求。在架构需求阶段遇到的主要问题是系统需要支撑全省三级用户对数据实施可逆、不可逆脱敏,这就需要快速全面地获取需求。在需求的前期阶段,我们采用查看用户访谈和问卷调查相结合的方式,把需求调研团队分为几组,分别进行需求收集。通过与信息中心负责人、数据管理工作人员的详细沟通,我们对系统的主要业务功能、用户角色权限等有了整体、全面的了解。在此基础上制作了调查问卷表格,下发给工作人员填写,经过统计整理后,获得了数据存储、传输、共享的过程细节。在需求的中期阶段,我们在信息中心负责人的协助下,召开了省市县三级用户的需求专题讨论会,区县的用户根据工作经历提出了许多非常具体且切实可行的需求,获得了大家的一致同意。在需求的后期阶段,我们基本上已经完成了大部分业务需求的收集,通过快速原型法构造出一个仿真的系统,供用户直观的体验,让用户也参与到设计中,提供了工作流程方面、业务领域方面不可或缺的经验,也为后面项目通过验收提供了有力支持。所有的需求收集后都经过了用户的确认。

   2. 架构设计。此阶段遇到的主要问题是如何合理设计与描述软件架构。我们以UML模型中的“4+1”视图来对架构建模。场景视图使用UML模型中的用例图来进行建模,结合用户需求,在系统中划定了系统管理员、审计管理员、普通用户、特邀用户四类角色,并为这些角色标识了相应用户。逻辑视图使用UML模型的包图来进行建模,经过分析,我们使用微服务架构风格开发,将系统分为前端web服务、平台支撑服务、业务服务三部分。前端web服务由负载均衡和服务集群结合;平台保障服务分为API网关、服务注册中心、监控平台,用以实现基础服务框架;业务服务划分为多个微服务,用于实现具体业务功能。物理视图使用UML模型中的部署图来进行建模,系统微服务采用分布式的部署方式,每个微服务根据实际情况在同一个物理机器或多台物理机器部署多个实例。集群通过负载均衡做统一访问,部署为路由模式,系统的内部网络和外部网络属于不同的逻辑网络。在负载均衡算法的选择上,使用最小连接法。

   3. 架构实现。此阶段遇到的问题是系统构件的实现和组装。构件实现分为两种方式:获取现有构件和开发新构件。数据脱敏管理系统需要与OA系统进行对接,我们使用开发商提供的SDK实现;微服务架构的基础框架,如Spring Cloud,Eureka等直接集成第三方软件实现;对于常见的用户角色权限管理、审计管理、日志记录、内容维护、消息中心等基本功能,通过取用单位过往项目开发中所积累的相应构件来实现;对于系统的专属功能构件,需要专门开发,比如数据脱敏功能我们开发了DES、AES、RSA、遮掩、移位等许多原子脱敏构件。构件实现后,我们根据不同业务类型,选择不同的组装方式。例如资源服务从不同数据源接入和导出数据,采用同步消息方式;敏感属性探测和脱敏功能属于耗时操作,采用异步消息方式;涉及审批流程的业务,采用基于工作流的组装方式。

   系统自2022年3月正式上线已运行1年有余,在数据的存储、传输、使用、共享环节中投入使用,截至目前已脱敏3万余次,数据量达到了103TB,获得了单位领导和同事的一致认可。在使用系统过程中,也出现了一些问题,比如敏感属性探测服务需要对数据实施敏感属性探测,部分用户短时间提交大量数据进行敏感属性探测,导致敏感属性服务出现大多数宕机。这是由于早期在可靠性方面的需求分析不够全面,系统没有进行充分的容错性设计。我们引入心跳机制、回滚机制,以及基于机器学习技术的预判机制,使用敏感属性探测服务在宕机后15秒内自动重置恢复运行,最终解决该问题。

   实践证明,数据脱敏管理系统能够顺利上线,并且稳定运行,与系统采用了合适的设计方法密不可分。经过本次基于架构的软件设计方法实践,我也看到了自己身上的不足之后,在未来还会不断更新知识,完善本系统各方面的设计,使整个系统能够更好的为用户服务。

📌 [ 笔者 ]   文艺倾年
📃 [ 更新 ]   2025.5.12
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,本人也很想知道这些错误,恳望读者批评指正!

在这里插入图片描述

http://www.xdnf.cn/news/5854.html

相关文章:

  • telnetlib源码深入解析
  • Java面试终极篇:Sentinel+Seata+Kafka Streams高并发架构实战
  • Adobe Acrobat pro在一份PDF中插入空白页
  • 【基于ALS模型的教育视频推荐系统(Java实现)】
  • java反序列化commons-collections链6
  • 邮件营销应对高退信率的策略
  • 一键解锁嵌入式UI开发——LVGL的“万能配方”
  • AI驱动网络范式革新:Smart Switch与智能路由的协同进化
  • 《飞飞重逢》手游:暴力治疗与团队赋能的战场艺术!
  • feign.RequestInterceptor 简介-笔记
  • 深入浅出:Java 中的动态类加载与编译技术
  • 2025.5.12 APIO 模拟赛总结
  • 小结: Port Security,DHCP Snooping,IPSG,DAI,
  • python opencv 将不同shape尺寸的图片制作video视频
  • 法国蒙彼利埃大学团队:运用元动力学模拟与马尔可夫状态模型解锁 G 蛋白偶联受体构象动态机制
  • Linux 服务器用 SSH 拉取多个 Git 工程
  • LeRobot 项目部署运行逻辑(七)—— ACT 在 Mobile ALOHA 训练与部署
  • 开发工具分享: Web前端编码常用的在线编译器
  • Matlab 基于滑模自抗扰的高速列车自动驾驶算法研究
  • Linux 软硬连接详解
  • linux下minio的进程管理脚本
  • LMFD格子多相流体力学仿真机:超级计算如何实现平民化?
  • Java高频面试之并发编程-16
  • Mysql的索引,慢查询和数据库表的设计以及乐观锁和悲观锁
  • AUTOSAR图解==>AUTOSAR_TR_GeneralBlueprintsSupplement
  • 知网AI检测对抗智能体,降AI率不再单独花钱!
  • ESP32 web服务导致的lwip “pbuf_free: p->ref > 0问题
  • 【001】renPy android端启动流程分析
  • 内存对齐(Memory Alignment)
  • 4399(简易版) GOC小游戏