CN1689019A - 用于在万维网服务架构中对服务进行排名的方法和系统 - Google Patents

用于在万维网服务架构中对服务进行排名的方法和系统 Download PDF

Info

Publication number
CN1689019A
CN1689019A CNA03824604XA CN03824604A CN1689019A CN 1689019 A CN1689019 A CN 1689019A CN A03824604X A CNA03824604X A CN A03824604XA CN 03824604 A CN03824604 A CN 03824604A CN 1689019 A CN1689019 A CN 1689019A
Authority
CN
China
Prior art keywords
service
catalogue
services
preference
ranking machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA03824604XA
Other languages
English (en)
Other versions
CN100568227C (zh
Inventor
罗伯特·哈里斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1689019A publication Critical patent/CN1689019A/zh
Application granted granted Critical
Publication of CN100568227C publication Critical patent/CN100568227C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Abstract

提供一种用于在万维网服务架构中对服务进行排名的方法和万维网服务架构。该万维网服务架构具有服务分层结构(401、406、408、410),其中该服务分层结构包括根发起服务请求者(401),并且该分层结构中第一层的服务调用低层的服务。发起服务请求者指示关于一个或多个服务的偏好,并且排名机(405)提供基于该偏好的选择算法。发起服务请求者调用分层结构的一层或多层的服务。在分层结构的每一层,服务使用目录(411)来查找可能低层服务的集合,并且排名机对该可能低层服务的集合施加选择算法。在一个实施例中,将可能低层服务的集合从目录提交到排名机,并且排名机将首选序列返回给该目录。

Description

用于在万维网服务架构中对服务 进行排名的方法和系统
技术领域
本发明涉及一种用于在万维网(web)服务架构中对服务进行排名(ranking)的方法和系统。具体地说,本发明涉及一种具有服务提供者分层结构的万维网服务架构,其中由顶层调用者指定排名。
背景技术
在文档“Wed Services Conceptual Architecture(WSCA 1.0)”(IBM软件组,2001年5月)中描述了万维网服务。万维网服务提供程序对程序的通信模型,其建立在现有和新兴标准如HTTP(超文本传输协议)、可扩展标记语言(XML)、简单对象访问协议(SOAP)、万维网服务描述语言(WSDL)、以及统一描述、发现和集成(UDDI)上。
万维网服务通过接口来描述,所述接口描述一组通过标准化的XML消息传递而可网络访问(network-accessible)的功能。万维网服务使用称作服务描述的标准、正式的XML表示法来描述。服务描述覆盖与服务交互所必需的所有细节,包括消息格式、传输协议和位置。该接口隐藏了服务的实现细节,从而允许独立于在其上实现该服务的硬件或软件平台并且还独立于编写该服务所采用的编程语言而使用该服务。它还独立于调用者的硬件和软件环境。这允许基于万维网服务的应用成为松散耦合、面向组件的交叉技术实现,该实现可跨越网络来发布、定位和调用。
万维网服务在网络中实现。该网络可以是可公共访问的网络如因特网、内联网或者任何其他形式的网络。因特网可用的万维网服务使用常用的网络协议。这些协议可以是HTTP或其他因特网协议如SMTP或FTP。其他网络(例如,内联网)可使用可靠的消息传递调用基础结构如MQSeries、COBRA等。
所述方法和系统涉及对UDDI/WSDL协议和XML/SOAP语法的扩展,以提供当前在万维网服务架构内得不到的功能。
参考下面可通过www.uddi.org得到的文献:
UDDI 2.0 Data Structure Reference;
UDDI 2.0 API Specification;
UDDI 2.0 Operators Specification;以及
Wed Services Description Language(WSDL)1.1。
万维网服务中的UDDI的目标是基于目录或注册中心(registry)查询提供对功能的开放访问。这些服务由WSDL部分描述,并由XML/SOAP功能调用。调用者与服务的绑定是动态的而不是固定的。由于目录是可免费获得的并且对于如何进行查询或选择未施加任何约束,因此它是开放的。UDDI极好地满足这一目标。然而,它的不足之处在于诸如服务质量的概念。
所述方法和系统提供了可由此将服务质量问题和其他选择影响因素引入到UDDI/WSDL领域中的手段。
在万维网服务中,使用目录或注册中心来以组件化的方式组合软件。UDDI的思想是将具有WSDL格式的请求发送到目录或注册中心服务器以选择服务。该服务选择可根据特定一般适用标准如提供它的公司和它执行的功能来指定。该选择信息是非常一般性的;它对于所有用户都相同,并且不特定于对所提到的服务的请求的发起者。
所述方法和系统提供了可由此引入特定于发起者的标准以对查询施加影响的手段。不同于公知的现有技术万维网服务,服务的选择受到服务选择的发起者或请求者的影响。
下面是一个实际例子。用户的软件将要买书。用户在‘售书者’类别下的目录中进行查询,并且取回提供该服务的公司列表。然而,用户已经与比方说两个供应者协商了优惠率,并因此想要将购买请求首先发送给这两个供应者中的任一个,而把其他供应者作为第三选择。
由于搜索将信息直接返回给用户,并且用户控制接下来发生什么,因此用户可通过过滤从搜索返回的公司列表来完成此操作。
如果作为由其他人提供的服务的功能的一部分来执行购书请求,则有所区别。例如,用户可能正在构建星际旅行书籍的图书库。用户使用‘构建图书库’选择,并取回合适的销售者的列表。用户将他的“向我提供星际旅行图书库(Get-me-a-library-for-StarTrek)”请求发给将做这项工作的供应者。然而,由于购书功能现在由其他人处理,因此用户现在不再处于使用其喜爱的售书者列表的地位。实际上,他们使用他们自己而非该用户的首选供应者。
所描述的本发明的一个结果提供了获得向用户的首选销售者而非中间人购买的书籍(或其他项目)的方法。
用户:图书库构建者:销售者1  用户首选销售者2
现有技术:构建图书库--->购买书籍1--------->购买
本发明:构建图书库--->购买书籍1------------------->购买
所述方法和系统涉及如何根据发起者的偏好(preference)来偏袒(bias)WSDL/UDDI请求。什么条件影响用户的偏好不作讨论并且其取决于用户。可影响用户偏好的条件的例子包括成本、效率、速度和可靠性这些标准。
发明内容
根据本发明的第一方面,提供了一种用于在具有服务分层结构的万维网服务架构中对服务进行排名的方法,其中该服务分层结构包括根(root)发起服务请求者,该分层结构中第一层的服务调用低层的服务,该方法包括:发起服务请求者指示关于一个或多个服务的偏好,并且排名机具有基于该偏好的选择算法;发起服务请求者调用分层结构的一层或多层的服务;在该分层结构的每一层,服务使用目录来查找可能低层服务的集合;以及排名机对可能低层服务的集合施加选择算法。
低层服务可以是服务请求者或服务提供者。
在一个实施例中,可以将可能低层服务的集合从目录提交(refer)给排名机,并且排名机可将首选序列返回给该目录。提交到排名机的步骤对使用该目录的服务可以是不可见的。
在另一实施例中,使用该目录的服务可将可能低层服务的集合发送到排名机,并且排名机可将首选序列返回给该服务。
可以将单个结果或结果序列返回给使用该目录的服务。
优选地,分层结构中的低层服务调用对高层服务是不可见的。
发起服务请求者的偏好可以按照该发起服务请求者希望使用服务的次序对服务进行排名,可排除服务以使其不被使用和/或可提供其他选择影响标准。
发起服务请求者的偏好可基于包括例如成本、效率、速度和可靠性的服务质量标准。
在存在发起服务请求者的偏好的情形下,该偏好可优先于使用目录的服务的选择。如果该首选服务不可用,则可通过参考发起服务请求者的偏好来获得随后的服务。
在没有存储发起服务请求者的偏好的情形下,使用目录的服务可进行选择。
根据本发明的第二方面,提供了一种万维网服务架构,包括:根发起服务请求者;服务分层结构,其中第一层的服务调用低层的服务;目录,用于在分层结构中查找服务;排名机,具有用于根据关于一个或多个服务的发起服务请求者的偏好施加服务选择算法的装置;其中,在分层结构的每一层,目录提供可能服务的集合,并且排名机施加选择算法以提供首选服务序列。
低层服务可以是服务请求者或服务提供者。
排名机优选地通过端口连接到目录,并且通过目录将可能服务的集合提交给排名机,并且由排名机将首选服务序列返回给目录。
第一层的服务可通过UDDI目录查找低层服务。排名机可具有UDDI目录上的端口,并且可处理将TModel包(bag)转变成所选Tmodel集合的流程。
每个UDDI操作可被提交给排名机,并可作为遵循服务请求者偏好的序列而被返回。
底层UDDI应用代码可执行该提交,并且可将排名机的位置附加到随后的XML流中。
根据本发明的第三方面,提供了一种存储在计算机可读存储介质上的计算机程序产品,其用于具有服务分层结构的万维网服务架构,其中该服务分层结构包括根发起服务请求者,第一层的服务调用低层的服务,该计算机程序产品包括用于执行以下步骤的计算机可读程序代码装置:发起服务请求者指示关于一个或多个服务的偏好,并且排名机具有基于该偏好的选择算法;发起服务请求者调用分层结构的一层或多层的服务;在该分层结构的每一层,服务使用目录来查找可能低层服务的集合;以及排名机对可能低层服务的集合施加选择算法。
附图说明
现在将参照附图仅作为示例来描述本发明的实施例,其中:
图1是万维网服务模型的示意图;
图2是万维网服务栈的示意图;
图3是UDDI数据结构的方框图;
图4A是根据本发明的万维网服务分层结构的示意方框图;
图4B是根据本发明的万维网服务架构的示意方框图;
图5A是从现有技术得知的服务选择的流线图;
图5B是根据本发明的服务选择的第一实施例的流线图;以及
图5C是根据本发明的服务选择的第二实施例的流线图。
具体实施方式
在本描述中,使用了术语“万维网服务”。这不应当被解释为表示必须通过万维网(即从浏览器)调用万维网服务。万维网服务可采用任何形式的网络包括因特网、内联网、LAN、WAN等来实现。如前面所定义的那样,万维网服务提供程序对程序的通信模型,并且通过描述万维网服务功能的接口来描述。
图1示出万维网服务模型100,其示出服务提供者101、服务注册中心102和服务请求者103这三个角色。交互包括发布104、查找105和耦合106操作。耦合操作106是松散耦合的环境中实体之间的访问流(access flow)。这些角色和操作一起作用于作为万维网服务软件模块107及其描述108的万维网服务制品(artefact)。
在典型的场景中,服务提供者101驻留(host)作为万维网服务实现的可网络访问的软件模块107。服务提供者101定义万维网服务107的服务描述108,并将其发布到服务注册中心102。服务请求者103也能直接从服务提供者101获得服务描述108或者其一部分,作为拉(pull)操作而非推(push)操作。服务请求者103使用查找操作105来从服务注册中心102检索服务描述108,并使用服务描述108来与服务提供者101耦合106,并且调用万维网服务实现107或者与之交互。服务提供者101和服务请求者103是角色,并且服务可表现这两者的特征。
服务提供者101是驻留对至少服务前端的访问的平台。服务请求者103是查找和调用或启动与服务的交互的应用程序。服务请求者角色可由人驱动的浏览器或没有用户接口的程序例如另一万维网服务扮演。服务注册中心102是可搜索的服务描述108的注册中心,服务提供者101在其中发布它们的服务描述108。服务请求者103查找服务并且从服务描述108中获得耦合信息以建立对服务的通信和执行。
为了可访问,需要发布104服务描述108,使得服务请求者103可查找它。在查找操作105中,服务请求者103直接检索服务描述108,或者在服务注册中心102中查询使用服务发现过程所需的服务类型。在耦合操作106中,服务请求者103使用服务描述108中的耦合细节来在运行时调用或启动与服务的交互,以便联系和调用服务。
服务描述108包含接口细节以实现该服务。这包括其数据类型、操作、耦合信息和网络位置。它还可包括类别化(categorisation)以帮助由服务请求者103进行的发现和利用。
参照图2,为了以可互操作的方式执行发布、查找和耦合这三个操作,必须有在每层都包括标准的万维网服务栈200。
由于万维网服务必须可网络访问以便由服务请求者调用,因此万维网服务栈200的基础是网络层201。应用于栈200的网络层201的标准技术包括HTTP、FTP、电子邮件、MQSeries、IIOP等。
下一层是基于XML的消息传递层202,其表示使用XML作为消息传递协议的基础。可使用SOAP作为对XML消息传递协议的增强。
下一层是服务描述层203,它是描述文档的集合。该描述被分组成三种类型的事物(thing),即位置、活动和接口。WSDL是基于XML的服务描述的标准。WSDL定义服务交互的接口和机制。WSDL文档可由其他服务描述文档补充,以描述万维网服务的较高层方面,例如,除了WSDL文档之外,还使用UDDI数据结构来描述商业上下文。
提供或使用任何万维网服务需要网络层201、基于XML的消息传递层202和服务描述层203的前三层。
图2示出的栈200的下两层是服务发布和服务发现层204、205,其可采用多种解决方案来实现。使服务请求者可获得WSDL文档的任何动作是服务发布。公共UDDI注册中心保存服务发布的副本。
如果万维网服务尚未被发布,则它不能被发现,因此服务发现层205依赖于服务发布层204。各种发现机制对应于发布机制。允许服务请求者在运行时获得对服务描述的访问并使其可用于应用程序的任何机制都有资格作为服务发现。
图2的最顶层206是服务流层206,其描述如何执行服务对服务的通信、协作和流动。
完整的万维网服务描述建立在服务的基本WSDL描述上。完整的万维网服务描述表达以下内容:驻留服务的商业机构(business);商业类型;与服务相关联的产品;商业或万维网服务相关联的类别;将影响请求者选择或调用服务的多个方面;可被提供使得更易于查找服务的关键字等等。
UDDI提供用于保存万维网服务描述的机制。虽然UDDI经常被认为是目录机制,但是它也采用XML定义用于表示服务描述信息的数据结构标准。图3示出具有四个基本数据结构的UDDI条目300。
UDDI条目以商业实体301开始。商业实体301对关于商业机构的信息进行建模。商业实体301包含商业服务302的集合,每个商业服务302用于该商业机构希望发布的每个万维网服务。每个商业服务302包含关于商业实体的万维网服务的技术和描述性信息。商业服务302包含绑定模板303的集合。
绑定模板303描述访问信息如终点地址,并且描述商业服务302如何使用各种技术规范。技术规范被建模为tModel 304。tModel 304可对很多不同的概念例如:服务类型、平台技术如HTTP或分类法进行建模。商业实体301、商业服务302和绑定模板303使用已定义类型的tModel来实现。与商业服务302相关联的绑定模板303的集合表示由商业服务302使用的技术的指纹(fingerprint)。
tModel 304定义调用接口和结果。它在高层采用XML而在不会被用户看到的低层通过API来呈现。tModel 304具有称作键(key)的唯一标识符。UDDI支持通过指定相同的键而在多处使用给定tModel 304,并随后保证:就外部而言,这两处的行为完全相同,而没有任何附加的特定于平台的返回代码。
所述方法和系统包括关于对请求发起者的所有UDDI操作的基准(reference)。一旦目录或注册中心处理了该请求,就将结果提交给该基准以进行过滤。
现在参照图4A,示出了万维网服务分层结构400。树分层结构400的根节点是希望调用万维网服务的服务请求者401。
树分层结构400具有多个服务层402、403,其表示可由服务请求者401(直接或间接)调用以便查找服务请求者401希望调用的最终万维网服务的中间服务。最终万维网服务404是树分层结构400上的叶子节点。层402可以是由服务请求者401进行的服务选择,而层403和404可以是对服务请求者401不可见的隐藏子服务的选择。
现在参照图4B,仅示出了层402、403、404的每一层上的选定服务406、408、410。提供了目录411,其用来查找形式为服务或服务提供者的可能结果的组或包(bag)。
提供了排名机405,其存储服务请求者401的服务选择偏好的细节。这是以在任何相关时候提供的选项之间的选择算法的形式提供给排名机405的。服务请求者401向排名机405通知其对任何服务提供者的偏好,并且保存对服务提供者偏好进行排名的选择算法。
在第一实施例中,排名机405在目录411的端口412上监听。当目录411执行查询并且产生结果包时,排名机405正在端口412上监听,并且该结果包被发送407到排名机405。排名机405向该结果包施加其选择算法,并且以服务请求者401的首选次序将结果序列返回409到目录411。目录411以排名机405提供的结果序列回答该查询。
在目录中查询服务的所有中间服务提供者402、403将查询提交给排名机405,其中排名机405根据所指示的服务请求者401的偏好对搜索结果进行过滤。如果存在存储在排名机405中的偏好,则排名机405根据该偏好进行选择,并且当调用下一层的服务提供者时,中间服务提供者402、403将遵循该偏好。
在图4A和4B的所示例子中,服务请求者401希望使用涉及使用低层服务的第一层402的中间服务提供者的服务。然而,使用任何低层服务的事实不被泄露给服务请求者401。服务请求者401使用目录411执行搜索以查找第一层402的服务提供者,并获得可能的服务提供者402的序列。可能的服务提供者402的序列已被排名机405过滤,以去除明显的非竞争者,或者强加特定选择(即,如果在包中只有一个结果)。如果在包中存在多于一个结果,则服务请求者401选择第一层402的服务提供者406之一。
由目录411提供的每个查询响应产生被排名机405过滤的潜在候选者包。目录411中的软件进行向排名机405的提交。如同不存在排名机405一样,向请求目录411中的查询的实体返回结果列表。请求查询的实体具有对由目录411返回给它的结果的自由选择权,但是所返回的结果已经受到排名机405限制。
服务请求者401只与第一层402的服务提供者406进行通信。然而,为了执行其工作,服务提供者406使用第二层403的服务提供者408,服务提供者408又使用最终服务410。服务请求者401不知道第二层的服务提供者408或者最终服务410。类似地,第一层的服务提供者406不知道由第二层的服务提供者408使用的最终服务410。
第一层402的服务提供者406执行目录411的查询,以查找第二层403的服务提供者408。类似地,第二层403的服务提供者408执行目录411的查询以查找最终服务410。在每个查询中,根据发起服务请求者401的偏好,排名机405对由目录411查找到的结果包进行排名。排名机405在其选择算法中使用的偏好在分层结构中是全局的并且与层无关。
在第二实施例中,目录将查询请求的结果返回给可以是发起服务请求者或中间服务提供者的请求者,并且请求者将结果包发送到排名机以进行排名。排名机将结果序列返回给请求者。
在这两个实施例中,服务请求者的偏好都可与服务质量问题如成本、效率、速度和可靠性相关,或者都可与影响偏好的任何其他选择相关。偏好可以按照服务请求者希望使用服务的次序对服务进行排名,或者可以特定地排除服务以使其不被使用,或者可以提供任何其他偏好指示。
对于为什么记录偏好,服务请求者不需要任何理由,并且偏好不需要由中间服务提供者可见或者理解。原始服务请求者将对子服务选择的控制从供应者处移开,或者至少影响对子服务选择的控制。
例子1
下面是由称作用户的服务请求者调用万维网服务的例子。图5A示出现有技术UDDI查询请求将如何工作。UDDI目录返回包作为其结果,这里以{集合}表示。
用户501想要构建图书库,因此他询问UDDI目录502,以便为他查找执行此工作的服务提供者503。用户501将请求511发送到用于UDDI查询的目录502,以查找图书库构建者。在此情况中,仅存在一个该类别的服务提供者503,从而目录502返回512{图书库构建者1}的集合的结果。
然后,用户501将“构建图书库”的请求513发送到服务器图书库构建者1504。然后,图书库构建者1504在UDDI目录502中查询514、515书籍供应者505的列表。目录502返回516{销售者1、用户首选销售者2}的集合。然后,图书库构建者1504挑选517要使用以从其购书的第一供应者,其中第一供应者是销售者1506或者被他认为是最适合的供应者。这导致从有利于图书库构建者1的地方而非该用户的首选销售者购买书籍,其中,在此情况中,用户的首选销售者是用户首选销售者2507。
图5B示出与图5A相同的UDDI查询,但是其根据本发明的第一实施例。所述方法和系统要求应该将每个UDDI请求提交到可以按照根据用户偏好的次序对所返回的包进行排名的地方。对于在该排名中使用什么标准是无关紧要的,只要进行排名即可。
因此,作为<序列>返回{包},其中首选项目位于列表的前部。该序列可包含包的所有成员、子集或者甚至是完全不同的某些东西。执行该提交的是底层UDDI查询代码(换句话说,底层UDDI API)。调用者不需要额外的代码步骤。
图5B具有排名器508的附加组件,其保存反映用户501指示的对书籍供应者509的偏好的选择算法。
用户请求521 UDDI目录502查找图书库构建者。目录502查找到集合{图书库构建者1}。然而,这不被暴露给用户501,因为服务提供者的底层知道没有提交的局部(local)请求必须被排名,并且这通过配置选项来完成,并因此对用户不可见。因此,来自UDDI目录502的返回流随后被提交522到局部排名器508以进行分析。由于只有一个选择,该选择是可接受的<图书库构建者1>,因此结果不变,并因此被初始发送523回UDDI目录502,UDDI目录502将该结果发送524回用户501。
然后,用户501挑选第一(并且在本例中是唯一的)供应者504,并在其上调用构建图书库操作525。底层知道这是对服务的XML/SOAP请求,并因此将所需排名器508的位置附加到XML流上。
然后,供应者即图书库构建者504请求526 UDDI目录502查找售书者504的列表,并在该流上附加相关排名器508的位置。该目录查询527返回所保存的售书者的集合{销售者1,用户首选销售者2}。然后,底层像以前一样将该集合提交528给排名器508。在此情况中,排名器508想要强制使用用户的首选书籍供应商509,并因此将UDDI结果改变成序列<用户首选销售者2>,然后将该结果发送529回UDDI目录502,UDDI目录502将该结果发送530回图书库构建者504作为其查询527的结果。因此,现在从用户首选销售者2507而非销售者1506订购321、322书籍。
图5C示出与图5A和5B相同的UDDI查询,但是其根据本发明的第二实施例。如同图5B一样,所述方法和系统要求应该将每个UDDI请求以根据用户偏好的次序提交到可对所返回的包进行排名的地方。对于在该排名中使用什么标准是无关紧要的,只要进行排名即可。
同样地,作为<序列>返回{包},其中首选项目位于该列表的前部。在第二实施例中,对UDDI目录502的查询的请求者接收结果的{包},并将这个包提交给排名器508以进行排名,然后,请求者根据用户501的偏好从排名器508接收<序列>。
实现
在第一实施例中,排名机在UDDI/排名器端口上监听,并且处理将tModel包转变成所选tModel包的前述流程。
根据UDDI API,通过添加排名机的URL:端口来扩展10个find_xx动词。
例如,
<find_tModel[maxRows=″n″]generic=″2.0″xmlns=″urn:uddi-org:api_v2″>
[<findQualifiers/>][<name/.>][<identifierBag/>][<categoryBag/>]
</find_tModel>]
将变成:
<find_tModel[maxRows=″n″]generic=″3.0″xmlns=″urn:uddi-org:api_v3″>
[<Ranker>ranker_url</Ranker>]
[<findQualifiers/>][<name/>][<identifierBag/>][<categoryBag/>]
</find tModel>]
根据服务的SOAP/XML执行,这将被扩展以包括排名器URL。这必须被传递给随后的UDDI相关调用是UDDI范例的要求。
<wsdl:declarations>
......
......
      <wsdl:ranker>?
            <wsdl:rankerurl[port=″nn″]>url</wsdl:rankerurl>
      </wsdl:ranker>
......
......
</wsdl:declarations>
这个流由WSDL供应者插入或处理,或者至少该功能潜伏在UDDI服务器(当给A地址:端口传递了查询请求时)或者用于UDDI处理的调用者的DLL中。在任一情况中,UDDI查询过程执行过滤,而无需调用者的干预。
如果接收该排名器地址的服务没有费心传递它以便执行随后的UDDI/XML/SOAP操作,则这将违反协议,从而服务将不根据规则工作。如同该领域中的所有其他标准一样,这将是自律的。
然而,新条目被添加到绑定模板和商业服务tModel中,以示出服务是否遵循这些规则。该元素可被认为是<RankingSupported/>。如果在调用上提供了<RANKER>元素但是不存在<RankingSupported>,则find_xx AP1将不选择tModel。
在API执行方面,本质上,这是在驻留UDDI目录的盒(box)上执行的。进行选择的代码被修改成支持新API和tModel标记。
因此,本描述示出了使用排名机来处理URL请求以及相关联的对UDDI/WSDL协议的扩展如何能够将新的发起者偏好选择功能引入到UDDI范例中。
在一个服务提供者不可用而需要选择另一个的情形中,以下内容适用。通过特定绑定tModel,在接口(参数调用)层指定实际服务本身。如果想要特定服务,则必须使用称作绑定模板的特定tModel(否则对大量不同的XML调用进行编码)。如果使用特定tModel的供应者不理想(太慢、太贵、不工作等),则出现问题,并且不能更改代码来通过不同接口使用另一供应者。
为了避免重新编码问题,必须以完全相同的接口选择另一供应者:换句话说,使用相同绑定tModel的供应者。这容易地通过UDDI查询来完成。
应当注意,UDDI支持公开(即普遍可用)目录和私有(即特定于调用者)目录。如果整个所请求的服务处于私有目录的范围之内(在相同组织内,并因此使用相同的-或复制的-UDDI服务器),从而可通过在该私有目录中实际进行的内容来解决偏好问题,那么这是良好的。然而,如果在私有目录的范围之外执行请求,则该方法失效。所述方法和系统克服了这一问题。
还应当注意,UDDI支持PublisherAssertion(发布者断言)的tModel。这旨在将供应者链接到某种较大的实体中。由于PublisherAssertion是公开、静态的并且不保证其将被注意到,因此这不是与所述方法和系统的重叠。
在不脱离本发明的范围的情况下,可以对前文进行改进和修改。

Claims (20)

1.一种用于在具有服务分层结构(401、406、408、410)的万维网服务架构中对服务进行排名的方法,其中该服务分层结构包括根发起服务请求者(401),该分层结构中第一层的服务调用低层的服务,该方法包括:
发起服务请求者(401)指示关于一个或多个服务的偏好,并且排名机(405)具有基于该偏好的选择算法;
发起服务请求者(401)调用分层结构的一层或多层的服务;
在该分层结构的每一层,服务使用目录(411)来查找可能低层服务的集合;以及
排名机(405)对该可能低层服务的集合施加选择算法。
2.如权利要求1所述的方法,其中低层服务是服务请求者或服务提供者。
3.如权利要求1或权利要求2所述的方法,其中将可能低层服务的集合从目录(411)提交到排名机(405),并且排名机(405)将首选序列返回给该目录。
4.如权利要求3所述的方法,其中提交到排名机(405)的步骤对使用目录(411)的服务不可见。
5.如权利要求1或权利要求2所述的方法,其中使用目录(411)的服务将可能低层服务的集合发送到排名机(405),并且排名机(405)将首选序列返回给该服务。
6.如前面权利要求中的任一项所述的方法,其中将单个结果或结果序列返回给使用目录(411)的服务。
7.如前面权利要求中的任一项所述的方法,其中分层结构中的低层服务调用对较高层的服务不可见。
8.如前面权利要求中的任一项所述的方法,其中发起服务请求者(401)的偏好按照发起服务请求者(401)希望使用服务的次序对服务进行排名、排除服务以使其不被使用、和/或提供其他选择影响标准。
9.如前面权利要求中的任一项所述的方法,其中发起服务请求者(401)的偏好基于包括成本、效率、速度和可靠性的服务质量标准。
10.如前面权利要求中的任一项所述的方法,其中在存在发起服务请求者的偏好的情形下,该偏好优先于使用目录(411)的服务的选择。
11.如前面权利要求中的任一项所述的方法,其中如果首选服务不可用,则通过参考发起服务请求者的偏好来获得随后的服务。
12.如权利要求1至9的任一项所述的方法,其中如果没有存储发起服务请求者的偏好,则使用目录(411)的服务进行选择。
13.一种万维网服务架构,包括:
根发起服务请求者(401);
服务分层结构(401、406、408、410),其中第一层的服务调用低层的服务;
目录(411),用于在分层结构中查找服务;
排名机(405),具有用于根据关于一个或多个服务的发起服务请求者的偏好施加服务选择算法的装置;
其中,在该分层结构的每一层,目录(411)提供可能服务的集合,并且排名机(405)施加选择算法以提供首选服务序列。
14.如权利要求13所述的万维网服务架构,其中低层服务是服务请求者或服务提供者。
15.如权利要求13或权利要求14所述的万维网服务架构,其中排名机(405)通过端口(412)连接到目录(411),并且通过目录(411)将可能服务的集合提交到排名机(405),并且排名机(405)将首选服务序列返回给目录(411)。
16.如权利要求13至15的任一项所述的万维网服务架构,其中第一层的服务通过UDDI目录(411)查找低层服务。
17.如权利要求16所述的万维网服务架构,其中排名机(405)具有UDDI目录(411)上的端口(412),并且处理将TModel包转变成所选Tmodel集合的流程。
18.如权利要求16或权利要求17所述的万维网服务架构,其中每个UDDI操作被提交给排名机(405),并作为遵循服务请求者偏好的序列被返回。
19.如权利要求16至18的任一项所述的万维网服务架构,其中底层UDDI应用程序代码执行所述提交,并将排名机(405)的位置附加到随后的XML流上。
20.一种用于具有服务分层结构(401、406、408、410)的万维网服务架构的计算机程序产品,其中该分层结构包括根发起服务请求者(401),第一层的服务调用低层的服务,该计算机程序产品包括用于执行以下步骤的计算机可读程序代码装置:
发起服务请求者(401)指示关于一个或多个服务的偏好,并且排名机(405)具有基于该偏好的选择算法;
发起服务请求者(401)调用分层结构的一层或多层的服务;
在该分层结构的每一层,服务使用目录(411)来查找可能低层服务的集合;以及
排名机(405)对该可能低层服务的集合施加选择算法。
CNB03824604XA 2002-10-24 2003-04-28 用于在万维网服务架构中对服务进行排名的方法和系统 Expired - Lifetime CN100568227C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0224805.2 2002-10-24
GBGB0224805.2A GB0224805D0 (en) 2002-10-24 2002-10-24 Method and system for ranking services in a web services architecture

Publications (2)

Publication Number Publication Date
CN1689019A true CN1689019A (zh) 2005-10-26
CN100568227C CN100568227C (zh) 2009-12-09

Family

ID=9946538

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB03824604XA Expired - Lifetime CN100568227C (zh) 2002-10-24 2003-04-28 用于在万维网服务架构中对服务进行排名的方法和系统

Country Status (10)

Country Link
US (2) US8560332B2 (zh)
EP (1) EP1556807B1 (zh)
JP (1) JP4223004B2 (zh)
KR (1) KR100745480B1 (zh)
CN (1) CN100568227C (zh)
AT (1) ATE330296T1 (zh)
AU (1) AU2003227887A1 (zh)
DE (1) DE60306186T2 (zh)
GB (1) GB0224805D0 (zh)
WO (1) WO2004038621A1 (zh)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308475B1 (en) 2003-05-06 2007-12-11 F5 Networks, Inc. Method and system for accessing network services
US20050027886A1 (en) * 2003-07-03 2005-02-03 Intermec Ip Corp. Method and system for transforming non-web service enabled providers of functional services
US8346929B1 (en) 2003-08-18 2013-01-01 Oracle America, Inc. System and method for generating secure Web service architectures using a Web Services security assessment methodology
US7831693B2 (en) * 2003-08-18 2010-11-09 Oracle America, Inc. Structured methodology and design patterns for web services
US8069435B1 (en) 2003-08-18 2011-11-29 Oracle America, Inc. System and method for integration of web services
US7698398B1 (en) 2003-08-18 2010-04-13 Sun Microsystems, Inc. System and method for generating Web Service architectures using a Web Services structured methodology
US20050228808A1 (en) * 2003-08-27 2005-10-13 Ascential Software Corporation Real time data integration services for health care information data integration
US20050232046A1 (en) * 2003-08-27 2005-10-20 Ascential Software Corporation Location-based real time data integration services
US8060553B2 (en) 2003-08-27 2011-11-15 International Business Machines Corporation Service oriented architecture for a transformation function in a data integration platform
US7814470B2 (en) * 2003-08-27 2010-10-12 International Business Machines Corporation Multiple service bindings for a real time data integration service
US7814142B2 (en) * 2003-08-27 2010-10-12 International Business Machines Corporation User interface service for a services oriented architecture in a data integration platform
US20050235274A1 (en) * 2003-08-27 2005-10-20 Ascential Software Corporation Real time data integration for inventory management
WO2005022417A2 (en) * 2003-08-27 2005-03-10 Ascential Software Corporation Methods and systems for real time integration services
US20050240354A1 (en) * 2003-08-27 2005-10-27 Ascential Software Corporation Service oriented architecture for an extract function in a data integration platform
US8041760B2 (en) * 2003-08-27 2011-10-18 International Business Machines Corporation Service oriented architecture for a loading function in a data integration platform
US20050234969A1 (en) * 2003-08-27 2005-10-20 Ascential Software Corporation Services oriented architecture for handling metadata in a data integration platform
US20050262193A1 (en) * 2003-08-27 2005-11-24 Ascential Software Corporation Logging service for a services oriented architecture in a data integration platform
US20060069717A1 (en) * 2003-08-27 2006-03-30 Ascential Software Corporation Security service for a services oriented architecture in a data integration platform
US20090300161A1 (en) * 2003-11-20 2009-12-03 F5 Networks, Inc. Method and system for using feedback in accessing network services
US20050160153A1 (en) * 2004-01-21 2005-07-21 International Business Machines Corp. Publishing multipart WSDL files to URL
US7761406B2 (en) * 2004-03-16 2010-07-20 International Business Machines Corporation Regenerating data integration functions for transfer from a data integration platform
US20050243604A1 (en) * 2004-03-16 2005-11-03 Ascential Software Corporation Migrating integration processes among data integration platforms
JP2006072785A (ja) * 2004-09-03 2006-03-16 Hitachi Electronics Service Co Ltd サービス利用のためのリクエストメッセージ制御方法、および、サービス提供システム
US8375122B2 (en) * 2005-12-15 2013-02-12 International Business Machines Corporation Web service information management in service-oriented architecture applications
US8949457B1 (en) * 2007-03-08 2015-02-03 Aurea Software, Inc. Local transparent extensibility and routing slip extensibility for business process execution language
US8121117B1 (en) 2007-10-01 2012-02-21 F5 Networks, Inc. Application layer network traffic prioritization
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8806056B1 (en) 2009-11-20 2014-08-12 F5 Networks, Inc. Method for optimizing remote file saves in a failsafe way
US9420049B1 (en) 2010-06-30 2016-08-16 F5 Networks, Inc. Client side human user indicator
US9503375B1 (en) 2010-06-30 2016-11-22 F5 Networks, Inc. Methods for managing traffic in a multi-service environment and devices thereof
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US8990369B2 (en) * 2010-10-22 2015-03-24 At&T Intellectual Property I, L.P. Collaborative QoS for service oriented architectures
US8879431B2 (en) 2011-05-16 2014-11-04 F5 Networks, Inc. Method for load balancing of requests' processing of diameter servers
US8396836B1 (en) 2011-06-30 2013-03-12 F5 Networks, Inc. System for mitigating file virtualization storage import latency
US8463850B1 (en) 2011-10-26 2013-06-11 F5 Networks, Inc. System and method of algorithmically generating a server side transaction identifier
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9244843B1 (en) 2012-02-20 2016-01-26 F5 Networks, Inc. Methods for improving flow cache bandwidth utilization and devices thereof
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
EP2853074B1 (en) 2012-04-27 2021-03-24 F5 Networks, Inc Methods for optimizing service of content requests and devices thereof
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
US9578090B1 (en) 2012-11-07 2017-02-21 F5 Networks, Inc. Methods for provisioning application delivery service and devices thereof
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9497614B1 (en) 2013-02-28 2016-11-15 F5 Networks, Inc. National traffic steering device for a better control of a specific wireless/LTE network
WO2015065326A1 (en) * 2013-10-29 2015-05-07 Hewlett-Packard Development Company, L.P. Hierarchical service trees
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU9273898A (en) * 1997-10-01 1999-04-23 British Telecommunications Public Limited Company Resource management system
JP2000250992A (ja) 1999-03-02 2000-09-14 Ntt Data Corp サービス提案システム、フィルタリング装置、及び、決済処理装置
GB2349715B (en) * 1999-05-05 2003-10-01 Mitel Corp Quotation mechanism for service environments
JP2001034493A (ja) 1999-07-21 2001-02-09 Fuji Xerox Co Ltd ワークプロセス管理装置
JP2001188835A (ja) 1999-12-28 2001-07-10 Hitachi Ltd サービス提供システム
US7249100B2 (en) * 2001-05-15 2007-07-24 Nokia Corporation Service discovery access to user location
EP1421518A1 (en) * 2001-08-08 2004-05-26 Quiver, Inc. Document categorization engine
US6976027B2 (en) * 2002-08-21 2005-12-13 International Business Machines Corporation Implementing geographical taxonomy within network-accessible service registries using spatial extensions
US8495211B2 (en) * 2002-09-26 2013-07-23 Hewlett-Packard Development Company, L.P. Network service system and mechanism for searching service registries

Also Published As

Publication number Publication date
US20130346581A1 (en) 2013-12-26
EP1556807B1 (en) 2006-06-14
US20060112367A1 (en) 2006-05-25
ATE330296T1 (de) 2006-07-15
KR100745480B1 (ko) 2007-08-02
DE60306186D1 (de) 2006-07-27
AU2003227887A1 (en) 2004-05-13
EP1556807A1 (en) 2005-07-27
KR20050048679A (ko) 2005-05-24
US8560332B2 (en) 2013-10-15
GB0224805D0 (en) 2002-12-04
WO2004038621A1 (en) 2004-05-06
DE60306186T2 (de) 2007-04-19
JP2006504172A (ja) 2006-02-02
CN100568227C (zh) 2009-12-09
JP4223004B2 (ja) 2009-02-12

Similar Documents

Publication Publication Date Title
CN1689019A (zh) 用于在万维网服务架构中对服务进行排名的方法和系统
CN1197027C (zh) 计算机网络的分布式宿主构架,网页供应和内容传送方法
TWI333621B (en) Facilitating allocation of resources in a heterogeneous computing environment
CN1620653A (zh) 计算网络中服务的动态部署
CN1107270C (zh) 计算机网络
CN1176432C (zh) 提供本国语言查询服务的方法和系统
US7930698B2 (en) Distributed document handling system for carrying out a job by application services distributed over a network
US20040205493A1 (en) Web based imaging application that creates customized content based on user selections
CN1705947A (zh) 服务发现及发布
JP2006302271A (ja) ウェブサービス処理装置及び方法
KR100920595B1 (ko) 클라이언트 측 통신 프로토콜 스택 구성 방법, 프로세스 간통신 프로토콜 구성 시스템 및 머신 판독가능한 저장 장치
CN1577322A (zh) 管理数据处理系统中的应用文件的方法和装置
CN1832476A (zh) 动态服务代理
CN101075333A (zh) 计算机软件开发方法和系统
CN1140855A (zh) 一种环球网浏览器系统
CN1609873A (zh) 用于管理电子邮件和报警消息的方法,装置,以及用户界面
JPH10312350A (ja) リソース命名方法及び機構
CN1808439A (zh) 网页加入可搜索的深标签及浏览器插件和脚本结合的方法
CN1639697A (zh) 网络管理系统,显示方法和程序
CN100461174C (zh) 用于动态地创建web服务的方法和系统
TWI313819B (en) A system and method for building component applications using metadata defined mapping between message and data domains
JP4097584B2 (ja) Wwwサーバ機能を有する組み込み機器、ウェブページ提供方法、および、ウェブページ提供制御プログラム
JP4237658B2 (ja) 合成サービス提供方法、合成サービス提供システム、実行装置およびプログラム
JP2008176789A (ja) 組み込み機器、リクエスト振り分け方法、および、リクエスト振り分けプログラム
CN1751307A (zh) 一种用于存储和检索任意内容和应用数据的设计

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20091209

CX01 Expiry of patent term