首页> 中国专利> 一种基于多方交流协议自动生成软件系统交互框架的方法

一种基于多方交流协议自动生成软件系统交互框架的方法

摘要

一种基于多方交流协议自动生成软件系统交互框架的方法,属于计算机领域。鉴于传统建模中多个软件系统之间的组合交互过程难于确保每个系统之间能够完全互通,本发明给出基于多方交流协议自动生成多个参与软件系统间交互过程的交互框架的方法,具体包括:首先建立“交流协议”,“交流协议”通过“交流活动”和“迁移关系”完整地表述多个系统间交互过程;然后遍历“交流协议”中的所有“交流活动”,并将这些“交流活动”和“迁移关系”依次建立到每个软件系统中,并对空活动进行简化处理。本发明能够有效地提高传统建模中多个软件系统交互过程的设计及开发效率,并确保多方交互的每个软件系统能正确地运行。

著录项

  • 公开/公告号CN103699394A

    专利类型发明专利

  • 公开/公告日2014-04-02

    原文格式PDF

  • 申请/专利权人 夏夀民;

    申请/专利号CN201410009179.7

  • 发明设计人 夏夀民;

    申请日2014-01-08

  • 分类号G06F9/44;

  • 代理机构天津佳盟知识产权代理有限公司;

  • 代理人侯力

  • 地址 中国台湾台北市吴兴街284巷59弄12号7楼

  • 入库时间 2024-02-19 22:49:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-12

    授权

    授权

  • 2014-04-30

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140108

    实质审查的生效

  • 2014-04-02

    公开

    公开

说明书

技术领域

 本发明属于计算机领域,主要关注提高传统建模中多个软件系统交互过程活动设计的正确性和高效率开发。

背景技术

传统建模领域难于表达多个系统的组合交互过程,主要有两个难点:

第1难点在于需要在多个系统间建立大量交互信息,当描述多个系统的组合交互中具有漏掉部分交互的潜在风险; 

第2难点在于一个高度复杂的软件系统往往需要包含多个子系统才能与其他外部系统进行交互的过程,而这些软件系统以及它们所包含的子系统往往是由不同的开发团队来开发和维护,开发团队之间很难有效地沟通多个子系统之间的复杂交互过程,且很难保证各子系统交互逻辑的正确性及完备性,其根本原因在于缺少一个能完整描述多个系统之间交互过程的“交流协议”及能依据这个“交流协议”而自动生成各个系统之间交互逻辑的框架。

由于上述两个难点的存在造成在传统软件建模领域多系统交互的设计与开发的困难及效率的低落。

发明内容

本发明目的是为了高效地降低传统软件建模中多系统交互过程的设计难度以及提高软件系统的设计开发效率,提供一种基于多方交流协议自动生成软件系统交互框架的方法。本发明给出两种基于多方交流协议自动生成软件系统交互框架的方法。因此而确保参与多方交互的每个“参与系统”都能正确地运行并互通。

基于多方交流协议自动生成软件系统交互框架的方法包括:首先将多个系统间交互过程采用一个“交流协议”来表达,该“交流协议”将交互过程中的消息传递分解为多个“交流活动”和多个“迁移关系”,以便能完整地表述这些多个系统之间的交互过程;然后遍历“交流协议”中的所有“交流活动”,并将这些“交流活动”和对应的“迁移关系”依次建立到每个参与系统中;并对空活动进行简化处理。

 

方法1

一种基于多方交流协议自动生成软件系统交互框架的方法,该方法是将多个系统间交互过程采用“交流协议”来表达,然后自动生成软件系统交互过程框架,具体步骤如下:

第1、首先针对多个软件系统之间交互过程建立“交流协议”,该“交流协议”通过“交流活动”和“迁移关系”完整地表述多个软件系统之间的交互过程;参与交互过程的系统称之为“参与系统”;

第2、依据“交流协议”中的所有“交流活动”在“参与系统”中建立所对应的“参与活动”,具体步骤是,依据“交流协议”中“交流活动”之间的“迁移关系”,依序遍历第1步“交流协议”中的所有“交流活动”,执行以下子步骤:

第2.1、依序找到第一个“交流活动”,并将该“交流活动”作为当前“交流活动”;

第2.2、针对当前“交流活动”,执行第2.2.1及第2.2.2每个子步骤;

第2.2.1、依据当前“交流活动”在“参与系统”中建立对应的“参与活动”:具体步骤是,判断该“参与系统”在当前“交流活动”中扮演的角色,若该“参与系统”是当前“交流活动”中消息的发送方,则在该“参与系统”中建立一个发送“参与活动”,简称发送活动;否则,若该“参与系统”是当前“交流活动”中消息的接收方,则在该“参与系统”中建立一个接收“参与活动”,简称接收活动;否则,该“参与系统”与当前“交流活动”无关即无关方,则在该“参与系统”中建立一个空“参与活动”,简称空活动;

第2.2.2、依据当前“交流活动”的所有“迁移关系”,对该“参与系统”在第2.2.1步中新建的“参与活动”中建立对应的所有“迁移关系”;

第2.3、依序去找下一个“交流活动”,如果找到下一个“交流活动”,则将该下一个“交流活动”作为当前“交流活动”,执行步骤2.2;否则,执行下一步骤;

第3、依据“交流协议”自动生成该“参与系统”交互过程框架的方法结束。

 

方法2

一种基于多方交流协议自动生成软件系统交互框架的方法,该方法是将多个系统间交互过程采用“交流协议”来表达,然后自动生成软件系统交互过程框架,所述方法包括具体步骤如下:

第1、首先针对多个软件系统之间交互过程建立“交流协议”,该“交流协议”通过“交流活动”和“迁移关系”完整地表述多个软件系统之间的交互过程;参与交互过程的系统称之为“参与系统”;

第2、依据“交流协议”中的所有“交流活动”在“参与系统”中建立所对应的“参与活动”,具体步骤是,依据“交流协议”中“交流活动”之间的“迁移关系”,依序遍历第1步“交流协议”中的所有“交流活动”,执行以下子步骤:

第2.1、依序找到第一个“交流活动”,并将该“交流活动”作为当前“交流活动”;

第2.2、针对当前“交流活动”,执行第2.2.1及第2.2.2每个子步骤;

第2.2.1、依据当前“交流活动”在“参与系统”中建立对应的“参与活动”:具体步骤是,判断该“参与系统”在当前“交流活动”中扮演的角色,若该“参与系统”是当前“交流活动”中消息的发送方,则在该“参与系统”中建立一个发送“参与活动”,简称发送活动;否则,若该“参与系统”是当前“交流活动”中消息的接收方,则在该“参与系统”中建立一个接收“参与活动”,简称接收活动;否则,该“参与系统”与当前“交流活动”无关即无关方,不必建立对应的“参与活动”;

第2.2.2、依据当前“交流活动”的所有“迁移关系”,对该“参与系统”在第2.2.1步中新建的“参与活动”中建立对应的所有“迁移关系”:若该“参与系统”是当前“交流活动”中消息的发送方或接收方,建立相对应的所有“迁移关系”;否则,在“参与系统 ”中,将以当前“交流活动”做为目标的“交流活动”所对应的“参与活动”重新依照当前“交流活动”中的每个“迁移关系”来建立相对应的“迁移关系”; 在本步骤所述的建立相对应的所有迁移关系时,如果一个“迁移关系”的目标“交流活动”尚未建立时,该“迁移关系”暂缓建立,直到该“迁移关系”的目标“交流活动”创建时,再建立该“迁移关系”; 

第2.3、依序去找下一个“交流活动”,如果找到下一个“交流活动”,则将该下一个“交流活动”作为当前“交流活动”,执行第2.2步骤;否则,执行下一步骤;

第3、依据“交流协议”自动生成该“参与系统”交互过程框架的方法结束。

 

发明方法1与发明方法2的不同点在于:方法2与方法1的区别是:方法1建立“空活动”,方法2不建立“参与活动”;发明方法1先依据“交流协议”在“参与系统”中建立相应的“参与活动”和“迁移关系”,然后再针对所建立的空“参与活动”做进一步的简化处理;而发明方法2则依据“交流协议”在“参与系统”中建立相应的“参与活动”和“迁移关系”,并同时进行对于空“参与活动”的简化处理而避免建立这些不需的空“参与活动”。

按照本发明提供的建立方法1和方法2,所述的“参与系统”指参与交互的系统,特别是参与交互的软件系统;每个“参与系统”至少要参与该“交流协议”中一个“交流活动”;并且任何一个“参与系统”不要求参与所有的“交流活动”;“参与系统”的实现中至少要包括一个“参与活动”。

按照本发明提供的建立方法1和方法2,所述的“参与活动”指,在一个“参与系统”中与其他“参与系统”之间的一次或者多次交互的活动,这些活动被称为“参与活动”;“参与活动”分为两种类型,即简单“参与活动”和组合“参与活动”; 简单“参与活动”指与其他“参与系统”之间的一次消息交互的活动;组合“参与活动”则包含两个或者多个简单“参与活动”或者组合“参与活动”,以及“参与活动”之间可能的“迁移关系”。

简单的“参与活动”可分为3种类型:若该“参与系统”在“交流协议”中的一个简单“交流活动”中扮演的是消息的发送方,则该“参与活动”是一个发送“参与活动”,又简称为发送活动;若该“参与系统”在“交流协议”中的一个简单“交流活动”中扮演的是消息的接收方,则该“参与活动”是一个接收“参与活动”,又简称为接收活动;若该“参与系统”在“交流协议”中的一个简单“交流活动”中既不扮演消息的发送方也不扮演消息的接收方(又简称为消息的无关方),则该“参与活动”是一个空“参与活动”,又简称为空活动;每个“参与系统”至少要参与“交流协议”中的一个“交流活动”;但是并不要求每一个“参与系统”都必须参与所有的“交流活动”;

简单“参与活动”的基本定义如图13中所示Simp_DS: 简单“参与活动”中包含一个behavior函数,其具体声明可为int (*behavior)(),或int (*behavior)(void*)。

根据简单“参与活动”的三种类型,若“参与活动”为发送“参与活动”,则behavior函数可细化为send函数;若“参与活动”为接收“参与活动”,则behavior函数可细化为receive函数;若“参与活动”为空“参与活动”,则behavior函数可细化为empty函数;

组合“参与活动”的基本定义如图13中所示Comp_DS: 组合“参与活动”包括若干个Phase结构体,每个Phase结构体包含一个“参与活动”和以该“参与活动”为起始的多个迁移Trans结构体,每个Trans结构体包含迁移条件断言transPred()函数和迁移的目标活动索引信息。

组合“参与活动”中的若干个Phase结构体管理方式既可以是数组,也可以是链表等,图13仅给出一种实现方式;每个Phase结构体中的若干个迁移Trans结构体管理方式可以是数组,也可以是链表等,图14仅给出一种实现方式;每个Trans结构体中的迁移目标活动的索引方式既可以是目标活动的ID号,也可以是目标活动的指针, 图13仅给出一种实现方式。

“参与活动”的基本定义如图13中所示DS: “参与活动”作为简单“参与活动”和组合“参与活动”的一般情况,“参与活动”定义为简单“参与活动”和组合“参与活动”结构体的联合体,通过pick指明该“参与活动”是简单“参与活动”、还是组合“参与活动”。

 

按照本发明提供的建立方法1和方法2,所述的“交流协议”是指两个或者多个“参与系统”之间多个“交流活动”和“迁移关系”的有序集合;“交流协议”既可以支持两个“参与系统”之间交互过程的表达,也支持两个以上“参与系统”之间交互过程的表达。

 

按照本发明提供的建立方法1和方法2,所述的“交流活动”指,在“交流协议”中两个或者多个“参与系统”之间的一次或者多次交互过程;“交流活动”分为两种类型,即简单“交流活动”和组合“交流活动”; 简单“交流活动”指两个或者多个“参与系统”之间的一次消息交互的过程;组合“交流活动”则包含两个或者多个简单“交流活动”或者组合“交流活动”,以及这些“交流活动”之间可能的“迁移关系”。

“参与系统”在“交流活动”中扮演的3种角色:“参与系统”是“交流活动”中消息的发送方即发送角色;“参与系统”是“交流活动”中消息的接收方即接收角色;“参与系统”与“交流活动”无关方即无关方角色;

简单“交流活动”的基本定义如图12中所示Simp_Proto: 简单“交流活动”中包含了相关“参与系统”之间传递的消息message、作为消息发送方的“参与系统”的索引信息from、作为消息接收方的“参与系统”的索引信息to。

组合“交流活动”的基本定义如图12中所示Comp_Proto: 组合“交流活动”包括若干个Phase结构体,每个Phase结构体包含一个“交流活动”和以该“交流活动”为起始的多个迁移Trans结构体,每个Trans结构体包含迁移条件断言transPred()函数和迁移的目标活动索引信息。

组合“交流活动”中的若干个Phase结构体管理方式既可以是数组,也可以是链表等,图12仅给出一种实现方式;每个Phase结构体中的若干个迁移Trans结构体管理方式可以是数组,也可以是链表等,图12仅给出一种实现方式;每个Trans结构体中的迁移目标活动的索引方式既可以是目标活动的ID号,也可以是目标活动的指针, 图12仅给出一种实现方式。

“交流活动”的基本定义如图12中所示Proto: “交流活动”作为简单“交流活动”和组合“交流活动”的一般情况,“交流活动”定义为简单“交流活动”和组合“交流活动”结构体的联合体,通过pick指明该“交流活动”是简单“交流活动”、还是组合“交流活动”。

“交流协议”的基本定义如图12中所示Proto,“交流协议”的基本定义与“交流活动”的基本定义相同。

 

按照本发明提供的建立方法1和方法2,所述的活动分为两种类型即“交流活动”和“参与活动”;所述的“迁移关系”指两个“交流活动”或“参与活动”之间的执行先后的时序关系;“迁移关系”的发起端“交流活动”或“参与活动”称之为起始“活动”,“迁移关系”的终点端“交流活动”或“参与活动”称之为目标“活动”,“迁移关系”包括一个起始“活动”和一个目标“活动”;“迁移关系”支持无条件或通过条件断言从而决定在该起始“活动”结束后是否去执行所述的目标“活动”。 “迁移条件”的实现方式既可以作“活动”结构体中的一部分,也可以独立于“活动”的结构体;图12、图13中“迁移条件”实现方式是作为“活动”结构体的一部分而实现的,即在“起始”活动的结构体中包含由该“起始”活动到“目标”活动的每个“迁移条件”;当“迁移条件”的实现方式独立于“活动”时,“迁移条件”的结构中需要同时包含“起始活动”和“目标活动”的索引信息,如图20。

 

按照本发明提供的建立方法1,第2步所述的依据“交流协议”中“交流活动”之间的“迁移关系”有两种方法遍历该“交流协议”中的全部“交流活动”:一种方法是深度优先方法;另一种方法是广度优先方法;深度优先方法,即遍历某“交流活动”的所有目标“交流活动”时,先获得该“交流活动”的第一个目标“交流活动”并递归式地遍历该目标“交流活动”的所有目标“交流活动”,然后再获得该“交流活动”的下一个目标“交流活动”并递归式地遍历该目标“交流活动”的所有目标“交流活动”,以此类推;广度优先方法,即遍历某“交流活动”的所有目标“交流活动”时,先获得该“交流活动”所有目标“交流活动”,然后再进一步递归式地逐一遍历所获得的每个目标“交流活动”。

 

按照本发明提供的建立方法1,第2.2.1步骤所述的在“参与系统”中建立对应的“参与活动”有两种实现方法:一种方法是转换式方法,即根据该“参与系统”的“交流协议”中对应该“交流活动”所扮演的发送方、接收方的角色或与当前“交流活动”无关而直接在“参与系统”中建立对应的发送“参与活动”简称发送活动、接收“参与活动”即接收活动或空“参与活动”简称空活动;另一种方法是复制式方法,即直接将“交流协议”中对应“交流活动”复制到“参与系统”中成为“参与活动”,并进一步根据该“参与系统”在该“交流活动”的上述角色关系将对应的“参与活动”重新设置为发送活动、接收活动或空活动。

 

按照本发明提供的建立方法1,第2.2.2步骤所述的建立迁移关系有两种实现方法:一种方法是在“参与系统”中先建立全部“参与活动”后再建立“参与活动”间的迁移关系;另一种方法是在“参与系统”中同时建立“参与活动”和该“参与活动”的“迁移关系”,当一个“迁移关系”的目标“交流活动”尚未建立时,该“迁移关系”暂缓建立,直到该“迁移关系”的目标“交流活动”创建时再建立该“迁移关系”。

 

按照本发明提供的建立方法1,所述方法进一步包括空活动的简化处理,具体实现方法是在“参与系统”中建立所有“参与活动”和“迁移关系”后,再依次遍历该“参与系统”中所有“参与活动”,若“参与活动”为空活动,则将在以该空活动为目标的“参与活动”里,重新建立与该空活动的目标“参与活动”之间的每个“迁移关系”。

 

按照本发明提供的建立方法2,所述方法在第2.2.2步骤所述的建立相对应的所有迁移关系时,如果一个“迁移关系”的目标“交流活动”尚未建立时,该“迁移关系”暂缓建立,直到该“迁移关系”的目标“交流活动”创建时再建立该“迁移关系”。

 

本发明所给出的方法1和方法2可以根据多个系统间的交流协议自动生成软件系统交互框架,开发者或者用户可以在此基础上进一步增加参与系统内部的其它活动。

 

本发明的优点和积极效果:

本发明将多个系统之间的交互过程抽象为“交流协议”,通过“交流活动”来表达多个系统间的一次或者多次交互过程;通过“交流协议”来表达多个系统的一次或多次“交流活动”即多个系统之间整个交互过程;并依据“交流协议”自动生成软件系统交互过程框架;与已有传统建模不同的是,开发及设计人员首先建立多个系统交互过程的“交流协议”,然后基于“交流协议”生成传统建模中多个系统的交互过程框架;当多个系统的交互过程改变时,只需要修改“交流协议”,然后再自动生成多个系统交互过程的新框架即可,而不需要在各个“参与系统”中分别地修改“参与活动”。现有的传统开发方法所遭遇到的难点是由于各个“参与系统”在大部分的开发环境里是由不同的开发人员所负责设计的。当不同的开发人员分别地修改各个“参与活动”,往往会产生各种不同的错误,以导致于整体的错误设计。

本发明能够有效地降低传统建模中多系统交互过程的设计难度以及提高设计开发效率,尤其适合多个开发团队分工协作开发大型组合系统场景,确保多方交互的每个“参与系统”能正确地运行并互通。

i.附图说明

图1是实例1中多个参与系统(A,B,C)交互过程。

图2是实例1中多个参与系统(A,B,C)之间的“交流协议proto1。

图3是实例1中基于“交流协议”proto1的多个参与系统(A,B,C)之间的交互。

图4是实例1中采用方法1对基于“交流协议”proto1生成多个参与系统间交互过程框架实例。

图5是实例1中采用方法1基于“交流协议”proto1生成多个参与系统间交互过程框架过程实例。

图6是实例1中“参与系统”A中迁移关系建立过程的两步骤。

图7是实例1中采用方法1对参与系统A的空活动简化过程及结果图。

图8是实例1中采用方法1基于“交流协议”proto1生成多个参与系统间交互过程框架并简化空活动的实例。

图9是实例1中采用方法2基于“交流协议”proto1生成参与系统A的具体步骤。

图10是实例1中采用方法2基于“交流协议”proto1生成参与系统B的具体步骤。

图11是实例1中采用方法2基于“交流协议”proto1生成参与系统C的具体步骤。

图12是“交流协议”、简单“交流活动”和组合“交流活动”类型的定义。

图13是简单“参与活动”、组合“参与活动”和“参与系统”类型的定义。

图14是实例2的“交流协议”proto12。

图15是实例3中多个参与系统(A,B,C)交互过程。

图16是实例3中基于“交流协议”proto的多个参与系统(A,B,C)交互过程。

图17是实例3中多个参与系统(A,B,C)的“交流协议”proto。

图18是实例3中基于“交流协议”proto生成多个参与系统间交互过程的未简化空活动的框架实例。

图19是实例3中基于“交流协议”proto生成多个参与系统间交互过程已简化空活动的框架实例。

图20是“迁移关系”实现方式2。

ii.具体实施方式

为能进一步了解本发明的技术内容、特点及功效,兹列举以下应用实例,并配合附图详细说明如下:

应用实例1

如图1所示,有三个参与系统A、B、C交互过程。首先参与系统A向参与系统B发送一个消息m1;然后参与系统B接收到消息m1后再向参与系统C发送一个消息m2;然后参与系统A向参与系统C发送一个消息m3。

采用图1方式表达时,当参与系统数量及参与系统间交互越来越增多情况下,图1方式的多个参与系统交互过程的表达就越来越组合,难以清楚表达和控制。

而在图2方式下,采用基于“交流协议”proto1的方式来表达图1中三个参与系统A、B、C交互过程,在该“交流协议”中有三个“交流活动”m1、m2、m3分别表述图1中的三个交互过程;通过采用“交流协议”描述参与系统之间的交互过程表达方式简单清晰,且当系统数量增多及系统间交互增多时图2表达方式依然清晰和容易控制。

在图2所示的“交流协议”proto1中,第1个交流活动是参与系统A向参与系统B发送一个Integer 消息m1;第2个交流活动是参与系统B向参与系统C发送一个Integer 消息m2;第3个活动是参与系统A向参与系统C发送Integer消息m3。

图3则为采用基于“交流协议”proto1的方式来表达图1中三个参与系统A、B、C交互过程时的“交流协议”实例。

根据图2和图3,按照本发明所给出的基于多方交流协议proto1自动生成参与系统间交互过程框架的方法1,可以自动生成如图4所示的三个参与系统A、B、C交互过程框架,图4未进行空参与活动简化;也可进一步自动生成如图8所示的经过空参与活动简化过后的三个参与系统A、B、C交互过程框架。

图5完整地描述了三个参与系统A、B、C基于“交流协议”proto1的交互过程,包括“交流协议”proto1中的具体“交流活动”与“迁移关系”时序,而最终生成三个参与系统A、B、C交互框架的实例结果。

针对应用实例1应用本发明给出的方法1,具体步骤如下(以下是应用实例1首次运行):

第1、首先针对多个参与系统(A、B、C)之间交互过程建立“交流协议”proto1,该“交流协议”proto1 通过“交流活动”(m1、m2、m3)和“迁移关系”完整地表述多个参与系统(A、B、C)之间的交互过程;

第2、依据“交流协议”proto1 中的所有“交流活动”(m1、m2、m3)在“参与系统”(A、B、C)中建立所对应的“参与活动”:

以参与系统A为例,依据“交流协议”proto1中的所有“交流活动”(m1、m2、m3)在参与系统A中建立对应的参与活动。具体步骤是,依据“交流协议”中“交流活动”之间的“迁移关系”,按照深度优先方法或者广度优先方法,依序遍历第1步“交流协议”中的所有“交流活动”执行以下子步骤:

第2.1、依序找到第一个“交流活动”m1,并将该“交流活动”m1作为当前“交流活动”;

第2.2、针对当前“交流活动” (即m1),执行第2.2.1及第2.2.2每个子步骤;

第2.2.1、依据当前“交流活动”在“参与系统”中建立对应的“参与活动”:具体步骤方法是,判断该“参与系统”在当前“交流活动”中扮演的角色,若该“参与系统”是当前“交流活动”中消息的发送方,则在该“参与系统”中建立一个发送“参与活动”简称发送活动;否则,若该“参与系统”是当前“交流活动”中消息的接收方,则在该“参与系统”中建立一个接收“参与活动”简称接收活动;否则,该“参与系统”与当前“交流活动”无关即无关方,则在该“参与系统”中建立一个空“参与活动”简称空活动;

如图6中的第1步所示,依据当前“交流活动” (即m1)在“参与系统”A中建立对应的“参与活动”m1,具体步骤是,判断该“参与系统”A在当前“交流活动”m1中扮演的角色,该“参与系统”A是当前“交流活动”m1中消息的发送方,因此在该“参与系统”中建立一个发送活动m1_s; 如当前“交流活动”为m2时,该“参与系统”A为“交流活动”m2的无关方,因此在该“参与系统”A中建立一个空活动m2;  如当前“交流活动”为m3时,该“参与系统”A为“交流活动”m3的发送方,因此在该“参与系统”A中建立一个发送活动m3_s; 

当前“交流活动”为m1、“参与系统”为B时,“参与系统”B为“交流活动”m1的接收方,因此在“参与系统”B中建立一个接收活动m1_r;

第2.2.2、依据当前“交流活动”m1的所有“迁移关系”(即m1到m2的迁移关系),在该“参与系统”A中前述新建的“参与活动”m1_s中建立对应的所有“迁移关系”;

依据建立迁移关系的两种实现方法:一种方法是在“参与系统”A中先建立全部“参与活动”(即m1_s, m2, m3_s)后再建立“参与活动”间的迁移关系(即m1_s到m2的迁移关系、m2到m3_s的迁移关系),如图6所示;另一种方法是在“参与系统”A中同时建立“参与活动”m1_s和该“交流活动”的“迁移关系”(即m1到m2的迁移关系),当一个“迁移关系”(即m1到m2的迁移关系)的目标“参与活动”m2尚未建立时该“迁移关系”(即m1到m2的迁移关系)暂缓建立,直到该“迁移关系”(即m1到m2的迁移关系)的目标“参与活动”m2创建时再建立该“迁移关系”(即m1到m2的迁移关系)。

第2.3、依序去找下一个“交流活动”,即依次是“交流活动”m2、m3,分别将交流活动”m2、m3作为当前“交流活动”,执行第2.2步骤;否则,执行第3步骤;

当第二次执行步骤2.2.1时,“交流活动”m2为当前“交流活动”,该“参与系统”A是当前“交流活动”m2中的无关方,则在该“参与系统”A中建立空活动m2;

当第三次执行步骤2.2.1时,“交流活动”m3为当前“交流活动”,该“参与系统”A是当前“交流活动”m3中消息的发送方,则在该“参与系统”A中建立一个发送活动m3_s。

第3、依据“交流协议”proto1自动生成该“参与系统”A交互过程框架的方法结束。

根据上述步骤,可由交流协议proto1可自动生成多个“参与系统”(A、B、C)间交互过程框架,如图4。

 

本发明还可以进一步进行空活动的简化处理,如图7 所示步骤:

以“参与系统”A为例。根据方法1,在“参与系统”A中已经建立的所有“参与活动”(即m1_s, m2, m3_s)和“迁移关系”(即m1_s到m2的迁移关系、m2到m3_s的迁移关系)后,可按深度优先遍历方法或者广度优先遍历方法遍历该“参与系统”A中所有“参与活动”(即m1_s, m2, m3_s);因为“参与活动”m2为空活动,因此将以该空活动m2为目标的“参与活动”(即m1_s )里重新建立与该空活动的所有目标“参与活动”(即 m3_s)之间的每个“迁移关系”,即在m1_s中重新建立由m1_s到m3_s的迁移关系,最后去除该空活动m2,空活动的简化处理及结果。遵循相同方法,可分别对“参与系统”B和“参与系统”C进行空活动简化。

 

根据图2和图3,按照本发明所给出的基于多方交流协议proto1自动生成系统间交互过程框架的方法2,可以自动生成如图8所示的已将空活动去除后的三个系统A、B、C交互过程框架。针对应用实例1使用本发明给出的方法2,具体步骤如下(以下是应用实例1首次运行):

第1、首先针对多个参与系统(A、B、C)之间交互过程建立“交流协议”proto1,该“交流协议”proto1通过“交流活动”(m1、m2、m3)和“迁移关系”完整地表述多个参与系统(A、B、C)之间的交互过程;

第2、依据“交流协议”proto1中的所有“交流活动”(m1、m2、m3)分别在“参与系统”(A、B、C)中建立所对应的参与活动。

以在参与系统A为例,依据“交流协议”proto1中的所有“交流活动”(m1、m2、m3)在参与系统A中建立对应的参与活动。具体步骤是依据“交流协议”中“交流活动”之间的“迁移关系”,依序遍历第1步“交流协议”中的所有“交流活动”执行以下子步骤:

第2.1、依序找到第一个“交流活动”m1,并将该“交流活动”m1作为当前“交流活动”(即m1);

第2.2、针对当前“交流活动”(即m1),执行第2.2.1及第2.2.2每个子步骤;

第2.2.1、 依据当前“交流活动”在“参与系统”中建立对应的“参与活动”:具体步骤是,判断该“参与系统”在当前“交流活动”中扮演的角色,若该“参与系统”是当前“交流活动”中消息的发送方,则在该“参与系统”中建立一个发送“参与活动”简称发送活动;否则,若该“参与系统”是当前“交流活动”中消息的接收方,则在该“参与系统”中建立一个接收“参与活动”简称接收活动;否则,该“参与系统”与当前“交流活动”无关即无关方,不必建立对应的“参与活动”;

如图9所示,即依据当前“交流活动”(即m1)在“参与系统”A中建立对应的“参与活动”m1, 具体步骤是判断该“参与系统”A在当前“交流活动”(即m1)中扮演的角色:

在“交流活动”m1为当前“交流活动”时,该“参与系统”A是当前“交流活动”m1中消息的发送方,因此在该“参与系统”A中建立一个发送活动m1_s;

在“交流活动”m2为当前“交流活动”时,该“参与系统”A是当前“交流活动”m2中的无关方,与本发明方法1不同的是,在该“参与系统”A中不建立该空活动;

在“交流活动”m3为当前“交流活动”时,该“参与系统”A是当前“交流活动”m3中消息的发送方,则在该“参与系统”中建立一个发送活动m3_s。

第2.2.2、依据当前“交流活动”的所有“迁移关系”,在该“参与系统”中前述新建的“参与活动”中建立对应的所有“迁移关系”:若该“参与系统”是当前“交流活动”中消息的发送方或接收方,建立相对应的所有“迁移关系”,若一个“迁移关系”的目标“交流活动”尚未建立时该“迁移关系”暂缓建立,直到该“迁移关系”的目标“交流活动”创建时再建立该“迁移关系”;否则,在“参与系统 ”中以当前“交流活动”作为目标的“交流活动”所对应的“参与活动”里重新依照当前“交流活动”中的每个“迁移关系”来建立相对应的“迁移关系”;

如图9所示,依据当前“交流活动”(即m1)的所有“迁移关系”(即m1到m2的迁移关系),在该“参与系统”A中前述建立的“参与活动”m1_s中建立对应的所有“迁移关系”:

在“交流活动”m1为当前“交流活动”时,该“参与系统”A是当前“交流活动”m1的发送方,直接建立对应的所有“迁移关系”,因为“迁移关系”的目标“参与活动”m2不存在时,暂缓建立该“迁移关系”,因此以“参与活动”m1_s为起始的“迁移关系”暂缓建立;

在“交流活动”m2为当前“交流活动”时,该“参与系统”A是当前“交流活动”m2的无关方,在“参与系统”A中以当前“交流活动”(即m2)作为目标的“交流活动”(即m1)所对应的“参与活动”(即m1_s)里重新建立相对应于当前“交流活动”(即m2)的目标“交流活动”(即m3)中的每个“迁移关系”(即从m1_s到m3_s),因为“迁移关系”的目标“参与活动”m3不存在时,暂缓建立该“迁移关系”;

在“交流活动”m3为当前“交流活动”时,该“参与系统”A是当前“交流活动”m3的发送方,直接建立对应的所有“迁移关系”:没有以“交流活动”m3_s为起始的“迁移关系”,故无需建立以“参与活动”m3_s为起始的“迁移关系”;而以“交流活动”m3为目的的“迁移关系”即由m1_s到m3_s的迁移关系此前暂缓建立,因此此时重新建立;

第2.3、依序去找下一个“交流活动”,如果找到下一个“交流活动”则将该下一个“交流活动”作为当前“交流活动”,执行第2.2步骤;否则,执行下一步骤;

第3、依据“交流协议”proto1自动生成该“参与系统”A交互过程框架的方法结束。

依据上述三个步骤,由交流协议proto1根据本发明所述的方法2自动生成多个“参与系统”A、B、C间交互过程框架,具体步骤如图9、图10、图11所示。

 

应用实例2

如图14所示,proto2表述了四个“参与系统”(A、B、C、D)的交互过程。在该实例2中,可分别根据本发明所述的方法1和方法2来自动生成多个“参与系统”(A、B、C、D)间交互过程框架(具体过程同实例1),限于篇幅不赘述。

在该实例2中,本文重点探讨方法1所述深度优先遍历方法或者广度优先遍历方法遍历“交流协议”proto2中所有“交流活动”:如采用深度优先遍历方法遍历“交流协议”proto2中所有“交流活动”,遍历顺序则为:m1、m2、m3、m5、m4,其中重复遍历的“交流活动”已被省略;如采用广度优先遍历方法遍历“交流协议”proto2中所有“交流活动”,遍历顺序则为:m1、m2、m4、m3、m5,其中重复遍历的“交流活动”已被省略。

 

应用实例3

如图15所示,有三个“参与系统”(A、B、C)交互过程。首先“参与系统”A向“参与系统”B发送一个消息m1;然后“参与系统”B接收到消息m1后再向所有其他“参与系统”(A、C)发送一个消息m2;然后“参与系统”A如果收到的消息m2大于1的话,则“参与系统”A向“参与系统”C发送消息m3;否则“参与系统”A向“参与系统”C发送消息m4。

应用实例3可由图16所示基于“交流协议”proto的多个参与系统(A,B,C)交互过程、以及如图17所示的包含四个“交流活动”(m1、m2、m3、m4)“交流协议”proto来实现多个参与系统(A,B,C)间交互过程框架的自动生成。

应用实例3与应用实例1不同之处在于“交流协议”proto中“交流活动”m2到“交流活动”m3和m4的“迁移条件”采用了条件断言,即当消息m2大于1的话,“参与系统”A向“参与系统”C发送消息m3,否则“参与系统”A向“参与系统”C发送消息m4;因此在各个“参与系统”中建立对应“迁移条件”时也需要采用该条件断言,如图18所示。

根据该“交流协议”proto,分别根据本发明方法1和方法2,类似如应用实例1所描述的具体步骤,可分别实现三个“参与系统”(A、B、C)间交互过程框架,图18为实例3中基于“交流协议”proto并采用方法1生成多个系统间交互过程的未简化空活动下框架实例,图19为实例3中基于“交流协议”proto并采用方法1(空活动已被简化)或者方法2生成多个系统间交互过程框架完整实例,在此不赘述。

本发明所给出的方法1和方法2可以根据多个系统间的交流协议自动生成软件系统交互框架,开发者或者用户可以在此基础上进一步增加参与系统内部的其他活动。

 

考虑到在此公开的对本发明的描述和特例的实施例,本发明的其他实施例对于本领域的技术人员来说是显而易见的。这些说明和实施例仅作为例子来考虑,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号