没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取理论计算机科学电子笔记321(2016)89-112www.elsevier.com/locate/entcsWeb服务发现和选择的基于案例的推理艾伦·德·伦齐斯,马丁·加里加,安德烈斯·弗洛雷斯,亚历杭德拉·切奇1,2GIISCo研究小组阿根廷Nuequen UNComa大学信息学系亚历山大·祖尼诺3ISISTAN研究所UNICEN大学Tandil,布宜诺斯艾利斯,阿根廷摘要式Web服务发现和选择交易,用于检索最合适的Web服务,并提供所需的功能。 解决一个有效的解决方案仍然是困难的,当只有功能描述。服务是可用的。 在本文中,我们提出了一个基于案例推理的解决方案,其中:一对事例之间的相似性是通过一个相似性函数来量化的。 我们展示了可行性通过引入一种新颖的案例表示法、学习启发法和三种不同的相似性函数,将基于案例的推理应用于Web服务发现和选择。我们还使用62个现实生活中的Web服务的数据集对我们的建议进行了实验验证,在众所周知的信息检索指标方面实现了竞争价值。关键词:Web服务、服务选择、服务发现、基于案例的推理、面向服务的应用。1介绍性面向服务的计算(SOC)通过为在异构环境中构建分布式、跨组织的应用程序提供支持,其采用率不断提高[14]。大多数情况下,软件行业已经通过使用Web服务技术采用了SOC。Web服务是一个具有定义明确的接口的程序,可以使用标准Web协议来定位、发布和调用该接口[5]。1这项工作得到了以下项目的支持:PICT 2012-0045和2电子邮件:{alanderenzis,马丁.garriga,安德烈斯.弗洛雷斯,Alejandra.cechic}@fi.uncoma.edu.ar3电子邮件:Alejandro. isistan.unicen.edu.arhttp://dx.doi.org/10.1016/j.entcs.2016.02.0061571-0661/© 2016作者。出版商:Elsevier B.V.这是CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)下的开放获取文章。90A. De Renzis等人/理论计算机科学电子笔记321(2016)89然而,SOC范式的广泛使用需要有效的方法来允许从应用程序内部进行服务发现、选择、集成和消费[29]。目前,开发人员被要求手动搜索合适的服务,然后提供合适的"glue-code",以便将它们组装成面向服务的应用程序即使有一个聪明的候选人列表,一个熟练的开发人员也必须为消费者应用程序完成最合适的服务。 这意味着通过分析检索到的候选者的可满足性(即,搜索引擎优化),对发现服务进行禁止性排序。服务选择),并标识用于所选候选服务的最终集成的调整集在这项工作中,我们利用基于案例的推理(CBR)--来自人工智能(AI)领域--来克服Web服务发现和选择中的相关问题。一个基于案例的推理器通过使用或调整旧递归问题的解决方案来解决问题。有时被称为相似性搜索系统,CBR系统最重要的特征是相似性函数的有效性,该函数用于量化一对病例之间的相似性程度[25]。[26][27][28]我们的建议模型是一个基于案例的服务选择推理器,其中主要贡献是三倍。我们定义了一个在Web服务功能描述(通常是SDL)中捕获信息的用例表示。此外,我们在CBR的关键步骤和Web服务发现和选择的问题之间画了一个平行线。最后,我们提供了三个类似功能的实现,涉及功能服务描述的结构和语义方面。本文的其余部分按以下方式组织。第2节详细说明了服务选择过程。第3节介绍了CBR在服务选择上下文中的应用第4节详细介绍了相似性函数的替代方法。第5节介绍了该方法的实验验证。第6节讨论与工作相关的问题。结论和未来的工作将在稍后介绍。2服务选择在面向服务的应用程序的开发过程中,一些组成软件的部分可能会被到Web服务的连接所填充。在这种情况下,可以通过使用任何服务发现注册表来获得候选Web服务的列表。然而,即使有一个聪明的候选人列表,开发人员也必须具备足够的技能来确定最合适的服务,并为所选服务的无缝集成塑造自适应工件。因此,需要可靠和切实可行的支持才能作出这些决定。为此,在以前的工作[12,16]中,我们定义了一种服务选择方法。服务选择方法基于对候选Web服务的接口兼容性评估和所需功能的(可能是部分的)规范(如该过程匹配所需的接口IR和由候选服务S提供的接口(IS)(先前发现的)。收集来自两个接口的所有可用信息,以便在语义和结构级别上进行评估。语义评估使我们有了用武之地A. De Renzis等人/理论计算机科学电子笔记321(2016)8991图1。 接口兼容性方案。WordNet词汇数据库[30],用于通过术语分离、停用词删除、词干化和术语相似性(同义词和hypo/hyperonymy)等方法进行标识符评估。结构评估考虑数据类型的等效性和子类型。这些评估的结果是一个接口匹配列表,其中IR中的每个操作都可以与IS中的一个或多个操作对应。此外,还计算了两个评估值:兼容性差距(涉及功能方面)和适应性差距(反映了所选服务的可集成性所需的功能)3服务选择的基于案例的这项工作通过CBR方法论的手段扩展了接口兼容性方案[1]。主要目标是以问题解决方案对的形式,将从连续服务选择中获得的知识捕获为一组案例。图2显示了CBR方法(改编自[1])。让知识库KB包含一组初始的案例研究。每个实例由一对(问题,解决方案)组成:问题是对某些功能的描述,关联的解决方案是填充该功能的候选服务(见下文)。一个新的C用例是一个问题部分(必需的函数),它必须与相应的解决方案(候选服务)配对。为此,根据相似性函数,第一步将C与KB中的所有问题部分进行比较。此步骤的输出是与C(检索到的实例)最相似的实例-即,具有最相似功能的配对(功能性,服务)w.r.t.C.然后,通过将检索到的案例的解决方案部分与作为问题部分的新案例C相结合,重新利用检索到已解决的案例是一对(必需的功能、服务)。此时,已解决的案例将作为建议的解决方案返回,专家用户可以对其进行审查。如果建议的解决方案在审查中获得成功,则它将成为已确认的解决方案(测试案例)。92A. De Renzis等人/理论计算机科学电子笔记321(2016)89图。2. 服务选择的基于案例的合理性如果失败,案件将被驳回。最后,最后一步决定是否在KB中包含已确认的解决方案(测试用例)。学习案例的决策可以依赖于不同的标准。在此方法中,我们在相似性函数上使用阈值值(th):如果相似性函数返回的值大于阈值,则将case添加到KB中。在下面的章节中,我们将描述CBR概念在Web服务发现和选择中的应用。3.1案例表示首先,它对于在服务选择的上下文中定义适当的用例表示至关重要。我们使用了一种面向对象(OO)的案例表示法,其中案例被表示为由一组属性值对描述的对象集合。面向对象的表示法适用于可能出现不同情况结构的复杂域[7]。[10]图3显示了服务选择的OO用例表示结构。正如早期所述,案例课分为两个部分问题部分捕获了需要由一个可以完成的服务来完成的功能性所需的函数性由三个简单属性和一个复杂属性的集合组成。 简单的属性是服务名称(字符串)、类别(字符串)和操作号(包括零的正整数)。 复杂属性是运算,它表示所需的运算符。选择。每个操作都包含两个属性-操作名称和返回类型(简单或复杂类型)-以及两个复杂属性集合参数包含两个属性:参数名称和参数类型(简单类型或复杂类型)。异常包含一个简单属性:TypeA. De Renzis等人/理论计算机科学电子笔记321(2016)8993nii1图3。 面向对象的案例表示法(字符串)。解决方案部分是一个简单的字符串属性候选服务,它表示与问题描述关联的服务的名称。3.2案例检索新病例以所需功能的形式作为输入提供给基于病例的推理器(图2)-即,以提供新病例。问题部分(Pn)。为了找到新情况的解,第一步计算相似性函数(DIST)作为知识库KB中对于case表示中的每个属性,我们定义了特定的相似性函数sim和weightswi(其中所有weightswi的和为1)DIST(CN,CN)=Σ(wi*simi(CN,CN))(1)其中CN是要评估的新案例,CC是KB中的候选案例。服务名称和类别服务名称和类别评估包括比较正在分析的新案例和KB中每个案例的问题部分之间这些属性的字符串值。相似性是使用一种用于标识符评估的算法来计算的,该算法考虑了标识符中术语的语义 服务名称和类别属性的权重较低(w = 0)。(1)因为它们不直接表达功能方面。操作数[编辑]数值计算运算包括比较正在分析的新案例与知识库中每个案例的问题部分之间的该属性的数值。[10]相似性是根据公式2计算的。KB中的候选服务(解决方案)的操作少于所需的功能(问题)被视为不兼容,被视为潜在的解决方案而不予考虑。94A. De Renzis等人/理论计算机科学电子笔记321(2016)89此属性的给定权重较高(w = 0)。3)因为它直接表达了一个功能方面(即,所需操作的数量Sim(#或pN)#操作C#opN<=#opC1)=其他方面0(二)其中#opN和#opC分别是KB的新实例和候选实例中操作号属性的值。操作运算演算计算新案例中的此复杂属性与KB中每个案例的问题部分中的类似属性之间的相似性。由于我们的服务选择方法的主要标准是功能相似性,因此此属性呈现最高权重(w = 0)。6)和这个基于案例的推理器中最复杂的相似性函数。操作属性的相似性函数的详细信息在第4节中给出。3.3案例重复使用和修订我们使用最近邻(1-NN)策略进行案例自适应,这意味着选择最相似的案例作为最佳解决方案[38]。因此,新案例中的解决方案部分将是解决方案部分(S)候选人服务然后,解决的案例作为建议的解决方案返回(图2),并可由专家用户进行审查。专家用户是指对正在构建的域和面向服务的应用程序具有高度了解的人员。因此,专家用户可以决定解决方案是否适用于目标应用程序,或者是否与底层域相关。否则,已解决的案例将被拒绝。因此,相关案例可能是KB初始状态的一部分专家反馈不是强制性的,但对于提高推理器性能和根据状态确定阈值值是必要的(即,在给定的时间内KB的实例数)3.4案例再培训此时,基于案例的推理器已将新案例与KB中所有案例的问题部分进行了比较,并(预期)找到了解决方案。在前几节中提出的属性相似性的条款。此外,该解决方案已由专家用户(即,专业用户)审查并确认为有效。这是一个经过验证的解决方案(测试案例)。下一步是决定是否将测试的案例添加到知识库中。[10]单凭这一点,太多的回溯案例会在评估中产生噪音,从而降低推理者在长期内的表现在另一方面,如果没有新的案例被添加,没有学习发生,那么推理者将无法处理新的案例。为了防止这些问题,我们在相似性函数(DIST)上定义了一个阈值值(th)阈值值的确定方法。A. De Renzis等人/理论计算机科学电子笔记321(2016)8995无论是否在知识库中重新训练(学习)了一个新案例。如果相似性函数返回的值大于阈值,则将该实例作为新的有意义的实例添加到KB中,否则将忽略该实例。目标是防止KB的不受控制的增长,同时提高推理器的性能。阈值值是一个可配置的常量,它取决于实施的原因和初始案例数。如果可用案例的初始数量较低(例如,如果可用案例的初始数量较低),则考虑到给定域中的服务总数),阈值值也将被设置为低,从而使推理者能够添加新案例并丰富知识库。[10]如果可用案例的数量在某个时间点内增长,则可以增加阈值值,以便仅添加具有显著相似性的新案例。4操作的相似性正如我们所述,操作相似性是根据潜在候选服务评估新案例的关键属性,这些服务作为案例包含在KB中。操作相似性评估考虑了从操作定义中提取的语义方面和结构方面。[10]结构方面涉及数据类型的等价性(子类型化),而语义方面则涉及术语和标识符中的概念。我们已经定义了三个操作相似性的实现,这些操作相似性主要在它们的语义基础上有所不同。这导致了用于操作评估的三个不同的相似性函数。在下面的章节中,我们描述了操作中每个元素的相似性评估:标识符、操作名(作为标识符的特殊情况评估)、参数、返回类型和异常。4.1案例研究一个简单的案例研究已经超出了说明我们的建议的关键步骤。我们考虑了CarRental域,其中所需的功能根据OO用例表示进行了描述(图3)。因此,图4a示出了一个新实例(newCase),其包含名为RentaCar的提议服务的描述。该接口定义了三种操作和三种复杂数据类型。请注意,newCase的解决方案部分没有实例化,因为该案例尚未评估。所需接口的功能性将通过与第三方Web服务的交互来充分实现KBcandidateCase中的案例包含CarRentalBrokerService服务的表示。候选案例定义了四种运算和三种复杂数据类型-如图4 b所示。这两种情况都是通过调整汽车租赁域中的真实Web服务4、5来说明我们的建议而构建的。4http://goo.gl/MC7uXh5http://goo.gl/LL0k0w96A. De Renzis等人/理论计算机科学电子笔记321(2016)89(a) 新案例实例化(b) 候选案例实例化图。4. Car Rental示例的对象案例表示4.2标识符的评估为了评估相似性函数的语义方面,我们比较了运算中的术语和我们为这些功能实现了三种替代方案。WordNet的前两个用法[30]。WordNet是一个独立于域的英语词汇数据库,其结构类似于一个词汇树。WordNet将表示相同词汇概念的术语分组为同 义 词 集 ( synonym set ) 。 几 个 关 系 - 船 舶 连 接 不 同 的 同 义 词 , 如hypo/hyperonyms,holonyms/meronyms和antonyms。所有层次结构最终都会转到根节点{Identity}。WordNetA. De Renzis等人/理论计算机科学电子笔记321(2016)8997表1用于分解标识符的表示法规则源结果Java Bean在更改文本大小写时拆分getZipCode get Zip Code特殊符号在"或"-"出现时拆分该结构可以通过不同的Java库访问,每个库都实现了不同的度量和特性[15]。特别地,在本文中,我们使用了JWI6(在第一相似性函数中)和JWNL7(在第二相似性函数中)。这些库是WordNet词汇树操作中最完整和最容易使用的库[15]。相似性函数的第三种选择是基于DISCO [22],这是一个预先计算的搭配和分布相似词的数据库。DISCO的相似性是基于对非常大的文本集合的统计分析(例如,[10])。维基百科),通过共同发生的功能。对于每个单词,DISCO使用Lucene索引存储相关单词的第一和第二顺序向量[19]。为了确定两个词之间的相似性,DISCO从索引中检索相应的词向量,并基于共现来计算相似性。接下来,我们描述了使用JWI、JWNL和DISCO实现的相似性函数。为了确定两个标识符之间的相似性,这些实现共享两个初步的共同步骤。因此,最初通过术语分离和停用词去除对两个标识符进行预处理[12]:术语分离[编辑]标识符通常被限制为ASCII码中的一个或多个字母、数字字符和下划线(" ")或连字符("-")的序列。该算法支持表1中的通常的编程命名约定-加上一个语义级别,以考虑不遵循这些约定的标识符。术语分离步骤分析标识符,识别潜在的术语(向上的百分位数序列和向下的百分位数序列)。然后,WordNet被用来分析所有潜在的术语,并确定最合适的术语分离。术语分离步骤对于将正确的术语视为语义分析的输入是至关重要的。举个例子。让它成为汽车租赁域中的标识符GDSCode。此标识符并不严格遵循Java Bean的表示法。一个初始分析识别出一个高位序列(GDSC)和一个低位序列(Ode)。然后,序列C + ode = Code作为输入提供给WordNet。 由于它是WordNet词典中的一个现有单词,Code被视为一个术语,GDS被视为一个首字母缩略词。6http://projects.csail.mit.edu/jwi/7http://web.stanford.edu/class/cs276a/projects/docs/jwnl/overview8http://www.linguatools.de/disco/disco-api-1.4/98A. De Renzis等人/理论计算机科学电子笔记321(2016)89(an全球分销系统(Global DistributionSystem)的缩写),也被视为一个术语。停止单词删除停用词是指在处理自然语言数据(文本)之前或之后过滤掉的无意义词[3]。我们定义了一个包含冠词、代词、介词、其他停用词列表中的单词和字母表中的每个字母的停用词列表。对从上一步获得的术语列表进行分析,以消除属于停止词列表的词的任何出现。举个例子。让我们考虑标识符AgencyHandledBy,该标识符对应于数据类型AgencyData中的文件。 根据Java Bean的表示法,标识符被分解为三个术语:[Agency,Handled,By]。由于4.2.1基于JWI的标识符评估方法JWI的实现包括三个主要的附加步骤:词干化、术语列表语义比较和标识符兼容性计算。词干化是将单词还原为词干、基或根形式的过程由于标准语法词干的常见问题[39],我们采用了WordNet提供的语义词干。Stemming步骤接收为输入一个术语列表。对于列表中的每个术语,都验证了其是否属于WordNet词典。 如果这样做,相应的词干将添加到结果列表中。另一方面,原始术语被添加到结果列表中,被认为是缩写或首字母缩略词。在生成两个词干列表之后,考虑语义信息来计算它们的兼容性。此信息表示为整数向量v ={\displaystyle v}。{t,e,s,h1,h2}包括:两个列表之间的总项(t),相同项(exact)术 语 ( e ) 、 同 义 词 ( s ) 、 超 词 ( h1 ) 和 次 词 ( h2 ) 。 例 如 , 让 标 识 符GetReservation和GetCurrent Booking从第4.1节中的Car Rental示例案例中提取。根据术语列表的语义比较,这些标识符呈现为:{\displaystyle {\}• 四个不同的术语:(获取、预订、当前、预订)• 一个确切的(相同的)术语:Get• 一个同义词:(预订,预订)• 无hypo/hyperonyms使用向量v中的这些值作为输入,根据公式3计算标识符兼容性值(IdentiersCompatibility Value)。ICV值= e+ s + 0。5*(h1+h2)t−s(三)举个例子。让标识符GetReservation和GetCurrent Booking从Car Rental的界面中提取,例如,通过替换F3中的值,我们得到:A. De Renzis等人/理论计算机科学电子笔记321(2016)8999图5。 WordNet层次结构中"紧凑"和"卡车"之间的长度ICV值=1+1+0。5 *(0 + 0)= 2 = 0。664- 1 3这表明标识符GetReservation和GetCurrent Booking之间的兼容性值为0.66-考 虑 到 IC V 值 的 最 大 值 为 1 , 获 得 的 值 表 明 标 识 符 之 间 的 兼 容 性 为 中 等到 强 。4.2.2基于JWNL的标识符评估方法JWNL实现根据两个主要的附加步骤来计算兼容性值:生成归一化深度矩阵和术语匹配最大化。首先,生成归一化深度矩阵(ND)。深度被定义为WordNet层次结构中两个术语之间的最短路径。这些值由WordNet层次结构的最大深度标准化(16)。形式上,归一化深度是根据公式4计算的。归一化深度(t,t)=2D−长度(ti,tj)(4)J2D其中long(ti,tj)= WordNet层次结构中ti,tj之间的最短路径,D是最大树深(16)举个例子。 图5显示了WordNet层次结构的一个例外,显示了车辆的不同类型。它表明,紧凑型和卡车概念车之间的长度是3,紧凑型和机动车之间的长度是2。这些值表明,紧凑型和机动车比紧凑型和卡车更相似100A. De Renzis等人/理论计算机科学电子笔记321(2016)89考虑到这个长度的概念,让我们考虑两个标识符GetReservation 和GetCurrentBooking(在第4.2.1节中讨论)。ND矩阵将是包含标识符中每个术语对之间的长度的2x3矩阵,如表2所示。 注意ND(预订,预订)= 1,因为这些条款。是WordNet层次结构中的同义词(它们的路径长度为零)。表2标识符GetReservation和GetcurrentBooking的归一化深度矩阵获取当前预订获取1.000.560.72保留地0.720.721.00越高越好。最大值和最小值分别为1和0在计算ND矩阵之后,必须选择最佳项匹配(在所有可能的成对组合中)-即,两个术语列表中的术语的组合使它们的兼容性最大化。对于两个列表之间的每个可能的成对项赋值(ti,tj),从相应的矩阵单元ND ij获得相似性值。每个可能的术语匹配的值是组成它的所有成对赋值的和(assignSum)。与最高值的匹配是通过匈牙利方法获得的[23],这是分配问题的一个实例。最后,使用JWNL的标识符兼容性值(ICV值)是根据公式5计算的,公式5根据所分析的标识符中的最大术语数来加权术语的成对赋值的总和。ICV值= 最大分配数(n,m)(5)其中n和m是两个术语列表中的术语数。举个例子。考虑表2中所示的ND矩阵,使标识符之间的兼容性最大化的术语匹配由以下成对分配组成:{{\displaystyle {\displaystyle {2}• [Get,Get],存储在ND单元格1中,1 = 1。00• [预订,预订],存储在ND单元格2中,3 = 1。00然后,替换公式5中的相应值,兼容性值be-tween identiersGetReservation和GetCurrentBooking的计算方法如下:ICV值=1+1=最大值(2, 3)2 =0。663A. De Renzis等人/理论计算机科学电子笔记321(2016)891014.2.3基于DISCO的标识符评估基于DISCO的实现根据两个主要步骤来计算兼容性值:共现矩阵的生成和术语匹配最大化。首先,生成共现矩阵(Co-ocurrences matrix,Co)。此矩阵包含两个术语列表中每个术语之间的相似性值。这些值是应用DISCO 的co-ocurrences similaritynotion的结果,解释得更早。在计算Co矩阵之后,必须选择最佳项匹配(在所有可能的成对组合中)。与基于JWNL的实现类似,此步骤使用Co矩阵作为匈牙利算法的输入。与最高值的匹配将是最兼容的。这种匹配也是通过匈牙利方法获得的-在第4.2.2节中最后,根据公式5计算使用DISCO的标识符的兼容性值。举个例子。让我们考虑一下上一节中的标识符对-命名为GetReservation和GetCurrent Booking。Co矩阵将是一个2 x 3矩阵,其中包含标识符中每个术语对之间的共现值,如表3所示。请注意,当使用DISCO而不是WordNet时,同义词不会呈现1的共现值,因为它可能会被视为对(保留,预订)。表3标识符GetReservation和GetcurrentBooking的共现矩阵获取当前预订获取1.000.0060.02保留地0.010.010.1越高越好。最大值和最小值分别为1和0考虑表3中所示的协矩阵,使标识符之间的兼容性最大化的术语匹配由以下成对分配组成:• [Get,Get],存储在单元格Co1中,1 = 1。00• [预订,预订],存储在单元格Co2中,3 = 0。1然 后 , 替 换 公 式 5 中 的 相 应 值 , 兼 容 性 值 be-tween identiersGetReservation 和GetCurrent Booking的计算方法如下:ICV值=1+0。1 =最大值(2, 3)1.13=0。364.3返回类型数据类型等效性数据类型等价性的条件涉及包含关系或子类型化,这意味着在Java语言[18]中内置类型的情况下直接子类型化,如表4所示。这是预期的类型上的操作从102A. De Renzis等人/理论计算机科学电子笔记321(2016)89新案例的准确性至少与候选服务中的操作类型一样多(KB中的案例)。例如,如果op N她家包含int类型,则对应的操作op C她家的candidateService不应具有类似于短字节或字节的较小类型(许多数字类型)。然而,字符串类型是一种特殊情况,它被认为是通配符类型,因为它在实践中被程序员广泛用于分配不同类型的数据[31]。因此,我们认为String是任何其他内置类型的超类型。表4子类型等效性OPN类型OPC类型字符串字节短,int,long,float,double,字符串短,int,long,float,double,字符串int long、浮点数、double、字符串长浮动、双浮动、字符串双字符串复杂数据类型复杂数据类型意味着一种特殊的处理方式,其中包含的文件必须与来自复杂类型对应方的文件一对一等效。这意味着操作N她家的复杂类型的每个文件必须匹配操作C她家的复杂类型的一个文件,尽管新实例的额外文件最初可能会被排除在任何对应项之外返回类型相似性值是根据以下情况计算的:{\displaystyle {\}• Ret= 3:等于返回类型。• Ret= 2:等效返回类型(子类型、字符串或复杂类型)。• Ret= 1:非等价复杂类型或精度损失。• Ret= 0:不兼容。举个例子。 图6显示了CarRental示例中两种复杂类型的field-to-field等效性(仅考虑数据类型),其中包含有关预订取消率的信息。CancelInformation类型的三个文件与CancellationCoverRate类型的三个文件具有一对一的对应关系。 点箭头表示字符串类型之间可能存在的对应关系。 对于此示例,返回类型相似性值为Ret= 2。A. De Renzis等人/理论计算机科学电子笔记321(2016)89103Type(Pi)=T ype(Pj) Tij=2⎩图。6. CarRental示例的复杂数据类型的等效性4.4参数评估[编辑]参数计算的算法包括计算三个矩阵:Type(T)、Name(N)和Compatibility(Comp)。对于三个矩阵,单元Mij表示opN的第i个参数和opC的第j个参数之间的兼容性值-其中op N是所需函数的操作(新情况),op C是候选服务的操作(KB中的在T矩阵中,结构数据类型等价性和子类型化的概念被用来评估参数类型。T矩阵的目标是存储来自两个操作的参数类型的所有对之间的关系。根据公式6,单元Tij包含opN的第i个参数类型和T ype(Pi)<:T ype(Pj)Tij=1。5其他方面Tij= 1Where:代表微妙的关系(六)矩阵N包含来自操作N的每个参数的名称与来自操作C的每个参数的名称之间的兼容性值。基本原理类似于T矩阵的基本原理。单元格Nij包含操作N的第i个参数名称和操作C的第j个参数名称之间的兼容性值此值是应用第4.2节中介绍的标识符评估算法的结果。因此,这些值取决于从三个备选项中选择的相似性函数的实现然后,从T矩阵和N矩阵生成补偿矩阵。比较矩阵的目标是存储运算opN和opC的所有参数对之间的兼容性值,同时考虑分别在T矩阵和N矩阵中收集的结构和语义方面每个Cell Comp ij存储T ij和N ij之间的产品。因此,Comp ij= T ij* N ij。在计算补偿矩阵之后,最佳参数匹配(among all可能的成对组合)必须被选择-即,必须被选择来自操作N和操作C的分支机构的组合使它们的兼容性最大化。此步骤应用匈牙利算法来计算最佳成对参数分配-104A. De Renzis等人/理论计算机科学电子笔记321(2016)89sim(CN,CC)=i=1iN4.5例外情况例外的结构性条件按以下方式计算。首先,任何操作N都可以定义默认例外-即,使用异常类型-或ad-hoc异常。类似地,来自候选用例的操作C可以将fault(操作的非标准输出的SDL名称)定义为包含特定属性的消息,而不是将fault定义为包含特定属性的消息。例外情况相似性值是根据以下情况计算的:{\displaystyle {\}• Exc= 1:操作N和操作C具有相等的数量、类型和异常顺序。• Exc= 2:操作N和操作C具有相等的数量和类型,用于列表中的例外。• Exc= 3:如果nonemptyopN异常列表,则nonemptyopC异常列表。• Exc= 0:不支持操作N和操作C事实上,在Web服务的上下文中,默认定义并没有成为一种常见的做法[8]。然而,基于案例的推理者考虑这个简单的方案来分析例外情况。举个例子。根据不同的车辆和条件(来自第4.1节中介绍的案例),让我们考虑以下操作,以获得汽车租赁的费率:• getCarFee(requiredCarSupplements:CarSupplements):费用通过不可用的SupplementsException;• getRate(currencyCode:String,vehicleTypeId:long,AutomaticGearPreference:布尔值:Rate throws vehicleNotFoundException,rateNotFoundexception;如果我们分别将getCarFee视为opN她家和getRate视为opC她家,则异常分析表明,所需操作抛出一个异常,该异常在候选服务的操作中可能具有两种可能的异常(形式不同的类型),如案例(2)中所定义4.6相似性值根据公式7计算两种情况(CN,CC)之间的相似性值。ΣN(最大值(simOp(opN,CC)其中N是CN中的运算数,simOp是CC中所有运算C的最佳等价值simOpV alue(opN,opC)J J J根据公式8计算运算opN和可能兼容的运算opC之间的运算相似性值(simOpV值)。simOpV值(opN,opC)=Ret+Exc+Name+Par(8)J J(七)A. De Renzis等人/理论计算机科学电子笔记321(2016)89105表5与汽车租赁案例相RentaCar(新案例)CarRentalBrokerService(候选案例)SimOpV alue*getReservationgetCurrentBooking7.3getCarFeegetRate2.4保留地取消取消预订6.4sim(newCase,candidateCase)5.4* 越高越好表6所需计算的属性权重*评估 结果 *服务名称(公式3):s N0。ICV(CarRental、CarRentalBrokerService)0. 5类别(三级方程式):Cat0。1ICV alue(商务、商务)1运算数(公式2):#op0。3sim(3,4)1运算(公式7):运算0。6sim(CarRental,CarRentalBrokerService)4* 所有权重之和为1。重量越大,属性越重要** 越高越好。举个例子。让我们考虑一下第4.1节中介绍的汽车租赁案例研究的全部案例。表5显示,对于每个必需的操作opN摘自newCase,操作opC摘自candidateCase在候选Web服务的接口中具有更高的兼容性(根据它们的adapOpV值)计算是使用通过JWI库访问的WordNet语义基础完成的由于最高(更好)sim值为8,因此所获得的sim值(5.4)可被视为中等到高。在获得运算的相似性值之后,我们可以根据公式1计算4中呈现的病例之间的距离。表6显示了获得距离值所需的计算的总结。让be新案例CN=CarRental和候选人案例CC=CarRentalBrokerService两个案例之间的距离为:DIST(CN,CC)= 0, 1*sN + 0, 1*cat + 0, 3* #op+0, 6*opDIST(CN,CC)= 0, 1* 0, 5+ 0, 1* 1+ 0, 3* 1+ 0, 6* 5, 4106A. De Renzis等人/理论计算机科学电子笔记321(2016)89DIST(CN,CC)= 3, 695实验评价本节描述了在前几节中介绍的用于服务选择的CBR的实验评估。 实验的目的是在比较条件下衡量CBR的三种替代实施方案在服务选择方面的总体性能。我们采用了一种经验性的、自动化的和广泛使用的方法[6,16,28,36]。我们的假设是,用于服务选择的CBR可以提高与某些所需功能最相关的服务的可见性。5.1实验配置[编辑]所考虑的数据集由从[20]的数据集提取的62个服务组成根据第3.1节中介绍的面向对象的用例表示,我们(通过我们小组开发的工具)为每个用例生成了一个用例,以设置初始KB。首先,我们从62个相关服务中提取了操作签名。每个新实例由表示所需功能的三个操作组成。然后,我们应用接口突变技术[17]生成了506个新案例(仅限问题部分)。我们对每个运算符应用了三个突变运算符9:• 封装• Flatten• Upcasting5.2基于案例的推理执行[编辑]为了执行用于服务选择的CBR,我们已经定义了一个场景,考虑了根据第4节中给出的相似性函数的三个实现,以及通过改变操作签名生成的506个新案例。考虑到服务检索和选择的传统技术,我们还在EasySOC服务注册表[10]中填充了相关服务,然后在该注册表中查询了操作签名。EasySOC利用向量空间模型(VMS)和Web服务查询示例(WSQBE)来表示Web服务描述和查询。执行用于服务选择的CBR的三个版本,以对检索到的案例进行排名。最后,每个新案例的结果都是用两个术语来衡量的。9https://code.google.com/p/querymutator/A. De Renzis等人/理论计算机科学电子笔记321(2016)89107众所周知的信息检索指标:回忆和准确性在n。5.3结果将结果列表视为每个查询检索到的前10个案例,我们根据n时准确性和检索结果进行了比较。精确度-at-n指示在哪个位置将检索到相关服务,在diferent cut-o-defints。例如,如果前五个文档都与查询相关,而后五个文档都不相关,则5时准确率为100%,而10时准确率为50%。在本例中,已为[1-10]中包含n的每个查询计算了召回从形式上讲,召回定义为:召回=相关的R其中Relevant是结果列表中包含的相关服务的数量,以及R是给定查询的相关服务的数量。特别地,对于该实验,回忆公式的分子可以是0或1– and the denominator (Retrieved) is always图7a详细说明了CBR方法(基于JWI、JWNL和DISCO)和EasySOC注册表的三种实施方案在n(n=[1,10])时的累积平均准确度。对于任何实现,服务选择的CBR对于结果的第一个位置(n = 1)获得了超过90%的准确度值。此外,三种CBR实施方案的准确性之间的差异并不显著,但这并不意味着它们之间的差异。对于结果列表中的第一个位置,服务选择的CBR超出EasySOC登记研究的20%至40%(n=[1,4])。图7b显示了基于CBR的服务选择和EasySOC注册表的三个实现的召回结果。结果表明,无论实施情况如何,服务选择的CBR都具有较高的召回率-这意味着给出的问题的相关案例几乎总是被检索到的。服务选择的CBR比EasySOC的召回结果高出约10%,尽管EasySOC在召回方面表现良好,具有很高的竞争力(超过85%)5.4讨论会实验结果表明,我们的CBR服务选择ap-proach实现了高精度,并与相似性函数的三种替代实现相匹配。[10]
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功