跨越多個(gè)計(jì)算設(shè)備分布的應(yīng)用的執(zhí)行的制作方法
【專利摘要】根據(jù)一個(gè)實(shí)施例,一種系統(tǒng)包括至少一個(gè)處理器。所述系統(tǒng)在計(jì)算設(shè)備上檢測促進(jìn)一個(gè)或多個(gè)應(yīng)用的執(zhí)行的調(diào)用事件。所述應(yīng)用包括至少一個(gè)遠(yuǎn)程應(yīng)用。搜索路徑被檢查以確定所述一個(gè)或多個(gè)應(yīng)用的位置,并且包括指示用于執(zhí)行對應(yīng)的遠(yuǎn)程應(yīng)用的遠(yuǎn)程位置的至少一個(gè)指示符。與所述至少一個(gè)遠(yuǎn)程應(yīng)用相關(guān)聯(lián)的每個(gè)指示符被解析以確定用于執(zhí)行所述對應(yīng)的遠(yuǎn)程應(yīng)用的遠(yuǎn)程位置。所述應(yīng)用在所確定的位置處被執(zhí)行,同時(shí)每個(gè)遠(yuǎn)程應(yīng)用在所述對應(yīng)的遠(yuǎn)程位置處的對應(yīng)的遠(yuǎn)程計(jì)算設(shè)備上被執(zhí)行。實(shí)施例可以進(jìn)一步包括用于以上面所描述的基本上相同的方式執(zhí)行跨越多個(gè)計(jì)算設(shè)備分布的應(yīng)用的方法和編碼有用于執(zhí)行該方法的軟件的計(jì)算機(jī)可讀介質(zhì)。
【專利說明】跨越多個(gè)計(jì)算設(shè)備分布的應(yīng)用的執(zhí)行
【技術(shù)領(lǐng)域】
[0001]本公開涉及應(yīng)用的執(zhí)行,并且更具體地,涉及在應(yīng)用調(diào)用的位置本地和遠(yuǎn)程分布和跨越多個(gè)計(jì)算設(shè)備分布的各種應(yīng)用的執(zhí)行。
【背景技術(shù)】
[0002]分布式處理框架(例如C0RBA、DC0M、.NET、EJB、JIN1、Javaspaces、Web 服務(wù)等)試圖協(xié)調(diào)跨越相連接的計(jì)算設(shè)備的環(huán)境中的應(yīng)用的功能執(zhí)行。然而,隨著分布式處理框架的成熟,由于應(yīng)用本身的編碼的復(fù)雜性或由于應(yīng)用將任務(wù)委派給的框架的復(fù)雜性,應(yīng)用開發(fā)人員或管理員對框架的使用變得越來越不便。例如,應(yīng)用服務(wù)器典型地花費(fèi)數(shù)分鐘啟動,力口載數(shù)萬或數(shù)十萬個(gè)類,并且在執(zhí)行單個(gè)應(yīng)用事務(wù)之前消耗數(shù)百兆字節(jié)的內(nèi)存。
[0003]分布式處理框架典型地持續(xù)消耗資源(例如,無論框架是否正在執(zhí)行任何有用的工作),并且趨于要么對于應(yīng)用和支持服務(wù)(例如.NET或Java變體中的任一個(gè))而言為技術(shù)特定的,要么與技術(shù)無關(guān)但要求多個(gè)技術(shù)特定的實(shí)施方式(例如C0RBA、X-Window)。分布式處理框架實(shí)施方式的技術(shù)特定性質(zhì)可能是框架與現(xiàn)有應(yīng)用的適應(yīng)性的約束,或者是與新的應(yīng)用編程語言和新興工具集成的障礙。
【專利附圖】
【附圖說明】
[0004]圖1是用于本實(shí)施例的示例拓?fù)涞氖疽鈭D示。
[0005]圖2是根據(jù)實(shí)施例具有用于提供分布式處理接口的模塊的主機(jī)系統(tǒng)的框圖。
[0006]圖3是圖示了根據(jù)實(shí)施例跨越多個(gè)主機(jī)系統(tǒng)分布的示例應(yīng)用被執(zhí)行的方式的過程流程圖。
[0007]圖4是圖示了根據(jù)實(shí)施例的示例遠(yuǎn)程應(yīng)用的執(zhí)行的流程圖。
[0008]圖5是圖示了根據(jù)實(shí)施例的跨越多個(gè)主機(jī)系統(tǒng)分布的數(shù)個(gè)示例應(yīng)用的執(zhí)行的流程圖。
【具體實(shí)施方式】
[0009]概沭
[0010]根據(jù)一個(gè)實(shí)施例,系統(tǒng)包括至少一個(gè)處理器。系統(tǒng)在計(jì)算設(shè)備上檢測促進(jìn)一個(gè)或多個(gè)應(yīng)用的執(zhí)行的調(diào)用事件。應(yīng)用包括各自用于在對應(yīng)的遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行的至少一個(gè)遠(yuǎn)程應(yīng)用。搜索路徑被檢查以確定一個(gè)或多個(gè)應(yīng)用的位置。搜索路徑包括各自與對應(yīng)的遠(yuǎn)程應(yīng)用相關(guān)聯(lián)并且指示用于對應(yīng)的遠(yuǎn)程應(yīng)用的執(zhí)行的遠(yuǎn)程位置的至少一個(gè)指示符。與所述至少一個(gè)遠(yuǎn)程應(yīng)用相關(guān)聯(lián)的每個(gè)指示符被解析以確定用于對應(yīng)的遠(yuǎn)程應(yīng)用的執(zhí)行的遠(yuǎn)程位置。所述一個(gè)或多個(gè)應(yīng)用在所確定的位置處被執(zhí)行,同時(shí)每個(gè)遠(yuǎn)程應(yīng)用在對應(yīng)遠(yuǎn)程位置處的對應(yīng)的遠(yuǎn)程計(jì)算設(shè)備上被執(zhí)行。實(shí)施例可以進(jìn)一步包括用于以上面所描述的基本上相同的方式來執(zhí)行跨越多個(gè)計(jì)算設(shè)備分布的應(yīng)用的方法和具有用于執(zhí)行上述方法的軟件的計(jì)算機(jī)可讀介質(zhì)。[0011]示例實(shí)施例
[0012]本文中所描述的實(shí)施例針對用于管理用于駐留在采用兼容的網(wǎng)絡(luò)可訪問操作系統(tǒng)的設(shè)備的任何組合上的應(yīng)用的分布式處理的功能的分布式處理接口。進(jìn)一步地,各種增值能力可以被疊加在這個(gè)功能上。本實(shí)施例從云使能操作系統(tǒng)的開發(fā)人員和/或應(yīng)用的角度上具有效果,其中,在云使能操作系統(tǒng)中,在任何計(jì)算設(shè)備上調(diào)用的任何應(yīng)用在網(wǎng)絡(luò)內(nèi)任何地方被全局動態(tài)地發(fā)現(xiàn)并且執(zhí)行。本實(shí)施例提供了操作系統(tǒng)與應(yīng)用之間的接口,并且透明地執(zhí)行應(yīng)用而不論應(yīng)用駐留在哪里(好像應(yīng)用是本地的)。接口可以接收并且處理來自代碼(例如,程序、腳本、宏等)的命令或指令,或者可替代地,接口為接收并且處理來自用戶的命令或指令的外殼的形式。此外,應(yīng)用可以被動態(tài)地組合或者分發(fā)以用代理范式在最佳位置中(或者在具有最佳可用資源的計(jì)算設(shè)備上)執(zhí)行。
[0013]本實(shí)施例的分布式處理接口提供了數(shù)個(gè)優(yōu)點(diǎn)。特別地,分布式處理接口動態(tài)地定位一個(gè)或多個(gè)本地或遠(yuǎn)程應(yīng)用,并且在定義的工作流中執(zhí)行應(yīng)用。進(jìn)一步地,分布式處理接口管理應(yīng)用之間的所有通信,對于應(yīng)用和通信兩者加強(qiáng)安全,并且在完成之后釋放所有分配的資源。分布式處理接口可以無關(guān)于應(yīng)用技術(shù)和數(shù)據(jù)交換協(xié)議,并且不干擾應(yīng)用代碼。而且,分布式處理接口作為應(yīng)用與操作系統(tǒng)(和/或網(wǎng)絡(luò))之間的中介物以應(yīng)用各種增值能力。分布式處理接口可以被實(shí)現(xiàn)為用于與用戶交互的外殼,或者可替代地,被嵌入在操作系統(tǒng)(例如,可執(zhí)行庫等)內(nèi)或者與其緊密地集成。
[0014]本實(shí)施例的分布式處理接口修改執(zhí)行路徑(例如,由PATH命令或環(huán)境變量(例如,$PATH)來指示的執(zhí)行路徑)以將域名服務(wù)(DNS-SD)查找表包括為服務(wù)位置的一部分。例如,在分布式處理接口實(shí)施例的外殼提示符(“nsh>”)處鍵入的以下命令:
[0015]nsh>export PATH=/bin;/usr/bin;myapps.domain, com
[0016]nsh>hello_world,
[0017]并通過針對提供所期望的服務(wù)的稱作“hell0_W0rld”的應(yīng)用的可執(zhí)行文件(例如,包含具有使計(jì)算機(jī)系統(tǒng)執(zhí)行任務(wù)的形式的應(yīng)用代碼(例如,典型地為用于物理處理器的機(jī)器代碼)的文件)來搜索“/bin”和“/usr/bin”目錄而對以上命令進(jìn)行處理。當(dāng)應(yīng)用未駐留在這些目錄內(nèi)時(shí),貝1J提供對“hello_world.myapps.domain, com”的域名服務(wù)(DNS)查找。如果互聯(lián)網(wǎng)協(xié)議(IP)地址被從該查找返回(例如,不管DNS查找是否是負(fù)載平衡、群集、故障轉(zhuǎn)移等的結(jié)果),則應(yīng)用或服務(wù)位置被認(rèn)為是成功的。定位遠(yuǎn)程和本地應(yīng)用的優(yōu)先級被搜索路徑中指令符序列控制(例如,由PATH或其它命令或$PATH或其它環(huán)境變量來指示)。將待搜索的服務(wù)或計(jì)算設(shè)備的DNS名稱包括在搜索路徑內(nèi)的能力使得服務(wù)的位置(無論本地還是在遠(yuǎn)程計(jì)算設(shè)備上)能夠?yàn)殡[式的、透明的、自動的,并且使用搜索路徑中的條目的排序按優(yōu)先級排序。
[0018]如果應(yīng)用被遠(yuǎn)程地定位,則分布式處理接口結(jié)合安全遠(yuǎn)程執(zhí)行能力來建立到遠(yuǎn)程主機(jī)系統(tǒng)的安全連接(例如,經(jīng)由任何常規(guī)或其它安全技術(shù)),執(zhí)行遠(yuǎn)程應(yīng)用,并且將輸出輸送回分布式處理接口。在遠(yuǎn)程主機(jī)系統(tǒng)處的架構(gòu)采用這些能力的類似能力,其中進(jìn)程管理器守護(hù)程序接收對應(yīng)用執(zhí)行的請求并且發(fā)起(或者分叉出)進(jìn)程來定位并且執(zhí)行遠(yuǎn)程主機(jī)系統(tǒng)上的應(yīng)用。
[0019]分布式處理接口將透明的服務(wù)位置和執(zhí)行與在命令或指令之間輸入和輸出輸送結(jié)合在一起(例如,一個(gè)應(yīng)用的輸出用作下一個(gè)應(yīng)用的輸入)。例如,相對于在本實(shí)施例的外殼處鍵入的以下命令(例如,“ I ”指示輸送):
[0020]nsh>cat input, txt|appx|appy|appz>output.txt,
[0021]分布式處理接口執(zhí)行并且產(chǎn)生本地輸出而不管應(yīng)用(例如,appx、appy以及appz)駐留在哪里(例如,在包含遠(yuǎn)程守護(hù)程序的任何網(wǎng)絡(luò)可訪問的設(shè)備上,包括已將它們的服務(wù)注冊在DNS中的移動設(shè)備)。外殼透明地用輸送應(yīng)用之間的工作流,并且可以應(yīng)用增值指令符(例如,加密和壓縮以優(yōu)化并且保護(hù)通信)。
[0022]在本實(shí)施例中,外殼內(nèi)置命令和指令符能夠與應(yīng)用無縫地混合而不管應(yīng)用技術(shù)或應(yīng)用的位置如何。進(jìn)一步地,支持涉及將分布式命令或指令無縫包括在復(fù)雜過程邏輯的動態(tài)命令替換中的編程和腳本,而不管如由它們在DNS中注冊的名稱所引用的應(yīng)用的位置如何。
[0023]本實(shí)施例的所述DNS注冊方面使得服務(wù)注冊和位置能夠完全地在不高于開放系統(tǒng)互聯(lián)(OSI)棧的第3層(例如,網(wǎng)絡(luò)層)處發(fā)生并且以協(xié)議無關(guān)的方式使用DNS聯(lián)盟、冗余以及彈性特征在全局的任何位置處發(fā)生。應(yīng)用的DNS注冊可以基于應(yīng)用編程接口(API)調(diào)用或自動注冊的自動化方式(例如,依據(jù)執(zhí)行的更新(例如,應(yīng)用在給定時(shí)刻駐留在特定計(jì)算設(shè)備上)、將所有應(yīng)用注冊在該系統(tǒng)上的定義目錄的掃描等)。
[0024]除了實(shí)現(xiàn)標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出以及標(biāo)準(zhǔn)錯(cuò)誤接口的近乎通用的讀寫功能的能力之夕卜,不要求應(yīng)用具有實(shí)現(xiàn)分布式處理或通信的任何知識或代碼。例如,可以將指令符與命令替換內(nèi)聯(lián)地應(yīng)用、應(yīng)用在代碼指令內(nèi)、作為環(huán)境變量應(yīng)用或者作為命令行自變量來應(yīng)用。
[0025]因此,本實(shí)施例提供應(yīng)用技術(shù)無關(guān)的服務(wù)位置和注冊(例如,包括通過應(yīng)用的自注冊)、無縫的本地和遠(yuǎn)程命令或指令執(zhí)行(例如,包括基于定義的一套準(zhǔn)則在主機(jī)操作環(huán)境之間動態(tài)地移動的移動代碼(例如,分布式處理接口代理可以被指定用于輸送并且執(zhí)行計(jì)算設(shè)備具有較高容量和較低延遲的任何一個(gè)應(yīng)用(例如,被動態(tài)地發(fā)送到一個(gè)位置以處理5千兆字節(jié)數(shù)據(jù)然后以避免跨越網(wǎng)絡(luò)將數(shù)據(jù)移動到應(yīng)用首先被定位在的地方的延遲的完美狀態(tài)返回的5兆字節(jié)應(yīng)用)等))。
[0026]進(jìn)一步地,本實(shí)施例提供透明的、非干擾性的以及應(yīng)用技術(shù)無關(guān)的:用于優(yōu)化并且保護(hù)應(yīng)用之間的分布式通信的增值選項(xiàng)(例如,加密、壓縮、服務(wù)質(zhì)量、群集、安全等)的使用;跟蹤、度量、利用、容量以及在服務(wù)執(zhí)行點(diǎn)處收集到的依賴管理洞察力和服務(wù)的粒度;以及基于由服務(wù)本身在執(zhí)行點(diǎn)處所驅(qū)動的陳述性、程序性或動態(tài)度量驅(qū)動準(zhǔn)則的任何組合的動態(tài)工作負(fù)載管理和編排,其中通信在本地、遠(yuǎn)程、同步或異步執(zhí)行的變化中被編排。
[0027]而且,本實(shí)施例可以在云環(huán)境中執(zhí)行上述功能,在所述云環(huán)境中,任何IP可尋址設(shè)備可以作為能隨時(shí)改變物理或虛擬位置的客戶端和服務(wù)器服務(wù)提供商(例如,包括通過本實(shí)施例的分布式處理接口正在動態(tài)地向DNS服務(wù)登記處注冊其本身的移動設(shè)備或應(yīng)用)兩者參與。采用允許實(shí)現(xiàn)在對應(yīng)用之間的響應(yīng)請求阻塞之外的異步Web處理的附加模型的執(zhí)行模型。
[0028]本實(shí)施例可以作為應(yīng)用與操作系統(tǒng)(和/或網(wǎng)絡(luò))之間的中介物以應(yīng)用對進(jìn)程執(zhí)行的指令符控制、跟蹤、報(bào)告以及優(yōu)化通信和任何數(shù)目的附加方面(例如,包括對應(yīng)用之間的相互依賴的完全且準(zhǔn)確的依賴洞察力報(bào)告的利用、安全憑證、優(yōu)化的路由、服務(wù)質(zhì)量等)。進(jìn)一步地,本實(shí)施例將應(yīng)用功能與網(wǎng)絡(luò)能力集成在一起而不干擾應(yīng)用其本身(例如,包括在不要求應(yīng)用內(nèi)的API接口的情況下促使網(wǎng)絡(luò)設(shè)備中的硬件能力改變的能力)。例如,當(dāng)通過分布式處理接口在應(yīng)用之間輸送數(shù)據(jù)時(shí),可以為應(yīng)用透明地采用加密或壓縮協(xié)處理器。
[0029]此外,本實(shí)施例可以保護(hù)結(jié)合了對應(yīng)用上下文可用的特征的限制的執(zhí)行上下文,從而降低移動代碼的風(fēng)險(xiǎn)。而且,用任何編程技術(shù)編寫的任何應(yīng)用可以簡單地通過在分布式處理接口內(nèi)執(zhí)行來繼承本實(shí)施例的外殼的分布式處理能力。關(guān)于客戶端與消費(fèi)的服務(wù)之間的使用模式的準(zhǔn)確的業(yè)務(wù)智能通過捕獲在DNS登記處以及客戶端和服務(wù)器的兩個(gè)端點(diǎn)處的依賴性來生成,而無需典型地加密URL或者干擾應(yīng)用。新的應(yīng)用模式被建立以用于動態(tài)地集合或者分發(fā)應(yīng)用以便基于一套陳述性、程序性或動態(tài)地確定的準(zhǔn)則來執(zhí)行任務(wù)。
[0030]本實(shí)施例組合了各種特征以提供包括基于DNS的技術(shù)無關(guān)的服務(wù)登記處和位置代理的上述能力(例如,用于全局聯(lián)盟、定標(biāo)、冗余、彈性等的能力)、用來管理其中應(yīng)用被執(zhí)行的網(wǎng)絡(luò)使能接口的遠(yuǎn)程執(zhí)行守護(hù)程序、用作應(yīng)用與操作系統(tǒng)、網(wǎng)絡(luò)以及彼此之間的執(zhí)行環(huán)境中介物的網(wǎng)絡(luò)使能接口進(jìn)程、以及應(yīng)用透明地繼承的疊加到網(wǎng)絡(luò)使能接口上的增值服務(wù)(例如,加密、壓縮、依賴跟蹤、服務(wù)質(zhì)量(QoS)、服務(wù)定位、服務(wù)注冊等)。
[0031]本實(shí)施例可以由包括操作系統(tǒng)、軟件可執(zhí)行文件或庫(例如,提供分布式處理控制器、應(yīng)用、進(jìn)程管理器等)、配置文件的各種組件來實(shí)現(xiàn)。域名服務(wù)(DNS)、一個(gè)或多個(gè)計(jì)算設(shè)備、以太網(wǎng)網(wǎng)絡(luò)(例如,典型地包括訪問和服務(wù)交換機(jī)、電纜或無線連通性以及網(wǎng)絡(luò)操作系統(tǒng))以及一個(gè)或多個(gè)存儲設(shè)備能夠借助于與計(jì)算設(shè)備和操作系統(tǒng)的交互來存儲并且訪問上述軟件。本實(shí)施例的分布式處理接口一般地響應(yīng)應(yīng)用的調(diào)用事件。
[0032]用于本實(shí)施例的示例拓?fù)湓趫D1中被圖示。具體地,拓?fù)?00包括域名服務(wù)(DNS)服務(wù)器系統(tǒng)105和一個(gè)或多個(gè)主機(jī)系統(tǒng)114。DNS系統(tǒng)105處理查詢以提供與應(yīng)用相關(guān)聯(lián)的位置信息(例如,IP或其它網(wǎng)絡(luò)地址、位置等)。DNS系統(tǒng)105和主機(jī)系統(tǒng)114可以彼此遠(yuǎn)離并且通過網(wǎng)絡(luò)112進(jìn)行通信。網(wǎng)絡(luò)優(yōu)選地是典型地包括訪問和服務(wù)交換機(jī)、電纜或無線連通性以及網(wǎng)絡(luò)操作系統(tǒng)的以太網(wǎng)網(wǎng)絡(luò)。然而,網(wǎng)絡(luò)可以由任何數(shù)目的任何適合的通信介質(zhì)(例如,廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、因特網(wǎng)、內(nèi)部網(wǎng)、以太網(wǎng)等)來實(shí)現(xiàn)。可替代地,DNS系統(tǒng)105和主機(jī)系統(tǒng)114對于彼此而言可以是本地的,并且經(jīng)由任何適當(dāng)?shù)谋镜赝ㄐ沤橘|(zhì)(例如,局域網(wǎng)(LAN)、硬連線、無線鏈路、內(nèi)部網(wǎng)等)進(jìn)行通信。
[0033]主機(jī)系統(tǒng)114可以包括一個(gè)或多個(gè)應(yīng)用,并且使得能夠從如在下面所描述的分布式處理接口在主機(jī)系統(tǒng)114中的一個(gè)或多個(gè)上執(zhí)行本地和遠(yuǎn)程應(yīng)用。主機(jī)系統(tǒng)114包括用來便于跨越如在下面所描述的主機(jī)系統(tǒng)分布的應(yīng)用的執(zhí)行的各種模塊。主機(jī)系統(tǒng)114可以呈現(xiàn)圖形用戶接口(例如,GU1、桌面等)或其它用戶接口(例如,命令行提示符、菜單畫面等)以請求用于執(zhí)行期望動作(例如,調(diào)用本地或遠(yuǎn)程應(yīng)用等)的信息或命令。
[0034]主機(jī)系統(tǒng)114可以由優(yōu)選地裝配有顯示器或監(jiān)視器、基部(例如,包括處理器270(圖2)、內(nèi)存280和/或內(nèi)部或外部通信設(shè)備或網(wǎng)絡(luò)接口 260(例如,調(diào)制解調(diào)器、網(wǎng)卡等))、可選的輸入設(shè)備(例如,鍵盤、鼠標(biāo)或其它輸入設(shè)備)以及任何商業(yè)上可用的和/或定制的軟件(例如,通信軟件、分布式處理控制器以及進(jìn)程管理器模塊等)的任何常規(guī)或其它計(jì)算機(jī)系統(tǒng)來實(shí)現(xiàn)??商娲兀鳈C(jī)系統(tǒng)114可以進(jìn)一步由任何類型的計(jì)算機(jī)或處理設(shè)備(例如,膝上型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、移動/蜂窩電話設(shè)備、移動設(shè)備(例如,板或平板)等)來實(shí)現(xiàn)。進(jìn)一步地,DNS系統(tǒng)105可以由優(yōu)選地裝配有顯示器或監(jiān)視器、基部(例如,包括處理器、內(nèi)存和/或內(nèi)部或外部通信設(shè)備或網(wǎng)絡(luò)接口(例如,調(diào)制解調(diào)器、網(wǎng)卡等))、可選的輸入設(shè)備(例如,鍵盤、鼠標(biāo)或其它輸入設(shè)備)以及任何商業(yè)上可用的和/或定制的軟件(例如,通信軟件、DNS軟件等)的任何常規(guī)或其它計(jì)算機(jī)系統(tǒng)來實(shí)現(xiàn)。
[0035]主機(jī)系統(tǒng)114包括用來執(zhí)行跨越如圖2中所圖示的主機(jī)系統(tǒng)分布的應(yīng)用的各種模塊。具體地,主機(jī)系統(tǒng)114包括操作系統(tǒng)205、分布式處理控制器模塊210、進(jìn)程管理器模塊220以及DNS解析模塊232。操作系統(tǒng)205可以由任何常規(guī)或其它操作系統(tǒng)來實(shí)現(xiàn),其中主機(jī)系統(tǒng)114可以各自包括相同的或不同的操作系統(tǒng)。分布式處理控制器模塊210 (例如,經(jīng)由主機(jī)系統(tǒng)114)為外殼提供用戶接口。分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)進(jìn)一步解析命令或指令(例如,來自外殼或代碼的命令或指令),促進(jìn)服務(wù)位置在主機(jī)系統(tǒng)114之中找到在命令或指令內(nèi)指定的應(yīng)用,并且像在下面所描述的那樣在所指定的應(yīng)用之間用輸送或者引導(dǎo)數(shù)據(jù)。
[0036]進(jìn)一步地,分布式處理控制器模塊可以與選擇性地利用來執(zhí)行外部化的服務(wù)的許多可插拔的服務(wù)模塊相關(guān)聯(lián)。分布式處理控制器模塊通過一系列這些可插拔服務(wù)模塊來傳遞請求以便在用于和/或來自應(yīng)用的數(shù)據(jù)上執(zhí)行各種服務(wù)??梢葬槍?shù)據(jù)的操作依次放置任何數(shù)量的服務(wù)模塊。每個(gè)可插拔服務(wù)模塊可以在不干擾應(yīng)用的情況下使用外部環(huán)境變量、命令行自變量或?qū)傩晕募砼渲谩?br>
[0037]可插拔模塊可以包括:提供依靠外部服務(wù)來基于可用容量確定優(yōu)化策略的工作負(fù)載管理策略的策略管理器230 ;以及用來動態(tài)地向DNS系統(tǒng)105注冊主機(jī)系統(tǒng)114上的應(yīng)用的DNS注冊模塊234。此外,各種可插拔模塊可以與標(biāo)準(zhǔn)輸入(stdin236 )、輸出(stdout238 )以及錯(cuò)誤流(stderr,未示出)相關(guān)聯(lián)以使得服務(wù)能夠被應(yīng)用于用于和/或來自應(yīng)用的數(shù)據(jù)。這些各種可插拔模塊可以包括:用來提供關(guān)于主機(jī)系統(tǒng)或應(yīng)用操作的統(tǒng)計(jì)(針對標(biāo)準(zhǔn)輸入236和輸出238)的統(tǒng)計(jì)模塊240 ;用來對傳出數(shù)據(jù)(針對標(biāo)準(zhǔn)輸出238)進(jìn)行編碼的編碼模塊243 ;用于對編碼的傳入數(shù)據(jù)(來自標(biāo)準(zhǔn)輸入236)進(jìn)行解碼的解碼模塊242 ;用來壓縮傳出數(shù)據(jù)(針對標(biāo)準(zhǔn)輸出238)的壓縮模塊245 ;用來對壓縮的傳入數(shù)據(jù)(來自標(biāo)準(zhǔn)輸入236)進(jìn)行解壓縮的解壓縮模塊244 ;用來加密傳出數(shù)據(jù)(針對標(biāo)準(zhǔn)輸出236)的加密模塊247 ;用來對傳入加密的數(shù)據(jù)(來自標(biāo)準(zhǔn)輸入236)進(jìn)行解密的解密模塊246 ;用來使處理負(fù)載(針對標(biāo)準(zhǔn)輸入236和輸出238)平衡的負(fù)載平衡模塊248 ;用來響應(yīng)于故障執(zhí)行動作(針對標(biāo)準(zhǔn)輸入236和輸出238)的故障轉(zhuǎn)移模塊250 ;以及用來適應(yīng)文件轉(zhuǎn)移(例如,應(yīng)用或其它數(shù)據(jù)的遷移)(針對標(biāo)準(zhǔn)輸入236和輸出238)的文件轉(zhuǎn)移模塊252。用于應(yīng)用的數(shù)據(jù)可以通過將數(shù)據(jù)從一個(gè)應(yīng)用的標(biāo)準(zhǔn)輸出238 (例如,經(jīng)由傳送模塊256)導(dǎo)向另一應(yīng)用的標(biāo)準(zhǔn)輸入236(例如,經(jīng)由接收模塊254)來輸送。
[0038]這些服務(wù)可以由主機(jī)系統(tǒng)114來執(zhí)行,或者被卸載到外部處理器并且由外部處理器來執(zhí)行。特別地,每個(gè)可插拔服務(wù)模塊可以作為將功能委派給外部資源(例如,主機(jī)系統(tǒng)、網(wǎng)絡(luò)設(shè)備或服務(wù)等)的接口。例如,服務(wù)模塊可以與網(wǎng)絡(luò)設(shè)備或協(xié)處理器卡進(jìn)行通信以執(zhí)行任務(wù)(例如,加密、負(fù)載平衡等)。
[0039]DNS解析模塊232提供對服務(wù)位置的幫助,并且與DNS系105進(jìn)行通信以便為應(yīng)用提供位置信息(例如,IP或其它地址、位置等)。進(jìn)程管理器模塊220優(yōu)選地具有守護(hù)程序的形式,并且處理(例如,經(jīng)由主機(jī)系統(tǒng)114)包括從其它主機(jī)系統(tǒng)114執(zhí)行應(yīng)用的請求以及執(zhí)行主機(jī)系統(tǒng)的掃描以動態(tài)地注冊在主機(jī)系統(tǒng)上發(fā)現(xiàn)的應(yīng)用的各種任務(wù)。進(jìn)程管理器模塊接收針對應(yīng)用執(zhí)行的請求,并且發(fā)起(或者分叉出)進(jìn)程以用于分布式處理控制器模塊執(zhí)行(例如,經(jīng)由主機(jī)系統(tǒng)114)應(yīng)用執(zhí)行的執(zhí)行。主機(jī)系統(tǒng)114可以進(jìn)一步將為如在下面所描述的服務(wù)位置(例如,搜索路徑等)提供參數(shù)的配置文件215以及供由主機(jī)系統(tǒng)本地或遠(yuǎn)程執(zhí)行的一個(gè)或多個(gè)應(yīng)用225包括在內(nèi)存280內(nèi)。
[0040]各種模塊(例如,分布式處理控制器模塊、進(jìn)程管理器模塊、DNS解析模塊、可插拔服務(wù)模塊等)可以通過任何數(shù)量的軟件和/或硬件模塊或單元的任何組合來實(shí)現(xiàn),并且可以駐留在主機(jī)系統(tǒng)的內(nèi)存280內(nèi)以供由處理器270執(zhí)行。
[0041]根據(jù)本實(shí)施例執(zhí)行跨越主機(jī)系統(tǒng)114分布的應(yīng)用的方式在圖3中被圖示。首先,本實(shí)施例的分布式處理接口使得應(yīng)用執(zhí)行能夠無關(guān)于應(yīng)用在特定操作系統(tǒng)或計(jì)算機(jī)設(shè)備(例如,主機(jī)系統(tǒng)114)上的位置。應(yīng)用執(zhí)行透明地發(fā)生,而無論應(yīng)用對于調(diào)用而言是本地的還是遠(yuǎn)程的,從而創(chuàng)建提供優(yōu)化或服務(wù)的機(jī)會。特別地,在步驟300處應(yīng)用被調(diào)用。這可以通過代碼(例如,程序、腳本、宏等)內(nèi)的命令來實(shí)現(xiàn),或者鍵入到本實(shí)施例的外殼中,從而引導(dǎo)一個(gè)或多個(gè)指定的應(yīng)用的執(zhí)行。
[0042]一旦命令被接收到,在步驟302處由分布式處理控制器模塊210 (例如,經(jīng)由主機(jī)系統(tǒng)114)對提供搜索路徑或換句話說用于定位在所接收到的命令內(nèi)指定的應(yīng)用的指令符的配置文件215內(nèi)的條目(例如,PATH命令或其它條目)進(jìn)行分析。搜索路徑的這種使用使得能實(shí)現(xiàn)對于本地和遠(yuǎn)程應(yīng)用的執(zhí)行的透明性。應(yīng)用的位置在搜索路徑中的解析將用于應(yīng)用的可執(zhí)行文件的目錄的優(yōu)先順序搜索與遠(yuǎn)程網(wǎng)絡(luò)命名服務(wù)組合以使得該應(yīng)用能夠被以與要么應(yīng)用存在于調(diào)用操作系統(tǒng)的已安裝文件系統(tǒng)本地要么存在于計(jì)算機(jī)網(wǎng)絡(luò)上的遠(yuǎn)程資源上無關(guān)的一種方式定位。網(wǎng)絡(luò)命名和位置服務(wù)到搜索路徑(例如,PATH或其它條目)的這種集成可以被應(yīng)用于能夠返回可尋址位置的任何類型的網(wǎng)絡(luò)命名服務(wù),遠(yuǎn)程執(zhí)行能夠從所述可尋址位置發(fā)起并由與遠(yuǎn)程資源協(xié)調(diào)的分布式處理控制器模塊完成。
[0043]全解析的路徑條目包括以所期望的優(yōu)先級順序來組合本地和/或遠(yuǎn)程引用的結(jié)構(gòu),并且分布式處理控制器模塊取決于所配置的策略解析并且執(zhí)行在任意位置或全部位置中的應(yīng)用。用于搜索路徑的示例條目可以包括下列內(nèi)容:
[0044]PATH=[本地弓丨用];[遠(yuǎn)程弓丨用],
[0045]其中遠(yuǎn)程引用可以是用于指示遠(yuǎn)程服務(wù)的位置(例如,URL、HOP全局標(biāo)識符、RMI引用、DNS名稱等)的任何適合的慣例。進(jìn)一步地,條目(例如,PATH或其它條目)的任何部分可以支持替換。在這種情況下,路徑條目的各部分可以是對如在以下示例條目中所示出的配置信息(例如,環(huán)境變量、尋找資源(例如,URL或配置文件等)的來源的內(nèi)聯(lián)腳本)的其它源的抽象引用。
[0046]PATH=[本地弓丨用];$REMOTE_REFERENCES
[0047]PATH=[本地引用];' get_remote_references'
[0048]PATH=[本地引用]http://[host, domain]/remote_references'
[0049]PATH=[本地引用];' file:///remote_references'。
[0050]對搜索路徑中的應(yīng)用的可執(zhí)行文件的位置的解析可以使用域名服務(wù)名稱的前綴來識別在順序優(yōu)先的搜索路徑中正被調(diào)用的應(yīng)用。這使得應(yīng)用能夠被解析成不高于開放系統(tǒng)互連(OSI)模型的第3層(例如,網(wǎng)絡(luò)層)的水平的目標(biāo)。將應(yīng)用解析為不高于開放系統(tǒng)互連(OSI)模型中的第3層(例如,網(wǎng)絡(luò)層)的一個(gè)或多個(gè)IP地址的優(yōu)點(diǎn)包括目標(biāo)執(zhí)行主機(jī)系統(tǒng)被解析為一個(gè)或多個(gè)全局位置而無需代理或重弓I導(dǎo)。這對于在目標(biāo)主機(jī)處沒有復(fù)雜性的全局負(fù)載平衡和故障轉(zhuǎn)移來說是有用的,而且對于定位可能頻繁地改變位置的有狀態(tài)的應(yīng)用而言也是有用的。
[0051]集成搜索路徑中的應(yīng)用通過可被分布式處理控制器模塊作為執(zhí)行目標(biāo)主機(jī)系統(tǒng)得到以滿足調(diào)用的域名服務(wù)(DNS)解析為一個(gè)或多個(gè)互聯(lián)網(wǎng)協(xié)議(IP)地址。集成搜索路徑中的遠(yuǎn)程DNS引用可以具有完全地解析(“應(yīng)用.主機(jī).域”)引用的數(shù)個(gè)配置。用于完全限定引用的示例包括下列內(nèi)容:
[0052]PATH=[本地弓I用];[應(yīng)用.主機(jī).域]。
[0053]用于應(yīng)用的可執(zhí)行文件名稱的隱式替換的示例包括下列內(nèi)容:
[0054]PATH=[本地引用];[$應(yīng)用可執(zhí)行文件名稱][主機(jī).域]。
[0055]分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)識別在搜索路徑內(nèi)的本地目錄或路徑。如果在步驟304處確定一樣識別出本地目錄,則在步驟308處對所識別的本地目錄進(jìn)行搜索以得到所指定的應(yīng)用。如果應(yīng)用在所識別的本地目錄內(nèi)未被找到,則在步驟302處獲取下一個(gè)搜索路徑條目并且響應(yīng)于在步驟324處確定出存在附加的搜索路徑像上面所描述的那樣對下一個(gè)搜索條目進(jìn)行分析。當(dāng)沒有附加的搜索路徑條目存在時(shí),在步驟300處響應(yīng)于在步驟316處確定出存在附加的應(yīng)用而調(diào)用下一個(gè)應(yīng)用。
[0056]當(dāng)在步驟308處確定出在所識別的本地目錄內(nèi)找到應(yīng)用時(shí),分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)確定待執(zhí)行的指定服務(wù)的存在。服務(wù)可以由在所接收到的命令內(nèi)的指令符來指定,并且在執(zhí)行應(yīng)用之前和/或之后執(zhí)行。應(yīng)用的解析和執(zhí)行使得服務(wù)(例如,可選的優(yōu)化或強(qiáng)制執(zhí)行)能夠被應(yīng)用于每個(gè)應(yīng)用的輸入和輸出的攔截?cái)?shù)據(jù)流,并且總體上應(yīng)用于集成組合。這些服務(wù)可以使用可插拔服務(wù)模塊(例如,軟件模塊或軟件庫)或?qū)θ缟厦嫠枋龅耐獠糠?wù)的接口慣例來實(shí)現(xiàn)。服務(wù)可以包括加密、壓縮、編碼(例如,XML)、服務(wù)質(zhì)量(QoS)、事務(wù)控制、統(tǒng)計(jì)、日志、調(diào)試/追蹤、負(fù)載平衡、故障轉(zhuǎn)移、文件轉(zhuǎn)移、動態(tài)DNS注冊以及策略強(qiáng)制執(zhí)行實(shí)施。
[0057]例如,可插拔服務(wù)模塊(例如,文件轉(zhuǎn)移模塊252 (圖2))可以被用來將應(yīng)用文件和數(shù)據(jù)轉(zhuǎn)移和/或拷貝到提供對將應(yīng)用功能作為操作的調(diào)用序列的一部分在網(wǎng)絡(luò)內(nèi)動態(tài)地放置在任何設(shè)備上具有最佳能力的位置(例如,主機(jī)或其它處理系統(tǒng))。進(jìn)一步地,可插拔服務(wù)模塊(例如,DSN注冊模塊234 (圖2))可以被用來通過掃描調(diào)用主機(jī)系統(tǒng)的操作系統(tǒng)上的本地目錄將應(yīng)用注冊和/或重新注冊在域名服務(wù)(DNS)中,或者在成功的應(yīng)用轉(zhuǎn)移結(jié)束處作為動作序列的一部分將轉(zhuǎn)移的/拷貝的應(yīng)用文件的位置重新注冊到它們新的位置處。動態(tài)注冊或重新注冊包括無論在參與的應(yīng)用(例如,應(yīng)用的可執(zhí)行文件)最初駐留時(shí)、或者作為動態(tài)調(diào)用或部署的結(jié)果動態(tài)地移動時(shí)均對其進(jìn)行自動的和程序性的重新注冊。例如,每個(gè)主機(jī)系統(tǒng)114上的進(jìn)程管理器模塊或守護(hù)程序(例如,經(jīng)由DNS注冊模塊234)對在定義的一組目錄內(nèi)的應(yīng)用的可執(zhí)行文件集、或作為它們的處理指令符的結(jié)果到達(dá)主機(jī)系統(tǒng)的應(yīng)用的任何傳入的可執(zhí)行文件進(jìn)行注冊或者重新注冊。這使得攜帶代理狀態(tài)的“代理”可執(zhí)行文件能夠隨著代理可執(zhí)行文件從系統(tǒng)移動到執(zhí)行工作的系統(tǒng)而被動態(tài)地找到。
[0058]此外,可插拔服務(wù)模塊(例如,策略管理器模塊230 (圖2))可以提供策略引擎以基于指示調(diào)用何時(shí)將發(fā)生調(diào)用和/或調(diào)用將發(fā)生的方式以及將被應(yīng)用的服務(wù)的規(guī)則來支配調(diào)用和/或服務(wù)。
[0059]因此,分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)生成用于可插服務(wù)模塊在步驟310處在應(yīng)用的執(zhí)行之前執(zhí)行所對應(yīng)的指定服務(wù)的請求。子進(jìn)程被發(fā)起,并且在步驟312處本地應(yīng)用被隨后執(zhí)行。在步驟314處在應(yīng)用的執(zhí)行之后請求的任何服務(wù)被執(zhí)行。
[0060]如果在步驟304處確定未識別出本地目錄,則分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)在搜索路徑內(nèi)識別在命令中指定的應(yīng)用的對應(yīng)DNS名稱。換句話說,分布式處理控制器試圖為識別應(yīng)用的遠(yuǎn)程位置。當(dāng)在步驟306處確定未識別到對應(yīng)的DNS名稱時(shí),則在步驟308處由主機(jī)系統(tǒng)提供無效條目路徑通知(因?yàn)樵搼?yīng)用作為本地的或遠(yuǎn)程的均未被識別出)。在步驟302處獲取下一個(gè)搜索路徑條目并且如上面所描述的由分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)響應(yīng)于在步驟324處確定出存在附加的搜索路徑條目而對下一個(gè)搜索路徑條目進(jìn)行分析。當(dāng)沒有附加的搜索路徑條目存在時(shí),響應(yīng)于在步驟316處確定出存在附加的應(yīng)用而在步驟300處調(diào)用下一個(gè)應(yīng)用。
[0061]如果在步驟306處確定出識別到對應(yīng)的DNS名稱,則在步驟307處分布式處理控制器模塊采用DNS解析模塊232 (例如,經(jīng)由主機(jī)系統(tǒng)114)來生成對DNS系統(tǒng)105的請求,請求其為DNS名稱提供指示包含應(yīng)用的遠(yuǎn)程主機(jī)系統(tǒng)的位置的地址或其它位置信息。DNS系統(tǒng)處理請求并且提供對請求的響應(yīng)。位置信息在響應(yīng)內(nèi)的存在指示所指定的應(yīng)用可以被找到。
[0062]當(dāng)在步驟308確定出應(yīng)用被找到時(shí),分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)確定待執(zhí)彳丁的指定服務(wù)的存在。服務(wù)可以由在所接收到的命令內(nèi)的指令符來指定,并且在應(yīng)用的執(zhí)行之前和/或之后執(zhí)行。在步驟310處分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)生成請求可插拔服務(wù)模塊在應(yīng)用的執(zhí)行之前執(zhí)行所對應(yīng)的指定服務(wù)的請求。用來執(zhí)行所指定的應(yīng)用的請求由分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)來生成并且基于位置信息被傳送到包含該應(yīng)用的遠(yuǎn)程主機(jī)系統(tǒng)。在步驟312處遠(yuǎn)程主機(jī)系統(tǒng)的進(jìn)程管理器模塊220處理執(zhí)行所指定的應(yīng)用的請求。具體地,該請求包括所期望的應(yīng)用的標(biāo)識(例如,名稱等)。遠(yuǎn)程主機(jī)系統(tǒng)的進(jìn)程管理器模塊發(fā)起(或者分叉出)遠(yuǎn)程分布式處理控制器模塊(例如,經(jīng)由遠(yuǎn)程主機(jī)系統(tǒng)114)確定應(yīng)用的位置并且執(zhí)行該應(yīng)用的進(jìn)程。應(yīng)用被以用于執(zhí)行本地應(yīng)用的上面所描述的基本上相同的方式執(zhí)行,其中搜索路徑條目被分析以確定應(yīng)用的位置,并且進(jìn)程被發(fā)起以在遠(yuǎn)程主機(jī)系統(tǒng)上本地執(zhí)行該應(yīng)用。從應(yīng)用執(zhí)行的結(jié)果得到的數(shù)據(jù)被發(fā)送到調(diào)用該應(yīng)用的主機(jī)系統(tǒng),并且在應(yīng)用的執(zhí)行之后請求的任何服務(wù)在步驟314處被執(zhí)行??商娲?,遠(yuǎn)程主機(jī)系統(tǒng)可以被通知并且執(zhí)行所請求的服務(wù),并且將得到的數(shù)據(jù)回傳到調(diào)用該應(yīng)用的主機(jī)系統(tǒng)。
[0063]一旦應(yīng)用被執(zhí)行(在本地或遠(yuǎn)程)并且請求的服務(wù)被執(zhí)行,則在步驟316處由分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114)確定附加的應(yīng)用的存在。上面所描述的應(yīng)用(例如,經(jīng)由PATH或其它條目)的解析和執(zhí)行使得輸送的應(yīng)用的輸入、輸出以及錯(cuò)誤流能夠被透明地應(yīng)用于應(yīng)用的本地和遠(yuǎn)程執(zhí)行的組合。這使得作為分布式或改變位置的應(yīng)用的能力能夠被迅速地且動態(tài)地組合。可以在命令中指定用于初始(本地或遠(yuǎn)程)應(yīng)用的輸入(例如,文件、文字等)(標(biāo)準(zhǔn)輸入),然而將來自最后(本地或遠(yuǎn)程)的標(biāo)準(zhǔn)輸出和錯(cuò)誤返回到分布式處理接口(例如,以用于顯示等)。因此,如果存在附加的應(yīng)用并且在步驟320確定出將在應(yīng)用之間輸送數(shù)據(jù),則來自應(yīng)用執(zhí)行的結(jié)果得到的數(shù)據(jù)在步驟322處被用于下一個(gè)應(yīng)用的執(zhí)行,并且下一個(gè)應(yīng)用像上面所描述的那樣在步驟300處被調(diào)用。上述過程被重復(fù)直到在步驟316處確定每個(gè)應(yīng)用都已被處理。
[0064]本實(shí)施例執(zhí)行在遠(yuǎn)程主機(jī)系統(tǒng)上包含的應(yīng)用的操作通過示例的方式在圖4中被圖示。首先,主機(jī)系統(tǒng)114a、114b每個(gè)都基本上與上面所描述的主機(jī)系統(tǒng)114類似,同時(shí)DNS系統(tǒng)105基本上與上面所描述的DNS系統(tǒng)類似。主機(jī)系統(tǒng)114a、114b可以包括相同或不同的操作系統(tǒng)205,然而主機(jī)系統(tǒng)114a、114b和DNS系統(tǒng)105優(yōu)選地通過網(wǎng)絡(luò)(未在圖4中示出)互連。主機(jī)系統(tǒng)114a可以提供本實(shí)施例的外殼,并且響應(yīng)于命令來調(diào)用應(yīng)用。DNS系統(tǒng)105執(zhí)行名稱解析,而主機(jī)系統(tǒng)114b包含并且執(zhí)行該應(yīng)用。
[0065]特別地,調(diào)用事件在主機(jī)系統(tǒng)114a上發(fā)生(例如,用戶鍵入的命令、來自程序的指令或命令等)。通過示例的方式,以下路徑條目可以駐留在主機(jī)系統(tǒng)114a的配置文件215(圖2)中:
[0066]path=/usr/bin;myapp.mydomain.com,
[0067]同時(shí)可以在外殼提示符處鍵入以下命令:
[0068]nsh>echo “input” myapp
[0069]nsh>output.[0070]所鍵入的命令通過可執(zhí)行文件(例如,“myapp”)的對應(yīng)名稱來促進(jìn)應(yīng)用的執(zhí)行,并且由分布式處理控制器模塊210 (例如,經(jīng)由主機(jī)系統(tǒng)114a)來處理。分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)定位并且執(zhí)行應(yīng)用“myapp”,同時(shí)傳遞來自調(diào)用事件的輸入數(shù)據(jù)(例如,“輸入”)并且返回輸出響應(yīng)(“輸出”)。分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)從包括路徑位置的配置文件215 (圖2)探知信息以搜索應(yīng)用。分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)以由配置文件中的結(jié)構(gòu)所確定的優(yōu)先級次序(例如,典型地在位置的序列中隱式的,可選地由單獨(dú)的數(shù)據(jù)值以優(yōu)先級指定的等)來搜索由配置文件所指定的路徑位置。示例路徑可以包括/bin;/usr/bin;myapp.mydomain.com。
[0071]當(dāng)路徑位置不使用限定的DNS名稱(例如,“/usr/bin”)時(shí),分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)針對應(yīng)用來搜索主機(jī)系統(tǒng)114a的操作系統(tǒng)的或安裝到主機(jī)系統(tǒng)114a的操作系統(tǒng)的存儲設(shè)備的本地目錄結(jié)構(gòu)。如果用于應(yīng)用(“myapp”)的可執(zhí)行文件依照路徑(例如,“/usr/bin/myapp”)在存儲設(shè)備的目錄結(jié)構(gòu)中被找到,則在本地操作系統(tǒng)上產(chǎn)生子進(jìn)程來執(zhí)行該應(yīng)用。在這種情況下,輸入數(shù)據(jù)(例如,“輸入”)被供應(yīng)給子進(jìn)程(或應(yīng)用)的標(biāo)準(zhǔn)輸入(例如,stdin)。響應(yīng)被從子進(jìn)程提供給分布式處理控制器模塊。
[0072]相對于圖4的示例,分布式處理控制器模塊在以配置文件中的優(yōu)先級次序通過路徑條目針對應(yīng)用(例如,“myapp”)的搜索期間會遇到限定的DNS名稱(例如yapp,mydomain.com”),并且由已配置DNS服務(wù)或DNS系統(tǒng)105在流程400處執(zhí)行DNS查找。DNS系統(tǒng)105提供使所限定的名稱(例如,“myapp.mydomain.com”)與分配給主機(jī)系統(tǒng)114b上的操作系統(tǒng)的互聯(lián)網(wǎng)協(xié)議(IP)地址相關(guān)聯(lián)的域名服務(wù)(DNS)。在流程402處與所限定的名稱相對應(yīng)的IP地址被返回。在流程404處分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)基于返回的IP地址將請求和輸入數(shù)據(jù)(例如,“輸入”)發(fā)送到主機(jī)系統(tǒng)114b。主機(jī)系統(tǒng)114b的進(jìn)程管理器模塊220 (圖2)接收并且處理該請求(例如,包括用于所期望的應(yīng)用的標(biāo)識符(例如,名稱等)),并且發(fā)起(或者分叉出)遠(yuǎn)程分布式處理控制器模塊(例如,經(jīng)由遠(yuǎn)程主機(jī)系統(tǒng)114b)確定應(yīng)用的位置并且執(zhí)行該應(yīng)用的進(jìn)程。應(yīng)用被以用于執(zhí)行本地應(yīng)用的上面所描述的基本上相同的方式執(zhí)行,其中搜索路徑條目被分析以確定應(yīng)用的位置,并且進(jìn)程被發(fā)起以在主機(jī)系統(tǒng)114b上在本地執(zhí)行該應(yīng)用。在這種情況下,從主機(jī)系統(tǒng)114a接收以執(zhí)行應(yīng)用(“myapp”)的輸入數(shù)據(jù)(例如,“輸入”)被供應(yīng)給進(jìn)程(或應(yīng)用)的標(biāo)準(zhǔn)輸入(例如,stdin)。在流程406處來自應(yīng)用包括輸出和錯(cuò)誤信息(例如,stdout和stderr)的響應(yīng)被從主機(jī)系統(tǒng)114b提供給主機(jī)系統(tǒng)114a。
[0073]本實(shí)施例在數(shù)據(jù)在應(yīng)用之間輸送的情況下執(zhí)行跨越主機(jī)系統(tǒng)分布的應(yīng)用的操作通過示例的方式在圖5中被圖示。首先,主機(jī)系統(tǒng)114a、114b、114c以及114d每個(gè)都基本上與上面所描述的主機(jī)系統(tǒng)114類似,同時(shí)DNS系統(tǒng)105基本上與上面所描述的DNS系統(tǒng)類似。主機(jī)系統(tǒng)114a、114b、114c以及114d可以包括相同或不同的操作系統(tǒng)205(圖2),而主機(jī)系統(tǒng)114a、114b、114c、114d和DNS系統(tǒng)105優(yōu)選地通過網(wǎng)絡(luò)(未在圖5中示出)互連。主機(jī)系統(tǒng)114a可以包括本實(shí)施例的外殼,并且響應(yīng)于命令來調(diào)用一個(gè)或多個(gè)應(yīng)用。DNS系統(tǒng)105執(zhí)行名稱解析,而主機(jī)系統(tǒng)114b、114c、114d每個(gè)都包含并且執(zhí)行對應(yīng)的應(yīng)用(例如,像圖5中所看到的那樣,主機(jī)系統(tǒng)114b包含appA,主機(jī)系統(tǒng)114c包含appB,以及主機(jī)系統(tǒng)114d 包含 appC)。
[0074]特別地,調(diào)用事件在主機(jī)系統(tǒng)114a上發(fā)生(例如,用戶鍵入的命令、來自程序的指令或命令等)。通過示例的方式,以下路徑條目可以駐留在主機(jī)系統(tǒng)114a的配置文件215(圖2)中:
[0075]path=/bin;/usr/bin;appA.mydomainA.com,
[0076]path=/bin;/usr/bin;appB.mydomainB.com,
[0077]path=/bin;/usr/bin;appC.mydomainC.com,
[0078]同時(shí)可以在外殼提示符處鍵入以下命令:
[0079]nsh>appA|ap pB|appC
[0080]nsh>Hello ABC.[0081]所鍵入的命令通過可執(zhí)行文件(例如,“appA”、“appB”以及“appC”)的對應(yīng)名稱來促進(jìn)應(yīng)用的執(zhí)行,并且由分布式處理控制器模塊210 (例如,經(jīng)由主機(jī)系統(tǒng)114a)來處理。命令進(jìn)一步指示(例如,經(jīng)由“ I ”符號)在應(yīng)用之間輸送輸入和輸出。分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)定位并且執(zhí)行應(yīng)用“appA”、“appB”以及“appC”,同時(shí)將輸入數(shù)據(jù)從調(diào)用事件傳遞到初始應(yīng)用(“appA”),并且在應(yīng)用之間傳遞由應(yīng)用執(zhí)行所生成的標(biāo)準(zhǔn)輸入(stdin)、輸出(stdout)以及錯(cuò)誤(stderr)數(shù)據(jù)。一旦應(yīng)用已被執(zhí)行了,最后的輸出響應(yīng)(例如,“ABC”)就被提供。
[0082]分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)從包括路徑位置的配置文件215 (圖2)探知信息以搜索初始應(yīng)用(例如,“appA”)。分布式處理控制器模塊以由配置文件中的結(jié)構(gòu)所確定的優(yōu)先級次序(例如,典型地在位置的序列中隱式的,可選地由單獨(dú)的數(shù)據(jù)值以優(yōu)先級指定的等)進(jìn)一步搜索(例如,經(jīng)由主機(jī)系統(tǒng)114a)由配置文件所指定的路徑位置。不例路徑可以包括 /bin; /usr/bin; appA.mydomainA.com, /bin; /usr/bin; appB.mydomainB.com 和 bin;/usr/bin;appC.mydomainC.com。
[0083]當(dāng)路徑位置未使用限定的DNS名稱(例如,“/bin”、“/usr/bin”)時(shí),分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)針對初始應(yīng)用來搜索主機(jī)系統(tǒng)114a的操作系統(tǒng)的或安裝到主機(jī)系統(tǒng)114a的操作系統(tǒng)的存儲設(shè)備的本地目錄結(jié)構(gòu)。如果應(yīng)用(“appA”)的可執(zhí)行文件依照路徑(例如,“/bin”、“/uSr/bin/myapp”)在存儲設(shè)備的目錄結(jié)構(gòu)中被找到,則在本地操作系統(tǒng)上產(chǎn)生子進(jìn)程來執(zhí)行初始應(yīng)用。在這種情況下,輸入數(shù)據(jù)(例如,“輸入”)被供應(yīng)給子進(jìn)程(或應(yīng)用)的標(biāo)準(zhǔn)輸入(例如,stdin)。響應(yīng)被從子進(jìn)程提供給分布式處理控制器模塊。
[0084]相對于圖5的示例,分布式處理控制器模塊在以配置文件中的優(yōu)先級次序通過路徑條目針對初始應(yīng)用(例如,“appA”)的搜索期間會遇到限定的DNS名稱(例如,“appA.my domain, com”),并且由已配置DNS服務(wù)或DNS系統(tǒng)105在流程500處執(zhí)行DNS查找。DNS系統(tǒng) 105 提供使所限定的名稱(例如,“appA.my domain,.com”、“appB.my domain,.com”、“appC.my domain,.com”)與分配給主機(jī)系統(tǒng)114b、114c、114d上的操作系統(tǒng)的互聯(lián)網(wǎng)協(xié)議(IP)地址相關(guān)聯(lián)的域名服務(wù)(DNS)。在流程502處與所限定的名稱相對應(yīng)的IP地址被返回。在流程504處分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)基于返回的IP地址將請求和輸入數(shù)據(jù)發(fā)送到主機(jī)系統(tǒng)114b。主機(jī)系統(tǒng)114b的進(jìn)程管理器模塊220 (圖2)接收并且處理該請求(例如,包括用于所期望的應(yīng)用的標(biāo)識符(例如,名稱等)),并且發(fā)起(或者分叉出)遠(yuǎn)程分布式處理控制器模塊的進(jìn)程(例如,經(jīng)由遠(yuǎn)程主機(jī)系統(tǒng)114b)確定應(yīng)用的位置并且執(zhí)行該應(yīng)用的進(jìn)程。應(yīng)用被以用于執(zhí)行本地應(yīng)用的上面所描述的基本上相同的方式來執(zhí)行,其中搜索路徑條目被分析以確定應(yīng)用的位置,并且進(jìn)程被發(fā)起以在主機(jī)系統(tǒng)114b上在本地執(zhí)行該應(yīng)用。在這種情況下,從主機(jī)系統(tǒng)114a接收以執(zhí)行應(yīng)用(“appA”)的輸入數(shù)據(jù)被供應(yīng)給子進(jìn)程(或應(yīng)用)的標(biāo)準(zhǔn)輸入(例如,stdin)。在流程506處來自應(yīng)用包括輸出和錯(cuò)誤信息(例如,stdout和stderr)的響應(yīng)被從主機(jī)系統(tǒng)114b提供給主機(jī)系統(tǒng)114a。在流程506處可以進(jìn)一步對來自主機(jī)系統(tǒng)114b的結(jié)果得到的數(shù)據(jù)執(zhí)行服務(wù)(例如,加密、壓縮等)。
[0085]一旦數(shù)據(jù)在主機(jī)系統(tǒng)114a處被接收到,就可以輸送或者引導(dǎo)該數(shù)據(jù)以用于與待執(zhí)行的后續(xù)應(yīng)用(例如,“appB”)一起使用。可以以上面所描述的基本上相同的方式來執(zhí)行后續(xù)應(yīng)用。特別地,分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)從包括路徑位置的配置文件215 (圖2)探知信息以搜索后續(xù)應(yīng)用(例如,“appB”)。分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)以由配置文件中的結(jié)構(gòu)所確定的優(yōu)先級次序(例如,典型地在位置的序列中隱式的,可選地由單獨(dú)的數(shù)據(jù)值以優(yōu)先級指定的等)來搜索由配置文件所指定的路徑位置。
[0086]當(dāng)路徑位置未使用限定的DNS名稱(例如,“/bin”、“/usr/bin”)時(shí),分布式處理控制器模塊針對后續(xù)應(yīng)用來搜索主機(jī)系統(tǒng)114a的操作系統(tǒng)的或安裝到主機(jī)系統(tǒng)114a的操作系統(tǒng)的存儲設(shè)備的本地目錄結(jié)構(gòu)。如果應(yīng)用(例如,“appB”)的可執(zhí)行文件依照路徑在存儲設(shè)備的目錄結(jié)構(gòu)中被找到,則在本地操作系統(tǒng)上產(chǎn)生子進(jìn)程來執(zhí)行初始應(yīng)用。在這種情況下,輸入數(shù)據(jù)(例如,來自“appA”的執(zhí)行的數(shù)據(jù))被供應(yīng)給子進(jìn)程(或應(yīng)用)的標(biāo)準(zhǔn)輸入(例如,stdin)。響應(yīng)被從子進(jìn)程提供給分布式處理控制器模塊。
[0087]相對于圖5的示例,分布式處理控制器模塊在以配置文件中的優(yōu)先級次序通過路徑條目針對應(yīng)用(例如,“appB”)的搜索期間會遇到限定的DNS名稱(例如,“appB.mydomain.com”),并且由已配置DNS服務(wù)或DNS系統(tǒng)105在流程500處執(zhí)行DNS查找。在流程502處與所限定的名稱相對應(yīng)的IP地址被返回。在流程508處分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)基于返回的IP地址將請求和輸入數(shù)據(jù)發(fā)送到主機(jī)系統(tǒng)114c。主機(jī)系統(tǒng)114c的進(jìn)程管理器模塊220 (圖2)接收并且處理該請求(例如,包括用于所期望的應(yīng)用的標(biāo)識符(例如,名稱等)),并且發(fā)起(或者分叉出)遠(yuǎn)程分布式處理控制器模塊(例如,經(jīng)由遠(yuǎn)程主機(jī)系統(tǒng)114c)確定應(yīng)用的位置并且以上面所描述的基本上相同的方式來執(zhí)行該應(yīng)用的進(jìn)程。在這種情況下,從主機(jī)系統(tǒng)114a接收以執(zhí)行應(yīng)用(“appB”)的輸入數(shù)據(jù)被供應(yīng)給子進(jìn)程(或應(yīng)用)的標(biāo)準(zhǔn)輸入(例如,stdin)。在流程510處來自應(yīng)用包括輸出和錯(cuò)誤信息(例如,stdout和stderr)的響應(yīng)被從主機(jī)系統(tǒng)114c提供給主機(jī)系統(tǒng)114a。在流程510處可以進(jìn)一步對來自主機(jī)系統(tǒng)114c的結(jié)果得到的數(shù)據(jù)執(zhí)行服務(wù)(例如,加密、壓縮等)。
[0088]一旦數(shù)據(jù)在主機(jī)系統(tǒng)114a處被接收到,就可以輸送或者引導(dǎo)該數(shù)據(jù)以用于與待執(zhí)行的后續(xù)應(yīng)用(例如,“appC”)一起使用??梢砸陨厦嫠枋龅幕旧舷嗤姆绞絹韴?zhí)行后續(xù)應(yīng)用。特別地,分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)從包括路徑位置的配置文件215 (圖2)探知信息以搜索后續(xù)應(yīng)用(例如,“appC”)。分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)以由配置文件中的結(jié)構(gòu)所確定的優(yōu)先級次序(例如,典型地在位置的序列中隱式的,可選地由單獨(dú)的數(shù)據(jù)值以優(yōu)先級指定的等)來搜索由配置文件所指定的路徑位置。
[0089]當(dāng)路徑位置未使用限定的DNS名稱(例如,“/bin”、“/usr/bin”)時(shí),分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)針對后續(xù)應(yīng)用來搜索主機(jī)系統(tǒng)114a的操作系統(tǒng)的或安裝到主機(jī)系統(tǒng)114a的操作系統(tǒng)的存儲設(shè)備的本地目錄結(jié)構(gòu)。如果用于應(yīng)用(“appC”)的可執(zhí)行文件依照路徑在存儲設(shè)備的目錄結(jié)構(gòu)中被找到,則在本地操作系統(tǒng)上產(chǎn)生子進(jìn)程來執(zhí)行初始應(yīng)用。在這種情況下,輸入數(shù)據(jù)(例如,來自“appB”的執(zhí)行的數(shù)據(jù))被供應(yīng)給子進(jìn)程(或應(yīng)用)的標(biāo)準(zhǔn)輸入(例如,stdin)。響應(yīng)被從子進(jìn)程提供給分布式處理控制器模塊。
[0090]相對于圖5的示例,分布式處理控制器模塊在以配置文件中的優(yōu)先級次序通過路徑條目針對應(yīng)用(例如,“appC”)的搜索期間遇到限定的DNS名稱(例如,“appC.mydomain.com”),并且由已配置DNS服務(wù)或DNS系統(tǒng)105在流程500處執(zhí)行DNS查找。在流程502處與所限定的名稱相對應(yīng)的IP地址被返回。在流程512處分布式處理控制器模塊(例如,經(jīng)由主機(jī)系統(tǒng)114a)基于返回的IP地址將請求和輸入數(shù)據(jù)發(fā)送到主機(jī)系統(tǒng)114d。主機(jī)系統(tǒng)114d的進(jìn)程管理器模塊220 (圖2)接收并且處理該請求(例如,包括用于所期望的應(yīng)用的標(biāo)識符(例如,名稱等),并且發(fā)起(或者分叉出)遠(yuǎn)程分布式處理控制器模塊(例如,經(jīng)由遠(yuǎn)程主機(jī)系統(tǒng)114d)確定應(yīng)用的位置并且以上面所描述的基本上相同的方式來執(zhí)行該應(yīng)用的進(jìn)程。在這種情況下,從主機(jī)系統(tǒng)114a接收以執(zhí)行應(yīng)用(“appC”)的輸入數(shù)據(jù)被供應(yīng)給子進(jìn)程(或應(yīng)用)的標(biāo)準(zhǔn)輸入(例如,stdin)。在流程514處來自應(yīng)用包括輸出和錯(cuò)誤信息(例如,stdout和stderr)的響應(yīng)被從主機(jī)系統(tǒng)114d提供給主機(jī)系統(tǒng)114a。在流程514處可以進(jìn)一步對來自主機(jī)系統(tǒng)114d的結(jié)果得到的數(shù)據(jù)執(zhí)行服務(wù)(例如,加密、壓縮等)。來自示例命令的最后應(yīng)用(例如,“appC”)的執(zhí)行的結(jié)果得到的數(shù)據(jù)被作為輸出來提供。
[0091]將領(lǐng)會的是,上面所描述的并且在附圖中圖示的實(shí)施例僅表示實(shí)現(xiàn)用于跨越多個(gè)計(jì)算設(shè)備分布的應(yīng)用的執(zhí)行的實(shí)施例的許多方式中的幾個(gè)。
[0092]本實(shí)施例的拓?fù)淇梢园ㄒ匀魏纹谕姆绞讲贾玫娜魏螖?shù)目的計(jì)算機(jī)或其它處理系統(tǒng)(例如,主機(jī)系統(tǒng)、DNS或其它服務(wù)器系統(tǒng)等),其中這些實(shí)施例可以被應(yīng)用于任何期望類型的計(jì)算環(huán)境(例如,云計(jì)算、客戶端-服務(wù)器、網(wǎng)絡(luò)計(jì)算等)。由這些實(shí)施例所采用的計(jì)算機(jī)或其它處理系統(tǒng)(例如,主機(jī)系統(tǒng)、DNS或其它服務(wù)器系統(tǒng)等)可以由任何數(shù)目的任何個(gè)人或其它類型的計(jì)算機(jī)或處理系統(tǒng)(例如,IBM兼容機(jī)、APPLE、膝上型計(jì)算機(jī)、平板等)來實(shí)現(xiàn),并且可以包括任何商業(yè)上可用的操作系統(tǒng)和任何商業(yè)上可用的或定制軟件(例如,瀏覽器軟件、通信軟件、服務(wù)器軟件、分布式處理控制器模塊、進(jìn)程管理器模塊、DNS解析模塊、可插服務(wù)模塊等)。這些系統(tǒng)可以包括任何類型的監(jiān)視器和輸入設(shè)備(例如,鍵盤、鼠標(biāo)、語音識別、觸摸屏等)以鍵入和/或查看信息。此外,主機(jī)系統(tǒng)可以由任何個(gè)人或其它類型的計(jì)算機(jī)或處理設(shè)備(例如,膝上型計(jì)算機(jī)、筆記本、個(gè)人或其它計(jì)算機(jī)系統(tǒng)、個(gè)人數(shù)字助理(PDA)、移動/蜂窩電話、移動計(jì)算設(shè)備(例如,板、平板等))來實(shí)現(xiàn)。
[0093]應(yīng)當(dāng)理解的是,本實(shí)施例的軟件(例如,分布式處理控制器模塊、進(jìn)程管理器模塊、DNS解析模塊、可插服務(wù)模塊等)可以用任何期望的計(jì)算機(jī)語言加以實(shí)現(xiàn)并且能夠由計(jì)算機(jī)領(lǐng)域的普通技術(shù)人員基于在本說明書和流程圖中包含的功能描述和/或在附圖中所圖示的圖來開發(fā)。進(jìn)一步地,執(zhí)行各種功能的本文中的軟件引用一般地指的是在軟件控制下執(zhí)行那些功能的計(jì)算機(jī)系統(tǒng)或處理器。本實(shí)施例的計(jì)算機(jī)系統(tǒng)可以替代地由任何類型的硬件和/或其它處理電路來實(shí)現(xiàn)。
[0094]計(jì)算機(jī)或其它處理系統(tǒng)的各種功能可以被以任何方式分布在任何數(shù)目的軟件和/或硬件模型或單元、處理或計(jì)算機(jī)系統(tǒng)和/或電路之中,其中計(jì)算機(jī)或處理系統(tǒng)可以被彼此在本地或者遠(yuǎn)程地布置并且經(jīng)由任何適合的通信介質(zhì)(例如,LAN、WAN、內(nèi)部網(wǎng)、因特網(wǎng)、硬連線、調(diào)制解調(diào)器連接、無線等)通信。例如,本實(shí)施例的功能可以被以任何方式分布在各種主機(jī)和DNS服務(wù)器系統(tǒng)和/或任何其它中間處理設(shè)備之中??梢砸詫?shí)現(xiàn)本文中所描述的功能的任何方式來修改上面所描述的并且在流程圖和/或簡圖中所圖示的軟件和/或算法。此外,可以以實(shí)現(xiàn)期望操作的任何次序來執(zhí)行流程圖和/或簡圖或描述中的功能。
[0095]本實(shí)施例的軟件(例如,分布式處理控制器模塊、進(jìn)程管理器模塊、DNS解析模塊、可插拔服務(wù)模塊等)可以被制成可用作為包括用于在獨(dú)立系統(tǒng)或由網(wǎng)絡(luò)或其它通信介質(zhì)所連接的系統(tǒng)上使用的非暫時(shí)性可記錄或計(jì)算機(jī)可用或可讀介質(zhì)(例如,磁或光學(xué)介質(zhì)、磁光介質(zhì)、軟磁碟、CD-R0M、DVD、內(nèi)存設(shè)備等)的程序產(chǎn)品裝置或設(shè)備,和/或可以經(jīng)由網(wǎng)絡(luò)或其它通信介質(zhì)而被下載(例如,以載波、數(shù)據(jù)包等的形式)到系統(tǒng)。
[0096]進(jìn)一步地,本實(shí)施例的計(jì)算機(jī)系統(tǒng)或設(shè)備的內(nèi)存可以包括只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、磁盤存儲介質(zhì)設(shè)備、光學(xué)存儲介質(zhì)設(shè)備、閃存設(shè)備、電、光學(xué)或其它物理/有形內(nèi)存存儲設(shè)備。因此,一般而言,內(nèi)存可以包括編碼有包括計(jì)算機(jī)可執(zhí)行指令的軟件或邏輯并且當(dāng)被(計(jì)算機(jī)系統(tǒng)或設(shè)備的對應(yīng)處理器)執(zhí)行時(shí)軟件可操作來執(zhí)行本文中所描述的操作的一個(gè)或多個(gè)可讀存儲介質(zhì)(例如,內(nèi)存設(shè)備)。
[0097]通信網(wǎng)絡(luò)可以由任何數(shù)目的任何類型的通信網(wǎng)絡(luò)(例如,LAN、WAN、因特網(wǎng)、內(nèi)部網(wǎng)、VPN等)來實(shí)現(xiàn)。本實(shí)施例的計(jì)算機(jī)或其它處理系統(tǒng)可以包括經(jīng)由任何常規(guī)或其它協(xié)議通過網(wǎng)絡(luò)來進(jìn)行通信的任何常規(guī)或其它通信設(shè)備。計(jì)算機(jī)或其它處理系統(tǒng)可以利用任何類型的連接(例如,有線、無線等)以用于訪問網(wǎng)絡(luò)。本地通信介質(zhì)可以由任何適合的通信介質(zhì)(例如,局域網(wǎng)(LAN)、硬連線、無線鏈路、內(nèi)部網(wǎng)等)來實(shí)現(xiàn)。
[0098]本實(shí)施例可以采用任何數(shù)目的任何常規(guī)或其它數(shù)據(jù)庫、數(shù)據(jù)存儲器或存儲結(jié)構(gòu)(例如,文件、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)或其它儲存庫等)來存儲信息。數(shù)據(jù)庫系統(tǒng)可以被包括在計(jì)算機(jī)或其它處理系統(tǒng)內(nèi)或者耦合到計(jì)算機(jī)或其它處理系統(tǒng)。數(shù)據(jù)庫系統(tǒng)和/或存儲結(jié)構(gòu)可以遠(yuǎn)離或者在計(jì)算機(jī)或其它處理系統(tǒng)本地,并且可以存儲任何期望的數(shù)據(jù)。
[0099]本實(shí)施例可以執(zhí)行跨越任何類型的計(jì)算設(shè)備中的一個(gè)或多個(gè)分布的任何數(shù)量的任何類型的應(yīng)用或其它過程指令(例如,計(jì)算機(jī)程序、例行程序、宏、庫、腳本、補(bǔ)丁等)。進(jìn)一步地,本實(shí)施例可以使得能夠執(zhí)行跨越任何類型的計(jì)算設(shè)備中的一個(gè)或多個(gè)分布的任何類型的應(yīng)用或其它過程指令(例如,計(jì)算機(jī)程序、例行程序、宏、庫、腳本、補(bǔ)丁等)的任何數(shù)量的組件。
[0100]調(diào)用應(yīng)用的執(zhí)行的命令或指令可以源自于代碼(例如,程序、腳本、宏等)內(nèi),或者在外殼的用戶接口處被鍵入。分布式處理接口的輸入可以進(jìn)一步被從完全程序性源(不是用戶發(fā)起的或用戶牽涉的)供應(yīng),并且可以由諸如監(jiān)視器和鍵盤之類的沒有外部用戶接口的計(jì)算設(shè)備來提供??梢砸陨厦嫠枋龅幕旧舷嗤姆绞綀?zhí)行來自代碼、外殼以及程序性源的命令以執(zhí)行跨越計(jì)算設(shè)備分布的應(yīng)用。搜索路徑可以被以任何適合的方式(例如,在環(huán)境或其它變量內(nèi)、在用戶接口處鍵入的等的命令或指令)提供、具有任何數(shù)量,并且包括任何格式或數(shù)量的位置??梢砸匀魏纹谕姆绞?例如,在搜索路徑、標(biāo)志或變量等內(nèi)指定的次序)在搜索路徑內(nèi)或外面對位置進(jìn)行優(yōu)先級排序。可以以任何期望的方式(例如,目錄路徑或位置、URL、網(wǎng)絡(luò)或其它地址、命名約定、變量名稱或替換等)在搜索路徑內(nèi)指定位置(例如,本地或遠(yuǎn)程)。搜索路徑可以由以任何方式存儲以供利用(例如,配置或其它文件或數(shù)據(jù)結(jié)構(gòu)、環(huán)境或其它變量等)的任何數(shù)量的各個(gè)命令或條目來指示。
[0101]上面所描述的功能優(yōu)選地在不高于OSI模型的第3層的水平處被執(zhí)行。然而,可以在OSI模型的任何期望的水平執(zhí)行功能中的任一個(gè)。
[0102]期望的應(yīng)用駐留的位置可以由任何數(shù)量的任何適合的指示符(例如,網(wǎng)絡(luò)或協(xié)議地址、可解析為位置的標(biāo)識符、直接或間接地址方案等)來指定。位置可以表示在應(yīng)用駐留(例如,遠(yuǎn)程計(jì)算設(shè)備、操作系統(tǒng)或其它組件、所期望的應(yīng)用的直接地址或位置等)處的任何適合的實(shí)體。
[0103]服務(wù)模塊可以包括用于發(fā)往應(yīng)用(例如,在其執(zhí)行之前)和/或來自應(yīng)用(例如,在其執(zhí)行之后)的數(shù)據(jù)的任何期望的服務(wù)(例如,加密、壓縮、編碼(例如,XML)、服務(wù)質(zhì)量(QoS)、事務(wù)控制、統(tǒng)計(jì)、日志、調(diào)試/追蹤、負(fù)載平衡、故障轉(zhuǎn)移、文件轉(zhuǎn)移、動態(tài)DNS注冊、策略強(qiáng)制執(zhí)行等)。對服務(wù)的請求可以具有任何類型或格式,并且可以包括任何期望的信息(例如,服務(wù)、輸入、輸出、錯(cuò)誤流等的標(biāo)識符)。
[0104]對期望的應(yīng)用的遠(yuǎn)程執(zhí)行的請求可以具有任何類型或格式,并且可以包括任何期望的信息(例如,應(yīng)用、輸入、輸出、錯(cuò)誤流等的標(biāo)識符)。應(yīng)用標(biāo)識符可以具有任何類型、格式或長度,并且包括任何數(shù)量的任何類型的字母數(shù)字或其它字符或符號。主機(jī)系統(tǒng)可以發(fā)起任何數(shù)量的任何適合的進(jìn)程或線程以處理應(yīng)用的執(zhí)行。此外,可以以任何適合的方式輸送應(yīng)用之間的數(shù)據(jù)(例如,一個(gè)或多個(gè)應(yīng)用的輸出可以被應(yīng)用于一個(gè)或多個(gè)其它應(yīng)用的輸入,可以以任何方式(例如,服務(wù)、組合式等)來處理一個(gè)或多個(gè)應(yīng)用的輸出以用于轉(zhuǎn)移到一個(gè)或多個(gè)其它應(yīng)用的輸入等)。
[0105]策略管理器的規(guī)則或策略可以具有任何期望的形式,并且包括用于控制應(yīng)用的執(zhí)行和/或服務(wù)的任何期望的準(zhǔn)則。策略管理器可以基于任何外部策略確定準(zhǔn)則(例如,容量、延遲、成本、安全、彈性、調(diào)整、當(dāng)日時(shí)間、操作的順序等)來提供工作負(fù)載管理策略。外殼可以提供用來接收命令的任何適合的用戶接口(例如,GU1、命令行提示符、菜單畫面等)。本實(shí)施例可以被利用來執(zhí)行跨越任何計(jì)算系統(tǒng)、設(shè)備和/或操作系統(tǒng)分布的任何應(yīng)用或其它過程指令。
[0106]本實(shí)施例的一個(gè)或多個(gè)計(jì)算設(shè)備(例如,主機(jī)系統(tǒng)等)可以是虛擬的,其中操作系統(tǒng)和關(guān)聯(lián)的設(shè)備全部實(shí)際上是理論的物理計(jì)算系統(tǒng)和設(shè)備的軟件表示。類似地,網(wǎng)絡(luò)可以是作為在任何類型的物理基礎(chǔ)設(shè)施上的網(wǎng)絡(luò)操作系統(tǒng)軟件配置的邏輯構(gòu)造的虛擬網(wǎng)絡(luò),并且可以完全是在其中沒有物理網(wǎng)絡(luò)的遍歷發(fā)生的相同物理機(jī)器上的兩個(gè)虛擬計(jì)算設(shè)備之間的網(wǎng)絡(luò)的虛擬表示以滿足兩個(gè)操作系統(tǒng)之間的遠(yuǎn)程網(wǎng)絡(luò)操作。
[0107]將理解的是,術(shù)語“包括(comprises),,、“包括(comprising)”、"包括(includes)”、“包括(including)”、“具有(has)”、“具有(have)”、“具有(having)”、“帶有(with)”等等當(dāng)被用在本說明書和權(quán)利要求中時(shí),指定陳述特征的存在,但不排除一個(gè)或多個(gè)其它特征的存在或添加。
[0108]根據(jù)前面的描述,將領(lǐng)會的是,本文中所公開的技術(shù)對于跨越多個(gè)計(jì)算設(shè)備分布的應(yīng)用的執(zhí)行做出了可用的新穎實(shí)施例,其中這些實(shí)施例使得能夠執(zhí)行從在應(yīng)用調(diào)用的位置的本地和遠(yuǎn)程分布以及跨越多個(gè)計(jì)算設(shè)備分布的各種應(yīng)用。
[0109]已經(jīng)描述了用于執(zhí)行跨越多個(gè)計(jì)算設(shè)備分布的應(yīng)用的新的且改進(jìn)的技術(shù)的示例實(shí)施例,可以認(rèn)為,其它修改、變化以及改變將鑒于本文中所闡述的教導(dǎo)而被建議給本領(lǐng)域的技術(shù)人員。因此應(yīng)當(dāng)理解的是,所有這樣的變化、修改以及改變被認(rèn)為落在如隨附權(quán)利要求所限定的范圍內(nèi)。
【權(quán)利要求】
1.一種方法,其包括: 在計(jì)算設(shè)備上檢測促進(jìn)一個(gè)或多個(gè)應(yīng)用的執(zhí)行的調(diào)用事件,其中所述應(yīng)用包括各自用于在對應(yīng)的遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行的至少一個(gè)遠(yuǎn)程應(yīng)用; 檢查搜索路徑以確定所述一個(gè)或多個(gè)應(yīng)用的位置,其中所述搜索路徑包括各自與對應(yīng)的遠(yuǎn)程應(yīng)用相關(guān)聯(lián)并且指示用于執(zhí)行所述對應(yīng)的遠(yuǎn)程應(yīng)用的遠(yuǎn)程位置的至少一個(gè)指示符; 解析與所述至少一個(gè)遠(yuǎn)程應(yīng)用相關(guān)聯(lián)的每個(gè)指示符以確定用于執(zhí)行所述對應(yīng)的遠(yuǎn)程應(yīng)用的遠(yuǎn)程位置;以及 使能在所確定的位置處執(zhí)行所述一個(gè)或多個(gè)應(yīng)用,其中每個(gè)遠(yuǎn)程應(yīng)用在所述對應(yīng)的遠(yuǎn)程位置處的所述對應(yīng)的遠(yuǎn)程計(jì)算設(shè)備上被執(zhí)行。
2.根據(jù)權(quán)利要求1所述的方法,其中解析與所述至少一個(gè)遠(yuǎn)程應(yīng)用相關(guān)聯(lián)的每個(gè)指示符包括采用域名服務(wù)(DNS)來確定由該指示符所指示的所述遠(yuǎn)程位置的地址。
3.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括 識別駐留在所述計(jì)算設(shè)備上的一個(gè)或多個(gè)應(yīng)用,以及向域名服務(wù)(DNS)注冊所識別的應(yīng)用以使所識別的應(yīng)用與所述計(jì)算設(shè)備的位置相關(guān)聯(lián)。
4.根據(jù)權(quán)利要求1所述的方法,其中檢測所述調(diào)用事件包括從程序代碼和外殼中的至少一個(gè)接收命令。
5.根據(jù)權(quán)利要求4所述的方法,其中使能執(zhí)行所述一個(gè)或多個(gè)應(yīng)用包括: 選擇性地對與所述應(yīng)用的執(zhí)行相關(guān)聯(lián)的數(shù)據(jù)應(yīng)用服務(wù),其中所述服務(wù)由所述命令來指定。
6.根據(jù)權(quán)利要求1所述的方法,其中使能執(zhí)行所述一個(gè)或多個(gè)應(yīng)用包括: 將由所述應(yīng)用中的一個(gè)或多個(gè)的執(zhí)行產(chǎn)生的數(shù)據(jù)引導(dǎo)至少一個(gè)其它應(yīng)用。
7.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括: 使能響應(yīng)于來自檢測到促進(jìn)該本地應(yīng)用的執(zhí)行的調(diào)用事件的遠(yuǎn)程計(jì)算設(shè)備的請求來執(zhí)行所述計(jì)算設(shè)備的本地應(yīng)用。
8.根據(jù)權(quán)利要求1所述的方法,其中所述計(jì)算設(shè)備和所述遠(yuǎn)程計(jì)算設(shè)備中的一個(gè)或多個(gè)包括不同的操作系統(tǒng)。
9.一種系統(tǒng),其包括: 至少一個(gè)處理器,其配置成: 在計(jì)算設(shè)備上檢測促進(jìn)一個(gè)或多個(gè)應(yīng)用的執(zhí)行的調(diào)用事件,其中所述應(yīng)用包括各自用于在對應(yīng)的遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行的至少一個(gè)遠(yuǎn)程應(yīng)用; 檢查搜索路徑以確定所述一個(gè)或多個(gè)應(yīng)用的位置,其中所述搜索路徑包括各自與對應(yīng)的遠(yuǎn)程應(yīng)用相關(guān)聯(lián)并且指示用于執(zhí)行所述對應(yīng)的遠(yuǎn)程應(yīng)用的遠(yuǎn)程位置的至少一個(gè)指示符; 解析與所述至少一個(gè)遠(yuǎn)程應(yīng)用相關(guān)聯(lián)的每個(gè)指示符以確定用于執(zhí)行所述對應(yīng)的遠(yuǎn)程應(yīng)用的遠(yuǎn)程位置;以及 使能在所確定的位置處執(zhí)行所述一個(gè)或多個(gè)應(yīng)用,其中每個(gè)遠(yuǎn)程應(yīng)用在所述對應(yīng)的遠(yuǎn)程位置處的所述對應(yīng)的遠(yuǎn)程計(jì)算設(shè)備上被執(zhí)行。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),進(jìn)一步包括:用來確定由在所述搜索路徑內(nèi)的每個(gè)指示符所指示的所述遠(yuǎn)程位置的地址的域名服務(wù)(DNS)系統(tǒng)。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述至少一個(gè)處理器被進(jìn)一步配置成: 識別一個(gè)或多個(gè)應(yīng)用并且向域名服務(wù)(DNS)注冊所識別的應(yīng)用以使所識別的應(yīng)用與所述計(jì)算設(shè)備的位置相關(guān)聯(lián)。
12.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述至少一個(gè)處理器被進(jìn)一步配置成: 通過從程序代碼和外殼中的至少一個(gè)接收命令來檢測所述調(diào)用事件。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述至少一個(gè)處理器被進(jìn)一步配置成: 選擇性地對與所述應(yīng)用的執(zhí)行相關(guān)聯(lián)的數(shù)據(jù)應(yīng)用服務(wù),其中所述服務(wù)由所述命令來指定。
14.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述至少一個(gè)處理器被進(jìn)一步配置成: 將由所述應(yīng)用中的一個(gè)或多個(gè)的執(zhí)行產(chǎn)生的數(shù)據(jù)引導(dǎo)至少一個(gè)其它應(yīng)用。
15.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述至少一個(gè)處理器被進(jìn)一步配置成: 使能響應(yīng)于來自檢測到促進(jìn)該本地應(yīng)用的執(zhí)行的調(diào)用事件的遠(yuǎn)程計(jì)算設(shè)備的請求來 執(zhí)行所述計(jì)算設(shè)備的本地應(yīng)用。
16.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述計(jì)算設(shè)備中的至少兩個(gè)包括不同的操作系統(tǒng)。
17.—個(gè)或多個(gè)計(jì)算機(jī)可讀存儲介質(zhì),其編碼有包括計(jì)算機(jī)可執(zhí)行指令的軟件并且當(dāng)所述軟件被處理器被執(zhí)行時(shí)可操作來: 在計(jì)算設(shè)備上檢測促進(jìn)一個(gè)或多個(gè)應(yīng)用的執(zhí)行的調(diào)用事件,其中所述應(yīng)用包括各自用于在對應(yīng)的遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行的至少一個(gè)遠(yuǎn)程應(yīng)用; 檢查搜索路徑以確定所述一個(gè)或多個(gè)應(yīng)用的位置,其中所述搜索路徑包括各自與對應(yīng)的遠(yuǎn)程應(yīng)用相關(guān)聯(lián)并且指示用于執(zhí)行所述對應(yīng)的遠(yuǎn)程應(yīng)用的遠(yuǎn)程位置的至少一個(gè)指示符; 解析與所述至少一個(gè)遠(yuǎn)程應(yīng)用相關(guān)聯(lián)的每個(gè)指示符以確定用于執(zhí)行所述對應(yīng)的遠(yuǎn)程應(yīng)用的遠(yuǎn)程位置;以及 使能在所確定的位置處執(zhí)行所述一個(gè)或多個(gè)應(yīng)用,其中每個(gè)遠(yuǎn)程應(yīng)用在所述對應(yīng)的遠(yuǎn)程位置處的所述對應(yīng)的遠(yuǎn)程計(jì)算設(shè)備上被執(zhí)行。
18.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算機(jī)可執(zhí)行指令進(jìn)一步包括計(jì)算機(jī)可執(zhí)行指令以: 采用域名服務(wù)(DNS)來確定由所述搜索路徑中的所述至少一個(gè)指示符所指示的所述遠(yuǎn)程位置的地址。
19.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算機(jī)可執(zhí)行指令進(jìn)一步包括計(jì)算機(jī)可執(zhí)行指令以: 識別駐留在所述計(jì)算設(shè)備上的一個(gè)或多個(gè)應(yīng)用并且向域名服務(wù)(DNS)注冊所識別的應(yīng)用以使所識別的應(yīng)用與所述計(jì)算設(shè)備的位置相關(guān)聯(lián)。
20.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算機(jī)可執(zhí)行指令進(jìn)一步包括計(jì)算機(jī)可執(zhí)行指令以: 通過從程序代碼和外殼中的至少一個(gè)接收命令來檢測所述調(diào)用事件。
21.根據(jù)權(quán)利要求20所述的計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算機(jī)可執(zhí)行指令進(jìn)一步包括計(jì)算機(jī)可執(zhí)行指令以: 選擇性地對與所述應(yīng)用的執(zhí)行相關(guān)聯(lián)的數(shù)據(jù)應(yīng)用服務(wù),其中所述服務(wù)由所述命令來指定。
22.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算機(jī)可執(zhí)行指令進(jìn)一步包括計(jì)算機(jī)可執(zhí)行指令以: 將由所述應(yīng)用中的一個(gè)或多個(gè)的執(zhí)行產(chǎn)生的數(shù)據(jù)引導(dǎo)至少一個(gè)其它應(yīng)用。
23.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算機(jī)可執(zhí)行指令進(jìn)一步包括計(jì)算機(jī)可執(zhí)行指令以: 使能響應(yīng)于來自檢測到促使該本地應(yīng)用的執(zhí)行的調(diào)用事件的遠(yuǎn)程計(jì)算設(shè)備的請求來執(zhí)行所述計(jì)算設(shè)備的本地應(yīng)用。
24.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算設(shè)備和所述遠(yuǎn)程計(jì)算設(shè)備中的一個(gè)或多個(gè)包括不同的操作系統(tǒng)。
25.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其中所述計(jì)算設(shè)備中的一個(gè)或多個(gè)包括虛擬計(jì)算設(shè)備。
26.根據(jù)權(quán)利要求1所述的方法,其中所述計(jì)算設(shè)備中的一個(gè)或多個(gè)包括虛擬計(jì)算設(shè)備。
27.根據(jù)權(quán)利 要求9所述的系統(tǒng),其中所述至少一個(gè)處理器被進(jìn)一步配置成: 將所述計(jì)算設(shè)備中的一個(gè)或多個(gè)實(shí)現(xiàn)為虛擬計(jì)算設(shè)備。
【文檔編號】G06F9/54GK103843308SQ201280048624
【公開日】2014年6月4日 申請日期:2012年10月1日 優(yōu)先權(quán)日:2011年10月3日
【發(fā)明者】約翰·C·科特爾 申請人:思科技術(shù)公司