面向服务的架构中的隧道代理的制作方法_4

文档序号:9219676阅读:来源:国知局
图4B中所展示,服务注册表440可从客户端420接收搜索查询。搜索查询可规定特定服务类型、特定服务类型的一或多个所请求特性、所请求命中数目及/或一或多个其它参数。服务注册表440可识别满足搜索查询的服务410。如果服务注册表440不满足所请求命中的数目,那么服务注册表440可将查询转发到覆盖网络中的另一服务注册表440(例如,邻近服务注册表440)。在一个实施例中,服务注册表440并不基于搜索查询而选择特定服务实例。而是,在此实施例中,服务注册表440将查询的结果返回到客户端420,且曾发起所述查询的客户端420可从搜索结果选择特定服务实例。在另一实施例中,服务注册表440基于搜索查询而从查询的结果选择特定服务实例。
[0082]虽然图4A及4B展示服务层310的示范性功能组件,但在其它实施方案中,服务层310相比图4A及4B中所描绘的功能组件可包含更少的功能组件、不同的功能组件、不同布置的功能组件或额外功能组件。另外,服务层310的组件中的任一者(或任何组件群组)可执行描述为由服务层310的一或多个其它功能组件执行的功能。
[0083]图4C是图解说明服务注册表440的示范性功能组件的框图。如图4C中所展示,服务注册表440可包含主机服务注册表数据库(DB)442、查询处置器444及服务注册表高速缓冲存储器446。
[0084]主机服务注册表DB 442可维持由服务主机415托管的服务410的列表及/或那些服务的特性。下文关于图4D来提供在主机服务注册表DB 442中列出的服务及所述服务的特性的实例。可通过在服务注册表440中注册的服务410来填充主机服务注册表DB442。主机服务注册表DB 442还可暴露用于添加或移除所列出服务及读取或写入由服务主机415托管的服务的特性的接口及/或写入服务特性。在一个实施例中,举例来说,主机服务注册表DB 442可维持由不同装置130上的服务主机415托管的服务410的列表。不同装置上的服务主机415可使用所暴露接口在另一装置上的服务注册表中列出其服务。此夕卜,主机服务注册表DB 442可暴露可由其它服务注册表访问的搜索查询服务接口。因此,其它服务注册表可使用所述搜索查询服务接口来确定主机服务注册表DB 442是否包含满足特定查询的条目。在一个实施例中,在主机服务注册表DB 442中列出的服务可过期(例如,在一时间周期之后如果未被刷新则被从DB 442移除)以帮助防止DB 442存储过时的信息。
[0085]主机服务注册表442可从服务管理器接收预订请求,可存储预订请求,且可将预订请求转发到所有邻近服务注册表。主机服务注册表442可确定是否有服务匹配所述预订请求,且可在识别出匹配服务的情况下将预订通知发送回到曾发起所述预订请求的服务管理器。此外,主机服务注册表442可确定对所存储服务的更新是否与预订相关联。如果更新与预订相关联,那么主机服务注册表442可将预订通知发送到曾发起对相关联预订的预订请求的服务管理器(或另一类型的服务)。
[0086]查询处置器444可处置从客户端420接收的查询。在一个实施例中,假定一查询,查询处置器444首先搜索本地主机服务注册表DB 442、之后搜索服务注册表高速缓冲存储器446。举例来说,如果尚未满足所述查询,那么查询处置器444可发出对其它服务注册表的调用。服务注册表高速缓冲存储器446可存储来自远程服务注册表440的数据。每一服务主机415可维持本地服务注册表440,且在服务主机415中注册的服务410被注册于本地服务注册表440中。可将来自客户端420的不能被本地服务注册表440满足的查询发送到一或多个相邻服务主机415以查看相邻服务主机415是否具有包含满足所述查询的服务的服务注册表440。远程服务注册表440可将查询的结果返回到本地服务注册表440,且可将所述结果存储在服务注册表高速缓冲存储器446中。在一些实施方案中,父节点可高速缓存其子节点的数据,而子节点可不高速缓存其父节点的数据。在一个实施例中,在服务注册表高速缓冲存储器446中列出的服务可过期(例如,在一时间周期之后如果未被刷新则被从高速缓冲存储器446移除)以帮助防止高速缓冲存储器446存储过时的信息。
[0087]虽然图4C展示服务注册表440的示范性功能组件,但在其它实施方案中,服务注册表440相比图4C中所描绘的功能组件可包含更少的功能组件、不同的功能组件、不同布置的功能组件或额外功能组件。另外,服务注册表440的组件中的任一者(或任何组件群组)可执行描述为由服务注册表440的一或多个其它功能组件执行的功能。
[0088]图4D是可由服务注册表440存储的特定服务的示范性特性表460的框图。在一个实施例中,服务的实例(例如,每一实例)与一特性表(例如表460)相关联。主机服务注册表数据库DB 442可存储在对应服务注册表440中注册的每一服务的特性表。在一个实施例中,如上文所描述,存储于任一个服务注册表DB 442中的信息可不同于存储于其它服务注册表数据库中的信息。示范性特性表460包八个字段:ID字段462、接口字段464、服务格式字段468、输送协议字段470、CPU排名472、磁盘空间字段474及RAM字段476。
[0089]实例ID字段462唯一地界定特定服务的实例。实例ID (可能连同节点ID —起)可唯一地将服务实例与网络中的(相同类型或不同类型的)任何其它服务识别开。在一个实施例中,实例ID字段462为整数。在表460中,作为一实例,实例ID是6529。
[0090]接口字段464识别服务的接口的名称。在此情况中,接口字段464还可通过接口的类型来识别服务的类型。举例来说,表460将接口识别为“存储服务”。服务格式字段468识别由服务的实例使用的格式。作为一实例,表460将服务格式识别为“JSON”。输送协议字段470识别由服务的实例使用的协议。作为一实例,表460将服务格式识别为“节点协议”。
[0091]CPU排名字段472识别与服务实例相关联的CPU的性能。在一个实施例中,使用标度(例如,I到100)。表460在CPU排名字段472中将服务的CPU排名识别为20/100。RAM字段476识别可用于服务的随机存取存储器的量。表460在字段476中将可用RAM识别为2GB。
[0092]虽然图4D展示特性表460的示范性组件,但在其它实施方案中,特性表460相比图4D中所描绘的组件可包含更少的组件、不同的组件、不同布置的组件或额外组件。
[0093]图5A是图解说明覆盖网络层320的功能组件的框图。如图5A中所展示,覆盖网络层320可包含节点管理器510、通信管理器520及多播管理器530。
[0094]节点管理器510可将例如节点ID等节点信息提供到覆盖网络中的其它节点。此夕卜,节点管理器510可维持覆盖网络中的节点的列表。节点管理器510可执行节点发现以识别添加到覆盖网络的新节点及/或重新发现已重新加入覆盖网络的丢失节点。节点管理器510还可确定网络的拓扑,如下文所描述(例如,哪些节点最接近其它节点)。
[0095]通信管理器520可使得节点能够彼此通信。通信管理器520可实施用以遍历覆盖网络的树的机制。可结合服务注册表的搜索查询或在与另一节点的直接通信方法不可用时执行树遍历。此外,通信管理器520可实施可使得覆盖网络的特定节点能够直接通信而不必遍历覆盖网络的树的直接通信方法。
[0096]多播管理器530可实施多播机制。所述多播机制可用于将消息发送到多播群组的成员(例如,所有成员)。此外,多播机制可用于实施预订-通知消息接发型式。因此,与特定服务实例相关联的事件可用于触发发送到已向所述特定服务实例预订消息的节点的消息。多播管理器530可包含应用层多播管理器或来自下部OSI层的多播管理器。
[0097]虽然图5A展示覆盖网络层320的示范性功能组件,但在其它实施方案中,覆盖网络层320相比图5A中所描绘的功能组件可包含更少的功能组件、不同的功能组件、不同布置的功能组件或额外功能组件。另外,覆盖网络层320的组件中的任一者(或任何组件群组)可执行描述为由覆盖网络层320的一或多个其它功能组件执行的功能。
[0098]图5B是覆盖网络540的示范性拓扑的框图。如图5B的实例中所展示,覆盖网络540包含节点NI到N7。节点NI及N2处于多播群组560-1中。节点NI包含服务端点SI及S3以及客户端端点Cl。节点N3是节点NI及N2的父节点。节点N3包含服务端点S7及客户端端点C3。
[0099]节点N6及N7处于多播群组560-2中且节点N7包含客户端端点C2以及服务端点S5及S6。节点N5是节点N6及N7的父节点且包含服务端点S9。节点N3及N5处于多播群组560-3中。节点N4是节点N3及N5的父节点且是覆盖网络540的根节点。此外,节点N4处于多播群组560-4中且包含服务端点S8。虽然网络540的拓扑中的父节点具有两个子节点,但在其它实施方案中,父节点可具有两个以上子节点。
[0100]假设每一服务端点与服务注册表440相关联,则搜索查询可如下遍历覆盖功能网络540。假设节点N3中的服务端点S7执行搜索查询以识别服务端点SI及服务端点S5中所包含的特定服务(即,对于此,SI及S5为匹配)。服务端点S7可将搜索查询发送到其本地服务注册表,这可导致搜索查询中的不匹配。本地服务注册表可接着识别覆盖网络中的邻近服务注册表,所述邻近服务注册表可包含节点NI中的服务注册表及节点N4中的服务注册表(节点N2可不包含服务注册表,因为不存在与节点N2相关联的服务端点)。节点NI中的服务注册表可返回识别服务端点SI的命中。节点N4中的服务注册表可不返回命中且可将搜索查询转发到其邻近服务注册表,在此情况中,所述邻近服务注册表包含节点N3及N5中的服务注册表。然而,由于节点N3中的服务注册表已处理所述搜索,因此可将搜索查询仅发送到中节点N5的服务注册表。节点N5处的服务注册表可未提供命中且可将搜索查询转发到节点N7处的服务注册表。节点N7可将服务端点S5识别为命中且可将搜索查询的结果返回到节点N4,且节点N4可将搜索结果转发到节点N3中的服务端点S7。
[0101]服务端点S7可接着选择与节点NI处的服务端点SI或节点N7处的服务端点S5通信。在一些实施方案中,服务端点S7可经由节点N4及N5向服务端点S5发送消息。在其它实施方案中,服务端点S7可通过与节点N7直接通信而向服务端点S5发送消息。
[0102]作为另一实例,服务端点S7可仅需要对搜索查询的第一匹配。节点可以将在沿着树进一步向下之处的节点优先化的优先级次序将搜索查询转发到其它节点。因此,节点N3将在将搜索查询转发到节点N4之前将搜索查询转发到节点NI及N2,因为节点NI及N2在沿着树进一步向下之处(即,为节点N3的子代),而节点N4在沿着树进一步向上之处(即,为节点N3的父代)。由于节点NI识别对搜索查询的匹配,且服务端点S7仅需要一个匹配,因此搜索可在搜索查询被发送到节点N4之前终止。
[0103]图6是图解说明隧道代理600的功能组件的框图。隧道代理600可经配置以基于所请求服务特性而建立及管理通信隧道。如图6中所展示,隧道代理600可包含客户端接口 610、服务注册表接口 620、节点选择器630、节点接口 640,且可与隧道DB 650通信。
[0104]客户端接口 610可与客户端420通信。客户端接口 610可从客户端420接收对到具有所请求服务特性的服务的通信隧道的请求且可将已接收到所述请求的应答发送到客户端420。此外,客户端接口 610可针对通信隧道的第一端来配置客户端420。举例来说,客户端接口 610可将托管客户端420的节点(例如,装置130)配置为接收及/或发送用与通信隧道相关联的隧道标头封装的包或其它类型的数据单元。
[0105]服务注册表接口 620可与服务注册表440通信。举例来说,服务注册表接口 620可基于由客户端接口 610接收的请求而产生搜索查询且可将所述搜索查询发送到服务注册表440。此外,服务注册表接口 620可将接收与搜索查询有关的更新的预订请求发送到服务注册表440。服务注册表接口 620可从服务注册表440接收搜索结果且可将所述搜索结果提供到节点选择器630。
[0106]节点选择器630可选择特定节点及由所述节点托管的特定服务实例来作为通信隧道的第二端。节点选择器630可基于由服务注册表接口 620获得的搜索结果而选择所述特定节点及/或服务实例。举例来说,节点选择器630可对搜索结果进行排名且可选择最佳匹配所请求服务特性的节点及/或服务实例。另外或替代地,节点选择器630可基于额外准则而选择节点。举例来说,节点选择器630可确定所接收搜索结果中的节点的一或多个连接度量。连接度
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1