亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

聲明性配置元素的制作方法

文檔序號:9732006閱讀:442來源:國知局
聲明性配置元素的制作方法
【專利說明】聲明性配置元素
[000。 背景
[0002] 強制性編程語言需要用戶定義機器應(yīng)當執(zhí)行W實現(xiàn)期望結(jié)果的特定命令序列。相 反,聲明性編程語言允許用戶定義程序應(yīng)當在不描述要采取的特定措施的情況下實現(xiàn)的最 終結(jié)果。聲明性程序描述了期望結(jié)果,而未明確地列出機器要執(zhí)行的步驟。
[0003] 在執(zhí)行重復(fù)性任務(wù)(諸如在分布式或云計算環(huán)境中配置大量服務(wù)器)時,自動化此 類任務(wù)是有益的。在將強制性腳本語言用于自動化時,對于可能遇到的每一種不同的情形, 實現(xiàn)任務(wù)所需的所有措施必須被包括在程序中W確保將完成任務(wù)。結(jié)果,將腳本語言用于 自動化可能是容易出錯的過程,因為每次執(zhí)行任務(wù)用戶就必須驗證實現(xiàn)了期望結(jié)果(例如, 檢查錯誤代碼)。
[0004] 概述
[0005] 提供本概述W便W簡化的形式介紹W下在詳細描述中進一步描述的一些概念。本 概述并非旨在標識出要求保護的主題的關(guān)鍵特征或必要特征,亦非旨在用于限制要求保護 的主題的范圍。
[0006] 如本文中所描述的期望狀態(tài)配置(DSC)提供了在外殼語言內(nèi)本地執(zhí)行聲明性配置 和使用嵌入到后期綁定的外殼語言的前期綁定的示意化數(shù)據(jù)構(gòu)造的能力。運允許將聲明性 編程元素并入強制性語言(諸如WindowsPowei'Shell奔或者其他操作系統(tǒng)外殼)、W及腳本 語言(諸如Ruby和Python)。然后,腳本作者可將強制性外殼語言的力量與使用聲明性語言 的便利組合并且可在相同的語言中使用強制性和聲明性語法兩者。
[0007] -個實施例提供了在單一語言中將強制性語言的力量與使用聲明性語言的便利 組合的能力。DSC使用戶能夠確保數(shù)據(jù)中屯、的組件或者其他部署具有正確的配置。DSC提供 了一組語言擴展,并且提供了實現(xiàn)基于標準的管理元素的聲明性、自主性和可重復(fù)的部署、 配置和順應(yīng)。DSC使開發(fā)者或者其他用戶能夠定義目標節(jié)點(例如,計算機、機器、或者其他 設(shè)備)的準確配置并且在沒有配置偏移的情況下實現(xiàn)連續(xù)部署。
[000引附圖簡述
[0009] 為了進一步闡明本發(fā)明的實施例的W上W及其他優(yōu)點和特征,將通過參考附圖呈 現(xiàn)對本發(fā)明實施例的更具體的描述。應(yīng)當領(lǐng)會,運些附圖只描繪了本發(fā)明的典型實施例,并 且因此不被認為限制它的范圍。通過使用附圖,本發(fā)明將被描述和解釋為具有附加特質(zhì)和 細節(jié),其中:
[0010] 圖1解說具有并入示例實施例的配置腳本的代碼。
[OOW 圖2解說組合強制性和聲明性元素的腳本。
[0012]圖3是根據(jù)一個實施例的解說將源代碼部署到節(jié)點的框圖。
[OOU]圖4是根據(jù)一個實施例的解說在將MOF模型部署到目標節(jié)點中使用的組件的框圖。
[0014] 圖5是解說一種用于支持管理自動化語言或外殼語言中的聲明性語法的過程或方 法的流程圖。
[0015] 圖6是解說一種用于配置計算設(shè)備的過程或方法的流程圖。
[0016] 圖7解說一種用于使用聲明性配置元素實現(xiàn)期望狀態(tài)配置系統(tǒng)的實施例的合適的 計算和聯(lián)網(wǎng)環(huán)境的示例。
[0017] 詳細描述
[001引在一個實施例中,管理自動化語言或外殼語言(諸如WindowsPowei'Shel做、Ruby 或Python)通過對外殼解析器作出通用改變且作出特定的具體添加 W支持聲明性語法和結(jié) 構(gòu)化、示意化數(shù)據(jù)來支持聲明性語法。例如,可對外殼解析器作出W下改變:
[0019] 改變解析器W支持動態(tài)關(guān)鍵字(即,向外殼解析器引入新令牌,接著將其標識為關(guān) 鍵字)。運可通過定義新DynamicKeyword類完成。
[0020] DynamicKeyword類還定義對關(guān)鍵字而言可用的一列性質(zhì)。
[0021] 動態(tài)關(guān)鍵字所支持的語法將限于一組固定形式:
[0022]-腳本框
[0023] -屬性/值對
[0024] 動態(tài)關(guān)鍵字映射到其中定義動態(tài)關(guān)鍵字的相同模塊內(nèi)的功能。在執(zhí)行時,將調(diào)用 該功能。
[0025] 另一方面,聲明性編程語言允許用戶將系統(tǒng)建模為一組資源。聲明性程序允許用 戶指導機器在不知道或不敘述將提前需要的特定步驟的情況下創(chuàng)建特定資源。運允許機器 確定每次運行任務(wù)需要哪一種措施。
[0026] 可要求用戶在編寫用于所選操作系統(tǒng)的腳本時使用特定配置、外殼、或者域特定 編程語言。如果外殼是強制性語言,則用戶可能無法使用該操作系統(tǒng)的聲明性編程概念。將 聲明性編程能力并入現(xiàn)有強制性語言外殼可能是有用的。存在純粹是聲明性的現(xiàn)有配置或 外殼語言。在一些情況下,運些語言增加對強制性語法的支持,但是只通過支持另一語言運 樣做。相應(yīng)地,現(xiàn)有解決方案要求使用那些配置系統(tǒng)的作者使用兩種不同的語言。
[0027] 綁定運些語言之間的差異還防止在現(xiàn)有配置管理系統(tǒng)中合并強制性和聲明性概 念。外殼通常是后期綁定的,其中直到運行時才知道類型。另一方面,基于模式的聲明性語 言是前期綁定的,其中在編譯時知道類型。綁定的差異使其難W混合前期綁定和后期綁定 的語言。實施例還將前期綁定的語言添加到后期綁定或動態(tài)的語言W構(gòu)建示意化數(shù)據(jù)。通 過統(tǒng)一運些概念,創(chuàng)建理解配置管理同時維持對宿主語言的支持的模型。
[0028] 該模式標識需要(或者不需要)哪些性質(zhì)、性質(zhì)的名稱等。運與其中直到執(zhí)行時才 可標識此類錯誤的動態(tài)語言中的正常命令調(diào)用相反。因此,動態(tài)語言的命令調(diào)用在運行時 需要許多測試來驗證操作。
[0029] 在一個實施例中,可通過定義創(chuàng)建規(guī)定區(qū)域且允許用戶定義該區(qū)域內(nèi)的編程偽像 的新關(guān)鍵字將前期綁定的概念添加到后期綁定的語言,該編程偽像用作產(chǎn)生數(shù)據(jù)的功能。 在所定義區(qū)域的領(lǐng)域內(nèi),程序可導入引入新關(guān)鍵字的資源模型,其中運些關(guān)鍵字在該區(qū)域 的范圍內(nèi)。運允許將不同組的關(guān)鍵字導入到同一文件的不同區(qū)域。每一個關(guān)鍵字在該文件 的特定區(qū)域的范圍內(nèi)。
[0030] 圖1解說具有并入示例實施例的配置腳本120和103的代碼101。腳本102和103導入 使用運些腳本配置的一組機器的自定義資源模塊。"配置"關(guān)鍵字指示該文件在配置區(qū)域中 并且配置擴展適用。應(yīng)當理解,"配置"只是動態(tài)關(guān)鍵字的一個非限制性示例。
[0031 ]通過配置管理器自動地加載一基本資源集。另外,腳本可使用動態(tài)關(guān)鍵字導入用 于要配置的一組機器的一組自定義模塊。圖1的示例中的資源模塊Rl、R2和R3建立在現(xiàn)有外 殼機制中的資源上,并且利用運些資源。
[0032] 腳本102定義在配置Cl的區(qū)域中使用的特定類型的資源-Rl和R2。該配置可橫跨多 個機器。
[0033] 腳本103定義配置區(qū)域C2,其導入一組不同的資源-Rl和R3。腳本103繼續(xù)構(gòu)建命名 為吁〇〇"、"bar"和"baz"的立個節(jié)點。在運些節(jié)點上,腳本103接著創(chuàng)建被稱為V的資源Rl 的實例,并且分別將性質(zhì)V'和"b"設(shè)置為值1和2。
[0034] 腳本102和103定義可用作代碼的其他部分中的資源的配置的公共位。然后,可在 不需要每次都重寫配置步驟的情況下使用運些配置。使用只對特定區(qū)域有效的動態(tài)關(guān)鍵字 來定義運些配置。
[0035] W此方式編寫資源提供了一種用于在生成腳本時錯誤檢查的手段。例如,如果性 質(zhì)V'在資源Rl中不存在,則腳本編輯器可在腳本103的第7行中生成錯誤。運是因為編譯器 可具有資源Rl的完整模式并且可提前知道性質(zhì)V'不在該模式中。
[0036] 在腳本101中,單詞"配置"是用于定義區(qū)域的新動態(tài)關(guān)鍵字。每一種配置中的關(guān)鍵 字和性質(zhì)在該區(qū)域的范圍內(nèi)是唯一的。例如,關(guān)鍵字"節(jié)點"對區(qū)域C2 103是新的,并且只在 該區(qū)域中是有效的(即,"節(jié)點"在區(qū)域Cl中是無效的)。如在圖1中所使用的關(guān)鍵字"配置"是 后期綁定的示例,然而,與典型的強制性語言不同,前期綁定也在該示例中發(fā)生,因為在每 一個新區(qū)域的范圍內(nèi)確認腳本(例如,確認區(qū)域C2中的性質(zhì)V'和"b"存在且應(yīng)當為數(shù)字)。
[0037] 每一種資源限于其配置的范圍并且在該配置區(qū)域W外是不可用的。運允許在不同 的配置中使用不同的資源或者不同版本的資源。例如,資源R2(區(qū)域Cl)可用于配置Web服務(wù) 器應(yīng)用X,而資源R3(區(qū)域C2)可用于配置Web服務(wù)器應(yīng)用Y。運些應(yīng)用只在其各自配置區(qū)域內(nèi) 是可用的。相應(yīng)地,具有配置擴展CU W及因此具有資源R2)的機器被加載有Web服務(wù)器應(yīng)用 X,而具有配置擴展C2(并且由此具有資源R3)的機器被加載有Web服務(wù)器應(yīng)用Y。
[0038] 例如,應(yīng)用X和Y可W是競爭產(chǎn)品,諸如來自不同公司的Web服務(wù)器。需要應(yīng)用X的機 器被創(chuàng)建有配置Cl,而
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1