一种web服务发现方法介绍
2020-03-22
(华北电力大学控制与计算机工程学院 北京 102206)
引言
Web服务是和一个平台无关的,低耦合的,可编程的web应用程序,可以通过可扩展标记语言的标准来描述、发布和发现。其经常被用来开发分布式的应用程序。Web服务技术可以使得在不同环境下的应用无须借助第三方软件和硬件,就能相互集成并执行具体的业务功能。目前,web服务技术在Internet上发挥着巨大的作用。Web服务被提出时预想其对于web上的应用的性能应该有一个重大的提升。但是,目前的提升还是没有达到预期。一方面,web上服务的数量比期望的要少很多。另一方面,大量的关于web服务的研究集中在基于关键字或者基于语义的发现来提升服务匹配的数量和质量。此外,通过最近的文献可知,大多数发布在web上的服务没有被使用,只有一小部分被发现,组合,调用。本文提出一个方法将孤立的服务连接起来形成一个服务网络,来支持服务的社交活动。
一、web服务网络的建立
(一)web服务的网络
构建服务网络时我们用到服务的功能属性,服务的社交属性。服务的功能属性是一系列描述服务任务的属性,包括服务名和输入输出。Web服务,语义web服务和web APIs都是服务的模型,但其仅仅考虑了服务的功能属性和QoS而没有考虑服务的社交活动。语义web服务给以前的服务发现方法带来了很大的革新,但是现有的服务之间并没有社交关系。在本文中,我们提出一个方法来将单独的服务连接成为服务网络。使用连接的质量来描述服务的社交关系并以此来支持服务的社交活动。
一个web服务的网络是一个能够反映服务社交活动的服务网络。它的结构是一个有向图G=
服务网络通过社交链路将服务连接成为网络。一方面,加强了服务的社交性,更加有利于服务的发现和组合。另一方面,服务网络将服务的社交属性形容为社交关系和社交状态,能够反应真实的社交情况来加强用户分享,组合和推荐的意愿来提高服务发现的质量。
(二)参数相关性
给出服务si和服务sj,参数相关性
表示了si的输入和sj的输出重合的可能性,即si和sj之间有链路的可能性。
二、基于服务网络的服务发现
(一)服务发现存在的问题
传统的服务发现方法,比如基于关键字的,基于语义的,服务都缺少和服务调用者的联系。服务调用者不能参与到服务发现的过程中。此外,服务被发布为孤立的服务,所以服务与服务之间也没有联系。这使得目前的服务发现方法不能引导用户从一个服务发现另一个可能和其组合的服务。考虑一个应用场景,一个病人感觉到不舒服。他首先得知道他得了什么病,然后得知道哪一家医院可以治疗这个病。他还得知道医院附近酒店和饭店的信息,因为他得在医院治疗一段时间。最后,他还得知道从医院去酒店和饭店的路线。没有单个的服务可以满足这个情景里的所有需要。为了满足这些需求,多个服务需要被发现并组合。可以满足上述需要的服务集合如下,首先,他需要“诊断服务”来根据他的症状给出诊断。然后,需要“获得医院信息服务”来得到能够治疗他健康问题的医院的信息,需要“获取位置信息服务”得到更多的地址信息。之后,需要“获取酒店信息服务”与“获取饭店信息服务”来获取酒店与饭店的信息。最后,根据得到的地址,需要“导航服务”来获得路线图。为了发现可以满足复杂请求的服务,我们提出一个新的服务发现方法。
(二)服务发现方法
就像我们使用链接数据来重用数据,从相关的数据集发现数据或者从大量的数据资源中集成数据一样,链路可以用来做服务发现。本文的服务发现方法,允许用户从一个服务出发沿着链路找到其他相关的服务,这样用户就可以更加深入的探索网络。本方法允许用户根据自己的需要沿着链路发现相关的服务,就像在互联网上浏览web页面一样。服务网络上的社交链路可以被定义为
SL={L1,L2,…,Ln},1≤n≤N
其中SL为链路的集合。所以,可以跟随链路N次来探索整个服务网络的服务。服务的数量被定义为:
s=∑(Sj(charAtrib)∪Sj(numAtrib))W(attribj)
(三)实验结果
结果表明所提出的基于服务网络的web服务发现方法的效果优于基于语义的发现方法和基于语法的发现方法。
综上所述,本文通过将孤立的服务连接成为一个服务网络来加强服务的联系。提出一个新的模型来构建web服务的服务网络,利用服务之间的参数相关性来构建服务的服务网络。然后,提出一个在服务的网络上进行查找的方法。最后,对于提出的方法进行了对比实验,证实了所提出的基于服务网络的web服务发现方法的效果优于传统的web服务发现方法,充分证明了该方案的可行性和有效性。