基于服务关系的变化检测服务链按需生成方法与流程

文档序号:11234215 阅读:294 来源:国知局
基于服务关系的变化检测服务链按需生成方法与流程

本发明属于遥感与地理信息服务领域,涉及一种基于服务关系的变化检测服务链按需生成方法。



背景技术:

随着webservice技术以及地理空间信息服务理论与应用的发展,越来越多的个人或组织机构将空间信息数据、处理算法、模型以web服务的方式封装并发布在网络上。这使得终端用户无需安装桌面端的地理信息处理专业软件(如arcgis、envi、erdas等),仅需通过web浏览器(如googlechrome、firefox、ie等)便可轻松地调用期望的服务,并以在线的方式获取数据处理与分析的结果。地表覆盖变化检测作为遥感信息处理的一个基础研究领域,已经在土地管理、灾害应急与评估、地理国情普查等领域发挥着重要的作用,这些拥有不同专业背景的用户迫切希望能够在互联网上调用现有的服务,并实现个性化的处理需求。具体意义和需求可参见如下文献:

di,l.geobrain-awebservicesbasedgeospatialknowledgebuildingsystem[a],inproceedingsofnasaearthsciencetechnologyconference[c],2004;pp22-24.

龚健雅,李德仁,论地球空间信息服务技术的发展[j].测绘通报,2008,(5),pp5-10.

李德仁,面向任务的遥感信息聚焦服务[m].科学出版社:2010.

陈军,丁明柱,蒋捷,等.,从离线数据提供到在线地理信息服务[j].地理信息世界,2009,7(2),pp6-9.

郭仁忠,地理信息服务:数据在线到应用在线[j].地理信息世界,2013,(2),pp11-15.

为了简化应用逻辑,提高服务的复用性,用户在互联网上发布的服务往往只具有单一功能(亦可称之为原子服务),如数据投影服务、格式转换服务、变化信息提取服务等。而地表覆盖变化检测是一个涉及数据预处理、变化强度计算、变化区域发现、变化类型确定等多个处理环节的复杂过程。如果仅调用这些功能单一的处理服务可能无法满足变化检测的复杂需求。因此,需将这些独立的、功能简单的原子服务按照一定的业务逻辑和规则有效地组织起来形成变化检测处理服务链。参见如下文献:

李德仁,利用遥感影像进行变化检测[j].海峡两岸测绘发展研讨会,2003.

lu,d.,mausel,p.,brondizio,e.,etc.,changedetectiontechniques[j].internationaljournalofremotesensing,2004,25(12),pp2365-2401.

周启鸣,多时相遥感影像变化检测综述[j].地理信息世界,2011,09(2),pp28-33.

yue,p.,di,l.,yang,w.,etc.,semantics-basedautomaticcompositionofgeospatialwebservicechains[j].computers&geosciences,2007,33(5),pp649-665.

cruz,s.a.,monteiro,a.m.,santos,r.,automatedgeospatialwebservicescompositionbasedongeodataqualityrequirements[j].computers&geosciences,2012,47pp60-74.

现有的空间信息服务链大都以固定编排为主,即由具有先验知识的专家提前设计好处理服务链,并在服务端发布,用户仅需在网络上按照一定的规则上传满足要求的输入数据便可调用和执行该服务链。例如,karantzalos等(2015)设计研发的一种遥感影像在线分类服务,制定了以影像预处理、影像分类为主的处理服务链。固定编排的服务链构建模式往往面向特定的应用需求,难以满足终端用户对服务链灵活、个性化构建的需求。对于地表覆盖变化检测而言,单一的处理服务链并不能满足所有的处理需求。如图1所示,假设用户有两组不同的输入数据,分别表示为i1与i2,从其获取年份可看出i1组数据获取自同一季节,i2组数据获取自不同的季节。针对i1组数据,可利用直接比较法得到变化区域数据和变化类别数据,变化检测前需对两期影像作严格的辐射纠正和几何纠正预处理,2010年的globeland30数据可以为影像分类服务提供训练样本,其服务链可表示为servicechain1={a→b→c→d→e}。针对i2组数据,可采用分类后比较法,基于globeland30数据提取的训练样本先对两期影像进行分类,然后在分类图的基础上进行变化比较,变化检测前无需对两期影像进行辐射纠正,其服务链可表示为servicechain2={b→e→d}。通过这一实例可以看出,由于现有的变化检测算法都有各自的优缺点和适用范围,并且对其输入的遥感影像数据,数据预处理、后处理操作都有特定的要求。因此,将这些处理算法、模型进行服务封装后,需要根据用户的需求(包括用户提供的数据条件以及用户期望的数据特点),将多个原子服务按照一定的逻辑关联关系有机地组合起来,动态地生成满足要求的变化检测处理服务链。参见如下文献。

friis-christensen,a.,lucchi,r.,lutz,m.,etc.,servicechainingarchitecturesforapplicationsimplementingdistributedgeographicinformationprocessing[j].internationaljournalofgeographicalinformationscience,2009,23(5),pp561-580.

karantzalos,k.,bliziotis,d.,karmas,a.,ascalablegeospatialwebservicefornearreal-time,high-resolutionlandcovermapping[j].2015.



技术实现要素:

为了解决背景技术中存在的上述问题,本发明提供了一种基于服务关系的变化检测服务链按需生成方法,可用于自动化生成满足用户需求的服务链。

为了实现上述目的,本发明采用如下技术方案:

一种基于服务关系的变化检测服务链按需生成方法,其特征在于:所述方法包括以下步骤:

1)构建基于服务关系的推理规则;

2)将用户需求解析为初始数据、期望数据以及期望qos;

3)构建基于步骤1)构建得到的推理规则多类别语义匹配的闭包服务集;

4)动态生成基于后继服务查找的变化检测服务链。

作为优选,本发明采用的步骤1)的具体实现方式是:

1.1)将变化检测服务分为数据预处理服务以及变化信息提取服务;

1.2)根据变化信息提取服务制定3条确定变化信息提取服务的推理规则;根据数据预处理服务制定1条确定数据预处理服务的推理规则;

1.3)利用swrl对步骤1.2)所得到的确定变化信息提取服务的推理规则以及确定数据预处理服务的推理规则进行形式化表达。

作为优选,本发明所采用的3条确定变化信息提取服务的推理规则分别是确定变化信息提取起始服务的推理规则(rule_startservice)、确定变化信息提取后继服务的推理规则(rule_seqservice)以及确定变化信息提取终点服务的推理规则(rule_endservice);

所述确定变化信息提取起始服务的推理规则(rule_startservice)表示如果存在一个服务ws,且该服务的输入数据与用户的输入数据存在等价关系,则该服务ws将会被视为起始服务;

所述确定变化信息提取后继服务的推理规则(rule_seqservice)表示如果服务ws2与服务ws1存在顺序关系,则ws2将会被视为ws1的前驱服务,并加入到服务链列表中;

所述确定变化信息提取终点服务的推理规则(rule_endservice)表示如果存在一个服务ws,且该服务的输出数据与用户的期望输出数据存在等价关系,则该服务ws将会被视为终点服务;

所述确定数据预处理服务的推理规则(rule_preservice)是在变化信息提取服务选取完成的基础上,分别对每一个变化信息提取服务进行判断,如果输入数据与服务ws的输入数据存在类别不等价关系,且存在数据预处理服务prews与输入数据存在类别等价关系,则prews服务将被选为数据预处理服务。

作为优选,本发明所采用的步骤1.3)的具体实现方式是:

假设变化信息提取服务的表达式为cdrs={cdrsinput,cdrsoutput},数据预处理服务表达式为pres={presinput,presoutput},用户需求表达为demands={dinput,doutput};

则:

所述确定变化信息提取起始服务的推理规则(rule_startservice)的具体表达式是:

hasinput(?cdrsi,?input)∧hasexpect(?demands,?dinput)∧tmatch(?input,?dinput)=exact∧hasconr(?input,?dinput)→startservice(?servicechain,?cdrsi);

所述确定变化信息提取后继服务的推理规则(rule_seqservice)的具体表达式是:

hasservice(?cdrsi)∧hasservice(?cdrsj)∧hasseqr(?cdrsi,?cdrsj)=exact→seqservice(?servicechain,?cdrsi);

所述确定变化信息提取终点服务的推理规则(rule_endservice)的具体表达式是:

hasoutput(?cdrsi,?output)∧hasexpect(?demands,?doutput)∧tmatch(?output,?doutput)=exact∧hasconr(?output,?doutput)→endservice(?servicechain,?cdrsi);

所述确定数据预处理服务的推理规则(rule_preservice)的具体表达式是:

hasinput(?cdrsi,?input)∧hasexpect(?demands,?dinput)∧!hasconr(?input,?dinput)∧hasinput(?presj,?input)∧tmatch(?input,?dinput)=exact→preservice(?servicechain,?presj)。

作为优选,本发明所采用的步骤2)中用户需求是指用户对所请求目标服务的需求描述,所述用户需求的具体表达式是:

req={reqinput,reqoutput,reqqos}

其中:

所述reqinput以及reqoutput分别表示用户的初始数据以及期望数据,所述reqinput以及reqoutput均属于功能性的需求;

所述reqqos表示对期望服务的质量要求,属于非功能性的需求;

所述reqinput是用户所能提供的输入数据的集合,称为请求输入集;所述reqinput的表达式是:

reqinputi={type,characteristic}

其中:

type是用户所能提供的输入数据的类别;

characteristic表示数据的属性特征;

所述reqoutput是用户所能提供的期望数据的集合,称为期望输出集;所述reqoutput的表达式与reqinput的表达式相同;

所述reqqos是用户所能提供的qos指标及相应的阈值或范围所形成的指标集合;所述reqqos的表达是:

reqqosi={name,op,value,unit}

其中:

name是qos指标的名称;

op表示比较符;

value代表具体的数量值;

unit指的是该指标的单位。

作为优选,本发明所采用的步骤3)中闭包服务集是根据用户的功能性的需求,以swrl规则为语义匹配依据,将所有与用户输入数据以及输出数据具有关联关系的服务所构成的集合;

面向闭包服务集构建的服务语义匹配时,分为四个方面:

a)用户请求输入集与初始服务输入之间的语义匹配(inputmatch):判断reqinput与服务注册中心中的服务的语义匹配关系是否满足rule_startservice规则,从而确定初始服务(startservice),若满足,则确定为初始服务并执行步骤b);若不满足,则结束匹配;

b)服务间语义匹配(seqmatch):判断startservice与服务注册中心中的服务的语义匹配关系是否满足rule_seqservice规则,从而确定后继服务(seqservice),若满足,则确定为后继服务并执行步骤c);若不满足,则结束匹配;

c)用户期望输出集与后继服务输出之间的语义匹配(endmatch):判断seqservice与服务注册中心中的服务的语义匹配关系是否满足rule_endservice规则,从而确定末尾服务(endservice),若满足,则确定为末尾服务并执行步骤d),若不满足,则结束匹配;

d)变化检测处理服务与数据预处理服务之间的语义匹配(prematch):判断cdrs与服务注册中心中的服务的语义匹配关系是否满足rule_preservice规则,从而确定数据预处理服务(preservice),若满足,则确定为数据预处理服务同时结束匹配;若不满足,则直接结束匹配;

服务间语义匹配策略是:前驱服务输出参数与后继服务输入参数类别匹配、参数属性的匹配以及参数之间属性是否一致的匹配;

匹配的结果是:完全匹配(exact)、前驱包含匹配(presubsume)、后继包含匹配(seqsubsume)、交叉匹配(plugin)以及不匹配(fail);

其中:

完全匹配(exact)的判别方法是:output=input,需要同时满足以下条件:a) 都有 且inputi=outputj;b) 都有 且outputi=inputj;c)output.consistency=input.consistency;

前驱包含匹配(presubsume)的判别方法是: 即: 都有 且inputi=outputj;

后继包含匹配(seqsubsume)的判别方法是: 即: 都有 且outputi=inputj;

交叉匹配(plugin)的判别方法是:同时满足以下条件:a) 都有 且inputi=outputj;b) 使得inputi≠outputj;

其中:

prews是前驱服务;所述prews的输出参数为output,output={output1,…,outputn};

seqws是后继服务;所述seqws的输入参数为input,input={input1,…,inputm};

所述步骤3)的具体实现方式是:在明晰用户输入数据、输出数据以及基于swrl规则的多类别语义匹配的基础上,遍历服务注册中心的所有服务,将具有关联关系的服务纳入闭包服务集。

作为优选,本发明所采用的步骤4)的具体实现方式是:

4.1)查找与用户输入匹配的服务inputrws,并将其start属性设为true;

4.2)根据服务语义匹配类别判别方法,找到与inputrws输出匹配的服务seqrws,将inputrws的sequence属性记为seqrws;

4.3)判断inputrws与seqrws的关系,若为完全匹配关系,则将seqrws存入sequencewslist;若为前驱包含匹配,继续查找inputrws的其他后继服务seqrws_else,将查找到的所有后继服务存入sequencewslist,并将其添加到inputrws的sequence属性中;若为后继包含匹配,则查找seqrws的其他前驱服务prerws,将seqrws存入sequencewslist,将prerws存入partprewslist;若为交叉匹配,则同时查找inputrws的其他后继服务seqrws_else以及seqrws的其他前驱服务prerws,将seqrws_else存入sequencewslist,并将seqrws_else添加到inputrws的sequence属性中,prerws存入partprewslist;

4.4)将sequencewslist中的服务逐一取出,判断服务的输出与用户输出请求是否匹配,若该值为true,将该服务的end属性设为true,从start服务开始顺次连接sequence属性中的服务直到end服务得到服务组合方案;否则转到步骤4.2)继续查找sequencewslist中每一个服务的后继服务。

作为优选,本发明所提供的方法在步骤4)之后还包括:

5)在满足用户对变化检测服务链功能性需求的前提下,针对用户的非功能需求qos,从多条候选服务链中选择最优的服务链,实现服务链的优选。

作为优选,本发明所采用的步骤5)的具体实现方式是:

采用适用于变化检测处理流程中服务的qos指标对多条候选服务链中进行评价以及优选;所述qos指标包括执行时间(executetime,et)、可靠性(reliability,re)、可用性(availability,av)和处理精度(processingaccuracy,pa);

假设服务是si;所述qos指标的具体评价方式是:

所述et(si)表示一个服务从服务请求者发出请求到服务完成的时间间隔,包括服务的响应时间和服务的执行时间之和,所述et(si)=rt(si)+ct(si);所述et(si)是负向指标;

所述re(si)表示服务被成功运行的概率,服务可靠性与服务软硬件配置环境,以及服务提供者与消费者之间的网络连接密切相关;所述re(si)=success(si)/n,其中,success(si)代表服务运行成功的次数,n代表服务被运行的总次数;所述re(si)是正向指标;

所述av(si)表示一个服务被正确调用的概率;所述av(si)=invoke(si)/n,其中,invoke(si)代表服务被正确调用的次数,n代表服务被调用的总次数;所述av(si)是正向指标;

所述pa(si)表示服务处理结果的精度,所述pa(si)是正向指标;

所述qos指标的优选的方式是:对qos指标进行归一化处理,从而对服务的综合qos指标进行量化;

所述归一化的处理过程如下述公式所示:

公式(1)与(2)分别表示正向指标和负向指标的归一化方式;

其中:

qi'表示调整后的qos指标值;

qi调整前的qos指标值;

分别表示某一服务中qk指标的最大和最小值;

经过归一化处理后,qos指标qi的取值区间由原来的 调整为[0,1];

服务链优化的最终目标是使得服务链s的非功能性属性达到最大化;所述服务链s的非功能性属性达到最大化的具体实现方式是:

首先计算出单个服务si的聚合qos值,再进一步采用加权运算聚合各个组合服务的qos值表示服务链的组合qos值,将多条服务链按照qos(s)的值进行排序,选择qos值最高的服务链即可作为最优的变化检测服务链;

所述单个服务的聚合qos值以及服务链的组合qos值的计算公式分别如式(3)和(4)所示:

其中:

ωi与ωk分别表示单个服务中某一qos指标所占的权重以及组合服务中某一服务所占的权重。

本发明的优点是:

本发明提供了一种基于服务关系的变化检测服务链按需生成方法。总体思路如图6所示,通过服务关系的推理演算,选择最适宜的一组web服务,生成按需的变化检测服务链。包括基于服务关系的推理规则构建、将用户需求解析为初始数据和期望数据、基于规则多类别语义匹配的闭包服务集构建、基于后继服务查找的变化检测服务链动态生成以及变化检测服务链的评价与优选方法等具体5个大步骤。其中,在实际推理过程中,变化检测领域三个层级的服务关系可以作为推理规则中的前提或条件部分;其中,接口层级的服务关系用于判断输入数据间的关系;执行层级的服务关系用于判定用户输入数据与起始服务的输入,以及终点服务的输出与用户期望输出数据之间的关系;操作层级的服务关系用于判定服务链中的服务间的前驱和后继关系;在此基础上,利用swrl语言对其进行形式化地描述和表达;用户需求具体是指用户对所请求目标服务的需求描述,可以用一个三元组对其进行形式化地表达;req={reqinput,reqoutput,reqqos},其中reqinput与reqoutput分别表示用户的初始数据与期望数据,属于功能性的需求,reqqos则表示对期望服务的质量要求,属于非功能性的需求。根据用户的功能性需求(输入数据和输出数据),以swrl规则为语义匹配依据,将所有与用户输入、输出数据具有关联关系的服务所构成的集合定义为闭包服务集。在服务查找时,仅在闭包服务集中进行搜索,从而达到提高服务组合效率的目的。以用户的输入请求为目标驱动,找到与用户输入请求完全匹配的处理服务作为起始服务,然后根据服务间的语义匹配判断服务间的前驱/后继关系,不断地寻找后继服务,直到后继服务与用户输出请求完全匹配为止。在满足用户对变化检测服务链(组合服务)功能性需求的前提下,针对用户的非功能需求(qos),从多条候选服务链中选择最优(使用户的非功能性属性最大化)的服务链,实现服务链的优选。

附图说明

图1是按需变化检测服务链生成示例;

图2是基于后继服务查找的服务组合示意图;

图3是闭包服务集的示意图;

图4是遥感处理服务的语义匹配类别;

图5是基于前驱/后继关系的服务组合算法的流程图;

图6是基于服务关系的变化检测服务链按需生成的总体思路。

具体实施方式

本发明提供了一种基于服务关系的变化检测服务链按需生成方法,总体思路如图6所示,通过服务关系的推理演算,选择最适宜的一组web服务,生成按需的变化检测服务链,具体而言本发明所提供的基于服务关系的变化检测服务链按需生成方法包括如下步骤:

a、构建基于服务关系的推理规则,并利用swrl(semanticwebrulelanguage,是由以语义的方式呈现规则的一种语言)语言对其进行形式化地描述和表达。在实际推理过程中,变化检测领域三个层级的服务关系可以作为推理规则中的前提或条件部分。其中,接口层级的服务关系用于判断输入数据间的关系;执行层级的服务关系用于判定用户输入数据与起始服务的输入,以及终点服务的输出与用户期望输出数据之间的关系;操作层级的服务关系用于判定服务链中的服务间的前驱和后继关系。

整个变化检测处理主要包括两大类处理过程:数据预处理和变化信息提取。其中数据预处理是将原始影像数据处理为满足变化信息提取算法要求的一类算法,通常并不改变所处理数据的类型,仅仅改变其属性,例如,辐射纠正、几何纠正、投影转换、格式转换等。而变化信息提取算法是变化检测处理的核心环节,是通过原始影像数据提取变化区域或变化类型的处理算法,决定了变化检测处理的精度和效率,例如,变化检测强度计算、变化阈值选取、变化类型确定等。将变化检测相关的处理算法封装为web服务后,变化检测处理服务链生成的过程实际上变为确定数据预处理服务(preprocessingservice,pres)和变化信息提取服务(changedetectionrelevantservice,cdrs)的过程。因此,本文首先将变化检测处理服务分为数据预处理服务以及变化信息提取服务,在此基础上制定了3条确定变化信息提取服务的推理规则以及1条确定数据预处理服务的推理规则,这些规则的构建过程和方式如下:

(1)确定变化信息提取起始服务的推理规则(rule_startservice):该规则表示如果存在一个服务ws,且该服务的输入数据与用户的输入数据存在等价关系,则该服务ws将会被视为起始服务。

(2)确定变化信息提取后继服务的推理规则(rule_seqservice):该规则表示如果服务ws2与服务ws1存在顺序关系,则ws2将会被视为ws1的前驱服务,并加入到服务链列表中。

(3)确定变化信息提取终点服务的推理规则(rule_endservice):该规则表示如果存在一个服务ws,且该服务的输出数据与用户的期望输出数据存在等价关系,则该服务ws将会被视为终点服务。

(4)确定数据预处理服务的推理规则(rule_preservice):该规则是在变化信息提取服务选取完成的基础上,分别对每一个变化信息提取服务进行判断,如果输入数据(包括用户的输入数据和前驱服务的输出数据)与服务ws的输入数据存在类别不等价关系,且存在数据预处理服务prews与输入数据存在类别等价关系,则prews服务将被选为数据预处理服务。

假设变化信息提取服务表达式为cdrs={cdrsinput,cdrsoutput},数据预处理服务表达式为pres={presinput,presoutput},用户需求表达为demands={dinput,doutput}。遵循上述表达规范,构建了如下的4种推理规则(rule_startservice、rule_seqservice、rule_endservice、rule_preservice)。

规则1:hasinput(?cdrsi,?input)∧hasexpect(?demands,?dinput)∧tmatch(?input,?dinput)=exact∧hasconr(?input,?dinput)→startservice(?servicechain,?cdrsi)

规则2:hasservice(?cdrsi)∧hasservice(?cdrsj)∧hasseqr(?cdrsi,?cdrsj)=exact→seqservice(?servicechain,?cdrsi)

规则3:hasoutput(?cdrsi,?output)∧hasexpect(?demands,?doutput)∧tmatch(?output,?doutput)=exact∧hasconr(?output,?doutput)→endservice(?servicechain,?cdrsi)

规则4:hasinput(?cdrsi,?input)∧hasexpect(?demands,?dinput)∧!hasconr(?input,?dinput)∧hasinput(?presj,?input)∧tmatch(?input,?dinput)=exact→preservice(?servicechain,?presj)

b、将用户需求解析为初始数据、期望数据和期望qos。用户需求具体是指用户对所请求目标服务的需求描述,可以用一个三元组对其进行形式化地表达。req={reqinput,reqoutput,reqqos},其中reqinput与reqoutput分别表示用户的初始数据与期望数据,属于功能性的需求,reqqos则表示对期望服务的质量要求,属于非功能性的需求。

reqinput:用户所能提供的输入数据的集合,称为请求输入集。reqinput可被进一步的表达为一个二元组:reqinputi={type,characteristic},其中type指的是数据类别,例如,遥感影像数据、地表覆盖数据、样本数据等。characteristic表示数据的属性特征,如遥感影像数据具有空间分辨率、辐射分辨率、获取时间、空间范围等特征。

reqoutput:用户所能提供的期望数据的集合,称为期望输出集。其细化表达方式与reqinput相同。

reqqos:用户所能提供的qos指标及相应的阈值或范围所形成的指标集合。每一个指标可以用一个四元组进行细化表达:reqqosi={name,op,value,unit},其中,name指的是qos指标的名称,op表示比较符,value代表具体的数量值,unit指的是该指标的单位。例如,用户期望得到处理时间小于1分钟的处理服务链,且总体精度大于80%的变化区域数据,利用本文方法可以将其表达为reqqos1={“处理时间”,“小于”,“1”,“分钟”},reqqos2={“总体精度”,“大于”,“80”,“%”}。

c、构建闭包服务集。基于服务匹配的服务发现是服务组合(即服务链生成)的关键步骤。传统的服务组合方法在服务匹配时,通常将匹配目标范围设为整个服务注册中心。对服务数量巨大的注册中心(由于绝大多数的服务可能与用户的请求并无关系)进行遍历搜索容易出现搜索时间过长甚至“组合爆炸”的情形,造成服务组合的效率低下。为了解决这一问题,本文借鉴闭包的思想,提出了闭包服务集(closureservicesets)的构建策略,以缩小服务组合时服务的匹配与查找空间。图3是一个闭包服务集的具体示例,其基本思想是根据用户的功能性需求(输入数据和输出数据),以swrl规则为语义匹配依据,将所有与用户输入、输出数据具有关联关系的服务所构成的集合定义为闭包服务集。在服务查找时,仅在闭包服务集中进行搜索,从而达到提高服务组合效率的目的。

面向闭包服务集构建的服务语义匹配主要分为四个方面:(1)用户请求输入集与初始服务输入之间的语义匹配(inputmatch):判断reqinput与服务注册中心中的服务的语义匹配关系是否满足rule_startservice规则,从而确定初始服务(startservice)。(2)服务间语义匹配(seqmatch):判断startservice与服务注册中心中的服务的语义匹配关系是否满足rule_seqservice规则,从而确定后继服务(seqservice);(3)用户期望输出集与后继服务输出之间的语义匹配(endmatch):判断seqservice与服务注册中心中的服务的语义匹配关系是否满足rule_endservice规则,从而确定末尾服务(endservice);(4)变化检测处理服务与数据预处理服务之间的语义匹配(prematch):判断cdrs与服务注册中心中的服务的语义匹配关系是否满足rule_preservice规则,从而确定数据预处理服务(preservice)。其中,服务间语义匹配的种类相对复杂,是构建闭包服务集的关键,即如何根据已知的服务快速找到与之合作的后继服务。本小节主要探讨了服务间语义匹配对于构建闭包服务集的作用。

本文在前文中提出的服务间的顺序关系只考虑了服务间完全匹配的情形,在实际的变化检测服务组合中,服务间的语义匹配关系可能更复杂。就本质而言,服务间语义匹配是由前驱服务的输出参数与后继服务的输入参数间的语义匹配所决定的。因此,借鉴文献定义的概念之间的匹配等级,本文将面向变化检测处理服务组合的服务语义匹配(即服务间的顺序关系)扩展为5个类别:完全匹配(exact)、前驱包含匹配(presubsume)、后继包含匹配(seqsubsume)、交叉匹配(plugin)、不匹配(fail)。以图4为例进行说明,服务a、b、c、d、e、f分别代表变化强度计算服务、变化阈值选取服务、影像掩膜服务、变化区域的监督分类服务、样本选取服务、不变区域的非监督分类服务,在该例中a与b为完全匹配,c与f为前驱包含匹配,e与d为后继包含匹配,c与d为交叉匹配。

通过变化检测领域特征的分析不难看出,传统的服务语义匹配方法并不完全适用于变化检测处理服务的语义匹配,具体体现在以下两个方面。首先遥感处理服务间语义匹配不仅需要参数的类别匹配,还需要依据参数的属性是否匹配,例如,某一辐射纠正服务的输出参数为2个影像数据,某一变化检测服务的输入数据为2个影像数据,单从参数的语义类别来看,两者都为影像数据,该辐射纠正服务应与变化检测服务应为完全匹配,但该辐射纠正服务的影像数据空间分辨率为30m,而该变化检测服务要求的影像数据空间分辨率为250m,两服务的语义匹配类别并不是完全匹配。再者,对于拥有多个输入输出参数的遥感处理服务而言,仅根据参数的语义类别、类别属性并不能准确判断出服务之间的匹配关系,往往还需要根据参数属性关系的一致性是否匹配,例如,某一辐射纠正服务的输出参数为2个影像数据,其空间分辨率为30m,某一变化检测的输入数据为2个影像数据,空间分辨率也为30m,但由于该辐射纠正服务的输出数据的空间范围不一致,而变化检测服务要求输入数据的空间范围必须一致,因此,两服务的语义匹配类别也不是完全匹配。

结合变化检测领域处理服务的特殊性,本文采取的服务间语义匹配策略是对三个方面语义匹配结果的综合:前驱服务输出参数与后继服务输入参数类别匹配、参数属性的匹配以及参数之间属性是否一致的匹配。假设前驱服务为prews,其输出参数为output,output={output1,…,outputn};后继服务为seqws,其输入参数为input,input={input1,…,inputm},5种类别的判别方法如表1所示。其中,inputi=outputj需要同时满足:1、inputi.type=outputj.type;2、inputi.property=outputj.property。

表1遥感处理服务匹配类别的判别

在明晰用户输入数据、输出数据以及基于swrl规则的多类别语义匹配的基础上,遍历服务注册中心的所有服务,将具有关联关系的服务纳入闭包服务集。

d、基于后继服务查找的变化检测服务链动态生成。以用户的输入请求为目标驱动,找到与用户输入请求完全匹配的处理服务作为起始服务,然后根据服务间的语义匹配判断服务间的前驱/后继关系,不断地寻找后继服务,直到后继服务与用户输出请求完全匹配为止,基于后继服务查找的服务组合示意图如图5所示。

为了便于快捷地查找后继服务,本文设计了一个hash表sequencewslist,用于存放每一次查找到的后继服务。另外,针对服务间后继匹配的情形,设计一个用于存放这些缺失信息的hash表partprewslist。同时,为了便于最后服务路径的查找,给每一个服务增加start、sequence、end属性,分别用于记录该服务是否为初始服务、该服务的后继服务以及该服务是否为结尾服务,具体步骤如下:

步骤1:查找与用户输入匹配的服务inputrws,并将其start属性设为true;

步骤2:根据服务语义匹配类别判别方法,找到与inputrws输出匹配的服务seqrws,将inputrws的sequence属性记为seqrws;

步骤3:判断inputrws与seqrws的关系,若为完全匹配关系,则将seqrws存入sequencewslist;若为前驱包含匹配,继续查找inputrws的其他后继服务seqrws_else,将查找到的所有后继服务存入sequencewslist,并将其添加到inputrws的sequence属性中;若为后继包含匹配,则查找seqrws的其他前驱服务prerws,将seqrws存入sequencewslist,将prerws存入partprewslist;若为交叉匹配,则同时查找inputrws的其他后继服务seqrws_else以及seqrws的其他前驱服务prerws,将seqrws_else存入sequencewslist,并将seqrws_else添加到inputrws的sequence属性中,prerws存入partprewslist;

步骤4:将sequencewslist中的服务逐一取出,判断服务的输出与用户输出请求是否匹配,若该值为true,将该服务的end属性设为true,从start服务开始顺次连接sequence属性中的服务直到end服务得到服务组合方案;否则转到步骤2,继续查找sequencewslist中每一个服务的后继服务。基于后继服务查找的服务组合算法的流程图如图2所示。

值得说明的是,步骤1和步骤2可能出现多个满足要求的服务,分别按照该算法的流程查找其对应的后继服务,则可得到多条满足用户需求的服务组合路径。假设有n个可用服务,本文算法的时间复杂度为

e、在满足用户对变化检测服务链(组合服务)功能性需求的前提下,针对用户的非功能需求(qos),从多条候选服务链中选择最优(使用户的非功能性属性最大化)的服务链,实现服务链的优选。

设计了适用于变化检测处理流程中服务的qos指标,包括执行时间(executetime,et)、可靠性(reliability,re)、可用性(availability,av)和处理精度(processingaccuracy,pa)。假设服务用si表示,这4项指标相应的计算和评价方法如下:

et(si):表示一个服务从服务请求者发出请求到服务完成的时间间隔,包括服务的响应时间和服务的执行时间之和,可表示为:et(si)=rt(si)+ct(si)。

re(si):表示服务被成功运行的概率,服务可靠性与服务软硬件配置环境,以及服务提供者与消费者之间的网络连接密切相关。可表示为:re(si)=success(si)/n,其中,success(si)代表服务运行成功的次数,n代表服务被运行的总次数。

av(si):表示一个服务被正确调用的概率。由于服务通常被调用多次,因此可用性可表示为:av(si)=invoke(si)/n,其中,invoke(si)代表服务被正确调用的次数,n代表服务被调用的总次数。

pa(si):表示服务处理结果的精度,如数据预处理服务的辐射纠正精度、变化信息提取服务的总体精度等,一般由服务发布者进行标记。

由于qos指标同时包含了正向指标(qos指标值越高越好,如精度、可用性等)和负向指标(qos指标值越小越好,如执行时间),以及各指标的量化单位、取值范围等属性的不一致性,导致了不同的qos指标之间并不具备直接的可比性。因此,需要对qos指标进行归一化处理,从而对服务的综合qos指标进行量化。本文采用“最大-最小规格化方法”来调整qos指标,其归一化的处理过程如下述公式所示:

公式(1)与(2)分别表示正向指标和负向指标的归一化方式,其中,qi'表示调整后的qos指标值,qi调整前的qos指标值, 分别表示某一服务中qk指标的最大和最小值。经过归一化处理后,qos指标qi的取值区间由原来的 调整为[0,1]。服务链优化的最终目标是使得服务链s的非功能性属性达到最大化,为此,本文首先计算出单个服务si的聚合qos值,再进一步采用加权运算聚合各个组合服务的qos值表示服务链的组合qos值,单个服务的聚合qos值以及服务链的组合qos值的计算公式分别如式(3)和(4)所示。其中,ωi与ωk分别表示单个服务中某一qos指标所占的权重以及组合服务中某一服务所占的权重。将多条服务链按照qos(s)的值进行排序,选择qos值最高的服务链即可作为最优的变化检测服务链。

当前第1页 1 2
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1