errors
Failed to load YAML frontmatter: (<unknown>): mapping values are not allowed in this context at line 2 column 6

模型驱动架构(Model Driven Architecture, MDA) ,以模型为中心,使用元数据定义一个全新的模型体系,让所有模型皆可扩展,让应用能快速响应业务变化。

2.2.1. 元模型

元模型即定义我们常见模型的模型,万物一切皆可以用元模型来定义,在谷神工业数字平台开发平台中,将元模型进行了分类:包含app元模型、实体元模型(Model)、属性元模型(Property)、服务元模型(Service)、方法元模型(Method)、事件元模型(Event)、继承元模型(Inherit)、ER关系元模型(One2Many等)、扩展元模型(ServiceExtension,ModelExtension)等,例如我们的User模型,即是Model元模型的一个实例,而name则是Property元模型的实例,User具有name属性,则通过元元模型来定义元模型之间的组合关系来构建(参考图1)。

SDK提供的是模型定义的能力,定义之后的解析、逻辑调用则是在引擎中实现,谷神工业数字平台采用声明+运行时动态组合的方式,突破了java继承、扩展语法的限制,可以在多个java类里声明模型的扩展,通过重新构建模型继承链,实现模型纵向多继承扩展+横向组合式扩展。参考Python的MRO(Method resolve order)算法,实现继承链的解析。

2.2.2. 模型容器

模型容器(MetaContainer)保存所有加载的元数据信息。不同租户或环境(生产、测试等)可以加载不同的元模型。

2.2.3. app

app在我们谷神工业数字平台中被定义为最小交付单元,它可能小到只有一个业务模型,也可能大到涵盖整个交付系统,我们建议一个产品的app尽量分为两类,一个是涵盖基本能力的base app,另外的都是extensive app,对base app进行扩展。

每个产品我们希望是以app的方式进行扩展,例如:假设我们为100家公司提供hr app,可能每一家都有细微差别,但总有一些是共同的点,那么我们可以将某几个app共同的功能点抽离出来形成一个base app,将不同的功能点形成定制extensive app,hr的base app结合这些extensive app可以动态自由组合为每一家公司提供不同的服务能力。

2.2.4. 引擎

谷神工业数字平台通过引擎来加载并解析sdk定义的模型,并结合数据集的能力,提供app在线构建能力、app在线安装能力、app扩展能力、基本的权限认证、基础服务以及服务api能力等等,引擎即是谷神工业数字平台的最小内核。

2.2.5. 谷神工业数字平台 Java Sdk模型定义

谷神工业数字平台通过是谷神工业数字平台 java sdk包来支持原生java开发来对模型进行定义,主要是定义了一些注解和解释程序,将我们定义的模型、属性、服务、关系等生成满足元模型标准的Json文件,由引擎加载、解析。