CN104935625A - 在面向服务的架构(soa)网络中发现服务的方法及系统 - Google Patents
在面向服务的架构(soa)网络中发现服务的方法及系统 Download PDFInfo
- Publication number
- CN104935625A CN104935625A CN201510088903.4A CN201510088903A CN104935625A CN 104935625 A CN104935625 A CN 104935625A CN 201510088903 A CN201510088903 A CN 201510088903A CN 104935625 A CN104935625 A CN 104935625A
- Authority
- CN
- China
- Prior art keywords
- registration table
- service
- service registration
- network
- web services
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 235000008694 Humulus lupulus Nutrition 0.000 claims description 4
- 230000008901 benefit Effects 0.000 description 54
- 230000008569 process Effects 0.000 description 28
- 238000004891 communication Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 230000001360 synchronised effect Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000000712 assembly Effects 0.000 description 6
- 238000000429 assembly Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 230000001747 exhibiting effect Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1068—Discovery involving direct consultation or announcement among potential requesting and potential source peers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请涉及一种在面向服务的架构(SOA)网络中发现服务的方法及系统。一种用于在面向服务的架构网络中发现服务的方法及系统可包含在本地服务注册表中从客户端接收对特定服务的搜索查询。所述本地服务注册表可包含列举在所述本地服务注册表中注册的服务的本地数据库。所述本地服务注册表可处于服务注册表网络中。所述网络可包含查询所述本地数据库以确定满足所述搜索查询的第一服务列表及基于除正被搜索的所述特定服务的特性之外的特性而在所述服务注册表网络中确定相邻服务注册表。所述方法可包含将所述搜索查询发送到所述相邻服务注册表及从所述相邻服务注册表接收在所述相邻服务注册表中注册的满足所述搜索查询的第二服务列表。所述方法可包含将满足所述搜索查询的所述第一服务列表及所述第二服务列表返回到所述客户端。
Description
技术领域
本发明一般来说涉及一种在面向服务的架构(SOA)网络中发现服务的方法及系统。
背景技术
面向服务的架构(SOA)为基于将应用功能性作为服务提供给其它应用的软件单元的软件设计及软件架构设计方法。服务为功能性单元。可通过其它软件应用来组合服务以提供较大软件应用的完整功能性。SOA使得经由网络连接的计算机进行合协作变得较容易。
发明内容
在一个实施例中,一种方法可包含(a)在本地服务注册表中从客户端接收对特定服务的搜索查询。在此实施例中,所述本地服务注册表包含列举在所述本地服务注册表中注册的服务的本地数据库。所述本地服务注册表处于服务注册表网络中。所述方法可包含(b)查询所述本地数据库以确定满足所述搜索查询的第一服务列表。所述方法可包含(c)基于除所述特定服务的特性之外的特性而在所述服务注册表网络中确定相邻服务注册表,其中所述相邻服务注册表与所述本地服务注册表相邻。所述可包含(d)将所述搜索查询发送到所述相邻服务注册表。在此实施例中,所述相邻服务注册表包含列举在所述相邻服务注册表中注册的服务的相邻数据库。所述方法可包含(e)从所述相邻服务注册表接收在所述相邻服务注册表中注册的满足所述搜索查询的第二服务列表。所述方法可包含(f)将满足所述搜索查询的所述第一服务列表及所述第二服务列表返回到所述客户端。。在接下来的段落中描述此实施例的可能优点中的一些优点。
在一个实施例中,服务注册表分布于网络中的装置当中,且所述服务注册表可能并非等同的。在此情况中,服务可在本地服务注册表中注册。如此,服务注册表可不知晓网络中的所有服务,但可知晓本地服务。如果所述本地服务注册表不能满足所述搜索查询,那么可将所述查询转发到附近服务注册表(例如,接近所述本地服务注册表的一或多个相邻服务注册表)。作为可能的优点,此实施例可提供较大故障容限(与不分布于网络中的装置当中的中央服务注册表相比)。作为另一可能优点,此实施例可减少用于同步的网络业务(与仅在网络中的装置中复制的服务注册表相比)。作为又一可能优点,此实施例可允许用有效方式以(可能地)高故障容限及低网络业务来搜索并发现服务。另一可能优点是在搜索特定服务时基于除正被搜索的特定服务的特性之外的特性而确定相邻服务注册表的能力。
如所提及,在一个实施例中,可将对特定服务的搜索请求(查询)转发到网络中的相邻服务注册表,其中基于除正被搜索的特定服务的特性之外的特性而确定相邻节点。举例来说,可基于网络等待时间(例如,除数据存储之外的特性)而将对数据存储服务的请求转发到相邻服务注册表。作为可能优点,以此方式选择相邻节点可允许快速地发现不在本地托管的服务。
在一个实施例中,所述特定服务的特性为特定特性且所述搜索查询识别所述特定服务及所述特定服务的特定特性。在此实施例中,所述方法包含基于除所述特定特性之外的特性而确定相邻服务注册表。此实施例的优点可包含较大的故障容限且减少用于同步的网络业务。作为又一可能优点,此实施例可允许以有效方式来搜索并发现服务。另一可能优点是在搜索特定服务时基于除正被搜索的特定服务的特性之外的特性而确定相邻服务注册表的能力。
在另一实施例中,所述方法包含基于多个特性而确定所述相邻服务注册表,其中所述多个特性并非所述特定服务的特性,且其中所述多个特性中的每一者均被加权。此实施例的优点允许搜索考虑一个以上特性,其中所述特性并非所述特定服务的特性。对所述特性进行加权可提供使用不同特性同时为每一特性赋予不同权重的优点。
在另一实施例中,所述搜索查询将所述特定服务指示为数据存储,且除所述服务的所述特性之外的特性包含带宽、地理位置、开放信道、等待时间、多播能力、跳跃数目、成本或网络类型。
在一个实施例中,所述服务注册表网络为树状服务注册表网络。在另一实施例中,所述服务注册表网络为网状服务注册表网络。树状网络及网状网络的可能优点是各自允许并行地(且可能以有效方式)搜索服务。树状网络的可能优点是其可减少网络业务(例如,较少的分布式搜索及较少的匹配结果)(与网状网络相比)。网状网络的可能优点是其可较快且并行度较大(与树状网络相比)。
在一个实施例中,所述方还可包含(g)在所述相邻服务注册表中接收搜索查询,查询所述相邻服务注册表以确定满足所述搜索查询的第二服务列表,及(i)将所述第二列表发送到所述本地服务注册表。此实施例的优点可包含较大的故障容限及减少用于同步的网络业务。作为又一可能优点,此实施例可允许以有效方式搜索并发现服务。
在一个实施例中,所述相邻服务注册表为做出请求的服务注册表。在此实施例中,所述方可包含(j)确定所述第二服务列表是否为充足的。当所述第二服务列表不充足时,所述方法可包含基于除所述特定服务的所述特性之外的特性而在所述服务注册表网络中确定另一相邻服务注册表,其中所述另一相邻服务注册表与所述做出请求的服务注册表相邻。当所述第二服务列表不充足时,所述方法可包含将所述搜索查询发送到所述另一相邻服务注册表,其中所述另一相邻服务注册表包含列举在所述另一相邻服务注册表中注册的服务的另一相邻数据库。当所述第二服务列表不充足时,所述方法可包含从所述另一相邻服务注册表接收在所述另一相邻服务注册表中注册的满足所述搜索查询的另一服务列表,其中所述第二列表包含所述另一列表。此实施例的优点可包含较大的故障容限及减少用于同步的网络业务。作为又一可能优点,此实施例可允许以有效方式搜索并发现服务。举例来说,搜索可在结果充足时停止,而不必将查询发送到额外相邻节点。
在一个实施例中,所述方法包含在连续的其它节点中重复要素(j)。作为可能优点,此实施例允许查询传播穿过网络直到结果充足为止。
本文中还描述一种系统。所述系统可包含装置,所述装置又包含用以存储列举在本地服务注册表中注册的服务的本地数据库的存储器。在此实施例中,所述本地服务注册表处于服务注册表网络中。所述装置还可包含用以从客户端接收对特定服务的搜索查询的处理器。在此实施例中,所述处理器还可查询所述本地数据库以确定满足所述搜索查询的第一服务列表,及基于除所述特定服务的特性之外的特性而在所述服务注册表网络中确定相邻服务注册表,其中所述相邻服务注册表与所述本地服务注册表相邻。在此实施例中,所述装置包含用以将所述搜索查询发送到所述相邻服务注册表的发射器。在此情况中,所述相邻服务注册表包含列举在所述相邻服务注册表中注册的服务的相邻数据库。在此实施例中,所述装置还可包含用以从所述相邻服务注册表接收在所述相邻服务注册表中注册的满足所述搜索查询的第二服务列表的接收器,其中所述处理器经配置以将满足所述搜索查询的所述第一服务列表及所述第二服务列表返回到所述客户端。在接下来的段落中描述此实施例的可能优点中的一些优点。
在一个实施例中,服务注册表分布于网络中的装置当中,且所述服务注册表可能并非等同的。在此情况中,服务可在本地服务注册表中注册。如此,服务注册表可不知晓网络中的所有服务,但可知晓本地服务。如果所述本地服务注册表不能满足所述搜索查询,那么可将所述查询转发到附近服务注册表(例如,接近所述本地服务注册表的一或多个相邻服务注册表)。作为可能的优点,此实施例可提供较大故障容限(与不分布于网络中的装置当中的中央服务注册表相比)。作为另一可能优点,此实施例可减少用于同步的网络业务(与仅在网络中的装置中复制的服务注册表相比)。作为另一可能优点,此实施例可允许用有效方式以(可能地)高故障容限及低网络业务来搜索并发现服务。另一可能优点是在搜索特定服务时基于除正被搜索的特定服务的特性之外的特性而确定相邻服务注册表的能力。
如所提及,在一个实施例中,可将对特定服务的搜索请求(查询)转发到网络中的相邻服务注册表,其中基于除正被搜索的特定服务的特性之外的特性而确定相邻节点。举例来说,可基于网络等待时间(例如,除数据存储之外的特性)而将对数据存储服务的请求转发到相邻服务注册表。作为可能优点,以此方式选择相邻节点可允许快速地发现不在本地托管的服务。
在一个实施例中,所述特定服务的特性为特定特性且所述搜索查询识别所述特定服务及所述特定服务的特定特性。在此实施例中,所述处理器可经配置以基于除所述特定特性之外的特性而确定相邻服务注册表。此实施例的优点可包含较大的故障容限且减少用于同步的网络业务。作为又一可能优点,此实施例可允许以有效方式来搜索并发现服务。另一可能优点是在搜索特定服务时基于除正被搜索的特定服务的特性之外的特性而确定相邻服务注册表的能力。
在一个实施例中,所述处理器经配置以基于多个特性而确定所述相邻服务注册表,其中所述多个特性并非所述特定服务的特性,且其中所述处理器经配置以对所述多个特性中的每一者进行加权。此实施例的优点允许搜索考虑一个以上特性,其中所述特性并非所述特定服务的特性。对所述特性进行加权可提供使用不同特性同时为每一特性赋予不同权重的优点。
在一个实施例中,所述搜索查询将所述特定服务指示为数据存储,且除所述服务的所述特性之外的特性包含带宽、地理位置、开放信道、等待时间、多播能力、跳跃数目、成本或网络类型。
在一个实施例中,所述服务注册表网络为树状服务注册表网络。在另一实施例中,所述服务注册表网络为网状服务注册表网络。树状网络及网状网络的可能优点是各自允许并行地(且可能以有效方式)搜索服务。树状网络的可能优点是其可减少网络业务(例如,较少的分布式搜索及较少的匹配结果)(与网状网络相比)。网状网络的可能优点是其可较快且并行度较大(与树状网络相比)。
所述系统可包含另一装置。所述另一装置可包含用以存储相邻数据库的存储器。所述另一装置可包含用以接收所述搜索查询的接收器,及经配置以查询所述相邻数据库以确定满足所述搜索查询的第二服务列表的处理器。所述另一装置可包含用以将所述第二列表发送到所述本地服务注册表的发射器。此实施例的优点可包含较大的故障容限及减少用于同步的网络业务。作为又一可能优点,此实施例可允许以有效方式搜索并发现服务。
在一个实施例中,所述相邻服务注册表为做出请求的服务注册表。在此实施例中,所述另一装置中的所述处理器经配置以确定所述第二服务列表是否为充足的,且当所述第二服务列表不充足时。所述处理器还可经配置以基于除所述特定服务的所述特性之外的特性而在所述服务注册表网络中确定另一相邻服务注册表,其中所述另一相邻服务注册表与所述做出请求的服务注册表相邻。所述处理器还可经配置以将所述搜索查询发送到所述另一相邻服务注册表,其中所述另一相邻服务注册表包含列举在所述另一相邻服务注册表中注册的服务的另一相邻数据库。所述接收器可经配置以从所述另一相邻服务注册表接收在所述另一相邻服务注册表中注册的满足所述搜索查询的另一服务列表。所述第二列表包含所述另一列表。此实施例的优点可包含较大的故障容限及减少用于同步的网络业务。作为又一可能优点,此实施例可允许以有效方式搜索并发现服务。举例来说,搜索可在结果充足时停止,而不必将所述查询发送到额外相邻节点。
所述系统还可包含额外装置,所述额外装置包含配置为所述另一装置以连续地搜索满足所述查询的服务的存储器、接收器、处理器及发射器。作为可能优点,此实施例允许查询传播穿过网络直到结果充足为止。
在另一实施例中,一种方法可包含确定对应于特定服务的服务注册表网络的拓扑。在此实施例中,所述服务注册表中的每一者列举在对应服务注册表中注册的服务的实例。确定拓扑可包含针对每一服务注册表基于除所述特定服务的特性之外的特性而确定一或多个相邻服务注册表。此实施例的优点可包含较大的故障容限及减少用于同步的网络业务。作为又一可能优点,此实施例可允许以有效方式搜索并发现服务。
服务注册表的网络拓扑可为多个节点的网络上的覆盖网络。在此实施例中,所述方法可包含确定服务注册表的多个拓扑,每一拓扑对应于不同的特定服务。作为可能优点,根据拓扑查询连续相邻节点可允许快速地发现不在本地托管的服务。
不同拓扑可具有不同的可能优点。举例来说,网络的树状拓扑及网状拓扑两者的一个可能优点是各自允许并行地搜索服务。树状拓扑的可能优点是其可减少网络业务(与网状网络相比)。网状拓扑的可能优点是其可较快且并行度较大(与树状网络相比)。此外,一个可能优点是可基于正被搜索的特定服务而选择适当或最好的拓扑(树状、网状或其它)。
附图说明
图1是图解说明根据下文所描述的一或多个实施例的示范性环境的框图;
图2是图解说明图1的装置的示范性组件的框图;
图3是图解说明图1的装置的示范性功能层的框图;
图4A是图解说明图3的服务层的示范性功能组件的框图;
图4B是图解说明图4A的服务注册表的功能性的框图;
图4C是图解说明图4A的服务注册表的示范性功能组件的框图;
图4D是特定服务的示范性特性表的框图;
图5A是图解说明图3的覆盖网络层的功能组件的框图;
图5B是示范性功能覆盖网络的树的框图;
图6A及6B是网络的示范性拓扑的框图;
图7A是在一个实施例中用于确定网络的拓扑的示范性过程的流程图;
图7B是用于确定除特定服务的特性之外的特性的过程的流程图;及
图8是用于搜索服务的示范性过程的流程图。
具体实施方式
以下详细描述参考附图。不同图式中的相同参考编号识别相同或类似元件。
如下文所描述,装置网络可经由网络通信且可形成提供大量各种服务的系统的部分。不同装置可在不同时间提供不同服务,且所述系统可需要以优选地有效且可靠的方式定位或搜索托管特定服务的装置(例如,引入技术问题)。
为了解决发现由不同装置提供的服务的问题,装置可在服务注册表中注册所提供服务。在一个解决方案/实施例中,服务注册表可集中于网络中。在此解决方案/实施例中,网络中的所有服务均被注册在中央服务注册表中。由于仅存在一个中央服务注册表,因此其始终为同步的且相对容易维持。然而,中央服务注册表产生单个故障点(即,另一技术问题)。也就是说,如果中央服务注册表失效,那么可能难以(如果不是不可能)发现服务。此外,中央服务注册表并不非常好地进行缩放(即,另一技术问题)。也就是说,随着网络以指数方式增长,服务注册表的处理速度及可用带宽也以指数方式增长。
在另一解决方案/实施例中,服务注册表可分布在网络中的装置当中(例如,可复制注册表的完整副本)。此解决方案/实施例允许超出集中式服务注册表的额外故障容限。另一方面,随着网络增长,在装置当中对注册表的同步变得越来越困难且网络业务可能变成一问题(即,另一技术问题)。
在又一解决方案/实施例中,服务注册表分布在网络中的装置当中,但所述服务注册表可能为不等同的。在此实施例中,服务可在本地服务注册表中注册。服务注册表可能不知晓网络中的所有服务,但可知晓本地服务。因此,发现不在本地托管的服务可提出挑战(即,技术问题)。为了在网络中发现服务,此解决方案/实施例允许客户端(查找服务)向本地服务注册表请求(例如,将查询发送到本地服务注册表)服务。如果本地服务注册表不能满足所述请求,那么可将所述请求转发到附近服务注册表(例如,接近本地服务注册表的一或多个相邻服务注册表)。此解决方案/实施例允许较大的故障容限(与中央服务注册表相比)(例如,可能的优点),同时减少用于同步的网络业务(与完全分布式服务注册表相比)(例如,另一可能的优点)。在一个解决方案/实施例中,可将对特定服务的搜索请求(查询)转发到网络中的相邻服务注册表,其中基于除正被搜索的特定服务的特性之外的特性而选择相邻节点。举例来说,可基于网络等待时间(例如,除数据存储之外的特性)而将对数据存储服务的请求转发到相邻服务注册表。根据此解决方案/实施例选择相邻节点可允许快速地发现不在本地托管的服务(例如,另一可能的优点)。另一可能的优点是基于除正被搜索的特定服务的特性之外的特性而确定用于搜索特定服务的相邻服务注册表的能力。
图1是可在其中实施所描述的系统及/或方法的示范性环境100的框图。如图1的实施例中所展示,环境100包含网络110、子网络120-A到120-N(统称为“子网络120”且个别地称为“子网络120”)、装置130-A-A到130-N-K(统称为“装置130”且个别地称为“装置130”)及管理装置150。装置130-N-K是指子网络120-N中的第K个装置130。在此实施例中,环境100中的组件形成面向服务的架构(SOA)系统服务总线140。
网络110使得子网络120及/或装置130能够彼此通信。网络110可包含一或多个电路交换网络及/或包交换网络。举例来说,在一个实施例中,网络110可包含局域网(LAN)、广域网(WAN)、城域网(MAN)、公共交换电话网络(PSTN)、特设网络、内联网、因特网、基于光纤的网络、无线网络及/或这些或其它类型网络的组合。
子网络120可包含LAN(例如,层2网络)及/或专用网络(例如,层3网络)。子网络120可互连一或多个装置130。举例来说,子网络120-A可互连装置130-A-A到130-A-J。举例来说,装置130可包含经配置以经由SOA系统服务总线140通信的任何装置。
装置130可包含:服务器计算机装置,例如超文本预处理器(PHP)服务器装置、C程序服务器装置、Linux服务器装置、Windows服务器装置及/或另一类型的服务器装置;个人计算机装置,例如桌上型计算机、膝上型计算机、平板计算机、移动通信装置及/或运行Windows、Linux、Android、iOS及/或另一操作系统的另一类型的个人计算机装置;监视装置,例如可见光摄像机、红外(IR)摄像机、热标志摄像机;麦克风;报警传感器,例如运动传感器、热传感器、压力传感器及/或另一类型的报警传感器;微控制器计算机装置;及/或另一类型的计算机装置。尽管将装置130展示为连接到子网络120,但特定装置130可直接连接到网络110。
在一个实施例中,在现有网络拓扑的顶部上于装置130之间实施SOA系统服务总线140。SOA系统服务总线140可使得不同类型的装置130及/或使用不同平台实施的装置130能够使用面向服务的架构进行通信。SOA系统服务总线140可使得第一装置130能够向任何装置130(例如,本身或另一装置130)请求特定服务。因此,由第一装置130托管的客户端(例如,本身为“服务”或“客户端服务”)可请求由第二装置130托管的服务(例如,当所述服务在第一装置130中为不可用时)。请求另一服务(例如,在第二装置130中)的第一服务(例如,在第一装置130中)由于已起始请求而称为“客户端”或“客户端服务”。举例来说,第一服务还可向网络中的其它服务提供服务。
在一个实施例中,经由标准化服务接口来访问服务。每一类型的服务均可与特定服务接口(例如,不同服务接口)相关联。因此,请求服务的客户端可与服务接口通信,且所述客户端关于所述服务的实际实施方案可能是不可知的。换句话说,服务的实施方案使用由服务接口界定的协议彼此进行通信,使得每一实施方案不必与其它服务的实施方案有关。与特定服务接口相关联的运行服务实施方案可称为服务实例。包含服务主机(例如,托管服务的装置)的装置130可借助服务注册表(例如,服务列表或数据库)来保持追踪可用服务实例。SOA系统服务总线140可使得装置130之间的通信能够通过搜索装置130中的服务主机的服务注册表而定位所请求服务。
管理装置150可使得管理员能够配置或以其它方式管理SOA系统服务总线140。举例来说,管理装置150可包含便携式通信装置(例如,移动电话、智能电话、平板电话装置、全球定位系统(GPS)装置及/或另一类型的无线装置);个人计算机或工作站;服务器装置;膝上型计算机、平板计算机或另一类型的便携式计算机;及/或具有通信能力的任何类型的装置。
如同网络110,子网络120可包含一或多个电路交换网络及/或包交换网络。举例来说,子网络120可包含LAN、WAN、MAN、PSTN、特设网络、内联网、因特网、基于光纤的网络、无线网络及/或这些或其它类型的网络的组合。
虽然图1展示环境100的示范性组件,但在其它实施方案中,环境100相比图1中所描绘的组件可包含更少的组件、不同的组件、不同布置的组件或额外组件。另外或替代地,环境100中的任一装置(或任何装置群组)可执行描述为由环境100中的一或多个其它装置执行的功能。
图2是图解说明装置130的示范性组件的框图。如图2中所展示,装置130可包含总线210、处理器220、存储器230、输入装置240、输出装置250及通信接口260。
总线210可包含准许装置130的组件当中的通信的路径。处理器220可包含任何类型的单核心处理器、多核心处理器、微处理器、基于锁存器的处理器及/或解译并执行指令的处理逻辑(或处理器、微处理器及/或处理逻辑的族群)。在其它实施例中,处理器220可包含专用集成电路(ASIC)、现场可编程门阵列(FPGA)及/或另一类型的集成电路或处理逻辑。
存储器230可包含可存储供由处理器220执行的信息及/或指令的任何类型的易失性及/或动态存储装置,及/或可存储供由处理器220使用的信息的任何类型的非易失性存储装置。举例来说,存储器230可包含随机存取存储器(RAM)或另一类型的动态存储装置、只读存储器(ROM)装置或另一类型的静态存储装置、内容可寻址存储器(CAM)、磁性及/或光学记录存储器装置及其对应驱动器(例如,硬盘驱动器、光学驱动器等等)及/或可装卸形式的存储器,例如快闪存储器。
输入装置240可允许操作者将信息输入到装置130中。举例来说,输入装置240可包含键盘、鼠标、笔、麦克风、遥控器、音频捕获装置、图像及/或视频捕获装置、触摸屏显示器及/或另一类型的输入装置。在一个实施例中,装置130可经远程地管理且可不包含输入装置240。换句话说,装置130可为“无头的”,且举例来说,可不包含键盘。
输出装置250可将信息输出给装置130的操作者。输出装置250可包含显示器、打印机、扬声器及/或另一类型的输出装置。举例来说,装置130可包含显示器,其可包含用于将内容显示给客户的液晶显示器(LCD)。在一个实施例中,装置130可经远程地管理且可不包含输出装置250。换句话说,装置130可为“无头的”,且举例来说,可不包含显示器。
通信接口260可包含使得装置130能够与其它装置及/或系统通信的收发器(例如,发射器及/或接收器)。通信接口260可经由无线通信(例如,射频、红外及/或视觉光学器件等等)、有线通信(例如,导电线、双绞线电缆、同轴电缆、传输线、光纤电缆及/或波导等等)或无线与有线通信的组合进行通信。网络接口260可包含将基带信号转换为射频(RF)信号的发射器及/或将RF信号转换为基带信号的接收器。网络接口260可耦合到用于发射及接收信号的天线。
网络接口260可包含逻辑组件,所述逻辑组件包含输入及/或输出端口、输入及/或输出系统及/或促进将数据发射到其它装置的其它输入及输出组件。举例来说,网络接口260可包含用于有线通信的网络接口卡(例如,以太网卡)及/或用于无线通信的无线网络接口(例如,WiFi)卡。网络接口260还可包含用于经由电缆通信的通用串行总线(USB)端口、BluetoothTM无线接口、射频识别(RFID)接口、近场通信(NFC)无线接口及/或将数据从一种形式转换为另一形式的任何其它类型的接口。
如下文所描述,装置130可执行与在SOA网络中发现服务(例如,附近服务)有关的某些操作。装置130可响应于处理器220执行计算机可读媒体(例如存储器230)中所含有的软件指令而执行这些操作。计算机可读媒体包含非暂时性存储器装置。存储器装置可实施于单个物理存储器装置内或跨越多个物理存储器装置散布。可将软件指令从另一计算机可读媒体或从另一装置读取到存储器230中。存储器230中所含有的软件指令可致使处理器220执行本文中所描述的过程。或者,可代替或结合软件指令来使用硬连线(例如,固定)电路以实施本文中所描述的过程。因此,本文中所描述的实施方案并不限于硬件电路及软件的任何特定组合。
虽然图2展示装置130的示范性组件,但在其它实施方案中,装置130相比图2中所描绘的组件可包含更少的组件、不同的组件、额外组件或不同布置的组件。另外或替代地,装置130的一或多个组件可执行描述为由装置130的一或多个其它组件执行的一或多个任务。管理装置150可类似地被配置为装置130。
图3是图解说明装置130的示范性通信层的框图。装置130的功能组件可(举例来说)由执行来自存储器230的指令的处理器220实施。另外或替代地,装置130的功能组件可经由一或多个ASIC的硬连线(例如,固定)电路来实施。如图3中所展示,装置130可包含服务层310、覆盖网络层320及装置层330。
在一个实施例中,服务层310使得客户端能够搜索特定服务类型的服务实例且使得客户端能够将请求发送到特定服务实例。可经由在一个实施例中对服务的实际实施方案不可知的标准化服务接口来访问所述服务。服务实例可与明确边界相关联。在此实施例中,在装置130上运行的特定过程及/或存储于装置130上的特定数据无歧义地驻存在服务实例内或服务实例外部。一服务实例相对于其它服务实例可为自主的。举例来说,可修改特定服务实例(例如,可重写代码),而不会负面地影响与所述特定服务实例交互的其它服务实例。一服务可能与(相同类型或不同类型的)其它服务实例共享模式及/或合约,但在一个实施例中,不共享服务实施方案。模式规定由服务接口发送或接收的消息的格式及内容。合约规定由服务接口发送或接收的容许消息序列。
在一个实施例中,覆盖网络层320在现有网络拓扑的顶部上实施覆盖网络。覆盖网络层320可负责将业务路由穿过防火墙及/或处理基础网络拓扑中的网络地址转译(NAT)。在一个实施例中,覆盖网络拓扑(例如,其可不同于基础网络拓扑)包含以树状结构组织的节点。覆盖网络拓扑在逻辑上连接所述节点。在其它实施例中,覆盖网络拓扑可包含不同类型的结构(例如,网状拓扑)。装置130中的每一服务主机可对应于覆盖网络中的节点且可被指派节点识别符(ID)。如上所提及,装置130可包含多个服务主机及/或多个节点。可将装置130描述为包含对应于一个节点的一个主机。所述节点可经由网络拓扑(例如路由树)来连接,且节点可经由路由树将消息发送到另一节点。在一个实施例中,节点可经由基础网络拓扑将消息发送到另一节点,而所述消息并不遍历覆盖网络拓扑。每一节点可存储用以到达其在覆盖网络(以及例如网络110等基础网络)中的相邻者的信息(例如,基础网络的地址)。覆盖网络层320可对应于节点之间的通信层且可使用多个网络拓扑来实现特定功能。举例来说,当针对特定类型的服务搜索服务注册表时,覆盖网络层320可在于服务注册表中搜索的同时遍历节点树的边缘。在一个实施例中,当将消息从第一节点发送到第二节点时,覆盖网络层320可将消息从第一节点直接发送到第二节点,而非通过沿循树的边缘。覆盖网络层320可将节点ID提供到服务层310,且服务层310可将消息发送到特定节点ID,而不需要知晓基础网络拓扑。
在一个实施例中,装置层330在SOA系统服务总线140的初始安装期间执行装置发现。装置层330及/或覆盖网络层320还可在初始安装之后执行节点发现,及/或可重新发现曾离线且在稍后时间重新加入覆盖网络的丢失节点。在一个实施例中,覆盖网络层320管理覆盖网络的共享秘密(例如证书),所述共享秘密使得节点能够验证彼此的身份。覆盖网络层320可基于一或多个接近度度量而形成覆盖网络的拓扑(例如,路由树或网格)。然而,从第一节点到第二节点的消息不需要遍历路由树且可代替地从第一节点被直接发送到第二节点。在另一实施例中,从第一节点到第二节点的消息遍历路由树。此外,覆盖网络层320可基于多播群组而发送多播消息。此外,覆盖网络层320可为服务层310提供服务质量(QoS)保证。
尽管网络层320通常涉及“节点”,但装置层330通常涉及“装置”。装置层330对应于装置130的下部功能性层级,包含使用基础网络拓扑(例如,网络110及/或子网络120)进行通信所需的功能性。举例来说,装置层330可实施开放系统互连(OSI)模型的层1到6(例如,物理层、数据链路层、网络层、输送层、会话层及呈现层)。这些层的实施方案可包含路由以太网帧、路由因特网协议(IP)包、会话管理、加密及解密包、重新发射丢失的包等等。
虽然图3展示装置130的示范性功能组件,但在其它实施方案中,装置130相比图3中所描绘的功能组件可包含更少的功能组件、不同的功能组件、不同布置的功能组件或额外功能组件。另外,装置130的组件中的任一者(或任何组件群组)可执行描述为由装置130的一或多个其它功能组件执行的功能。
图4A是图解说明服务层310的示范性功能组件的框图。如图4A中所展示,服务层310包含服务主机415。服务主机415可包含一或多个服务410-A到410-N(统称为“服务410”且个别地称为“服务410”)、一或多个客户端420-A到420-K(统称为“客户端420”且个别地称为“客户端420”)、消息分派器430及服务注册表440。
服务410对应于与装置130的服务层310的服务主机415相关联的服务实例。在一个实施例中,服务410包含服务接口412及服务实施方案414。服务接口412可包含通信协议,例如标准化通信协议。在一个实施方案中,通信协议包含唯一名称及版本。可使用简单对象访问协议(SOAP)接口规范、JavaScript对象记法(JSON)接口规范及/或另一类型的接口规范来规定服务接口412。服务实施方案414包含服务410的实施方案。服务实施方案414处理经由服务接口412接收的请求及/或通过服务接口412对服务请求做出响应。服务接口412可将从服务实施方案414接收的响应转换成与客户端420用来与服务410交换消息的恰当协议兼容的特定格式。
在一个实施例中,客户端420通过将请求发送到服务注册表440来请求特定服务类型的服务实例。一旦识别并选择了服务实例,客户端420便可经由消息分派器430将请求发送到经识别及选择的特定服务实例。如上文所论述,客户端420也可为服务410。术语“客户端”或“客户端服务”将服务识别为正请求另一服务的服务。
消息分派器430从客户端420接收传入消息并将其引导到为传入消息的既定接收方的服务410。此外,消息分派器430可从服务接收消息并将所述消息发送到特定客户端420。如果传入消息的目的地不在与消息分派器430相同的装置130上,那么可将所述消息转发到覆盖网络层320以供转发到正确的装置130。服务410及客户端420可充当由覆盖网络层320实施的覆盖网络中的端点。因此,在一个实施例中,覆盖网络层320可维持基于覆盖网络的路由树的路由表。所述路由表可包含特定节点ID的下一些跳跃目的地的列表。消息分派器430可识别传出ID的下一跳跃目的地且可将消息提供到覆盖网络层320以供递送。因此,在此实施例中,消息分派器430实施请求-响应消息接发机制。
服务注册表440维持经部署服务410的列表连同与所述经部署服务(例如,服务的实例)相关联的特性。下文参考图4C更详细地描述服务注册表440的示范性组件。服务410可通过给服务注册表440提供所述服务的描述(例如,包含服务的特性)而在服务注册表440中注册。由于客户端420也可为服务410,因此客户端420也可在服务注册表440中注册。
图4B是图解说明服务注册表440的功能性的框图。如图4B中所展示,服务注册表440可从客户端420接收搜索查询。搜索查询可规定特定服务类型、特定服务类型的一或多个所请求特性、所请求命中数目及/或一或多个其它参数。服务注册表440可识别满足搜索查询的服务410。如果服务注册表440不满足所请求命中的数目,那么服务注册表440可将查询转发到覆盖网络中的另一服务注册表440(例如,邻近服务注册表440)。在一个实施例中,服务注册表440并不基于搜索查询而选择特定服务实例。而是,在此实施例中,服务注册表440将查询的结果返回到客户端420,且曾发起所述查询的客户端420可从搜索结果选择特定服务实例。在另一实施例中,服务注册表440基于搜索查询而从查询的结果选择特定服务实例。
虽然图4A及4B展示服务层310的示范性功能组件,但在其它实施方案中,服务层310相比图4A及4B中所描绘的功能组件可包含更少的功能组件、不同的功能组件、不同布置的功能组件或额外功能组件。另外,服务层310的组件中的任一者(或任何组件群组)可执行描述为由服务层310的一或多个其它功能组件执行的功能。
图4C是图解说明服务注册表440的示范性功能组件的框图。如图4C中所展示,服务注册表440可包含主机服务注册表数据库(DB)442、查询处置器444及服务注册表高速缓冲存储器446。
主机服务注册表DB 442可维持由服务主机415托管的服务410的列表及/或那些服务的特性。下文关于图4C来提供在主机服务注册表DB 442中列举的服务及所述服务的特性的实例。可通过在服务注册表440中注册的服务410来填充主机服务注册表DB 442。
主机服务注册表DB 442还可公开用于添加或移除所列举服务及读取或写入由服务主机415托管的服务的特性及/或写入服务特性的接口。在一个实施例中,举例来说,主机服务注册表DB 442可维持由不同装置130上的服务主机415托管的服务410的列表。不同装置上的服务主机415可使用所公开接口在另一装置上的服务注册表中列举其服务。此外,主机服务注册表DB 442可公开可由其它服务注册表访问的搜索查询服务接口。因此,其它服务注册表可使用所述搜索查询服务接口来确定主机服务注册表DB 442是否包含满足特定查询的条目。在一个实施例中,在主机服务注册表DB 442中列举的服务可过期(例如,在一时间周期之后如果未被刷新则被从DB 442移除)以帮助防止DB442存储过时的信息。
查询处置器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存储过时的信息。
虽然图4C展示服务注册表440的示范性功能组件,但在其它实施方案中,服务注册表440相比图4C中所描绘的功能组件可包含更少的功能组件、不同的功能组件、不同布置的功能组件或额外功能组件。另外,服务注册表440的组件中的任一者(或任何组件群组)可执行描述为由服务注册表440的一或多个其它功能组件执行的功能。
图4D是特定服务的示范性特性表460的框图。在一个实施例中,服务的实例(例如,每一实例)与一特性表(例如表460)相关联。主机服务注册表数据库DB 442可存储在对应服务注册表440中注册的每一服务的特性表。在一个实施例中,如上文所描述,存储于任一个服务注册表DB 442中的信息可不同于存储于其它服务注册表数据库中的信息。示范性特性表460包八个字段:ID字段462、接口字段464、服务格式字段468、输送协议字段470、CPU排名472、磁盘空间字段474及RAM字段476。
实例ID字段462唯一地界定特定服务的实例。实例ID(可能连同节点ID一起)可唯一地将服务实例与网络中的(相同类型或不同类型的)任何其它服务识别开。在一个实施例中,实例ID字段462为整数。在表460中,作为一实例,实例ID是6529。
接口字段464识别服务的接口的名称。在此情况中,接口字段464还可通过接口的类型来识别服务的类型。举例来说,表460将接口识别为“存储服务”。服务格式字段468识别由服务的实例使用的格式。作为一实例,表460将服务格式识别为“JSON”。输送协议字段470识别由服务的实例使用的协议。作为一实例,表460将服务格式识别为“节点协议”。
CPU排名字段472识别与服务实例相关联的CPU的性能。在一个实施例中,使用标度(例如,1到100)。表460在CPU排名字段472中将服务的CPU排名识别为20/100。RAM字段476识别可用于服务的随机存取存储器的量。表460在字段476中将可用RAM识别为2GB。
虽然图4D展示特性表460的示范性组件,但在其它实施方案中,特性表460相比图4D中所描绘的组件可包含更少的组件、不同的组件、不同布置的组件或额外组件。
图5A是图解说明覆盖网络层320的框图功能组件。如图5A中所展示,覆盖网络层320可包含节点管理器510、通信管理器520及多播管理器530。节点管理器510可将例如节点ID等节点信息提供到覆盖网络中的其它节点。此外,节点管理器510可维持覆盖网络中的节点的列表。节点管理器510可执行节点发现以识别添加到覆盖网络的新节点及/或重新发现已重新加入覆盖网络的丢失节点。节点管理器510还可确定网络的拓扑,如下文所描述(例如,哪些节点最接近其它节点)。
通信管理器520可使得节点能够彼此通信。通信管理器520可实施用以遍历覆盖网络的树的机制。可结合服务注册表的搜索查询或在与另一节点的直接通信方法不可用时执行树遍历。此外,通信管理器520可实施可使得覆盖网络的特定节点能够直接通信而不必遍历覆盖网络的树的直接通信方法。
多播管理器530可实施多播机制。所述多播机制可用于将消息发送到多播群组的成员(例如,所有成员)。此外,多播机制可用于实施订阅-通知消息接发型式。因此,与特定服务实例相关联的事件可用于触发发送到已向所述特定服务实例订阅消息的节点的消息。多播管理器530可包含应用层多播管理器或来自下部OSI层的多播管理器。
虽然图5A展示覆盖网络层320的示范性功能组件,但在其它实施方案中,覆盖网络层320相比图5A中所描绘的功能组件可包含更少的功能组件、不同的功能组件、不同布置的功能组件或额外功能组件。另外,覆盖网络层320的组件中的任一者(或任何组件群组)可执行描述为由覆盖网络层320的一或多个其它功能组件执行的功能。
图5B是覆盖网络540的示范性拓扑的框图。如图5B的实例中所展示,覆盖网络540包含节点N1到N7。节点N1及N2处于多播群组560-1中。节点N1包含服务端点S1及S3以及客户端端点C1。节点N3是节点N1及N2的父节点。节点N3包含服务端点S7及客户端端点C3。
节点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的拓扑中的父节点具有两个子节点,但在其它实施方案中,父节点可具有两个以上子节点。
假设每一服务端点与服务注册表440相关联,则搜索查询可如下遍历覆盖功能网络540。假设服务端点S7执行搜索查询以发现(例如,识别或搜索)服务端点S1及服务端点S5中所包含的特定服务(即,对于此,S1及S5为匹配)。服务端点S7可将搜索查询发送到其本地服务注册表,这可导致搜索查询中的不匹配。本地服务注册表可接着识别覆盖网络中的邻近服务注册表,所述邻近服务注册表可包含节点N1中的服务注册表及节点N4中的服务注册表(节点N2可不包含服务注册表,因为不存在与节点N2相关联的服务端点)。节点N1中的服务注册表可返回识别服务端点S1的命中。节点N4中的服务注册表可不返回命中且可将搜索查询转发到其邻近服务注册表,在此情况中,所述邻近服务注册表包含节点N3及N5中的服务注册表。然而,由于节点N3中的服务注册表已处理所述搜索,因此可将搜索查询仅发送到中节点N5的服务注册表。节点N5处的服务注册表可未提供命中且可将搜索查询转发到节点N7处的服务注册表。节点N7可将服务端点S5识别为命中且可将搜索查询的结果返回到节点N4,且节点N4可将搜索结果转发到节点N3中的服务端点S7。
图6A及6B是节点(例如,每一节点包含形成服务注册表440的网络的服务主机415(见图4A))的网络600(例如,树状网络)的另一示范性拓扑的框图。网络600包含六个节点:节点P到U。节点P具有两个子代:节点Q及节点R。节点R不具有任何子代。节点Q具有三个子代:节点S、节点T及节点U。在网络600的实例中,每一节点对应于可包含图4A中所展示的组件(例如,服务410、客户端420、消息分派器430及服务注册表440)的服务主机415。
图6B展示服务主机(例如,服务主机415-P到415-U)及服务注册表(例如,注册表440-P到注册表440-U)的关系。对于网络600的实例,每一服务主机还包含对应客户端(客户端420-P到客户端420-U,未展示)及对应服务(例如,服务410-P到服务410-U,未展示)。此外,每一服务注册表440-P到440-U包含主机服务注册表DB(DB 442-P到DB442-U,未展示)、查询处置器(例如,查询处置器444-P到处置器444-U)及服务注册表高速缓冲存储器(例如,高速缓冲存储器446-P到高速缓冲存储器446-U)。
如所提及,当客户端搜索特定服务时,搜索可根据拓扑而从一个节点到另一节点传播穿过网络。所述网络拓扑可取决于正被搜索的特定服务而不同。举例来说,对存储容量的搜索可与不同于对特定类型的转码器的搜索的网络拓扑相关联。图7A是在一个实施例中用于确定SOA网络的拓扑的示范性过程700A的流程图。节点管理器510(见图5A)执行过程700A且可周期性地如此操作。然而,在其它实施例中,环境100中的任何装置可执行过程700A的全部或部分。
在一个实施例中,节点管理器510选择将针对其产生网络拓扑的特定服务(框702)。举例来说,节点管理器510可选择“存储服务”作为将针对其建构网络的拓扑的服务。在另一实施例中,节点管理器510在记住特定服务的情况下但基于一或多个特性(框702)而产生拓扑,所述特性例如为节点的特性(例如,处理器速度)或一个节点与另一节点的关系的特性(例如,带宽)。
节点管理器510可基于一或多个特性而确定网络的拓扑。如果选择特定服务(框702),那么节点管理器510可基于除特定服务的特性之外的特性而确定拓扑。如果未选择特定服务,那么节点管理器510仍可基于除特定服务的特性之外的特性而确定拓扑(针对在框702中选择的一或若干特性)(针对此情形,可使用所述拓扑来搜索特定服务)。也就是说,可使用所述拓扑来搜索特定服务(例如,即使所述拓扑是在未记住特定服务的情况下产生的),且所述拓扑是基于除特定服务的特性之外的特性而产生的。因此,节点管理器510还可确定用于产生拓扑的一(或若干)特性(框706)(例如,除特定服务的特性之外的一或若干特性)。举例来说,图7B是用于确定除特定服务的特性之外的特性的示范性过程700B的流程图。确定一(或若干)特性(框706)可包含图7B中所展示的过程700B。如同图7A的过程700A,过程700B可由节点管理器510执行。
切换到图7B以详细说明框706(见图7A),过程700B可确定多个特性。在一个实施例中,所确定特性并非特定服务(例如,在框702中选择或在使用拓扑进行搜索时所搜索的服务)的特性。举例来说,过程700B可包含确定两个节点是否在相同域中(框722)。相同域中的节点可比不同域中的节点更靠近。举例来说,相同域中的节点可为在相同防火墙后面的节点。过程706可包含确定节点是否可经由多播而到达彼此(框724)。在一些实施方案中,在相同网络中的节点(框722)可为可经由多播(例如,多播能力)到达的节点(框724)。在其它实施方案中,可使用不同技术来确定可经由多播到达的节点,例如确定节点是同一多播群组的成员。可经由多播到达的节点可被视为比不可经由多播到达的节点更靠近。
过程700B还可包含确定节点的地理位置(框726)。在此情况中,在地理上彼此较靠近的节点被视为比地理上较远离的节点在拓扑中更靠近。过程700B可包含确定节点之间的等待时间及/或节点之间的可用带宽(框728)。具有低等待时间的节点可被视为比具有较高等待时间的节点在网络中更靠近。彼此之间具有高带宽的节点可被视为比具有较低等待时间的节点在网络中更靠近。
过程700B可包含确定节点的存储容量(框730)。过程700B还可包含确定节点的处理器速度或类别(框732)。举例来说,具有高存储容量及高处理器速度的节点可变为拓扑中的父节点。可确定除图7B中所展示的特性之外的特性(例如,除将被搜索的特定服务的特性之外)。举例来说,特性(例如,除特定服务的特性之外)可包含任何两个节点之间是否存在信道且所述信道是否开放(例如,开放信道)、任何两个节点之间的跳跃(例如,在基础物理网络中)的数目、用于在两个节点之间载运数据(例如,移动订阅服务)的成本(例如,按货币)、地理位置(例如,数据是否将通过特定国家)及/或网络类型(例如,光纤、WiFi、移动、蜂窝式等等)。
返回到图7A,节点管理器510可对用于确定网络拓扑的特性进行加权(框708)(例如,针对特性中的每一者的权重)。基于经加权特性,节点管理器510可确定每一节点与其它节点的接近度(框710)。在一个实施例中,接近度的确定是至少部分地基于除特定服务的特性之外的特性(框710)。基于接近度,节点管理器510可针对特定服务(在框702中确定)或选定的一或若干特性(也在框702中确定)确定网络的拓扑(框712)。举例来说,所述拓扑可为树状网络、网状网络以及其它。
在一个实施例中,节点管理器510可针对每一服务确定不同拓扑。举例来说,节点管理器510可针对“存储服务”确定不同于“摄像机”的拓扑的拓扑。在另一实例中,节点管理器510可确定针对不同条件(例如等待时间或地理位置(或任何条件的经加权混合))的拓扑。在一个实施例中,客户端420(例如,曾请求搜索的客户端)可在发出请求时识别拓扑。举例来说,在其中节点管理器510确定针对不同条件的拓扑的情况中,与拓扑相关联的条件可包含除在搜索查询中被识别为正在搜索的特定服务的特性之外的一或多个特性。此实施例允许客户端在流式传输需要大带宽的文件时搜索“具有良好带宽的存储服务”。作为另一实例,此实施例允许客户端在流式传输需要小等待时间的文件时搜索“在地理上接近(例如,低等待时间)的存储服务”。可针对地理接近度使用一个拓扑且可针对带宽使用另一拓扑。但是,可界定不同拓扑且将其用于地理接近度与带宽的组合。在前述实例中,带宽及地理接近度为除正被搜索的特定服务(例如,数据存储)的特性之外的特性。
在一实例中使用网络600来搜索服务。图8是用于在SOA网络中搜素服务的示范性过程800的流程图。举例来说,过程800可在服务层310中的服务主机中执行。在一个实施例中,举例来说,过程800(或过程800的部分)可为递归的及/或反复的,其中所述过程(或所述过程的部分)的多个实例在多个服务主机中发生且其中所述过程在另一服务主机中调用其本身。关于图6的网络600来描述过程800。
过程800可以在客户端中制定搜索查询并将所述查询发送到服务注册表开始(框802)。在一个实施例中,所述客户端将查询发送到本地服务注册表(例如,在相同服务主机415而非是不同节点中的服务主机415中)。作为一实例,参考网络600,节点S中的客户端420-S制定对特定服务的查询并将所述查询发送到节点S中的服务注册表440-S(框802)。如图8中所展示,查询可为(&(接口=存储服务)(CPU排名>10)(磁盘空间>=500MB))。所述查询可规定并请求若干个结果(例如,若干个服务,例如六个)。在此实例中,所述查询规定特定服务(例如,“存储服务”)及特定服务的特定特性(例如,磁盘空间>=500MB)。由客户端440-S产生的查询还可规定或请求将要爬行(例如,遍历、沿循或行进)的覆盖网络的拓扑。如上文所提及,所述查询可针对地理靠近度、等待时间、带宽、相同或不同域、存储容量、处理器速度等等或这些特性的任何经加权组合规定所述拓扑。
服务注册表从客户端接收查询(框804)。继续网络600的实例,节点S中的服务注册表440-S从客户端420-S接收对特定服务的查询(例如,本地服务注册表)。特定来说,查询处置器444-S(见图4C)可接收所述查询。如图8中所指示且下文所更详细地描述,服务注册表还可从另一服务注册表接收搜索查询(框804)(例如,不同节点中的不同服务主机415中的服务注册表)。
已接收到搜索查询后,所述服务注册表查询主机服务注册表DB(例如,本地数据库)以找出在DB中注册的匹配服务(框806)。继续以上实例,查询处置器444-S以其从客户端420-K接收的搜索查询而查询主机服务注册表DB 442-S(见图4C)(框806)。如果有,那么所述查询可产生匹配查询(例如,满足查询)的经注册服务的列表(例如,第一列表)。
如果查询的结果充足(框808:是),那么可将满足查询的经注册服务的列表(例如,第一列表)返回到客户端(框810)。举例来说,可通过将列表中的服务数目与一数目(例如,由客户端在搜索查询中请求的数目或默认数目)进行比较来确定充足的匹配结果。在将搜索结果返回到客户端(框810)之后,过程800可结束(至少对于在框804中接收到查询的服务注册表440)。
如上文所提及,本地服务注册表440-S可具有为进行较快搜索而将来自远程服务主机的服务信息存储于其中的高速缓冲存储器446-S。因此,查询处置器444-S还可查询服务注册表高速缓冲存储器446-S以补充其结果(或仅在本地DB 442-S中存在不充足结果的情况下)。可将来自高速缓冲存储器446-S的结果包含在返回到客户端的服务列表中。
服务注册表440-S可在对匹配服务的搜索中选派其它服务注册表。如果搜索结果不充足(框808:否),那么服务注册表440-S(例如,查询处置器)可确定及/或选择用于确定相邻节点的拓扑(框811)。在一个实施例中,可在由客户端发出的查询中识别所述拓扑。在另一实施例中,可基于正被搜索的特定服务而选择所述拓扑。在又一实施例中,查询处置器444-S基于其它因素而选择拓扑。选定拓扑可包含上文所论述的拓扑:地理接近度、等待时间、带宽等等或其任何经加权组合。在一个实施例中,举例来说,如果不存在所请求拓扑,那么可即时地产生拓扑。
取决于正被搜索的特定服务,不同拓扑可比其它拓扑好(且可在框811中选择最好拓扑)。举例来说,当正被搜索的特定服务是流式传输高清晰度视频时,带宽可为拓扑的重要特性(例如,在框706中选择且在框708中加权的特性)。另一方面,当正被搜索的特定服务是电话时,等待时间可为拓扑的最重要特性(例如,在框706中选择且在框708中加权的特性)。因此,此实施例允许选择最适于正被搜索的特定服务的拓扑。
查询处置器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中所展示。
查询处置器确定相邻节点(例如,相邻服务注册表)是否可用于转发搜索(框814)。如果无相邻节点可用于继续搜索(框814:否),那么可将此情形的指示连同搜索结果(如果有)一起发送到客户端(或另一请求服务注册表)(框810)。在此情况中,过程800可结束(至少对于接收到查询的服务注册表415)。甚至在节点管理器510返回相邻节点列表时,查询处置器也可确定无其它相邻节点可用于搜索。举例来说,查询处置器可确定相邻节点列表中的每个节点参与或已参与相同搜索,从而未留下可用节点来转发搜索查询。
如果相邻节点可用于继续搜索(框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)。
在当前实例中,服务注册表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:是),而不管结果的数目如何。
查询处置器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处通过从另一服务注册表接收搜索查询而开始)。
服务注册表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。
服务注册表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。
服务注册表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的另一实例。搜索请求可将所请求结果的数目调整为一个(例如,与所请求的三个相比,反映两个搜索结果)。
服务注册表440-R接收搜索请求(框804)且发现匹配或满足对其主机服务注册表DB442-R的搜索查询的一个服务(框806)。将一个结果视为充足的(框808:是),且将结果发送到服务注册表440-P(曾将搜索发送到服务注册表440-R的服务注册表)。服务注册表440-P从服务注册表440-R接收所述结果(例如,列表)(框818),且可将所接收结果与其自身的结果组合。服务注册表440-P接着将结果发送到服务注册表440-Q(即,曾请求服务注册表440-P加入搜索的服务注册表)。在当前实例中,服务注册表440-P将三个结果发送到服务注册表440-Q。服务注册表440-Q从服务注册表440-P接收结果(框818),将所接收结果与其自身的结果组合并将结果返回到服务注册表440-S(框818)(例如,曾请求服务注册表440-Q加入搜索的服务注册表)。在当前实例中,服务注册表440-Q将四个结果发送到服务注册表440-S。服务注册表440-S从服务注册表440-Q接收结果(例如,第二服务列表)(框818)。服务注册表440-S可将从服务注册表440-Q接收的结果(例如,第二服务列表)与其自身的结果(例如,来自框806的第一列表中的三个)组合并将结果返回到客户端(框810)。在当前实例中,服务注册表440-S将七个结果发送到客户端。
如所展示,客户端在原始查询中请求了六个结果,但接收到七个。额外结果的出现可因为服务注册表440并行地进行搜索。尽管这指示比所请求搜索更多的搜索(及比可能所需计算功率更多的计算功率),但额外结果是以下可能益处的小的计算成本:其中节点不必具有完全数据库的副本的分布式数据库。
在一个实施例中,当服务注册表从相邻者接收到结果(框818)时,其可将这些结果存储在其服务注册表高速缓冲存储器446中。存储在高速缓冲存储器446中的信息可具有存续时间(TTL)且可在一时间周期之后被删除。在另一实施例中,服务注册表不从相邻服务注册表接收结果(框818)。而是,相邻服务注册表将结果直接发送到做出请求的客户端。此后一实施例的优点是,服务注册表不必存储任何正在进行的搜索及服务注册表是否已从相邻者接收到响应的状态。另一方面,此后一实施例将限制高速缓冲存储器446的大小,这可在长期运行中减慢搜索。
覆盖网络的拓扑的另一实例是其中每一节点直接连接到覆盖网络中的一或多个其它节点的网状网络。网状网络中的每一节点可根据覆盖网络拓扑中的连接(例如,预定义分布型式)将业务转发到与其连接的节点。可将树状拓扑视为许多网状拓扑中的一者。作为另一实例,一个网状拓扑可连接每一节点与每个其它节点。在此情况中,网络中的每一节点可接收搜索查询,且从客户端420接收到搜索查询的服务注册表440可在从所有节点接收到搜索结果之后对搜索结果进行排名。
与上文所论述的树状拓扑一样,不同网状网络拓扑(或网络拓扑群组)可与不同的正被搜索的特定服务(或不同特性群组)相关联。此外,可基于除正被搜索的特定服务的特性之外的一(或若干)特性而建立网状拓扑中的每一连接。举例来说,每一节点可连接到四个地理上最靠近的节点。作为另一实例,可手动地配置覆盖网络的拓扑(无论是网状拓扑还是树状拓扑)。在一个实施例中,举例来说,可基于服务距做出请求的客户端420的跳跃的数目而对搜索结果进行排名。
在网状网络的情况中,可返回多于所请求数目的搜索结果(且因此花费额外的计算资源)(即,可能的技术问题)。尽管如此,网状网络仍可允许以有效方式对分布式数据库的并行搜索(例如,不同技术问题的可能解决方案)。此外,在网状拓扑中的搜索可比在树状拓扑中的搜索更快且并行度更大(例如,技术问题的可能解决方案)。然而,在网状拓扑中的搜索可导致比树状拓扑更多的网络业务及更多的额外搜索结果(例如,针对网状拓扑的可能技术问题,且由树状拓扑提供的可能解决方案)。
在前述说明书中,已参考附图描述了各种优选实施例。然而,将显而易见,可对本发明做出各种修改及改变且可实施额外实施例,此并不背离如所附权利要求书中所陈述的本发明的较宽广范围。因此,应将本说明书及图式视为具有说明性意义而非限制性意义。
举例来说,在一个实施例中,客户端可将搜索查询发送到除本地服务主机或服务注册表之外的服务主机及服务注册表(例如,框802)。在此实施例中,客户端可将搜索查询发送到SOA网络中的任何节点或SOA网络中的特定(例如,靠近)节点。作为另一实例,在一个实施例中,节点管理器510可基于特定服务的特性(例如,除不同于特定服务的特性的特性以外)而确定网络的拓扑。
举例来说,尽管已关于图7A、7B及8描述了若干系列的框且已描述了信号流的次序,但在其它实施方案中可修改所述框及/或信号流的次序。此外,可并行地执行非相依框及/或信号流。
将明了,在图中所图解说明的实施方案中,可以许多不同形式的软件、固件及硬件来实施如上文所描述的系统及/或方法。用于实施这些系统及方法的实际软件代码或专门化控制硬件并不限于所述实施例。因此,在不参考特定软件代码的情况下来描述所述系统及方法的操作及行为--应理解,软件及控制硬件可经设计以基于本文中的描述而实施所述系统及方法。
此外,可将上文所描述的某些部分描述为执行一或多个功能的组件。如本文中所使用,组件可包含硬件(例如处理器、ASIC或FPGA)或硬件与软件的组合(例如,执行软件的处理器)。如本文中所使用的词语“示范性”意指“作为图解实例”。
应强调,当在本说明书中使用时术语“包括(comprise/comprising)”应理解为规定所陈述特征、整数、步骤或组件的存在,但并不排除一或多个其它特征、整数、步骤、组件或其群组的存在或添加。
本申请案中所使用的元件、动作及指令不应理解为对所述实施例至关重要或必不可少,除非明确如此描述。而且,如本文中所使用,冠词“一”打算包含一或多个项目。此外,短语“基于”打算意指“至少部分地基于”,除非另有明确陈述。
Claims (15)
1.一种方法,其包括:
(a)在本地服务注册表中从客户端接收对特定服务的搜索查询,
其中所述本地服务注册表包含列举在所述本地服务注册表中注册的服务的本地数据库,且
其中所述本地服务注册表处于服务注册表网络中;
(b)查询所述本地数据库以确定满足所述搜索查询的第一服务列表;
(c)基于除所述特定服务的特性之外的特性而在所述服务注册表网络中确定相邻服务注册表,其中所述相邻服务注册表与所述本地服务注册表相邻;
(d)将所述搜索查询发送到所述相邻服务注册表,其中所述相邻服务注册表包含列举在所述相邻服务注册表中注册的服务的相邻数据库;
(e)从所述相邻服务注册表接收在所述相邻服务注册表中注册的满足所述搜索查询的第二服务列表;及
(f)将满足所述搜索查询的所述第一服务列表及所述第二服务列表返回到所述客户端。
2.根据权利要求1所述的方法,
其中所述特定服务的所述特性为特定特性,
其中所述搜索查询识别所述特定服务及所述特定服务的所述特定特性,
其中确定所述相邻服务注册表包含基于除所述特定特性之外的特性而确定所述相邻服务注册表,且
其中确定所述相邻服务注册表包含
从多个相邻服务注册表确定所述相邻服务注册表,其中所述服务注册表网络中的所述服务注册表中的一些服务注册表为非相邻服务注册表。
3.根据权利要求2所述的方法,其中确定所述相邻服务注册表包含:
基于多个特性而确定所述相邻服务注册表,其中所述多个特性并非所述特定服务的特性,且其中所述多个特性中的每一者均被加权。
4.根据权利要求1所述的方法,
其中所述搜索查询将所述特定服务指示为数据存储,且
其中除所述服务的所述特性之外的所述特性包含带宽、地理位置、开放信道、等待时间、多播能力、跳跃数目、成本或网络类型。
5.根据权利要求2所述的方法,其中所述服务注册表网络为树状服务注册表网络。
6.根据权利要求1所述的方法,其进一步包括:
(g)在所述相邻服务注册表中接收所述搜索查询;
(h)查询所述相邻服务注册表以确定满足所述搜索查询的所述第二服务列表;及
(i)将所述第二列表发送到所述本地服务注册表。
7.根据权利要求6所述的方法,其中所述相邻服务注册表为做出请求的服务注册表,所述方法进一步包括:
(j)确定所述第二服务列表是否为充足的,且当所述第二服务列表不充足时:
基于除所述特定服务的所述特性之外的所述特性而在所述服务注册表网络中确定另一相邻服务注册表,其中所述另一相邻服务注册表与所述做出请求的服务注册表相邻,
将所述搜索查询发送到所述另一相邻服务注册表,其中所述另一相邻服务注册表包含列举在所述另一相邻服务注册表中注册的服务的另一相邻数据库,及
从所述另一相邻服务注册表接收在所述另一相邻服务注册表中注册的满足所述搜索查询的另一服务列表,其中所述第二列表包含所述另一列表;及
(k)在连续的其它节点中重复要素(j)。
8.一种包括装置的系统,其中所述装置包含:
存储器,其用以存储列举在本地服务注册表中注册的服务的本地数据库,其中所述本地服务注册表处于服务注册表网络中;
处理器,其用以
从客户端接收对特定服务的搜索查询,
查询所述本地数据库以确定满足所述搜索查询的第一服务列表,及
基于除所述特定服务的特性之外的特性而在所述服务注册表网络中确定相邻
服务注册表,其中所述相邻服务注册表与所述本地服务注册表相邻;
发射器,其用以将所述搜索查询发送到所述相邻服务注册表,其中所述相邻服务注册表包含列举在所述相邻服务注册表中注册的服务的相邻数据库;及
接收器,其用以从所述相邻服务注册表接收在所述相邻服务注册表中注册的满足所述搜索查询的第二服务列表,
其中所述处理器经配置以将满足所述搜索查询的所述第一服务列表及所述第二服务列表返回到所述客户端。
9.根据权利要求8所述的系统,
其中所述特定服务的所述特性为特定特性,
其中所述搜索查询识别所述特定服务及所述特定服务的所述特定特性,且
其中所述处理器经配置以基于除所述特定特性之外的特性而确定所述相邻服务注册表。
10.根据权利要求9所述的系统,其中所述处理器经配置以基于多个特性而确定所述相邻服务注册表,其中所述多个特性并非所述特定服务的特性,且其中所述处理器经配置以对所述多个特性中的每一者进行加权。
11.根据权利要求8所述的系统,
其中所述搜索查询将所述特定服务指示为数据存储,且
其中除所述服务的所述特性之外的所述特性包含带宽、地理位置、开放信道、等待时间、多播能力、跳跃数目、成本或网络类型。
12.根据权利要求9所述的系统,其中所述服务注册表网络为树状服务注册表网络,或其中所述服务注册表网络为网状服务注册表网络。
13.根据权利要求8所述的系统,其进一步包括另一装置,其中所述另一装置包含:
存储器,其用以存储所述相邻数据库;
接收器,其用以接收所述搜索查询;
处理器,其经配置以查询所述相邻数据库以确定满足所述搜索查询的所述第二服务列表;及
发射器,其用以将所述第二列表发送到所述本地服务注册表。
14.根据权利要求13所述的系统,
其中所述相邻服务注册表为做出请求的服务注册表;
其中所述另一装置中的所述处理器经配置以确定所述第二服务列表是否为充足的,且当所述第二服务列表不充足时:
基于除所述特定服务的所述特性之外的所述特性而在所述服务注册表网络中确定另一相邻服务注册表,其中所述另一相邻服务注册表与所述做出请求的服务注册表相邻;
其中所述处理器经配置以将所述搜索查询发送到所述另一相邻服务注册表,其中所述另一相邻服务注册表包含列举在所述另一相邻服务注册表中注册的服务的另一相邻数据库;且
其中所述接收器经配置以从所述另一相邻服务注册表接收在所述另一相邻服务注册表中注册的满足所述搜索查询的另一服务列表,其中所述第二列表包含所述另一列表。
15.根据权利要求14所述的系统,其进一步包括:
额外装置,其包含配置为所述另一装置以连续地搜索满足所述查询的服务的存储器、接收器、处理器及发射器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/217,978 | 2014-03-18 | ||
US14/217,978 US9984158B2 (en) | 2014-03-18 | 2014-03-18 | Finding services in a service-oriented architecture (SOA) network |
EP14161450.3A EP2922274B1 (en) | 2014-03-18 | 2014-03-25 | Finding services in a service-oriented architecture (SOA) network |
EP141614503 | 2014-03-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104935625A true CN104935625A (zh) | 2015-09-23 |
CN104935625B CN104935625B (zh) | 2016-12-14 |
Family
ID=50473027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510088903.4A Active CN104935625B (zh) | 2014-03-18 | 2015-02-26 | 在面向服务的架构(soa)网络中发现服务的方法及系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9984158B2 (zh) |
EP (2) | EP2922274B1 (zh) |
JP (1) | JP5957111B2 (zh) |
KR (1) | KR101604970B1 (zh) |
CN (1) | CN104935625B (zh) |
TW (1) | TWI584194B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3030805B1 (fr) * | 2014-12-19 | 2016-12-23 | Thales Sa | Qualite de service d'un systeme de gestion de vol |
US10440099B2 (en) * | 2015-02-27 | 2019-10-08 | Apple Inc. | Accessing services provided by computing devices in a network |
US9838724B2 (en) * | 2015-11-18 | 2017-12-05 | International Business Machines Corporation | Media distribution network for live streaming |
CN107545015B (zh) | 2016-06-29 | 2020-12-04 | 华为技术有限公司 | 一种查询故障的处理方法及处理装置 |
EP3312722A1 (en) | 2016-10-21 | 2018-04-25 | Fujitsu Limited | Data processing apparatus, method, and program |
EP3312724B1 (en) | 2016-10-21 | 2019-10-30 | Fujitsu Limited | Microservice-based data processing apparatus, method, and program |
JP6805765B2 (ja) | 2016-10-21 | 2020-12-23 | 富士通株式会社 | ソフトウェアサービスの実行のためのシステム、方法、及びプログラム |
JP7100422B2 (ja) | 2016-10-21 | 2022-07-13 | 富士通株式会社 | データプロパティ認識のための装置、プログラム、及び方法 |
US10776170B2 (en) | 2016-10-21 | 2020-09-15 | Fujitsu Limited | Software service execution apparatus, system, and method |
US11023444B2 (en) * | 2017-02-17 | 2021-06-01 | Home Box Office, Inc. | Service discovery using attribute matching |
EP3688595A1 (en) | 2017-09-30 | 2020-08-05 | Oracle International Corporation | Binding, in an api registry, backend services endpoints to api functions |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6338082B1 (en) * | 1999-03-22 | 2002-01-08 | Eric Schneider | Method, product, and apparatus for requesting a network resource |
US20020194183A1 (en) * | 2000-02-15 | 2002-12-19 | Nortel Networks Limited | Methods and systems for implementing a real-time, distributed, hierarchical database using a proxiable protocol |
US20070033167A1 (en) * | 2005-08-04 | 2007-02-08 | Sujoy Basu | Discovery across multiple registries |
WO2008027738A2 (en) * | 2006-08-30 | 2008-03-06 | Cisco Technology, Inc. | Internetworking nodes based on connections, membership, and location |
CN101326508A (zh) * | 2005-01-06 | 2008-12-17 | 特维拉有限公司 | 智能消息传递应用编程接口 |
CN101719059A (zh) * | 2008-09-18 | 2010-06-02 | 软件股份公司 | 操纵soa注册表中的对象的方法 |
CN102027465A (zh) * | 2008-07-15 | 2011-04-20 | 惠普发展公司,有限责任合伙企业 | 面向服务的体系结构(soa)软件工厂的体系结构 |
US20120033577A1 (en) * | 2009-01-23 | 2012-02-09 | Empire Technology Development Llc | Wireless Home Network Routing Protocol |
US20120226790A1 (en) * | 2011-03-03 | 2012-09-06 | Cisco Technology, Inc. | Extensible Attribute Summarization |
CN102663009A (zh) * | 2012-03-19 | 2012-09-12 | 华侨大学 | 一种支持企业用户数据私有化的web服务集成方法 |
WO2013081962A1 (en) * | 2011-11-29 | 2013-06-06 | Amazon Technologies, Inc. | Interfaces to manage direct network peerings |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030187841A1 (en) * | 2002-03-28 | 2003-10-02 | International Business Machines Corporation | Method and structure for federated web service discovery search over multiple registries with result aggregation |
JP2005301430A (ja) | 2004-04-07 | 2005-10-27 | Ntt Docomo Inc | 分散型検索システム、検索ノード装置及び分散型検索方法 |
CN100558038C (zh) * | 2006-03-31 | 2009-11-04 | 国际商业机器公司 | 服务注册器以及相关系统和方法 |
US7856551B2 (en) * | 2007-06-05 | 2010-12-21 | Intel Corporation | Dynamically discovering a system topology |
US8095670B2 (en) | 2007-09-11 | 2012-01-10 | International Business Machines | Protocol for enabling dynamic and scalable federation of enterprise service buses |
US20100010975A1 (en) * | 2008-07-10 | 2010-01-14 | Morris Robert P | Methods And Systems For Resolving A Query Region To A Network Identifier |
CN101841573B (zh) * | 2010-01-20 | 2013-08-07 | 中国科学院计算机网络信息中心 | 互联网地址信息处理方法、装置以及互联网系统 |
-
2014
- 2014-03-18 US US14/217,978 patent/US9984158B2/en active Active
- 2014-03-25 EP EP14161450.3A patent/EP2922274B1/en not_active Not-in-force
- 2014-03-25 EP EP16156627.8A patent/EP3041198B1/en active Active
-
2015
- 2015-02-26 CN CN201510088903.4A patent/CN104935625B/zh active Active
- 2015-02-26 TW TW104106416A patent/TWI584194B/zh active
- 2015-03-04 KR KR1020150030441A patent/KR101604970B1/ko active IP Right Grant
- 2015-03-05 JP JP2015043307A patent/JP5957111B2/ja active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6338082B1 (en) * | 1999-03-22 | 2002-01-08 | Eric Schneider | Method, product, and apparatus for requesting a network resource |
US20020194183A1 (en) * | 2000-02-15 | 2002-12-19 | Nortel Networks Limited | Methods and systems for implementing a real-time, distributed, hierarchical database using a proxiable protocol |
CN101326508A (zh) * | 2005-01-06 | 2008-12-17 | 特维拉有限公司 | 智能消息传递应用编程接口 |
US20070033167A1 (en) * | 2005-08-04 | 2007-02-08 | Sujoy Basu | Discovery across multiple registries |
WO2008027738A2 (en) * | 2006-08-30 | 2008-03-06 | Cisco Technology, Inc. | Internetworking nodes based on connections, membership, and location |
CN102027465A (zh) * | 2008-07-15 | 2011-04-20 | 惠普发展公司,有限责任合伙企业 | 面向服务的体系结构(soa)软件工厂的体系结构 |
CN101719059A (zh) * | 2008-09-18 | 2010-06-02 | 软件股份公司 | 操纵soa注册表中的对象的方法 |
US20120033577A1 (en) * | 2009-01-23 | 2012-02-09 | Empire Technology Development Llc | Wireless Home Network Routing Protocol |
US20120226790A1 (en) * | 2011-03-03 | 2012-09-06 | Cisco Technology, Inc. | Extensible Attribute Summarization |
WO2013081962A1 (en) * | 2011-11-29 | 2013-06-06 | Amazon Technologies, Inc. | Interfaces to manage direct network peerings |
CN102663009A (zh) * | 2012-03-19 | 2012-09-12 | 华侨大学 | 一种支持企业用户数据私有化的web服务集成方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3041198A1 (en) | 2016-07-06 |
TWI584194B (zh) | 2017-05-21 |
CN104935625B (zh) | 2016-12-14 |
EP2922274A1 (en) | 2015-09-23 |
KR20150108749A (ko) | 2015-09-30 |
EP3041198B1 (en) | 2017-03-22 |
JP5957111B2 (ja) | 2016-07-27 |
US20150269257A1 (en) | 2015-09-24 |
US9984158B2 (en) | 2018-05-29 |
EP2922274B1 (en) | 2016-04-27 |
KR101604970B1 (ko) | 2016-03-21 |
TW201543365A (zh) | 2015-11-16 |
JP2015179510A (ja) | 2015-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104935625A (zh) | 在面向服务的架构(soa)网络中发现服务的方法及系统 | |
KR101762237B1 (ko) | 서비스 지향 아키텍쳐 내에서 능력을 모니터링하는 방법 | |
KR102015070B1 (ko) | 네트워크 발견 및 동기화를 위한 시스템 | |
CN104935488B (zh) | 面向服务的架构中的隧道代理及其方法 | |
CN104919758B (zh) | 一种由驻留在业务域中的网络设备实施的方法和网络设备 | |
CN102118263B (zh) | 配置信息的发布方法及系统 | |
US8831660B2 (en) | System, method and apparatus for dynamic wireless network discovery | |
CN106445473B (zh) | 一种容器部署方法及装置 | |
US20180041396A1 (en) | System and method for topology discovery in data center networks | |
RU2483455C2 (ru) | Способы и устройства для обнаружения одноранговых оверлейных сетей | |
US10430441B1 (en) | Tagging resources of a remote computing service based on locality | |
WO2018107593A1 (zh) | 一种在不同终端间共享文件的方法及设备 | |
CN101690133B (zh) | 用于自动确定位置接近通信网络中的对等节点的一组对等节点的方法以及相应的服务器、分析装置和通信装置 | |
CN115669075A (zh) | 专用网络装置和专用局域网连接、内容发现、数据传输和控制方法 | |
CN102349279A (zh) | 用于发现对等覆盖网络的方法和装置 | |
JP6665697B2 (ja) | 過去情報提供プログラム、過去情報提供方法及び過去情報提供装置 | |
WO2018010366A1 (zh) | 信息同步方法及装置 | |
KR20080050935A (ko) | 피어 투 피어 네트워크에서 확장홈 서비스 장치 및 서비스제공 방법 | |
US20170142640A1 (en) | Inheritance of ANQP Elements | |
WO2014140613A2 (en) | Communications systems and methods |
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 |