專(zhuān)利名稱(chēng):使用命令行環(huán)境的遠(yuǎn)程系統(tǒng)管理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)系統(tǒng)管理,尤其涉及用于遠(yuǎn)程網(wǎng)絡(luò)系統(tǒng)管理的命令行環(huán)境。
背景技術(shù):
今天的計(jì)算系統(tǒng)和網(wǎng)絡(luò)是復(fù)雜的,并且常常是巨大的。某些大企業(yè)可具有在局域網(wǎng)和廣域網(wǎng)上相互連接的數(shù)千個(gè)獨(dú)立計(jì)算系統(tǒng)。使所有這些計(jì)算系統(tǒng)保持平穩(wěn)運(yùn)行對(duì)于企業(yè)的成功是至關(guān)重要的。為此,系統(tǒng)開(kāi)發(fā)者努力提供用于系統(tǒng)管理的有用管理性工具。
由于典型的系統(tǒng)管理器是非常復(fù)雜的用戶(hù),管理工具常常比面向消費(fèi)大眾的應(yīng)用程序更為復(fù)雜。例如,命令行環(huán)境仍然在系統(tǒng)管理器中流行,盡管圖形用戶(hù)界面更為普通用戶(hù)所鐘愛(ài)。通常,管理器使用命令行可比使用圖形界面更快地執(zhí)行相對(duì)復(fù)雜的任務(wù)。
典型的命令行環(huán)境由在計(jì)算系統(tǒng)上操作的外殼程序提供。通常,命令行環(huán)境提供一些管理器可執(zhí)行的核心命令。對(duì)于更復(fù)雜的任務(wù),典型的命令行環(huán)境使命令能“連接成流水線(xiàn)”,意思是可在系統(tǒng)命令行上輸入兩個(gè)或多個(gè)命令,且每個(gè)命令的結(jié)果都“連接”或傳遞給流水線(xiàn)中的下一命令。
無(wú)論它們對(duì)管理器的流行性如何,很少關(guān)注使命令行環(huán)境更便于使用和更強(qiáng)大,尤其是遠(yuǎn)程系統(tǒng)管理。例如,情形常常是管理器必須在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行某些動(dòng)作或使用在一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)上收集的信息。然而,即使是相對(duì)簡(jiǎn)單的任務(wù)在要求遠(yuǎn)程執(zhí)行時(shí)也會(huì)是令人頭痛的。另外,最新技術(shù)的計(jì)算系統(tǒng)的復(fù)雜性是重新定義“遠(yuǎn)程”的含義。例如,今天“遠(yuǎn)程”系統(tǒng)可以是同一計(jì)算機(jī)上執(zhí)行的不同過(guò)程,而現(xiàn)有命令行環(huán)境則略去這些情形。
至今,提供復(fù)雜遠(yuǎn)程系統(tǒng)管理的命令行環(huán)境已使本領(lǐng)域技術(shù)人員感到困惑。
發(fā)明內(nèi)容
本發(fā)明涉及用于復(fù)雜遠(yuǎn)程系統(tǒng)管理的機(jī)制和技術(shù)。簡(jiǎn)言之,命令行環(huán)境被配置用以接收隱含多個(gè)遠(yuǎn)程節(jié)點(diǎn)的命令行。該命令行環(huán)境被配置以建立對(duì)于每個(gè)隱含遠(yuǎn)程節(jié)點(diǎn)都持續(xù)的會(huì)話(huà),并起動(dòng)遠(yuǎn)程命令在這些節(jié)點(diǎn)上的執(zhí)行。該會(huì)話(huà)可賦以一變量,且遠(yuǎn)程執(zhí)行可并發(fā)地進(jìn)行。遠(yuǎn)程執(zhí)行的結(jié)果可接收并聚集到一數(shù)組中。命令行環(huán)境可將建立會(huì)話(huà)的任務(wù)分發(fā)到其它系統(tǒng)中以改進(jìn)性能。
圖1是一般示出獲益于結(jié)合本發(fā)明描述的機(jī)制和技術(shù)的計(jì)算環(huán)境的功能框圖。
圖2是更詳細(xì)示出圖1中介紹的命令行環(huán)境操作的功能框圖。
圖3是可由所述命令行環(huán)境管理的網(wǎng)絡(luò)化環(huán)境中計(jì)算系統(tǒng)分級(jí)拓?fù)涞墓δ芸驁D。
圖4是一般示出可由過(guò)程執(zhí)行用于遠(yuǎn)程執(zhí)行命令行指令的至少一部分的步驟的流程圖。
圖5是一般示出當(dāng)向大量遠(yuǎn)程裝置發(fā)出遠(yuǎn)程命令時(shí)用于增強(qiáng)命令行環(huán)境性能的過(guò)程的邏輯流程圖。
圖6是可用于示例性命令行環(huán)境的示例性計(jì)算裝置。
具體實(shí)施例方式
以下詳細(xì)說(shuō)明書(shū)涉及用于執(zhí)行遠(yuǎn)程命令的命令行環(huán)境的一說(shuō)明性實(shí)現(xiàn)。本揭示僅用于說(shuō)明,且并不被視為實(shí)現(xiàn)本發(fā)明的僅有方法。
圖1是一般示出獲益于結(jié)合本發(fā)明描述的機(jī)制和技術(shù)的計(jì)算環(huán)境100的功能框圖。所示是經(jīng)網(wǎng)絡(luò)110連接的若干計(jì)算系統(tǒng)。更具體地,網(wǎng)絡(luò)110把“管理器”112計(jì)算系統(tǒng)連接到若干個(gè)計(jì)算系統(tǒng)(例如遠(yuǎn)程A 120、遠(yuǎn)程B 121以及遠(yuǎn)程C 122)。該若干計(jì)算系統(tǒng)可以是企業(yè)網(wǎng)絡(luò)的一部分或者是任何受管理的網(wǎng)絡(luò)環(huán)境。這些遠(yuǎn)程計(jì)算系統(tǒng)物理上可位于任何地方。
網(wǎng)絡(luò)110可以是用于連接不同計(jì)算系統(tǒng)的任何機(jī)制,諸如局域網(wǎng)、廣域網(wǎng)、或者因特網(wǎng)。每個(gè)遠(yuǎn)程計(jì)算系統(tǒng)可以是由諸如雇員或訂戶(hù)的終端用戶(hù)所使用的獨(dú)立計(jì)算系統(tǒng)。
管理器112是由系統(tǒng)管理器等等使用的用以維護(hù)計(jì)算環(huán)境100的計(jì)算系統(tǒng)。換言之,管理器112運(yùn)行命令,且執(zhí)行可查詢(xún)狀態(tài)或計(jì)算環(huán)境中其它計(jì)算系統(tǒng)狀態(tài)的任務(wù),并改變一個(gè)或多個(gè)其它計(jì)算系統(tǒng)。管理器112還可查詢(xún)或改變網(wǎng)絡(luò)110的狀態(tài)。管理器112包括支持諸如過(guò)程A 113和過(guò)程B 114的一個(gè)或多個(gè)過(guò)程的執(zhí)行環(huán)境。每個(gè)過(guò)程主管至少一個(gè)程序或應(yīng)用程序。另外,一個(gè)過(guò)程(例如過(guò)程A 113)可支持一個(gè)或多個(gè)應(yīng)用程序領(lǐng)域,諸如App1 115和App2 116。應(yīng)用程序領(lǐng)域是一種相對(duì)較新的機(jī)制,它使多個(gè)應(yīng)用程序可在同一過(guò)程中執(zhí)行卻仍與其它應(yīng)用程序隔離。應(yīng)用程序領(lǐng)域是由運(yùn)行時(shí)環(huán)境創(chuàng)建在應(yīng)用程序周?chē)倪壿嫼臀锢磉吔?。每個(gè)應(yīng)用程序領(lǐng)域防止其相應(yīng)程序的配置、安全或穩(wěn)定性影響其它應(yīng)用領(lǐng)域中的其它應(yīng)用程序。
計(jì)算環(huán)境100中每個(gè)計(jì)算系統(tǒng)都支持實(shí)現(xiàn)在此所述的機(jī)制和技術(shù)的命令行環(huán)境。如下結(jié)合圖2進(jìn)行更詳細(xì)描述,管理器112包括使用戶(hù)能本地和遠(yuǎn)程地執(zhí)行命令的命令行環(huán)境。管理器112被配置用以在其本地命令行環(huán)境(也稱(chēng)為“外殼”)和任意一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)之間建立會(huì)話(huà)。在此實(shí)現(xiàn)中,遠(yuǎn)程系統(tǒng)包括遠(yuǎn)程計(jì)算裝置(例如遠(yuǎn)程A 120)以及本地計(jì)算系統(tǒng)上的其它過(guò)程或應(yīng)用領(lǐng)域(即管理器112)。因此,不象現(xiàn)有系統(tǒng),管理器112的用戶(hù)可建立連接,并在遠(yuǎn)程計(jì)算裝置上或在本地計(jì)算裝置上的另一過(guò)程或應(yīng)用領(lǐng)域中執(zhí)行命令。另外,管理器112創(chuàng)建與每個(gè)遠(yuǎn)程系統(tǒng)的單獨(dú)會(huì)話(huà),并因此可起動(dòng)用于在多個(gè)遠(yuǎn)程系統(tǒng)上同步執(zhí)行的命令,這在此前并未完成。
圖2是更詳細(xì)示出圖1中介紹的命令行環(huán)境操作的功能框圖。在圖2中示出的是管理器112和若干遠(yuǎn)程系統(tǒng)201。在此例中,兩個(gè)遠(yuǎn)程系統(tǒng)(即遠(yuǎn)程A 120和遠(yuǎn)程B 121)是遠(yuǎn)程計(jì)算裝置。相反,另一遠(yuǎn)程系統(tǒng)(即遠(yuǎn)程N(yùn) 220)可以是本地計(jì)算機(jī)上的另一過(guò)程,另一應(yīng)用領(lǐng)域中的執(zhí)行代碼等等。在此實(shí)現(xiàn)中,管理器112在遠(yuǎn)程系統(tǒng)201上執(zhí)行遠(yuǎn)程管理。
每個(gè)遠(yuǎn)程系統(tǒng)包括若干“命令”(例如cmd 222)。命令是用以執(zhí)行系統(tǒng)管理性任務(wù)的相對(duì)較小代碼組件。實(shí)例可包括用于標(biāo)識(shí)在計(jì)算裝置上執(zhí)行的每個(gè)過(guò)程的“process”命令、用于標(biāo)識(shí)計(jì)算裝置上目錄中文件的“dir”命令、以及許多其它命令。然而,命令可包括在遠(yuǎn)程系統(tǒng)上的任意可執(zhí)行組件。
每個(gè)遠(yuǎn)程系統(tǒng)201還包括遠(yuǎn)程代理(例如代理224),它是響應(yīng)于遠(yuǎn)程請(qǐng)求要執(zhí)行一個(gè)或多個(gè)命令(例如cmd 222)的組件。另外,代理被配置用以取得一個(gè)或多個(gè)命令的執(zhí)行結(jié)果,并創(chuàng)建返回到請(qǐng)求裝置的包。在一實(shí)現(xiàn)中,該包取包括執(zhí)行結(jié)果以及諸如調(diào)用日期和時(shí)間的元信息的經(jīng)串行化對(duì)象的形式,來(lái)標(biāo)識(shí)有關(guān)結(jié)果所源自的特定遠(yuǎn)程系統(tǒng)的信息,以及有關(guān)請(qǐng)求實(shí)體的信息。該信息和可能的其它信息被打包成返回包226,用于傳送回請(qǐng)求實(shí)體(例如管理器112)。
管理器112包括支持命令行環(huán)境200的組件。更具體地,管理器112包括類(lèi)似于駐留于遠(yuǎn)程系統(tǒng)上命令的在系統(tǒng)管理中使用的命令250。該命令行環(huán)境200的操作由內(nèi)核引擎251管理,該內(nèi)核引擎251被配置用以管理若干組件的每一個(gè)之間,以及管理器112和每個(gè)遠(yuǎn)程系統(tǒng)201之間的操作和信息流動(dòng)。內(nèi)核引擎使用戶(hù)輸入能以命令行指令的形式接收(諸如通過(guò)外殼等等)和動(dòng)作。這種命令行指令的特定形式以及用于處理它的技術(shù)如下進(jìn)行詳述。
另外,命令行環(huán)境200包括會(huì)話(huà)管理器253功能。命令行環(huán)境200被配置以在多個(gè)遠(yuǎn)程系統(tǒng)上并發(fā)地執(zhí)行遠(yuǎn)程命令。為了完成它,在管理器112和在命令行指令標(biāo)識(shí)的任意遠(yuǎn)程系統(tǒng)201之間建立了不同的“會(huì)話(huà)”?!皶?huì)話(huà)”230代表了管理器112和相關(guān)聯(lián)的遠(yuǎn)程系統(tǒng)201之間的連接。響應(yīng)于隱含遠(yuǎn)程系統(tǒng)的命令行指令,會(huì)話(huà)管理器253與遠(yuǎn)程系統(tǒng)上的代理(例如代理224)交互,以調(diào)用遠(yuǎn)程系統(tǒng)上的一過(guò)程并創(chuàng)建到該過(guò)程的連接。該連接被稱(chēng)為“會(huì)話(huà)”??墒褂锰囟顝拿钚薪⒂嘘P(guān)或多個(gè)會(huì)話(huà),諸如可采用以下形式$C=new/sessoion-node N1,N2,N3-creds{XXX}-session yes在該示例中,短語(yǔ)“new/session”指示要?jiǎng)?chuàng)建的新會(huì)話(huà)。參數(shù)“-node N1,N2,N3”指示正在與之創(chuàng)建會(huì)話(huà)的節(jié)點(diǎn)(遠(yuǎn)程系統(tǒng))。作為“-node”參數(shù)的另一選項(xiàng),“-workerprocess”可用來(lái)與本地機(jī)器上一可選過(guò)程創(chuàng)建會(huì)話(huà),或者“-appdomain”可用以與同一過(guò)程中不同應(yīng)用領(lǐng)域內(nèi)另一應(yīng)用程序創(chuàng)建會(huì)話(huà)。參數(shù)“-creds{XXX}”標(biāo)識(shí)用以與遠(yuǎn)程系統(tǒng)201連接的任何特定登錄證明。最后,參數(shù)“-session yes”被用以指示是否要保持會(huì)話(huà)。在使用不同命令行遠(yuǎn)程調(diào)用多個(gè)命令的情形中,保持會(huì)話(huà)是有用的。不象現(xiàn)有系統(tǒng),會(huì)話(huà)使遠(yuǎn)程過(guò)程能對(duì)多個(gè)命令行指令重復(fù)使用。該能力改進(jìn)了自動(dòng)化管理和腳本。
再參看以上的示例命令行,“$C=”語(yǔ)法的使用以及創(chuàng)建新會(huì)話(huà)將該新會(huì)話(huà)賦以環(huán)境變量“$C”。環(huán)境參數(shù)275實(shí)質(zhì)上是由對(duì)其它任務(wù)可用的外殼所維持的變量,且常被用以在過(guò)程或應(yīng)用程序之間共享信息。通過(guò)將會(huì)話(huà)賦以環(huán)境變量,不同命令可通過(guò)簡(jiǎn)單引用該環(huán)境變量來(lái)利用該會(huì)話(huà)。還有,由于單個(gè)會(huì)話(huà)可包括與多個(gè)遠(yuǎn)程系統(tǒng)的連接,若干命令可通過(guò)向單個(gè)環(huán)境變量發(fā)出而發(fā)出,因而大大簡(jiǎn)化了較大規(guī)模(1多個(gè))的管理性任務(wù)。以下是可用來(lái)利用該能力的說(shuō)明性命令行$A=rcmd$C get/process通過(guò)調(diào)用具有在環(huán)境變量“$C”中所標(biāo)識(shí)會(huì)話(huà)的遠(yuǎn)程系統(tǒng)上的遠(yuǎn)程命令(rcmd)get/process,該示例在前面示例上建立。根據(jù)以上命令行,同時(shí)起動(dòng)每個(gè)遠(yuǎn)程命令。該特征是現(xiàn)有命令行環(huán)境上的巨大增強(qiáng),在現(xiàn)有命令行環(huán)境中需要循環(huán)或類(lèi)似操作的編碼以起動(dòng)每個(gè)遠(yuǎn)程系統(tǒng)上的命令。這樣,該實(shí)現(xiàn)技術(shù)獲得了并發(fā)命令處理的性能優(yōu)點(diǎn),而不必串行地執(zhí)行每個(gè)遠(yuǎn)程命令。
另外,由聚合器255將每個(gè)單一遠(yuǎn)程命令的結(jié)果聚集到環(huán)境變量“$A”中。換言之,當(dāng)具有在會(huì)話(huà)“$C”中所引用連接的一遠(yuǎn)程系統(tǒng)返回其返回包(例如返回包226)時(shí),聚合器255在指定環(huán)境變量(在此例中為“$A”)中包括該數(shù)據(jù)。這樣,隨后的命令和任務(wù)可訪問(wèn)在多個(gè)遠(yuǎn)程系統(tǒng)上執(zhí)行該命令的結(jié)果。這些結(jié)果在環(huán)境變量中被存儲(chǔ)為經(jīng)聚集陣列。聚合器255存儲(chǔ)將每個(gè)結(jié)果包的源與環(huán)境變量中特定索引相關(guān)聯(lián)的信息。這樣,如果需要或請(qǐng)求,命令行環(huán)境200的組件可按每個(gè)機(jī)器、每個(gè)過(guò)程、或者每個(gè)應(yīng)用程序領(lǐng)域?yàn)榛A(chǔ)訪問(wèn)結(jié)果。在一實(shí)現(xiàn)中,經(jīng)聚集結(jié)果同時(shí)可用,例如當(dāng)所有結(jié)果返回時(shí)。或者,當(dāng)收到結(jié)果時(shí),通過(guò)環(huán)境變量它們可用。
類(lèi)似地,內(nèi)核引擎251可使命令行以非聚集方式執(zhí)行,從而在返回結(jié)果時(shí)命令可訪問(wèn)遠(yuǎn)程執(zhí)行的結(jié)果。例如,如果用戶(hù)對(duì)查找具有一定量多余空閑存儲(chǔ)器的多個(gè)遠(yuǎn)程計(jì)算裝置的任一個(gè)感興趣,則一旦找到第一個(gè)這種裝置就可適時(shí)中止該命令的執(zhí)行。在此情形中,聚合器255和內(nèi)核引擎251可交互使得結(jié)果可異步地進(jìn)行估算。這樣,結(jié)果的原始信息仍然可用。
可以想像當(dāng)命令旨在于很多遠(yuǎn)程裝置上(諸如數(shù)百或數(shù)千)執(zhí)行時(shí)的情形。這樣,不一次同時(shí)起動(dòng)所有命令可能就更好了。如果這樣,可使用“節(jié)流閥”功能257可用于性能增強(qiáng)。節(jié)流閥257與內(nèi)核引擎251和可能會(huì)話(huà)管理器253交互以限制會(huì)話(huà)中的連接數(shù)量,從而網(wǎng)絡(luò)或者管理器112的資源不會(huì)超負(fù)荷。例如,可在命令行上使用“-throttle 50”參數(shù)以指示任何時(shí)間不應(yīng)有超過(guò)50個(gè)連接是活動(dòng)的。該增強(qiáng)幫助防止管理器112的資源或網(wǎng)絡(luò)超載?;蛘?,節(jié)流閥257也可與其它基于性能的機(jī)制交互以調(diào)節(jié)遠(yuǎn)程命令執(zhí)行的性能影響。例如,節(jié)流閥257可與QOS(服務(wù)質(zhì)量)機(jī)制交互以限制網(wǎng)絡(luò)帶寬上的影響。另外,可配置節(jié)流閥257以與每個(gè)遠(yuǎn)程代理交互以調(diào)節(jié)每個(gè)遠(yuǎn)程系統(tǒng)上的性能影響,諸如處理器或存儲(chǔ)器負(fù)載等等。
圖3是可由上面所述命令行環(huán)境管理的網(wǎng)絡(luò)化環(huán)境中計(jì)算系統(tǒng)分級(jí)拓?fù)?00的功能框圖。可以想像,上述系統(tǒng)可用來(lái)向許多諸如大型企業(yè)網(wǎng)絡(luò)的遠(yuǎn)程裝置發(fā)出遠(yuǎn)程命令。相應(yīng)地,命令行系統(tǒng)實(shí)現(xiàn)分級(jí)拓?fù)?00以避免在作大量連接時(shí)使管理器112超載。
如圖所示,拓?fù)?00包括管理器112和計(jì)算裝置的分布式網(wǎng)絡(luò)301。分布式網(wǎng)絡(luò)301包括分級(jí)布局由服務(wù)器(即服務(wù)器A 302、服務(wù)器B 303、和服務(wù)器C 304)組成的計(jì)算裝置的第一級(jí)310,而每個(gè)服務(wù)器控制第二級(jí)312上的一組子計(jì)算裝置。第二級(jí)上的有關(guān)或多個(gè)計(jì)算裝置(例如服務(wù)器D 361)可具有它自己在第三級(jí)314上的子裝置等等。如圖3所示的分布式網(wǎng)絡(luò)301僅僅是說(shuō)明性的,可以理解復(fù)雜的企業(yè)網(wǎng)絡(luò)可具有多層服務(wù)器和數(shù)千計(jì)算裝置。
在該實(shí)現(xiàn)中,分布式網(wǎng)絡(luò)301中的若干計(jì)算裝置包括可用合作方式與管理器112交互的組件(例如代理308),以幫助分配命令指令的性能。更具體地,在管理器112上發(fā)出的命令行指令可影響分布式網(wǎng)絡(luò)301中的極大量計(jì)算裝置。相應(yīng)地,管理器112不是本地地起動(dòng)執(zhí)行該指令所必須的所有連接,而是將該任務(wù)分配給分布式網(wǎng)絡(luò)301中的若干子裝置??捎弥辽賰煞N方法執(zhí)行該分配。
首先,在管理器112不知道分布式網(wǎng)絡(luò)301布局的情形中,管理器112可向第一級(jí)310中的每個(gè)服務(wù)器發(fā)出命令指令,而用另外的指令使命令在受影響節(jié)點(diǎn)的經(jīng)標(biāo)識(shí)集合中的每個(gè)子裝置或任一子裝置上執(zhí)行。這樣,真正起動(dòng)每個(gè)連接的任務(wù)被分配給其它計(jì)算裝置。第一級(jí)310中的計(jì)算裝置可另外將某些執(zhí)行委托給第二級(jí)312中的下級(jí)計(jì)算裝置,諸如服務(wù)器D 361。
其次,在管理器112知道分布式網(wǎng)絡(luò)301布局并且能標(biāo)識(shí)哪些葉節(jié)點(diǎn)由哪些服務(wù)器控制時(shí),管理器112可將命令分解成子命令,用于具有受影響節(jié)點(diǎn)的分布式網(wǎng)絡(luò)301的每個(gè)分支。然后管理器112直接向控制器發(fā)出那些子命令用于受影響節(jié)點(diǎn)。實(shí)質(zhì)上,該技術(shù)使得管理器112能對(duì)分布式網(wǎng)絡(luò)301中哪個(gè)服務(wù)器或節(jié)點(diǎn)實(shí)行命令指令的真正執(zhí)行保持控管。另外,該技術(shù)簡(jiǎn)化了要由下級(jí)計(jì)算裝置執(zhí)行的任務(wù),因?yàn)樗鼈儾恍枰l(fā)現(xiàn)它們是否具有受影響子裝置。
應(yīng)當(dāng)注意,每個(gè)這些技術(shù)都簡(jiǎn)化了,因?yàn)榉祷亟Y(jié)果(參見(jiàn)圖2)包括用以標(biāo)識(shí)結(jié)果源的充足信息以及結(jié)果與之相關(guān)的命令指令。沒(méi)有該信息,管理器112和每個(gè)代理將需要協(xié)調(diào)以確??蓪⒎祷亟Y(jié)果歸屬于特定節(jié)點(diǎn)(如果需要該信息)。
圖4是一般示出可由過(guò)程400執(zhí)行用于遠(yuǎn)程執(zhí)行命令行指令至少一部分的步驟的流程圖。過(guò)程400在步驟401開(kāi)始,其中命令行由命令行執(zhí)行環(huán)境接收。盡管可接受任何適于實(shí)現(xiàn)所述技術(shù)的命令行執(zhí)行環(huán)境,但在共同待決的申請(qǐng)?zhí)枮?0/693,785題為“Administrative Tool Environment”(管理性工具環(huán)境)的于2003年10月24日提交的美國(guó)專(zhuān)利特別適合。該美國(guó)專(zhuān)利申請(qǐng)?zhí)貏e在此全部引入作為參考。
在步驟403,確定接收命令行包括要在一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)上執(zhí)行的至少一個(gè)命令。遠(yuǎn)程執(zhí)行包括在遠(yuǎn)程計(jì)算裝置上的執(zhí)行、本地計(jì)算裝置上的另一過(guò)程、或者同一本地過(guò)程中另一應(yīng)用領(lǐng)域的任務(wù)。
在步驟405和407,命令行環(huán)境使得對(duì)每個(gè)經(jīng)標(biāo)識(shí)遠(yuǎn)程系統(tǒng)的持續(xù)會(huì)話(huà)起動(dòng),并使每個(gè)遠(yuǎn)程系統(tǒng)執(zhí)行該遠(yuǎn)程命令?;蛘?,可使用包括對(duì)每個(gè)遠(yuǎn)程裝置的單獨(dú)連接的單個(gè)會(huì)話(huà)。如上所述,可對(duì)持續(xù)會(huì)話(huà)分配環(huán)境變量。另外,可使會(huì)話(huà)中的每個(gè)連接串行或并發(fā)地執(zhí)行遠(yuǎn)程命令。對(duì)這些步驟的性能增強(qiáng)如圖5所示并如下所述。
在步驟409,接收到命令遠(yuǎn)程執(zhí)行的結(jié)果。如上所述,所作結(jié)果必須是返回包或經(jīng)串行化對(duì)象的形式,該返回包或經(jīng)串行化對(duì)象包括執(zhí)行結(jié)果以及有關(guān)哪個(gè)遠(yuǎn)程節(jié)點(diǎn)執(zhí)行命令等等的其它標(biāo)識(shí)信息。
圖5是一般示出當(dāng)向大量遠(yuǎn)程裝置發(fā)出遠(yuǎn)程命令時(shí)用于增強(qiáng)命令行環(huán)境性能的過(guò)程500的邏輯流程圖。過(guò)程500在步驟501開(kāi)始,其中基于哪些受影響節(jié)點(diǎn)由控制器集合中的哪個(gè)控制器控管而將命令行分解成眾多子命令。然后,在步驟503,每個(gè)子命令被發(fā)給每個(gè)經(jīng)標(biāo)識(shí)控制器用于特定的控制器所影響的節(jié)點(diǎn)。最后,在步驟505,聚集從每個(gè)控制器返回的結(jié)果。因?yàn)槊總€(gè)結(jié)果包括有關(guān)起源節(jié)點(diǎn)的信息,聚集步驟不丟失有關(guān)哪個(gè)節(jié)點(diǎn)產(chǎn)生哪些結(jié)果的有價(jià)值信息(如果必需該信息)。
上述命令行環(huán)境具有比現(xiàn)有系統(tǒng)好的若干優(yōu)點(diǎn)。能持續(xù)會(huì)話(huà)的能力使遠(yuǎn)程過(guò)程能被多個(gè)命令重復(fù)使用。可將多個(gè)連接聚集成會(huì)話(huà),允許不借助工作線(xiàn)程等等而進(jìn)行遠(yuǎn)程命令的簡(jiǎn)單并發(fā)處理。而且執(zhí)行遠(yuǎn)程命令的任務(wù)可被分配給其它系統(tǒng)以增強(qiáng)性能。這些和其它優(yōu)點(diǎn)對(duì)本領(lǐng)域技術(shù)人員將變得顯然。
圖6示出了可在示例性管理工具環(huán)境中使用的示例性計(jì)算裝置。在非?;镜呐渲弥?,計(jì)算裝置600通常包括至少一個(gè)處理單元602和系統(tǒng)存儲(chǔ)器604。取決于計(jì)算裝置的準(zhǔn)確配置和類(lèi)型,系統(tǒng)存儲(chǔ)器604可以是易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等等)、或兩者的某些組合。系統(tǒng)存儲(chǔ)器604通常包括操作系統(tǒng)605、一個(gè)或多個(gè)應(yīng)用程序606,也可包括程序數(shù)據(jù)607。操作系統(tǒng)606包括基于組件的框架620,該框架支持組件(包括屬性和事件)、對(duì)象、繼承、多形性、反映,并提供基于面向?qū)ο蟮慕M件應(yīng)用編程接口(API),諸如華盛頓州Redmond的微軟公司制造的.NETTM框架。操作系統(tǒng)605還包括與基于組件的框架620交互以支持管理工具(未示出)開(kāi)發(fā)的管理工具框架200?;九渲迷趫D6中由虛線(xiàn)608內(nèi)的那些組件示出。
計(jì)算裝置600可具有附加特征或功能。例如,計(jì)算裝置600還可包括諸如磁盤(pán)、光盤(pán)、或磁帶的其它數(shù)據(jù)存儲(chǔ)裝置(可移動(dòng)和/或不可移動(dòng))。這種其它存儲(chǔ)器在圖6用可移動(dòng)存儲(chǔ)器609和不可移動(dòng)存儲(chǔ)器610示出。計(jì)算機(jī)存儲(chǔ)介質(zhì)可包括以用來(lái)存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其它數(shù)據(jù)的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)的介質(zhì)。系統(tǒng)存儲(chǔ)器604、可移動(dòng)存儲(chǔ)609和不可移動(dòng)存儲(chǔ)610都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的示例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字化多功能光盤(pán)(DVD)或其它光學(xué)存儲(chǔ)器、磁卡、磁帶、磁盤(pán)存儲(chǔ)器或其它磁性存儲(chǔ)裝置、或可用來(lái)存儲(chǔ)所需信息并可由計(jì)算裝置600訪問(wèn)的任何其它介質(zhì)。任何這種計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是裝置600的一部分。計(jì)算裝置600還可具有諸如鍵盤(pán)、鼠標(biāo)、筆、語(yǔ)音輸入裝置、觸摸輸入裝置等等的輸入裝置612。還可包括諸如顯示器、揚(yáng)聲器、打印機(jī)等等的輸出裝置614。這些裝置在本領(lǐng)域中是眾所周知的,無(wú)需在此贅述。
計(jì)算裝置600還可包含使裝置能與其它計(jì)算裝置618諸如在網(wǎng)絡(luò)上進(jìn)行通信的通信連接616。通信連接616是通信介質(zhì)的一個(gè)示例。通信介質(zhì)通常體現(xiàn)為計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其它諸如載波或其它傳輸機(jī)制的已調(diào)制數(shù)據(jù)的信號(hào),并包括任何信息傳輸介質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”意指具有以這種在信號(hào)中編碼信息的方式來(lái)設(shè)置或改變的一個(gè)或多個(gè)特征的信號(hào)。作為示例,而非限制,通信介質(zhì)包括諸如有線(xiàn)網(wǎng)絡(luò)或直接有線(xiàn)連接的有線(xiàn)介質(zhì),以及諸如聲學(xué)、RF、紅外和其它無(wú)線(xiàn)介質(zhì)的無(wú)線(xiàn)介質(zhì)。在此所用的術(shù)語(yǔ)計(jì)算機(jī)可讀介質(zhì)包括存儲(chǔ)介質(zhì)和通信介質(zhì)。
盡管特定實(shí)現(xiàn)和實(shí)施例的細(xì)節(jié)已如上作了描述,這樣的細(xì)節(jié)旨在滿(mǎn)足法律聲明義務(wù)而不是限制以下權(quán)利要求的范圍。因而,由權(quán)利要求書(shū)定義的本發(fā)明不受以上所述的特定特征的限制。相反,根據(jù)等效法令的適當(dāng)解釋?zhuān)鞠到y(tǒng)和方法以所附權(quán)利要求書(shū)適當(dāng)范圍內(nèi)的任何形式或者變體進(jìn)行權(quán)利要求的聲明。
權(quán)利要求
1.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令使能命令的遠(yuǎn)程執(zhí)行,其特征在于,所述指令包括接收包括遠(yuǎn)程命令的命令行指令,所述遠(yuǎn)程命令標(biāo)識(shí)要在遠(yuǎn)程系統(tǒng)上執(zhí)行的執(zhí)行任務(wù);起動(dòng)與至少兩個(gè)遠(yuǎn)程系統(tǒng)的會(huì)話(huà);以及使所述遠(yuǎn)程命令在所述至少兩個(gè)遠(yuǎn)程系統(tǒng)的每一個(gè)上執(zhí)行。
2.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述會(huì)話(huà)包括在其上接收所述命令行指令的系統(tǒng)之間的連接。
3.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述會(huì)話(huà)被起動(dòng)為執(zhí)行隨后可供遠(yuǎn)程命令使用的持續(xù)會(huì)話(huà)。
4.如權(quán)利要求3所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括接收具有第二遠(yuǎn)程命令的第二命令行指令,并使所述第二遠(yuǎn)程命令能使用所述持續(xù)會(huì)話(huà)來(lái)執(zhí)行。
5.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述遠(yuǎn)程系統(tǒng)包括遠(yuǎn)程計(jì)算裝置。
6.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述遠(yuǎn)程系統(tǒng)包括一備選過(guò)程。
7.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述遠(yuǎn)程系統(tǒng)包括一備選應(yīng)用程序領(lǐng)域。
8.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,使所述遠(yuǎn)程命令能夠被執(zhí)行包括把使所述遠(yuǎn)程命令能夠被執(zhí)行的步驟委托給一控制器,所述控制器與所述至少兩個(gè)遠(yuǎn)程系統(tǒng)的子集相關(guān)聯(lián)。
9.如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述兩個(gè)遠(yuǎn)程系統(tǒng)的每一個(gè)包括分級(jí)網(wǎng)絡(luò)拓?fù)渲械囊还?jié)點(diǎn),且所述控制器保留在所述至少兩個(gè)遠(yuǎn)程系統(tǒng)的子集和接收所述命令行指令的所述系統(tǒng)之間等級(jí)中的位置。
10.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述遠(yuǎn)程命令在所述至少兩個(gè)遠(yuǎn)程系統(tǒng)的每一個(gè)上并發(fā)地執(zhí)行。
11.如權(quán)利要求1所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括聚集執(zhí)行每個(gè)遠(yuǎn)程命令的結(jié)果。
12.如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述結(jié)果被聚集到一數(shù)組中。
13.如權(quán)利要求11所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述結(jié)果包括標(biāo)識(shí)所述結(jié)果所源自的遠(yuǎn)程系統(tǒng)的信息。
14.一種遠(yuǎn)程執(zhí)行命令的計(jì)算機(jī)可執(zhí)行方法,其特征在于,包括在本地系統(tǒng)上接收標(biāo)識(shí)遠(yuǎn)程系統(tǒng)的第一命令行;使會(huì)話(huà)在所述本地系統(tǒng)和遠(yuǎn)程系統(tǒng)之間被創(chuàng)建,所述會(huì)話(huà)包括與駐留于所述遠(yuǎn)程系統(tǒng)上的遠(yuǎn)程過(guò)程的連接;使遠(yuǎn)程命令在所述遠(yuǎn)程過(guò)程上執(zhí)行;以及把所述遠(yuǎn)程命令的結(jié)果存儲(chǔ)在與所述會(huì)話(huà)相關(guān)聯(lián)的環(huán)境變量中。
15.如權(quán)利要求14所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于,還包括使第二遠(yuǎn)程命令在所述遠(yuǎn)程過(guò)程中執(zhí)行并把所述第二遠(yuǎn)程命令的結(jié)果存儲(chǔ)在所述環(huán)境變量中。
16.如權(quán)利要求14所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于,使所述會(huì)話(huà)被創(chuàng)建包括創(chuàng)建所述環(huán)境變量,以及使所述會(huì)話(huà)與所述環(huán)境變量相關(guān)聯(lián)。
17.如權(quán)利要求16所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于,所述第一命令行還包括標(biāo)識(shí)與所述會(huì)話(huà)相關(guān)聯(lián)的所述環(huán)境變量的參數(shù)。
18.如權(quán)利要求14所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于,所述命令行還標(biāo)識(shí)多個(gè)遠(yuǎn)程系統(tǒng)。
19.如權(quán)利要求14所述的計(jì)算機(jī)可執(zhí)行方法,其特征在于,所述命令行還標(biāo)識(shí)在創(chuàng)建所述本地系統(tǒng)和遠(yuǎn)程系統(tǒng)之間會(huì)話(huà)中使用的證明。
20.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令用于執(zhí)行如權(quán)利要求14所述的方法。
21.一種具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),其特征在于,包括一會(huì)話(huà)管理器,其被配置用以創(chuàng)建和維護(hù)本地系統(tǒng)和一個(gè)或多個(gè)遠(yuǎn)程系統(tǒng)之間的會(huì)話(huà),每個(gè)會(huì)話(huà)能夠主控所述本地系統(tǒng)和遠(yuǎn)程系統(tǒng)之間的多個(gè)連接;一聚合器,其被配置用以接收命令的遠(yuǎn)程執(zhí)行的結(jié)果,所述結(jié)果的每一個(gè)與遠(yuǎn)程系統(tǒng)相關(guān)聯(lián),所述聚合器還被配置用以將所述結(jié)果聚集成一數(shù)組;以及一節(jié)流閥,其被配置用以在請(qǐng)求之后,限制在每個(gè)會(huì)話(huà)中活動(dòng)連接的數(shù)量。
22.如權(quán)利要求21所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述數(shù)組中的每個(gè)結(jié)果與所述結(jié)果所源自的遠(yuǎn)程系統(tǒng)相關(guān)聯(lián)。
23.如權(quán)利要求21所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述聚合器還被配置用以使所述結(jié)果以非聚集方式可供使用。
24.如權(quán)利要求21所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述聚合器還被配置用以將所述結(jié)果聚集到環(huán)境變量中,所述環(huán)境變量與由所述會(huì)話(huà)管理器所創(chuàng)建的會(huì)話(huà)相關(guān)聯(lián)。
25.如權(quán)利要求21所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述節(jié)流閥還被配置用以與其它基于性能機(jī)的制交互,以調(diào)節(jié)遠(yuǎn)程命令執(zhí)行的性能影響。
26.如權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述其它基于性能機(jī)制包括服務(wù)質(zhì)量機(jī)制。
27.如權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述其它基于性能機(jī)制包括遠(yuǎn)程系統(tǒng)上的代理,所述代理被配置用以調(diào)節(jié)所述遠(yuǎn)程系統(tǒng)上資源的影響。
28.如權(quán)利要求21所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括被配置用以管理所述若干組件的每一個(gè)之間信息流的內(nèi)核引擎。
29.如權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述內(nèi)核引擎還被配置用以把起動(dòng)一會(huì)話(huà)的任務(wù)委托給遠(yuǎn)程系統(tǒng)等級(jí)中的另一系統(tǒng)。
30.如權(quán)利要求21所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述遠(yuǎn)程系統(tǒng)包括遠(yuǎn)程計(jì)算裝置。
31.如權(quán)利要求21所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述遠(yuǎn)程系統(tǒng)包括一備選過(guò)程。
32.如權(quán)利要求21所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述遠(yuǎn)程系統(tǒng)包括一備選應(yīng)用程序領(lǐng)域。
全文摘要
命令行環(huán)境被配置用以接收隱含多個(gè)遠(yuǎn)程節(jié)點(diǎn)的命令行。該命令行環(huán)境被配置以建立對(duì)于每個(gè)隱含遠(yuǎn)程節(jié)點(diǎn)都持續(xù)的會(huì)話(huà),并起動(dòng)遠(yuǎn)程命令在這些節(jié)點(diǎn)上的執(zhí)行。會(huì)話(huà)可賦以變量,且遠(yuǎn)程執(zhí)行可并發(fā)地進(jìn)行。遠(yuǎn)程執(zhí)行的結(jié)果可接收并聚集到陣列中。命令行環(huán)境可將建立會(huì)話(huà)的任務(wù)分發(fā)到其它系統(tǒng)中以改進(jìn)性能。
文檔編號(hào)H04L12/24GK1969280SQ200480001253
公開(kāi)日2007年5月23日 申請(qǐng)日期2004年7月21日 優(yōu)先權(quán)日2004年1月16日
發(fā)明者D·W·雷, J·P·斯諾弗, R·錢(qián)德拉齊卡拉恩, M·C·S·沙斯特里 申請(qǐng)人:微軟公司