在面向服务的架构(soa)网络中发现服务的方法及系统的制作方法_5

文档序号:9219812阅读:来源:国知局

[0103]过程800可以在客户端中制定搜索查询并将所述查询发送到服务注册表开始(框802) ο在一个实施例中,所述客户端将查询发送到本地服务注册表(例如,在相同服务主机415而非是不同节点中的服务主机415中)。作为一实例,参考网络600,节点S中的客户端420-S制定对特定服务的查询并将所述查询发送到节点S中的服务注册表440-S (框802)。如图8中所展示,查询可为(&(接口 =存储服务)(CPU排名>10)(磁盘空间> =500MB))。所述查询可规定并请求若干个结果(例如,若干个服务,例如六个)。在此实例中,所述查询规定特定服务(例如,“存储服务”)及特定服务的特定特性(例如,磁盘空间> =500MB) ο由客户端440-S产生的查询还可规定或请求将要爬行(例如,遍历、沿循或行进)的覆盖网络的拓扑。如上文所提及,所述查询可针对地理靠近度、等待时间、带宽、相同或不同域、存储容量、处理器速度等等或这些特性的任何经加权组合规定所述拓扑。
[0104]服务注册表从客户端接收查询(框804)。继续网络600的实例,节点S中的服务注册表440-S从客户端420-S接收对特定服务的查询(例如,本地服务注册表)。特定来说,查询处置器444-S(见图4C)可接收所述查询。如图8中所指示且下文所更详细地描述,服务注册表还可从另一服务注册表接收搜索查询(框804)(例如,不同节点中的不同服务主机415中的服务注册表)。
[0105]已接收到搜索查询后,所述服务注册表查询主机服务注册表DB (例如,本地数据库)以找出在DB中注册的匹配服务(框806)。继续以上实例,查询处置器444-S以其从客户端420-K接收的搜索查询而查询主机服务注册表DB 442-S (见图4C)(框806)。如果有,那么所述查询可产生匹配查询(例如,满足查询)的经注册服务的列表(例如,第一列表)O
[0106]如果查询的结果充足(框808:是),那么可将满足查询的经注册服务的列表(例如,第一列表)返回到客户端(框810)。举例来说,可通过将列表中的服务数目与一数目(例如,由客户端在搜索查询中请求的数目或默认数目)进行比较来确定充足的匹配结果。在将搜索结果返回到客户端(框810)之后,过程800可结束(至少对于在框804中接收到查询的服务注册表440)。
[0107]如上文所提及,本地服务注册表440-S可具有为进行较快搜索而将来自远程服务主机的服务信息存储于其中的高速缓冲存储器446-S。因此,查询处置器444-S还可查询服务注册表高速缓冲存储器446-S以补充其结果(或仅在本地DB 442-S中存在不充足结果的情况下)。可将来自高速缓冲存储器446-S的结果包含在返回到客户端的服务列表中。
[0108]服务注册表440-S可在对匹配服务的搜索中选派其它服务注册表。如果搜索结果不充足(框808:否),那么服务注册表440-S (例如,查询处置器)可确定及/或选择用于确定相邻节点的拓扑(框811)。在一个实施例中,可在由客户端发出的查询中识别所述拓扑。在另一实施例中,可基于正被搜索的特定服务而选择所述拓扑。在又一实施例中,查询处置器444-S基于其它因素而选择拓扑。选定拓扑可包含上文所论述的拓扑:地理接近度、等待时间、带宽等等或其任何经加权组合。在一个实施例中,举例来说,如果不存在所请求拓扑,那么可即时地产生拓扑。
[0109]取决于正被搜索的特定服务,不同拓扑可比其它拓扑好(且可在框811中选择最好拓扑)。举例来说,当正被搜索的特定服务是流式传输高清晰度视频时,带宽可为拓扑的重要特性(例如,在框706中选择且在框708中加权的特性)。另一方面,当正被搜索的特定服务是电话时,等待时间可为拓扑的最重要特性(例如,在框706中选择且在框708中加权的特性)。因此,此实施例允许选择最适于正被搜索的特定服务的拓扑。
[0110]查询处置器444-S可请求并接收其它相邻节点的身份(框812)。相邻节点可为网络(例如,网络600)中(举例来说)在选定拓扑(来自框811)中隔开一个跳跃的节点。如上文所提及,相邻节点(例如,服务注册表)为基于除正被搜索的特定服务的特性之外的特性的相邻者(例如,先前被选择为最接近的相邻者)。举例来说,对于特定服务“存储服务”的相邻服务注册表,特性(除所述服务的特性之外)可包含网络等待时间。继续网络600的实例,服务注册表440-S中的查询处置器444-S查询主机服务注册表DB 442-S (框806)并发现三个匹配服务,即,不充足数目的结果(框808:否)(例如,客户端请求了六个结果)。因此,查询处置器444-S(见图4C)向网络层320中的节点管理器510请求相邻节点(例如,隔开一个跳跃)的身份。查询处置器444-S从节点管理器510接收相邻节点的列表:节点Q,其恰好为节点S的父代,如图6A中所展示。
[0111]查询处置器确定相邻节点(例如,相邻服务注册表)是否可用于转发搜索(框814)。如果无相邻节点可用于继续搜索(框814:否),那么可将此情形的指示连同搜索结果(如果有)一起发送到客户端(或另一请求服务注册表)(框810)。在此情况中,过程800可结束(至少对于接收到查询的服务注册表415)。甚至在节点管理器510返回相邻节点列表时,查询处置器也可确定无其它相邻节点可用于搜索。举例来说,查询处置器可确定相邻节点列表中的每个节点参与或已参与相同搜索,从而未留下可用节点来转发搜索查询。
[0112]如果相邻节点可用于继续搜索(框814:是),那么服务注册表(例如,查询处置器)可将搜索查询发送到相邻节点中的服务注册表(框816)(例如,相邻服务注册表)。在当前实例中,查询处置器444-S确定节点Q可用于继续搜索(框814:是)(例如,因为并不知晓服务注册表440-Q已参与搜索)。服务注册表440-S将搜索查询转发到节点Q中的服务注册表440-Q (框816)。如以虚线所展示,相邻节点中的服务注册表可繁衍出过程800的另一实例(在框804处通过从另一服务注册表接收搜索查询而开始)。在一个实施例中,月艮务注册表440-S基于已发现的匹配搜索结果的数目而调整查询中的所请求搜索结果的数目。如下文更详细地描述,最终服务注册表440-S可从相邻服务注册表440-Q接收搜索结果(例如,第二服务列表)(框818)。服务注册表440-S可将从服务注册表440-Q接收的结果(例如,第二服务列表)与其自身的结果(例如,来自框806的第一列表)组合并将两个列表返回到客户端(框810)。
[0113]在当前实例中,服务注册表440-Q从服务注册表440-S接收搜索查询(框804),且查询其主机服务注册表DB 442-Q (框806)。服务注册表440-Q中的查询处置器444-Q查询主机服务注册表DB 442-Q (框806)且未发现匹配服务,即,不充足数目的结果(框808:否)。作为一实例,由查询处置器444-Q接收的查询可指示所请求结果的数目为三个(例如,为六个的原始请求被减少三个)。因此,查询处置器444-Q向节点管理器510请求相邻节点的身份。查询处置器444-Q从节点管理器510接收相邻节点列表:节点S、节点T、节点U及节点P,如图6A及6B中所展示。在一个实施例中,如果已过去预定时间量,那么可将结果视为充足的(框808:是),而不管结果的数目如何。
[0114]查询处置器444-Q确定相邻节点是否可用于转发搜索(框814)。查询处置器444-Q确定节点T、节点U及节点P可用于继续所述搜索(框814:是)。查询处置器444-Q不包含节点S,因为其从服务注册表440-S接收搜索查询且节点S明显已在所述搜索中涉及。因此,查询处置器444-Q将搜索查询发送到相邻节点T、相邻节点U及相邻节点P中的服务注册表(框816)。如以虚线所展示,相邻节点T、U及P中的服务注册表可繁衍出过程800的另一实例(在框804处通过从另一服务注册表接收搜索查询而开始)。
[0115]服务注册表440-Q接着将搜索请求发送到服务注册表440-T、服务注册表440-U及服务注册表440-P (框816)。如上文所提及,在一个实施例中,服务注册表440-Q基于已发现的匹配搜索结果的数目而调整查询中的所请求搜索结果的数目(例如,调整为三个)。在一个实施例中,将搜索请求发送到所有可用相邻节点,使得这些相邻节点中的搜索并行地发生。在其它实施例中,可依序(例如,在接收每一结果之后或在一时间窗之后)发送搜索请求(例如,搜索查询)。依序发送搜索请求可允许服务注册表440-T在将搜索请求发送到所有可用相邻节点(例如,在框814中确定)之前确定搜索结果为充足的(框808)。服务注册表440-T接收请求(框804)且在其主机服务注册表DB 442-T中发现匹配查询的一个服务(框806)。然而,总计四个搜索结果仍为不充足的(例如,少于六个)(框808:否)。服务注册表440-T确定及/或选择网络拓扑(框811)并将对相邻节点(例如,隔开一个跳跃)的身份的请求发送到覆盖网络层320的节点管理器510 (框812)。节点管理器510将节点Q的身份返回到服务注册表440-T(框812)。然而,服务注册表440-T知晓节点Q中的服务注册表440-Q已在搜索中涉及,从而未留下其它可用相邻者(框814:否)。服务注册表444-T将此结果(及搜索结果)发送到服务注册表440-Q (框810),从而在服务注册表440-T中结束过程800。
[0116]服务注册表440-U也接收请求(框804),但在对其主机服务注册表DB 442-U的搜索(框806)中未能发现服务,从而留下不充足数目的搜索结果(框808:否)。服务注册表440-U确定及/或选择网络拓扑(框811)并将对相邻节点(例如,隔开一个跳跃)的身份的请求发送到覆盖网络层320的节点管理器510 (框812)。节点管理器510将节点Q的身份返回到服务注册表440-U (框812)。然而,服务注册表440-U知晓节点Q中的服务注册表440-Q已在搜索中涉及(服务注册表440-U曾从接服务注册表440-Q收到请求),从而未留下其它可用相邻者(框814:否)并将此结果发送到服务注册表440-Q (框810),从而在服务注册表440-T中结束过程800。
[0117]服务注册表440-P也接收所述请求(框804)且发现匹配或满足对其主机服务注册表DB 442-P的搜索查询的两个服务(框806)。尽管如此,仍将两个结果视为少于充足的(框808:否)(例如,少于所请求的三个)。服务注册表440-P确定及/或选择网络拓扑(框811)并将对相邻节点(例如,隔开一个跳跃)的身份的请求发送到覆盖网络层320的节点管理器510 (框812)。节点管理器510将节点Q及R的身份返回到服务注册表440-P (框812)。然而,服务注册表440-P知晓节点Q中的服务注册表440-Q已在搜索中涉及(服务注册表440-P曾从服务注册表440-Q接收到请求),从而留下节点R作为仅有的可用相邻者(框814:是)。服务注册表444-P将搜索请求发送到服务注册表440-R (框816),从而在服务注册表440-R中繁衍出过程800的另一实例。搜索请求可将所请求结果的数目调整为一个(例如,与所请求的三个相比,反映两个搜索结果)。
[0118]服务注册表440-R接收搜索请求(框804)且发现匹配或满足对其主机服务注册表DB442-R的搜索查询的一个服务(框806)。将一个结果视为充足的(框808:是),且将结果发送到服务注册表440-P (曾将搜索发送到服务注册表440-R的服务注册表)。服务注册表440-P从服务注册表440-R接收所述结果(例如,列表)(框818),且可将所接收结果与其自身的结果组合。服务注册表440-P接着将结果发送到服务注册表440-Q( S卩,曾请求服务注册表440-P加入搜索的服务注册表)。在当前实例中,服务注册表440-P将三个结果发送到服务注册表440-Q。服务注册表440-Q从服务注册表440-P接收结果(框818),将所接收结果与其自身的结果组合并将结果返回到服务注册表440-S(框818)(例如,曾请求服务注册表440-Q加入搜索的服务注册表)。在当前实例中,服务注册表440-Q将四个结果发送到服务注册表440-S。服务注册表440-S从服务注册表440-Q接收结果(例如,第二服务
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1