200910108 九、發明說明: 【發明所屬之技術領域】 本揭示案大體係關於電信系統◦更特定言之,本揭示案 係關於用於建立可調節/冗餘電信系統之程序之間通信方 法及裝置。 本專利申請案主張2007年5月4曰申請之美國臨時申請案 第60/916,247號之優先權,且該案已讓與給本受讓人且以 引用的方式明確地併入本文中。 【先前技術】 當建立分散式及冗餘電信系統時,某類別之訊息傳遞層 用於提供程序(或執行緒)之間通信。此允許分散式軟體有 限狀態機進行通信,以便提供服務。 典型afl息傳遞系統提供一種在組件之間發送點對點訊氣 之方式。有時但並非總是提供多點播送或廣播訊氣 月匕 力。 許多程序之間通信方案亦為作業系統及/或背景 (backplane)專用的。此使得難以轉移(p0rt)其服務且影變 系統之總體軟體架構,因為訊息傳遞通常為基本服務,所 有其他軟體皆對其進行寫入。 許多其他系統提供在訊息傳遞頂部之類似名稱解析、網 路時間分布’及分散式心跳分層的服務作為另—應用。此 亦導致處理無效率。 【發明内容】 揭示一種用於程序之間通信之裝置。該裝置可用作—訊 131207.doc 200910108 息傳遞系統中之訊息傳遞實體。該裝置可包括一處理器及 耦接至該處理器之電路。該電路可經組態以促進軟體組件 向訊息傳遞系統註冊,促進在經註冊之軟體組件之間的單 播通信,促進軟體組件註冊以進行多點播送事件,及促進 在經S主冊之軟體組件之間的多點播送通信。 揭不一種用於程序之間通信之裝置。該裝置可用作一訊 心傳遞系統中之訊息傳遞伺服器。該裝置可包括一處理器 及耦接至該處理器之電路。該電路可經組態以在分散式計 算系統内發現新的訊息傳遞用戶端,驗證經註冊之訊息傳 遞用戶端為操作的,在經註冊之訊息傳遞用戶端t中維持 同步,管理一資源位置快取記憶體之一主版本,及管理一 多點播送註冊資料結構之一主版本。 揭示種可由一訊息傳遞系統内之訊息傳遞實體執行的 用於程序之間通#之方法。該方法可包括促進軟體組件向 訊息傳遞系統註冊。該方法亦可包括促進在經註冊之軟體 組件之間的單㈣信。該方法亦可包括促進軟體組件註冊 以進行多點播送事件。該方法亦可包括促進在經註冊之軟 體組件之間的多點播送通信。
揭示一種可由一訊息傳遞系統内之訊息傳遞伺服器執行 的用於程序之間通信之方法。該方法可包括在分散^計Z 系統内發現新的訊息傳遞用戶端。該方法亦可包括驗證: 。主冊之訊息傳遞用戶端為操作的。該方法 j包括在經註 冊之訊息傳遞用戶端當中維持同步。該方法亦可包括管王 一資源位置快取記憶體之一主版本。該方法亦可包括;2 131207.doc 200910108 一多點播送註冊資料結構之一主版本。 揭示一種包含一訊息傳遞實體之硬體單元,該訊息傳遞 實體經組態以促進在分散式計算系統中於軟體組件之間的 程序之間通彳5。忒s孔息傳遞實體可包括一經組態以促進軟 體組件向訊息傳遞系統註冊的註冊組件。該訊息傳遞實體 亦可包括一經組態以促進在經註冊之軟體組件之間的單播 通信的資源位置伺服器。該訊息傳遞實體亦可包括一經組 態以促進軟體組件註冊以進行多點播送事件的多點播送註 冊組件。该讯息傳遞實體亦可包括一經組態以促進在經註 冊之軟體組件之間的多點播送通信的多點播送通信組件。 亦揭示一種包含一訊息傳遞伺服器之硬體單元,該訊息 傳遞伺服器經組態以促進在分散式計算系統中於軟體組件 之間的程序之間通信。該訊息傳遞伺服器可包括一經組態 以在分散式計算系統内發現新的訊息傳遞用戶端的用戶端 發現組件。該訊息傳遞伺服器亦可包括一經組態以驗證經 。主冊之δ孔息傳遞用戶端為操作之驗證組件。該訊息傳遞饲 服窃亦可包括一經組態以在該等經註冊之訊息傳遞用戶端 當中維持同步的同步組件。該訊息傳遞伺服器亦可包括一 經組態以管理一資源位置快取記憶體之一主版本的快取記 憶體管理器。該訊息傳遞伺服器亦可包括一經組態以管理 一多點播送註冊資料結構之一主版本的多點播送註冊管理 器。 亦揭示一種包含一訊息傳遞實體之裝置,該訊息傳遞實 體經組態以促進在分散式計算系統中於軟體組件之間的程 131207.doc 200910108 序之間通信。該訊息傳遞實體可包括用於促進軟體組件向 讯息傳遞系統註冊的構件。該訊息傳遞實體亦可包括用於 促進在經註冊之軟體組件之間的單播通信的構件。該訊自 傳遞實體亦可包括用於促進軟體組件註冊以進行多點播: 事件的構件。㈣息傳遞實體亦可包括用於促進在經^ 之軟體組件之間的多點播送通信的構件。 亦揭示-種包含-訊息傳遞餘器之裝置,該訊息傳遞 飼服器經組態以促進在分散式計算系統中於軟體•且件之門 的程序之間通信。該襄置可包括用於在該分散式計算系二 内發現新的訊息傳遞用戶端的構件。該裝置亦可包括用於 驗證經註冊之訊息傳遞用戶端為操狀構件。該裝置亦可 包括用於在該等經註冊之訊息傳遞用戶端當中維持同步的 構件。該裝置亦可包括用於管理―資源位置快取記憶體之 !版本的構件。該裝置亦可包括用於管理-多點播送註 冊賢料結構之一主版本的構件。 禋用於促進在分散式計 · π、…丨仍取II殂件之 二一程序之間通信之電腦程式產品。該電腦程式產品可包 一在上面具有指令之電腦可讀媒體。該等指令可包括用 :促進軟體組件向訊息傳遞^註㈣程式碼1等 =括用於促進在經註冊之軟體組件之間的單播通信的 多點:送=指:亦可包括用於促進軟體組件註冊以進行 技冊之軟❸心式碼。該等指令亦可包括用於促進在經 之軟體組件之間的多點播送通信的程式碼。 揭不-種用於促進在分散式計算系統令於軟體組件之間 131207.doc 200910108
=程序之間通信之電腦程式產品。該電腦程式產品可包括 ::上面具有指令之電腦可讀媒體。該等指令可包二於 在二散式計算系統内發現新的訊息傳遞用戶端的程式碼。 該等指令亦可包括用於驗證經註冊之訊息傳遞用氧 作之程式碼。該等指令亦可包括用於在該等經註冊之訊2 傳遞用戶端當中維持同步的程式碼。該等指令亦可包括: 於管理-資源位置快取記憶體之—主版本的程式H等 指令亦可包括用於管理一多點播送註冊資料結構 本的程式碼。 /本揭不案係關於一種分散式軟體架構,其提供一能夠進 行訊息之訊息單播及多點播送(包括廣播)的訊息傳遞b層。 Μ傳遞系統可能能夠隱藏系統之分散式本質,提供用於 將邏輯名稱解析為實體位址的方法,以及將網路時間分散 至分散式模組且驗證該等分散式模組仍為操作的。 文所述之些態樣的一優點為訊息傳遞系統,其可經 轉移至許多不同系統(例如,mix、Sun SQlads、rtqs、 β ) 乂提供此夠隱藏系統之分散式本質的共同軟體層。此 :供-靈活軟體架構。經命名之軟體組件可在不知:任何 ’、他組件的情況下在硬體/軟體架構内四處遷移。 本文所述之訊息傳遞系統可提供單一統一介面以提供在 人體虹件之間執行單播、多點播送或廣播訊息中之至少— 至:此力。此外,可確認單播、多點播送或廣播訊息中之 至者。發送者可能未知多點播送訊息接收者。此使多 點播运訊息之發送者自接收^去_。該去^許建立十分 131207.doc 200910108 軟體架構 良好地演進之極靈活的 送者的情況下自由移動 態機軟體發展模型。 接收器可在無需修改發 。此十分適合於事件驅動的有限狀 在訊息傳遞系統中之所有或若干軟體組件可由邏輯名稱 識別。在軟體組件向訊息傳遞系統註冊時,可在執行時間 建構邏輯名m絲㈣料使_新的輸入項 被輸入至名稱快取記憶體中。隨著新輪人項被添加至名稱 快取記憶體中,其亦可被廣播出至能約執行訊息傳遞軟體 的所有硬體實體。每次修改快取記憶體時,—序號可遞增 以表示快取記憶體之當前層級。此序號可用於心跳摔作中 以確保所有硬體實體具有—致的名稱快取記憶體。為效率 起見,名稱快取記憶體更新可為完全的或遞增的。訊息傳 遞系統可經組態以嘗試遞增更新,除非請求者如此過時以 致完全更新將更快。 發送至特定組件之所有訊息可利用該組件之邏輯名稱。 在訊息經處理以供發送時,訊息傳遞系統自身可將邏輯名 稱轉譯為實體位置。此特徵隱藏系統之分散式本質且允許 組件在不影響任何軟體的情況下在系統内移動。 當用於分散式硬體架構上時,訊息傳遞層亦可提供”心 跳"機制以確保所有所需組件正回應。心跳訊息可包括主 網路時間’以及表示名稱快取記憶體之整數。網路時間可 用於使系統中之所有實體時間同步。名稱快取記憶體序號 可用於判定從屬快取記憶體中之每—者是否為最新的。被 判定為過時的快取記憶體可請求完全或遞增更新以使其與 131207.doc 200910108 主記憶體再同步。 訊息傳遞層亦為可組態的以允許其用於單―作業系統類 型之環境(如基於Sun Solaris之伺服器)上或電信設備典型 之分散式多CPU環境内。此能力允許在一環境中寫入之軟 體在僅再編譯的情況下用於不同環境中。此能力為在訊息 傳遞層之上建立的軟體提供極高等級之可轉移性 (portability)。 【實施方式】 圖1说明分散式計具系統1 〇〇。分散式計算系統丨〇〇包括 經由通匯流排1 04彼此電子通信的多個硬體單元1 〇2 ^硬 體早元102可用於電#及資料通信器件中。舉例而言,硬 體單元102可為在路由器、交換器、基地台等中含有之各 種處理模組或板。硬體單元1 02包括一起工作以執行一或 多個任務的各種軟體組件106。 訊息傳遞系統108經實施於分散式計算系統1 〇〇内。訊息 傳遞系統1 08包括訊息傳遞伺服器11 〇a及一或多個訊息傳 遞用戶端110b。術語”訊息傳遞實體"no可在本文中用於 指代訊息傳遞伺服器110a或訊息傳遞用戶端1 i〇b。 訊息傳遞系統108允許分散式計算系統1 〇〇内之軟體組件 106彼此通信。軟體組件106可為有限狀態機,且訊息傳遞 系統108之目的可為保持通信之有限狀態機同步。 軟體組件106之間的通信可為單播、多點播送或廣播。 有利地,訊息傳遞系統108能夠隱藏分散式計算系統1〇〇之 分散式本質。分散式計算系統1〇〇内之軟體組件106可由邏 131207.doc •12- 200910108 輯名稱而非實體位址識別。因此,軟體組件1 06可能能夠 彼此通信,而不管其在分散式計算系統! 00之拓撲内的各 別位置。 訊息傳遞伺服器110a管理資源位置快取記憶體之一主版 本114a及多點播送註冊資料結構之一主版本丨丨6a。訊息傳 遞用戶端11 Ob中之每一者與資源位置快取記憶體之一本端 複本114b及多點播送註冊資料結構之一本端複本丨丨6b一起 工作。 每一訊息傳遞實體11〇(意即,訊息傳遞伺服器11〇a或訊 息傳遞用戶端110b)可經組態以允許分散式計算系統1〇〇内 之軟體組件106向訊息傳遞系統1 註冊。每一訊息傳遞實 體11 0亦可促進經註冊之軟體組件1 〇6之間的通信。 除執行此等功能外’訊息傳遞伺服器11〇a亦可經組態以 在分散式計算系統100内發現新的訊息傳遞用戶端i〗0b。 訊息傳遞伺服器11 〇a亦可驗證經註冊之訊息傳遞用戶端 11 Ob為操作的。訊息傳遞伺服器丨丨〇a亦可在經註冊之訊息 傳遞用戶端11 Ob當中維持同步。訊息傳遞伺服器丨丨0a亦可 官理資源位置快取記憶體之主版本丨丨4a及多點播送註冊資 料結構之主版本11 6a。 圖2說明展示軟體組件1〇6可如何向訊息傳遞系統1〇8註 冊的實例。軟體組件1〇6可將註冊訊息222發送至訊息傳遞 飼服益110a。註冊訊息222可包括軟體組件1〇6之實體位址 224。註冊訊息222亦可包括軟體組件ι〇6之邏輯名稱226。 注冊訊息222亦可包括用於邏輯名稱226之一或多個別名 131207.doc •13- 200910108 228。 回應於接收註冊訊息222,訊息傳遞伺服器1 i〇a可在資 源位置快取記憶體之主版本丨14a中形成用於軟體組件1〇6 之輸入項230。輪入項23〇可使軟體組件1〇6之實體位址 224、軟體組件106之邏輯名稱226與邏輯名稱226之別名 228相關聯。 訊息傳遞伺服器l10a亦可將廣播訊息232發送至訊息傳 遞系統ι〇8内之所有訊息傳遞用戶端110b。廣播訊息232可 包括經添加至資源位置快取記憶體之主版本丨丨4 a的輸入項 23〇。回應於接收廣播訊息232 ,每一訊息傳遞用戶端丨丨〇b 可更新資源位置快取記憶體之其本端複本114b以包括已添 加至資源位置快取記憶體之主版本1丨4a的輸入項23 0。 訊息傳遞伺服器11 〇a經展示具有註冊組件234。註冊組 件234可經組態以促進軟體組件ι〇6向訊息傳遞系統1〇8註 冊。更特疋s之,註冊組件234可經組態以處理註冊訊息 222、將適當輸入項230添加至資源位置快取記憶體之主版 本1 l4a,及將具有輸入項230之廣播訊息2;32發送至訊息傳 遞系統108内之所有訊息傳遞用戶端n〇b。 在圖2之實例中’軟體組件106將註冊訊息222發送至訊 息傳遞伺服器11 〇a。或者,軟體組件i〇6可將註冊訊息222 發送至訊息傳遞用戶端110b,且訊息傳遞用戶端110b可將 相關資訊(例如’實體位址224、邏輯名稱226及別名228)轉 發至訊息傳遞伺服器110a。 圖3說明展示訊息傳遞實體丨10(意即,訊息傳遞伺服器 131207.doc -14- 200910108 或訊心傳遞用戶端丨丨0b)可如何促進經註冊之軟體組 件106之間的單播通信之實例。在此實例中,將假設訊息 傳遞系統1G8内之軟體組件1Q6a發送最終由訊息傳遞系統 1〇8内之另-軟體組件祕接收的訊息336。,然而發送者 軟體組件106a無需知曉接收者軟體組件1〇讣之實體位址 224。實情為,由發送者軟體組件1〇仏發送之訊息的目 的地係由軟體組件1 〇6b的邏輯名稱226識別。 在自發送者軟體組件1063接收訊息336後,訊息傳遞實 體11〇將接收者軟體組件106b之邏輯名稱226解析為接收者 軟體組件106b之實體位址224。此可藉由參考資源位置快 取η己憶體11 4(若訊息傳遞實體丨丨〇為訊息傳遞伺服器丨丨〇a, 則為資源位置快取記憶體之主版本丨丨4a,或若訊息傳遞實 體11 〇為訊息傳遞用戶端11 〇b,則為資源位置快取記憶體 之本端複本114b)來實現。訊息傳遞實體110可接著將訊息 336轉發至接收者軟體組件1〇6|3。 机息傳遞實體11 〇經展示具有資源位置伺服器34〇。資源 位置伺服器340可經組態以促進經註冊之軟體組件ι〇6之間 的單播通信。更特定言之,資源位置伺服器34〇可經組態 以處理來自發送者軟體組件l〇6a之訊息336、將接收者軟 體組件106b之邏輯名稱226解析為接收者軟體組件丨〇6b之 實體位址224 ’及將訊息336轉發至接收者軟體組件1〇6b。 接收者軟體組件106b可確認訊息336之接收。接收者軟 體組件106b可將確認訊息338發送回至訊息傳遞實體11()。 訊息傳遞實體110可將確認訊息338轉發至發送者軟體組件 131207.doc -15· 200910108 106a 〇 訊息傳遞系統108可促進在分散式計算系統1〇〇中於軟體 組件106之間的多點播送通信。圖4說明展示軟體組件ι〇6 可如何註冊以進行多點播送事件的實例。 軟體組件106可將多點播送註冊訊息442發送至訊息傳遞 伺服器110a。多點播送註冊訊息442可包括軟體組件1〇6之 實體位址224。多點播送註冊訊息442亦可包括多點播送事 件(軟體組件1 06註冊以進行該事件)之邏輯名稱444。 回應於接收多點播送註冊訊息442,訊息傳遞伺服器 11 0a可在多點播送註冊資料結構之主版本丨丨6a中形成用於 軟體組件106之輸入項446。輸入項446可使軟體組件106之 實體位址224與多點播送事件(軟體組件1〇6註冊以進行該 事件)之邏輯名稱444相關聯。 訊息傳遞伺服器丨丨⑽亦可將廣播訊息448發送至訊息傳 遞系、、先1 08内之所有訊息傳遞用戶端丨丨〇b。廣播訊息448可 匕括 二添加至多點播送註冊資料結構之主版本11以的輸入 項446回應於接收廣播訊息料8,每一訊息傳遞用戶端 ii〇b可更新多點播送註冊資料結構116&之其本端複本以包 括已添加至多點播送註冊資料結構之主版本丨丨以的輸入項 446 〇 訊息傳遞伺服器U〇a經展示具有多點播送註冊組件 夕點播送註冊組件450可經組態以促進軟體組件1 〇6 註冊以進行多點播送事件。更特定言之,多點播送註冊組 件450可經組態以處理多點播送註冊訊息442、將適當輸入 131207.doc -16- 200910108 項446添加至多點播送註冊資料結構之主版本116a,及將 具有輸入項446之廣播訊息448發送至訊息傳遞系統1〇8内 之所有訊息傳遞用戶端11 Ob。 在圖4之實例中’軟體組件106將多點播送註冊訊息442 發送至訊息傳遞伺服器110a。或者,軟體組件1 〇6可將多 點播送註冊訊息442發送至訊息傳遞用戶端丨丨〇b,且訊息 傳遞用戶端11 〇 b可將相關資訊(例如,軟體組件1 〇 6之實體 位址224及多點播送事件(軟體組件1 〇6註冊以進行該事件) 之邏輯名稱444)轉發至訊息傳遞伺服器丨丨〇a。 圖5說明展示§fl息傳遞實體11 〇 (亦即,訊息傳遞祠服器 110a或訊息傳遞用戶端11 Ob)可如何促進經註冊之軟體組 件1 06之間的多點播送通信之實例。在此實例中,將假設 訊息傳遞系統108内之軟體組件i〇6a發送最終由訊息傳遞 系統10 8内之多個軟體組件1 〇 6 b至1 〇 6 d接收的多點播送訊 息552。然而,發送者軟體組件106a無需知曉接收者軟體 組件106b至106d之實體位址224b至224d。實情為,由發送 者軟體組件1 06a發送之多點播送訊息5 52的目的地係由用 於多點播送事件的邏輯名稱444識別。 在自發送者軟體組件106a接收多點播送訊息552後,訊 息傳遞實體110即識別已註冊以進行多點播送事件之軟體 組件106b至106d的實體位址224b至224d。此可藉由參考多 點播送註冊資料結構116來實現。訊息傳遞實體i丨〇接著可 將多點播送訊息552轉發至接收者軟體組件丨〇6b至丨〇6d。 接收者軟體組件l〇6b至l〇6d中之每一者可藉由將確認訊 131207.doc 200910108 息554發送回至訊息傳遞實體11 〇來回應於多點播送訊息 5 52。在意欲接收多點播送訊息552之所有軟體組件106b至 1 0 6 d已以確sS sfl息5 5 4回應之後,訊息傳遞實體11 〇就可將 單一確認訊息5 5 6發送回至發送者軟體組件1 〇 6 a。 訊息傳遞實體110經展示具有多點播送通信組件558。多 點播送通信組件558可經組態以促進經註冊之軟體組件1 〇6 之間的多點播送通信。更特定言之,多點播送通信組件 55 8可經組態以處理自發送者軟體組件1 〇6a接收之多點播 送訊息552、識別已註冊以進行多點播送事件之軟體組件 106b至106d的實體位址22朴至224d,及將多點播送訊息 552轉發至此等實體位址224b至224d。多點播送通信組件 558亦可經組態以處理自接收者軟體組件i〇6b至106d接收 之確認訊息554,及將單一確認訊息556發送回至發送者軟 體組件106a。 圖6說明可由訊息傳遞祠服器110 a執行之功能中之_ 些。訊息傳遞伺服器11 〇a經展示具有驗證組件68〇。驗證 組件680可經組態以驗證經註冊之訊息傳遞用戶端11〇b為 操作的。 訊息傳遞伺服器110a可將心跳訊息662週期性地發送至 訊息傳遞系統1〇8中之所有訊息傳遞用戶端11〇b。所有經 註冊之訊息傳遞用戶端11 〇b可經組態以藉由將心跳回覆 664發送至訊息傳遞伺服器110a而回應於所接收之每一心 跳訊息662。只要特疋訊息傳遞用戶端11 〇a繼續回應於所 發送之心跳§孔息6 6 2 ’則§孔息傳遞飼服器11 〇 a可斷定訊幸 131207.do, 200910108 傳遞用戶端110b仍為操作的。然而,若特定訊息傳遞用戶 端11 Ob未能回應於特定數目之連續心跳訊息662(例如,三 個連續心跳訊息662),則訊息傳遞伺服器1 l〇a可斷定訊息 傳遞用戶端110b不再為操作的。 訊息傳遞伺服器11 〇a亦經展示具有同步組件682。同步 組件682可經組態以在經註冊之訊息傳遞用戶端丨丨〇b當中 維持同步。為了在經註冊之訊息傳遞用戶端丨丨仙當中維持 同步’由訊息傳遞伺服器110a發送之心跳訊息662可包括 用於訊息傳遞系統108之主時間666。每一訊息傳遞用戶端 11 〇b可基於在心跳訊息662中所接收之主時間666而更新其 本端時間668(亦即’使得本端時間668與主時間666相同)。 訊息傳遞伺服器110a亦經展示具有快取記憶體管理器 684。快取記憶體管理器684可經組態以管理資源位置快取 s己憶體之主版本114a。快取記憶體管理器684可經組態以 在無論何時對該資源位置快取記憶體丨丨4a進行改變時通知 訊息傳遞系統108内之訊息傳遞用戶端u〇b。每一訊息傳 遞用戶端110b接著可更新資源位置快取記憶體之其本端複 本 114b。 由讯息傳遞伺服器1 1如發送之心跳訊息662可包括快取 記憶體序號672a。快取記憶體序號672a可由訊息傳遞用戶 端11 〇b使用以確保資源位置快取記憶體之本端複本丨1仆相 對於貝源位置快取記憶體的主版本丨丨4a為最新的。 無响何%更新資源位置快取記憶體的主版本丨丨“時,訊 息傳遞伺服器丨丨0a可使快取記憶體序號672a遞增。每一訊 131207.doc 19- 200910108 息傳遞用戶端11 Ob可比較本端快取記憶體序號672b與在心 跳讯息662中所包括的主快取記憶體序號672a。若本端快 取記憶體序號672b匹配主快取記憶體序號672a,則訊息傳 遞用戶端11 Ob可斷定資源位置快取記憶體之本端複本丨丨作 為最新的。然而,若本端快取記憶體序號672b不匹配主快 取s己憶體序號672a,則訊息傳遞用戶端丨丨〇b可斷定資源位 置快取記憶體之本端複本114b為過時的。訊息傳遞用戶端 11 〇b接著可將更新請求674發送至訊息傳遞伺服器丨丨。 在自訊息傳遞用戶端110b接收更新請求674後,訊息傳 遞伺服器110a可將資源位置快取記憶體更新676發送至訊 息傳遞用戶# 11 0 b。f源位置快取記憶體更新6 7 6可為一 完全更新,亦即,資源位置快取記憶體之整個主版本丨丨乜 的複本可傳輸至訊息傳遞用戶端u〇b。或者,資源位置快 取記憶體更新676可為一遞增更新,亦即,僅在自上次以 來發生對快取記Mll4a之改變時可傳輸所更新之本端快 取記憶體114b。 訊息傳遞飼服器11Ga亦經展示具有用戶端發現組件 6 7 8。用戶端發現組件6 7 8可經組態以在分散式計算系統 竭發現新的訊息傳遞用彳端u〇b。藉由將心跳訊息⑹ 發送至分散式計算系統1〇〇中的所有訊息傳遞用戶端 110b ’新的訊息傳遞用戶端110b能夠判定訊息傳遞伺服器 論之身份。新的訊息傳遞用戶端㈣接著可關於向訊息 傳遞系統10 8註冊而聯餐^p自@、洛μ W 繁訊息傳遞伺服器1 l〇a(例如,藉由 將回覆664發送至訊息傳遞伺服器u〇a)。 曰 131207.doc -20- 200910108 訊息傳遞祠服器11 〇a亦經展示具有多點播送註冊管理器 686。多點播送註冊管理器686可經組態以管理多點播送註 冊資料結構之主版本116a。多點播送註冊管理器686可經 組態以在無論何時對多點播送註冊資料結構丨16&進行改變 時通知訊息傳遞系統1 08内之訊息傳遞用戶端丨丨〇b。每一 訊息傳遞用戶端11 Ob接著可更新多點播送註冊資料結構之 其本端複本116b。 圖7說明用於程序之間通信之方法7〇〇的實例,該方法可 由實施於分散式計算系統100内之訊息傳遞系統1〇8内的訊 息傳遞伺服器110a執行》 根據所描繪之方法700,訊息傳遞伺服器110a可在分散 式計算系統100内發現702新的訊息傳遞用戶端110b。此可 藉由將心跳訊息662發送至分散式計算系統丨0〇中之所有訊 息傳遞用戶端11 〇b而實現。在接收心跳訊息662後,新的 訊息傳遞用戶端11 〇b即能夠判定訊息傳遞伺服器丨丨〇a之身 份。新的訊息傳遞用戶端丨1〇b接著可關於向訊息傳遞系統 1 08註冊而聯繫訊息傳遞伺服器11 0a。 訊息傳遞伺服器丨丨“亦可驗證7〇4經註冊之訊息傳遞用 戶知110b為操作的。此可藉由將心跳訊息662週期性地發 达至分散式計算系統10〇中之所有訊息傳遞用戶端丨丨扑而 實現°所有經註冊之訊息傳遞用戶端1 l〇b可經組態以藉由 將回覆664發送至訊息傳遞伺服器11〇a而回應於所接收之 母一心跳訊息662。只要特定訊息傳遞用戶端丨1〇a繼續回 應於所發送之心跳訊息662,則訊息傳遞伺服器1 i〇a可斷 131207.doc •21 · 200910108 定訊息傳遞用戶端ll〇b仍為操作的。然而,若特定訊息傳 遞用戶端11 Ob未能回應於特定數目之連續心跳訊息662(例 如’二個連續心跳訊息662),則訊息傳遞伺服器丨1〇a可斷 定訊息傳遞用戶端11 Ob不再為操作的。 訊息傳遞伺服器110a亦可在經註冊之訊息傳遞用戶端 11 〇b當中維持706同步。由訊息傳遞伺服器11〇3所發送之 心跳訊息662可包括用於訊息傳遞系統1〇8之主時間666。 每一訊息傳遞用戶端l10b可基於在心跳訊息662中所接收 之主時間666而更新其本端時間668。 訊息傳遞伺服器ll〇a亦可管理7〇8訊息傳遞資源位置快 取記憶體之主版本114a。訊息傳遞伺服器丨1〇a可將對訊息 傳遞資源位置快取記憶體之主版本〗丨4 a的改變通知訊息傳 遞系統108内之訊息傳遞用戶端u〇b(例如,當新的軟體組 件106向訊息傳遞系統108註冊時)。 訊息傳遞伺服器11(^亦可管理71〇多點播送註冊資料結 構之主版本116a。訊息傳遞伺服器丨1〇a可將對多點播送註 冊資料結構之主版本116a的改變通知訊息傳遞系統1〇8内 之訊息傳遞用戶端1 l〇b(例如,當軟體組件1〇6註冊以進行 多點播送事件時)。 上文所述之圖7之方法700可由對應於圖7A中所說明之手 段加功能區塊700A的各種硬體及/或軟體組件及/或模組執 行。換言之,圖7中所說明之區塊7〇2至71〇對應於圖7八令 所說明的手段加功能區塊702a至71 0A。 圖8說明用於程序之間通信之方法8〇〇的實例,該方法可 131207.doc -22- 200910108 由實施於分散式計算系統i 〇〇内之訊息傳遞系統i 〇8内的訊 息傳遞實體110(亦即,訊息傳遞伺服器11〇a或訊息傳遞用 戶端110b)執行。 根據所描繪之方法800,訊息傳遞實體n〇可促進8〇2軟 體組件106向訊息傳遞系統1 〇8註冊。軟體組件1 〇6可將註 冊訊息222發送至訊息傳遞實體丨丨〇。回應於接收註冊訊息 222 ’ 息傳遞實體no可使用於軟體組件1〇6之輸入項230 形成於資源位置快取記憶體之主版本114a中。輸入項230 可使軟體組件106之實體位址224、軟體組件1〇6之邏輯名 稱226與為邏輯名稱226而存在之任何別名228相關聯。可 將添加至資源位置快取記憶體之主版本丨14&的輸入項23〇 通知訊息傳遞系統1 08内之所有訊息傳遞用戶端丨丨〇b。 §fl息傳遞實體110亦可促進8〇4經註冊之軟體組件1 〇6之 間的單播通信。訊息傳遞實體!丨〇可接收訊息336,其中目 的地係由接收者軟體組件1 〇6b之邏輯名稱226識別。訊息 傳遞實體110可將接收者軟體組件l〇6b之邏輯名稱226解析 為接收者軟體組件106b之實體位址224。此可藉由參考資 源位置快取記憶體114而實現。訊息傳遞實體1丨〇接著可將 5孔息3 3 6轉發至接收者軟體組件1 〇 6 b之實體位址2 2 4。 訊息傳遞實體110亦可促進806分散式計算系統100内之 軟體組件106註冊以進行多點播送事件。回應於接收多點 播送5主冊§fL息4 4 2,訊息傳遞實體11 〇可使用於軟體组件 1 06之輸入項446形成於多點播送註冊資料結構之主版本 116a中。輸入項446可使軟體組件1〇6之實體位址224與多 131207.doc -23- 200910108 點播送事件(軟體組件106註冊以進行該事件)之邏輯名稱 444相關聯。 訊息傳遞實體110亦可促進808經註冊之軟體組件1〇6之 間的多點播送通信。在接收包括用於多點播送事件之邏輯 名稱444的多點播送訊息552後,訊息傳遞實體1丨〇即可識 別已s主冊以進行多點播送事件之軟體組件1〇补至1〇6d的實 體位址224b至224d。此可藉由參考多點播送註冊資料結構 116而實現。讯息傳遞實體!丨〇接著可將多點播送訊息 轉發至適當接收者軟體組件106b至丨〇6d。 上文所述之圖8之方法800可由對應於圖8A中所說明之手 段加功能區塊800A的各種硬體及/或軟體組件及/或模組執 行。換&之,圖8中所說明之區塊8〇2至808對應於圖8A中 所說明的手段加功能區塊802A至808A。 圖9說明本文所述之訊息傳遞系統可如何實施於基於 UNIX之系統上的實例。在所描繪之實例中,訊息傳遞系 統係在乙太網路背景之上分層且使用者-核心介面係使用 通信槽層來實施。此架構允許UNIX可裝載核心模組為訊 息傳遞系統之一部分且使核心與使用者-空間組件之間的 區別模糊。訊息傳遞系統包括訊息傳遞核心模組9〇2、資 源位置伺服器904、資源位置快取記憶體9〇6及多點播送訊 息確認處理組件908。 圖ίο說明本文所述之訊息傳遞系統可如何實施於Sun Solaris系統上的實例。此系統可在組件之間維持相同訊氣 傳遞介面’即使其執行於單一OS系統上亦如此。在此架構 131207.doc -24- 200910108 中’可自動停用如心跳及本端快取記憶體維護的訊息傳遞 特徵。若針對Linux,訊息傳遞核心模組經修改且使用者_ 空間軟體經再編譯,則同一軟體系統可執行於基於Unux 之系統上。訊息傳遞系統包括控制訊息傳遞組件i 〇〇2、資 源位置快取記憶體1006及多點播送訊息確認處理組件 1008。 圖11說明本文所述之訊息傳遞系統可如何實施於即時作 業系統(RTOS)上的實例。訊息傳遞系統包括資源位置伺服 器1104、資源位置快取記憶體1106及多點播送訊息確認處 理組件1108。 ▲亦可在此系統内支援冗餘,因為所有訊息目的地可被動 態地建立並解析。此意謂,當特定硬體單元失效時,訊息 傳遞系統可解除註冊該等邏輯名稱且更新任何分散式絲 記憶體。當在線替換時,新單元可以相同的邏輯名稱註冊 八有新的貝體位置。在無對任何應用之任何改變的情況 下,新單元可能準備好完全參與系統中。亦可藉由使待用 早凡以特^邏輯名稱註冊而使制單元保持”熱(hot)"。此 允許有效單元判定其存在(藉由能夠解析名稱)且亦將更新 =發送t其以保持待用單元同步。當剌單㈣測到有 亡時’其可以所有有效單元邏輯名稱註冊。此 允h施熱(hot)及溫(warm)冗餘兩者。 圖1 2展示如上所诚夕 ^ ^ ;促進在分散式計算系統100中 ;軟體、,且件H)6之間的程序之間通 的部分。電路|置由U之硬體實施 /考數子1200表示且可實施於路由 131207.doc -25- 200910108 器、父換器、基地台等中所含有的各種處理模組或板中。 裝置1200包含將若干電路鏈接在一起之中央資料匯流排 12〇2。該等電路包括CPU(中央處理單元)或控制器1204、 接收電路1206、傳輸電路12〇8及記憶體單元121〇。 若裝置1200為無線器件之部分,則接收電路12〇6及傳輸 電路1208可連接至RF(射頻)電路,但其未展示於圖式中。 在將所接收之信號發送出至資料匯流排12〇2之前,接收電 路1206處理且緩衝該等信號。另一方面,在將來自資料匯 流排1202之資料發送出器件12〇〇之前,傳輸電路12〇8處理 且緩衝該資料。若裝置12〇〇並非無線器件之部分,則接收 電路1206及傳輸電路12〇8可經組態以用於經由有線連接自 其他裝置(例如,其他硬體單元102)接收資料及將資料發送 至其他裝置(例如,其他硬體單元1〇2)。CPU/控制器1204 執行資料匯流排1202之資料管理的功能且進一步執行一般 資料處理的功能’包括執行記憶體單元121〇之指令内容。 替代如圖12中所示地分別安置,作為替代,傳輸電路 1208及接收電路1206可為CPU/控制器1204之部分。 記憶體單元1210包括大體由參考數字1212表示的一組模 組及/或指令。在此實施例中’模組/指令丨212尤其包括用 於促進軟體組件10 6向訊息傳遞系統1 〇 8註冊的註冊功能 1 234、用於促進在經註冊之軟體組件1 〇6之間的單播通信 的單播通信功能1218、用於促進軟體組件1〇6註冊以進行 多點播送事件的多點播送註冊功能1220、用於促進在經註 冊之軟體組件106之間的多點播送通信的多點播送通信功 131207.doc -26· 200910108 能1222、用於在分散式計算系統1〇〇内發現新的訊息傳遞 用戶端110b的發現功能丨224、用於驗證經註冊之訊息傳遞 用戶端ii〇b為操作之驗證功能1226、用於在該等經註冊之 訊息傳遞用戶端ll〇b當中維持同步的同步功能1228、用於 管理一資源位置快取記憶體1214的快取記憶體管理功能 1230,及用於管理一多點播送註冊資料結構1216的多點播 送管理功能1232。註冊功能1234、單播通信功能1218、多 點播送註冊功能1220、多點播送通信功能1222、發現功能 1224、驗證功能1226、同步功能1228、快取記憶體管理功 能1230及多點播送管理功能1232包括用於執行如圖1至圖 11中所展示且描述之處理步驟的電腦指令或程式碼。 可選擇性地實施特定用於一實體的特定指令。舉例而 言,若裝置1200提供訊息傳遞用戶端丨丨讣之功能性,則可 實施註冊功能1234、單播通信功能1218、多點播送註冊功 能1220及多點播送通信功能1222。若裝置12〇〇提供訊息傳 遞伺服器110a之功能性,則可實施所有所描繪之功能。 另外,資源位置快取記憶體1214及多點播送註冊資料結 構1216亦可包括於記憶體單元121〇中。作為替代,資源位 置快取記憶體1214及多點播送註冊資料結構12 16可儲存於 不同於記憶體單元1210的一或多個其他記憶體單元中。 在此實施例中,記憶體單元121〇為RAM(隨機存取記憶 體)電路。例示性功能(諸如,註冊功能丨234、單播通信功 能1218、多點播送註冊功能122〇、多點播送通信功能 1222、發現功能1224、驗證功能1226、同步功能1228、快 131207.doc -27- 200910108 :記憶體管理功能1230及多點播送管理功能1232)為軟體 常式、模組及/或資料集。記憶體單元121〇可連接至可為 揮發型或非揮發型之另一記憶體電路(未圖示卜作為替 代,記憶體單元mo可由其他電路類型製成,諸如 eepr〇m(電可擦可程式化唯讀記憶體)、EpR〇M(電可程式 化唯讀記憶體)、ROM(唯讀記憶體)、ASIC(特殊應用積體 電路)、磁碟、光碟及此項技術中熟知之其他類型。 應進一步注意’如所述之發明性程序亦可經編碼為载運 在此項技術中已知之任何電腦可讀媒體上的電腦可讀指 令。在此說明書及所附申請專利範圍+,術語”電腦可^ 媒體扣代麥與提供指令至任何處理器以用於執行的任何 媒體諸如在圖12之圖式中所展示且描述的cpu/控制器 讓。此媒體可為儲存H類型,且可呈如先前亦在(例如) 圖12中之記憶體單元121()之描述中描述的揮發性或非揮發 !生儲存媒體的形式。此媒體亦可為傳輸類型且可包括同轴 電$見、銅線、光纜’及載運能夠載運可由機器或電腦讀取 之L號的聲波 '電磁波或光波的空中介面。電腦可讀媒體 可為與裝置1200分離之電腦產品的部分。 如本文所使用,術語"判定,•包含廣泛多種動作,且因此 ”判定’’可包括核算、計算、處理、導出、調查、查找⑷ 如在表格、—資料庫或另―資料結構中查找)、確定 及其類似動作。又,',判定”可包括接收(例如,接收資 訊)、存取(例如,存取一記憶體中之資料)及其類似動作。 又’"判$’,可包括解析、選擇、挑選、建立及其類似動 131207.doc -28· 200910108 作。 短語”基於"並不意謂"僅基於”,除非另有明確指定。換 言之’短語,’基於"描述”僅基於”與"至少基於"兩者。 除上文之外,亦可以通用處理器、數位信號處理器 (DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列 (FPGA)或其他可程式化邏輯器件、離散閘或電晶體邏輯、 離散硬體組件或其經設計以執行本文中所述之功能的任何 組口來實施或執行結合本揭示案所描述的各種其他說明性 邏輯區塊、模組及電路。 結合本揭示案所描述之方法或演算法的步驟可直接具體 化於硬體中、由處理器執行之軟體模組中或兩者之組合 中。軟體模組可駐存於此項技術中已知的任何形式之館存 媒體甲。可使用之儲存媒體的一些實例包括讀記憶體、 快閃記憶體、尺⑽記憶體、EPROM記憶體、EEPR0_憶 體、暫存器、硬碟、抽取式碟片、CD-ROM等,如先前所 述。軟體模組可包含單一指令或許多指令,或可分散於若 干不同碼段之上、不同程式當中及多個儲存媒體上。儲存 媒體可福接至處理哭,你p # 士 . m使侍該處理器可自該儲存媒體讀取 貝減將貝訊寫入至該儲存媒體。在替代實施例中,健存 媒體可與處理器成一體式。 及應t解’用於執行本文所述之方法及技術的模組 他適當構件(諸如由圖7至圖8所說明之彼等)可 料由㈣器件及/或基地台下载及/或另外獲得。舉例而 。此盗件可輕接至一飼服器以促進用於執行本文所述之 131207.doc *29- 200910108 方法的構件之傳送。 έ應理解,中請專利範圍不限於上文所說明之精確組態及 、'件可在不脫離巾請專利範圍之範嘴的情況下對本文所 述之系統、方法及裴置的配置、操作及細節進行各種修 改、改變及變化。 【圖式簡單說明】 圖1 β兄明實施於分散式計算系統内之訊息傳遞系統的-實例; 圖2說明展τ軟體組件可如何向系統註冊之實 例; 圖3說明展示訊息傳遞實體可如何促進經註冊之軟體組 件之間的單播通信的實例; 圖4說明展示軟體組件可如何註冊以進行多點播送事件 之實例; 圖5說明展示訊息傳遞實體可如何促進經註冊之軟體組 件之間的多點播送通信之實例; 圖6說明可由訊息傳遞飼服器執行之功能中之一些; 圖7說明可由訊息傳遞伺服器執行之用於程序之間通信 之方法的一實例; 圖7A說明對應於圖7之方法的手段加功能區塊; 圖8說明可由訊息傳遞實體執行之用於程序之間通信之 方法的一實例; 圖8A說明對應於圖8之方法的手段加功能區塊; 圖9至圖11說明展*本文所述之訊息傳遞系統可如何被 131207.doc -30· 200910108 實施之若干實例;及 圖12說明用於促進在分散式計算系統中於軟體組件之間 的程序之間通信之裝置之一硬體實施的部分。【主要元件符號說明】 100 分散式計算系統 102 硬體單元 104 106 106a 106b 106c 106d 108 110 通信匯流排 軟體組件 發送者軟體組件 接收者軟體組件 接收者軟體組件 接收者軟體組件 訊息傳遞系統 訊息傳遞實體 110a 訊息傳遞伺服器 11 〇b 訊息傳遞用戶端 114 114a 114b 116 116a 116b 222 資源位置快取記憶體 資源位置快取記憶體之一主版本 資源位置快取記憶體之一本端複本 多點播送註冊資料結構 多點播送註冊資料結構之主版本 多點播送註冊資料結構之一本端複本 註冊訊息 224 實體位址 131207.doc -31 - 200910108 224b 實體位址 224c 實體位址 224d 實體位址 226 邏輯名稱 228 別名 230 輸入項 232 廣播訊息 234 註冊組件 336 訊息 338 嫁認訊息 340 資源位置伺服器 442 多點播送註冊訊息 444 邏輯名稱 446 輸入項 448 廣播訊息 450 多點播送註冊組件 552 多點播送訊息 554 綠認訊息 556 單一確認訊息 558 多點播送通信組件 662 心跳訊息 664 心跳回覆 666 主時間 668 本端時間 131207.doc -32- 200910108
672a 672b 674 676 678 680 682 684 686 700A 702A 704A 706A 708A 710A 800A 802A 804A 806A 808A 進行多點播送事件 的 主快取記憶體序號 本端快取記憶體序號 更新請求 資源位置快取記憶體更新 用戶端發現組件 驗證組件 同步組件 快取記憶體管理器 多點播送註冊管理器 手段加功能區塊 用於在分散式計算系統㈣騎的訊息傳遞用 戶端的構件 用於驗證經註冊之訊息傳遞用戶端為操作之構件 用於在經註冊之訊息傳遞用戶端當中維持同步 的構件 用於管理主訊息傳遞資源位置快取記憶體的構件 用於管理主多點播送註冊資料結構的構件 手段加功能區塊 用於促進軟體組件向訊自 心傳遞系統註冊的構 用於促進經註冊之敕舻έ 構件 ”軟體组件之間的單播通信的 用於促進軟體組件註冊以 構件 用於促進經註冊之軟體組件 之間的多點播送通 I31207.doc -33· 200910108 902 904 906 908 1002 1006 1008 1104 1106 1108 1200 1202 1204 1206 1208 1210 1212 1214 1216 1218 1220 1222 1224 信的構件 訊息傳遞核心模組 資源位置伺服器 資源位置快取記憶體 多點播送訊息確認處理組件 控制訊息傳遞組件 資源位置快取記憶體 多點播送訊息確認處理組件 資源位置伺服器 資源位置快取記憶體 多點播送訊息確認處理組件 電路裝置 中央資料匯流排 CPU(中央處理單元)或控制器 接收電路 傳輸電路 記憶體單元 模組及/或指令 資源位置快取記憶體 多點播送註冊資料結構 單播通信功能 多點播送註冊功能 多點播送通信功能 發現功能 131207.doc -34- 200910108 1226 驗證功能 1228 同步功能 1230 快取記憶體管理功能 1232 多點播送管理功能 1234 註冊功能 -35 - 131207.doc