專利名稱:處理腳本內(nèi)容的外部配置的制作方法
處理腳本內(nèi)容的外部配置 背景背景和相關(guān)技術(shù)計(jì)算系統(tǒng)變革了人們工作和游戲的方式。計(jì)算系統(tǒng)以各種各樣的形式出 現(xiàn),包括膝上型計(jì)算機(jī)、臺式計(jì)算機(jī)、個人數(shù)字助理、電話、以及甚至諸如例 如冰箱和汽車等傳統(tǒng)上還沒有與計(jì)算系統(tǒng)相關(guān)聯(lián)的設(shè)備。計(jì)算系統(tǒng)甚至可包括 通過網(wǎng)絡(luò)相互連接的多個構(gòu)成計(jì)算系統(tǒng)。因此, 一些計(jì)算系統(tǒng)可以足夠小以適 合在手掌中,然而另一些則可遍布全球許多地區(qū)。不考慮其物理形式,計(jì)算系統(tǒng)是由硬件和軟件組成的。硬件包括最基本地 至少一個處理器和存儲器。軟件包括可被包含在存儲器或存儲中并且可由處理 器來訪問和執(zhí)行以便引導(dǎo)計(jì)算系統(tǒng)的全部功能的指令。因此,軟件對于啟用和 引導(dǎo)計(jì)算系統(tǒng)的功能是關(guān)鍵性的。在一典型的計(jì)算系統(tǒng)中的軟件通常包括一操作系統(tǒng)和各應(yīng)用程序。操作系 統(tǒng)通常提供在多個應(yīng)用程序間共有的核心功能。例如,操作系統(tǒng)提供應(yīng)用程序接口 (經(jīng)常被稱為"API"),該應(yīng)用程序接口向應(yīng)用程序提供底層文件系統(tǒng)、存儲器管理、安全性、聯(lián)網(wǎng)、用戶界面、以及其他核心功能。操作系統(tǒng)還在單 個計(jì)算系統(tǒng)上啟動、管理、以及終止多個進(jìn)程。"進(jìn)程"是本領(lǐng)域中用來描述包括可由該進(jìn)程中所包括的一個或多個正在 運(yùn)行的可執(zhí)行組件來共享的一資源集合的虛擬地址空間的術(shù)語。資源可包括進(jìn) 程標(biāo)識符、 一個或多個執(zhí)行線程、文件句柄、共享的存儲器、以及共享的處理 器時間。進(jìn)程可對在該進(jìn)程中運(yùn)行的可執(zhí)行組件施加約束,使得可適當(dāng)?shù)鼐S持 次序。例如,進(jìn)程可要求一特定類型的數(shù)據(jù)結(jié)構(gòu)或?qū)ο缶哂幸痪唧w結(jié)構(gòu),并且 可要求在該進(jìn)程中執(zhí)行的每個組件以一致的方式使用存儲器。"腳本"是用來描述可被解釋以便在運(yùn)行時期間在計(jì)算機(jī)可執(zhí)行指令實(shí)際 上由處理器執(zhí)行前即刻形成計(jì)算機(jī)可執(zhí)行指令的命令序列的術(shù)語。通常,命令 將被用來執(zhí)行特定的組件。由腳本調(diào)用的組件在調(diào)用該組件的腳本中暗示或表達(dá)的某一處理上下文中運(yùn)行。該處理上下文可包括組件運(yùn)行于其中的進(jìn)程以及 組件運(yùn)行于其中的安全上下文。例如,安全上下文可指定對于該組件的安全機(jī) 制是將用戶視作一特定實(shí)體,和/或在一特定機(jī)器上運(yùn)行該組件。令組件在一牛寺 定處理上下文中運(yùn)行可能是必要的或有利的。作為一具體示例,默認(rèn)地,腳本可調(diào)用在一特定進(jìn)程中運(yùn)行的組件。然而,該組件可能不與當(dāng)前進(jìn)程兼容。例如,該組件可能依賴對于進(jìn)程不可用的功能 庫,或者也許該組件可能并不像該進(jìn)程的上下文中所預(yù)期地那樣來運(yùn)行。另選 地或另外地,該腳本可能是由在該進(jìn)程的上下文中不可信的作者起草的。在這 些情況的任一種中,可更改腳本語言來指定組件將要在一不同的進(jìn)程中運(yùn)行。 另外,如果組件將要在一默認(rèn)的安全上下文之外運(yùn)行,則該安全上下文也將會 在腳本語言中被標(biāo)識。因此,只要一腳本組件的處理上下文在默認(rèn)的處理上下文之外,該腳本也 被改變來反映新的處理上下文。用此方式更改腳本可能是一個麻煩的過程。簡明概要訪問和解釋腳本來標(biāo)識一可執(zhí)行組件。處理上下文配置文件可然后被用來 標(biāo)識用于所標(biāo)識的可執(zhí)行組件的適當(dāng)?shù)奶幚砩舷挛摹L幚砩舷挛牡氖纠ǖ?不限于,所標(biāo)識的可執(zhí)行組件運(yùn)行于其中的進(jìn)程、在運(yùn)行之前要在該組件上執(zhí) 行的一個或多個適配、和/或于其中運(yùn)行該組件的安全上下文。處理上下文因此 不需要在實(shí)際的腳本本身中指定。提供本概要以便用簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一 些概念。本概要并不旨在標(biāo)識出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也 不旨在用于幫助確定所要求保護(hù)的主題的范圍。附圖簡述為了描述能夠獲得本發(fā)明的前述和其他優(yōu)點(diǎn)和特征的方式,將通過參考在 附圖中示出的其具體實(shí)施例來呈現(xiàn)以上簡述的本發(fā)明的更詳細(xì)描述。應(yīng)該理 解,這些附圖僅描述了本發(fā)明的典型實(shí)施例,因此不將其認(rèn)為是對本發(fā)明的范 圍的限制,本發(fā)明將通過使用附圖以附加的特性和細(xì)節(jié)來描述,在附圖中
圖1示出了其中可采用本發(fā)明的原理的一合適的計(jì)算環(huán)境; 圖2示出了用于在計(jì)算系統(tǒng)中標(biāo)識用于運(yùn)行腳本的特定處理上下文的方法 的流程圖;圖3示出了用于標(biāo)識與所標(biāo)識的可執(zhí)行組件相關(guān)聯(lián)的一個或多個處理上下文配置文件的方法的流程圖;圖4示出了與用于標(biāo)識圖2的特定處理上下文的方法相關(guān)聯(lián)的處理流程; 圖5A圖解地示出了處理,在該處理中, 一腳本的多個組件在單個進(jìn)程中運(yùn)行,但是改變了第二組件的處理上下文來反映該第二組件的某些適配要在執(zhí)行前發(fā)生;圖5B圖解地示出了處理,在該處理中, 一腳本的多個組件在單獨(dú)的進(jìn)程 中運(yùn)行,且在之前之前對這些組件之一可能實(shí)施某些預(yù)處理適配或其他處理上 下文;以及圖5C圖解地示出了處理,在該處理中,多個組件在單獨(dú)的進(jìn)程中運(yùn)行, 并且處理控制可在子進(jìn)程中的連續(xù)組件之間傳遞而不需要將控制傳回父進(jìn)程。詳細(xì)描述本發(fā)明涉及標(biāo)識與由一腳本執(zhí)行的一個或多個組件相關(guān)聯(lián)的處理上下文, 而不必參考該腳本本身中的處理上下文標(biāo)識。因此,如果處理上下文發(fā)生改變, 則腳本本身不必改變。相反,在標(biāo)識處理上下文時參考了與每個組件相關(guān)聯(lián)的一個或多個處理上下文配置文件。如果用于一腳本組件的處理上下文發(fā)生改 變,則只需更改配置文件,而非改變調(diào)用該組件的任何腳本。首先,將參考圖l來描述本發(fā)明的原理可在其中操作的一示例計(jì)算系統(tǒng)。 然后,將參考后續(xù)的圖2、 3、 4、 5A、 5B、 5C和5D來更詳細(xì)地描述本發(fā)明的 原理。本發(fā)明的各實(shí)施例可包括包含如以下所更詳細(xì)討論的各種計(jì)算機(jī)硬件的 專用或通用計(jì)算機(jī)。圖1示出了可被用來實(shí)現(xiàn)本發(fā)明的各特征的一示例計(jì)算系統(tǒng)100的示意 圖。所描述的計(jì)算系統(tǒng)僅僅是這一合適的計(jì)算系統(tǒng)的一個示例,且并不旨在提 出關(guān)于本發(fā)明的使用范圍和功能的任何限制。本發(fā)明也不應(yīng)被解釋為具有關(guān)于 圖1中所示出的組件中的任何一個或其組合的任何依賴或需求。計(jì)算系統(tǒng)現(xiàn)在正逐漸采用各種各樣的形式。計(jì)算系統(tǒng)可以是,例如手持式 設(shè)備、電器、膝上型計(jì)算機(jī)、臺式計(jì)算機(jī)、大型機(jī)、或分布式計(jì)算系統(tǒng)。在此 說明書及權(quán)利要求書中,術(shù)語"計(jì)算系統(tǒng)"被廣泛地定義為包括任何設(shè)備或系 統(tǒng)(或其組合),該設(shè)備或系統(tǒng)包括至少一個處理器,以及能夠在其上具有由 處理器的計(jì)算機(jī)可執(zhí)行指令的存儲器。該存儲器可采用任何形式并可取決于計(jì) 算系統(tǒng)的特性和形式。計(jì)算系統(tǒng)可分布在網(wǎng)絡(luò)環(huán)境中,并且可包括多個組成計(jì) 算系統(tǒng)。參考圖l,在其最基本的配置中,計(jì)算系統(tǒng)100通常包括至少一個處理單元102和存儲器104。存儲器104可以是易失性的、非易失性的、或兩者的某 種組合。易失性存儲器的一個示例包括隨機(jī)存取存儲器(RAM)。非易失性存 儲器的示例包括只讀存儲器(ROM)、閃存等等。術(shù)語"存儲器"也可在此處 被用來指代非易失性大容量存儲。這樣的存儲可以是可移動的或不可移動的, 并且可包括(但不限于)PCMCIA卡、磁盤和光盤、磁帶等等。如此處所使用的,術(shù)語"模塊"或"組件"可以指在計(jì)算系統(tǒng)上執(zhí)行的軟 件對象或例程。此處所描述的不同的組件、模塊、引擎、以及服務(wù)可被實(shí)現(xiàn)為 作為協(xié)議的一部分的在計(jì)算系統(tǒng)上執(zhí)行的對象或進(jìn)程(例如,作為單獨(dú)的線 程)。盡管此處所描述的系統(tǒng)和方法可用軟件來實(shí)現(xiàn),但是采用硬件以及軟件 和硬件的組合的實(shí)現(xiàn)也是可能的并且是被構(gòu)想的。在以下的描述中,參考由一個或多個計(jì)算系統(tǒng)執(zhí)行的動作來描述本發(fā)明的 各實(shí)施例。如果這些動作用軟件來實(shí)現(xiàn),則執(zhí)行該動作的相關(guān)聯(lián)的計(jì)算系統(tǒng)的 一個或多個處理器響應(yīng)于已執(zhí)行了計(jì)算機(jī)可執(zhí)行指令來引導(dǎo)計(jì)算系統(tǒng)的操作。 這樣的操作的一個示例涉及對數(shù)據(jù)的操縱。計(jì)算機(jī)可執(zhí)行指令(以及被操縱的 數(shù)據(jù))可被存儲在計(jì)算系統(tǒng)100的存儲器104中。計(jì)算系統(tǒng)100還可包含允許計(jì)算系統(tǒng)100通過例如網(wǎng)絡(luò)110來與其他計(jì)算 系統(tǒng)進(jìn)行通信的通信信道108。通信信道108是通信介質(zhì)的示例。通信介質(zhì)通 常以諸如載波或其他傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù) 結(jié)構(gòu)、程序模塊或其他數(shù)據(jù),并包括任何信息傳遞介質(zhì)。作為示例而非限制, 通信介質(zhì)包括諸如有線網(wǎng)絡(luò)和直接連線連接等有線介質(zhì),以及諸如聲學(xué)、RF、 紅外線和其他無線介質(zhì)等無線介質(zhì)。此處所使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)包括存儲介質(zhì)和通信介質(zhì)兩者。在本發(fā)明范圍中的各實(shí)施例還包括用于承載或在其上存儲計(jì)算機(jī)可執(zhí)行 指令或數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可由通用或?qū)S?計(jì)算機(jī)訪問的任何可用介質(zhì)。作為示例而非限制,這樣的計(jì)算機(jī)可讀介質(zhì)可包括RAM、 ROM、 EEPROM、 CD-ROM或其他光盤存儲、磁盤存儲或其他磁存 儲設(shè)備、或可被用來承載或存儲采用計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需 的程序代碼裝置并且可被通用或?qū)S糜?jì)算機(jī)訪問的任何其他介質(zhì)。當(dāng)通過網(wǎng)絡(luò) 或另一個通信連接(或者是硬連線、無線、或者是硬連線或無線的組合)來將 信息傳輸或提供給計(jì)算機(jī)時,該計(jì)算機(jī)適當(dāng)?shù)貙⒃撨B接視作計(jì)算機(jī)可讀介質(zhì)。 因此,任何這樣的連接都被適當(dāng)?shù)胤Q為計(jì)算機(jī)可讀介質(zhì)。上述的各種組合也應(yīng) 被包括在計(jì)算機(jī)可讀介質(zhì)的范圍中。計(jì)算可執(zhí)行指令包括例如使得通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備 執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。盡管以對結(jié)構(gòu)性特征和/或方法性動作 專用的語言描述了本主題,但要理解的是,在所附權(quán)利要求中定義的主題不一 定限于以上描述的具體特征或動作。相反,以上描述的具體特征和動作是作為 實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。圖2示出了用于在計(jì)算系統(tǒng)中標(biāo)識用于運(yùn)行腳本的特定處理上下文的方法 200的流程圖。計(jì)算系統(tǒng)可如上所述地針對圖1的計(jì)算系統(tǒng)100來構(gòu)成,然而 能夠執(zhí)行腳本和以其他方式適用于執(zhí)行本發(fā)明的各原理的任何計(jì)算系統(tǒng)也是 足夠的。圖4示出了處理流程400,包括可被用來實(shí)現(xiàn)圖2的方法200的各種 組件和數(shù)據(jù)。因此,圖2的方法200將頻繁地參考圖4的處理流程400來描述。首先,訪問要執(zhí)行腳本(動作201)。該腳本可通過接收來自另一個計(jì)算 系統(tǒng)的腳本、或通過訪問來自該計(jì)算系統(tǒng)內(nèi)部的源的腳本來訪問。例如,如果 方法200在圖1的計(jì)算系統(tǒng)100的上下文中執(zhí)行,則該腳本可從存儲器204訪 問。參考圖4,訪問模塊401訪問腳本411并將腳本411提供給進(jìn)一步沿著處 理流程400的各組件。用于訪問腳本的各機(jī)制在本領(lǐng)域內(nèi)是公知的,因此不在 此處詳細(xì)描述。腳本411可包括腳本命令行、多個腳本命令行和/或也許甚至只 有一個或多個命令行的一部分。例如,腳本411可以僅僅是腳本流水線命令的 一部分。接著,解釋腳本(動作202)來標(biāo)識要調(diào)用的一個或多個可執(zhí)行組件(動作203)。有大量常規(guī)的方式來解釋腳本由此來標(biāo)識要調(diào)用的一個或多個組件。本發(fā)明的各原理與那些常規(guī)方式中的任一種相一致,并且也很可能與尚待開發(fā) 的腳本解釋技術(shù)兼容,只要該腳本解釋允許標(biāo)識正由該腳本調(diào)用的組件。參考圖4,組件標(biāo)識模塊402從腳本訪問模塊401接收對腳本411的控制來允許迸 一步沿著處理流程400提供組件標(biāo)識符和相關(guān)聯(lián)的參數(shù)(共同被稱為元素 412)?;仡^參考圖2,對于每個所標(biāo)識的可執(zhí)行組件,執(zhí)行用于發(fā)現(xiàn)在其中應(yīng)至 少基于一個或多個處理上下文配置文件來執(zhí)行腳本的處理上下文的、功能性 的、面向結(jié)果的步驟。雖然此步驟可通過使用達(dá)到此目的的相對應(yīng)的動作的任 何組合來執(zhí)行,但步驟210被示為通過使用圖2中的組成動作211和212來完 成。具體而言,標(biāo)識與所標(biāo)識的可執(zhí)行組件相關(guān)聯(lián)的一個或多個處理上下文配 置文件(動作211)。圖3示出了一種所構(gòu)想的、用于標(biāo)識與所標(biāo)識的可執(zhí)行 組件相關(guān)聯(lián)的一個或多個處理上下文配置文件的方法300。標(biāo)識出所標(biāo)識的可 執(zhí)行組件的一個或多個特性與一個或多個配置文件之間的相關(guān)(動作301)。 然后,相關(guān)的一個或多個配置文件被標(biāo)識為一個或多個處理上下文配置文件 (動作302)。例如,也許單單可執(zhí)行組件的名稱就足以標(biāo)識一個或多個相關(guān)聯(lián)的處理上下文配置文件。組件依賴關(guān)系也可能在標(biāo)識相關(guān)聯(lián)的處理上下文配置文件時有用。例如,組件可為了依賴于一特定功能庫以便正確地執(zhí)行。作者、創(chuàng)建曰期、 版本號等等也可以是被用來標(biāo)識一個或多個相關(guān)聯(lián)的配置文件的相關(guān)特性。參考圖4,處理上下文標(biāo)識和訪問模塊403使用由組件標(biāo)識模塊402提供的組件 標(biāo)識符和參數(shù)來進(jìn)一步向下沿著處理流程400提供配置文件413A和相關(guān)聯(lián)的 組件標(biāo)識符413B (其在某些實(shí)施例中可被包括在配置文件中)。處理上下文配置文件然后被用來標(biāo)識相關(guān)聯(lián)的組件的處理上下文。該組件 的處理上下文可包括例如下列各項(xiàng)中的任何一個或多個于其中運(yùn)行所標(biāo)識的 可執(zhí)行組件的進(jìn)程的標(biāo)識、在運(yùn)行之前要在所標(biāo)識的可執(zhí)行組件上執(zhí)行的一個 或多個適配(例如,改變一個字段的名稱或類型,或執(zhí)行某些計(jì)算)、于其中運(yùn)行所標(biāo)識的可執(zhí)行組件的安全上下文(例如,用戶安全上下文的標(biāo)識、或于其上運(yùn)行該組件的機(jī)器的標(biāo)識)。參考圖4,處理上下文確定模塊404使用配 置文件413A和組件標(biāo)識符413B來為每個組件標(biāo)識處理上下文414A。現(xiàn)在將提供若干具體的示例來闡明以上更概括地所描述的各原理。在第一 示例中,考慮包括三個組件,即C1接著C2接著C3的順序執(zhí)行的腳本。這可 由序列C1|C2|C3來表示?,F(xiàn)在假設(shè)對組件C2做出了使其不再可以或可能使該 組件在和組件Cl和C2相同的進(jìn)程中運(yùn)行的某些改變。在那種情況下,如果 用一種可擴(kuò)展標(biāo)記語言(XML)格式來表示,則對應(yīng)于組件C2的處理上下文 配置文件可如下表示。<CMDName= "C2" ><OutOfProcess>True</OutOfProcess> </CMD>對這一配置文件的使用使改變配置文件的處理上下文容易得多。例如,如 果改變組件C2使得在與組件Cl和C3相同的進(jìn)程中運(yùn)行組件C2再一次是有 利的,則可再次改變處理上下文配置文件來反映此改變而不是改變引用組件 C2的所有腳本。例如,可改變配置文件來表示如下<CMDName= "C2" ><OutOfProcess>False</OutOfProcess> </CMD>在此示例中,配置文件可按照組件的名稱來標(biāo)識。然而,如先前所提及的, 該配置文件可按照諸如作者、創(chuàng)建日期等該組件的其他特性來標(biāo)識。如以上所提及的,處理上下文可涉及比組件是在進(jìn)程中還是進(jìn)程外運(yùn)行多 得多的內(nèi)容。例如,采用指定對應(yīng)于組件C2的一復(fù)雜得多的處理上下文的以 下配置文件<CMDName= "C2" ><Version>V2</V ersion><Adaptor>LMD=>MD</Adaptor><OutOfProcess>True</OutOfProcess><RunAsUser>Bob</RunAsUser><HostComputer>Bobs</HostComputer> </CMD>此處,對應(yīng)于組件C2的處理上下文配置文件指定需要什么版本的解釋器 以在該進(jìn)程中運(yùn)行。因此,如果組件C2需要一個與組件C1和C3不同版本的 解釋器,則組件C2將會在進(jìn)程之外運(yùn)行,除非不同版本的解釋器在相同的進(jìn) 程中是可能的。"Adaptor (適配器)"元素指定在執(zhí)行該組件之前要執(zhí)行的一適配。此 處,LMD (最后修改日期)字段被改為MD (修改日期)字段。這允許組件 C2用允許該組件在組件執(zhí)行序列中執(zhí)行的方式來修改。參考圖4,適配組件 405可根據(jù)在處理上下文414A中指定的任何適配來修改由組件標(biāo)識符414B所 標(biāo)識的組件。適配模塊405然后將處理上下文415A和經(jīng)適配的組件415B提 供給調(diào)用組件406。"OutOfProcess (進(jìn)程外)"字段指定組件C2將在進(jìn)程之外運(yùn)行。 "RimAsUser"字段指定組件C2將具有與在所標(biāo)識的用戶做出相同的請求時所 準(zhǔn)許的相同的安全上下文。在此示例情況下,只要在Bob請求時系統(tǒng)允許該操 作,則系統(tǒng)就會允許正由組件C2執(zhí)行的所有操作。"HostComputer (主計(jì)算機(jī))"字段指定組件C2在其上執(zhí)行的主計(jì)算機(jī)。 在此情況下,組件C2將要在被標(biāo)識為"Bobs"的主計(jì)算機(jī)上運(yùn)行。如先前所 提及的,因?yàn)?RunAsUser (作為用戶運(yùn)行)"字段指定"Bob",所以該執(zhí) 行使用該主計(jì)算機(jī)上對應(yīng)于Bob的安全上下文來執(zhí)行?;仡^參考圖2,調(diào)用組件然后在所標(biāo)識的處理上下文中調(diào)用所標(biāo)識的可執(zhí) 行組件(動作2B)。此調(diào)用可在與解釋了腳本的計(jì)算系統(tǒng)相同或不同的計(jì)算 系統(tǒng)上執(zhí)行。例如,在以上的示例中,如果主計(jì)算機(jī)"Bobs"不是與運(yùn)行調(diào)用模塊406的計(jì)算機(jī)相同的計(jì)算機(jī),則調(diào)用模塊406可執(zhí)行有助于在被標(biāo)識為 "Bobs"的適當(dāng)?shù)闹饔?jì)算機(jī)上遠(yuǎn)程地調(diào)用組件C2的任何動作。無論組件是否 被遠(yuǎn)程地調(diào)用,調(diào)用模塊406都可返回組件C2執(zhí)行的結(jié)果。圖5A示出了一個示例,在其中,所有三個組件C1、 C2和C3在同一個進(jìn) 程中運(yùn)行,但組件C2被適配以便與在同組件Cl和C3相同的進(jìn)程中運(yùn)行兼容。 每個進(jìn)程例示了其自己的用于解釋腳本的解釋器。圖5B示出了在其中組件C2 在進(jìn)程之外運(yùn)行的一個示例。在此情況下,組件C2還可如在配置文件中所指 定地被適配。圖5C示出了在其中四個組件如由序列C1|C2|C31C4所表示地順序執(zhí)行的 一個示例。在此情況下,組件C1和C4在進(jìn)程A中運(yùn)行,而組件C2和C3在 進(jìn)程B中運(yùn)行。在此情況下,處理上下文確定模塊404可使用對應(yīng)于組件C2 和C3的處理上下文配置文件來標(biāo)識該組件不應(yīng)在進(jìn)程A中運(yùn)行。處理上下文 確定模塊404然后做出另一個關(guān)于組件C2和C3是否是兼容的使得其可在進(jìn) 程A之外的相同的進(jìn)程中運(yùn)行的判定。例如,如果組件C2和C3依靠不能在 相同的進(jìn)程中運(yùn)行的不同的功能庫,則組件C2和C3將不得不在進(jìn)程A之外 的不同的進(jìn)程中運(yùn)行。然而,在此情況下,處理上下文確定模塊404決定了組件C2和C3可在 相同的進(jìn)程B中運(yùn)行。在這樣的情況下,因?yàn)樵趯⑻幚砜刂苽鬟f回到進(jìn)程B 以便執(zhí)行組件C3之前,處理控制不需要從組件C2返回到進(jìn)程A,所以有處 理效率。相反,在相同的進(jìn)程B中,組件C2的執(zhí)行可平滑地過渡到組件C3 的執(zhí)行。因此,本發(fā)明的各原理提供了一種用于指定和更改執(zhí)行腳本組件的處理上 下文的,而不需要更改腳本本身來指定處理上下文的靈活的機(jī)制。本發(fā)明可用其他具體形式來實(shí)施而不背離其精神或本質(zhì)特征。所描述的各 實(shí)施例在所有方面都被認(rèn)為是說明性的而非限制性的。本發(fā)明的范圍因此由所 附權(quán)利要求而不是由先前的描述來指示。落入權(quán)利要求的等效技術(shù)方案的含義 和范圍中的所有變化都被包含在其范圍中。
權(quán)利要求
1.一種用于標(biāo)識用于在計(jì)算系統(tǒng)中運(yùn)行腳本的特定處理上下文的方法,所述方法包括解釋腳本來標(biāo)識要調(diào)用的可執(zhí)行組件的動作;標(biāo)識與所標(biāo)識的可執(zhí)行組件相關(guān)聯(lián)的一個或多個處理上下文配置文件的動作;以及使用所述一個或多個處理上下文配置文件來標(biāo)識用于所標(biāo)識的可執(zhí)行組件的處理上下文的動作。
2. 如權(quán)利要求1所述的方法,其特征在于,所述處理上下文包括在其中 運(yùn)行所標(biāo)識的可執(zhí)行組件的進(jìn)程的標(biāo)識。
3. 如權(quán)利要求1所述的方法,其特征在于,所述處理上下文包括在運(yùn)行 之前要在所標(biāo)識的可執(zhí)行組件上執(zhí)行的一個或多個適配。
4. 如權(quán)利要求1所述的方法,其特征在于,所述處理上下文包括在其中 運(yùn)行所標(biāo)識的可執(zhí)行組件的安全上下文。
5. 如權(quán)利要求4所述的方法,其特征在于,所述安全上下文包括用戶安 全上下文的標(biāo)識。
6. 如權(quán)利要求1所述的方法,其特征在于,所述解釋的動作是由可執(zhí)行 解釋組件來執(zhí)行的。
7. 如權(quán)利要求1所述的方法,其特征在于,所述標(biāo)識與所標(biāo)識的可執(zhí)行 組件相關(guān)聯(lián)的一個或多個處理上下文配置文件的動作包括標(biāo)識所標(biāo)識的可執(zhí)行組件的一個或多個特性與一個或多個配置文件之間 的相關(guān)的動作;以及將所述相關(guān)的一個或多個配置文件標(biāo)識為所述一個或多個處理上下文配 置文件的動作。
8. 如權(quán)利要求7所述的方法,其特征在于,所述一個或多個特性至少包 括所標(biāo)識的可執(zhí)行組件的名稱。
9. 如權(quán)利要求7所述的方法,其特征在于,所述一個或多個特性至少包 括所標(biāo)識的可執(zhí)行組件的依賴關(guān)系。
10. 如權(quán)利要求l所述的方法,其特征在于,還包括在所標(biāo)識的處理上下文中調(diào)用所標(biāo)識的可執(zhí)行組件的動作。
11. 如權(quán)利要求IO所述的方法,其特征在于,在所標(biāo)識的處理上下文中 調(diào)用所標(biāo)識的可執(zhí)行組件的動作是在與執(zhí)行所述解釋動作的計(jì)算系統(tǒng)不同的 計(jì)算系統(tǒng)上執(zhí)行的。
12. 如權(quán)利要求10所述的方法,其特征在于,在所標(biāo)識的處理上下文中 調(diào)用所標(biāo)識的可執(zhí)行組件的動作是在與執(zhí)行所述解釋動作的計(jì)算系統(tǒng)相同的 計(jì)算系統(tǒng)上執(zhí)行。
13. —種包括在其上具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)程 序產(chǎn)品,所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行一種標(biāo)識用于在計(jì)算系統(tǒng)中運(yùn)行腳本 的特定處理上下文的方法,所述計(jì)算機(jī)可執(zhí)行指令包括用于訪問腳本的至少一條計(jì)算機(jī)可執(zhí)行指令;用于解釋所述腳本來標(biāo)識一可執(zhí)行組件的至少一條計(jì)算機(jī)可執(zhí)行指令;以及用于發(fā)現(xiàn)在其中應(yīng)至少基于一個或多個處理上下文配置文件來執(zhí)行所述 腳本的處理上下文的至少一條計(jì)算機(jī)可執(zhí)行指令。
14. 如權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述處理上下 文包括以下各項(xiàng)的至少一個在其中運(yùn)行所標(biāo)識的可執(zhí)行組件的進(jìn)程的標(biāo)識;在運(yùn)行之前要在所標(biāo)識的可執(zhí)行組件上執(zhí)行的一個或多個適配;或者 在其中運(yùn)行所標(biāo)識的可執(zhí)行組件對的安全上下文。
15. 如權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述處理上下文包括以下各項(xiàng)的至少兩個在其中運(yùn)行所標(biāo)識的可執(zhí)行組件的進(jìn)程的標(biāo)識;在運(yùn)行之前要在所標(biāo)識的可執(zhí)行組件上執(zhí)行的一個或多個適配;或者 在其中運(yùn)行所標(biāo)識的可執(zhí)行組件對的安全上下文。
16. 如權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述計(jì)算機(jī)可 執(zhí)行指令還包括-用于在所發(fā)現(xiàn)的處理上下文中調(diào)用所標(biāo)識的可執(zhí)行組件的至少一條計(jì)算 機(jī)可執(zhí)行指令。
17. 如權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述一個或多 個計(jì)算機(jī)可讀介質(zhì)是物理存儲器和/或存儲介質(zhì)。
18. —種或多種其上具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令在由計(jì)算系統(tǒng)的處理器執(zhí)行時使所述計(jì)算系統(tǒng)在該計(jì)算系統(tǒng)的系統(tǒng)存儲器中 例示下列各項(xiàng)-被配置成訪問和解釋腳本來標(biāo)識一可執(zhí)行組件的解釋組件;以及 被配置成使用與所標(biāo)識的可執(zhí)行組件相關(guān)的一個或多個處理上下文配置文件由此來標(biāo)識用于所標(biāo)識的可執(zhí)行組件的處理上下文的處理上下文確定模塊。
19. 如權(quán)利要求18所述的一個或多個計(jì)算機(jī)可讀介質(zhì),其特征在于,所述處理上下文包括下列各項(xiàng)的至少一個在其中運(yùn)行所標(biāo)識的可執(zhí)行組件的進(jìn)程的標(biāo)識;在運(yùn)行之前要在所標(biāo)識的可執(zhí)行組件上執(zhí)行的一個或多個適配;或者 在其中運(yùn)行所標(biāo)識的可執(zhí)行組件對的安全上下文。
20.如權(quán)利要求18所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)可讀介質(zhì)是物理存儲器和/或存儲介質(zhì)。
全文摘要
訪問和解釋腳本來表示一可執(zhí)行組件。處理上下文配置文件可然后被用來標(biāo)識用于所標(biāo)識的可執(zhí)行組件的適當(dāng)?shù)奶幚砩舷挛?。處理上下文的示例包括但不限于,所?biāo)識的可執(zhí)行組件將要在其中運(yùn)行的進(jìn)程、在運(yùn)行之前要在該組件上執(zhí)行的一個或多個適配、和/或于其中運(yùn)行該組件的安全上下文。處理上下文因此不需要在實(shí)際的腳本本身中指定。所標(biāo)識的各組件然后可在所標(biāo)識的處理上下文中執(zhí)行。
文檔編號G06F17/00GK101336429SQ200680051784
公開日2008年12月31日 申請日期2006年12月28日 優(yōu)先權(quán)日2006年1月25日
發(fā)明者B·G·帕耶特, D·J·黃, J·P·斯諾弗 申請人:微軟公司