一种基于模型同步的软件工具集成方法

文档序号:6464827阅读:165来源:国知局
专利名称:一种基于模型同步的软件工具集成方法
技术领域
本发明属于计算机软件领域,具体涉及一种基于模型同步的软件工具集成方法。
背景技术
软件生产环境是一个复杂的系统,包括用来辅助计算机软件开发、运行、维护、管理、 支持等过程中的活动或任务的众多软件工具(以下简称工具)。软件开发环境中的集成是 指该环境中的所有构件,包括工具、制品、平台支撑集成的基础设施(平台服务),能协 同工作起来,形成统一、 一致、和谐的整体。面向数据的软件工具集成是一种重要的工具 集成类型,它描述了被集成的工具间存在共享、关联数据时所应具有的属性,其中数据一 致性是重要属性。在工具对数据进行处理时,数据一致性维护工具间数据模型的同步,即 数据模型间满足某种事先定义的模型映射关系,对其中任一模型做出修改后,通过一个同 步过程,修改另一模型,并且修改后的模型之间仍保持这种映射。在实际应用场景中,工 具间的数据模型一致性主要体现为各种建模工具间、建模工具和源代码或文件编辑器间、 各种工具视图间的数据模型的同步。
模型转换是工具间数据模型一致性保障,实现模型同步的重要方法。XSLT (参见文献 XSLT home, http:〃www. w3. org/TR/xslt)是一种处理XML格式的模型转换的规范,它通 过编写转换规则对xml文件信息进行筛选、修改,从而完成模型之间的转换。但是,这种 转换方法引入了大量的结构拷贝动作,对模型的每一次修改都会导致整个模型文件的重新 转换,降低了转换效率。ATL (参见文献ATL Project home, http:〃www. eclipse.org/m2m/atl/)提供一种语言描述模型之间的关系,定义模型之间 的转换规则,通过ATL虚拟机解析并执行转换规则,完成模型转换。同样的,利用ATL也 无法支持细粒度的修改,对原模型或目标模型的修改,会触发整个模型的转换过程。
随着软件工具功能的日益增强,工具数据模型也变得更加复杂,目前低效率的模型转 换方法已经无法满足工具数据集成的需求。

发明内容
针对上述软件工具集成方法中所存在的问题和不足,本发明的目的是提供一种基于细 粒度模型同步的软件工具集成方法,提高工具间数据模型的转换效率。该方法通过一个模 型同步框架,实现模型间自动的细粒度同步转换,完成软件工具的集成。
模型同步即原模型与目标模型满足某种事先定义的模型映射关系,对其中任一模型做 出修改后,通过一个同步过程,修改另一模型,使得修改后的两个模型仍然满足模型映射 关系,完成软件工具的集成。本发明的模型同步框架要求被同步的模型是一种结构化模型, 模型同步框架定义同步规则接口,提供模型监听和同步规则执行机制。开发人员通过扩展 框架的接口,定义具体模型之间的同步规则,设置模型的监听过程,完成工具间的数据集 成。
本发明中基于模型同步的软件工具集成方法中的模型同步框架包含同步规则、同步规 则执行器、监听器、模型映射管理器等四个组成部分。
1. 同步规则
在本发明的模型同步框架中,同步规则以原模型对象的修改部分为输入,目标模型对 象的对应部分为输出,实现功能逻辑上相对独立的同步任务。当原模型对象某部分发生变 更后(这种变更既可能是内容的修改,也可能是添加、删除动作),同步规则定义目标模 型对象的对应部分的变更规则。在本发明中,同步规则是一种模型转换的逻辑,工具集成 开发人员负责设计和实现这种逻辑。由于同步规则需要考虑到模型间数据一致性的问题, 因而同步规则的设计需要保证其正确性。
本发明的一个同步过程由同步规则执行器执行一组同步规则完成, 一个同步规则主要 进行规则执行条件的判断和规则内容的执行,同步规则包括执行条件和执行内容,包括规
则接口和上下文接口,通过扩展这两个接口来定义同步规则,如图2所示。
规则接口定义规则执行条件判断和规则内容执行两个抽象方法内容。规则执行条件判 断方法确定在一个同步过程中规则能否被执行;规则执行内容执行方法定义同步规则的执 行动作。上下文接口是同步规则中共享数据的容器接口,它定义存取共享数据的抽象方法, 按照一定的标识进行数据存取。共享数据记录同步规则所属模型元素的子元素。在同步规 则的执行过程中,上下文在同步规则之间传递,每一个同步规则通过上下文接口实现共享 数据的存取。执行同步规则后,原模型和目标模型仍然满足映射规则。
2. 同步规则执行器
在本发明的模型同步框架中,同步规则执行器包括规则执行器和规则执行管理器,其 中,规则执行器进行同步规则的加载、初始化和执行;规则执行管理器进行规则执行器的 创建和规则的验证。同步规则执行器按照同步规则完成模型间的同步过程,即通过同步规 则执行器判断规则执行条件,执行同步规则,判断是否包含关联规则并执行关联规则,进
而递归地完成同步过程。
其中判断是否包含关联规则是通过判断上下文接口提供的共享数据读取方法完成。由 于共享数据记录同步规则的所属模型元素的子元素,因此同步规则执行器将按照深度优先
的遍历方式依次对每个模型元素执行同步过程,保证从一个节点发起的同步过程可以覆盖 该节点的所有子节点并终止。
3. 监听器
在本发明的模型同步框架中,原模型的一个模型元素发生变化后,将变更封装成变更 事件并发送给监听器,变更事件包含变更元素和变更行为。监听器捕获原模型的变更事件 后,将变更事件包含的变更行为传递给目标模型,进而实现模型间的同步。监听机制是实 现监听器的基础,可参考观察者模式(参见文献Erich Gamma , Richard Helm , Ralph Johnson , John Vlissides, Design patterns: elements of reusable object-oriented software, Addison-Wesley Longman Publishing Co. , Inc., Boston, MA, 1995 )实现。
4. 模型映射管理器
在本发明的模型同步框架中,模型映射管理器维护运行时各模型间的映射关系。当原 模型元素发生变更时,可以通过查询模型映射管理器获得目标模型的对应元素,同步过程 被缩小为以这两个元素为根的局部模型的更新,从而实现细粒度的同步。模型映射管理器 支持运行时更新,即同步规则执行器在执行同步规则后,若规则执行内容是创建新的目标 模型元素,则更新模型映射管理器,增加新创建的原模型元素与目标模型元素的映射关系, 以维系模型元素间的追溯关系。
在本发明中,基于上述模型同步框架,软件工具集成方法包括以下步骤
1、 通过扩展规则接口和上下文接口定义同步规则,加载到规则执行器,所述同步规 则包括执行条件和执行内容;
2、 将原模型发生的变更封装成变更事件发送给监听器;所述原模型为结构化模型, 所述变更包括变更元素和变更行为;
3、 监听器根据所述变更元素査询规则执行管理器,获取规则执行器;模型映射管 理器查询模型元素对应关系,获得目标模型的对应元素;
4、 同步规则执行器判断同步规则内容是否满足目标模型的执行条件,若满足,同 步规则执行器根据变更行为执行同步规则,修改目标模型中的对应元素,更新模型映射 管理器;
5、判断目标模型中被同步的元素是否包含关联同步规则,若包含则返回步骤3),
否则完成软件工具的集成。
上述软件工具集成方法中,根据模型映射管理器中的模型元素对应关系获得目标模 型中的对应元素的过程,保证了同步规则执行器从原模型被修改的部分及目标模型的相应
部分开始同步,从而实现模型的同步;针对步骤4中目标模型的修改情况,更新模型映射 管理器的过程,维系了模型元素间的追溯关系,实现了模型间的双向细粒度同步。
在本发明提出的软件工具集成方法中,若原模型不支持监听机制,按照观察者模式 定义通知发送者接口,并通过通知发送者接口扩展原模型。
本发明提出一种基于模型同步的软件工具集成方法,其优点和应用如下-
1、 本发明的方法以模型同步的方式满足工具间数据一致性约束,该方法通过监听机 制捕获和追溯模型的更新过程,实现同步过程的自动触发和细粒度更新,提高了同步效率。
2、 本发明可为软件生产环境中的工具,如模型设计、代码编辑、部署配置等工具提 供集成支持,实现工具间数据模型的细粒度同步,满足工具间数据一致性需求。


图l模型同步框架结构图。
图2同步规则接口和同步规则执行器示例图。
图3监听机制示例图。
图4模型同步方法的流程图。
图5开发人员根据模型同步框架形成具体模型同步方案的流程图。
具体实施例方式
以下结合附图对本发明进行详细说明。
本发明提出一种基于模型同步的软件工具集成方法,其核心思想是通过一个模型同步 框架,实现模型间自动的细粒度同步转换。模型同步框架为实现两个结构化模型间的细粒 度同步提供指导框架和执行引擎,它定义一个基于规则的执行过程,提供监听机制,并定 义一组接口和抽象方法。开发人员通过扩展接口,设置对工具数据模型的监听,定义具体 数据模型之间的同步规则,通过规则执行器完成工具间的模型同步过程,实现工具的数据 集成。
本发明中的模型同步框架,如图1所示,包含同步规则、同步规则执行器、监听器、模 型映射管理器等四部分组成。
1) 同步规则和同步规则执行器
如图2所示,同步规则包括规则接口和上下文接口,开发人员通过扩展这两个接口来定 义同步规则。规则接口进行规则执行条件和执行内容的定义。上下文接口是同步规则中共 享数据的容器接口,它定义共享数据的存取方法,并按照一定的标识进行数据存取。在同 步规则的执行过程中,上下文会在同步规则之间传递,每一个规则通过上下文接口实现共 享数据的存取。
同步规则执行器包括规则执行器和规则执行管理器。规则执行器进行规则的加载和初 始化。规则执行管理器实现规则执行器的创建和规则的验证。
2) 监听器与模型映射管理器
本实施例将监听器功能与模型映射管理器合并,由监听适配器提供。如图3所示,监 听器包括监听者接口、监听适配器接口,其中监听适配器接口扩展监听者接口;开发人员 通过扩展监听适配器接口实现监听适配器,该监听适配器需实现监听者接口,从而实现对 模型变更事件的处理。同时,在监听适配器内部,开发人员通过保存原模型元素对象地址 和目标模型元素对象地址的映射关系,实现对应关系的査找和维护,从而具备模型映射管 理器的功能。
对于不支持监听机制的模型,首先需要按照观察者模式定义通知发送者接口,并通过 通知发送者接口对原模型进行扩展,使得扩展后的模型支持监听机制。
通知发送者接口是监听机制中的发送者,它维护一组监听者列表,提供监听者的添加、 删除、获取等方法,并通过通知发送方法将变更事件发送给监听者。监听者接口是监听机 制中的监听者,它通过通知变更方法进行变更事件的接收和处理。
下面给出一个具体的基于模型同步的软件工具集成方法,模型同步方法的流程如图4 所示
当原模型的一个模型元素发送变更后,向监听器发送变更事件通知,触发监听适配器 的通知变更方法;通过查询规则执行管理器,获取规则执行器,如果还未创建,则创建规 则执行器,并进行同步规则的装载;通过查询模型元素对应关系获得目标模型的对应元素, 然后通过同步规则执行器进行对应元素的同步更新;在同步更新过程中,首先验证同步规 则是否满足执行条件,若满足则执行同步规则,修改目标模型,否则抛出条件异常;在执
7
行同步规则过程中,针对修改情况,更新模型映射管理器;同步规则执行后,判断是否包 含关联同步规则,若包含则继续执行同步规则,否则完成模型同步过程。
在本发明的软件工具集成方法中,开发人员根据模型同步框架形成具体的模型同步方 案,其流程如图5所示,开发人员首先确定模型是否支持监听机制,若不支持则扩展原模 型,实现通知发送者接口;扩展监听适配器,实现监听者接口;实现同步规则接口定义的 规则执行条件和执行内容,实现上下文接口定义的共享数据存取方法。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内 容并据以实施,但是本领域的技术人员可以理解在不脱离本发明及所附的权利要求的精 神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和 附图所公开的内容。
权利要求
1.一种基于模型同步的软件工具集成方法,其步骤包括1)通过扩展规则接口和上下文接口定义同步规则,加载到规则执行器,所述同步规则包括执行条件和执行内容;2)将原模型发生的变更封装成变更事件发送给监听器;所述原模型为结构化模型,所述变更包括变更元素和变更行为;3)监听器根据所述变更元素查询规则执行管理器,获取规则执行器;模型映射管理器查询模型元素对应关系,获得目标模型的对应元素;4)同步规则执行器判断同步规则内容是否满足目标模型的执行条件,若满足,同步规则执行器根据变更行为执行同步规则,修改目标模型中的对应元素,更新模型映射管理器;5)判断目标模型中被同步的元素是否包含关联同步规则,若包含则返回步骤3),否则完成软件工具的集成。
2. 如权利要求1所述的一种基于模型同步的软件工具集成方法,其特征在于在步骤l) 之前,若原模型不支持监听机制,按照观察者模式定义通知发送者接口,并通过通知发送 者接口扩展原模型。
3. 如权利要求1所述的一种基于模型同步的软件工具集成方法,其特征在于所述步骤4)中,若同步规则执行器执行的同步规则内容是创建新的目标模型元素,则在模型映射管理 器中增加新创建的原模型元素与目标模型元素的映射关系。
4. 如权利要求1所述的一种基于模型同步的软件工具集成方法,其特征在于所述步骤5)中,判断是否包含关联规则通过判断上下文接口提供的共享数据读取方法。
5. 如权利要求4所述的一种基于模型同步的软件工具集成方法,其特征在于同步规则执行器对目标模型采用深度优先的遍历方式依次对每个模型元素执行同步操作,保证作用 在一个节点的同步过程覆盖该节点的所有子节点。
6. 如权利要求1所述的一种基于模型同步的软件工具集成方法,其特征在于所述规则接口用于定义规则执行判断条件和规则执行内容。
全文摘要
本发明属于计算机软件领域,具体涉及一种基于模型同步的软件工具集成方法。本发明通过设立同步规则,建立模型同步框架,实现模型间自动的细粒度同步转换,完成软件工具的集成。本发明的方法以模型同步的方式满足工具间数据一致性约束,该方法通过监听机制捕获和追溯模型的更新过程,实现同步过程的自动触发和细粒度更新,提高了同步效率,满足工具间数据一致性需求。
文档编号G06F9/44GK101349970SQ200810119280
公开日2009年1月21日 申请日期2008年9月2日 优先权日2008年9月2日
发明者丽 刘, 宋云奎, 张文博, 伟 王, 华 钟, 峻 魏, 涛 黄 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1