编辑推荐: |
本文来自于csdn,本文主要介绍了特定领域建模研究的开源工具GME,并对其操作和属性进行了介绍,希望能对您有所帮助。 |
|
带你走进MDA的世界。--真正的模型驱动开发。
目前的建模工具很多,不过个人的观点来看,基本都跑偏了。没办法真正应用模型驱动来有效开发。
废话少说。
下面的就是MDA(KAYA)建模工具。
左侧是需要用到的元素,简单说来包括
1.Product(产品&服务--可以看作系统名称),
2.Role(角色--可以看作具体的业务表),
3.Property(属性--表里的列),
4.WorkFlow(业务流程),
5.Rules(业务规则)。
带箭头的为各个元素的参照。合起来有10种元素。
我们通过简单的拖拽,形成下面的工程图。
导出XML文件。
加载到KAYA引擎中。
我利用的是Spring-Boot来做的例子。
我没有做Java端(后台代码)的任何修改。直接调用MDA(KAYA)引擎提供的API。
// 搜索
function doSearch() {
//alert("检索");
$.ajax({
url : "/kayaselect",
method : "POST",
data : {
'kayaModelId' : G_KAYAMODELID
},
success : function(data) {
var rows = [];
rows = data.mapList;
$('#' + G_KAYAMODELID).datagrid('loadData', rows);
}
});
} |
包括所有的表格列名等等,都可以自动生成。
我们来看一下运行的效果。
总结:
1. 所有的增删改查,都是调用MDA(KAYA)的API,无需改动后台任何代码。 你可以随意增减字段,随意增减表,都无需更改后台代码。真正的模型驱动引擎。
2. 可以直接定位到单个字段。没有传统数据库的表合并等操作。效率远远高于传统数据库结构架构。因为每个数据都是原子操作,可以利用其核心引擎构建AI神经网络,提高神经网络的通用性。
3. 他支持多节点随意增减。支持多系统集成。多系统数据共享,规则共享,流程共享。支持原生MDA(KAYA)规则引擎(后期介绍),支持MDA(KAYA)流程引擎(后期介绍)。
4. 是一个真正意义上的可执行的XML文件引擎。
5. 原生的模糊查询支持。支持大数据分析(基于ES)
第一章:工欲善其事必先利其器-GME简介。
GME是范德比尔特大学(VANDERBILT UNIVERSITY)开发的用于特定领域建模研究的开源工具。下载地址:http://www.isis.vanderbilt.edu/projects/GME
(这里用的是Ver.17.12.6 )。
由32位和64位可供选择,建议选择64位版本。
http://repo.isis.vanderbilt.edu/GME/old/
17.12.6/GME_x64-17.12.6.msi
可以参照上述链接下载GME工具。
元模型文件下载地址
https://download.csdn.net/download/chljapan
/11387869
第一章.建模
1.1概要-KAYA-X System的基础为建模。
我们打开GME:
Ctrl + N 打开Select Paradigm画面。
点击Add from file按钮
在对话框中选择KaYaModel.xmp文件,点击Open按钮。然后如下图
我们将KaYaModel.mat选中,点击Create new按钮
点击Next> 输入文件名(KaYa001)后点击Save(保存)
这里会生成Root Folder项目文件夹
选中Root Folder,鼠标右键单击,点击Insert Model,继续点击KaYaDiagram选项。
我们会看到下面的变化。
我们鼠标双击KaYaDiagram,工具的左侧会显示一些图标。
我们建模的所有操作都会在上面的界面中完成。
让我们来熟悉一下左侧的图标。
这个是整个系统的集合。各种表,规则,流程都会从属于这个集合。
这个图标你可以理解成数据库中的表。实际的业务中代表具有多种特性的某一角色。例如:员工这一角色,包括年龄,性别,联系方式,地址,工资等多种属性。
这个我们可以理解为角色的参照。在后续的规则引擎中,我们会进行更为详细的介绍。
这个是表中的主键属性(唯一排他)。
这个代表角色的属性。
这个是角色属性的参照。
我们来熟悉一下这个工具的布局。
我们通过操作来熟悉一下这些组件。
新建一个模型取名为Kaya001.mga
我们来添加一个系统
设置系统名称为【综合业务管理系统】(双击图标下面的Product字体位置可以直接更改该图标名称,或者直接更改红线区域信息)
这里有几个ProductService的属性,我们来熟悉一下
KindKey:关键字,用来识别该控件的唯一标识。
StartDate: 用来控制该控件的开始周期。(默认值为9999-12-31 ,代表无效,其他值视具体业务来规定,下同)
EndDate:用来控制该控件的结束周期。
Comments:注释的内容可以帮助开发者理解该控件的具体业务含义代替开发文档。
(试用版不提供无效信息的逻辑控制)
我们用员工管理系统为例,像该系统添加员工角色。选中Role控件,然后按住鼠标左键拖拽左边的Role控件到主编辑区。放开鼠标左键。我们看到在主编辑区追加了
图标。看起来像下图的样子:
在主作业区域选中鼠标左键点击Role图标,右下角的属性编辑区域我们来编辑该控件的属性。
KindKey:关键字,用来识别该控件的唯一标识。
IndexNo:可以作为前台排列该控件的顺序信息。
StartDate: 用来控制该控件的开始周期。(默认值为9999-12-31 ,代表无效,其他值视具体业务来规定,下同)
EndDate:用来控制该控件的结束周期。
Comments:注释的内容可以帮助开发者理解该控件的具体业务含义。
我们为该控件编辑属性信息如下:
控件名称:员工信息
KindKey:EmployeeInfo
IndexNo:字段前台位置顺序等。
StartDate: 2018-12-20该控件生效
EndDate:9999-12-31 永久有效
Comments:员工信息表
我们来建立系统与角色之间的关系。
鼠标左键点击左侧连线区的 图标(红色区域)。然后将鼠标指针移动到员工信息控件左半部,变成下图的时候,点击鼠标左键,然后再将鼠标指针移动到综合业务管理系统控件右半部,当其同样变成红色外框时,再次点击鼠标左键。这样我们就为该角色和系统创建了彼此的关系。(连线的位置可以指定,就是亮起红色方块的位置为连线的起点终点)
我们在用鼠标左键点击连线区的 图标(红色区域),返回到编辑状态,鼠标左键双击员工信息控件。我们的模型工具会变成下面的状态。接下来我们可以为角色-员工信息来添加细节属性。
控件名称:员工信息
KindKey:EmployeeInfo
IndexNo:字段前台位置顺序等。
StartDate: 2018-12-20该控件生效
EndDate:9999-12-31 永久有效
Comments:员工信息表
我们来建立系统与角色之间的关系。
鼠标左键点击左侧连线区的 图标(红色区域)。然后将鼠标指针移动到员工信息控件左半部,变成下图的时候,点击鼠标左键,然后再将鼠标指针移动到综合业务管理系统控件右半部,当其同样变成红色外框时,再次点击鼠标左键。这样我们就为该角色和系统创建了彼此的关系。(连线的位置可以指定,就是亮起红色方块的位置为连线的起点终点)
我们在用鼠标左键点击连线区的 图标(红色区域),返回到编辑状态,鼠标左键双击员工信息控件。我们的模型工具会变成下面的状态。接下来我们可以为角色-员工信息来添加细节属性。
Property是整个系统的原子属性,具有唯一性(统一表内,属性的Kind Key具有排他性)。让我们来看一下它具体的一些参数。同样选中左侧的控件后,左键按住,拖拽控件到主作业区域。
同样,在主作业区域,鼠标左键选中该控件。我们在右下角可以看到该控件的属性。
我们来编辑一下该控件。
我们再用相同方法追加其他属性控件。
切换到员工信息操作区的主作业区,右键选择Pase Special 里面的子选项As Reference.如下图。
参照元素属性如下:
控件名称:员工信息
KindKey:该表排他键
Display: 2018-12-20该控件生效
IsUniqueKey:是否是主键
IndexNo:字段前台位置顺序等。
补足:该元素的其他信息会自动参照元信息(开始结束时间,长度类型等。)
完成建模后,我们需要到处模型文件。
打开菜单File,选择Export XML,选择保存位置后,点击Save按钮。保存模型文件。
在Console窗口会输入如下类似信息:
Project successfully exported into C:\Users\chljapan\Desktop\GME\Kaya001.xme.
到这里,我们完成了我们的基本建模工作。(流程建模以及规则建模在专业版本中才会提供)。
然后将该文件导入KAYA模型驱动引擎,就可以直接调用KAYA的API来进行我们的流程以及业务规则的开发了。(如果利用KAYA流程规则建模,可以节省大部分的开发代码编写)
第二篇:MDA模型驱动引擎-带你走进真正的模型驱动开发(二)
|