业务架构图

简介: 本文介绍了业务架构图的核心概念与绘制方法,涵盖业务定义、架构域分类及业务架构图的分层、分模块、分功能三大要义,旨在帮助理解业务逻辑,提升客户认知与开发效率。

一、背景知识

1. 什么是业务

网上对业务的定义有很多,其中个人认为较为准确的几种定义如下:

  1. Business is the organized efforts and activities of individuals to produce and sell goods and services for profit.

业务是个人或企业为获利而生产、销售商品和提供服务的有组织的努力和活动。

  1. A usually commercial or mercantile activity engaged in as a means of livelihood

作为谋生手段而从事的通常是商业或商业活动

以医院为例:医院提供医疗服务,患者通过消费享受医院提供的医疗服务从而重新获得健康的身体。所以,可以把患者去医院看病理解为患者与医院的多阶段交易。而交易的“产品”就是医院提供的医疗服务。

2. 架构域的分类

在四种类型的架构(业务架构、技术架构、应用架构、数据架构)中,业务架构是其他架构的基础。首先要熟悉业务,形成业务架构。再根据业务架构,形成技术架构。再根据技术架构确认数据架构和应用架构。

二、引言

1. 什么是业务架构图

如果使用一句话去概括的话:业务架构图是一种表达业务层级和关系的工具,通过对整个系统的业务进行拆分,对领域模型进行设计,将现实的业务转化为抽象对象。

2. 为什么要画业务架构图

绘制业务架构图的目的有两个方面,第一是面向客户,第二是面向开发者。

对于客户而言:通过描绘业务的上下级关系,梳理出一整套完整、简单的业务视图,提高客户理解度,最终给客户最直观的业务体现。

对于开发者而言:通过绘制业务架构图,可以看清楚系统包含哪几个部分,各部分的职责以及相互间的关系。可以让开发者以一个广角去整体了解这个系统,便于快速了解业务。

三、绘制业务架构图的核心要义

绘制业务架构图的过程可以理解为对业务的收集、提炼、拆解、归纳和分类的过程。

简单来说可以分为三个步骤:分层、分模块、分功能

1. 业务架构图中的核心元素

对开发人员来说绘制业务架构图有一点需要特别注意:业务架构图中要淡化技术相关的概念,而要专注于对业务的思考与整理。

一个好的产品业务架构图需要具备以下三点:

  • 清晰的模块功能边界
  • 功能经过抽象,做到标准化、互相独立
  • 上下游产品功能边界清晰,架构分层明确合理,具备迭代优化的能力

2. 核心要义之一:分层

分层,是指将业务按照层级划分,每个层级都属于独立的板块。层级上要有逻辑关联,如下层为上层服务,或下层为上层提供能力支撑等。

如图所示【业务能力层】为【业务应用层】提供业务能力上的服务。上层业务应用可以直接调用能力中心的服务,避免重复开发。

3. 核心要义之二:分模块

分模块,是指在同一层级中,分为哪些独立的模块,每个模块可以代表一个完整产品或同类业务的聚合。

如图所示,我们可以将业务应用层分为门诊、住院、急诊、留观和通用医疗服务这五个模块,每个模块都可以在细化其功能矩阵。

4. 核心要义之三:分功能

分功能,是指在同一模块中,将独立的功能划分出来,该功能可以代表一个业务入口。

如图在住院中,可以分为入院准备、住院诊疗、住院收费、住院药房等独立的功能模块,各个功能模块由同类功能聚合而来。

5. 最后再给不同层级和模块之间加上信息流

四、产品业务架构图示例

相关文章
|
3月前
|
关系型数据库 应用服务中间件 nginx
容器化部署引擎Docker
Docker是一种轻量级容器化技术,通过镜像打包应用及依赖,实现跨环境一致部署。它利用沙箱机制隔离容器,解决开发、测试、生产环境差异与组件兼容性问题,相比虚拟机更高效便捷,提升应用交付效率。
容器化部署引擎Docker
|
3月前
|
Kubernetes IDE 应用服务中间件
2.部署篇(开发部署)
本文介绍如何将SpringCloud应用部署到Kubernetes云端,基于EDAS实现快速上云。涵盖集群导入、应用初始化及通过IDE插件高效部署,助力开发者提升发布效率。
|
3月前
|
Kubernetes Java 应用服务中间件
1.开发篇(脚手架下载)
本文介绍基于Spring Cloud Alibaba与Kubernetes的微服务开发实践,重点分享项目初始化与本地启动的高效工具。通过阿里云EDAS 3.0及配套插件,开发者可快速搭建应用并自动对接注册中心,显著提升开发体验。后续将深入讲解云端部署与端云互联能力。
1.开发篇(脚手架下载)
|
3月前
|
监控 Java 测试技术
微服务保护Sentinel
本课程深入讲解微服务中的雪崩问题及其解决方案,重点介绍阿里开源的流量治理组件Sentinel。内容涵盖Sentinel的部署与整合、限流模式(直接、关联、链路)、流控效果(快速失败、预热、排队等待)、熔断降级、线程隔离及规则持久化等核心知识点,结合Jmeter压测实战,帮助开发者构建高可用的分布式系统。
|
3月前
|
SQL 容灾 数据库
分布式事务Seata
本章节深入探讨分布式事务问题,涵盖CAP定理与BASE理论,重点讲解Seata框架的XA、AT、TCC及SAGA四种模式原理与实现,并指导搭建高可用TC服务集群,确保微服务架构下的数据一致性与系统可靠性。
分布式事务Seata
|
3月前
|
消息中间件 负载均衡 Linux
RabbitMQ部署指南
本文介绍了RabbitMQ在CentOS7上基于Docker的单机与集群部署方案,涵盖镜像安装、DelayExchange插件配置、普通模式与镜像模式集群搭建,并重点演示了仲裁队列的高可用特性及集群扩容方法,助力构建稳定可靠的消息中间件服务。
RabbitMQ部署指南
|
3月前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
本文详细介绍Nacos作为配置中心的实现原理与实战步骤,涵盖配置管理、热更新、共享配置及优先级规则,并演示Nacos集群搭建与高可用部署,帮助开发者掌握微服务环境下配置的动态管理与服务解耦方案。
Nacos配置中心
|
3月前
|
消息中间件 Java Nacos
SpringCloud概述
Spring Cloud是Spring团队推出的微服务一站式解决方案,弥补了各独立组件(如Nacos、RabbitMQ等)缺乏统一架构的不足。其特点为约定优于配置、组件丰富、开箱即用,支持云原生。版本以伦敦地铁站命名,避免与子项目冲突。Spring Cloud Alibaba由阿里贡献,集成Nacos、Sentinel、Seata等成熟组件,因Netflix套件停更,现成为主流选择,功能更完整且经大规模验证,是当前微服务架构的优选技术栈。
|
3月前
|
缓存 算法 Java
线程池
本文深入剖析了Java线程池的核心原理,涵盖ThreadPoolExecutor与ScheduledThreadPoolExecutor的实现机制,重点解析了任务调度、线程复用及阻塞队列等关键技术细节,并对Executors工具类和ThreadLocal进行了详解,帮助读者全面理解并发编程中的线程管理。
线程池
|
3月前
|
负载均衡 算法 架构师
Ribbon负载均衡
本文深入讲解Spring Cloud中Ribbon实现客户端负载均衡的原理,包括@LoadBalanced注解的作用、负载均衡算法、Ribbon与Eureka的整合机制,并介绍如何自定义策略及配置饥饿加载,帮助读者全面掌握微服务架构中的负载均衡技术。