CN100534047C - 对Web服务资源的基于属性的索引和/或查询方法及*** - Google Patents

对Web服务资源的基于属性的索引和/或查询方法及*** Download PDF

Info

Publication number
CN100534047C
CN100534047C CNB2006100825315A CN200610082531A CN100534047C CN 100534047 C CN100534047 C CN 100534047C CN B2006100825315 A CNB2006100825315 A CN B2006100825315A CN 200610082531 A CN200610082531 A CN 200610082531A CN 100534047 C CN100534047 C CN 100534047C
Authority
CN
China
Prior art keywords
service
service groups
groups
resource
web service
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.)
Expired - Fee Related
Application number
CNB2006100825315A
Other languages
English (en)
Other versions
CN101064641A (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
Priority to CNB2006100825315A priority Critical patent/CN100534047C/zh
Priority to US11/739,985 priority patent/US9223865B2/en
Publication of CN101064641A publication Critical patent/CN101064641A/zh
Application granted granted Critical
Publication of CN100534047C publication Critical patent/CN100534047C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • 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/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0273Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
    • H04L41/0286Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP] for search or classification or discovery of web services providing management functionalities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种用于在多个WS服务组当中创建Web服务资源的属性索引的方法和***。其中,该多个WS服务组至少包含第一服务组和一个或多个第二服务组,并且所述方法包括步骤:在第二服务组中创建第一服务组中的Web服务资源的属性的索引。本发明还提供了一种用于在多个连接的并且已经彼此创建了Web服务资源属性索引的WS服务组当中对至少具有某一属性的服务资源进行查询的方法和***。通过利用本发明,可以在多个WS服务组当中创建并且实时地更新关于分布的Web服务资源的基于属性的索引,并且可以对驻留在不同服务组上的分布的目标Web服务资源进行查询。

Description

对Web服务资源的基于属性的索引和/或查询方法及***
技术领域
本发明涉及Web服务(Web Service,有时也简称为WS)领域,并且尤其涉及用于在多个松耦合的(loosely coupled)WS服务组(WS-ServiceGroup)当中对分布的Web服务资源(WS-Resources)实现基于属性的索引和查询的方法和***。
背景技术
Web是使应用程序可以以与平台和编程语言无关的方式进行相互通信的一项技术。Web服务是面向服务的体系结构(service-orientedarchitecture,SOA)的技术基础。其中,面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(也称为服务)通过在这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。
Web服务是一个软件接口,它描述了一组可以在网络上通过标准化的XML消息传递访问的操作。它使用基于XML语言的协议来描述要执行的操作或者要与另一个Web服务交换的数据。
Web服务资源(WS-Resource)结构已经被提议作为一种表示有状态资源和Web服务之间的关系的方法。并且,迄今为至,也已经定义了几种标准来解决查询和访问Web服务的复杂问题。
一般来说,Web服务资源框架(WS-Resource framework,WSRF)定义了一组用于Web服务资源(WS-Resources)、Web服务资源属性(WS-ResourcesProperties)和WS服务组(WS-ServiceGroup)的机制。
Web服务资源框架根据特定的Web服务消息交换和相关的XML定义,而定义了Web服务资源方法的标准化描述。它通过约定的Web服务机制来使Web服务资源可以被声明、创建、访问、监测改变和销毁,但是不需要Web服务资源的Web服务组件(它提供对相关联的有状态资源的访问)被作为有状态资源处理器来实现。
其中,Web服务资源是可以通过其访问资源的Web服务。而且,Web服务资源被进一步定义如下:(1)资源的标识符必须出现作为到Web服务资源的任何消息的一部分,以允许Web服务资源建立由所述消息面向的资源的语义解释。(2)资源的属性集必须使用由XML方案描述的XML Infoset来表示。
Web服务资源属性是被定义为Web服务资源的状态模型的一部分的信息,其可以反映该资源的状态、元数据、可移植性信息等。
WS服务组(在下文中也简称为服务组)是一个Web服务资源,其表示其它Web服务或Web服务资源以及属于它们的信息的集合。组的目的是应用域特定的。
Web服务资源框架主要由五个标准化的规范所定义,其如以下的表1所示。
表1
 
名称 描述
Web服务资源生命周期(WS-ResoureeLifetime) Web服务资源的析构机制。包括消息交换,它使请求者可以立即地或者通过使用基于时间调度的资源终止机制来销毁Web服务资源。     
Web服务资源属性(WS-ResourceProperties) Web服务资源的定义,以及用于检索、更改和删除Web服务资源属性的机制。            
Web服务可更新的引用(WS-RenewableReferences) 使用在端点引用变成无效的时候所需要的用来检索更新版本的策略信息对于Web服务寻址(WS-Addressing)端点引用的约定的修饰。   
Web服务(WS)服务组(WS-ServiceGroup) 连接异构的通过引用(by-reference)的Web服务集合的接口。                         
Web服务基本错误(WS-BaseFaults) 当Web服务消息交换中返回错误的时候所使用的基本错误XML类型。                    
另外,还提出了Web服务通知(WS-Notification,WSN)的一系列规范,其用于制定在Web服务环境中创建事件驱动***的标准流程。被称为WS-Notification的一系列规范定义了一般的、基于主题的(topic-based)Web服务***,用于发布和订阅(publish/subscribe)以Web服务资源框架为基础的交互。所采用的基本方法是定义机制和接口以允许客户端订阅感兴趣的主题,例如一个Web服务资源的资源属性值的改变。
有关上述Web服务资源框架和Web服务通知的一系列规范,例如,可参见www.oasis-open.org。
在Web服务资源框架中,为了使客户端得到和设置Web服务资源的属性,仅仅定义了资源描述框架和客户端/服务器模式。
因此,当存在一个以上的服务组时,客户端需要查询服务组的所有实例来得到Web服务资源的属性。在现有技术中,没有一种更好的方式能够把多个服务组结合到一起从而使得客户端能够查询所有分布的目标Web服务资源的属性。
因此,迫切地需要有一种能够将WS服务组(以下简称为服务组)的分布的实例连接起来从而使客户端能够通过简单的操作查询目标Web服务资源的机制。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图描述本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
为了解决现有技术中的上述问题,本发明的一个目的是提供一种用于在多个WS服务组当中对Web服务资源创建和/或更新基于资源属性的索引的方法和***。
本发明的另一个目的是提供一种用于在多个已连接的并且彼此之间建立了Web服务资源属性索引的WS服务组当中查询具有某一属性的目标Web服务资源的方法和***。
本发明的再一个目的是提供一种用于实现上述基于资源属性的索引和查询方法的计算机可执行程序、其上存储有该计算机程序代码的机器可读存储介质、以及其上编码有该计算机程序代码的计算机程序产品。
为了实现上述目的,依据本发明的第一个方面,提供了一种用于在Web服务、即WS服务组当中创建Web服务资源属性索引的方法,其中该WS服务组至少包含第一服务组和一个或多个第二服务组,该方法包括以下步骤:在第二服务组中创建第一服务组中的Web服务资源的属性的索引,该步骤进一步包括步骤:从第一服务组发布关于其要作为索引的Web服务资源属性的主题;从第一服务组向订阅了其元主题的一个或多个第二服务组通知关于所述属性的子主题;在第二服务组中创建关于所述属性的索引实体;从第一服务组向第二服务组通知所述属性的值;以及,在第二服务组中根据所述属性的值处理所述属性的索引实体。其中,如果所述属性的值不在任何已有属性索引实体的范围内,则用于根据所述属性的值处理所述属性的索引实体的装置为所述值创建新的索引实体;如果所述属性的值等于作为属性索引实体的关键字的旧的值,则用于根据所述属性的值处理所述属性的索引实体的装置把所述值与该索引实体进行合并;以及如果所述属性的值在某些属性索引实体的范围之内,则用于根据所述属性的值处理所述属性的索引实体的装置对所述索引实体进行拆分。
依据本发明的第二个方面,提供了一种用于在Web服务、即WS服务组当中创建Web服务资源属性索引的***,其中该WS服务组至少包含第一服务组和一个或多个第二服务组,该***包括:用于在第二服务组中创建第一服务组中的Web服务资源的属性的索引的装置,该装置进一步包括:用于从第一服务组发布关于其要作为索引的Web服务资源属性的主题的装置;用于从第一服务组向订阅了其元主题的一个或多个第二服务组通知关于所述属性的子主题的装置;用于在第二服务组中创建关于所述属性的索引实体的装置;用于从第一服务组向第二服务组通知所述属性的值的装置;以及,用于在第二服务组中根据所述属性的值处理所述属性的索引实体的装置。其中,如果所述属性的值不在任何已有属性索引实体的范围内,则用于根据所述属性的值处理所述属性的索引实体的装置为所述值创建新的索引实体;如果所述属性的值等于作为属性索引实体的关键字的旧的值,则用于根据所述属性的值处理所述属性的索引实体的装置把所述值与该索引实体进行合并;以及如果所述属性的值在某些属性索引实体的范围之内,则用于根据所述属性的值处理所述属性的索引实体的装置对所述索引实体进行拆分。
依据本发明的第三个方面,提供了一种用于在连接的多个Web服务、即WS服务组当中对Web服务资源执行基于属性的查询的方法,其中,该WS服务组至少包含第一服务组,并且在该多个WS服务组中已经创建了与其连接的远程WS服务组中的Web服务资源的属性索引表,并且该属性索引表是实时更新的,所述方法包括以下步骤:a)在第一服务组中接收对于至少具有某一资源属性的目标Web服务资源的查询请求;b)检查关于所述属性的本地索引表;c)如果在所述本地索引表中发现具有远程服务组引用,则把所述查询请求转发到所述远程服务组;d)所述远程服务组重复上述步骤b)和步骤c),直到将所述查询请求转发到向其注册了目标Web服务资源的目标服务组为止;e)注册有目标Web服务的目标服务组接收到所述查询请求后,向从其接收了所述查询请求的服务组返回响应,该响应包括所述目标Web服务资源的端点引用和资源属性;以及,f)第一服务组从接收了所述响应的服务组获得所述响应。
依据本发明的第四个方面,提供了一种用于在连接的多个Web服务、即WS服务组当中对Web服务资源执行基于属性的查询的***,其中,该WS服务组至少包含第一服务组,并且在该多个WS服务组中已经创建了与其连接的远程WS服务组中的Web服务资源的属性索引表,并且该属性索引表是实时更新的,所述***包括:用于在第一服务组中接收对于至少具有某一资源属性的目标Web服务资源的查询请求的装置;用于检查关于所述属性的本地索引表的装置;用于如果在所述本地索引表中发现具有远程服务组引用,则把所述查询请求转发到所述远程服务组的装置;注册有目标Web服务的目标服务组接收到所述查询请求后、向从其接收了所述查询请求的服务组返回响应的装置,该响应包括所述目标Web服务资源的端点引用和资源属性;以及,用于在第一服务组中从接收了所述响应的服务组获得所述响应的装置。
依据本发明的其它方面,还提供了一种用于执行上述方法步骤的计算机可执行程序、其上存储有该计算机程序的代码的机器可读存储介质、以及其上编码有该计算机程序的代码的计算机程序产品。
本发明的一个优点在于,通过利用依据本发明的索引方法,可以在多个松耦合的WS服务组当中创建Web服务资源的基于资源属性的索引表,并且还可以根据需要实现对同一服务资源的多维索引。
本发明的另一个优点在于,通过利用依据本发明的索引方法,当某一WS服务组中的资源属性发生变化时,该服务组会向所有连接的WS服务组通知所述变化,从而实时地更新服务资源索引表。
本发明的又一个优点在于,通过利用依据本发明的查询方法,可以快速地对驻留在不同服务组上的多个目标Web服务资源的Web服务资源属性进行查询,而不需要像在现有技术中那样要查询所有的WS服务组实例。
本发明还有的另一个优点在于,通过利用本发明,还可以基于组合的查询条件进行目标Web服务资源的查询,而不需要在客户端进行复杂的操作,从而大大地简化了查询操作的处理,并且提高了查询处理速度。
通过以下结合附图对本发明的最佳实施例的详细说明,本发明的上述这些特征和优点以及其他特征和优点将变得更加明显。
附图说明
本发明可以通过参考下文中结合附图所进行的描述而得到更好的理解,并且在所有附图中,使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。在附图中:
图1示出了一个用于服务组间属性索引的、具有两级主题结构的主题空间的示例;
图2示出了根据本发明的实施例、用于分布的Web服务资源属性索引的服务组管理器的结构;
图3示出了一个将要在其中应用根据本发明的索引方法的示例环境;
图4示出了依据本发明的一个实施例、在如图3所示的四个服务组当中创建Web服务资源的属性索引表的处理;
图5示出了在图3所示的示例环境中应用了图4所示的处理之后的示例环境;以及
图6示出了依据本发明的一个实施例、在如图5所示的四个服务组当中执行对于至少具有某一属性的目标Web服务资源的查询的处理。
本领域技术人员将会理解的是,附图中的元件仅仅是为了简单和清楚起见而示出的,而且不一定是按比例绘制的。例如,附图中某些元件的尺寸可能相对于其他元件放大了,以便有助于提高对本发明实施例的理解。
具体实施方式
在下文中将对本发明的示范性实施例进行描述。为了清楚起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如符合那些与***及业务相关的限制条件,其中这些限制条件会随着实施方式的不同而改变。此外,还应该了解,虽然开发工作有可能非常复杂和费时,但对得益于本公开的本领域技术人员来说,这种开发工作仅仅是例行任务。
为了使本领域技术人员和公众在不参考其它文献的情况下更好地理解本发明,在结合附图详细描述本发明的具体实施例之前,先对本发明中所涉及的相关技术进行简单的介绍。
在本发明中,需要把多个WS服务组连接起来,并且经由Web服务通知在连接的多个服务组之间交换信息。也就是说,当服务组B要获得服务组A中的Web服务资源的基于属性的索引时,服务组B必须被实现为通知消费者(NotificationConsumer),以便作为订阅者向服务组A订阅与被索引的属性相关联的Web服务资源的任何改变,而服务组A必须被实现为通知生成者(NotificationProducer),以便发布一组用于将被索引的资源属性的主题和值。
通知可以涉及任何事情,包括资源属性的值的改变、通知生成者的状态中的某些其他的内部改变、或者环境中的某些其他“情况”。订阅者通过发出“订阅”消息来注册希望收到关于一个或者多个主题的通知消息。在响应中,订阅者收到由“订阅”Web服务资源的Web服务资源限定的端点引用(endpoint reference)。订阅Web服务资源对订阅者和生成者之间的这种关系进行建模,并使用WS-ResourceProperties和WSResourceLifetime来帮助管理这种关系。
主题是组织通知消息的机制,以便订阅者能够方便地了解可以订阅哪些类型的通知。主题可以按层次来组织;一个主题可以进一步分解成子主题。
所有连接的服务组都必须发布一组由统一的主题空间(TopicSpace)定义的主题。在主题空间中,应当定义有至少两级的主题结构。
对于每一个由本地服务组提供索引的外部服务组来说,可建立一个独立的主题空间,或共享一个公用主题空间。当共享一个公用主题空间时,对于每一个外部服务组,只定义一个根主题,其被称为元主题(meta topic),并且所述根主题的子节点是将被索引的资源属性的主题。取决于实现方式,不同服务组的元主题可以是相同的,也可以是不同的。在元主题不同的时候,应当根据WS-Notification规范为不同层次的相同资源属性的所有主题声明AliasRef。
服务组选择用于进行索引的资源属性,并且为用于索引的每个属性建立一个索引表(即属性索引表)。
资源属性的主题是特定资源属性的WS通知主题。它用于使服务组通知其它连接的服务组实例改变被索引的属性的状态。它还定义了对属性值进行分解(tokenize)的规则。根据上述这种规则将对资源属性的值进行分解,并且对其进行比较,然后将其填充在索引表中。结果必须包含一个或多个资元素(token)。
以下是使用特定规则<->的一个例子:
Location:<Asia-China-Bejing>
  (包含三级资元素Asia,China,Bejing)
EPR:<com.ibm.cn.csdl.wsgroup/sample>
  (包含唯一不可分节资元素)
WSDL:http://example.com/foo.wsdl
  (包含唯一不可分节资元素)
下面将结合附图详细地描述根据本发明的具体实施例。
以下在包括Web服务和资源的分布式计算环境中对本发明进行说明。
图1示出了一个用于在服务组间进行基于属性的索引的、具有两级主题结构的主题空间的示例。在图1所示的示例中,仅仅是为了简单起见而将主题空间显示为具有两级主题结构,然而,根据需要,它也可以具有多级主题结构。
可以基于相同的主题空间经由Web服务通知将多个服务组连接起来。
图2示出了根据本发明实施例、用于分布的Web服务资源的属性索引的服务组管理器201的结构。
如图2所示,该服务组管理器201主要包含实体资源属性表202、元主题的索引表203、远程服务组的引用表205、资源管理器206、索引管理器207、通知管理器208、主题空间209等。
在此需要说明的是,为了简单和清楚起见,图2中仅仅示出了服务组管理器中与本发明相关的几个构成组件。但是,根据需要或者实际要求,显然,服务组管理器201中还可以包含其它的组件。
实体资源属性表202是一个关于所有直接注册到WS服务组管理器201的Web服务资源的表。它包含由WS服务组规范为所有注册的Web服务资源定义的服务组实体(ServiceGroupEntities)。如图2中所示,实体资源属性表202包括服务组实体1、......、N,其中N为自然数。
元主题的索引表203是一个与元主题相关联的二维索引表,其中,属性名称为1级表,而索引实体为2级表。它包括用于属性1的属性索引表204-1、用于属性2的属性索引表204-2、......、以及用于属性M的属性索引表204-M,其中M为自然数。
在下文中,为了简单起见,将这些属性索引表204-1、204-2、......、204-M等合称为属性索引表204。属性索引表204由成对的值和源列表构成,它是用于特定属性主题的索引表。正如上文中所述的那样,为用于索引的每个属性建立一个索引表。
每个属性索引表204中可以包括多个属性索引实体,例如,如图2所示,属性索引表204-1包括属性索引实体1、......、I,属性索引表204-2包括属性索引实体1、......、J,......,属性索引表204-M包括属性索引实体1、......、K,其中I、J、......、K均为自然数。
每个属性索引实体表示相对应的资源属性的值的范围、以及注册值的路径。在本发明的一个优选实施例中,它包含以下字段:
√开始值:属性的范围的开始值,在这个范围内从这个值开始的单个值是从源列表中的服务组的实例中注册的。
√结束值:对于这个索引实体而言,属性的范围的结束值。
√源列表:对服务组的所连接的实例和附加信息的端点引用的列表。列表中的所有实例是在这个索引实体的范围之内的属性值的源。
√附加信息:除了上述信息之外的其它信息。
当然,根据需要或是要求,属性索引实体中可以包含上述字段中的部分字段,或者也可以包含其它字段。
另外,还需要说明的是,为了避免随机增加的索引,将被披露为索引的属性应当属于一个公用的属性配置文件。附加的索引属性应当根据服务组团体当中的管理和协定来添加。
远程服务组的引用表205是包含所有直接连接的服务组的服务组引用和附加的元数据的表。依据Web服务资源属性(WS-ResourceProperties)规范中的定义,服务组引用是在Web服务寻址(WS-Addressing)规范中定义的端点引用。远程服务组的引用表205中可以包括多个服务组引用,例如服务组引用1、2、......、P,其中P为自然数。
资源管理器206是用于处理ServiceGroupMember(服务组成员)注册的请求和资源属性的查询的组件。它实现由WS服务组规范定义的服务组接口。它管理注册到它的服务组成员,并且还基于索引管理器207查询远程的资源属性。
索引管理器207是用于处理本地索引表和索引操作的组件,其可以提供以下功能:
√提供用于使资源管理器206查询远程资源属性的索引信息;
√检索本地服务组成员的索引信息;
√更新由通知管理器208触发的远程资源属性的索引信息;以及
√提供用于使用户检索索引的元信息的索引信息。
通知管理器208是用于在所连接的服务组当中管理连接的组件,其可以提供以下功能:
√实现NotificationProducer接口,并发布在主题空间209中描述的主题;
√实现NotificationConsumer接口,以从其它服务组中接收通知消息,并且调用索引管理器以改变索引表的内容;
√依据将被索引的执行属性的改变,管理主题空间;以及
√实现订阅管理器(SubscriptionManager)接口,以允许其它服务组订阅主题空间中定义的主题。
主题空间209是描述了如图1所示的主题空间的数据结构,其中包含了本地服务组所发布的主题。
在此,需要说明的是,虽然在本说明书中使用了“实体资源属性表”这一术语,但是本领域技术人员应当明白,依据Web服务的有关规范,在服务组之间执行查询Web服务资源和属性的操作时,需要通过资源管理器206获得各个服务组实体1、2、......、N,从而动态地生成一个包含了上述各个服务组实体的实体资源属性表,但是,该表格并不一定物理地存在于服务组管理器201中,也就是说,上述各个服务组实体也可能分离地存储在服务组管理器201中。
另外,还需要说明的是,虽然在本说明书中使用了“主题空间”这一术语,但是本领域技术人员应当明白,根据具体实现方式的不同,主题空间209也可能是包含多个主题空间结构的数据库结构。
接下来,将详细介绍依据本发明的一个实施例、在服务组之间如何建立连接和索引的过程。
为了更好地解释在多个服务组之间进行交互的处理过程,以下以四个服务组1、2、3和4为例进行说明,并且假设它们在初始状态时处于图3所示的示例环境下。
图3示出了一个将要在其中应用根据本发明的索引方法的示例环境。如图3所示,在该示例环境下,在服务组2、3和4之间已经建立了连接(为了简单起见,该连接在图中用连线示意地表示),并且其相互之间的索引方向如图中的箭头方向所示。
如图3中所示,在服务组2、3和4之间建立了全连接(即,双向连接),也就是说,在服务组2和3之间、服务组2和4之间、以及服务组3和4之间均建立了双向的索引。
在上述各个服务组1-4中,均包括有以上结合图2所描述的服务组管理器。
依据本发明,如果服务组1请求连接到服务组2,则需要在服务组1与其它服务组2、3和4之间建立连接,并且根据实际情况和约定在服务组1-4中创建分布的Web服务资源的基于属性的索引表。这个处理过程如图4所示。
图4示出了依据本发明的一个实施例、在如图3所示的四个服务组1-4当中创建连接和资源属性的索引表的处理。
需要说明的是,在图4中,为了简单和清楚起见,仅仅示出了与本发明的处理密切相关的处理步骤。
如方框401所示,当服务组1希望连接到服务组2时,它应当依据有关的策略,确定将要被披露为索引的属性、例如属性P1和P2,并且添加和发布与该属性、即P1和P2有关的新主题作为其元主题的子节点,即,会修改服务组1的主题空间的结构。同时,服务组1还会为所述属性P1和P2分别创建一个属性索引表。
在此,根据需要,属性P1和P2可以是任何适于作为索引的任意属性,例如服务组的位置(location)等。在当前实施例中,假设P1=位置,P2=NoSinglePointOfFailure。当然,它们也可以是其它属性。而且,根据实际需要,也可以使用两个或两个以上的属性,甚至也可以仅仅只使用一个属性。
如果服务组2发现存在一个服务组1,并希望与之进行连接,则在这两个服务组之间创建连接。这个发现过程可以是一个自动发现的过程,例如基于广播的的自动发现,当然也可以采用其它方式。
为了说明的简单起见,在本实施例中,假设在服务组1和2之间约定建立单向的连接,并且假设在服务组2中创建服务组1中的Web服务资源的属性索引。
在服务组1和2之间建立连接后,如方框402所示,希望从服务组1获得索引的服务组2向服务组1订阅其元主题。即,服务组2作为NotificationConsumer,而服务组1作为NotificationProducer,由服务组1向服务组2通知上述属性索引表的创建。
在服务组2作为订阅者订阅了服务组1的元主题后,如方框403所示,作为NotificationProducer的服务组1向所有订阅了其元主题的服务组(在本实施例中,是作为订阅者的服务组2)通知与它所发布的属性有关的子主题,即有关属性P1和P2的子主题。
服务组2在接收到来自服务组1的通知后,如方框404所示,判断在服务组2中是否已经创建了(或者是否存在)相同属性P1和P2的主题和索引表。
如果服务组2在方框404中确定已经创建了(或存在)相同属性的主题和索引表,则如方框405所示,服务组2忽略来自服务组1的上述通知消息。
否则,如果在方框404中确定服务组2中不存在相同属性P1和P2的主题和索引表,则如方框406所示,发布与属性P1和P2有关的新主题,并且创建用于上述属性的索引表。如以上结合图2所述的,该索引表中包含属性P1和P2的索引实体。
下面的表2是在本发明的一个实施例中用于属性P1=位置的属性表的一个例子:
表2
 
Asia-China-Beijing SG1
Asia-China-ShangHai SG3,SG4
Europe-England-Hursly SG3,SG4
由于在当前的如图3所示的示例环境中服务组2还与服务组3和4进行双向连接,所以服务组2在执行了如方框406所示的操作之后,还会如方框407所示,向所有那些与服务组2直接连接并且订阅了其元主题的NotificationConsumer、即服务组3和4通知属性P1和P2的新主题。
对于服务组1而言,在执行了如方框403所示的操作之后,还会如方框408所示,向所有订阅了其元主题的服务组(在本实施例中,是服务组2)通知用于进行索引的属性P1和P2的新值。这些值来自于所有向服务组1注册的服务组成员。
在此,需要说明的是,由于实现方式等的不同,方框408和方框404、405所示的操作可以是同时执行的,也可以不是同时执行的。
如方框409所示,服务组2在从服务组1接收到关于属性P1和P2的新值的通知消息后,根据所述值对属性P1和P2的索引实体进行适当的处理,即,根据所述值是否包含在任何已有索引实体的范围内,创建、合并或者拆分关于属性P1和P2的值的一个或多个索引实体。具体来说,如果所述值不在任何已有索引实体的范围内,则服务组2为所述值创建新的索引实体;如果所述值等于作为索引实体的关键字的旧的值,则服务组2将会通过把服务组1的引用添加到其源列表中,来把所述值与该已有的索引实体进行合并;如果所述值在某些索引实体的值的范围之内,则服务组2会将这些索引实体拆分为一个以上的、具有不同的值范围和源列表的实体。
例如,如果初始索引实体为:(基于某标准的服务分类值)200-205->(索引地址)source1.foo.com,新的索引实体为:203->source2.foo.com,则如下三个索引实体将被拆分产生:
200-202->source1.foo.com
203-203->source1.foo.com;source2.com
204-205->source1.foo.com
接下来,如方框410所示,服务组2会将属性P1和P2的新值通知给所有与其直接连接并且订阅了其元主题的服务组,也就是说,服务组2会将属性P1和P2的新值通知给服务组3和4。
以上仅仅说明了在服务组1和2之间如何建立连接和索引表的处理。然而,由于如上文中所假设的,在服务组2、3和4之间建立了双向连接,也就是说,服务组3和4相对于服务组2来说是NotificationConsumer,但是彼此之间则可以互相作为对方的NotificationProducer和NotificationConsumer。因此,对于服务组3和4来说,也要执行与服务组2类似的处理,如图4中的方框411-414所示。
具体来说,服务组3和4在从服务组2接收到关于属性P1和P2的新主题时,如方框411和412所示,分别执行与方框404-407所示的操作相类似的处理,即判断是否存在与属性P1和P2有关的主题和索引表,而且在确定其中不存在相同属性的主题和索引表的情况下,发布属性P1和P2的新主题,创建用于上述属性的索引表,并且向所有与其直接连接并且订阅了其元主题的NotificationConsumer通知属性P1和P2的新主题。也就是说,服务组3和4之间会相互通知属性P1和P2的新主题。
而且,服务组3和4在从服务组2接收到关于属性P1和P2的新值之后,如方框413和414所示,执行与方框409和410所示的操作相类似的处理,即,根据所述值,创建、合并或者拆分关于属性P1和P2的值的一个或多个索引实体,并且将属性P1和P2的新值通知给所有与其直接连接并且订阅了其元主题的服务组。也就是说,服务组3和4之间会相互通知属性P1和P2的新值。
与服务组2不同的是,服务组3和4会接收到来自对方的关于属性P1和P2的新值的通知消息,也就是说,服务组3和4会从不同的路径中接收到属性P1和P2的新主题和新值,因此,如方框415和416所示,在服务组3和4中需要合并关于属性P1和P2的索引实体。
以上结合图4说明了在如图3所示的示例环境中当服务组1连接到服务组2时所执行的创建Web服务资源属性索引表的处理。
在上述创建处理之后,服务组2、3和4中就已经建立了关于服务组1中的Web服务资源的索引表。
在此之后,当服务组1中的Web服务资源属性发生改变时,它需要通知其所连接的服务组2-4,也就是说,需要更新上述索引表。该更新的过程与上述创建的过程类似,因此,为了简明起见,在此就不再对更新处理进行了进一步说明了,以避免重复。
以上描述了在如图3所示的示例环境(其中,服务组1和2之间建立了单向连接,而在服务组2、3和4之间建立了双向连接)中进行的创建和/或更新属性索引表的处理。但是,显然,实际上可能有其它数目的服务组,并且服务组1、2、3和4之间也可以有其它的连接关系。取决于服务组的数目以及各服务组之间的连接关系的不同,上述图4所示的创建(和/或更新)Web服务资源属性索引表的处理也可能是不同的。
例如,在其它条件不变并且仅仅在服务组3和4之间建立单向连接的情况下,在此假设在服务组4中创建关于服务组3中的分布的Web服务资源的属性索引表,则服务组3向服务组4通知属性P1和P2的新主题和新值,而不再是像在上文中那样在服务组3和4之间进行相互通知的过程,而且服务组3和4也就没用必要执行如方框415和416所示的处理了。
另外,在上述示例环境中,如果在服务组1和2之间可以建立双向连接的话,则除了以上结合图4所述的操作处理外,服务组1和服务组2之间还可以是NotificationConsumer和NotificationProducer的关系,即,在服务组1中也要创建关于服务组2中的Web服务资源的属性索引表,并且还要经由服务组2创建关于服务组3和4中的Web服务资源的属性索引表。
在如以上结合图4所述的那样在如图3所示的四个服务组1-4之间创建/更新了Web服务资源属性索引表后的示例环境,如图5所示。
以下结合图6的流程图说明在图5所示的示例环境中如何实现关于Web服务资源的基于属性的查询。
图6示出了依据本发明的一个实施例、在图5所示的四个服务组当中执行对于分布的Web服务资源的基于属性的查询的处理。
这类查询操作用于查找驻留在不同服务组上的所有分布的Web服务资源,并且它们的属性可以满足请求者的需求。例如,复杂的查询能够使用XQuery和Qpath来得以支持。这种查询的结果是对Web服务资源的一组引用以及相对应的资源属性。
为了便于说明,在此假设在服务组4中接收到对于目标Web服务资源的查询请求,并且还假设所要查询的目标Web服务资源注册在服务组1中。
如方框601所示,服务组4接收到对于具有某些查询参数、即属性p1=A和p2=B的所有Web服务资源的查询请求。
例如,在本发明的一个优选实施例中,可以取A=Asia-China-Beijing,B=True。
接下来,如方框602所示,服务组4独立地检查关于属性p1和p2的本地索引表。
然后,如方框603所示,将在前一处理步骤中得到的两个本地索引表的结果进行合并,并且从其中的两个源列表中查找统一的路径。也就是说,如果在两个索引表中具有属性实体,并且在两个源列表中具有相同的服务组引用,则服务组4把查询请求转发到这种服务组。
具体来说,如果在得到的结果的引用表中具有远程服务组引用,则如方框604所示,本地服务组、即服务组4把上述查询请求中继到所述远程服务组;如果在得到的结果的引用表中具有本地引用,则如方框605所示,服务组4检索本地服务组成员的相关信息。
由于在本实施例中假设目标Web服务资源存在于服务组1中,所以在方框603所示的操作中得到的结果的引用表中会仅具有远程服务组引用,即对服务组2和3的引用,因此,如方框604所示,服务组4把上述查询请求中继(转发)给服务组2和3。
服务组3和2在接收到来自服务组4的上述查询请求后,如方框606和607所示,执行与方框602-605中所示的操作类似的处理,即检查属性P1和P2的索引表,合并检查结果并从两个源列表中查找统一的路径,并且由于以上假设目标Web服务资源注册在服务组1中,因此在其结果引用表中会分别具有远程服务组1和2,因此,服务组3和2还会分别将上述查询请求转发到服务组1和2。
通过上述处理后,对于服务组2来说,会先后(或者也可能是同时地)接收到从服务组4和3传来的同一查询者的重复的查询请求,即,如方框609所示,服务组2会发现从不同的路径中接收了2个重复的查询请求(即,分别来自于服务组4和服务组3中),则服务组2会忽略最新的一个请求,例如,忽略(或是拒绝)来自服务组3的查询请求。
注册有目标Web服务资源的服务组1在接收到来自服务组2的上述查询请求后,如方框608所示,对上述查询请求做出响应,向服务组2返回端点引用和有关的资源属性。
在此,需要说明的一点是,方框608和609所示的操作有可能是同时执行的,当然,也可以是在时间上先后执行的,而且取决于实际的情况,哪个操作先执行都是有可能的。
服务组2在接收到来自服务组1的响应后,如方框610所示,将该响应中继到服务组4。
服务组4在从服务组2接收了所示响应后,如方框611所示,对其进行必要的处理,并且将处理后的结果作为最终的查询结果发送给提出上述查询请求的请求者,从而结束了对Web服务资源的查询处理。
在此需要说明的是,虽然以上就在如图5所示的示例环境下描述了在服务组4中对分布的Web服务资源执行基于属性的查询的处理,但是,本领域技术人员应当明白,取决于所连接的服务组的数目以及各个服务组之间的连接关系的不同,上述查询处理的步骤也可能是不同的。
例如,由于在上述实施例中假设目标Web服务资源注册在服务组1中,所以服务组4仅仅经由服务组2接收到来自服务组1的对查询请求的响应。然而,在实际的处理中,目标Web服务资源也有可能注册在不只一个的服务组中,因此,服务组4会从不同路径中接收到对所述查询请求的响应,因此需要在如方框611所示的操作步骤中合并来自不同路径的查询结果,然后将合并后的查询结果发送给请求者。
在上文中以4个服务组为例,结合图4和图6中的流程图分别对在多个服务组当中如何创建和/或更新Web服务资源属性索引表的处理、以及如何执行基于属性的Web服务资源查询的处理进行了说明,但是,对于本领域技术人员来说,取决于具体实现方式的不同,例如,由于服务组数目的不同和各个服务组间的连接关系的不同,上述图4和图6所示的处理流程显然也可以有其它形式的变体。
举例来说,在具有4个以上的服务组的情况下,例如,在除了具有上述四个服务组1-4之外还有一个服务组5与服务组3或4直接双向连接并且向其订阅了其元主题的情况下,在创建Web服务资源的属性索引表的过程中,服务组3或4会以与服务组2类似的方式,向服务组5通知属性P1和P2的主题和值,而服务组5会以与服务组3或4类似的方式,在服务组5中创建属性P1和P2的索引表。也就是说,在多个WS服务组当中,接收了属性P1和P2的主题和值的服务组创建所述属性的索引表,并且还会向订阅了其元主题的服务组通知上述属性P1和P2的主题和值,直至在所有连接的服务组中都已经创建了属性P1和P2的索引表为止。
另外,例如,假设除了具有上述四个服务组1-4之外,还有一个或多个服务组5连接在服务组1和2之间,并且具有从服务组2经由服务组5至服务组1的索引方向的情况下,在从服务组4执行上述查询时,服务组2经由所述一个或多个服务组5将查询请求转发到注册有目标Web服务资源的服务组1。
除了以上举出的例子之外,在实际的现实生活中,还存在各种各样更为复杂的情况,显然在本说明书中不可能对此进行一一说明,因此在本说明书中仅仅是对本发明的原理进行了说明。本领域技术人员根据以上对本发明原理的描述,可以根据实际的具体情况改变在上文中结合图4和图6所描述的处理流程。
从以上的描述中可以很明显地看出,利用本发明的上述方法,通过采用Web服务通知(WS-Notification)规范,可以在多个松耦合的Web服务(WS)服务组当中创建关于分布的Web服务资源的属性索引表,并且可以根据需要对同一服务资源采用多个索引,以实现资源的多维索引,从而可以在多个服务组之间更好地共享Web服务资源。
不仅如此,而且在某一服务组中的资源属性发生变化时,该服务组会向所有与其直接连接并且订阅了其元主题的服务组通知该属性变化,从而可以在多个连接的WS服务组当中实时地更新服务资源的属性索引表。
此外,利用本发明的上述方法,不需要客户端进行复杂的操作,就可以根据客户端的查询请求,基于组合的查询条件,对驻留在不同服务组上的多个目标Web服务资源的Web服务资源属性进行复杂的查询,从而大大地简化了查询操作处理。
此外,应当注意的是,上面所描述的具体实施方式仅仅用于对本发明进行举例说明,并且其中的某些细节是为了便于公众理解而给出的,并不构成对本发明的限制。
另外,虽然以上结合方法的流程图描述了如何在多个服务组当中创建和/或更新Web服务资源属性索引表、以及如何执行基于属性的Web服务资源查询的处理,但是,本领域的技术人员显然应当明白,上述处理流程也可以用模块化的硬件结构来实现。
在本发明的另一个优选实施例中,还提供了一种用于在Web服务(即WS)服务组当中创建Web服务资源属性索引的***,其中该WS服务组至少包含第一服务组和一个或多个第二服务组。
该创建Web服务资源属性索引的***包括:用于在第二服务组中创建第一服务组中的Web服务资源的属性的索引的装置,该装置进一步包括:用于从第一服务组发布关于其要作为索引的Web服务资源属性的主题的装置;用于从第一服务组向订阅了其元主题的一个或多个第二服务组通知关于所述属性的子主题的装置;用于在第二服务组中创建关于所述属性的索引实体的装置;用于从第一服务组向第二服务组通知所述属性的值的装置;以及,用于在第二服务组中根据所述属性的值处理所述属性的索引实体的装置。
在上述***中,如果在第二服务组中存在所述属性的主题和索引实体,则用于在第二服务组中创建关于所述属性的索引实体的装置忽略来自第一服务组的关于所述属性的子主题的通知。
另外,在上述***中,如果所述属性的值不在任何已有属性索引实体的范围内,则用于根据所述属性的值处理所述属性的索引实体的装置为所述值创建新的索引实体;如果所述属性的值等于作为属性索引实体的关键字的旧的值,则用于根据所述属性的值处理所述属性的索引实体的装置把所述值与该索引实体进行合并;如果所述属性的值在某些属性索引实体的范围之内,则用于根据所述属性的值处理所述属性的索引实体的装置对所述索引实体进行拆分。
此外,在一个进一步的优选实施例中,该***进一步包括:用于在第三服务组中创建所述属性的索引的装置,该装置进一步包括:用于从第二服务组发布关于所述属性的主题的装置;用于从第二服务组向订阅了其元主题的一个或多个第三服务组通知所述属性的主题和值的装置;以及,用于在第三服务组中创建并处理关于所述属性的索引实体。
在上述***中,可以进一步包括用于执行以下操作的装置:以与第三服务组类似的方式,在向第三服务组订阅了其元主题的一个或多个第四服务组中创建所述属性的索引,并重复上述步骤,直至所有连接的WS服务组中均已创建了所述属性的索引实体为止。
此外,在上述***中,还可以进一步包括:当接收了所述属性的主题和值的服务组从不同的路径接收到所述属性的主题和值时,对不同路径的所述属性的索引实体进行合并的装置。
在上述***中,当第一服务组中的Web服务资源属性发生变化时,从第一服务组向所有连接的WS服务组通知所述变化,以更新在所有连接的WS服务组中创建的所述属性的索引实体。
在上述***中,可以进一步包括:当第一服务组和第二服务组之间的连接是双向连接时,在第一服务组中创建第二服务组中的Web服务资源属性的索引的装置。
在上述的任何一个***中,对于同一Web服务资源,作为索引的服务资源属性可以不只一个。
在一个优选实施例中,作为索引的服务资源属性是资源的位置。
在上述的任何一个***中,用于创建关于所述属性的索引实体的装置创建关于所述属性的索引表,该索引表包含所述属性的所有索引实体。
除了提供上述***之外,在本发明的另一个优选实施例中,还提供了一种用于在连接的多个Web服务、即WS服务组当中对Web服务资源执行基于属性的查询的***,其中,该WS服务组至少包含第一服务组,并且在该多个WS服务组中已经创建了与其连接的远程WS服务组中的Web服务资源的属性索引表,并且该属性索引表是实时更新的。
所述查询***包括:用于在第一服务组中接收对于至少具有某一资源属性的目标Web服务资源的查询请求的装置;用于检查关于所述属性的本地索引表的装置;用于如果在所述本地索引表中发现具有远程服务组引用,则把所述查询请求转发到所述远程服务组的装置;注册有目标Web服务的目标服务组接收到所述查询请求后、向从其接收了所述查询请求的服务组返回响应的装置,该响应包括所述目标Web服务资源的端点引用和资源属性;以及,用于在第一服务组中从接收了所述响应的服务组获得所述响应的装置。
在上述查询***中,进一步包括:如果第一服务组在所述本地索引表中发现本地引用,则检索本地服务组成员的相关信息,以获得目标Web服务资源的端点引用和资源属性的装置。
此外,在上述查询***中,可以进一步包括:用于将在本地获得的目标Web服务资源的端点引用和资源属性与从其它服务组获得的目标Web服务资源的端点引用和资源属性进行处理,以获得最终的查询结果的装置。
在上述查询***中,用于在第一服务组中从接收了所述响应的服务组获得所述响应的装置,从接收了所述响应的服务组经由连接在该服务组与第一服务组之间的中间服务组获得所述响应。
在上述查询***中,还可以进一步包括:用于如果在服务组中找到不只一个关于所述属性的本地索引表,则将找到的本地索引表结果进行合并的装置。
在所述查询***中,可以进一步包括:用于如果先后从不同的路径获得了重复的所述查询请求,则拒绝在后的查询请求的装置。
在上述的任何一个查询***中,所述查询请求可以是对具有两个或两个以上的资源属性的Web服务资源的查询请求。
在一个优选实施例中,所述资源属性是Web服务资源的位置。
在此,为了使本说明书简洁起见,在本说明书中并未示出依据本发明的上述***的结构框图,而是仅仅给出了以上的简单文字说明。尽管如此,但是,对于本领域技术人员来说,在阅读了以上对上述用于创建索引的***和用于执行查询的***的简单文字说明之后,不需要花费创造性的劳动就可以很容易地绘制出该***的结构框图。
此外,显然,根据本发明的上述方法的各个操作过程也可以以存储在各种机器可读的存储介质中的计算机可执行程序的方式实现。
而且,本发明的目的也可以通过下述方式实现:将存储有上述可执行程序代码的存储介质直接或者间接地提供给***或设备,并且该***或设备中的计算机或者中央处理单元(CPU)读出并执行上述程序代码。
此时,只要该***或者设备具有执行程序的功能,则实施的方式不局限于程序,并且该程序也可以是任意的形式,例如,目标程序、解释器执行的程序或者提供给操作***的脚本程序等
上述这些机器可读存储介质包括但不限于:各种存储器和存储单元,半导体设备,磁盘单元例如光、磁和磁光盘,以及其它适于存储信息的介质等。
另外,客户计算机通过连接到因特网上的相应网站,并且将依据本发明的计算机程序代码下载和安装到计算机中然后执行该程序,也可以实现本发明。
最后,还需要说明的是,在本文中,诸如左和右、第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上虽然结合附图详细描述了本发明的实施例,但是对于本领域的技术人员来说,仍可以对上述实施方式作出各种修改和变更而不背离本发明的实质和范围。因此,本发明的范围仅由所附权利要求及其等效含义来限定。

Claims (36)

1、一种用于在Web服务组当中创建Web服务资源属性索引的方法,其中该Web服务组至少包含第一服务组和一个或多个第二服务组,该方法包括以下步骤:
在第二服务组中创建第一服务组中的Web服务资源的属性的索引,该步骤进一步包括步骤:
从第一服务组发布关于其要作为索引的Web服务资源属性的主题;
从第一服务组向订阅了其元主题的一个或多个第二服务组通知关于所述属性的子主题;
在第二服务组中创建关于所述属性的索引实体;
从第一服务组向第二服务组通知所述属性的值;以及
在第二服务组中根据所述属性的值处理所述属性的索引实体,其中:
如果所述属性的值不在任何已有属性索引实体的范围内,则在第二服务组中为所述值创建新的索引实体;
如果所述属性的值等于作为属性索引实体的关键字的旧的值,则在第二服务组中把所述值与该索引实体进行合并;以及
如果所述属性的值在某些属性索引实体的范围之内,则在第二服务组中对所述索引实体进行拆分。
2、根据权利要求1所述的方法,其中,在第二服务组中创建关于所述属性的索引实体的步骤还包括:
如果在第二服务组中存在所述属性的主题和索引实体,则忽略来自第一服务组的、关于所述属性的子主题的通知。
3、根据权利要求1所述的方法,进一步包括以下步骤:在第三服务组中创建所述属性的索引,该步骤进一步包括:
从第二服务组发布关于所述属性的主题;
从第二服务组向订阅了其元主题的一个或多个第三服务组通知所述属性的主题和值;以及
在第三服务组中创建并处理关于所述属性的索引实体。
4、根据权利要求1所述的方法,进一步包括步骤:
以与第三服务组类似的方式,在向第三服务组订阅了其元主题的一个或多个第四服务组中创建所述属性的索引,并重复上述步骤,直至所有连接的Web服务组中均已创建了所述属性的索引实体为止。
5、根据权利要求4所述的方法,进一步包括步骤:
当接收了所述属性的主题和值的服务组从不同的路径接收到所述属性的主题和值时,对不同路径的所述属性的索引实体进行合并。
6、根据权利要求4所述的方法,进一步包括步骤:
当第一服务组中的Web服务资源属性发生变化时,从第一服务组向所有连接的Web服务组通知所述变化,以更新在所有连接的Web服务组中创建的所述属性的索引实体。
7、根据权利要求1所述的方法,进一步包括步骤:
当第一服务组和第二服务组之间的连接是双向连接时,在第一服务组中创建第二服务组中的Web服务资源属性的索引。
8、根据权利要求1至7中任何一项所述的方法,其中,对于同一Web服务资源,作为索引的服务资源属性可以不只一个。
9、根据权利要求1至7中任何一项所述的方法,其中,作为索引的服务资源属性是资源的位置。
10.根据权利要求1至7中任何一项所述的方法,其中,创建关于所述属性的索引实体的步骤还包括步骤:
创建关于所述属性的索引表,该索引表包含所述属性的所有索引实体。
11.一种用于在Web服务组当中创建Web服务资源属性索引的***,其中该Web服务组至少包含第一服务组和一个或多个第二服务组,该***包括:
用于在第二服务组中创建第一服务组中的Web服务资源的属性的索引的装置,该装置进一步包括:
用于从第一服务组发布关于其要作为索引的Web服务资源属性的主题的装置;
用于从第一服务组向订阅了其元主题的一个或多个第二服务组通知关于所述属性的子主题的装置;
用于在第二服务组中创建关于所述属性的索引实体的装置;
用于从第一服务组向第二服务组通知所述属性的值的装置;
以及
用于在第二服务组中根据所述属性的值处理所述属性的索引实体的装置,其中:
如果所述属性的值不在任何已有属性索引实体的范围内,则用于根据所述属性的值处理所述属性的索引实体的装置为所述值创建新的索引实体;
如果所述属性的值等于作为属性索引实体的关键字的旧的值,则用于根据所述属性的值处理所述属性的索引实体的装置把所述值与该索引实体进行合并;以及
如果所述属性的值在某些属性索引实体的范围之内,则用于根据所述属性的值处理所述属性的索引实体的装置对所述索引实体进行拆分。
12、根据权利要求11所述的***,其中,如果在第二服务组中存在所述属性的主题和索引实体,则用于在第二服务组中创建关于所述属性的索引实体的装置忽略来自第一服务组的关于所述属性的子主题的通知。
13、根据权利要求11所述的***,进一步包括:用于在第三服务组中创建所述属性的索引的装置,该装置进一步包括:
用于从第二服务组发布关于所述属性的主题的装置;
用于从第二服务组向订阅了其元主题的一个或多个第三服务组通知所述属性的主题和值的装置;以及
用于在第三服务组中创建并处理关于所述属性的索引实体。
14、根据权利要求13所述的***,进一步包括:
用于执行以下操作的装置:以与第三服务组类似的方式,在向第三服务组订阅了其元主题的一个或多个第四服务组中创建所述属性的索引,并重复上述步骤,直至所有连接的Web服务组中均已创建了所述属性的索引实体为止。
15、根据权利要求14所述的***,进一步包括:
当接收了所述属性的主题和值的服务组从不同的路径接收到所述属性的主题和值时,对不同路径的所述属性的索引实体进行合并的装置。
16、根据权利要求14所述的***,其中,
当第一服务组中的Web服务资源属性发生变化时,从第一服务组向所有连接的Web服务组通知所述变化,以更新在所有连接的Web服务组中创建的所述属性的索引实体。
17、根据权利要求11所述的***,进一步包括:
当第一服务组和第二服务组之间的连接是双向连接时,在第一服务组中创建第二服务组中的Web服务资源属性的索引的装置。
18、根据权利要求11至17中任何一项所述的***,其中,对于同一Web服务资源,作为索引的服务资源属性可以不只一个。
19、根据权利要求11至17中任何一项所述的***,其中,作为索引的服务资源属性是资源的位置。
20、根据权利要求11至17中任何一项所述的***,其中,用于创建关于所述属性的索引实体的装置创建关于所述属性的索引表,该索引表包含所述属性的所有索引实体。
21、一种用于在连接的多个Web服务组当中对Web服务资源执行基于属性的查询的方法,其中,该Web服务组至少包含第一服务组,并且在该多个Web服务组中已经创建了与其连接的远程Web服务组中的Web服务资源的属性索引表,并且该属性索引表是实时更新的,所述方法包括以下步骤:
a)在第一服务组中接收对于至少具有某一资源属性的目标Web服务资源的查询请求;
b)检查关于所述属性的本地索引表;
c)如果在所述本地索引表中发现具有远程服务组引用,则把所述查询请求转发到所述远程服务组;
d)所述远程服务组重复上述步骤b)和步骤c),直到将所述查询请求转发到向其注册了目标Web服务资源的目标服务组为止;
e)注册有目标Web服务的目标服务组接收到所述查询请求后,向从其接收了所述查询请求的服务组返回响应,该响应包括所述目标Web服务资源的端点引用和资源属性;以及
f)第一服务组从接收了所述响应的服务组获得所述响应。
22、根据权利要求21所述的方法,进一步包括步骤:
如果第一服务组在所述本地索引表中发现本地引用,则检索本地服务组成员的相关信息,以获得目标Web服务资源的端点引用和资源属性。
23、根据权利要求22所述的方法,进一步包括步骤:
将在本地获得的目标Web服务资源的端点引用和资源属性与从其它服务组获得的目标Web服务资源的端点引用和资源属性进行处理,以获得最终的查询结果。
24、根据权利要求21所述的方法,其中,所述步骤f)进一步包括:
第一服务组从接收了所述响应的服务组经由连接在该服务组与第一服务组之间的中间服务组获得所述响应。
25、根据权利要求21所述的方法,进一步包括步骤:
如果在服务组中找到不只一个关于所述属性的本地索引表,则将找到的本地索引表结果进行合并。
26、根据权利要求21所述的方法,进一步包括步骤:
如果所述远程服务组先后从不同的路径获得了重复的所述查询请求,则拒绝在后的查询请求。
27、根据权利要求21至26中任何一项所述的方法,其中,所述查询请求可以是对具有两个或两个以上的资源属性的Web服务资源的查询请求。
28、根据权利要求21至26中任何一项所述的方法,其中,所述资源属性是Web服务资源的位置。
29、一种用于在连接的多个Web服务组当中对Web服务资源执行基于属性的查询的***,其中,该Web服务组至少包含第一服务组,并且在该多个Web服务组中已经创建了与其连接的远程Web服务组中的Web服务资源的属性索引表,并且该属性索引表是实时更新的,所述***包括:
用于在第一服务组中接收对于至少具有某一资源属性的目标Web服务资源的查询请求的装置;
用于检查关于所述属性的本地索引表的装置;
用于如果在所述本地索引表中发现具有远程服务组引用,则把所述查询请求转发到所述远程服务组的装置;
注册有目标Web服务的目标服务组接收到所述查询请求后、向从其接收了所述查询请求的服务组返回响应的装置,该响应包括所述目标Web服务资源的端点引用和资源属性;以及
用于在第一服务组中从接收了所述响应的服务组获得所述响应的装置。
30、根据权利要求29所述的***,进一步包括:
如果第一服务组在所述本地索引表中发现本地引用,则检索本地服务组成员的相关信息,以获得目标Web服务资源的端点引用和资源属性的装置。
31、根据权利要求30所述的***,进一步包括:
用于将在本地获得的目标Web服务资源的端点引用和资源属性与从其它服务组获得的目标Web服务资源的端点引用和资源属性进行处理,以获得最终的查询结果的装置。
32、根据权利要求29所述的***,其中,用于在第一服务组中从接收了所述响应的服务组获得所述响应的装置,从接收了所述响应的服务组经由连接在该服务组与第一服务组之间的中间服务组获得所述响应。
33、根据权利要求29所述的***,进一步包括:
用于如果在服务组中找到不只一个关于所述属性的本地索引表,则将找到的本地索引表结果进行合并的装置。
34、根据权利要求29所述的***,进一步包括:
用于如果先后从不同的路径获得了重复的所述查询请求,则拒绝在后的查询请求的装置。
35、根据权利要求29至34中任何一项所述的***,其中,所述查询请求可以是对具有两个或两个以上的资源属性的Web服务资源的查询请求。
36、根据权利要求29至34中任何一项所述的***,其中,所述资源属性是Web服务资源的位置。
CNB2006100825315A 2006-04-28 2006-04-28 对Web服务资源的基于属性的索引和/或查询方法及*** Expired - Fee Related CN100534047C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNB2006100825315A CN100534047C (zh) 2006-04-28 2006-04-28 对Web服务资源的基于属性的索引和/或查询方法及***
US11/739,985 US9223865B2 (en) 2006-04-28 2007-04-25 Method and system for property-based indexing and/or querying of web services resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100825315A CN100534047C (zh) 2006-04-28 2006-04-28 对Web服务资源的基于属性的索引和/或查询方法及***

Publications (2)

Publication Number Publication Date
CN101064641A CN101064641A (zh) 2007-10-31
CN100534047C true CN100534047C (zh) 2009-08-26

Family

ID=38649527

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100825315A Expired - Fee Related CN100534047C (zh) 2006-04-28 2006-04-28 对Web服务资源的基于属性的索引和/或查询方法及***

Country Status (2)

Country Link
US (1) US9223865B2 (zh)
CN (1) CN100534047C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731459A (zh) * 2012-10-15 2014-04-16 阿里巴巴集团控股有限公司 一种基于社会性网络服务的互动数据的传播方法及服务器

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100534047C (zh) 2006-04-28 2009-08-26 国际商业机器公司 对Web服务资源的基于属性的索引和/或查询方法及***
CN101216853B (zh) * 2008-01-11 2010-12-29 孟小峰 一种智能Web查询接口***及其方法
CN101719155B (zh) * 2009-12-29 2012-11-21 北京航空航天大学 一种支持分布式多集群计算环境的多维属性范围查询的方法
CN101763428A (zh) * 2010-01-04 2010-06-30 山东浪潮齐鲁软件产业股份有限公司 一种SOA对web服务的注册存储管理应用***
US9323514B2 (en) 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US20140357357A1 (en) 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
US9766870B2 (en) 2013-05-30 2017-09-19 Microsoft Technology Licensing, Llc Bundle package generation
CN104301364B (zh) * 2013-07-17 2019-08-02 北京千橡网景科技发展有限公司 用于移动社交网络中实时推荐好友的方法和设备
US9705995B2 (en) * 2014-03-18 2017-07-11 Axis Ab Capability monitoring in a service oriented architecture
US10169368B2 (en) 2014-10-02 2019-01-01 International Business Machines Corporation Indexing of linked data
GB2532490B (en) * 2014-11-21 2017-02-22 Ibm Publish/subscribe messaging using message structure
CN104754065B (zh) * 2015-04-28 2018-01-16 湖南科技大学 基于内容中心网络的动态分布Web资源管理方法及***
US10339014B2 (en) * 2016-09-28 2019-07-02 Mcafee, Llc Query optimized distributed ledger system
CN108668284B (zh) * 2017-03-31 2020-04-17 电信科学技术研究院 一种公共无线资源的配置方法、用户设备及网络侧设备
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
TWI707273B (zh) * 2018-04-16 2020-10-11 中華電信股份有限公司 使用統一聚合查詢語言獲取資源的方法及系統
CN109446445B (zh) * 2018-10-23 2022-03-22 北京乐我无限科技有限责任公司 一种资源获取方法及装置
CN112910943B (zh) * 2019-12-04 2024-03-05 华为云计算技术有限公司 一种服务提供方法、装置及***
CN115102960B (zh) * 2022-06-20 2023-08-22 国网信通亿力科技有限责任公司 一种基于伸缩部署的企业物联管理***

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857072A (en) * 1996-04-30 1999-01-05 Sprint Communications Co. L.P. System and method for distributing data simultaneously to multiple computers on a network, with advanced notice to intended recipients
US6292905B1 (en) * 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
CA2281331A1 (en) 1999-09-03 2001-03-03 Cognos Incorporated Database management system
US6691108B2 (en) 1999-12-14 2004-02-10 Nec Corporation Focused search engine and method
US6965904B2 (en) 2001-03-02 2005-11-15 Zantaz, Inc. Query Service for electronic documents archived in a multi-dimensional storage space
US6944619B2 (en) 2001-04-12 2005-09-13 Primentia, Inc. System and method for organizing data
US7043500B2 (en) 2001-04-25 2006-05-09 Board Of Regents, The University Of Texas Syxtem Subtractive clustering for use in analysis of data
US7058624B2 (en) 2001-06-20 2006-06-06 Hewlett-Packard Development Company, L.P. System and method for optimizing search results
US7624120B2 (en) 2004-02-11 2009-11-24 Microsoft Corporation System and method for switching a data partition
US7293006B2 (en) 2004-04-07 2007-11-06 Integrated Project Solutions Llc Computer program for storing electronic files and associated attachments in a single searchable database
JP4616674B2 (ja) * 2005-03-18 2011-01-19 株式会社日立製作所 リソース貸借方法、および、リソース貸借システム
CN100534047C (zh) 2006-04-28 2009-08-26 国际商业机器公司 对Web服务资源的基于属性的索引和/或查询方法及***

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Web Services Resource Properties 1.2. . 2006
Web Services Resource Properties 1.2. . 2006 *
Web Services Service Group 1.2. . 2006
Web Services Service Group 1.2. . 2006 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731459A (zh) * 2012-10-15 2014-04-16 阿里巴巴集团控股有限公司 一种基于社会性网络服务的互动数据的传播方法及服务器

Also Published As

Publication number Publication date
US20070255711A1 (en) 2007-11-01
US9223865B2 (en) 2015-12-29
CN101064641A (zh) 2007-10-31

Similar Documents

Publication Publication Date Title
CN100534047C (zh) 对Web服务资源的基于属性的索引和/或查询方法及***
Akkiraju et al. Web service semantics-wsdl-s
Iordanov Hypergraphdb: a generalized graph database
US8402081B2 (en) Platform for data aggregation, communication, rule evaluation, and combinations thereof, using templated auto-generation
US7827565B2 (en) Integration architecture for non-integrated tools
US7487168B2 (en) System and method for loading hierarchical data into relational database systems
US20070073762A1 (en) Method, apparatus, and system for data modeling and processing
Pilioura et al. Unified publication and discovery of semantic web services
CN100501727C (zh) 用于数据库存储中的对象持久存储的***和方法
CN103299303A (zh) 可扩展的rdf数据库
CN101799749A (zh) 用于数据管理和检索的并行协同过程
JP2020502610A (ja) モノのインターネットにおけるセマンティックマッシュアップの許可
KR101209861B1 (ko) 사용자들의 전자 커뮤니티들을 관리하는 장치 및 방법
Cavalieri et al. Towards interoperability between OPC UA and OCF
Tachmazidis et al. A Hypercat-enabled semantic Internet of Things data hub
Folinas et al. Developing mobile commerce applications
Pauwels et al. Open data standards and BIM on the cloud
US7725564B2 (en) Nested exception roles
CN100429654C (zh) 用于管理来自单个接口的多层次数据的技术
Tazari A Context-Oriented RDF Database.
Nejdl Semantic web and peer-to-peer technologies for distributed learning repositories
Liquori et al. ETSI SmartM2M Technical Report 103715; Study for oneM2M; Discovery and Query solutions analysis & selection
US7725563B2 (en) Nested AND roles
US7774433B2 (en) Nested XOR roles
Benbernou et al. Implicit service calls in ActiveXML through OWL-S

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090826

Termination date: 20210428