| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 数字化转型底层方法论 - 1)中台深水区实践之:【业务架构】 -> 正文阅读 |
|
[大数据]数字化转型底层方法论 - 1)中台深水区实践之:【业务架构】 |
中台系列共4大篇章,在此分享其中第一篇章,其他阅读,可关注公号【云世】获取。 中台的差异化适配和建设,印证了中台实践已进入深水区。与此同时,中台实施“失败”的案例也不绝于耳,?行业对“中台”观点,出现清晰的分化。这里,我们不展开对于中台实施失败案例的讨论与分析,而将关注点放在更加底层的商业逻辑和方法论沉淀上来。 中台建设的成功,或者“失败”,甚至“去中台化”声音背后,本质上是一致的商业逻辑: 对中台的复用实践经验: “看上去的能力复用是乐高组装,但真实的能力复用其实是器官移植,需要的是一场外科手术。” 因此,我们认同这样的观点:“中台”是手段、过程,不是目的本身。回归本源,从问题与价值出发,“平台化”?向业务的再演进,是这一轮数字化建设浪潮中需要关注的重要趋势,也是企业现代化进程中的关键步骤。 再提业务平台化,是因为深水区实践中,?新的问题将业务平台化内涵向前演进。 ?“平台化”是从信息化到数字化时代,每一轮 IT 建设都会提及的主题之一。而当平台沿着历史发展的趋势继续向业务的“逼近”过程中,对于平台抽象和建设的难度也成指数型增加,涌现出了一系列新问题: 1)?如何抽离多业务线共享的解决方案和能力,集中管控和演进,以避免重复投资? 2)新业务如何基于企业已有的解决方案和?能力快速组装上线,以支撑业务快速迭代创新? 3)?如何合理地划分 IT 系统边界,以得到随“需”而变的响应力? 4) ??如何适当拆分过于集中的分析类数据处理职责,以缓解规模化数据分析处理瓶颈? 5)如何在富技术时代进行平台型技术架构选型及设计? 业务架构?(Business Architecture)?定义了企业各类业务的运作模式及业务之间的关系结构。它以承接企业战略为出发点,以支撑实现企业战略为目标,?通过对于业务能力的识别与构建,并将业务能力以业务服务的方式透出,实现对于业务流程的支撑,?并最终通过组织给予保障。 业务架构是企业架构的核心内容,直接决定了企业战略的实现能力,是其他架构领域工作的前提条件和架构设计的主要依据。 业务架构整体上包括“业务”、“流程”、“组织”、 ?“服务”、“领域”和“模式”六大部分,如下图: 其中“模式”部分是我们为“平台型”企业架构设计的核心解决方案,包括: 什么是可共享复用的能力? 在现代企业架构中,面向能力的规划超越面向功能与服务的规划,成为企业级业务架构规划的关注要点,如何基于能力的识别与规划,最大化的沉淀企业级可复用的能力,并通过扩展、编排和组合等形式应用到更多的场景,是平台型企业架构需要解决的关键问题。 企业为了应对业务的快速迭代、多场景和不确定性,?需要在平台上构建可复用的“能力”以及为能力提供必要的扩展与可变机制,以此为不同前台提供灵活多变的业务服务,满足不同前台差异化个性化的的需求。 而“能力”根据粒度的不同,可再度细分为“基础能力”、“能力组件”和“解决方案”三个层级。 不同业务的差异性,则可通过能力的“扩展点”设计和不同“业务身份”在扩展点上的“扩展实现”?进行区分。
如何识别和构建能力? 识别构建能力的过程分为“业务梳理”和“模式设计”?两个阶段。
具体过程如下: 模式设计阶段中: ??流程建模:负责识别共性业务,并抽取通用流程,?设计可变点,作为可复用性分析的基础。 ??领域建模:负责基于流程建模结果,识别领域事件和领域对象,并划分子域的边界;领域对象构成了提供可复用能力的基本单元,对领域对象的操作即是基础能力。 ??业务身份建模:负责定义业务身份识别的要素和业务身份解析规则,用于给可复用的能力区分不同的业务身份要素。 ??能力建模:负责最终完成平台三类可复用能力的设计,即“基础能力”设计、“能力组件”?设计和“解决方案”设计。 下面将详细说明各步骤的实施方法: 流程建模 为了提取可复用的能力,首先需要识别共性业务,?然后将同一类共性的业务抽象提炼出通用流程,并基于通用流程进行可变性分析。 具体方法是按业务架构中流程部分的元模型(阶段、活动、任务、步骤、业务规则),结合自上而下以及自下而上的方式逐层提炼收敛通用模型和可变点。 总体实现机制如下: 提炼通用流程后的可变性分析,旨在找出“什么在变”、“为什么变”和“怎么变”,因此可变性模型主要由:?????“可变点”、“可变点实现”以及“可变点、可变点实现之间的关系”三部分组成。 综上所述,流程建模的主要步骤如下: ??分析业务组合,提取共性业务。 ??分析所有共性业务的各流程步骤及其输出对象,?抽象提炼通用步骤和业务实体;识别各业务的差异部分,提炼设计可变点,确定可变点实现和关系。 ??分析所有共性业务的各流程任务,抽象提炼通用任务;识别各业务在任务上的差异部分。 ??分析所有共性业务的各流程活动,抽象提炼通用活动;识别各业务在活动上的差异部分。 ??分析所有共性业务的各流程阶段,抽象提炼通用阶段;识别各业务在阶段上的差异部分。 领域建模 领域是指组织的业务范围以及在其中所进行的活动,也就是平台能力需要支撑的业务范围。因此,?为了构建出平台能力,需要对业务领域进行深入的理解和设计。 在业务架构部分,将进行领域战略层级的建模,主要包括:“子域”、“领域对象”、“领域事件”?部分的设计。 领域战略层级建模的过程如下: 领域事件识别 领域事件(Domain Event):是领域专家关心的,?在业务上真实发生的事件,这些事件对系统会产生重要的影响,如果没有这些事件的发生,整个业务逻辑和系统实现就不能成立。我们可以通过领域事件对过去发生的事情进行溯源,因为过去所发生的对业务有意义的信息都会通过某种形式保存下来。比如:“用户地址已更新”、“订单已发货”?等领域事件。 领域事件对系统常见的影响有: ??对内 -?产生了某种数据 -?触发了某种流程或事情 -?状态发生了某种变化 ??对外 -?发送了某些消息 目前比较常用的领域事件识别方法是“事件风暴(Event Storming)”,主要步骤如下: ??邀请业务专家(或领域专家)和技术专家共同参与事件风暴工作坊,其它参与角色按需补充。 ??明确和选择需要分析的业务场景。 ??确定起始事件和结束事件,事件以“XXX 已 YYY”的形式进行命名(对于英文版过去完成时的中文表达方法)。 ??根据场景和业务复述的复杂度,决定以时间线的哪个方向开始梳理事件(正向或逆向)。 ??以先发散再收敛的方式,按照时间线的先后顺序和并行关系,补充和完善领域事件。 ??使用“规则”抽象分支条件或复杂的规则细节,?通过抽象降低分支复杂度,规则以“XXX 规则”的名词形式进行命名。 ??完成一遍事件梳理之后,通过问问题的方式,?逆向检查(Reverse Check)事件流的逻辑合理性,例如: -?该事件真的需要在系统实现的时候考虑吗? -?该事件如果存在,那它的前提条件是什么? -?该事件如果要产生,那它的前一个事件必须是? ??重复以上步骤,迭代式的完成全部领域事件的识别。 领域对象识别 领域对象(Domain Object):是对业务的高度抽象,作为业务和系统实现的核心联系,领域对象封装和承载了业务逻辑,是系统设计的基础。 领域建模中重要的部分之一就是对“领域对象”及领域对象之间关系的识别和设计。而领域对象识别将基于前面领域事件识别的结果开展。 领域对象,通常包含(但不限于): ??领域事件中出现了的名词; ??如果没有信息系统,在现实中会看得见摸得着的事物(例如订单); ??虽然在当前业务中看不见摸不着,但是可以在未来抽象出来的业务概念。 在领域驱动设计(Domain-Driven Design)中一般存在三类领域对象:
业务架构只负责初步和整体识别领域对象,而对领域对象的分类(聚合根、实体、值对象)和战术层级的详细设计将在应用架构设计部分完成。 领域对象识别的主要步骤如下: ·?对每一个领域事件,快速识别或抽象出与该领域事件最相关(或隐含的)的业务概念,并将其以名词形式予以贴出。 ??检查领域名词和领域事件在概念和粒度(例如数量,单数还是集合)上的一致性,通过重命名的方式统一语言,消除二义性。 ??如果在讨论过程中,有任何因为问题澄清和知识增长带来的对于之前各种产出物的共识性调整,请不要犹豫,立刻予以调整和优化。 ??重复以上步骤,迭代式的完成全部领域对象的识别。 领域对象识别的示例如下: 子域划分 子域(Subdomain):是对问题域的澄清和划分, 同时也是对于资源投入优先级的重要参考。比如:?“订单子域”、“物流子域”等,子域的划分仍属于业务架构关注范畴。 子域的类型分为:
子域划分的主要步骤如下: ??根据“每一个问题子域负责解决一个有独立业务价值的业务问题”的视角出发,可以通过疑问句的方式来澄清和分析子域需要解决的业务问题,例如“如何进行库存管理?(英文描述类似 How to…?)”。 ??利用虚线,将解决同一个业务问题的限界上下文以切割图像的方式划在一起,并以“XXX 子域”的形式对每个子域进行命名。 ??根据三种类型的子域定义,共同结合业务实际 (或者参考设计思维中的电梯演讲),确定每个子域的子域类型。 子域划分的示例如下: 业务身份建模 业务身份由“业务身份 ID”、“业务身份名称”、?“业务身份要素定义”、“业务身份识别解析规则”?四个部分组成。 其中,业务身份要素定义是最基础、也是最难的部分。企业应根据自身业务特征对身份要素进行识别定义,常见的身份要素维度包括但不限于:客户、产品和渠道等。 业务身份要素除了对要素维度进行抽取识别,还需要定义每个要素维度所包含的领域对象(包括领域对象的属性);这些领域对象及其属性用来定义业务身份的识别解析规则。 业务身份建模的主要步骤如下: ??分析业务组合,提取业务身份要素维度。 ??确定各业务身份要素维度对应的领域对象(包括领域对象的属性)。 ??确定领域对象各属性的取值条件规则,定义业务身份识别解析规则。 ??指定业务身份名称。 ??指定业务身份 ID。 能力建模 能力建模分为“基础能力和扩展点设计”、“能力?组件设计”和“解决方案设计”三个部分,过程顺序如下: 基础能力与扩展点设计
不同的业务通过使用同一个基础能力来达成共享复用的目的,而不同业务在业务规则上的差异性,则通过定义该基础能力在扩展点上的不同扩展实现来区分。 需要注意的是,通常这套机制需要技术上的开发框架支持。 基础能力与扩展点设计的主要步骤如下: ??对流程建模步骤中输出的各“任务”下的所有“步骤”,确定其对应的领域对象(注意,该领域对象应来自于前面的领域建模步骤)。 ??根据步骤对领域对象的操作,设计对应的基础能力;基础能力的设计应遵循如下原则: ??完成对一个领域对象单一且完整的操作职责 ??基础能力操作的领域对象最大不能超出单个聚合,最小不能破坏业务的一致性要求 ??基础能力的输入与输出建议对象化,以规范使用 ??根据流程建模步骤中识别出的与该基础能力有关的可变点,以及各业务身份在该可变点上不同的业务规则,提炼设计出基础能力的扩展点 · 确定扩展点的默认实现(即默认情况下基础能力执行的业务规则) 能力组件设计 能力组件:是对基础能力的进一步封装,目的是方便业务的使用。能力组件加快了业务接入平台的速度,让业务侧专注业务本身,不再需要耗费精力在理解平台大量的基础能力上。 能力组件按封装粒度不同分为两类:
实现机制及示例如下: 基础能力与能力组件的设计都基于流程建模和领域建模的结果,各设计产出要素的对应关系如下: 能力组件设计的主要步骤如下: ??对流程建模中输出的每个任务,设计其所需的业务服务,可采用服务蓝图的方法进行业务服务设计。 ??对每个业务服务,封装编排满足其需求的一组基础能力成为第一类能力组件。 ??对流程建模中输出的阶段和业务活动进行逐项分析,从价值交付和阶段性价值交付的角度,?识别对应的一系列紧密关联的业务活动;将这些业务活动包含涉及的所有能力组件和基础能力封装定义为第二类能力组件。 解决方案设计 解决方案:是平台针对一类共性业务的端到端过程设计的能力模板;可基于该模板快速定制某个具体业务的特定能力,从而达到业务模式复用的目的。比如:虚拟物品交易解决方案。 从以上定义可以看出,解决方案的核心是对共性业务进行识别提取和对业务全部能力进行模板化封装。 解决方案设计的主要步骤如下: ??识别和提取共性业务。 ??对共性业务进行流程建模和领域建模,具体方法参见前面所述。 ??进行基础能力和扩展点设计。 ??进行能力组件设计。 基于通用流程,将共性业务中包含的所有基础能力、扩展点和能力组件封装定义为解决方案。 如何复用能力,实现新业务快速上线? 多层级复用 在平台化架构中,能力的复用可分为三个层级: 其中“业务能力复用”和“业务模式复用”层级都?对可复用能力的识别和设计提出了要求。因此,基于前面论述的可复用能力构建方法,我们就能实现这两层的复用效果。 多层级复用为什么能实现呢?首先在于底层领域模型的设计,有了建模后的领域对象提供共享的基础能力,再加上扩展机制,就能实现基础能力在不同业务上的复用;而经过通用流程的建模,这些基础支撑能力又能进一步组装成更大粒度的可复用能力组件,从而实现局部业务流程的复用;如果业务流程的复用能够延伸到业务的全流程,即对于同一类共性业务其全流程都能基于一个解决方案模板定制,?而这个解决方案模板是其下所有能力组件和基础能力的封装,那么新的业务只需定制该解决方案模板即可实现业务模式的复用,快速上线新业务。其关系如下: 复用基础能力和能力组件 在识别和构建了平台的基础能力和能力组件之后,不同业务就能针对特定的业务需求复用它们并快速定制。方法是对基础能力下的扩展点进行扩展实现的配置和开发,示例如下: 复用基础能力和能力组件的主要步骤如下: ??配置新业务对应的业务身份在各基础能力扩展点上的扩展实现,如果无需定制可直接采用默认扩展实现。 ??开发基础能力的扩展实现。 ??根据业务流程,编排基础能力和能力组件,实现业务需求。 ??对于现有能力不能满足业务需求的情况,需要平台侧新增开发任务,修改或者新增基础能力和能力组件;然后应用侧按上述过程完成定制使用。 复用解决方案 对于新业务,如果已构建了其所属共性业务的解决方案,则可通过复用该解决方案进行业务的快速定制。方法是:基于解决方案的通用流程定制新业务流程,并对基础能力下的扩展点进行扩展实现的配置和开发。 复用解决方案的主要步骤如下: ??基于选定的解决方案,配置新业务的业务全流程。 ??配置新业务对应的业务身份在各基础能力扩展点上的扩展实现,如果无需定制可直接采用默认扩展实现。 ??开发基础能力的扩展实现。 ??根据业务全流程,编排基础能力和能力组件,?实现业务需求。 ??对于现有能力不能满足业务需求的情况,需要平台侧新增开发任务,修改或者新增基础能力、能力组件和解决方案;然后应用侧按上述过程完成定制使用。 业务架构元模型补充说明 在前面,我们对业务架构元模型的“Pattern(模式)”部分进行了详细说明,下面对业务架构元模型的其余部分进行补充说明;这些部分都可参照传统业务架构的方法进行设计,此处不再赘述。 业务维度 此维度主要对企业的业务组合管理进行建模,分析企业各主营业务和辅助业务的关系结构及运作模式。要素如下:
流程维度 此维度主要对企业的业务流程进行分层建模,分析企业如何通过一系列业务活动,按照相关的业务规则将输入转换成为有价值的输出,从而实现用户价值。要素如下:
组织维度 此维度主要对企业的组织体系进行分析。公司组织体系指为了保障战略和业务规划落地,以及有效实施业务流程体系,公司采取的组织架构和管控模式。要素如下:
服务维度 此维度主要对企业对内和对外提供的业务服务进行建模分析。要素如下: 业务服务:是企业和企业的每个业务单元为其客户提供的内部和外部服务。服务是能力对外呈现价值的方式,是具备明确的业务特征,独立完整、由一个或多个关联紧密的功能组合的集合。比如:开户、提交订单等。 下一节,我们分享:【业务平台进入深水区的应用架构实现】,记得来读。 如果你觉得这个系列有价值,也欢迎转发给有需要的朋友。 欢迎你关注【云世】公众号,在留言区参与讨论。 云世 【云世】专注职场人的硬实力和软技能提升。为产品上云,微服务和云原生前沿技术和落地实践布道,分享微服务架构、容器、K8s、Service Mesh等云技术干货、案例、经验;持续发布职场做事方法论、团队管理、读书笔记,好书推荐等软技能。 公众号??? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 23:29:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |