多维度规划业务架构

简介: 多维度规划业务架构

领域驱动设计的社区主流声音是划分问题空间(Problem Space)与解空间(Solution Space)。整个问题空间实际上就是团队开发的目标系统对应的领域,这实际上也是业务架构要描述的目标。领域驱动设计解决大规模问题空间的方法或模式是引入子领域(Subdomain)。


根据价值高低的不同,子领域分为核心子领域、支撑子领域和通用子领域。若将其引入到业务架构,似乎可以根据价值高低建立不同的服务层,例如:

  • 核心子领域:产品服务层,体现为子领域专用的产品服务
  • 支撑子领域:能力服务层,体现为跨子领域复用的能力服务
  • 通用子领域:基础服务层,体现为与领域无关的基础服务


不同的层次代表了复用的粒度和水平。基础服务层因为与领域无关,它复用的范围更广泛,对应为业务架构中的支撑业务(支撑部门提供的职能),如财务体系、人力资源体系、行政体系、采购体系等。原则上,任何企业都需要这些支撑业务,而与企业从事的领域方向无关。引入领域驱动设计的概念,我将其纳入到通用子领域的范畴。


企业核心业务对应为核心子领域,对外公开为一个个相对完整的产品服务。一个产品服务可以认为对应一个核心子领域。在识别核心子领域(产品服务)的过程中,我们需要遵循能力复用的原则,尝试去寻找那些可以跨子领域复用的业务能力,然后自上而下进行沉淀,从而形成映射支撑子领域的能力服务层。


以上内容,我称之为领域维度的业务架构规划,如下图所示:


image.png


从商业维度,Gartner定义了Pace-Layered Architecture,如下图所示:


image.png


它按照变化速率将企业应用分为了三个层次:

  • 创新型系统,SoI(System of Innovation)
  • 差异型系统,SoD(System of Difference)
  • 记录型系统,SoR(System of Record)


Gartner分别从变化频率、生命周期、规划远景、治理模型、利益相关者、资金和架构七个角度阐述了各个层次的特征与属性。


商业维度的划分依据可以对领域维度的业务架构规划进行指导与调整,当然,它们之间也存在若有若无的映射关系,形成了如下图所示的商业维度的业务架构规划:


image.png


子领域的划分在业务架构规划的每个层次形成各自的子领域,它是分解问题空间的最高抽象层次(依据分解粒度),我将其称之为“业务领域”。在业务领域之下,是由业务服务组成的业务组件。


这里的业务服务与业务组件是我自己提出的定义,并非业务架构知识体系中的概念:名称相同,含义并不完全相同。


业务架构的业务服务“表示显式定义的暴露业务行为,代表了用于实现组织内外客户需求的服务,并处理主体与主体之间、主体和客体之间的连接物”。这一定义没有清晰地说明业务服务到底是什么,也没有明确划分依据,无法确定其设计粒度。我在《解构领域驱动设计》一书中明确指出了业务服务的定义,即它是“角色主动向目标系统发起服务请求,完成一次完整的功能交互,体现了服务价值的业务行为”,如下图所示:


image.png


基于这一定义,可以确定业务服务的粒度与层次。


在业务架构知识体系中,IBM提出了业务组件模型,“采用目标、资源、活动、治理、服务5个标准属性来表达能力以及能力之间的关系”。我所定义的业务组件其本质实际是业务角度的限界上下文。


通常认为,限界上下文属于解空间的DDD模式,但在识别限界上下文时,实际上首先是从业务角度对基本的业务单元(即业务服务)进行归类与归纳。在规划业务架构时,如果我们仅将限界上下文视为领域模型的知识语境边界,不去考虑技术实现的内容,那么,将其映射为业务架构的业务组件也未尝不可。


由此,就形成了业务领域-业务组件-业务服务的分析粒度层次,我将其称之为分析维度的业务架构规划,它是业务架构映射为应用架构的基础,使得整个企业架构具备了落地的可能性。这一维度的业务架构规划如下图所示:


image.png


领域维度的判断依据是领域价值的高低,商业维度的主要判断依据是变化速率和规划愿景,它们共同映射为不同服务层次进行规划的业务架构,最后从分析维度对每个服务层次的业务逻辑进行切分与细化,为业务架构映射为应用架构提供落地实现的基础。


相关文章
|
3月前
|
数据采集 设计模式 架构师
|
8月前
|
机器学习/深度学习 算法
【5分钟paper】基于近似动态规划的学习、规划和反应的集成架构
【5分钟paper】基于近似动态规划的学习、规划和反应的集成架构
|
9月前
|
架构师 前端开发 安全
|
11月前
|
消息中间件 Cloud Native RocketMQ
带你读《企业级云原生白皮书项目实战》——6.3.4 未来规划
带你读《企业级云原生白皮书项目实战》——6.3.4 未来规划
|
11月前
|
架构师
「业务架构」基于EA路线图的业务能力规划
「业务架构」基于EA路线图的业务能力规划
|
11月前
|
机器学习/深度学习 Kubernetes API
「容器架构」 K8s 集群如何规划工作节点的大小?
「容器架构」 K8s 集群如何规划工作节点的大小?
|
存储 缓存 NoSQL
【分布式技术专题】「架构实践于案例分析」盘点高并发场景的技术设计方案和规划
【分布式技术专题】「架构实践于案例分析」盘点高并发场景的技术设计方案和规划
205 0
【分布式技术专题】「架构实践于案例分析」盘点高并发场景的技术设计方案和规划
|
存储 Kubernetes 云计算
如何规划多云架构
组织规划有效的多云架构不仅仅是将另一个云平台添加到运营环境中并每天调用。组织还应该制定多云的详细实施计划,以尽量减少与多云环境相关的挑战。根据定义多云的精确程度,组织的多云策略也可以集中在混合架构上,该混合架构将内部部署环境或私有云与公共云混合在一起。
442 0
|
7天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。