论文研究-基于接口匹配的服务发现方法 .pdf

所需积分/C币:5 2019-08-15 12:31:35 667KB .PDF

基于接口匹配的服务发现方法,闫海,赵耀,随着互联网上Web服务的大量出现,Web服务的应用也越来越广泛。如何从大量的Web服务中快速选取用户所需要的服务,成为了一个亟待解决
山国武花论文在丝 节点,而成为个能够被用户容易的发现和使用的服务网络,对于服务的推广和发展 有着重要的意义。因此,近些年米有许多的国内外学者针 服务发现的问题展开研究, 也提出了许多卓有成效的服务发现方法 尽管提出的方法众多,但归结起来,主要可以分为两大类:基于非功能性描述的服 务发现和基于功能性描述的服务发现。 基于非功能性描述的服务发现 主要考虑服务的一些非功能性因素,如服务的 上下文等 随着服务技术的发展与互联网应用的普及,服条的数量日渐增多,越来越多 的服务的功能互相重叠。因此,用户在使用服务时有了史多的选择空间。当存在多个 服务都能够在功能上满足用户需求吋,就需要通过服务在非功能属性上的区别来选择最优秀 的服务。服务质量是服务最主要的非功能属性,也是当前的服务选择乃至服务计算研 究中的重点和热点话题。通过对服务质量的限定和选择而得到的服务通常可以更好地 满足用户的需求。目前,对于服务的服务质量参数主要集中与服务的价格、执行周期 声誉、可阜性、安全性等方面。 基于功能性描述的服务发现和可以分为基于语法级的服务发现技术和基于语义 级的服务发现技术。 基于语法级的服务发现,就是基于关键字的服务发现。这种服务发现技术主要基于 协议,是一种集中式的注册与查询机制。各个服务提供者将服务信息注册到一个 注册服务器上,各个服务请求者向 服务器发送查询请求,寻找已注册的符合要求的 服务。这种集中式的技术在可靠性、可扩展性以及性能等方面都存在缺陷。在可靠性 方面, 注册服务器成为了整个服务发现机制中最关键的部分,如果注册服务器 崩溃或停止提供服务,整个服务注册发现机制就将完全失效,服务提供者将无法有效地推广 自己提供的服务信息,而服务使用者也将无法寻找已经发布使用的服务。在可扩展性 方面,单个节点可以承受的储存和运算负荷终究是有限的,而服务的数量与用户数量 却几乎可以无限增加ε依靠集中式的服务器来应对急剧增加的服务注册与发现请求,显然是 不合适的。为了弥补集中式服务发现方法的不足,也有一些研究者提出了一些分布式的服务 注册与发现的方法,如 等。但这些方法也并不能完仝解决注 册方法存在的问题。 将服务相关者组织成多个域,为每个域制定若干个代理结点负 贲发送和接受服务信息和查询请求。虽然 避免了单个服务器失效导致整个服务发 现系统崩溃,但代理结点的失效仍然会导致相关域的服务注册和发现完全失效此外, 基于广播和多播传输,当域的数量线性上∫吋,代理结点的负载呈指数形式上丌, 可扩展性有限 和都将服务注册信息层次式的储存在不同结点中,其服务注册与 发现方式与系统有相似之处。但这些方式的缺陷在于,当某个高层的服务注册结点失 效时,处于该结点下层的所有注册结点也会同时失效,从而严重的影响服务发现的效果 除了本身的服务器问题,从用户角度来说,不用用户对某个领域的事物以及事物之间 关系的认知角度和层次是不一样的,这样可能导致服务请求者和服务提供者认识的服务有偏 差,也有可能服务请求者对某个领域的事物认识不够而漏查了某些内容而遗漏了有关的 服务,这些都可能影响服务发现的查全率和查准率。 基语义级的服务发现技术,就是将语义与与服务结合,建立服务描 述的共同知识集,来消除服务描述过程中的语法和语义的异构性。 提出 语义服务发现过程的概念模型并将该过程划分为三个阶段第阶段是将用户具体的需求描 山国武花论文在丝 述中抽象成般性的目标描述第二阶段是将提取的目标描述与语义标注的服务进行匹 配第三阶段是从搜索结果中精炼出实际满足需要的可用服务。服务对于语义信息的描述有 多种方式,例如上文提到过的 。文献是由美国卡内基梅隆大学的智能软件实验室 提出的第一个基于 的服务发现方法。该方法采用 中的 描述用户需求,并将该描述与已注册的服务的 进行匹配。 考虑上下文的服务发现主要结合用户的一些环境及喜好问题,返回给用户更加匹配的服 务。如在服务的功能要求几乎相同的情况下,可以考虑用户的地理位置,优先返回给与他位 置更接近的服务提供商提供的服务。 相关工作与本文研究的关系 本文提出的基于接口匹配的服务发现方法将同时考虑服务的功能性描述和非功能性描 述两部分因素。对于本方法而言,功能性因素就是指用户的服务请求的接口描述和待匹配服 务的接口之间的匹配程度,非功能性因素就是指服务的和用户的地理位置信息。 在服务发现过稈中,我们首先根椐接口匹配程度获得淸足条件的服务结果集,然后综合 考虑服务的和用户的地理位置对用户调用服务所带来的影响,最终给出一个合理的最 满足用户需求的服务集。 接口匹配子系统的需求和设计 基于接口匹配的服务发现的提出 在木文中,我们提出一种新的服务发现方法,不同于之前的基于关键字匹配或基」语义 描述的服务匹配,夲方法在进行服务匹配的时候考虑服务的接∏和对接冂描述的匹配程度, 即用户只需描述自己的功能需求并提供必要的输入信息,系统就能自行寻找到满足用户需求 的一个或多个服务,并将这些服务按照一定的原则排序返回给用户。在此过程中,整个服务 的匹配过程都是透明的,用户不需要关心需求是如何被满足的,而只需要关心如何提供输入 和利用输出信息。对用户而言,用户的输入措述的是对需求服务的输入输出接口参数的措述 及类型,系统在进行服务匹配的时候,匹配出以后服务集合中满足该接口匹配要求的服务, 匹配过程中,考虑到不同用户对于同一服务接口参数的认知的差异性,因此在匹配时要考虑 参数的语义因素,对用户输入的参数描述和服务描述文件中的接口参数的描述进行语义比 较 随着联网上提供相似功能服务日渐增多,用户在进行服务选择时有了更多的空 间。当存在多个服务都能够在功能上满足用户的需求时,就需要通过服务在非功能属性上区 别米选择最优秀的服务。本文中,考虑的非功能性因素主要是服务的,主要对应服务的 响应时间、可靠性和安全性等因素 服务搜索引擎整体需求说明 本项目依托国家高技术研究发展计划(计划)信息技术领域重大项目中“融合网终 业务体系的廾发”课题(课题编号: )的研发工作。笔者在其中承担基于接 ∏匹配的服务发现了模块的设计与实现。 服务搜索引擎是一种垂直化的搜索引擎,垂直搜索引擎是针对某一个行业的专业搜索引 整,是相对通用搜索引擎的信息量大、査询不准确、深度不够等提出米的新的搜索引擎服务 模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相 山国武花论文在丝 关服务。 所以服务搜索引擎即具有通用搜索引擎的特点,又必须专注于服务本身的领域特 性。服务搜索引擎结构如下图所示。 索引 服务测量 肢务QS 志 服务推荐 Web服务 服务索弓 日志 服务查询 服务爬虫 服务聚类 与排名 与索引 服务索引 用户 服务文档库 紫引,服务接口 服务文档库 匹配 服务文档库 数据侧 用户侧 图服务搜索引擎结构图 从服务搜索引擎结构图中可以看岀,服务搜索引擎具备通用擭索引擎三个最基本的组 件:爬虫处理、索引处理和查询处理。同时为了提供更好的用户伓验,还附加了另外三个功 能组件:服务测量、服务推荐和服务接口匹配 服务搜索引擎的部署如下图所小: 88 Web服务爬虫 Web服务 服务搜索 接口匹配服务素引服务排名服务推荐 服务测量管理 测量节点 图 服务搜索引擎部署图 接口匹配子系统的需求 笔者在服务搜索引擎系统中承担的工作为接口匹配子系统的设计与实现。接口匹配子系 统的目的具体来说就是提供一种基于接口兀配进行服务发现的方式,该服务发现方式以用户 提供的对接口格式的描述为输入,返回的一个符合用户需求的服务集合。该部分的功能需求 有如下几点: 接口匹配过程中参数名称的语义比较 由于用户不可能像服务发布者样对发布的服务有着较深理解,因此可能会造成不同用 户对同·服务主管理解上的差异性,因此在进行服务接∏匹配的过程中,要充分考虑接∏参 数的语义因素,比如用户期望搜索一个与天气相关的服务,他想通过输入地理位置米得到该 山国武花论文在丝 地的大气,服务的输入为类型的 ,输出为类型的 ,而实际的服 务集合中已有的一个服务输入为类型的 输出为类型的 那么 很明显,该服务应该与用户的需求匹配成功。这里就需要考虑 和 在语义上 的匹配。 接口匹配过程中参数类型的比较 文件中的分为两种:基本类型和复杂类型。原始的数据类型就是如 这样的基本类型,基本类型的比较比较容易。复杂类型的定义如同语言甲的, 复杂类型由多个基本类型组合而成。在接口匹配的过程中,除了对简单类型之间可以进行类 型相似度比较,对复杂类型之间、复杂类型和简单类型之间,也应该可以进行相似度比较, 提供·种衡量类型相似度的方法。 基于接口描述进行服务发现 服务搜索引擎中接凵匹配子系统最重要也是最根本的目标功能就是实现基于用户对接 口的描述进行服务发现,在服务匹配的时候重点考虑接口匹配的功能性因素,辅以服务的 和上下文等非功能性因素。 对服务结果集合进行合理排名 根据服务匹配算法最终返回的满足条件的服务集合列表可能是多个服务,因此需要一个 合理的排序杋制对服务结果进行排名,将最能满足用户需求的服务优先呈现给用户。 接口匹配子系统的总体设计 下面是接口匹配子系统的体系结构图。 服务爬虫 前端呈现模块 KD服务集 输入适配模块 接 WSDL解析模块 接口匹配了系统 配 子 参数名称比较 功能性因素 系 SDL服务集 接口描述 参数类型比较 卡功能性因素 WDL文件处理模块 接口匹配模块 服务排名模块 服务测量 控制流 山国武花论文在丝 图4接口匹配子系统体系结构图 由上图可以看岀,服务搜索引擎中接口匹配子系统⊥要分为以下五个模块:前端呈现馍 块、输入适配模块、 文件处理模块、接口匹配模块和服务排名模块。 基于接口匹配的服务发现方法的研究 服务发现过程中最核心的步骤就是服务匹配,对于本文提出的服务发现方法,服务匹配 过程中使用的匹配算法为接口匹配算法,该算法主要考虑了两个接口的功能性因素,主要包 括接口的参数个数、接口的参数名称的语义、接口的参数类型等因素,然后综合考虑各部分 所占权重给出一个综合的功能性匹配度。 问题描述 每个完整的服务可以包含多项功能,每项功能对应个操作,本系统中,接∏的匹 配实际是对操作的输入输岀接凵进行的匹配。操作的输入消息和输出消息定义了服务的 接口。在文档中,消息参数的数据类型用 元素定义,一个 元素是由 多个 中的元素组成的,操作又是由多个消息组成的,如 和 。两个接 口的相似度取决于他们的输入接口和输出接口相似度的综合,在文件中,输入输出接 口以 的形式给出,分别为 和 。而两个消息的相似度 取决于消息参数列表的相似程度,包括参数名称和参数类型。 措述的数据类型是 儿素 元素的类型可以是原始数据类型、简单数据类型或复杂数据类型。原始数据类 型是内置的可以直接使用的数据类型,如字符型、布尔型和数值型。简单数据类型和复杂数 据类型是用户通过模式语言定义的。我们利用文档已经提供的信息进行接∏匹配,在 本系统中,我们考虑的因素主要有两方面,功能性因素和非功能性因素。功能性因素主要是 指接凵的参数个数、接凵的参数名称、接凵的参数类型等,这也是根据接凵匹配比较服务之 间相似度的主要依据;非功能性因素主要是服务质量的一些性能指标,如响应时间、使用费 用和可靠性等,非功能性因素主要用户对最终的满足条件的服务结合进行排名,返冋给用 性能、费用最佳的服务 根据以上所提的在接口匹配过程中所需考虑的因素,我们将服务和操作的描述分别 进行抽象。 定义个服务是个三元组S=(n,d,P)其中: 是该服务的名称。 是该服务的文本描述信息。 P=(n1,p2Dn)是该服务中的操作集合。 对于服务中的操作,进行如下抽象定义 定义一个操作尸是一个三元组P=(n,,O),其中 门),是该操作的名称。 1=(1,12)是该服务的输入消息集合:O=(3,O2O)是该服务的输 出输出消息结合。I∪O统称为服务的接口集合 令Sman表示服务间的的功能性因素相似度,S/mnn-tnc代表候选服务的非功能性因 素,Simm和 Sim-mn都事先被归一化到之间,那么定义基于接凵匹配进行服务发 山国武花论文在丝 现的公式 W=k×Sim k)×Smnn-1mc 公式中的参数k和k分别代表接口功能性相似度和非功能性因素所占比重,可以 根据用户的需要进行调整 其功能相似度指操作的接口之间的相似度,主要比较其参数名称和参数数据类型,对 于参数的名称,要充分考虑其语义因素。定义服务的功能性因素的相似度公式为: im f(1,∵2 m m)×s1 ll Datatype1 公式中的和值分别表示接口的名称相似度和类型相似度,可以根据用户的需求 进行调整 服务的可由本系统的服务测量子系统得到,服务的接口名称相似度和接口参数类型 相似度需要计算获得。在接下来的章节中,我们将分别讨论接口名称的比较和接口参数类型 的比较,最后给出一个总的算法描述 参数名称比较 在对两个接∏的参数名称进行比较时,考虑用户对于服务的认知程度的差异性,我们只 考虑他们的语义因素。我们按照如下步骤比较参数名称的相似度: 我们选取由音林斯顿大学研究的开放本体 直接使用算法求解他们的语 义相似度 语义相似度计算方法结合了元素的信息内容 和元素的最普遍 共同包含内容 元素。方法计算如下 Sim,,, e,)= 2x(C(lese,e2) 2xloglp(s) C()+C(2)log((s)+1o(s2 式中, 是单词随机出现在词汇或者仨何了类词汇里的概率,是 中的单词数量。 这个方法的优点是可以处理当和 同时为的情况这样分母为时相似度 无法测量表示两个元素缺少数据因此相似度无法计算。另外该公式计算出来的结果范 围在之间在语义相似度的取值区间范围之内不再需要进行标准化校准。因此,本文 采用语义相似度计算方法计算参数名称之间的相似度 参数类型比较 服务操作的输入输出参数关型都是按照 定义的,其中的数据类型分为 原始数据类型和复杂数据类型。对于参数类型的比较,我们参考文献里有关参数类型 比较的研究。 对于原始数据类型,两个原始数据类型可以是兼容、半兼容或者完全不兼容的。兼容的 数据类型包括相冋或相似的数据类型,比如和半兼容的数据类型是指彼此在一定 稈度上相似的数据类型,例如和下式说明了原始类型匹配分数的计算方法 如果两个参数值类型是兼容的 08如果两个参数类型值是半兼容的) 0(如果两个参数值类型不兼容) 对于复杂数据类型,复杂数据类型是用户自定义的数据类型,它包含了多个子元素或者 山国武花论文在丝 属性。我们简单地将属性作为元素来处理,通过匹配其中的所有了元素和属性,计算其平均 值作为复杂数据类型匹配分数。以下图所示的两个复杂类型为例 kc omplexType name=Item Element name="quantity" type=int"/> e1 em ent tame=" pr o duct"typ" string“了 a11 V complexT 图5复杂数据类型 complexType name="productParts"> Element name="amount tspe=int ,ing"/> element th > 图6复杂数据类型 为了计算上面两个复杂数据类型的相似度的值,我们构建一个2×2的矩阵,如表所 矩阵中每个单元格的数值,表示相应行和列的两个简单数据类型之间的匹配分数。假设 我们得到如表所示的匹配结果,那么 中的应当和中的 匹配, 兀配分数为 应当和 兀配,匹配分数为。如果一个复杂数据类型中 又包含乃外一个复杂数据类犁,匹配过程将递归进行处理。 表类型比较表 复杂数据类型总的匹配分数等于它的了元素匹配分数的平均值,如下式所示。根据衣 中的结果,和 之间的匹配分数为 0.8+0.6)/2=0.7 ∑ simplevalue lype 其中的表示矩阵中非零值的个数 算法描述 我们把用户对于需求服务的描述称为用户请求服务。对接冂匹配算法的矿究,我们参考 文献中对接口匹配部分所作的一些研究成果。 对于用户请求,是指用户对于需求目标服务的描述。由于本章节关注的是服务的功能性 因素,因此本小节部分暂时不考虑的因素。给出服务请求的定义如下: 定义服务请求用户对所需服务的一个服务请求可以描述为一个二元 (",O3),其中 ·是用户能提供的输入集合,即用户对于日标服务的输入接口的参数名称和类型描述。 O是用户能提供的输出集合,即用户对于目标服务的输出接口的参数名称和类型描述 定义匹配操作给定一个服务的一个操作=(n,,O)和一个服务请求 山国武花论文在丝 r=(z,0-)若与之间的相似度Sm(,)≥,则称操作为服务对用户请求的 个匹配。其中0是一个阈值。本文中我们的阈值设为。 定义最佳匹配操作给定一个已有服务,中有若干操作,用户的一个服务请求为, 称是对的一个最佳匹配操作,当且仅当对于v;∈S满足sip,r)≤sip,r) 定义服务接口匹配对于一个服务和一个用户的服冬请求,对于的最佳匹配操作为 pn若Si(p,x)≥O,则称服务与用户的服务请求是接口匹配的。6取值同定义中 按照上面的定义,我们对于一个用户的服务请求和一个服务,我们的匹配算法进行接口 配的操作时,要首先得到整个服务中对于服务请求的最佳配操作然后看Sipn,r) 与阈值θ的大小。若大于θ值,那么我们认为接口匹配成功:否则,接口匹配失败。 根据上述描述,提出我们的 接∏匹配算法。算法的输入是个 服务和个服务请求,返回的是服务请求与服务的接∏匹配的值,若果不满足服务接冂匹配, 返回 表服务接凵匹配算法 2,0 服务与服务请求的接口匹配程度 Maxsimliaralue D Sim(p, r)> MaxSimliarvalue MaxSimilaryalue -psIm(p,r Maxsimilaralue≥b Max simi lue 上述算法中第行至第行是对与服务中的每一个操作和服务请求做相似度比较操作,最 终得到个服务对于请求的最佳匹配操作。第至行行看该最佳匹配操作是否大于事先设 点的接凵匹配的阈值,如果大于,则返回该值;否则,返回。表示接山匹配失败。其中用 到的操作相似度的比较算法算法如下所示 表操作相似度比较算法 m(,r) 1<

...展开详情
img

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源