[发明专利]一种基于元数据驱动的多样化服务的混合编排方法在审

专利信息
申请号: 201910565669.8 申请日: 2019-06-27
公开(公告)号: CN110618810A 公开(公告)日: 2019-12-27
发明(设计)人: 应时;刘辉;张火林;朱剑;张威;贾向阳;张光宇 申请(专利权)人: 武汉大学
主分类号: G06F8/34 分类号: G06F8/34
代理公司: 42222 武汉科皓知识产权代理事务所(特殊普通合伙) 代理人: 鲁力
地址: 430072 湖*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 消息结构 服务消息 服务协议 元数据 编排 多样性 服务 服务适配器 可用性评估 元数据建模 元数据驱动 定义流程 服务组合 结果验证 描述服务 数据交互 数据依赖 服务间 可扩展 匹配 测试 转换 统一
【权利要求书】:

1.一种基于元数据驱动的多样化服务的混合编排方法,其特征在于,包括:

元数据管理模块:提供了对服务元数据进行增删该查的功能,提供了元数据展示界面,以及元数据的注册修改界面;流程管理模块提供了流程编排界面,以及流程的状态的管理界面;用户可以在元数据管理界面中,查看,添加或修改服务元数据信息;在编排界面中可以通过图形化的操作进行服务编排,在流程管理界面中可以执行,挂起或终止已经部署的流程;

服务编排模块:基于BPMN可视化的流程编排界面进行服务编排,指定服务的调度顺序;同时,指定服务调用之间的数据传递关系;两方面操作生成BPMN的流程定义和数据依赖关系定义,二者共同描述了一个流程中服务的执行顺序以及服务之间的数据交互;

流程执行模块:服务适配器根据服务元数据将多样化的服务消息格式适配为统一消息格式,并在此消息格式上定义统一的数据交互模式;同时依靠BPMN定义流程中服务的执行顺序,最终实现多样化服务的服务编排,在流程执行模块中,根据BPMN流程定义依次调度各个服务,服务之间的数据交互依据已定义的数据依赖关系进行;在服务调度中,统一结构的消息与对应服务协议的消息自动适配,也就是给定统一结构的请求数据,自动地生成服务请求;给定服务的返回,自动解析为统一结构的返回数据;

服务消息适配模块:实现了标准化消息和实际服务的消息之间的转换;服务的元数据中定义了转换所需要的信息,包括服务地址、协议、消息格式等信息,同时消息格式中定义了消息中各个数据元素的语法细节,因此,利用服务的元信息,可以实现标准化消息和实际服务的消息之间的双向转换。

2.根据权利要求1所述的一种基于元数据驱动的多样化服务的混合编排方法,其特征在于,元数据管理模块进行服务的元数据建模,具体是:

构建服务的描述数据,服务元数据支持两个阶段工作,服务编排和流程执行;具体为在服务编排阶段生成数据依赖定义,以及在服务执行阶段自动适配服务消息;基于服务元数据所支持的工作阶段不同,服务元数据所包含的信息被分为编排信息和适配信息;

服务的编排信息描述服务的基本输入项和输出项,输入输出项为应用层上的输入输出,元数据中的适配信息则描述生成和解析服务消息时所需要的信息。

3.根据权利要求1所述的一种基于元数据驱动的多样化服务的混合编排方法,其特征在于,服务消息适配模块定义统一的服务消息交互格式,具体是:在流程编排阶段,服务数据传递规则无法基于BPMN语言指定;基于服务元数据定义统一的Json消息格式用于服务之间的数据交互;该数据结构可以表示一个服务请求或一个服务返回,流程中服务的请求和返回都采用该格式,作为服务的请求消息时,Json的Key值为元数据中的输入项名称,作为输出消息时,对应元数据中输出项名称。

4.根据权利要求1所述的一种基于元数据驱动的多样化服务的混合编排方法,其特征在于,流程执行模块基于BPMN和服务元数据定义流程执行过程和数据依赖,具体是:

BPMN中包含流对象和活动对象两个基本元素,分别表示流程中需要执行的任务和任务的顺序,通过BPMN中的活动对象描述一次服务调用,通过流对象描述服务的执行顺序,在BPMN2.0中,ServiceTask元素表示一个流程中的自动任务,sequenceFlow元素表示一个活动到下一个活动的执行顺序,结合服务的元数据信息,在任务节点中指定服务调度的顺序;

借助于服务元数据和统一的Json消息格式定义一个流程中服务之间的数据交互,最后生成的数据依赖定义本文又称为数据映射表;具体的方法是为每个服务的输入数据指定来源,在Json结构的数据依赖表中,在变量名的对应值中预先填充一个JsonPath,JsonPath定位于另一个服务消息中的某一个具体的数据项。

5.根据权利要求1所述的一种基于元数据驱动的多样化服务的混合编排方法,其特征在于,服务编排模块用于:一方面基于BPMN可视化的流程编排界面进行服务编排,指定服务的调度顺序;另一方面指定服务调用之间的数据传递关系;两方面操作生成BPMN的流程定义和数据依赖关系定义,两者共同描述了一个流程中服务的执行顺序以及服务之间的数据交互,具体包括:

步骤4.1、基于BPMN指定服务的调度顺序;

BPMN中包含流对象和活动对象两个基本元素,分别表示流程中需要执行的任务和任务的顺序,本文通过BPMN中的活动对象描述一次服务调用,通过流对象描述服务的执行顺序,在BPMN2.0中,ServiceTask元素表示一个流程中的自动任务,sequenceFlow元素表示一个活动到下一个活动的执行顺序,如下图为上文所定义流程的BPMN文本描述,其中具体包含三个ServiceTask元素表示三次服务调用,其中的sequenceFlow表示了几次服务调用的执行顺序;同时本文结合服务元数据中的ServiceContext服务上下文和MethodContext方法上下文两个字段,在流程中指定一个活动调用的具体服务下的具体方法;

步骤4.2、定义统一的服务消息交互格式;

一个完整的流程定义包括两个部分,服务执行顺序的定义以及服务之间数据交互的定义,BPMN语言本身的特性能够很好的描述一系列活动的执行顺序,但是并不能全面的描述服务流程的信息,具体地说是无法描述服务之间的数据交互,对于此本文基于服务元数据定义了服务交互中的统一消息格式以及服务之间数据依赖的描述方法;

在流程编排阶段,服务数据传递规则无法基于BPMN语言指定;基于服务元数据,本文定义了统一的消息格式用于服务之间的数据交互;该数据结构为Json,具体结构如图7所示,该数据结构可以表示一个服务请求或一个服务返回,数据结构中的字段ServiceContext,MethodContext和DataName,分别对应服务元数据中的具体值;流程中服务的请求和返回都采用该格式,作为服务的请求消息时,DataName为元数据中的InputSchema输入项,作为输出消息时,对应元数据中输出项OutputSchema输出项的名称;

步骤4.3、基于元数据定义流程中的数据依赖;

借助于服务元数据和统一的消息格式定义一个流程中服务之间的数据交互,最后生成的数据依赖定义本文又称为数据映射表;具体的方法是为每个服务的输入数据指定来源,在图7的消息格式中,在DataName的对应value值中预先填充一个JsonPath,JsonPath定位于另一个服务消息中的某一个具体的数据项;

在流程执行中,在调用服务之前,根据流程中的数据依赖定义,从其他的服务消息中抽取所需数据,具体方法是根据数据项后面的JsonPath锁定导入具体的数据;比如对于流程中矢量数据获取以及矢量数据拼接两个服务,根据二者的数据依赖关系定义了JsonPath表示矢量数据拼接的数据来源于矢量数据获取服务的返回,量数据拼接的输入“vectorAddr1”来源于矢量数据获取的输出“DataFetch”;

步骤4.4、基于服务元数据自动解析服务消息;

适配器实现了标准化消息和实际服务的消息之间的转换;服务的元数据中定义了转换所需要的信息,包括服务地址、协议、消息格式等信息,同时消息格式中定义了消息中各个数据元素的语法细节,因此,利用服务的元信息,可以实现标准化消息和实际服务的消息之间的双向转换。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910565669.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top