业务中台是基于DDD方法论进行实践并抽象出来的一种企业应用架构。中台项目的建模过程主要由技术建模构成。本文介绍示例项目中技术建模的相关内容。

背景信息

技术建模包括业务域划分、领域模型、数据模型、服务模型等内容,主要目的是能够基于DDD的建模方法论将业务模型转化成技术模型,从而能高效指导中台应用的开发。更多信息,请参见技术建模

业务域

示例项目中预置了两个业务域:用户域和商品域,且两个业务域中都包含简单的领域模型数据模型应用服务,这两个业务域仅作为示例参考,并未覆盖完整的业务设计。本文以用户域为例介绍业务域,帮助您了解BizWorks中各种对象的定义与使用方法。

在示例项目的业务域页面,您可以看到系统自动创建的两个业务域(用户域和商品域)。单击用户域名称后,在用户域版本列表中,单击v1.0.0版本号,并查看v1.0.0版本的内容,具体如下图所示:1

更多信息,请参见创建与管理领域对象

领域模型

在用户域v1.0.0版本的领域模型页签,单击领域对象后,单击领域模型设计器,在模型设计器页面您可以通过可视化方式查看模型情况。用户域的领域模型中包含三个对象,分别是用户(实体对象、聚合根)、账号(实体对象)、地址(值对象)。具体如下图所示:1

更多信息,请参见使用领域模型设计器

领域模型之间的关系可以在模型设计器中快速编辑,目前领域对象间的关系支持关联、聚合、组合与继承。

表 1. 对象关系多重性设置规则表
对象关系 1 : 0..* 1 : 1..* 1 : 0..1 1 : 1
关联 适用 适用 适用 适用
聚合 适用 适用 适用 适用
组合 适用 适用 适用 适用
继承 不适用 不适用 不适用 不适用

更多领域对象关系信息,请参见领域对象关系

数据模型

在用户域v1.0.0版本的数据模型页签,单击数据模型设计器,在数据模型设计器页面您可以通过可视化方式查看数据模型信息。用户域的数据模型与模型间关联关系如下:1

更多信息,请参见使用数据模型设计器

数据模型中支持如下字段,模型间的关系可以通过引用字段来设置。例如地址是用户对象的补充信息,地址和用户对象之间存在关联关系。那么地址表中UserId的字段类型需要选择为Reference(引用),并且引用对象需要选择为用户数据模型中的userId,具体如下图所示:1
数据模型中目前支持的字段类型如下:
表 2. 数据模型参数
参数 说明
字段名称 自定义字段的名称。
编码 英文字母和数字的组合,长度不得超过80个字符,需以小写字母开头,在数据模型中唯一。
表字段名 系统会根据数据模型编码自动生成表字段名,表名用于生成DDL脚本。如果您需要修改生成规则,可以返回数据模型列表页面,单击设置表信息生成规则,在设置表信息生成规则面板更改设置。
字段类型 文本类:Text(文本)LongText(长文本)。可选择该字段是否为主键、是否必填、是否唯一,并设置默认值
说明 如果某个字段被设置为主键,则唯一必填都会自动被选中。
日期类:Date(日期)DateTime(日期时间)Timestamp(时间戳)。该类型字段不支持作为主键,并且默认值只能选择固定的日期,不能使用Today()等相对时间或使用函数。
说明 设置默认值不会影响代码生成和数据库DDL语句。
整数数值类:Integer(整数)Long(长整型)。可选择该字段是否为主键、是否必填、是否唯一,并设置默认值
小数数值类:Double(小数)Decimal(高精小数)。该类型不支持作为主键,并且需要填写小数位数
Boolean(布尔):支持取值TrueFalse
Reference(引用):选择该类型后需要选择关联的表和字段,该引用字段的实际类型与关联字段的类型相同。其中,关联的表是当前版本业务域已经保存的数据模型,关联字段是关联表内的字段。
Sequence(序列):自增长序列,默认为Long类型,必填且唯一,可设置为主键,需要设置初始值。

更多信息,请参见创建与管理数据模型

应用服务

应用服务的结构对象如同常用的DTO对象,已定义的结构对象可以作为应用服务方法的出入参使用。示例项目的用户域中定义了用户基础信息、用户身份验证两个结构对象,用于在用户信息获取、用户登录验证接口中作为出入参使用。1

更多信息,请参见创建和管理结构对象

应用服务可按照业务分类去定义同类型的应用服务方法,用户域中定义了用户服务与认证服务。用户服务可用于定义用户信息获取、更新等服务,认证服务提供了各种登录认证服务。1

更多信息,请参见创建和管理应用服务

商业能力

商业能力概述

商业能力是把业务场景沉淀下来的结构化方式。

  • 以前实现多个微服务,您只能从系统上看到多个接口。而商业能力是从业务视角来解释底层多个微服务具体做了什么,以及接口在业务场景的实现中起的关键作用是什么。这就是商业能力的可视化。
  • 通过商业能力的度量,您可以知道沉淀的能力的复用度,以及使用效果。例如:
    • 哪些业务场景用得很频繁,带来了比较好的价值。
    • 哪些需求实际很长时间都没被使用到。
  • 管理和运营商业能力的核心是为了盘活微服务已经沉淀的能力。

示例项目的商业能力介绍

在示例项目中,将商品发布业务场景提炼成商业能力。
  • 商品发布作为一个标准的业务场景,在不同的应用系统针对不同的业务方,其核心流程都是一样的,所以适合在业务中台进行抽象。
  • 业务方在应用中构建商品发布能力时,不需要自己检索对应的基础能力来进行业务组装,直接申请使用该商业能力即可。
  • 商业能力流程图中包含不同的参与方与流程节点,每个流程节点中会关联一到多个商业服务方法,便于业务方快速完成标准服务的接入。
在示例项目的商业能力页面,单击商业能力名称为商品发布后,在商品发布的版本列表中,单击v1.0.0版本号。在商业能力流程页签,您可以看到该商业能力包含的内容。具体如下图所示:1
商业能力流程页签,单击编辑商业能力流程图。在商业能力流程设计器中,您可以看到商品发布流程定义的细节。具体如下图所示:1该业务场景中,主要会涉及到两类角色:平台管理方和商家,而流程起点由商家触发。
  • 灰色背景的节点表示该业务活动并不涉及到中台能力。以商品准备为例,在商业能力设计器中双击该业务活动节点,您可以查看该业务活动节点详情。具体如下图所示:1由上图可知,该业务活动并未关联商业能力服务方法。
  • 白色背景的节点表示该业务活动需要调用到中台能力,以添加商品为例,在商业能力设计器中双击该业务活动节点。具体如下图所示:1由上图可知,该业务活动节点关联了1个商业能力服务方法。

更多信息,请参见使用商业能力流程设计器