TW201543365A - 在一服務導向架構(soa)網路中尋求服務之技術 - Google Patents

在一服務導向架構(soa)網路中尋求服務之技術 Download PDF

Info

Publication number
TW201543365A
TW201543365A TW104106416A TW104106416A TW201543365A TW 201543365 A TW201543365 A TW 201543365A TW 104106416 A TW104106416 A TW 104106416A TW 104106416 A TW104106416 A TW 104106416A TW 201543365 A TW201543365 A TW 201543365A
Authority
TW
Taiwan
Prior art keywords
service
login file
service login
file
network
Prior art date
Application number
TW104106416A
Other languages
English (en)
Other versions
TWI584194B (zh
Inventor
Bjorn Edlund
Joachim Stahl
Joakim Roubert
Staffan Olsson
Ted Hartzell
Mikael Ranbro
Original Assignee
Axis Ab
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 Axis Ab filed Critical Axis Ab
Publication of TW201543365A publication Critical patent/TW201543365A/zh
Application granted granted Critical
Publication of TWI584194B publication Critical patent/TWI584194B/zh

Links

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
    • G06F16/24Querying
    • G06F16/245Query processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery 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

本發明揭示一種用於在一服務導向架構網路中尋求服務之方法及系統,其可包含在一本機服務登錄檔中自一用戶端接收對一特定服務之一搜尋查詢。該本機服務登錄檔可包含列舉在該本機服務登錄檔中登錄之服務之一本機資料庫。該本機服務登錄檔可處於一服務登錄檔網路中。該網路可包含查詢該本機資料庫以判定滿足該搜尋查詢之一第一服務清單及基於除正被搜尋之該特定服務之一特性之外的一特性而在該服務登錄檔網路中判定一鄰近服務登錄檔。該方法可包含將該搜尋查詢發送至該鄰近服務登錄檔及自該鄰近服務登錄檔接收在該鄰近服務登錄檔中登錄之滿足該搜尋查詢之一第二服務清單。該方法可包含將滿足該搜尋查詢之該第一服務清單及該第二服務清單傳回至該用戶端。

Description

在一服務導向架構(SOA)網路中尋求服務之技術
本發明大體而言係關於在一服務導向架構(SOA)網路中尋求服務。
服務導向架構(SOA)係基於將應用程式功能性作為服務提供給其他應用程式之軟體單元之一軟體設計及軟體架構設計方法。一服務係一功能性單元。可藉由其他軟體應用程式來組合服務以提供一較大軟體應用程式之完整功能性。SOA使得經由一網路連接之電腦較容易來進行協作。
在一項實施例中,一種方法可包含(a)在一本機服務登錄檔中自一用戶端接收對一特定服務之一搜尋查詢。在此實施例中,該本機服務登錄檔包含列舉在該本機服務登錄檔中登錄之服務之一本機資料庫。該本機服務登錄檔處於一服務登錄檔網路中。該方法可包含(b)查詢該本機資料庫以判定滿足該搜尋查詢之一第一服務清單。該方法可包含(c)基於除該特定服務之一特性之外的一特性而在該服務登錄檔網路中判定一鄰近服務登錄檔,其中該鄰近服務登錄檔與該本機服務登錄檔鄰近。該方法可包含(d)將該搜尋查詢發送至該鄰近服務登錄檔。在此實施例中,該鄰近服務登錄檔包含列舉在該鄰近服務登錄 檔中登錄之服務之一鄰近資料庫。該方法可包含(e)自該鄰近服務登錄檔接收在該鄰近服務登錄檔中登錄之滿足該搜尋查詢之一第二服務清單。該方法可包含(f)將滿足該搜尋查詢之該第一服務清單及該第二服務清單傳回至該用戶端。在接下來之段落中描述此實施例之可能優點中之某些優點。
在一項實施例中,服務登錄檔分散於網路中之裝置當中,且該等服務登錄檔可能並非等同的。在此情況中,服務可在一本機服務登錄檔中登錄。如此,服務登錄檔可不知曉網路中之所有服務,但可知曉本機服務。若該本機服務登錄檔不能滿足搜尋查詢,則可將該查詢轉發至附近服務登錄檔(例如,接近該本機服務登錄檔之一或多個鄰近服務登錄檔)。作為一可能優點,此實施例可提供較大故障容限(與不分散於網路中之裝置當中之一中央服務登錄檔相比)。作為另一可能優點,此實施例可減少用於同步之網路訊務(與僅在網路中之裝置中複製之一服務登錄檔相比)。作為又一可能優點,此實施例可允許用一高效方式以(可能地)高故障容限及低網路訊務來搜尋並尋求服務。另一可能優點係在搜尋一特定服務時基於除正被搜尋之特定服務之一特性之外的一特性而判定鄰近服務登錄檔之能力。
如所提及,在一項實施例中,可將對一特定服務之搜尋請求(查詢)轉發至網路中之一鄰近服務登錄檔,其中基於除正被搜尋之特定服務之一特性之外的一特性而判定鄰近節點。舉例而言,可基於網路延時(例如,除資料儲存之外的一特性)而將對一資料儲存服務之一請求轉發至一鄰近服務登錄檔。作為一可能優點,以此方式選擇鄰近節點可允許快速地尋求不在本機裝載之服務。
在一項實施例中,該特定服務之特性係一特定特性且該搜尋查詢識別該特定服務及該特定服務之特定特性。在此實施例中,該方法包含基於除該特定特性之外的一特性而判定鄰近服務登錄檔。此實施 例之一優點可包含較大故障容限及減少用於同步之網路訊務。作為又一可能優點,此實施例可允許以一高效方式搜尋並尋求服務。另一可能優點係在搜尋一特定服務時基於除正被搜尋之特定服務之一特性之外的一特性而判定鄰近服務登錄檔之能力。
在另一實施例中,該方法包含基於複數個特性而判定該鄰近服務登錄檔,其中該複數個特性並非該特定服務之特性,且其中該複數個特性中之每一者皆被加權。此實施例之一優點允許一搜尋考量一個以上特性,其中該等特性並非該特定服務之特性。將該等特性加權可提供使用不同特性同時給每一特性賦予一不同權重之優點。
在另一實施例中,該搜尋查詢將該特定服務指示為資料儲存,且除該服務之該特性之外的特性包含頻寬、地理位置、開放頻道、延時、多點傳送能力、跳躍數目、成本或網路類型。
在一項實施例中,該服務登錄檔網路係一樹狀服務登錄檔網路。在另一實施例中,該服務登錄檔網路係一網狀服務登錄檔網路。 一樹狀網路及一網狀網路之一可能優點係各自允許並行地(且可能以一高效方式)搜尋服務。一樹狀網路之一可能優點係其可減少網路訊務(例如,較少之分散式搜尋及較少之匹配結果)(與一網狀網路相比)。一網狀網路之一可能優點係其可較快且並行度較大(與一樹狀網路相比)。
在一項實施例中,該方法亦可包含(g)在該鄰近服務登錄檔中接收該搜尋查詢,查詢該鄰近服務登錄檔以判定滿足該搜尋查詢之該第二服務清單,及(i)將該第二清單發送至該本機服務登錄檔。此實施例之一優點可包含較大故障容限及減少用於同步之網路訊務。作為又一可能優點,此實施例可允許以一高效方式搜尋並尋求服務。
在一項實施例中,該鄰近服務登錄檔係一做出請求之服務登錄檔。在此實施例中,該方可包含(j)判定該第二服務清單是否係充足 的。當該第二服務清單不充足時,該方法可包含基於除該特定服務之該特性之外的特性而在該服務登錄檔網路中判定另一鄰近服務登錄檔,其中該另一鄰近服務登錄檔與該做出請求之服務登錄檔鄰近。當該第二服務清單不充足時,該方法可包含將該搜尋查詢發送至該另一鄰近服務登錄檔,其中該另一鄰近服務登錄檔包含列舉在該另一鄰近服務登錄檔中登錄之服務之另一鄰近資料庫。當該第二服務清單不充足時,該方法可包含自該另一鄰近服務登錄檔接收在該另一鄰近服務登錄檔中登錄之滿足該搜尋查詢之另一服務清單,其中該第二清單包含該另一清單。此實施例之一優點可包含較大故障容限及減少用於同步之網路訊務。作為又一可能優點,此實施例可允許以一高效方式搜尋並尋求服務。舉例而言,搜尋可在結果充足時停止,而不必將該查詢發送至額外鄰近節點。
在一項實施例中,該方法包含在連續之其他節點中重複要素(j)。作為一可能優點,此實施例允許查詢透過網路傳播直至結果充足為止。
本文中亦描述一種系統。該系統可包含一裝置,該裝置又包含用以儲存列舉在一本機服務登錄檔中登錄之服務之一本機資料庫之一記憶體。在此實施例中,該本機服務登錄檔處於一服務登錄檔網路中。該裝置亦可包含用以自一用戶端接收對一特定服務之一搜尋查詢之一處理器。在此實施例中,該處理器亦可查詢該本機資料庫以判定滿足該搜尋查詢之一第一服務清單,及基於除該特定服務之一特性之外的一特性而在該服務登錄檔網路中判定一鄰近服務登錄檔,其中該鄰近服務登錄檔與該本機服務登錄檔鄰近。在此實施例中,該裝置包含用以將該搜尋查詢發送至該鄰近服務登錄檔之一傳輸器。在此情況中,該鄰近服務登錄檔包含列舉在該鄰近服務登錄檔中登錄之服務之一鄰近資料庫。在此實施例中,該裝置亦可包含用以自該鄰近服務登 錄檔接收在該鄰近服務登錄檔中登錄之滿足該搜尋查詢之一第二服務清單之一接收器,其中該處理器經組態以將滿足該搜尋查詢之該第一服務清單及該第二服務清單傳回至該用戶端。在接下來之段落中描述此實施例之可能優點中之某些優點。
在一項實施例中,服務登錄檔分散於網路中之裝置當中,且該等服務登錄檔可能並非等同的。在此情況中,服務可在一本機服務登錄檔中登錄。如此,服務登錄檔可不知曉網路中之所有服務,但可知曉本機服務。若該本機服務登錄檔不能滿足搜尋查詢,則可將該查詢轉發至附近服務登錄檔(例如,接近該本機服務登錄檔之一或多個鄰近服務登錄檔)。作為一可能優點,此實施例可提供較大故障容限(與不分散於網路中之裝置當中之一中央服務登錄檔相比)。作為另一可能優點,此實施例可減少用於同步之網路訊務(與僅在網路中之裝置中複製之一服務登錄檔相比)。作為另一可能優點,此實施例可允許用一高效方式以(可能地)高故障容限及低網路訊務來搜尋並尋求服務。另一可能優點係在搜尋一特定服務時基於除正被搜尋之特定服務之一特性之外的一特性而判定鄰近服務登錄檔之能力。
如所提及,在一項實施例中,可將對一特定服務之搜尋請求(查詢)轉發至網路中之一鄰近服務登錄檔,其中基於除正被搜尋之特定服務之一特性之外的一特性而判定鄰近節點。舉例而言,可基於網路延時(例如,除資料儲存之外的一特性)而將對一資料儲存服務之一請求轉發至一鄰近服務登錄檔。作為一可能優點,以此方式選擇鄰近節點可允許快速地尋求不在本機裝載之服務。
在一項實施例中,該特定服務之特性係一特定特性且該搜尋查詢識別該特定服務及該特定服務之特定特性。在此實施例中,該處理器可經組態以基於除該特定特性之外的一特性而判定鄰近服務登錄檔。此實施例之一優點可包含較大故障容限及減少用於同步之網路訊 務。作為又一可能優點,此實施例可允許以一高效方式搜尋並尋求服務。另一可能優點係在搜尋一特定服務時基於除正被搜尋之特定服務之一特性之外的一特性而判定鄰近服務登錄檔之能力。
在一項實施例中,該處理器經組態以基於複數個特性而判定該鄰近服務登錄檔,其中該複數個特性並非該特定服務之特性,且其中該處理器經組態以將該複數個特性中之每一者加權。此實施例之一優點允許一搜尋考量一個以上特性,其中該等特性並非該特定服務之特性。將該等特性加權可提供使用不同特性同時給每一特性賦予一不同權重之優點。
在一項實施例中,該搜尋查詢將該特定服務指示為資料儲存,且除該服務之該特性之外的特性包含頻寬、地理位置、開放頻道、延時、多點傳送能力、跳躍數目、成本或網路類型。
在一項實施例中,該服務登錄檔網路係一樹狀服務登錄檔網路。在另一實施例中,該服務登錄檔網路係一網狀服務登錄檔網路。 一樹狀網路及一網狀網路之一可能優點係各自允許並行地(且可能以一高效方式)搜尋服務。一樹狀網路之一可能優點係其可減少網路訊務(例如,較少之分散式搜尋及較少之匹配結果)(與一網狀網路相比)。一網狀網路之一可能優點係其可較快且並行度較大(與一樹狀網路相比)。
該系統可包含另一裝置。該另一裝置可包含用以儲存鄰近資料庫之一記憶體。該另一裝置可包含用以接收該搜尋查詢之一接收器,及經組態以查詢該鄰近資料庫以判定滿足該搜尋查詢之該第二服務清單之一處理器。該另一裝置可包含用以將該第二清單發送至該本機服務登錄檔之一傳輸器。此實施例之一優點可包含較大故障容限及減少用於同步之網路訊務。作為又一可能優點,此實施例可允許以一高效方式搜尋並尋求服務。
在一項實施例中,該鄰近服務登錄檔係一做出請求之服務登錄檔。在此實施例中,該另一裝置中之該處理器經組態以判定該第二服務清單是否係充足的,且當該第二服務清單不充足時。該處理器亦可經組態以基於除該特定服務之該特性之外的特性而在該服務登錄檔網路中判定另一鄰近服務登錄檔,其中該另一鄰近服務登錄檔與該做出請求之服務登錄檔鄰近。該處理器亦可經組態以將該搜尋查詢發送至該另一鄰近服務登錄檔,其中該另一鄰近服務登錄檔包含列舉在該另一鄰近服務登錄檔中登錄之服務之另一鄰近資料庫。該接收器可經組態以自該另一鄰近服務登錄檔接收在該另一鄰近服務登錄檔中登錄之滿足該搜尋查詢之另一服務清單。該第二清單包含該另一清單。此實施例之一優點可包含較大故障容限及減少用於同步之網路訊務。作為又一可能優點,此實施例可允許以一高效方式搜尋並尋求服務。舉例而言,搜尋可在結果充足時停止,而不必將該查詢發送至額外鄰近節點。
該系統亦可包含額外裝置,該等額外裝置包含組態為該另一裝置以連續地搜尋滿足該查詢之服務之記憶體、接收器、處理器及傳輸器。作為一可能優點,此實施例允許查詢透過網路傳播直至結果充足為止。
在另一實施例中,一種方法可包含判定對應於一特定服務之一服務登錄檔網路之一拓撲。在此實施例中,該等服務登錄檔中之每一者列舉在對應服務登錄檔中登錄之服務之執行個體。判定該拓撲可包含針對每一服務登錄檔基於除該特定服務之一特性之外的一特性而判定一或多個鄰近服務登錄檔。此實施例之一優點可包含較大故障容限及減少用於同步之網路訊務。作為又一可能優點,此實施例可允許以一高效方式搜尋並尋求服務。
服務登錄檔之網路拓撲可係複數個節點之一網路上之一覆疊網 路。在此一實施例中,該方法可包含判定該等服務登錄檔之複數個拓撲,每一拓撲對應於一不同特定服務。作為一可能優點,根據拓撲查詢連續鄰近節點可允許快速地尋求不在本機裝載之服務。
不同拓撲可具有不同可能優點。舉例而言,網路之一樹狀拓撲及一網狀拓撲兩者之一個可能優點係各自允許並行地搜尋服務。一樹狀拓撲之一可能優點係其可減少網路訊務(與一網狀網路相比)。一網狀拓撲之一可能優點係其可較快且並行度較大(與一樹狀網路相比)。 此外,一個可能優點係可基於正被搜尋之特定服務而選擇適當或最好之拓撲(樹狀、網狀或其他)。
100‧‧‧例示性環境/環境
110‧‧‧網路
120-A至120-N‧‧‧子網路
130‧‧‧裝置/第一裝置/第二裝置
130-A-A至130-A-J‧‧‧裝置
130-N-K‧‧‧裝置
140‧‧‧服務導向架構系統服務匯流排
150‧‧‧管理裝置
210‧‧‧匯流排
220‧‧‧處理器
230‧‧‧記憶體
240‧‧‧輸入裝置
250‧‧‧輸出裝置
260‧‧‧通信介面
310‧‧‧服務層
320‧‧‧覆疊網路層/網路層
330‧‧‧裝置層
410-A至410-N‧‧‧服務
415‧‧‧服務主機/鄰近服務主機
415-P至415-U‧‧‧服務主機
420-A至420-K‧‧‧用戶端
430‧‧‧訊息分派器
440‧‧‧服務登錄檔/另一服務登錄檔/毗鄰服務登錄檔/遠端服務登錄檔/本機服務登錄檔
440-P‧‧‧登錄檔/服務登錄檔
440-Q‧‧‧服務登錄檔/鄰近服務登錄檔
440-R‧‧‧服務登錄檔
440-S‧‧‧服務登錄檔/本機服務登錄檔
440-T‧‧‧服務登錄檔
440-U‧‧‧登錄檔/服務登錄檔
442‧‧‧主機服務登錄檔資料庫/資料庫/本機主機服務登錄檔資料庫/服務登錄檔資料庫
444‧‧‧查詢處置器
446‧‧‧服務登錄檔快取記憶體/快取記憶體
460‧‧‧例示性特性表/表/特性表
462‧‧‧識別符欄位/執行個體識別符欄位
464‧‧‧介面欄位
468‧‧‧服務格式欄位
470‧‧‧輸送協定欄位
472‧‧‧CPU排名/CPU排名欄位
474‧‧‧磁碟空間欄位
476‧‧‧隨機存取記憶體欄位/欄位
510‧‧‧節點管理器
520‧‧‧通信管理器
530‧‧‧多點傳送管理器
540‧‧‧覆疊網路/網路/覆疊功能網路
560-1‧‧‧多點傳送群組
560-2‧‧‧多點傳送群組
560-3‧‧‧多點傳送群組
560-4‧‧‧多點傳送群組
600‧‧‧網路
C1‧‧‧用戶端端點
C2‧‧‧用戶端端點
C3‧‧‧用戶端端點
N1‧‧‧節點
N2‧‧‧節點
N3‧‧‧節點
N4‧‧‧節點
N5‧‧‧節點
N6‧‧‧節點
N7‧‧‧節點
P‧‧‧節點/鄰近節點
Q‧‧‧節點
R‧‧‧節點
S‧‧‧節點
S1‧‧‧服務端點
S3‧‧‧服務端點
S5‧‧‧服務端點
S6‧‧‧服務端點
S7‧‧‧服務端點
S8‧‧‧服務端點
S9‧‧‧服務端點
T‧‧‧節點/鄰近節點
U‧‧‧節點/鄰近節點
圖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移除)以幫助防止DB 442儲存過時之資訊。
查詢處置器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至DB 442-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)且尋求匹配或滿足對其主機服務登錄檔DB 442-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)」應視為規定所陳述特徵、整數、步驟或組件之存在,但並不排除一或多個其他特徵、整數、步驟、組件或其群組之存在或添加。
本申請案中所使用之元件、動作或指令不應理解為對該等實施例至關重要或必不可少,除非明確如此描述。而且,如本文中所使用,冠詞「一」意欲包含一或多個物項。此外,片語「基於」意欲意指「至少部分地基於」,除非另有明確陳述。
130‧‧‧裝置/第一裝置/第二裝置
210‧‧‧匯流排
220‧‧‧處理器
230‧‧‧記憶體
240‧‧‧輸入裝置
250‧‧‧輸出裝置
260‧‧‧通信介面

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之系統,其進一步包括:額外裝置,其包含組態為該另一裝置以連續地搜尋滿足該查詢之服務之記憶體、接收器、處理器及傳輸器。
TW104106416A 2014-03-18 2015-02-26 在一服務導向架構(soa)網路中尋求服務之技術 TWI584194B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
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

Publications (2)

Publication Number Publication Date
TW201543365A true TW201543365A (zh) 2015-11-16
TWI584194B TWI584194B (zh) 2017-05-21

Family

ID=50473027

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104106416A TWI584194B (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)

* Cited by examiner, † Cited by third party
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 华为技术有限公司 一种查询故障的处理方法及处理装置
JP6805765B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
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
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
JP7493450B2 (ja) 2017-09-30 2024-05-31 オラクル・インターナショナル・コーポレイション コンテナのグループの動的マイグレーション

Family Cites Families (18)

* Cited by examiner, † Cited by third party
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
US6421674B1 (en) * 2000-02-15 2002-07-16 Nortel Networks Limited Methods and systems for implementing a real-time, distributed, hierarchical database using a proxiable protocol
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 分散型検索システム、検索ノード装置及び分散型検索方法
CN101326508A (zh) * 2005-01-06 2008-12-17 特维拉有限公司 智能消息传递应用编程接口
US8880489B2 (en) * 2005-08-04 2014-11-04 Hewlett-Packard Development Company, L.P. Discovery across multiple registries
CN100558038C (zh) * 2006-03-31 2009-11-04 国际商业机器公司 服务注册器以及相关系统和方法
US8116289B2 (en) * 2006-08-30 2012-02-14 Cisco Technology, Inc. Internetworking nodes based on connections, membership, and location
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
US8413107B2 (en) 2008-07-15 2013-04-02 Hewlett-Packard Development Company, L.P. Architecture for service oriented architecture (SOA) software factories
EP2169550B1 (en) 2008-09-18 2013-04-17 Software AG Method for manipulating objects in a SOA registry
US8064360B2 (en) * 2009-01-23 2011-11-22 Empire Technology Development Llc Wireless home network routing protocol
CN101841573B (zh) * 2010-01-20 2013-08-07 中国科学院计算机网络信息中心 互联网地址信息处理方法、装置以及互联网系统
US9235447B2 (en) * 2011-03-03 2016-01-12 Cisco Technology, Inc. Extensible attribute summarization
EP3678027B1 (en) 2011-11-29 2022-02-16 Amazon Technologies, Inc. Interfaces to manage direct network peerings
CN102663009B (zh) 2012-03-19 2014-11-12 华侨大学 一种支持企业用户数据私有化的web服务集成方法

Also Published As

Publication number Publication date
US20150269257A1 (en) 2015-09-24
CN104935625A (zh) 2015-09-23
TWI584194B (zh) 2017-05-21
JP2015179510A (ja) 2015-10-08
KR101604970B1 (ko) 2016-03-21
US9984158B2 (en) 2018-05-29
EP2922274B1 (en) 2016-04-27
EP3041198B1 (en) 2017-03-22
KR20150108749A (ko) 2015-09-30
JP5957111B2 (ja) 2016-07-27
EP3041198A1 (en) 2016-07-06
EP2922274A1 (en) 2015-09-23
CN104935625B (zh) 2016-12-14

Similar Documents

Publication Publication Date Title
TWI584194B (zh) 在一服務導向架構(soa)網路中尋求服務之技術
US11693716B2 (en) Independent datastore in a network routing environment
TWI631475B (zh) 用於能力監控之系統及方法
EP2922275B1 (en) Tunnel broker in a service oriented architecture
US7978631B1 (en) Method and apparatus for encoding and mapping of virtual addresses for clusters
JP6865593B2 (ja) 不均一ネットワークにまたがるコンテンツ配送
US20140098819A1 (en) Convergence network based on identifier and communication method using the same
WO2012029248A1 (ja) データ転送システム
CN112840332B (zh) 网络路由环境中的独立数据存储区
Schildt et al. NASDI–Naming and Service Discovery for DTNs in Internet Backbones