低代码开发平台核心架构之二领域驱动(低代码开发平台技术架构)
我们在上篇文章简单介绍了模型驱动的概念,要想理解什么是模型驱动,我们必须依据方法论先把原理讲清楚,后续通过DSL来描述各个层级模型就水到渠成了。我们先从业务组件谈起,最终给出业务模型与领域模型之间的关系。
业务组件
业务组件(Business Component,BC)定义为:一个可以独立运行的构建企业的系统或功能模块。通俗来说,业务组件就是对达成特定目标,需要完成的一组紧密关联的工作事项的合集。
业务组件包含五个要素:
1. 目标/用途:为什么存在,创造什么价值,如何衡量;
2. 活动:定期执行的是哪些简单的、具有凝聚性的活动;
3. 资源:需要哪些知识、资产和人力资源;
4. 治理:活动和资源是如何管理的;
5. 服务:从其他组件获得哪些内容,以及向其他组件提供了哪些内容。
业务组件的特点:
1. 业务组件有自己的输入/输出,在企业中承担特定的职责,对外提供服务;
2. 业务组件是唯一的、不会重复的构造块,由一系列紧密关联的活动组成,可以单独运行;
3. 企业的业务活动只能归属于某一个组件,组件间通过调用服务的方式进行协同与交互;
4. 业务组件具有高内聚,低耦合的特点。
业务模型与组件模型之间的关系
业务模型与组件模型
业务模型与DDD映射关系
业务模型与DDD
业务领域对应DDD领域,业务活动与业务任务分别与DDD应用层及领域服务相对应。
我们对业务、组件、服务的结构化对应,这样一来,我们就可以通过DSL轻松定义描述客户业务需求、组件与服务以及数据模型,为后来低代码打下坚实的理论基础。