一种基于MongoDB实现图转换的方法和装置的制造方法

文档序号:8473077阅读:219来源:国知局
一种基于MongoDB实现图转换的方法和装置的制造方法【
技术领域
】[0001]本发明涉及模型驱动领域的基于图的模型转换问题,以及云计算非关系型数据库领域的MongoDB使用问题。【
背景技术
】[0002]模型驱动工程(MDE)是以模型作为软件开发的核心制品,并提升模型在开发过程中的作用,利用模型指导开发人员对于软件系统的理解、设计、构造、维护和演化,从而提高软件的开发和维护的效率,降低成本。[0003]在模型驱动工程中两项关键的技术就是软件建模技术和模型转换技术,模型转换技术可以用于将开发过程中的一个模型自动或者半自动的转换成另一个模型,从而推动整个开发过程。随着近来不断增加的软件规模,这种模型转换工作量显得非常庞大,传统通过手工或者在计算机内存实现模型转换已经渐渐地不可行。[0004]图转换是使用“图”作为基本概念,图G=(V,E)由节点和边组成。两个图匕和G2之间存在存在映射fA1OG2,用来表示G1中节点和边与G2中节点和边的对应关系。当把模型看做图时,图中每个元素与关系都有一个类型,因此图转换中使用类型图的概念,用来对元素的类型和结构进行约束。[0005]NoSQL泛指非关系型数据库,意即“不仅仅是SQL”,是一项全新的数据库革命性运动,NoSQL的拥护者们提倡使用非关系型的数据存储。它主要有四大分类:键值(Key-Value)存储数据库、列存储数据库、文档型数据库以及图形(Graph)数据库。在本发明中主要涉及的是文档型数据库MongoDB。[0006]MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。MongoDB中数据被分组存储在数据集中,称该数据集为集合(Collect1n)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。存储在集合中的文档,被存储为键_值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BS0N。【
发明内容】[0007]本发明所要解决的问题是不断增加的软件规模下,模型转换工作量巨大,采用手工显而变得不可行,而采用普通方法下,计算机的内存也不足以支持如此庞大的工程。[0008]为解决上述问题,本发明采用的方案如下:根据本发明的一种基于MongoDB实现图转换的方法,该方法包含以下步骤:51:获取元模型、模型实例以及转换规则;52:依据所述元模型的定义,在MongoDB中创建相应的文档存储集合;53:根据所述文档存储集合的定义,利用MongoDB的插入和更新操作,将模型实例映射存储至MongoDB;54:利用MongoDB的查询操作,在MongoDB中查找模型实例中符合所述转换规则的前置条件的模型实例片段;55:依据所述转换规则的定义,对步骤S4得到的模型实例片段执行相应的MongoDB插入、更新和删除操作实现模型转换,得到转换后的模型实例输出;所述元模型为由类型节点和类型关联关系组成有向图;所述模型实例为由类型实例和关联实例组成的有向图;所述转换规则包括前置条件、后置条件、前后映射关系;所述前置条件和所述后置条件为符合所述元模型定义的有向图;所述前后映射关系用以表示所述前置条件至所述后置条件的映射关系。[0009]进一步,根据本发明的基于MongoDB实现图转换的方法,所述转换规则还包括否定性条件;所述否定性条件是转换规则不能被应用的条件;所述步骤S4还包括:S4X:剔除满足所述否定性条件的模型实例片段。[0010]进一步,根据本发明的基于MongoDB的图转换实现方法,所述步骤S4包括:541:将所述前置条件划分成多个连通子图;542:对各个连通子图中的各个类型节点,在MongoDB中查找符合类型节点的约束条件的类型实例;543:对步骤S42得到类型实例做笛卡尔乘积运算后组成模型实例片段。[0011]进一步,根据本发明的基于MongoDB实现图转换的方法,所述步骤S5包括:551:根据所述前后映射关系,找出所述前置条件中存在而所述后置条件中不存在的类型节点集合Del;552:根据所述前后映射关系,找出所述前置条件中不存在而所述后置条件中存在的类型节点集合Ins;553:通过MongoDB的删除操作,在步骤S4得到的模型实例片段中删除类型节点集合Del中类型节点所对应的类型实例;554:创建类型节点集合Ins中类型节点所对应的类型实例,并通过MongoDB的插入和更新操作,将创建的类型实例加入至模型实例片段中。[0012]根据本发明的一种基于MongoDB实现图转换的装置,包括:输入装置,用于获取元模型、模型实例以及转换规则;存储模型构建装置,用于依据所述元模型的定义,在MongoDB中创建相应的文档存储集合;模型实例存储装置,用于根据所述文档存储集合的定义,利用MongoDB的插入和更新操作,将模型实例映射存储至MongoDB;前置匹配装置,用于利用MongoDB的查询操作,在MongoDB中查找模型实例中符合所述转换规则的前置条件的模型实例片段;规则转换装置,用于依据所述转换规则的定义,对前置匹配装置得到的模型实例片段执行相应的MongoDB插入、更新和删除操作实现模型转换,得到转换后的模型实例输出;所述元模型为由类型节点和类型关联关系组成有向图;所述模型实例为由类型实例和关联实例组成的有向图;所述转换规则包括前置条件、后置条件、前后映射关系;所述前置条件和所述后置条件为符合所述元模型定义的有向图;所述前后映射关系用以表示所述前置条件至所述后置条件的映射关系。[0013]进一步,根据本发明的基于MongoDB实现图转换的装置,述转换规则还包括否定性条件;所述否定性条件是转换规则不能被应用的条件;所述前置匹配装置还包括:否定性条件检查装置,用于剔除满足所述否定性条件的模型实例片段。[0014]进一步,根据本发明的基于MongoDB实现图转换的装置,所述前置匹配装置包括:连通拆分装置,用于将所述前置条件划分成k个连通子图;节点匹配装置,用于对各个连通子图中的各个类型节点,在MongoDB中查找符合类型节点的约束条件的类型实例;实例合并装置,用于对节点匹配装置得到类型实例做笛卡尔乘积运算后组成模型实例片段。[0015]进一步,根据本发明的基于MongoDB实现图转换的装置,所述规则转换装置包括:装置,用于根据所述前后映射关系,找出所述前置条件中存在而所述后置条件中不存在的类型节点集合Del;装置,用于根据所述前后映射关系,找出所述前置条件中不存在而所述后置条件中存在的类型节点集合Ins;装置,用于通过MongoDB的删除操作,在步骤S4得到的模型实例片段中删除类型节点集合Del中类型节点所对应的类型实例;<当前第1页1 2 3 4 
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1