DDD进阶_一文带你搞定什么是前台、中台、后台_前中后台-程序员宅基地

技术标签: 架构以及设计模式  前台  中台  

DDD从入门到精通,系列文章传送地址,请点击本链接。

目录

一、中台和平台的关系

二、什么是中台?

三、数字化转型中台应该共享什么?

四、如何实现前中后台的协同?

1. 前台

2. 中台

3. 后台


一、中台和平台的关系

平台只是将部分通用的公共能力独立为共享平台。虽然可以通过 API 或者数据对外提供公共共享服务,解决系统重复建设的问题,但这类平台并没有和企业内的其它平台或应用,实现页面、业务流程和数据从前端到后端的全面融合,并且没有将核心业务服务链路作为一个整体方案考虑,各平台仍然是分离且独立的。

平台解决了公共能力复用的问题,但离中台的目标显然还有一段差距!

二、什么是中台?

每个人对中台的理解和定义都会不相同,其中阿里的定义为:“中台是一个基础的理念和架构,我们要把所有的基础服务用中台的思路建设,进行联通,共同支持上端的业务。业务中台更多的是支持在线业务,数据中台提供了基础数据处理能力和很多的数据产品给所有业务方去用。业务中台、数据中台、算法中台等等一起提供对上层业务的支撑。”

再看一下思特沃克对中台的定义:“中台是企业级能力复用平台。”

综上,我们可以提炼出几个关于中台的关键词:共享、联通、融合和创新。联通是前台以及中台之间的联通,融合是前台流程和数据的融合,并以共享的方式支持前端一线业务的发展和创新。

中台来源于平台,但中台和平台相比,它更多体现的是一种理念的转变,它主要体现在这三个关键能力上:对前台业务的快速响应能力;企业级复用能力;从前台、中台到后台的设计、研发、页面操作、流程服务和数据的无缝联通、融合能力。

三、数字化转型中台应该共享什么?

相对互联网企业而言,传统企业的渠道应用更多样化,有面向内部人员的门店类应用、面向外部用户的互联网电商以及移动 APP 类应用。这些应用面向的用户和场景可能不同,但其功能类似,基本涵盖了核心业务能力。此外,传统企业也会将部分核心应用的页面或 API 服务能力开放给生态圈第三方,相互借力发展。

为了适应不同业务和渠道的发展,过去很多企业的做法是开发很多独立的应用或 APP。但由于 IT 系统建设初期并没有企业级的整体规划,平台之间融合不好,就导致了用户体验不好,最关键的是用户并不想装那么多 APP。

为了提升用户体验,实现统一运营,很多企业开始缩减 APP 的数量,开始通过一个 APP 集成企业内的所有能力,联通前台所有的核心业务链路。

由于传统企业的商业模式和 IT 系统建设发展的历程与互联网企业不是完全一样的,因此传统企业的中台建设策略与阿里中台战略也应该有所差异,需要共享的内容也不一样。

由于渠道多样化,传统企业不仅要将通用能力中台化,以实现通用能力的沉淀、共享和复用,这里的通用能力对应 DDD 的通用域或支撑域;传统企业还需要将核心能力中台化,以满足不同渠道的核心业务能力共享和复用的需求,避免传统核心和互联网不同渠道应用出现“后端双核心、前端两张皮”的问题,这里的核心能力对应 DDD 的核心域。

这就属于业务中台的范畴了,我们需要解决核心业务链路的联通和不同渠道服务共享的问题。除此之外,我们还需要解决系统微服务拆分后的数据孤岛、数据融合和业务创新等问题,这就属于数据中台的范畴了,尤其是当我们采用分布式架构以后,我们就更应该关注微服务拆分后的数据融合和共享问题了。

综上,在中台设计和规划时,我们需要整体考虑企业内前台、中台以及后台应用的协同,实现不同渠道应用的前端页面、流程和服务的共享,还有核心业务链路的联通以及前台流程和数据的融合、共享,支持业务和商业模式的创新。

四、如何实现前中后台的协同?

如果把业务中台比作陆军、火箭军和空军等专业军种的话,它主要发挥战术专业能力。前台就是作战部队,它需要根据前线的战场需求,对业务中台的能力进行调度,实现能力融合和效率最大化。而数据中台就是信息情报中心和联合作战总指挥部,它能够汇集各种数据、完成分析,制定战略和战术计划。后台就是后勤部队,提供技术支持。

1. 前台

传统企业的早期系统有不少是基于业务领域或组织架构来建设的,每个系统都有自己的前端,相互独立,用户操作是竖井式,需要登录多个系统才能完成完整的业务流程。

中台后的前台建设要有一套综合考虑业务边界、流程和平台的整体解决方案,以实现各不同中台前端操作、流程和界面的联通、融合。不管后端有多少个中台,前端用户感受到的就是只有一个前台。

在前台设计中我们可以借鉴微前端的设计思想,在企业内不仅实现前端解耦和复用,还可以根据核心链路和业务流程,通过对微前端页面的动态组合和流程编排,实现前台业务的融合。

前端页面可以很自然地融合到不同的终端和渠道应用核心业务链路中,实现前端页面、流程和功能复用。

2. 中台

传统企业的核心业务大多是基于集中式架构开发的,而单体系统存在扩展性和弹性伸缩能力差的问题,因此无法适应忽高忽低的互联网业务场景。而数据类应用也多数通过 ETL 工具抽取数据实现数据建模、统计和报表分析功能,但由于数据时效和融合能力不够,再加上传统数据类应用本来就不是为前端而生的,因此难以快速响应前端一线业务。

业务中台的建设可采用领域驱动设计方法,通过领域建模,将可复用的公共能力从各个单体剥离,沉淀并组合,采用微服务架构模式,建设成为可共享的通用能力中台。

同样的,我们可以将核心能力用微服务架构模式,建设成为可面向不同渠道和场景的可复用的核心能力中台。 业务中台向前台、第三方和其它中台提供 API 服务,实现通用能力和核心能力的复用。

但你需要记住这一点:在将传统集中式单体按业务职责和能力细分为微服务,建设中台的过程中,会产生越来越多的独立部署的微服务。这样做虽然提升了应用弹性和高可用能力,但由于微服务的物理隔离,原来一些系统内的调用会变成跨微服务调用,再加上前后端分离,微服务拆分会导致数据进一步分离,增加企业级应用集成的难度。

如果没有合适的设计和指导思想,处理不好前台、中台和后台的关系,将会进一步加剧前台流程和数据的孤岛化、碎片化。

数据中台的主要目标是打通数据孤岛,实现业务融合和创新,包括三大主要职能:

  1. 一是完成企业全域数据的采集与存储,实现各不同业务类别中台数据的汇总和集中管理。
  1. 二是按照标准的数据规范或数据模型,将数据按照不同主题域或场景进行加工和处理,形成面向不同主题和场景的数据应用,比如客户视图、代理人视图、渠道视图、机构视图等不同数据体系。
  1. 三是建立业务需求驱动的数据体系,基于各个维度的数据,深度萃取数据价值,支持业务和商业模式的创新。

相应的,数据中台的建设就可分为三步走:

第一步实现各中台业务数据的汇集,解决数据孤岛和初级数据共享问题。

第二步实现企业级实时或非实时全维度数据的深度融合、加工和共享。

第三步萃取数据价值,支持业务创新,加速从数据转换为业务价值的过程。

数据中台不仅限于分析型场景,也适用于交易型场景。它可以建立在数据仓库或数据平台之上,将数据服务化之后提供给业务系统。基于数据库日志捕获的技术,使数据的时效性大大提升,这样就可以为交易型场景提供很好的支撑。

综上,数据中台主要完成数据的融合和加工,萃取数据业务价值,支持业务创新,对外提供数据共享服务。

3. 后台

很多人提到中台时自然会问:“既然有前台和中台,那是否有后台,后台的职责又是什么?”

我们来看一下阿里对前台、中台和后台的定位。

前台主要面向客户以及终端销售者,实现营销推广以及交易转化;中台主要面向运营人员,完成运营支撑;后台主要面向后台管理人员,实现流程审核、内部管理以及后勤支撑,比如采购、人力、财务和 OA 等系统。

那对于后台,为了实现内部的管理要求,很多人习惯性将这些管理要求嵌入到核心业务流程中。而一般来说这类内控管理需求对权限、管控规则和流程等要求都比较高,但是大部分管理人员只是参与了某个局部业务环节的审核。这类复杂的管理需求,会凭空增加不同渠道应用前台界面和核心流程的融合难度以及软件开发的复杂度。

在设计流程审核和管理类功能的时候,我们可以考虑按角色或岗位进行功能聚合,将复杂的管理需求从通用的核心业务链路中剥离,参考小程序的建设模式,通过特定程序入口嵌入前台 APP 或应用中。

管理需求从前台核心业务链路剥离后,前台应用将具有更好的通用性,它可以更加容易地实现各渠道前台界面和流程的融合。一个前台应用或 APP 可以无差别地同时面向外部互联网用户和内部业务人员,从而促进传统渠道与互联网渠道应用前台的融合。

声明:文章内容是极客时间专栏学习的学习笔记,会做简化或调整,欢迎大家留言和评论。

DDD从入门到精通,系列文章传送地址,请点击本链接https://blog.csdn.net/wanghaiping1993/article/details/125433802

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wanghaiping1993/article/details/125467770

智能推荐

R2机器人加载棋盘与棋子模型,对urdf、sdf的解释(区分srdf)_sdf和urdf-程序员宅基地

文章浏览阅读3k次,点赞51次,收藏41次。熟悉这些机器人的常见格式,对于创建和操作机器人是至关重要的_sdf和urdf

设计概念_设计概念功能独立-程序员宅基地

文章浏览阅读745次。一、软件工程中的设计数据设计或类设计将类模型转化为设计类的实现以及软件实现所要求的数据结构。体系结构设计定义了软件的主要结构化元素之间的关系、可满足系统需求的体系结构风格和模式以及影响体系结构实现方式的约束。接口设计描述了软件和协作系统之间、软件和使用人员之间如何通信。构件级设计将软件体系结构的结构化元素变换为对软件的过程性描述。二、软件质量指导原则和属性软件质量指导原则..._设计概念功能独立

Kettle定时任务调度_kettle任务调度-程序员宅基地

文章浏览阅读6.8k次,点赞10次,收藏65次。文章目录一、打开软件1.1 打开kettle1.2 打开SQL Server1.3 打开navicat1.3.1 navicat连接sqlserver准备sql server数据表(dept)准备sql server数据表(emp)1.3.2 navicat连接mysql1.4 可能出现的bug问题Error connecting to database: (using class org.gjt.mm.mysql.Driver)Error connecting to database: (using c._kettle任务调度

强力推荐!那些你不能错过的 GitHub 插件和工具_github与gitpod的插件-程序员宅基地

文章浏览阅读1.4w次,点赞5次,收藏19次。http://www.gad.qq.com/article/detail/32503以代码托管平台起家的 GitHub 网站,已然成为全球程序员工作和生活中不可或缺的一份子。从优秀的企业,到优秀的程序员,都将自己最优秀的代码作品存放在这片开源净土里,供彼此学习交流。GitHub Trending 栏目甚至已经成为 IT 从业人员的新闻日报,每日必读。既然 GitHu_github与gitpod的插件

PTPX中的time_based analysis-程序员宅基地

文章浏览阅读1.1k次。根据VCD文件的type,PTPX支持instantaneous peak power analysis和cycle_accurate peakpower analysis。Time-Based Power Analysis支持的VCD type 由于Gate_level和zero_delay的VCD不支持event propa..._ptpx time

VisualSVN安装图解-程序员宅基地

文章浏览阅读79次。VisualSVN安装教程、、、-----------------------------------参考网址:https://www.visualsvn.com/server/download/安装参考网址:http://www.jb51.net/article/71815.htm----------------------------------------------..._安装visualsvn

随便推点

程序员语言也有鄙视链!某美团程序员爆料:筛选简历时,用go语言的基本不看!网友:当韭菜还当出优越感了!...-程序员宅基地

文章浏览阅读645次。程序员使用的语言有鄙视链吗?有人说有,有人说没有。一个美团员工发帖说,筛选简历时用go语言的基本不看。短短一句话,把对go语言的鄙视体现得淋漓尽致,难道go语言真的不如其他语言?和他一..._go语言的鄙视链

小说网站系统源码|PHP付费小说网站源码带app-程序员宅基地

文章浏览阅读5.3k次。在本文中,我将解释如何将ink与Unity项目集成,以及如何使用ink API与我们的小说网站源码系统进行交互。在我们开始之前,请确保您有一个包含一些对话和选择的墨水文件。您可能想下载并使用我准备的示例故事。这实际上是来自Guilt Free的简化场景,通过分享这一点,我想向您展示一个真实的视觉小说系统源码示例和实际代码的技术。完整源码:xsymz.icu项目设置继续在 Unity 中创建一个新的 2D 项目。然后添加您可以在此处找到的墨水插件。在ink插件文件夹(Plugins/Ink)里会有一_小说网站源码

Swift编码规范_swift 正则判断文件类型-程序员宅基地

文章浏览阅读531次。参考API Design Guidelineshttps://swift.org/documentation/api-design-guidelines/swift-style-guidehttps://github.com/raywenderlich/swift-style-guide项目命名规范一、工程文件夹、文件目录结构【业务模块】1、文件夹采用下划线命名,名字全部小写下划线间隔,如module_login2、文件、类、结构体、枚举、协议采用大驼峰命名,每个单词首字母大写,如 MyCu_swift 正则判断文件类型

关于shell 中return用法解释(转)_shell return-程序员宅基地

文章浏览阅读2.2w次。1、return命令会使得一个函数返回.return命令会返回一个单一的数字参数, 而这个数字参数在调用这个函数的脚本中是可见的.如果没有指定返回参数,return在默认情况下会返回上一次命令的返回代码。2、了解一个概念:return value ﹗我们在 shell 下跑的每一个 command 或 function ,在结束的时候都会传回父行程一个值,称为 return value 。在 shell command line 中可用 $? 这个变量得到最"新"的一个 return value_shell return

Linux编译宏BUILD_BUG_ON_ZERO-程序员宅基地

文章浏览阅读834次。本系列文章主要写我在阅读Linux内核过程中,关注的比较难以理解但又设计巧妙的代码片段(不关注OS的各个模块的设计思想,此部分我准备写在“深入理解Linux Kernel”系列文章中),一来通过内核代码复习一下C语言及汇编语言的语法,二来学习内核开发大牛们书写代码的风格及思路。理解了上面之后,再来看看第二个BUILD_BUG_ON_NULL(e)宏,与第一个类似,-------------------------------------完--------------------------------_build_bug_on_zero

c51语言单片机打铃系统设计,基于单片机的自动打铃系统的设计-程序员宅基地

文章浏览阅读678次。//调用单片机头文件#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255#define uint unsigned int //无符号整型 宏定义 变量范围0~65535#include "eeprom52.h"#include "nongli.h"bit flag_2..._基于单片机的自动打铃控制系统设计提纲

推荐文章

热门文章

相关标签