本專利文檔的公開的一部分包含受版權保護的材料。版權所有者不反對任何人對專利文檔或專利公開的傳真復制,因為它出現在專利商標局專利文件或記錄中,但在別的方面保留所有任何版權權利。
技術領域
本發明一般涉及計算機系統和諸如中間件之類的軟件,并且特別涉及事務中間件機器環境。
背景技術:
事務中間件系統或面向事務的中間件包括可以處理組織內的各種事務的企業應用服務器。隨著諸如高性能網絡和多處理器計算機之類的新技術的發展,存在進一步改善事務中間件的性能的需要。這些是本發明的實施例旨在解決的公認領域。
技術實現要素:
本文描述的是在事務中間件機器環境中可以支持跨域消息傳送的系統和方法。事務域可以導入來自遠程事務域的一個或多個服務,其中所述一個或多個服務在與該事務域相關聯的服務表中注冊。此外,事務域中的客戶機可以從服務表發現提供所述一個或多個服務的遠程事務域中的遠程服務器,并且直接向該遠程服務器發送消息以調用所述一個或多個服務,從而繞過事務域和遠程事務域二者中的一個或多個域網關服務器。
本文描述的是在事務中間件機器環境中可以支持跨域消息傳送的系統和方法。事務域中的網關服務器操作以向一個或多個遠程事務域中的一個或多個網關服務器提供一個或多個服務的更新的通知。此外,網關服務器可以接收來自遠程事務域的對于所述一個或多個服務的查詢,并且向遠程事務域中的網關服務器發送響應,其中該響應包含允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息。
本文描述的是在事務中間件機器環境中可以支持跨域消息傳送的系統和方法。通過使用代理(proxy)模型,第一事務域可以向第二事務域導出一個或多個服務,其中所述一個或多個服務從第三事務域導入。此外,事務域中的第一網關服務器可以接收來自第二事務域中的客戶機的調用第三事務域中的所述一個或多個服務的請求,并且可以將請求路由到提供所述一個或多個服務的第三事務域中的服務器。
附圖說明
圖1示出了根據本發明的實施例的在事務中間件機器環境中經由域網關支持跨域消息傳送的圖示。
圖2示出了根據本發明的實施例的在事務中間件機器環境中利用繞過域網關來支持跨域消息傳送的圖示。
圖3示出了根據本發明的實施例的在事務中間件機器環境中支持跨域消息傳送的圖示。
圖4示出了根據本發明的實施例的用于在事務中間件機器環境中支持跨域消息傳送的示例性流程圖。
圖5示出了根據本發明的實施例的在事務中間件機器環境中支持繞域組(bypass-domain group)的圖示。
圖6示出了根據本發明的實施例的在事務中間件機器環境中共享和更新支持跨域消息傳送的服務信息的圖示。
圖7示出了根據本發明的實施例的用于在事務中間件機器環境中共享和更新支持跨域消息傳送的服務信息的示例性流程圖。
圖8示出了根據本發明的實施例的在事務中間件機器環境中提供代理模型的圖示。
圖9示出了根據本發明的實施例的在事務中間件機器環境中使用代理模型來支持跨域消息傳送的圖示。
圖10示出了根據本發明的實施例的用于在事務中間件機器環境中使用代理模型來支持跨域消息傳送的示例性流程圖。
圖11示出了根據本發明的實施例的在事務中間件機器環境中的事務域中的客戶機的示例性框圖。
圖12示出了根據本發明的實施例的在事務中間件機器環境中的事務域中的網關服務器的示例性框圖。
圖13示出了根據本發明的實施例的在事務中間件機器環境中的第一事務域中的第一網關服務器的示例性框圖。
圖14示出了根據本發明的實施例的在事務中間件機器環境中的第一事務域中的第二網關服務器的示例性框圖。
具體實施方式
在附圖的圖中通過示例的方式而不是通過限制的方式示出本發明,在附圖中相似的附圖標記指示相似的元件。應當注意的是本公開中對“一”或“一個”或“某個”實施例(多個實施例)的指代不必然地指代同一實施例,并且這樣的指代意味著至少一個。
如下的本發明的描述使用Tuxedo環境作為事務中間件機器環境的示例。對本領域技術人員來說明顯其他類型的事務中間件機器環境可以被使用而沒有限制。
本文描述的是可以支持事務中間件機器環境的系統和方法。
事務中間件機器環境
根據本發明的實施例,系統包括高性能硬件(例如,64位處理器技術、高性能大容量存儲器以及冗余InfiniBand(無限帶寬)和以太網聯網)與諸如WebLogic套件(WebLogic Suite)之類的應用服務器或中間件環境的組合,以提供完整的Java EE應用服務器聯合體(complex),該Java EE應用服務器聯合體包括可以被快速提供、并且可以按需縮放的大規模并行存儲器內網格(in-memory grid)。根據實施例,系統可以被部署為完全的、一半或四分之一機架、或其他配置,這些配置提供應用服務器網格、存儲區域網絡和InfiniBand(IB)網絡。中間件機器軟件可以提供應用服務器、中間件和諸如例如WebLogic Server(服務器)、JRockit或Hotspot JVM、Oracle Linux或Solaris和Oracle VM之類的其他功能。根據實施例,系統可以包括經由IB網絡彼此通信的多個計算節點、IB交換機網關和存儲節點或單元。當被實現為機架配置時,機架的不使用的部分可以保持為空或被填充物占據。
根據本發明的實施例,系統提供了用于托管諸如Oracle Middleware SW套件或Weblogic之類的中間件或應用服務器軟件的容易部署的解決方案。如本文所描述的,根據實施例,系統是“盒中網格(grid in a box)”,其包括一個或多個服務器、存儲單元、用于存儲聯網的IB結構、以及托管中間件應用所需的所有其他組件。可以通過使用例如Real Application Clusters(真正應用集群)和Exalogic Open存儲器來利用(leverage)大規模并行網格架構而為所有類型的中間件應用實現顯著的性能。系統利用線性I/O可伸縮性遞送改善的性能、使用和管理起來簡單、并且實現對任務關鍵的可用性和可靠性。
根據本發明的實施例,諸如Oracle Tuxedo系統之類的事務中間件系統可以利用諸如Oracle Exalogic中間件機器之類的具有多個處理器的快速機器以及諸如IB網絡之類的高性能網絡連接。附加地,Oracle Tuxedo系統可以利用集群數據庫,諸如Oracle Real Application Clusters(RAC,真正應用集群)企業數據庫,Oracle RAC企業數據庫是具有共享高速緩存架構的集群數據庫并且可以是云架構的組件。Oracle RAC可以克服傳統的無共享和共享盤方法的限制來為商業應用提供高度可伸縮的并且高度可用的數據庫解決方案。
根據本發明的實施例,Oracle Tuxedo系統提供一組軟件模塊,這組軟件模塊實現高性能、分布式的商業應用的構建、執行和管理并且它們已經被若干多層應用開發工具用作事務中間件。Tuxedo是可以被用于管理分布式計算環境中的分布式事務處理的中間件平臺。它是用于解鎖企業傳統應用并且將它們擴展為面向服務的架構同時實現無限制的可伸縮性以及基于標準的互操作性的已證實的平臺。
跨域消息傳送
根據本發明的實施例,事務中間件機器環境可以基于域網關服務器支持跨域消息傳送。
域網關服務器可以負責將本地域連接到遠程域、向本地域通告導入的服務、充當用于在兩個域之間傳送請求/響應的代理以及充當用于事務的從屬者(subordinator)。例如,駐留在Tuxedo中的域網關服務器上的GWTDOMAIN過程可以與遠程域中的其他GWTDOMAIN過程通信并且支持域間通信。
圖1示出了根據本發明的實施例的在事務中間件機器環境中經由域網關支持跨域消息傳送的圖示。如圖1所示,事務中間件機器環境100(例如,Tuxedo系統)可以包括多個域,諸如具有域網關A 103的事務域A 101以及具有域網關B 104的事務域B 102。
此外,事務中間件機器環境100中的事務域A-B 101-102可以在服務表107-108中(例如,在共享存儲器105-106中)存儲服務相關信息。例如,Tuxedo系統可以利用公告板(BB),該公告板使用共享存儲器以用于包含與不同應用中的各個過程相關聯的信息,諸如UBBCONFIG文件中定義的信息以及其他統計信息和位置信息。
如圖1所示,事務域A 101中的客戶機111可以檢查共享存儲器105中的服務表107以獲得服務器122的地址,服務器122在事務域B 102中托管目標服務(例如,SVC 123)。然后,客戶機111可以向域網關A 103發送消息,域網關A 103例如經由基于以太網上傳輸控制協議(TCP)協議110的網絡連接將消息轉發到遠程事務域B 102中的域網關B 104。
此外,域網關B 104可以向事務域B 102中的目標服務器122發送接收到的消息。對應地,托管目標服務(即,SVC 123)的目標服務器122可以經由同一路徑向客戶機111發送答復。
附加地,事務域B 102中的客戶機121可以為了獲得服務器112的地址而檢查共享存儲器106中的服務表108,服務器112在事務域A 101中托管目標服務(例如,SVC 113)。然后,客戶機121可以經由域網關A 103和域網關B 104調用目標服務。
根據本發明的實施例,消息傳送系統可能需要在諸如域網關A 103和域網關B 104之類的域網關服務器處執行不同的打包(packing)和解包(unpacking)操作,以用于例如經由事務中間件機器環境100中的各種過程間通信(IPC)隊列或遠程直接存儲器存取(RDMA)隊列來跨域傳輸消息。
例如,在Tuxedo中,在客戶機111從公告板(BB)得到遠程域中的目標服務器122的地址之后,客戶機111可以經由IPC隊列向本地GWTDOMAIN過程發送消息。
然后,GWTDOMAIN過程可以對IPC消息進行解包并且確定該消息應當被路由到哪個遠程網關(即,遠程域中的另一個GWTDOMAIN過程)。此外,GWTDOMAIN過程可以將該消息打包為網絡消息并且向遠程GWTDOMAIN服務器發送網絡消息。
在接收到網絡消息之后,GWTDOMAIN過程可以在將消息打包成IPC消息并且通過本地IPC隊列向服務器發送消息之前對網絡消息進行解包。最后,服務器122可以從本地IPC隊列檢索消息。
因此,由于打包操作和解包操作可以對消息傳送系統的性能帶來負面影響,因此諸如域網關A 103和域網關B 104之類的域網關服務器可能成為高并發場景中的瓶頸。
繞域模型
根據本發明的實施例,事務中間件機器環境可以基于繞域模型(也稱作繞過域的模型)支持跨域消息傳送。
通過使用繞域模型,當導入的服務被調用時,系統可以利用具有高性能和低延遲的網絡協議以直接向遠程域傳遞消息,而不是跨網關域服務器傳送消息。
例如,在Tuxedo中,系統可以通過利用IB網絡以傳送消息來跳過GWTDOMAIN過程。IB網絡可以支持允許本地客戶機直接向遠程節點中的存儲器寫數據的遠程數據訪問。
圖2示出了根據本發明的實施例的在事務中間件機器環境中利用繞過域網關來支持跨域消息傳送的圖示。如圖2所示,事務中間件機器環境200(例如,Tuxedo環境)可以包括多個域,諸如具有域網關A 203的事務域A 201以及具有域網關B 204的事務域B 202。
根據本發明的實施例,事務域A 201和事務域B 202可以使用全局資源230以交換各種信息(例如,在系統的啟動期間)。例如,Tuxedo系統可以或者實現不同的域網關服務器可以通過其交換信息的服務器或者使用網絡文件系統(NFS)文件來共享信息。因此,Tuxedo域可以經由全局資源230從間接連接的域獲得各種機器和事務信息,諸如機器識別符(MID)、組號(GRPID)和事務管理服務器(TMS)服務信息。
此外,事務中間件機器環境200中的事務域A-B 201-202可以例如在共享存儲器205-206中存儲各種機器和服務相關信息。例如,Tuxedo系統可以利用公告板(BB),公告板可以包括為本地域和遠程域二者存儲各種機器和服務相關信息的各種表。這些表可以包括節點表、過程(PE)表、服務器組表、服務表、路由表以及路由數據表(在這些表中節點表和過程(PE)表可以被劃分成多個部分,即其中一個部分用于單個域)。
通過使用繞域模型,網關域A-B 203-204可以在本地共享存儲器205-206(例如,Tuxedo BB)中的服務表207-208中注冊導入的服務相關信息。
因此,客戶機211或222可以從本地服務表207-208獲得用于遠程服務223或213的地址,遠程服務223或213由本地域網關203-204導入。然后,客戶機211或222可以發送調用遠程服務的請求。這里,遠程服務的調用可以基于IB上RDMA網絡220,而不是以太網上TCP網絡210。
例如,客戶機211可以在本地共享存儲器205中的服務表207中發現對于目標服務(例如,SVC 223)的提供者,并且例如經由RDMA隊列直接向遠程服務器221發送消息。同樣,客戶機222可以在本地共享存儲器206中的服務表208中發現對于目標服務(例如,SVC 213)的提供者,并且例如經由RDMA隊列直接向遠程服務器212發送消息。
圖3示出了根據本發明的實施例的在事務中間件機器環境中支持跨域消息傳送的圖示。如圖3所示,事務中間件機器環境300(例如,Tuxedo環境)可以包括多個域,諸如事務域A-B 301-302。
如圖3所示,作為事務域A 301中的域網關服務器的GWTDOMAIN A 303可以將來自本地公告板(BB)A 305的服務和事務信息寫入到NFS共享文件307中;而作為事務域B 302中的域網關服務器的GWTDOMAIN B 304可以將來自本地BB B 306的服務和事務信息寫入到NFS共享文件308中。NFS共享文件307和NFS共享文件308二者可以由事務域A 301和事務域B 302共享。
此外,服務和事務信息可以與不同的服務313-314和/或事務管理服務器(TMS)315-316相關。在Tuxedo中,這樣的信息可以包括機器、組、TMS信息。
例如,為了導入來自遠程事務域B 304的服務314,GWTDOMAIN A 303可以在系統啟動期間和/或在連接的建立之后讀取來自事務域B 304中的NFS文件308的信息。此外,事務域A 301可以在本地公告板(BB)A 305中注冊服務314(例如,事務域B 302中的RDMAQ地址)。
然后,事務域A 301中的客戶機311可以查找本地公告板(BB)A 305以發現(事務域B 102中的)提供目標服務314的遠程服務器。在獲得事務域B 302中的遠程服務器的地址信息后,客戶機311可以通過例如經由(繞過網關服務器A-B 303-304的)基于InfiniBand(IB)上遠程直接存儲器存取(RDMA)320網絡的網絡連接直接向遠程服務器發送消息來調用目標服務314。
類似地,客戶機312可以通過繞過網關服務器A-B 303-304直接向遠程服務器發送消息來調用目標服務313。另外,客戶機311或312在充當事務的提交者和/或協調者時能夠獲得本地TMS和遠程TMS 315-316二者。
附加地,客戶機311或312可以經由以太網上TCP網絡310使用域網關A-B 303-304向遠程服務器發送消息。
因此,系統可以通過利用繞域模型顯著地改善消息傳送系統的跨域消息傳送性能。另外,事務可以在沒有從屬的情況下跨域傳播。
圖4示出了根據本發明的實施例的用于在事務中間件機器環境中支持跨域消息傳送的示例性流程圖。如圖4所示,在步驟401處,事務域可以導入來自遠程事務域的一個或多個服務,其中所述一個或多個服務在與該事務域相關聯的服務表中注冊。然后,在步驟402處,事務域中的客戶機可以從服務表發現提供所述一個或多個服務的遠程事務域中的遠程服務器。此外,在步驟403處,客戶機可以直接向遠程服務器發送消息以調用所述一個或多個服務。
繞域組
根據本發明的實施例,繞域組可以包括基于繞域模型直接地或間接地彼此互聯的一組域。
圖5示出了根據本發明的實施例的在事務中間件機器環境中支持繞域組的圖示。如圖5所示,事務中間件機器環境500(例如,Tuxedo系統)可以包括繞域組520,繞域組520包括多個域,諸如具有域網關A-C 521-523的事務域A-C 501-503。
此外,不同的事務域A-C 501-503可以共享繞域組520內的全局資源510中的信息。例如,Tuxedo系統可以使用網絡文件系統(NFS)以共享存儲在本地公告板(BB)531-533中的機器識別符(MID)、組號(GRPID)、事務管理服務器(TMS)和路由(DDR)信息。在Tuxedo中,每個事務域可以利用網絡文件系統(NFS)文件,在NFS文件中提供了全局資源510。附加地,NFS文件可以由繞域組520中的不同的域訪問。
根據本發明的實施例,繞域組520中的每個域可以與域識別符(ID)相關聯。例如,事務域A 501可以與域ID 511相關聯,事務域B 502可以與域ID 512相關聯,事務域C 503可以與域ID 513相關聯。
此外,繞域組520中的每個域可以利用每個單個域內唯一的一組識別符(諸如MID和GRPID)。然而,在服務542-543(作為服務信息的部分)被跨域導入之后,這些識別符可能不能維持其唯一性。
根據本發明的實施例,每個域ID可以包括域序列號(諸如Tuxedo中的DMSQNM,DMSQNM是識別域組520內的特定域的唯一的號碼)(或者由域序列號表示)。
例如,通過使用域序列號,Tuxedo可以使用DMSQNM作為MID的一部分并且將GRPID與DMSQNM組合來重新構建MID。因此,Tuxedo系統可以在跨域消息傳送中保持識別符(例如,MID和GRPID)的唯一性。
根據本發明的實施例,系統可以傳播唯一域序列號的列表以支持事務。
在Tuxedo中,系統可以傳播與GRPID一起的DMSQNM的列表,并且將DMSQNM添加到全局事務表條目(GTTE)。然后,提交者(或TMS_MANAGE)可以使用組合的DMSQNM和GRPID來確定適當的TMS(即,識別事務中包括的TMS)。
因此,當客戶機541直接調用遠程服務542時,事務的提交者可以了解跨事務域A-C 501-503的所有TMS服務。
另外,GWTDOMAIN過程可以不需要作為事務管理服務器(TMS)參與事務。另外,GWTDOMAIN過程可以不需要知道由客戶機541調用的遠程服務542是否將調用其他遠程服務(例如,服務543)。
更新服務信息
圖6示出了根據本發明的實施例的在事務中間件機器環境中共享和更新支持跨域消息傳送的服務信息的圖示。如圖6所示,事務中間件機器環境600(例如,Tuxedo系統)可以包括多個域,諸如事務域A 610和事務域B 620。
此外,作為事務域B 620中的域網關服務器的GWTDOMAIN B 623可以將來自本地BB B 622的機器和事務相關信息導出到共享NFS文件630。然后,作為事務域A 610中的域網關服務器的GWTDOMAIN A 613可以將來自共享NFS文件630的機器和事務相關信息導入到本地BB A 612。
例如,Tuxedo可以實現兩種操作,GWEV_RDMA_EXPORTLBB和GWEV_RDMA_IMPORTRBB,這兩種操作可以在每個嘀嗒(tick-tock)處被調度以用于分別執行導出和導入操作。
GWTDOMAIN B 623可以使用GWEV_RDMA_EXPOETLBB操作來導出本地MID、GRPID和TMS信息,這些信息可以由其他域節點使用以用于執行應用到事務監控器接口(ATMI)調用。GWEV_RDMA_EXPOETLBB操作可以將與本地BB B 622相關聯的版本與最新寫入的BB版本進行比較,并且可以將資源、機器、組和TMS服務信息寫到共享文件630。
GWTDOMAIN A 613可以使用GWEV_RDMA_IMPORTRBB操作以基于預定義的NFS文件導入來自域組中的每個域(即,對于從0到MAXDOMAIN的序列號)的MID、GRPID和TMS信息。GWEV_RDMA_IMPORTRBB操作還可以導入來自共享NFS文件的信息,該共享NFS文件的域間接連接到該域。GWEV_RDMA_IMPORTRBB操作可以將與本地BB A 612相關聯的版本與最新寫入的BB版本進行比較,并且可以從共享文件630讀取資源、機器、組和TMS服務信息。
如圖6所示,系統可以基于不同的域網關服務器(諸如GWTDOMAIN A 613和GWTDOMAIN B 623)來處理遠程服務621的改變。
在步驟601處,系統可以在服務621改變后更新BB B 622。
在步驟602處,GWTDOMAIN B 623可以檢查與BB B 622相關聯的版本。例如,Tuxedo可以基于調度的嘀嗒周期地調用gw_rdma_check_BB_change()函數調用。該函數可以遍歷域組中的每個域(即,0到MAXDOMAIN)并且比較與共享文件630相關聯的版本。
在步驟603處,如果在BB B 622中任何服務已經改變,則GWTDOMAIN B 623可以例如通過向每個連接的網關發送GWEV_NW_BBCHG_NOTIFY消息來通知所有連接的域。
在步驟604處,當域A 610中的域網關服務器(例如,GWTDOMAIN A 613)接收到來自遠程域B 620的通知消息時,域網關服務器可以例如通過將GWEV_NW_BBCHG_NOTIFY消息中的BB版本與本地BB A 612的版本進行比較來確定要從遠程域B 620導入的服務的列表。
在步驟605處,GWTDOMAIN A 613可以針對要從遠程域B 620導入的服務向GWTDOMAIN B 623發送查詢消息(例如,GWEV_NW_INQRDOMDATA消息)。
在步驟606處,當GWTDOMAIN B 623接收到GWEV_NW_INQRDOMDATA消息時,GWTDOMAIN B 623可以從數據包檢索服務名稱并且為了各種機器和服務信息(諸如RDMAQ地址)而搜索本地BB B 622。
在步驟607處,GWTDOMAIN B 623可以將響應(例如,GWEV_NW_INQRDOMDATA_RPLY消息)發送回GWTDOMAIN A 613,并且等待下一個調度的時間。
在步驟608處,域A 610中的客戶機611可以檢查本地BB A 612并且獲得用于目標服務621的RDMAQ地址。
在步驟609處,客戶機611可以直接調用遠程域中的目標服務621。
根據本發明的實施例,系統可以使用不同的策略以在導入(或導出)目標服務時獲得(或提供)用于與目標服務相關聯的消息隊列的RDMA地址。
系統可以支持跨域數據依賴路由(DDR)。通過使用繞域模型,由于域網關服務器可以實現如配置文件中定義的DDR設置,因此客戶機可以根據本地DDR選擇(直接或間接連接的)適當的遠程服務。例如,域網關服務器可以將來自配置文件(例如,Tuxedo dmconfig文件)的DDR設置轉換為本地BB,本地BB維護用于本地DDR設置的信息。因此,遠程服務調用(例如,Tuxedo tpcall)可以使用本地BB來以類似于本地調用的方式選擇遠程服務。
另外,系統可以交換訪問控制(ACL)信息。例如,當域網關服務器例如通過暴露導入服務的遠程域的RDMAQ地址來導出服務時,域網關服務器可以根據配置設置生成密鑰并且將密鑰提供給遠程域。然后,遠程域中的客戶機可以使用接收到的密鑰例如通過進行tpcall來調用遠程服務。
此外,系統可以支持服務故障轉移(fail-over)。域網關服務器可以通過檢查故障轉移信息(諸如故障轉移號)將服務請求路由到遠程域,由于遠程服務RDMAQ地址被導入到本地BB因此該故障轉移信息可能是不可用的。
例如,當域網關服務器導入遠程服務時,域網關服務器檢查故障轉移號以尋找導入的服務。如果有相同的(或相似的)服務存在,則系統可以將導入的服務當作故障轉移服務,在這種情況中域網關服務器可以將導入的服務的狀態改變為“暫停(suspended)”并且設置適當的負載。
另外,當域網關服務器刪除遠程服務時,域網關服務器檢查遠程域是否為在故障轉移鏈路(的頂部)中要刪除的服務的提供者,并且恢復具有最小故障轉移號的剩余服務。
此外,系統可以刪除來自遠程域的導入的服務。例如,當GWTDOMAIN A 613關閉時,它可以刪除來自本地BB A的導入的服務。
附加地,當到遠程域的連接斷開時(由于網絡問題或者因為遠程域網關被關閉),系統可以刪除與該遠程域相關的所有服務。此外,系統可以檢查遠程域是否為故障轉移鏈路(的頂部)中的某些服務的提供者,并且恢復具有最小故障轉移號的剩余服務。
圖7示出了根據本發明的實施例的用于在事務中間件機器環境中共享和更新支持跨域消息傳送的服務信息的示例性流程圖。如圖7所示,在步驟701處,事務域中的網關服務器可以向一個或多個遠程事務域中的一個或多個網關服務器通知一個或多個服務的更新。然后,在步驟702處,網關服務器可以接收來自遠程事務域的對于所述一個或多個服務的查詢。此外,在步驟403處,網關服務器可以向遠程事務域中的網關服務器發送響應,其中該響應包含允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息。
代理模型
圖8示出了根據本發明的實施例的在事務中間件機器環境中提供代理模型的圖示。如圖8所示,事務中間件機器環境800(例如,Tuxedo環境)可以包括多個域,諸如具有域網關A-C 811-813和公告板(BB)821-823的事務域A-C 801-803。
此外,不同的域A-C 801-803可以共享全局資源810中的信息。例如,Tuxedo系統可以使用網絡文件系統(NFS)以共享MID、GRPID、TMS、路由信息。
如圖8所示,事務域B 802可以將不同的服務導出到各個遠程域。例如,事務域B 802可以將服務823導出到事務域A 801。另外,事務域B 802可以(使用代理模型)將從另一遠程事務域C 803導入的服務833導出到事務域A 801。
根據本發明的實施例,客戶機831可以使用本地BB 821以用于以類似于本地調用的方式選擇遠程服務832。客戶機831可以使用數據依賴路由(DDR)進程以跨域路由一個或多個消息。DDR進程可以基于(從配置文件轉換而來的)存儲在本地BB 821中的DDR設置814。
可替代地,客戶機831可以根據DDR設置814選擇遠程服務833。通過使用代理模型,事務域B 802可以導出服務833。事務域B 802可以暴露用于域網關B 812的RDMAQ地址,域網關B 812從遠程事務域C 803導入服務,而不是暴露用于服務833的最終RDMAQ地址。
隨后,當客戶機831調用服務833時,請求(例如,tpcall)可以被指向到域網關B 812,域網關B 812可以根據存儲在本地BB 822中的DDR設置824路由到遠程服務833(即,單側繞域)。
圖9示出了根據本發明的實施例的在事務中間件機器環境中使用代理模型來支持跨域消息傳送的圖示。如圖9所示,事務中間件機器環境900(例如,Tuxedo環境)可以包括多個域,諸如事務域A-C 921-923。
例如,事務域B 922中的GWTDOMAIN B2 928可以導入來自事務域C 923中的GWTDOMAIN C 929的服務930。此外,事務域B 922中的GWTDOMAIN B1 926可以將服務930導出到事務域A 921中的GWTDOMAIN A 925。
在步驟901處,事務域C 923中的GWTDOMAIN C 929可以檢測與服務930相關聯的改變。
在步驟902處,GWTDOMAIN C 929可以向事務域B 922中的GWTDOMAIN B2 928通知關于服務930的改變。然后,在步驟903處,GWTDOMAIN B2 928可以針對服務的列表(包括服務930)向GWTDOMAIN C 929發送查詢消息。此外,在步驟904處,GWTDOMAIN C 929可以在回復中向GWTDOMAIN B2 928提供服務930的改變。
在步驟905處,GWTDOMAIN B2 928用關于服務930的更新后的信息來更新本地BB 927。在步驟906處,GWTDOMAIN B1 926可以周期地檢查本地BB 927。
在步驟907處,GWTDOMAIN B1 926可以向事務域A 921中的GWTDOMAIN A 925通知關于服務930的更新。然后,在步驟908處,GWTDOMAIN A 925可以針對服務的列表(包括服務930)向GWTDOMAIN B1 926發送查詢消息。
此外,在步驟909處,GWTDOMAIN B1 926可以在回復中向GWTDOMAIN A 925提供服務930的更新。例如,GWTDOMAIN B1 926可以向事務域A 921中的GWTDOMAIN A 925暴露用于與GWTDOMAIN B2 928相關聯的消息隊列的地址,GWTDOMAIN B2 928導入來自遠程事務域C 923的服務930。
在步驟910處,客戶機924可以獲得用于與GWTDOMAIN B2 928相關聯的消息隊列的地址,并且為了調用服務930而向GWTDOMAIN B2 928發送請求。
因此,在步驟911處,GWTDOMAIN B2 928可以將請求路由到事務域C 923中的服務930。
圖10示出了根據本發明的實施例的用于在事務中間件機器環境中使用代理模型來支持跨域消息傳送的示例性流程圖。如圖10所示,在步驟1001處,第一事務域可以將一個或多個服務導出到第二事務域,其中所述一個或多個服務從第三事務域導入。然后,在步驟1002處,事務域中的第一網關服務器可以接收來自第二事務域中的客戶機的調用第三事務域中的所述一個或多個服務的請求。此外,在步驟1003處,第一網關服務器可以將請求路由到提供所述一個或多個服務的第三事務域中的服務器。
圖11示出了根據本發明的實施例的在事務中間件機器環境中的事務域中的客戶機的示例性框圖。事務域操作以導入來自遠程事務域的一個或多個服務,并且所述一個或多個服務在與該事務域相關聯的服務表中注冊。
如圖11所示,示例性客戶機1100可以包括發現單元1110和第一發送單元1120。發現單元1110可以被配置為從服務表發現提供所述一個或多個服務的遠程事務域中的遠程服務器。第一發送單元1120可以被配置為直接向遠程服務器發送消息以調用所述一個或多個服務。
在一個實施例中,事務域和遠程事務域在域組中,其中域組中的每個域與唯一識別符(ID)相關聯。
在一個實施例中,事務域和遠程事務域共享全局資源,該全局資源包含機器和事務相關信息。
在一個實施例中,使用共享文件和服務器中的至少一個來支持全局資源。
在一個實施例中,事務域操作以使用域網關服務器來導入全局資源,該全局資源包含機器和事務相關信息。
在一個實施例中,域網關服務器操作以在本地共享存儲器中存儲導入的機器和事務相關信息。
在一個實施例中,示例性客戶機1100還可以包括第一獲得單元1130,第一獲得單元1130可以被配置為獲得在事務中涉及的事務域和遠程事務域二者中的一個或多個事務管理服務器。
在一個實施例中,示例性客戶機1100還可以包括第二發送單元1140,第二發送單元1140可以被配置為經由駐留在事務域中的一個或多個網關服務器向遠程服務器發送另一消息。
在一個實施例中,示例性客戶機1100還可以包括第二獲得單元1150,第二獲得單元1150可以被配置為獲得用于與遠程服務器相關聯的消息隊列的地址,其中消息隊列基于遠程直接存儲器存取(RDMA)協議。
圖12示出了根據本發明的實施例的在事務中間件機器環境中的事務域中的網關服務器的示例性框圖。
如圖12所示,示例性網關服務器1200可以包括第一提供單元1210、接收單元1220和發送單元1230。第一提供單元1210可以被配置為向一個或多個遠程事務域中的一個或多個網關服務器提供一個或多個服務的更新的通知。接收單元1220可以被配置為接收來自遠程事務域的對于所述一個或多個服務的查詢。發送單元1230可以被配置為向遠程事務域中的網關服務器發送響應,其中該響應包含允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息。
在一個實施例中,事務域和遠程事務域在域組中,其中域組中的每個域與唯一識別符(ID)相關聯。
在一個實施例中,事務域和遠程事務域共享全局資源,該全局資源包含機器和事務相關信息。
在一個實施例中,所述域ID是域序列號,其被用于在域組中保持機器和事務相關信息唯一。
在一個實施例中,示例性網關服務器1200還可以包括傳播單元1240,傳播單元1240可以被配置為傳播域組中的域序列號的列表以支持事務。
在一個實施例中,示例性網關服務器1200還可以包括第二提供單元1250,第二提供單元1250可以被配置為向遠程事務域中的網關服務器提供訪問控制(ACL)信息。
在一個實施例中,網關服務器允許遠程事務域支持故障轉移。
在一個實施例中,示例性網關服務器1200還可以包括檢查單元1260,檢查單元1260可以被配置為針對所述一個或多個服務的更新而檢查本地公告板。
在一個實施例中,示例性網關服務器1200還可以包括搜索單元1270和暴露單元1280,搜索單元1270可以被配置為為了允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息而在本地公告板中搜索,暴露單元1280可以被配置為暴露用于與所述一個或多個服務相關聯的消息隊列的地址。
圖13示出了根據本發明的實施例的在事務中間件機器環境中的第一事務域中的第一網關服務器的示例性框圖。第一事務域操作以將一個或多個服務導出到第二事務域,其中所述一個或多個服務從第三事務域導入。
圖14示出了根據本發明的實施例的在事務中間件機器環境中的第一事務域中的第二網關服務器的示例性框圖。
如圖13所示,示例性第一網關服務器1300可以包括第一接收單元1310和路由單元1320。第一接收單元1310可以被配置為接收來自第二事務域中的客戶機的調用第三事務域中的所述一個或多個服務的請求。路由單元1320可以被配置為將請求路由到提供所述一個或多個服務的第三事務域中的服務器。
在一個實施例中,第一事務域以及第二和第三事務域在域組中,其中域組中的每個域與唯一識別符(ID)相關聯。
在一個實施例中,第一事務域以及第二和第三事務域共享全局資源,該全局資源包含機器和事務相關信息。
在一個實施例中,示例性第一網關服務器1300還可以包括第二接收單元1330,第二接收單元1330可以被配置為接收來自第三事務域的對于所述一個或多個服務的更新的通知。
在一個實施例中,示例性第一網關服務器1300還可以包括更新單元1340,更新單元1340可以被配置為對于從第三事務域導入的所述一個或多個服務的更新來更新第一事務域中的本地公告板。
在一個實施例中,第一事務域還包括第二網關服務器1400。第二網關服務器1400可以包括檢查單元1410,檢查單元1410可以被配置為針對從第三事務域導入的所述一個或多個服務的更新在本地公告板中檢查。
在一個實施例中,第二網關服務器1400還可以包括暴露單元1420,暴露單元1420可以被配置為向第二事務域暴露用于與第一事務域中的第一網關服務器相關聯的消息隊列的地址。
在一個實施例中,請求的路由基于第一事務域中的本地公告板中的數據依賴路由設置。
在一個實施例中,第二事務域包括客戶機。客戶機包括獲得單元和發送單元,獲得單元可以被配置為獲得用于與第一網關服務器相關聯的消息隊列的地址,發送單元可以被配置為向第一網關服務器發送調用第三事務域中的所述一個或多個服務的請求。
圖11-14中所描述的單元可以由硬件(諸如現場可編程門陣列(FPGA)、集成電路(IC)或專用集成電路(ASIC)等)、軟件、固件或其任何組合實現以執行本發明的原理。本領域技術人員理解的是圖11-14所描述的單元可以被組合或分成子單元以實現如上文所描述的本發明的原理。因此,根據實際需要,圖11-14所描述的單元可以根據如上面的實施例中所描述的本發明的原理來執行各種操作。
根據本發明的一些示例性實施例可以如下所示。
(1)一種用于在事務中間件機器環境中在事務中間件機器環境中支持跨域消息傳送的系統,包括:
事務域,該事務域操作以導入來自遠程事務域的一個或多個服務,其中所述一個或多個服務在與該事務域相關聯的服務表中注冊,該事務域包括客戶機,該客戶機操作以:
從服務表發現提供所述一個或多個服務的遠程事務域中的遠程服務器;以及直接向遠程服務器發送調用所述一個或多個服務的消息。
(2)一種用于在事務中間件機器環境中支持消息傳送的系統,包括:包括網關服務器的事務域,其中該網關服務器操作以:向一個或多個遠程事務域中的一個或多個網關服務器提供一個或多個服務的更新的通知;接收來自遠程事務域的對于所述一個或多個服務的查詢;以及向遠程事務域中的網關服務器發送響應,其中該響應包含允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息。
(3)一種用于在事務中間件機器環境中支持消息傳送的系統,包括:第一事務域,其操作以將一個或多個服務導出到第二事務域,其中所述一個或多個服務從第三事務域導入,第一事務域包括第一網關服務器,第一網關服務器操作以:接收來自第二事務域中的客戶機的調用第三事務域中的所述一個或多個服務的請求;以及將請求路由到提供所述一個或多個服務的第三事務域中的服務器。根據本發明的實施例,一種用于在事務中間件機器環境中支持消息傳送的方法,包括:經由事務域中的網關服務器向一個或多個遠程事務域中的一個或多個網關服務器提供一個或多個服務的更新的通知;經由網關服務器接收來自遠程事務域的對于所述一個或多個服務的查詢;以及經由網關服務器向遠程事務域中的網關服務器發送響應,其中該響應包含允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息。
根據本發明的實施例,該方法還包括:允許事務域和遠程事務域在域組中,其中域組中的每個域與唯一識別符(ID)相關聯。
根據本發明的實施例,該方法還包括:經由事務域和遠程事務域共享全局資源,該全局資源包含用于域組中的不同事務域的機器和事務相關信息。
在本發明的實施例中,該方法還包括:允許所述域ID是域序列號,其被用于在域組中保持機器和事務相關信息唯一。
在本發明的實施例中,該方法還包括:傳播域組中的域序列號的列表以支持事務。
在本發明的實施例中,該方法還包括:向遠程事務域中的網關服務器提供訪問控制(ACL)信息。
在本發明的實施例中,該方法還包括:允許遠程事務域支持故障轉移。
在本發明的實施例中,該方法還包括:經由網關服務器針對所述一個或多個服務的更新來檢查本地公告板。
在本發明的實施例中,根據權利要求8的方法,還包括:經由網關服務器在本地公告板中搜索允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息。
在本發明的實施例中,該方法還包括:經由網關服務器暴露用于與所述一個或多個服務相關聯的消息隊列的地址。
在本發明的實施例中,一種非暫態機器可讀存儲介質,該非暫態機器可讀存儲介質具有存儲在其上的指令,當該指令被執行時使得系統執行上述方法中的任何方法中的方法的步驟。
在本發明的實施例中,一種用于在事務中間件機器環境中支持消息傳送的系統,包括:一個或多個微處理器;事務域中的網關服務器,其運行在一個或多個微處理器上,其中網關服務器操作以向一個或多個遠程事務域中的一個或多個網關服務器提供一個或多個服務的更新的通知;接收來自遠程事務域的對于所述一個或多個服務的查詢;以及向遠程事務域中的網關服務器發送響應,其中該響應包含允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息。
在本發明的實施例中,該系統其中:事務域和遠程事務域在域組中,其中域組中的每個域與唯一識別符(ID)相關聯。
在本發明的實施例中,該系統其中:事務域和遠程事務域共享全局資源,該全局資源包含機器和事務相關信息。
在本發明的實施例中,該系統其中:所述域ID是域序列號,其被用于在域組中保持機器和事務相關信息唯一。
在本發明的實施例中,該系統其中:網關服務器操作以傳播域組中的域序列號的列表以支持事務。
在本發明的實施例中,該系統其中:事務域中的網關服務器操作以向遠程事務域中的網關服務器提供訪問控制(ACL)信息。
在本發明的實施例中,該系統其中:事務域中的網關服務器允許遠程事務域支持故障轉移。
在本發明的實施例中,該系統其中:網關服務器操作以針對所述一個或多個服務的更新檢查本地公告板。
在本發明的實施例中,該系統其中:網關服務器操作以針對允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息在本地公告板中搜索,以及暴露用于與所述一個或多個服務相關聯的消息隊列的地址。
在本發明的實施例中,一種事務域中的網關服務器,包括:第一提供單元,其被配置為向一個或多個遠程事務域中的一個或多個網關服務器提供一個或多個服務的更新的通知;接收單元,其被配置為接收來自遠程事務域的對于所述一個或多個服務的查詢;以及發送單元,其被配置為向遠程事務域中的網關服務器發送響應,其中該響應包含允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息。
在本發明的實施例中,該網關服務器其中,事務域和遠程事務域在域組中,其中域組中的每個域與唯一識別符(ID)相關聯。
在本發明的實施例中,該網關服務器其中,事務域和遠程事務域共享全局資源,該全局資源包含機器和事務相關信息。
在本發明的實施例中,該網關服務器其中,所述域ID是域序列號,其被用于在域組中保持機器和事務相關信息唯一。
在本發明的實施例中,該網關服務器還包括被配置為傳播域組中的域序列號的列表以支持事務的傳播單元。
在本發明的實施例中,該網關服務器還包括:被配置為向遠程事務域中的網關服務器提供訪問控制(ACL)信息的第二提供單元。
在本發明的實施例中,該網關服務器其中,網關服務器允許遠程事務域支持故障轉移。
在本發明的實施例中,該網關服務器還包括被配置為針對所述一個或多個服務的更新檢查本地公告板的檢查單元。
在本發明的實施例中,該網關服務器還包括搜索單元和暴露單元,該搜索單元被配置為在本地公告板中搜索允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息,以及該暴露單元被配置為暴露用于與所述一個或多個服務相關聯的消息隊列的地址。
在本發明的實施例中,一種非暫態機器可讀存儲介質,該非暫態機器可讀存儲介質具有存儲在其上的指令,當該指令被執行時使得系統執行步驟,包括:經由事務域中的網關服務器向一個或多個遠程事務域中的一個或多個網關服務器提供一個或多個服務的更新的通知;經由網關服務器接收來自遠程事務域的對于所述一個或多個服務的查詢;以及經由網關服務器向遠程事務域中的網關服務器發送響應,其中該響應包含允許所述遠程事務域中的客戶機調用所述一個或多個服務的信息。
在本發明的實施例中,一種用于在事務中間件機器環境中支持消息傳送的方法,包括:經由第一事務域將一個或多個服務導出到第二事務域,其中所述一個或多個服務從第三事務域導入;經由事務域中的第一網關服務器接收來自第二事務域中的客戶機的調用第三事務域中的所述一個或多個服務的請求;以及經由第一網關服務器將請求路由到提供所述一個或多個服務的第三事務域中的服務器。
在本發明的實施例中,該方法還包括:允許事務域和遠程事務域在域組中,其中域組中的每個域與唯一識別符(ID)相關聯。
在本發明的實施例中,該方法還包括:經由事務域和遠程事務域共享全局資源,該全局資源包含用于域組中的不同事務域的機器和事務相關信息。
在本發明的實施例中,該方法還包括:經由第一網關服務器接收對于來自第三事務域的所述一個或多個服務的更新的通知。
在本發明的實施例中,該方法還包括:經由第一網關服務器對于從第三事務域導入的所述一個或多個服務的更新來更新第一事務域中的本地公告板。
在本發明的實施例中,該方法還包括:經由第一事務域中的第二網關服務器針對從第三事務域導入的所述一個或多個服務的更新在本地公告板中檢查。
在本發明的實施例中,該方法還包括:經由第一事務域中的第二網關服務器向第二事務域暴露用于與第一事務域中的第一網關服務器相關聯的消息隊列的地址。
在本發明的實施例中,該方法還包括:允許請求的路由基于第一事務域中的本地公告板中的數據依賴路由設置。
在本發明的實施例中,該方法還包括:經由第二事務域中的客戶機獲得用于與第一事務域中的第一網關服務器相關聯的消息隊列的地址。
在本發明的實施例中,該方法還包括:經由第二事務域中的客戶機向第一事務域中的第一網關服務器發送調用第三事務域中的所述一個或多個服務的請求。
在本發明的實施例中,一種非暫態機器可讀存儲介質,該非暫態機器可讀存儲介質具有存儲在其上的指令,當該指令被執行時使得系統執行上述方法中的任何方法中的方法的步驟。
在本發明的實施例中,一種用于在事務中間件機器環境中支持消息傳送的系統,包括:一個或多個微處理器;第一事務域,其運行在一個或多個微處理器上,其中第一事務域操作以將一個或多個服務導出到第二事務域,其中所述一個或多個服務從第三事務域導入;以及第一事務域中的第一網關服務器,該第一網關服務器操作以接收來自第二事務域中的客戶機的調用第三事務域中的所述一個或多個服務的請求;以及將請求路由到提供所述一個或多個服務的第三事務域中的服務器。
在本發明的實施例中,該系統其中:第一事務域以及第二和第三事務域在域組中,其中域組中的每個域與唯一識別符(ID)相關聯。
在本發明的實施例中,該系統其中:第一事務域以及第二和第三事務域共享全局資源,該全局資源包含機器和事務相關信息。
在本發明的實施例中,該系統其中:第一事務域中的第一網關服務器操作以接收來自第三事務域的對于所述一個或多個服務的更新的通知。
在本發明的實施例中,該系統其中:第一事務域中的第一網關服務器操作以對于從第三事務域導入的所述一個或多個服務的更新來更新第一事務域中的本地公告板。
在本發明的實施例中,該系統其中:第一事務域中的第二網關服務器操作以針對從第三事務域導入的所述一個或多個服務的更新在本地公告板中檢查。
在本發明的實施例中,該系統其中:第一事務域中的第二網關服務器操作以向第二事務域暴露用于與第一事務域中的第一網關服務器相關聯的消息隊列的地址。
在本發明的實施例中,該系統其中:請求的路由基于第一事務域中的本地公告板中的數據依賴路由設置。
在本發明的實施例中,該系統其中:第二事務域中的客戶機操作以獲得用于與第一事務域中的第一網關服務器相關聯的消息隊列的地址,以及向第一事務域中的第一網關服務器發送調用第三事務域中的所述一個或多個服務的請求。
在本發明的實施例中,一種非暫態機器可讀存儲介質,該非暫態機器可讀存儲介質具有存儲在其上的指令,當該指令被執行時使得系統執行步驟,包括:經由第一事務域將一個或多個服務導出到第二事務域,其中所述一個或多個服務從第三事務域導入;經由事務域中的第一網關服務器接收來自第二事務域中的客戶機的調用第三事務域中的所述一個或多個服務的請求;以及經由第一網關服務器將請求路由到提供所述一個或多個服務的第三事務域中的服務器。
在本發明的實施例中,第一事務域中的第一網關服務器,其中第一事務域操作以將一個或多個服務導出到第二事務域,其中所述一個或多個服務從第三事務域導入,第一網關服務器包括:被配置為接收來自第二事務域中的客戶機的調用第三事務域中的所述一個或多個服務的請求的第一接收單元;以及被配置為將請求路由到提供所述一個或多個服務的第三事務域中的服務器的路由單元。
在本發明的實施例中,第一網關服務器其中,第一事務域以及第二和第三事務域在域組中,其中域組中的每個域與唯一識別符(ID)相關聯。
在本發明的實施例中,第一網關服務器其中,第一事務域以及第二和第三事務域共享全局資源,該全局資源包含機器和事務相關信息。
在本發明的實施例中,第一網關服務器還包括被配置為接收來自第三事務域的對于所述一個或多個服務的更新的通知的第二接收單元。
在本發明的實施例中,第一網關服務器還包括被配置為對于從第三事務域導入的所述一個或多個服務的更新來更新第一事務域中的本地公告板的更新單元。
在本發明的實施例中,第一網關服務器,其中第一事務域還包括第二網關服務器,其中第二網關服務器包括檢查單元,該檢查單元被配置為針對從第三事務域導入的所述一個或多個服務的更新在本地公告板中檢查。
在本發明的實施例中,根據上述的第一網關服務器,其中第二網關服務器還包括:被配置為向第二事務域暴露用于與第一事務域中的第一網關服務器相關聯的消息隊列的地址的暴露單元。
在本發明的實施例中,根據上述的第一網關服務器,其中請求的路由基于第一事務域中的本地公告板中的數據依賴路由設置。
在本發明的實施例中,根據上述的第一網關服務器,其中第二事務域包括客戶機,該客戶機包括:被配置為獲得用于與第一網關服務器相關聯的消息隊列的地址的獲得單元,以及被配置為向第一事務域中的第一網關服務器發送調用第三事務域中的所述一個或多個服務的請求的發送單元。
在本發明的實施例中,一種非暫態機器可讀存儲介質,該非暫態機器可讀存儲介質具有存儲在其上的指令,當該指令被執行時使得系統執行步驟,包括:經由第一事務域將一個或多個服務導出到第二事務域,其中所述一個或多個服務從第三事務域導入;經由事務域中的第一網關服務器接收來自第二事務域中的客戶機的調用第三事務域中的所述一個或多個服務的請求;以及經由第一網關服務器將請求路由到提供所述一個或多個服務的第三事務域中的服務器。
本發明的許多特征可以在硬件、軟件、固件或其組合中執行、通過使用硬件、軟件、固件或其組合來執行或者在硬件、軟件、固件或其組合的協助下執行。因此,本發明的特征可以使用處理系統(例如,包括一個或多個處理器)來實現。
本發明的特征可以在計算機程序產品中實現、使用計算機程序產品實現或在計算機程序產品的協助下實現,該計算機程序產品是具有存儲在其上/其中的指令的存儲介質(媒介)或計算機可讀介質(媒介),該指令可以被用于對處理系統編程以執行本文呈現的特征中的任何特征。存儲介質可以包括但不限于任何類型的盤,該任何類型的盤包括軟盤、光盤、DVD、CD-ROM、微型硬盤以及磁光盤、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、閃速存儲器設備、磁卡或光卡、納米系統(包括分子存儲器IC)或適用于存儲指令和/或數據的任何類型的媒介或設備。
被存儲在機器可讀介質(媒介)中的任何一種上,本發明的特征可以被并入軟件和/或固件中以用于控制處理系統的硬件以及用于使得處理系統能夠利用本發明的結果與其他機制交互。這樣的軟件或固件可以包括但不限于應用代碼、設備驅動器、操作系統和執行環境/容器。
本發明的特征還可以使用例如諸如專用集成電路(ASIC)之類的硬件組件在硬件中實現。以便于執行本文所描述的功能的硬件狀態機的實現對于相關領域技術人員將是明顯的。
附加地,使用包括根據本公開的教導編程的一個或多個處理器、存儲器和/或計算機可讀存儲媒介的一個或多個常規通用或專用電子計算機、計算設備、機器或微處理器可以方便地實現本發明。如對于軟件領域技術人員將明顯的,熟練的程序員可以基于本公開的教導容易地準備合適的軟件編碼。
盡管上文描述了本發明的各種實施例,但是應當理解的是它們以示例的方式,而不是限制的方式被呈現。對于相關領域技術人員將明顯的是可以在其中進行形式和細節的各種改變而不背離本發明的精神和范圍。
上文借助示出特定功能及其關系的執行的功能建立塊描述了本發明。為了方便描述,這些功能建立塊的界限在此通常被任意定義。只要合適地執行特定功能及其關系,則可以定義替代界限。因此,任何這樣的替代界限在本發明的范圍和精神內。
出于說明和描述的目的提供了本發明的上述描述。它并不旨在是詳盡的或者將本發明限制到所公開的精確形式。本發明的寬度和范圍不應當被上文描述的示例性實施例中的任何實施例所限制。許多修改和變化對于本領域技術人員來說將是明顯的。修改和變化包括所公開的特征的任何相關的組合。實施例被選擇和描述以便于最佳地解釋本發明的原理及其實踐應用,從而使得本領域其他技術人員能夠對于各種實施例以及如適合所設想的特定使用的各種變型來理解本發明。旨在由以下權利要求和它們的等價物來限定本發明的范圍。