论文部分内容阅读
建模和模型转换是软件开发和维护过程中的重要环节。模型转换是一类特殊的操作,是将一种模型自动或者半自动的转换为另一种模型的过程,它是软件自动化开发与维护过程中的重要组成部分。随着计算机技术应用的不断普及,软件系统的规模和复杂性日益增大,模型转换技术不断面临新的挑战。以往的模型转换引擎都是基于单机系统实现,以内存作为信息保存载体,其转换能力受限于单机系统的物理性能,在应对复杂模型转换时,极易出现内存消耗过大、宕机等问题,并且转换后的模型以文件形式呈现,不利于查询使用;在应对多模型同时转换时,只能串行进行转换,执行效率较低。因此,本文的工作主要集中在如何基于分布式存储平台和并行计算平台开发模型转换引擎。MongoDB是一种基于分布式文件存储的NoSQL数据库,它采用了无模式的文档数据模型,能够灵活地存储不同结构的数据,适合用来存储复杂结构模型。利用MongoDB进行模型转换时无需将所有信息读入内存,可有效减少内存使用,并且转换后模型也存储在MongoDB中,有利于模型的查询使用,同时MongoDB支持分布式读写,可有效的进行协同式模型转换。Hadoop是一开源分布式处理框架,可以可靠、高效地进行并行计算,并向用户完全屏蔽底层分布式实现细节。利用Hadoop作为转换引擎实现平台,可并行执行多模型转换任务,缩减模型转换时间。本文基于分布式存储数据库MongoDB和分布式计算平台Hadoop提出了两种模型转换引擎实现方法,主要工作包括:提出一套模型转换引擎实现框架,将模型转换的转换语义分为三层结构,并在各语义层次上封装了一套模型转换执行基本操作(转换原语),为转换引擎的实现打下基础。提出了一种基于MongoDB的转换引擎实现方法,目的是减少复杂模型转换的内存消耗,并且使转换后的模型更易于查询使用。主要包括一种模型存储的算法(利用该算法可以将模型无损的存储至MongoDB中),一套基于MongoDB操作实现转换原语的算法。提出了一种基于Hadoop的转换引擎实现方法,目的是利用分布式计算平台Hadoop并行化执行模型转换任务,从而加快转换速度。主要包括一种模型转换任务的分解策略(提供了将模型转换任务拆分利用Hadoop并行执行的设计思路),一套基于转换原语构造MapReduce任务的方法,以及一种代码生成方法(配合参数可将转换原语转换成MapReduce处理代码)。基于上述研究工作,针对每种实现方法都给出了实例研究和分析,进一步说明和验证方法的可行性和有效性。