写点什么

关于业务架构基础知识的二三事儿:架构联通设计

  • 2024-03-28
    北京
  • 本文字数:2711 字

    阅读完需:约 9 分钟

大小:1.29M时长:07:30
关于业务架构基础知识的二三事儿:架构联通设计

第一篇发出后,大家看的还挺积极,有读者也发来了问题。这个问题还真是个高频的常见问题,而且,如果没在工程上实际去做,真的可能就会是觉得自己明白了,但做起来还是有困难,尤其是要去给别人解释的时候。


架构的联通设计通常指的是四个架构之间的串联,也就是业务架构、数据架构、应用架构、技术架构之间的联接,这位老师描述的场景还包括:



这篇文章我就试着回答下这几个问题。


第一个问题是 3A 架构的拉通,也就是业务、数据、应用架构的拉通。讲这个问题前,我有一点要澄清下,对我来讲,完整的业务架构是包含流程模型和数据模型两部分的,而不是很多交付物里常见到的只以流程为主的情况,流程模型、数据模型、业务组件模型,这几个是业务架构的核心,其中流程模型可以到 4 级任务、5 级步骤或者介于两者间的 4.5 级这种程度,具体建多深看需要、看资源,不是一概而论的;数据模型的核心是 C 级逻辑模型,也是企业级的逻辑级数据模型,这个模型是只包含基础数据,并且是纯业务数据的,也就是说,本质上 C 模型是业务模型而不是技术模型;业务组件就是根据数据聚类任务产生的业务能力分组,属于业务架构中的高阶元素,所以我在聚合架构中讲它是聚合而来的,业务架构中的关键元素是任务和数据实体,标准化、复用、聚合都是对着它们来的


介绍了构成,回到拉通这件事。这个拉通其实要注意几点,首先是认识上,流程和数据是什么关系?是业务的一体两面,也就是只有同时描述了流程的关系和数据的关系,才完整描述了一个业务,这是为什么我主张流程模型和数据模型同时设计的原因,一个好的数据模型,尤其是 C 这一级,讲的是业务是怎么进行的,而不是单纯讲只有什么数据。并且,这讲的还是业务是怎么做的,不是系统是怎么处理的,所以它描述的又可以称为业务处理对象之间的关系,如果按照大多数项目常见的情形,把库表关系图当实体关系图,你描述的就是系统是怎么做的,而不是业务是怎么做的了,那个属于给技术用的数据视角的系统模型,而不是给业务看的业务模型。如果不理解这个,那也就不太会理解流程和数据的拉通了,之前也有其他读者问过我,为啥流程模型建完了却推导不出数据模型,这个原因可能就是你在想数据模型的时候想的还是偏库表关系而非业务对象关系,如果从业务对象的视角出发,灵活分析业务流程中涉及到的“人事物”,其实就是用业务对象作为绘图元素重新绘制了一遍流程图而已。这么理解的流程模型和数据模型才会有内在一致性


之后就是关联,如果绘制的逻辑跟上边一样,那你就可以在流程模型的 4、5 级层面与数据模型的实体对接,甚至对接到属性,但是那个工作量实在太大了,对接到实体级就行,对接以 CU 关系为主,也就是创建和修改,这时可以检查质量,比如,有没有那个数据实体没有任务创建,那它是怎么生出来的?这是业务数据,不是技术数据,不会没有业务过程平白无故产生,哪怕是习惯自动化了,机器也是替某个业务角色执行的。这就是质量问题,有实体但是无创建、有创建无修改、有创建有修改但是无使用(Read)都是要关注的问题;反过来,有任务但是不创建或修改任何数据,这个任务的价值到底在哪里?我们最初建模时,只读数据的任务是不创建的,后来其他企业实践时放松了这个限制,也是大家还是习惯给查询留个位置吧,不过这一点并不改变我前边讲的逻辑,这就是业务架构和数据架构的互相验证与联通。切记,如果做的不是逻辑级数据模型,可能也谈不上对接了,把一堆乱七八糟的技术数据混在里边、拿库表去给业务看甚至想从库表反推逻辑模型基本都行不太通,等着 GPT 以后干这事儿吧,人干是够呛。


更高级的联通还反映在通过数据聚类形成业务组件上,这一点在我的书和课程里都有,就不赘述了,可见,业务架构和数据架构,尤其是在逻辑级模型的层面,关系是高度密切的,这也是我在聚合架构这本书里为啥干脆就不写数据架构的原因,它已经包含在其他架构里了,想想微服务、DDD、Datamesh、数据编织、库仓一体等概念,基础不都是这个吗?就是数据架构融入业务架构以及其他架构


业务和数据拉通之后就是应用的拉通,这体现在两个层面,一是刚才讲到的业务组件对应用组件设计的指引,可以基于业务组件设计应用组件,这属于子系统级的对应;再深入则是根据流程和数据的映射关系,考虑在任务的范围内如何设计用例、服务,并保证串接关系的总体一致,这就是需要继承式设计,如果这个时候技术非要发挥自己的想象力再搞一套设计,那就是浪费精神头儿了,有这个时间不如在给定范围内设计更好的实现手段。这个设计过程中如果觉得业务模型有问题,那就一起商量调整,保证实施后的应用逻辑与业务架构的总体逻辑是一致的,这样以后才能继续基于业务架构驱动整体开发,让业务架构起到分解战略、标准化业务、统筹需求、拉通业务和技术的作用,如果技术只是觉得模型不对就撒手不管了,那这条通道就无从建立,所以对技术而言,核心不是业务模型做的对不对,让你做,你也没法一次做对,核心是双方如何将业务架构和应用架构的一致性建立起来,就像一个人说广东话,一个人说上海话,双方都拒绝说普通话,你也学不来对方的话,那就没法沟通了,而普通话说到底就是个共识,不接受共识,就没有能作为统一语言的普通话,提高沟通效率也就无从谈起,那就不要引入企业架构了,直到乱的都受不了那天再说,那时才有改变的动力


单纯的一致性验证可以通过文档检查手段,深入的一致性验证就得深入项目了解了。


至于读者问的第二个问题,这是工作机制和对业务架构作用的理解了。首先,业务架构师和需求分析师、产品经理是否分开岗位设置,如果是,那么,业务架构师的核心任务是创建架构资产并基于架构资产进行需求定位、统筹,也就是说,分岗的情况下,业务架构师的职能不是详细需求的整理,而是整体架构的维持,就好像交通警察的职能。业务架构资产的核心是描述能力分布,而不是细化到按钮需求,细化也能做,但是相当于业务架构师与需求分析师、产品经理的岗位融合了,人少了会这样,但是这时的整体架构把控力是弱的,因为你大部分时间必然会花在详细需求上。如果是分岗的,想要整体工作效率提升,业务架构师可以按照敏捷团队的方式参与到项目中,跟随项目一起做架构分析,不过这对业务架构师的个人能力和对业务架构资产的熟悉程度要求都很高,但是效果会比较好,不会让人觉得多了一环。是否能实现这个,除了业务架构师能力,也取决于企业开发管理模式的设置,比如对立项是怎么管的,是否支持这种快速实施方式。总之,业务架构资产的好坏不是简单以是否支持后边拿架构资产当需求文档来看的,而是看在企业整体开发模式中对它的定位来评价的


第三个问题其实已经在前边提到了,就不再讲了,欢迎大家继续提问。


更多阅读:

关于业务架构基础知识的二三事儿:业务架构与业务流程


2024-03-28 18:418103

评论

发布
暂无评论
发现更多内容

相辅相成!沈子瑜掌舵魅族科技,互相协同迈入多终端互联生态

Geek_2d6073

MySQL 原理与优化:行锁

老崔说架构

网络编程(二)TCP/IP

Albert Edison

网络编程 网络 TCP/IP 8月月更

IntelliJ IDEA 打开近期工作的项目的对话框的快捷键

HoneyMoose

用第一性原理根治数字化转型雾霾:以规则的确定性应对结果的不确定性

王和全

数字化转型 软件开发技术的第一性原理 签约计划第三季

大佬,还记得设计模式的六大设计原则吗?

知识浅谈

设计原则 8月月更

基于EFK的Kubernetes日志采集方案

Albert Edison

Kubernetes EFK 签约计划第三季 日志收集架构

小菜鸟河北联通上岗培训随笔

乌龟哥哥

8月月更

兄弟携手!魅族与星纪时代共同发力出行领域,沈子瑜成舵手

Geek_2d6073

新专利曝光,魅族 19 热帖发布!魅族不断布局出行科技圈

Geek_2d6073

魅族与星纪时代合作,沈子瑜透露品牌计划!补全消费者业务布局成关键

Geek_2d6073

Kruise Rollout:灵活可插拔的渐进式发布框架

阿里巴巴云原生

阿里云 开源 云原生 OpenKruise

Java参数传递到底是按 值传递 还是 引用传递 ?

史俊锋在搬砖

Java 后端 编程基础 签约计划第三季

Java 中使用 public,private 和 protected 修饰的方法

HoneyMoose

STM32入门开发 采用IIC硬件时序读写AT24C08(EEPROM)

DS小龙哥

8月月更

【精通内核】计算机程序的执行原理深度解析

小明Java问道之路

内核 ELF 签约计划第三季 8月月更 方法调用

[极致用户体验] 我做的《联机五子棋》是如何追求极致用户体验的?(上)

HullQin

CSS JavaScript html 前端 8月月更

介绍一个python工程师必须掌握的 CentOS 命令,nohup

梦想橡皮擦

Python 爬虫 8月月更

MyBatis(二、基础进阶)

mybatis springmvc 8月月更

Redis面试总结

TimeFriends

8月月更

一篇就够:高性能推理引擎理论与实践(TensorRT)

AIWeker

深度学习 推理引擎 签约计划第三季 TensorRT

Android进阶(十三)json应用

No Silver Bullet

json android 8月月更

使用 Kitten 开发一款趣味成语接龙游戏

汪子熙

少儿编程 scratch 8月月更 kitten 成语接龙

明年 Flyme 就上车?魅族与星纪时代战略合作后,携手发力出行领域

Geek_2d6073

云原生(十六)| Kubernetes篇之深入RC、RS、DaemonSet、StatefulSet

Lansonli

云原生 8月月更

物联网数据正在改变世界

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

开源一夏|OpenHarmony中FA模型中应用包结构的参数

坚果

开源 OpenHarmony 8月月更

RocketMQ事务消息

急需上岸的小谢

8月月更

Android进阶(十四)Android Adapter详解

No Silver Bullet

android Adapter 8月月更

大融合!魅族星纪时代达成战略合作,董事长沈子瑜透露未来大动作

Geek_2d6073

RT-Thread记录(六、IPC机制之信号量、互斥量和事件集)

矜辰所致

RT-Thread 8月月更 IPC机制

关于业务架构基础知识的二三事儿:架构联通设计_业务架构_钰湚—付晓岩_InfoQ精选文章