基于多代理的交互式Web服务调度方法

文档序号:6374171阅读:132来源:国知局
专利名称:基于多代理的交互式Web服务调度方法
技术领域
本发明涉及的是一种进行Web服务调度的方法,特别是一种使用多代理技术、引入用户交互进行Web服务调度的方法,属于计算机应用领域。
背景技术
因特网已经成为现代信息社会的基础,而基于Web技术发展起来的Web服务(Web Service)正逐渐成为人们关注的热点研究方向。Web服务使得因特网上的任何一台计算机都能够通过一个平台无关的通用标准,使用另外一台计算机上的数据资源、计算资源和其他服务能力。在Web服务的支持下,分布式计算、网络计算和网格计算的规模扩展到整个因特网。
由于Web服务应用的规模迅速增长,在不久的将来,因特网上Web服务数量将会超过任何一个个人或组织的处理能力。因此,让智能代理(Agent)有能力自动管理和使用Web服务就显得尤为重要。然而目前流行的Web服务平台中,要使用一个完成特定功能的操作,编写应用程序的程序员需要人工在网络上寻找合适的服务实例,阅读用自然语言描述的功能说明并据此手工指定服务的输入和输出,然后在程序中嵌入根据服务描述生成的桩(Stub)代码。经检索发现,在美国Sun公司的JavaWSDK中,要完成对服务的调用,需要进行以下步骤1.生成Stub,2.编写客户代码,调用Stub,3.编译,4.打包发布,5.运行。如果程序发布后,需要增加对新的服务的支持,就必须重复以上过程,然后重新发布代码。在这一过程中,程序员和被使用的服务之间有着紧密的耦合,这限制了系统灵活扩展的可能性。

发明内容
本发明的目的在于克服背景技术中存在的不足,提供一种基于多代理的交互式Web服务调度方法,使其解除这种不必要的耦合。本发明把程序员编写的应用程序和一个中间代理连接,当其运行到调用服务的代码时,代理就产生一个对该种服务的请求。这样,程序员只需要负责产生中间代理能够识别的请求,就可以自动的使用不同的服务。
本发明是通过以下技术方案实现的,本发明采用一个能够在程序员编写的应用程序(以下简称应用程序)和网络上的某个Web服务(以下简称服务)之间进行调度的智能代理系统(以下简称代理系统)对Web服务的使用进行调度,方法具体如下(一)、识别Web上预先发布的Web服务实例的摘要描述,(二)、提供API供客户端代码提交请求和运行数据,(三)、在运行时根据需要使用Web服务的应用程序在运行时发出的服务请求搜索到相应的服务,并根据知识库中的知识和历史记录,以启发式自动计算和用户交互修改确认结合的方式进行输入输出格式之间的匹配,并完成实际的Web服务调用过程。
本发明在寻找和匹配的过程中,引入了应用程序用户的交互,并通过多代理间的通信进行交互历史信息的共享和启发式匹配。
以下对本发明方法作进一步的描述,具体内容如下第一,识别Web上预先发布的Web服务实例的摘要描述。
本发明方法能够处理的Web服务是指已经发布在网络上,符合W3C相关标准并且以机器可以阅读的格式提供了关于该服务的摘要描述的服务。在这些服务的摘要描述中,应该已经表述了该服务的功能和该服务的输入、输出、执行服务的先决条件和执行服务以后产生的影响。这样的服务要将其摘要描述的URL(统一资源定位符)存放到代理系统可以识别的位置,例如某个指定的文件中,才可以被代理系统搜索并使用。
第二,提供API供客户端代码提交请求和运行数据。
书写与服务的具体细节无关的客户端代码,即应用程序中需要使用Web服务的那些部分。为了让代理系统寻找特定的服务,应用程序需要提交一定格式的请求。该请求消息包括了查询和输入输出描述两部分,其中包括对服务描述进行查找的语义查询,应用程序可以在这里提出对所需服务的功能及输入输出的各种限制条件。输入输出部分是应用程序与代理之间交换执行数据的格式,包括了应用程序可以提供给服务的输入和应用程序需要服务输出的数据。在通常包括Web服务的Stub代码的地方,应用程序代之以调用代理系统的API,向代理系统提交前述请求及具体运行数据的代码。
第三,在运行时根据需要使用Web服务的应用程序在运行时发出的服务请求搜索到相应的服务,并根据知识库中的知识和历史记录,以启发式自动计算和用户交互修改确认结合的方式进行输入输出格式之间的匹配,并完成实际的Web服务调用过程。
在这一过程中代理系统将根据请求的内容进行实际的调度工作,具体分为如下几个步骤1)服务的选择过程。当应用程序运行到需要某个服务的部分时,程序通过API将服务请求传送给代理系统。代理系统可以访问的知识库中包含了如前述的该代理系统可以访问的服务集合。代理系统在知识库中执行查询,得到由服务组成的结果集。其后代理系统进行一个人机交互过程,即把结果及相应的服务简介(由服务提供者用自然语言书写)通过人机交互界面显示给应用程序的用户,并(可选)按照某些标准,如服务的使用频率及有关机构的认证情况等进行排序和推荐。用户根据这些描述信息,从中选择其中的一个服务使用。
2)服务的绑定过程。用户选定服务以后,代理系统就进行服务的绑定过程。代理系统根据知识库(记为KB)中的知识和历史记录设法构建从应用程序的输入输出到服务的输入输出的数据流。其中,应用程序请求(req)中的输入i’应当与服务描述(prf)中的输入(i)连接,req中的输出o’与prf中的输出o连接。代理系统在KB中搜索由参数的URI表示的连接信息。这样的连接信息在KB中以link(ix’,ix),link(oy,oy’)的形式存放(link(x,y)表示KB中存在x到y的有向连接),可以随服务或应用程序一起发布,也可以在以前的运行过程中由代理系统根据用户的操作记入知识库中。当不存在合适的连接信息时,代理系统可根据当前程序/服务与其他程序/服务的连接信息计算可能的连接。若程序A中的ia’和程序B中的ib’都有到某个服务的ib的连接,可以认为这两个参数是“类似的”。同样,若ib’同时有到ia和ib的连接,则ia和ib也是类似的。这种算法也可以应用到多个程序/服务对的情况。因此,只要ia在ia’的传递闭包link*中,即可推出可能有link(ia’,ia)。
在计算完所有可能的连接以后,代理系统再次进行一个交互过程,将参数的名称、注释以及参数之间的连接关系以可视化的图形形式显示给用户。用户可以在该可视化界面上与代理系统进行交互,如检查相应的连接是否正确,并可加以编辑。代理系统根据编辑的结果生成数据流模型。此后,控制被返回给应用程序。
3)服务的实际调用过程。控制被返回给应用程序,随后进行服务的实际调用过程。应用程序提供与请求中描述的格式一致的运行数据,代理系统把这些数据填入Web服务报文中,按照服务描述中的过程模型传送给实际的服务,并将结果返回给应用程序。
4)知识的学习和共享过程。最后,代理系统进行知识的学习和共享过程,将本次运行的调度方案记入知识库中,以达到学习的目的。多个代理实例之间还可通过现有的多代理通信和知识共享方式交换知识库中的知识,以避免多个用户需要多次参与建立同样目的的调度方案的情况。
本发明具有实质性特点,本发明应用程序和服务只需要分别提供对自身需求和功能的语义描述,并给出输入输出的格式,代理系统读取这两种描述,并在应用程序和服务之间自动或交互式的建立数据流,从而代替应用程序完成对服务的调用。通过代理系统分别和应用程序和服务进行的交互,消除了应用程序对具体服务接口的依赖性,从而使得新出现的服务能够被已有的程序所使用,使整个系统获得更大的灵活性和可扩充性。与其他代理方案相比,本发明还具有显著进步,可视化用户交互机制和多代理知识可以共享,让应用程序的用户在使用过程中有效的控制调度方案,以避免目前人工智能的局限性,并可在多用户的网络环境下减轻用户重复操作的负担。


图1是本发明及其所服务的应用程序、服务组成的系统结构框2是本发明中的启发式调度算法示意图具体实施方式
结合本发明内容,提供以下实施例建立一个能够读取语义Web上的服务描述的代理系统,该例中的代理具有在DAML+OIL格式的知识库里发现和调用使用DAML-S语言描述的Web服务的基本功能。该例中的应用程序是一个基于Web服务工作的数据分析和展示平台,该例中的服务是使用Web服务技术在Web上发布的数据源。代理系统与服务及应用程序之间的连接关系如图1所示。程序员在开发应用程序时,将需要的服务功能以服务请求的格式通过API送到代理,其中包括对服务的查询和输入输出描述。在运行时,代理读取网络上服务的描述信息,并以上述方式进行计算和交互,从而能以期望的方式正确的调用服务。
本例中,使用的服务描述格式同DAML-S标准,使用的服务请求是发明人自行设计的语义形式,其Ontology定义如下<pre listing-type="program-listing"><?xml version=’1.0’encoding=’ISO-8859-1’?><!DOCTYPE uridef[ <!ENTITY rdf″http//www.w3.org/1999/02/22-rdf-syntax-ns″> <!ENTITY rdfs″http//www.w3.org/2000/01/rdf-schema″> <!ENTITY daml″http//www.daml.org/2001/03/daml+oil″> <!ENTITY xsd″http//www.w3.org/2000/10/XMLschema.xsd″>]><rdfRDF xmlnsrdf=″&amp;amp;rdf;#″xmlnsrdfs=″&amp;amp;rdfs;#″xmlnsdaml= ″&amp;amp;daml;#″xmlns=″http//purl.org/net/lejun/ServiceRequest.daml#″><damlOntology rdfabout=″″> <damlimports rdfresource=″http//www.daml.org/2001/03/daml+oil″/></damlOntology><damlClass rdfID=″ServiceRequest″/><damlProperty rdfID=″requestName″> <rdfsdomain rdfresource=″#ServiceRequest″/> <rdfsrange rdfresource=″&amp;amp;xsd;#string″/></damlProperty><damlProperty rdfID=″query″><rdfsdomain rdfresource=″#ServiceRequest″/></damlProperty><damlProperty rdfID=″rdfsQuery″><rdfssubPropertyOf rdfresource=″#query″/><rdfsrange rdfresource=″&amp;amp;xsd;″/></damlProperty><damlProperty rdfID=″inputs″> <rdfsdomain rdfresource=″#ServiceRequest″/> <rdfsrange rdfresource=″&amp;amp;daml;#List″/></damlProperty>&lt;!-- SIPO &lt;DP n="5"&gt; --&gt;&lt;dp n="d5"/&gt;<damlProperty rdfID=″outputs″> <rdfsdomain rdfresource=″#ServiceRequest″/> <rdfsrange rdfresource=″&amp;amp;daml;#List″/></damlProperty><damlClass rdfID=″Parameter″/><damlProperty rdfID=″parameterName″><rdfsdomain rdfresource=″#Parameter″/><rdfsrange rdfresource=″&amp;amp;xsd;#string″/></damlProperty><damlProperty rdfID=″dataType″><damldomain rdfresource=″#Parameter″/></damlProperty></rdfRDF></pre>代理使用的启发式匹配算法如上所述,即从图2实线所示的已知连接推出虚线所示的可能连接关系,代理系统在KB中搜索由参数的URI表示的连接信息,若程序A中的ia’和程序B中的ib’都有到某个服务的ib的连接,或ib’同时有到ia和ib的连接,就在ia和ib之间产生可能的连接。并且只要ia在ia’的传递闭包link*中,即可推出可能连接link(ia’,ia)。
在某次查询过程中,用户首先向应用程序指派查询的条件。应用程序随后请求代理系统查找可用的数据源,即Web上存在的数据源服务。代理系统根据条件&lt;?profile,rdfssubClassOf,itwhomDataSourceService&gt;在其KB中查找该服务对应的prf。查找到的数据源及其注释形成列表,供用户选择其需要查询的数据源。根据用户选择的数据源服务提供的接口和应用程序的I/O格式,代理系统计算相应的可能数据流,然后以图形的方式显示在交互面板中。用户可以在该面板中添加、删除连接,例如使用总数量Quantity代替总金额Amount等。当用户修改完毕,Agent即将应用程序中提供的数据传给服务端,并将结果返回给应用程序,再由应用程序将结果数据展示给用户。
从上述例子可以看出,数据源的具体技术细节是在运行时由代理系统通过自身的知识和用户的交互进行调度的,应用程序中无需事先包含某个特定服务的桩代码,也无需事先存在格式上的约定。而目前的Web服务调用平台需要事先生成桩代码,或者进行格式上的具体约定。相比之下,应用本发明使用Web服务具有更少的约束条件。
权利要求
1.一种基于多代理的交互式Web服务调度方法,其特征在于,采用一个能够在程序员编写的应用程序和网络上的Web服务之间进行调度的智能代理系统对Web服务的使用进行调度,方法具体如下(一)、识别Web上预先发布的Web服务实例的摘要描述,(二)、提供API供客户端代码提交请求和运行数据,(三)、在运行时根据需要使用Web服务的应用程序在运行时发出的服务请求搜索到相应的服务,并根据知识库中的知识和历史记录,以启发式自动计算和用户交互修改确认结合的方式进行输入输出格式之间的匹配,并完或实际的Web服务调用过程。
2.根据权利要求1所述的基于多代理的交互式Web服务调度方法,其特征是,所述的识别Web上预先发布的Web服务实例的摘要描述,具体如下Web服务是指已经发布在网络上,符合W3C相关标准并且以机器能够阅读的格式提供了关于该服务的摘要描述的服务,在这些服务的摘要描述中,已经表述了该服务的功能和该服务的输入、输出、执行服务的先决条件和执行服务以后产生的影响,这样的服务将其摘要描述的URL存放到代理系统能够识别的位置,被代理系统搜索并使用。
3.根据权利要求1所述的基于多代理的交互式Web服务调度方法,其特征是,其特征是,所述的提供API供客户端代码提交请求和运行数据,具体如下书写与服务的具体细节无关的客户端代码,即应用程序中需要使用Web服务的那些部分,为了让代理系统寻找特定的服务,应用程序需要提交一定格式的请求,该请求消息包括了查询和输入输出描述两部分,其中包括对服务描述进行查找的语义查询,应用程序可在这里提出对所需服务的功能及输入输出的各种限制条件,输入输出部分是应用程序与代理之间交换执行数据的格式,包括了应用程序提供给服务的输入和应用程序需要服务输出的数据,在通常包括Web服务的Stub代码的地方,应用程序代之以调用代理系统的API,向代理系统提交前述请求及具体运行数据的代码。
4.根据权利要求1所述的基于多代理的交互式Web服务调度方法,其特征是,所述的在运行时根据需要使用Web服务的应用程序在运行时发出的服务请求搜索到相应的服务,并根据知识库中的知识和历史记录,以启发式自动计算和用户交互修改确认结合的方式进行输入输出格式之间的匹配,并完成实际的Web服务调用过程,具体步骤如下1)服务的选择过程当应用程序运行到需要某个服务的部分时,程序通过API将服务请求传送给代理系统,代理系统能够访问的知识库KB中包含了如前述的该代理系统能够访问的服务集合,代理系统在知识库中执行查询,得到由服务组成的结果集,其后代理系统进行一个人机交互过程,即把结果及相应的服务简介通过人机交互界面显示给应用程序的用户,或者按照某些标准进行排序和推荐,用户根据这些描述信息,从中选择其中的一个服务使用;2)服务的绑定过程用户选定服务以后,代理系统就进行服务的绑定过程,代理系统根据知识库中的知识和历史记录构建从应用程序的输入输出到服务的输入输出的数据流,其中,应用程序请求req中的输入i’应当与服务描述prf中的输入i连接,req中的输出o’与prf中的输出o连接,代理系统在KB中搜索由参数的URI表示的连接信息,这样的连接信息在KB中以KB link(ix’,ix),link(oy,oy’)的形式存放,随服务或应用程序一起发布,或者在以前的运行过程中由代理系统根据用户的操作记入知识库中,当不存在合适的连接信息时,代理系统根据当前程序/服务与其他程序/服务的连接信息计算可能的连接,在计算完所有可能的连接以后,代理系统再次进行一个交互过程,将参数的名称、注释以及参数之间的连接关系以可视化的图形形式显示给用户,用户在该可视化界面上与代理系统进行交互,并能加以编辑,代理系统根据编辑的结果生成数据流模型,此后,控制被返回给应用程序;3)服务的实际调用过程控制被返回给应用程序,随后进行服务的实际调用过程,应用程序提供与请求中描述的格式一致的运行数据,代理系统把这些数据填入Web服务报文中,按照服务描述中的过程模型传送给实际的服务,并将结果返回给应用程序;4)知识的学习和共享过程最后,代理系统进行知识的学习和共享过程,将本次运行的调度方案记入知识库中,以达到学习的目的,多个代理实例之间或者通过现有的多代理通信和知识共享方式交换知识库中的知识,避免多个用户需要多次参与建立同样目的的调度方案的情况。
5.根据权利要求4所述的基于多代理的交互式Web服务调度方法,其特征是,服务的绑定过程中,代理系统根据当前程序/服务与其他程序/服务的连接信息计算可能的连接,若程序A中的ia’和程序B中的ib’都有到某个服务的ib的连接,则认为这两个参数是类似的,同样,若ib’同时有到ia和ib的连接,则ia和ib也是类似的,推广到多个节点的情况,只要ia在ia’的传递闭包link*中,即可推出有link(ia’,ia)。
全文摘要
基于多代理的交互式Web服务调用系统属于计算机应用领域。本发明采用一个能够在程序员编写的应用程序和网络上的Web服务之间进行调度的智能代理系统对Web服务的使用进行调度,方法如下识别Web上预先发布的Web服务实例的摘要描述,提供API供客户端代码提交请求和运行数据,在运行时根据需要使用Web服务的应用程序在运行时发出的服务请求搜索到相应的服务,并根据知识库中的知识和历史记录,以启发式自动计算和用户交互修改确认结合的方式进行输入输出格式之间的匹配,并完成实际的Web服务调用过程。本发明引入了应用程序用户的交互,并通过多代理间的通信进行交互历史信息的共享和启发式匹配,使整个系统获得更大的灵活性和可扩充性。
文档编号G06F13/00GK1489044SQ0315048
公开日2004年4月14日 申请日期2003年8月21日 优先权日2003年8月21日
发明者丁鹏, 朱乐骏, 盛焕烨, 王东, 刘志强, 丁 鹏 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1