中台背景下的多端自适应的业务扩展模型架构实践

2024-08-22 00:18

本文主要是介绍中台背景下的多端自适应的业务扩展模型架构实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


前言

随着数字化变革的持续深入和中台战略的落地,越来来越多的最佳实践涌现出来,这里我不在赘述什么是数字化转型和什么是中台,这里我分享一下我们在中台建设中的一些顶层思考和实践。在中台规划之前中我一直在思考该如何应对业务的演进及不确定性,很遗憾至今我仍旧没有找到我满意的答案。在中台建设中的关键的方法是分割业务的确定性和不确定性,即封装确定性沉淀为中台化的共享服务能力,隔离不确定性通过扩展能力或扩展方式使其具备演化的能力。简而言之就是业务的内含与外延的动态演变。

 

一、核心思想

如果要把现实的物理世界映射到计算机的数字化世界就需要建立模型去承载物理世界的信息,往往我们设计的模型只涵盖了具备确定性的业务,对于那些外延性或不确定性的业务,业务模型往往不支持扩展或兼容。那么我们能不能通过某种方式让已有的业务模型具备不确定性业务的扩展方式呢?答案是肯定的,很庆幸我和我们团队在业务中台建设的道路上找到了确定性业务VS不确定性业务模型的封装和隔离的策略及不确定性业务的扩展方式(见图1确定性业务和不确定业务的封装扩展方式)。

 

                                                                       

                                                                                                    图1  确定性业务和不确定业务的封装扩展方式

 

二、落地实践

1.元数据模板引擎

业务扩展模型元数据字段管理:

面向对象编程的过程就是把真实的物理事件通过建模映射在对象模型之中,其关键就是对象属性的定义。通过上述两个动作,任何不确定性业务抽象出来的属性都可以通过字段管理进行定义和描述。

1 在中台规划中我们基于层设计规划和定义了数据所属的类目;
2 基于可视化的操作界面定义业务模型需要的属性和字段;

                                      

 

 

业务扩展模型元数据模板管理:

有了可以动态编辑和定义业务模型属性的地方,我们还需要通过某种方式对业务模型的字段或属性进行编排,那可视化的编排视图将使这种模型编排变成可能。我们的做法如下

1 通过可视化的界面定义和编排不确定性业务的属性,我们从抽象定义出来的属性库中选取我们需要的属性构建成我们的元数据模板如图2所示;
2 通过构建把元数据模板编排的字段转换成我们的业务扩展模型代码并存入库并如图3所示;
编排业务扩展模型元数据模板属性
                                                      图2 元数据模板字段编排
元数据模板
                                                     图3 元数据模板

 

业务扩展模型代码生成:

1.获取元数据模板的字段

                                   

 

2.构建元数据模板

                                    

 

3.生成java类

                                   

4.把Java类数据存入到模板中

                                  

 

 

2.业务扩展共享模型库动态加载

业务中台应用运行态热加载业务扩展模型:

核心思想是通过业务能力扩展框架在模型发布后通过事件触发热加载机制从maven仓库中拉取最新的共享业务模型构建包,动态加载到运行区。这里可能有人问,是怎么加载的。具体的实现细节请关注我微信公众号“架构微学堂”

                                                                                                                    
 


总结


以上就是今天要讲的内容,本文仅仅简单介绍了业务扩展模型设计思路及定义过程,具体的使用将在下一篇为您呈现。

这篇关于中台背景下的多端自适应的业务扩展模型架构实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094697

相关文章

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分