MetaModelEngine:模型存储的概要说明

简介:

  在MetaModelEngine:元模型引擎开发思路中介绍了对OpenExpressApp的建模支持将参考MetaEdit+,本篇考虑模型库的存储管理问题。

模型仓库管理

  在MendixMetaEdit+中都存在一个元模型或对象资源仓储库,应用建模时都是读取这个仓储库。MetaModelEngine在OpenExpressApp中的应用模式也是基于这种仓储库来进行统一管理。

  

The case repository More than another database application

The model repository - More than just xml under version control

元模型和应用模型分离

  • 应用模型是基于元模型定义的模型库对象来生成特定应用的模型实例,由一个元模型可以生成多个应用模型。
  • 元模型和应用模型分别独立存储,元模型被应用模型引用。

模型数据和展现分离

  • 考虑到一个模型可以支持图形、表格、矩阵等多种展现形式,或者同一种展现形式支持保持多份视图,所以决定在序列化时将模型和图形分离开来。
  • 这样分离保存也有利于后期考虑的界面生成器,模型就是业务对象,展现就是图形UI。 

使用XML存储格式

  • 考虑XML是现在较为普遍的一种描述方式,MetaEdit+和VS DSL、以及我以前做的报表引擎均采用XML作为存储格式,在MetaModelEngine中我们也采用XML来存储,这样做也利于版本管理。
  • 有两种方式来保存域属性,一种是作为XML属性,另一种是作为XML元素,我认为第一种可读性更好些,所以将把域属性作为XML元素来存储。如果一个域属性具有默认值,并且当前值就为默认值时,将不序列化。
  • 元对象和应用对象均使用Guid标识,这个标识也作为引用参数来使用
  • XML根节点增加一个Version版本说明,以便后期根据版本做向后兼容
  • 目前不支持自动以序列化
  • 具体对象存储内容将在后面对原模型分析中介绍......





 本文转自 jingen_zhou 51CTO博客,原文链接:http://blog.51cto.com/zhoujg/518540,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 固态存储 Linux
外部存储结构简要回顾
外部存储结构简要回顾
18 0
|
9月前
|
搜索推荐 算法 UED
推荐系统概要
近年来互联网信息量呈几何级增长,用户很容易迷失在海量信息中。虽然可使用层次分类(分类目录)或搜索引擎等方法解决这类信息过载问题,但是层次分类需要手动对信息进行分类,并且随着数据量增加层级逐渐增多,不便于用户浏览;而搜索引擎需要用户自己输入关键词,自行选择结果,这要求用户已明确知道要查找的内容,并且具有核心词的抽象能力,如果对结果不满意需要调整关键词重新搜索。推荐系统根据用户的浏览记录、社交网络等信息进行个性化的计算,发现用户的兴趣,并应用推荐算法最终达到“千人千面”“个性化”推荐的效果。
179 0
推荐系统概要
|
11月前
|
数据可视化
「变更管理」成功的变更管理—Kotter的8步变更模型
「变更管理」成功的变更管理—Kotter的8步变更模型
|
11月前
|
数据可视化
「变更管理」成功的变更管理——Kotter的8步变更模型
「变更管理」成功的变更管理——Kotter的8步变更模型
|
分布式计算 大数据 Spark
Spark 原理_总体介绍_概要 | 学习笔记
快速学习 Spark 原理_总体介绍_概要
60 0
Spark 原理_总体介绍_概要 | 学习笔记
|
存储 机器学习/深度学习 自然语言处理
【算法的特性,标准,时间维度空间维度计算方式】
【算法的特性,标准,时间维度空间维度计算方式】
219 0
【算法的特性,标准,时间维度空间维度计算方式】
|
机器学习/深度学习 算法
算法概要
算法虐我千万遍,我待算法如初恋;IT人永远逃脱不了的算法
86 0
算法概要
|
机器学习/深度学习 弹性计算 运维
【阿里云WSDM2021论文解读】时序转化为图构建高效可解释的时序分析模型
本文简要介绍我们刚刚被WSDM2021会议录用并即将发表的论文"Time-Series Event Prediction with Evolutionary State Graph"(论文地址),在文中我们提出了一种将时序转化为图进行表示建模的方法。同时我们把所实现的方法落地为阿里云·SLS的智能巡检服务,可以应用于大规模的时间序列异常检测与分析,辅助运维,运营,研发等诸多场景。
2689 0
|
Kubernetes Java API
K8S历史与架构(一)
Kubernetes是一个针对容器应用,进行自动部署,弹性伸缩,和管理的开源系统。主要功能是生产环境的容器编排。 image.png Kubernetes名字太长了,叫起来有点麻烦,而Kubernetes首字母与结尾字母之间有8个字母,因此被称作K8S。
3467 0