网站首页 > 技术文章 正文
自包含系统(Self-contained Systems ,SCS) :一种将较大系统的功能分离为许多独立的协作系统的体系结构方法。
自包含系统 是一种软件架构方法,它优先考虑将应用程序分散到独立的系统中,每个系统都有其域逻辑、UI 和数据存储。与微服务不同的是,较小的服务仅专注于业务逻辑,SCS 更大,并且涵盖特定领域内更广泛的范围。
SCS 是代表自主 Web 应用程序的系统。它们包括 Web UI、业务逻辑和数据库,并且可能具有服务 API。通常由一个团队拥有它们。
此类系统的主要 优点是:
- 自治:每个 SCS 以其数据库、业务逻辑和用户界面独立运行。
- 领域一致:SCS 围绕特定业务领域构建,确保每个单元代表一组连贯且有意义的功能。
- 分散式数据管理:每个 SCS 都有单独的数据库,确保其边界内的数据一致性,减少跨服务依赖性。
- 技术多样性:允许在其他 SCS 中使用不同的技术堆栈,以满足每个领域的特定需求。
- 显式发布的接口:用于与其他系统交互的明确定义的接口,在保留封装的同时保持清晰的契约。
- 独立部署性:每个SCS都可以独立部署、扩展和更新,而不影响其他系统。
为什么自包含系统(SCS)比微服务更具优势:
- 更广泛的范围:SCS 具有更广泛的范围,涵盖有界上下文中的 UI、业务逻辑和数据存储
- 降低运营复杂性:由于管理许多较小的、相互依赖的服务,微服务可能会导致较高的运营复杂性,而 SCS 更重要、更自治。
- 数据一致性:SCS 管理其数据,这可以导致每个系统内更好的数据一致性,而微服务通常依赖于共享数据存储。
- 减少服务间通信:SCS 通过封装更多功能,比微服务需要更少的服务间通信。
- 更适合某些领域的复杂性:在领域复杂性很高且领域边界清晰的情况下,SCS 由于其领域对齐的性质可能会提供更好的架构适合性。
这样的系统与领域驱动设计(DDD)配合得很好。创建此类系统的第一步是领域分析,可以通过识别与特定业务领域一致的有界上下文来进行。然后,每个有界上下文都封装在 SCS 中,其中包括自己的数据管理、业务逻辑和用户界面,确保每个系统都是自治的,但在必要时能够通过明确定义的 API 与其他系统进行交互。
SCS特征总结:
总结
自包含系统(SCS)是一种软件架构模式,旨在将大型软件系统分解为一组相互独立、自治的模块。这种模式的目标是提高系统的可维护性、可扩展性和可理解性。
参考:
https://scs-architecture.org/
猜你喜欢
- 2024-10-12 学习Java软件工程师要具备什么条件 软件工程师需要掌握的技能
- 2024-10-12 轻量级架构-软件架构师 软件轻量化设计
- 2024-10-12 北京婚宴app开发的后台管理系统,婚宴智能化下的浪漫枢纽
- 2024-10-12 全球最流行的微处理器架构——ARM体系结构
- 2024-10-12 面向对象开发(OOD):绘制软件蓝图的艺术
- 2024-10-12 每个程序员都应该知道的计算机体系结构的基础知识
- 2024-10-12 特定领域软件架构-软件架构师 应用软件的特定处理内容包括什么
- 2024-10-12 架构设计与生命周期2-软件架构师 软件架构设计主要应用于软件生存周期的哪个阶段
- 2024-10-12 重新认识DCS!这次从软件的角度告诉你~
- 2024-10-12 一文读懂ARM体系结构的工作模式 arm体系结构有哪几种运行模式
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)