国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      云應用的動態(tài)插件的制作方法

      文檔序號:6533435閱讀:199來源:國知局
      云應用的動態(tài)插件的制作方法
      【專利摘要】本文描述了能夠為應用動態(tài)安裝插件的技術。使代理插件在指定應用的一部署(例如,跨云環(huán)境中的多個機器或“內(nèi)部部署”)中運行。指定的應用被封包以包括代理插件。代理插件被用于基于關于指定應用的配置信息動態(tài)安裝選定插件。配置信息指示要響應于指定應用正被部署而被安裝的選定插件。
      【專利說明】云應用的動態(tài)插件
      [0001] 背景
      [0002] 插件是向軟件應用添加一個或多個選定能力的軟件組件。插件可被用于使得第三 方開發(fā)者能夠創(chuàng)建擴展應用的能力、支持容易添加的新特征(例如,剖析、診斷等等)、減少 應用的大小等。開發(fā)者傳統(tǒng)上在應用的部署之前就在應用中包括插件。關于用于安裝插件 的常規(guī)技術的一個限制是應用所有者(其不必然是應用開發(fā)者)通常不能夠基于當前需求 在無需重構和重新部署應用的情況下添加、移除和/或更新插件。重構和重新部署應用可 能是耗時和/或成本高昂的過程。而且,這樣的常規(guī)技術通常提供在許多不同應用內(nèi)封包 的相同插件的許多副本,這可能會妨礙插件的更新版本的廣泛部署。例如,如果插件的新版 本解決了一安全性弱點,用該插件封包的每個應用傳統(tǒng)上被重新封包并重新部署;這一重 新封包和重新部署可能相對緩慢發(fā)生。從而,常規(guī)技術可導致增加封包大小、存儲成本和/ 或傳輸成本。
      [0003] 在一些常規(guī)技術中,開發(fā)者創(chuàng)建他們自己的啟動任務,這些啟動任務利用現(xiàn)有的 安裝機制(例如,web平臺安裝工具)來安裝應用的先決條件(即依賴關系)。應用的先 決條件是不被包括在應用中、該應用需要以便正確運行的軟件組件。例如,如果應用是基 于JAVA?的,則JAVA?運行時可以是應用的先決條件。例如,如果應用是PHP tm應用,則 PHP?運行時可以是應用的先決條件。每一啟動任務通常使用腳本來調(diào)用命令行實用程序來 安裝應用所需的特定產(chǎn)品。盡管以這種方式使用腳本對于各個應用而言不會過度繁重,但 是腳本通常是每個開發(fā)者為每一應用手寫和測試的。對于安裝這樣的組件,還沒有標準、通 用、穩(wěn)健的機制為人所知。而且,如果應用需要一組不同的先決條件(例如,先決條件的新 版本),則可能有必要重構和重新部署應用以便安裝和執(zhí)行該組不同的先決條件。再一次, 對于在部署后安裝這樣的組件,不存在標準、通用、穩(wěn)健的機制。


      【發(fā)明內(nèi)容】

      [0004] 本文描述了為應用動態(tài)安裝插件的各種方案等等。描述了其中標識了關于指定應 用的配置信息的方法。配置信息指示要響應于指定應用正被部署而被安裝的從存儲在所部 署的應用可訪問的一位置中的一個或多個插件中選擇的選定插件。使代理插件在指定應用 的部署中運行。例如,部署可跨云環(huán)境中的多個機器執(zhí)行。在另一示例中,部署可"內(nèi)部部 署(on premises)"(即,在一個或多個本地機上)執(zhí)行。指定的應用被封包以包括代理插 件。代理插件被用于基于配置信息動態(tài)安裝選定插件。從而,這樣的選定插件在本文中可 被互換地稱為"動態(tài)插件"。
      [0005] 描述了包括標識模塊、因果關系模塊和安裝模塊的系統(tǒng)。安裝模塊被配置成標識 關于指定應用的配置信息。配置信息指示要響應于指定應用正被部署而被安裝的從存儲在 所部署的應用可訪問的一位置中的一個或多個插件中選擇的選定插件。因果關系模塊被配 置成使代理插件在指定應用的部署(例如,跨云環(huán)境中的多個機器或"內(nèi)部部署")中運行。 指定的應用被封包以包括代理插件。安裝模塊被配置成使用代理插件來基于配置信息動態(tài) 安裝選定插件。
      [0006] 描述了包括計算機可讀介質(zhì)的計算機程序產(chǎn)品,計算機可讀介質(zhì)上記錄有用于使 得基于處理器的系統(tǒng)能夠關于指定應用動態(tài)安裝選定插件的計算機程序邏輯。計算機程序 產(chǎn)品包括第一、第二,和第三程序邏輯模塊。第一程序邏輯模塊用于使得基于處理器的系統(tǒng) 能夠標識關于指定應用的配置信息。配置信息指示要響應于指定應用正被部署而被安裝的 從存儲在所部署的應用可訪問的一位置中的一個或多個插件中選擇的選定插件。第二程序 邏輯模塊用于使得基于處理器的系統(tǒng)能夠使代理插件在指定應用的部署(例如,跨云環(huán)境 中的多個機器或"內(nèi)部部署")中運行。指定的應用被封包以包括代理插件。第三程序邏輯 模塊用于使得基于處理器的系統(tǒng)能夠使用代理插件來基于配置信息動態(tài)安裝選定插件。
      [0007] 提供本概述是為了以簡化的形式介紹將在以下【具體實施方式】中進一步描述的概 念選擇。本概述并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制 所要求保護主題的范圍。此外,注意到本發(fā)明不限于在詳細描述和/或本文的其它章節(jié)中 所述的特定實施例。本文呈現(xiàn)這些實施例僅用于說明性的用途?;诒疚乃拿枋?, 其它實施例對于相關領域的技術人員將是顯而易見的。

      【專利附圖】

      【附圖說明】
      [0008] 本文結合的并且組成本說明書的一部分的附圖示出了本發(fā)明的各實施例,并且還 與本描述一起用于解釋所涉及的原理以及使相關領域的技術人員能夠?qū)崿F(xiàn)和使用所公開 的技術。
      [0009] 圖1是根據(jù)一實施例的示例計算機系統(tǒng)的框圖。
      [0010] 圖2是根據(jù)一實施例的圖1中所示的動態(tài)插件安裝模塊的示例實現(xiàn)的框圖,示出 了提交插件供開發(fā)者在應用中使用。
      [0011] 圖3是根據(jù)一實施例的圖1中所示的動態(tài)插件安裝模塊的示例實現(xiàn)的框圖,示出 了開發(fā)者選擇應用的依賴關系。
      [0012] 圖4是根據(jù)一實施例的圖1中所示的動態(tài)插件安裝模塊的示例實現(xiàn)的框圖,示出 了開發(fā)者為應用選擇插件。
      [0013] 圖5是根據(jù)一實施例的圖1中所示的動態(tài)插件安裝模塊的示例實現(xiàn)的框圖,示出 了如分別在圖3和4中所示的、所選依賴關系和插件的安裝和執(zhí)行。
      [0014] 圖6-9描繪了根據(jù)各實施例的用于為應用動態(tài)安裝插件的示例方法的流程圖。
      [0015] 圖10是根據(jù)一實施例的圖1所示的動態(tài)插件安裝模塊的另一示例實現(xiàn)的框圖。
      [0016] 圖11描繪了其中可實現(xiàn)各實施例的示例計算機。
      [0017] 通過下面的結合附圖對本發(fā)明進行的詳細說明,所公開的技術的特點和優(yōu)點將變 得更加顯而易見,在附圖中,類似的附圖標記在整個說明書中標識對應的元素。在附圖中, 相同的參考標號一般指相同的、功能上相似的和/或結構上相似的元素。其中元素第一次 出現(xiàn)的附圖由對應的參考標號中最左側的數(shù)字指示。

      【具體實施方式】
      [0018] I.引言
      [0019] 以下詳細描述參考示出本發(fā)明的示例性實施例的附圖。但是,本發(fā)明的范圍不限 于這些實施例,而是由所附權利要求書定義。因此,諸如所示實施例的修改版本之類的在附 圖所示之外的實施例仍然由本發(fā)明所包含。
      [0020] 本說明書中對"一個實施例"、"實施例"、"示例實施例"等的引用指的是所述實施 例可包括特定的特征、結構或特點,但是每一實施例不一定包括該特定的特征、結構或特 點。此外,這些短語不一定指相同的實施例。此外,當結合實施例描述具體特征、結構或特性 時,應當理解在相關領域的技術人員的知識范圍內(nèi)能夠結合其他實施例來實現(xiàn)具體特征、 結構或特性,無論是否被顯式地描述。
      [0021] II.示例實施例
      [0022] 本文描述的示例實施例能夠為應用動態(tài)安裝插件。根據(jù)示例實施例,使代理插件 在指定應用的部署中運行。例如,部署可跨云環(huán)境中的多個機器執(zhí)行。在另一示例中,部署 可"內(nèi)部部署(on premises)"(即,在一個或多個本地機上)執(zhí)行。指定的應用被封包以 包括代理插件。代理插件被用于基于關于指定應用的配置信息動態(tài)安裝選定插件。從而, 這樣的選定插件在本文中可被互換地稱為"動態(tài)插件"。配置信息指示要響應于指定應用正 被部署而被安裝的選定插件。
      [0023] 與用于安裝插件的常規(guī)技術相比,本文描述的示例技術具有各種益處。例如,示例 技術可使得用戶(例如,應用開發(fā)者、應用所有者等)能夠基于當前的需求在不需要應用的 重構和/或重新部署的情況下關于應用的部署添加、移除和/或更新插件和/或應用的依 賴關系。例如,示例技術可提供用于(例如,在應用已被部署之后)安裝插件和/或依賴關 系的標準、通用、穩(wěn)健的機制。從而,示例技術與常規(guī)技術相比,可消費更少的時間和/或更 少的資源。例如,使用本文所述的技術可導致與常規(guī)技術相比的較小的封包大小、較少的存 儲成本、和/或較少的傳輸成本。
      [0024] 圖1是根據(jù)一實施例的示例計算機系統(tǒng)100的框圖。一般來說,計算機系統(tǒng)100操 作來響應于從用戶(例如,應用開發(fā)者)接收的請求(如超文本傳輸協(xié)議(HTTP)請求)向 所述用戶提供信息。信息可包括文檔(如網(wǎng)頁、圖像、視頻文件等等)、可執(zhí)行程序的輸出、 和/或任何其他合適類型的信息。根據(jù)本文所述的示例實施例,計算機系統(tǒng)100為應用動 態(tài)安裝插件。例如,如果應用開發(fā)者使用計算機系統(tǒng)100開發(fā)應用,計算機系統(tǒng)100可使代 理插件在應用的部署中運行,然后使用代理插件為應用動態(tài)安裝所選插件。關于用于為應 用動態(tài)安裝插件的技術的細節(jié)在以下討論中提供。
      [0025] 如圖1所示,計算機系統(tǒng)100包括多個用戶計算機系統(tǒng)102A-102M、網(wǎng)絡104、多個 服務器106A-106N以及插件源110。使用公知的網(wǎng)絡通信協(xié)議通過網(wǎng)絡104實現(xiàn)用戶系統(tǒng) 102A-102M、服務器106A-106N以及插件源110之間的通信。網(wǎng)絡104可以是廣域網(wǎng)(如因 特網(wǎng))、局域網(wǎng)(LAN)、另一類型的網(wǎng)絡、或它們的組合。
      [0026] 插件源110是能夠與服務器106A-106N通信的處理系統(tǒng)。處理系統(tǒng)的示例是包括 能夠根據(jù)指令集操縱數(shù)據(jù)的至少一個處理器的系統(tǒng)。例如,處理系統(tǒng)可以是計算機、個人數(shù) 字助理等。插件源110被配置成提供插件112供動態(tài)插件安裝模塊108進一步處理,所述 處理將在以下更詳細討論。例如,插件源110可響應于從動態(tài)插件安裝模塊108接收到對 插件112的請求而提供插件112。
      [0027] 用戶系統(tǒng)102A-102M是能夠與服務器106A-106N通信的處理系統(tǒng)。用戶系統(tǒng) 102A-102M被配置成向服務器106A-106N提供請求來請求存儲在服務器106A-106N上(或 經(jīng)服務器以其他方式可訪問)的信息。例如,用戶可使用用戶所擁有的或以其他方式用戶 可訪問的用戶系統(tǒng)102上部署的客戶端(如web瀏覽器、web爬行器、或其他類型的客戶端) 來發(fā)起執(zhí)行計算機程序的請求。根據(jù)一些示例實施例,用戶系統(tǒng)102A-102M能夠訪問由服 務器104A-104N托管(host)的域(如網(wǎng)站),使得用戶系統(tǒng)102A-102M可訪問通過所述域 可用的信息。這樣的域可包括網(wǎng)頁,所述網(wǎng)頁可作為超文本標記語言(HTML)文檔和在其中 被鏈接的對象(如文件)來提供。
      [0028] 將認識到,任何一個或多個用戶系統(tǒng)102A-102M都可與任何一個或多個服務器 106A-106N通信。盡管圖1中用戶系統(tǒng)102A-102M被描繪為臺式計算機,但是相關領域的技 術人員將理解用戶系統(tǒng)102A-102M可包括任何啟用客戶端的系統(tǒng)或設備,包括但不限于臺 式計算機、膝上型計算機、平板計算機、個人數(shù)字助理、蜂窩電話等等。
      [0029] Servers 106A-106N are processing systems that are capable of communicating with user systems 102A-102M and plugin source (s)HO.月艮務器 106A-106N是能夠與用戶系統(tǒng)102A-102M和插件源110通信的處理系統(tǒng)。服務器106A-106N 被配置成執(zhí)行響應于從用戶接收到請求而向用戶提供信息的計算機程序。例如,信息可包 括文檔(如網(wǎng)頁、圖像、視頻文件等等)、可執(zhí)行程序的輸出、或任何其他合適類型的信息。 根據(jù)某些示例實施例,服務器106A-106N被配置成托管各個網(wǎng)站,使得網(wǎng)站可由計算機系 統(tǒng)100的用戶訪問。
      [0030] 第一服務器106a被示為包括動態(tài)插件安裝模塊108。動態(tài)插件安裝模塊108被配 置成將從插件源110接收的插件112轉(zhuǎn)發(fā)到所部署的應用可訪問的一位置。例如,動態(tài)插件 安裝模塊108可響應于向插件源110提供對插件112的請求而接收插件112。動態(tài)插件安 裝模塊108還被配置成標識關于指定應用的配置信息。配置信息指示要響應于指定應用正 被部署而被安裝的從存儲在所部署的應用可訪問的位置中的插件112選擇的選定插件。動 態(tài)插件安裝模塊108還被配置成使代理插件在指定應用的部署(例如,跨云環(huán)境中的多個 機器或"內(nèi)部部署")中運行。指定的應用被封包以包括代理插件。動態(tài)插件安裝模塊108 還被配置成使用代理插件來基于配置信息動態(tài)安裝選定插件。以下參考圖2-10更詳細討 論用于為應用動態(tài)安裝插件的一些示例技術。
      [0031] 應注意,動態(tài)插件安裝模塊108的實例被包括在包含指定應用的每一服務器上。 動態(tài)插件安裝模塊108的每一實例使代理插件在在其上包括動態(tài)插件安裝模塊108的機器 上安裝并運行動態(tài)插件。
      [0032] 出于說明的目的而不旨在為限制,動態(tài)插件安裝模塊108被示為容納在第一服務 器106A中。將認識到,動態(tài)插件安裝模塊108的實例可被容納在服務器106A-106N的任何 一個或多個中。
      [0033] 動態(tài)插件安裝模塊108可按照各種方式實現(xiàn),以便為應用動態(tài)安裝插件,包括被 實現(xiàn)為硬件、軟件、固件或其任何組合。例如,動態(tài)插件安裝模塊108可被實現(xiàn)為配置成在 一個或多個處理器中執(zhí)行的計算機程序代碼。在另一示例中,動態(tài)插件安裝模塊108可被 實現(xiàn)為硬件邏輯/電子電路。在一實施例中,動態(tài)插件安裝模塊108可被實現(xiàn)為片上系統(tǒng) (SoC)。每個SoC可包括一集成電路芯片,該集成電路芯片包括以下一個或多個:處理器(如 微控制器、微處理器、數(shù)字信號處理器(DSP)等等)、存儲器、一個或多個通信接口、和/或用 于執(zhí)行其功能的進一步的電路和/或嵌入的固件。
      [0034] 圖2-5描繪了根據(jù)各實施例的動態(tài)插件安裝模塊200、300、400和500,它們是圖 1中所示的動態(tài)插件安裝模塊108的示例實現(xiàn)。圖2示出了根據(jù)一實施例提交插件供開發(fā) 者在應用中使用。如圖2中所示,動態(tài)插件安裝模塊200包括動態(tài)代理門戶202、塊(blob) 存儲204和封包工具206。動態(tài)代理門戶202截取來自開發(fā)者的向塊存儲204添加插件的 請求(例如指令)、更新安裝在塊存儲204中的插件和/或基于請求從塊存儲204移除插 件。例如,動態(tài)代理門戶202可根據(jù)來自第一開發(fā)者的上傳請求來向塊存儲204添加選定 插件。動態(tài)代理門戶202可根據(jù)來自第一開發(fā)者和/或其他開發(fā)者的更新請求,更新選定 插件。動態(tài)代理門戶202可根據(jù)來自第一開發(fā)者或另一開發(fā)者的移除請求從塊存儲204移 除選定插件。插件中的每一個可具有任何合適的功能。例如,插件中的一個或多個可執(zhí)行 關于應用的診斷操作(例如,監(jiān)視問題、標識問題根源、調(diào)試、剖析、控制等)。
      [0035] 插件可包括任何合適數(shù)目的組件(例如文件)。例如,插件可包括一個或多個可 執(zhí)行二進制代碼、一個或多個支持庫、插件清單等。插件清單是描述插件的配置(例如,設 置)的文件(例如,可擴展標記語言(XML)文件)。例如,插件清單可指示對插件需要哪些 配置值。動態(tài)代理門戶202可提供用戶接口,該用戶接口使得用戶能夠指定對應于插件的 相應配置的配置值。
      [0036] 如圖2中所示,出于說明目的,標記為"Plugin, cspluginx"的插件212包括標記 為 "PluginAgent. exe" 的第一文件 208 和標記為 "Plugin, csplugin" 的第二文件 210。封 包工具206能夠組合文件208和210以創(chuàng)建插件212,如圖2中所示。然而,將認識到開發(fā) 者可組合文件208和210來創(chuàng)建插件212。
      [0037] 無論如何,經(jīng)由動態(tài)代理門戶202來上傳插件212。例如,開發(fā)者可使用部署在用 戶系統(tǒng)(例如,用戶系統(tǒng)102A-102M之一)上的客戶端來上傳插件212。插件212可被配 置成具有任何合適的格式(例如,基于開放封包約定的格式)。封包工具206可在插件212 經(jīng)由動態(tài)代理門戶202上傳之前將插件212封包成前述格式。在一個示例實施例中,封包 工具206在插件212經(jīng)由動態(tài)代理門戶202上傳之前提供在線形式供開發(fā)者完成。在另一 示例實施例中,動態(tài)代理門戶202向開發(fā)者提供在線形式。
      [0038] 動態(tài)代理門戶202生成標記為"PluginFeed. xml"的饋源214,它包括插件212、關 于插件212的位置的位置信息以及包括用于安裝插件212的指令的安裝信息。該饋源例如 可以是web平臺安裝工具(WebPI)饋源,然而將認識到,饋源可以是任何合適類型的饋源。 web PI饋源是使得web平臺安裝工具能夠定位和安裝web平臺安裝工具被指示來安裝的插 件和/或依賴關系的配置文件。在一個示例中,插件212可被定義為饋源214內(nèi)的虛擬產(chǎn) 品。根據(jù)這一示例,虛擬產(chǎn)品標識插件212的依賴關系。安裝信息可包括用于解壓插件212 的指令。饋源214可以是web平臺安裝工具兼容的,盡管示例實施例的范圍在這一方面不 受限制。出于說明目的,定義饋源的代碼片段的一個非限定性示例在以下的章節(jié)III. A中 提供。動態(tài)代理門戶202向塊存儲204提供插件212和饋源214。
      [0039] 塊存儲204是公共的、網(wǎng)絡可訪問(例如web可訪問)存儲。塊存儲204存儲插件 212和饋源214以及經(jīng)由動態(tài)代理門戶202上傳的任何其它插件及其相應的饋源。塊存儲 204可以是任何合適類型的存儲。存儲的一種類型是數(shù)據(jù)庫。例如,塊存儲204可以是關系 數(shù)據(jù)庫、實體關系數(shù)據(jù)庫、對象數(shù)據(jù)庫、對象關系數(shù)據(jù)庫、可擴展標記語言(XML)數(shù)據(jù)庫等。
      [0040] 圖3示出了根據(jù)一實施例的開發(fā)者選擇應用的依賴關系。如圖3中所示,動態(tài)插 件安裝模塊300包括動態(tài)代理門戶202、塊存儲204和接口 320。動態(tài)代理門戶202和塊存 儲204能夠如以上參考圖2所述地操作。動態(tài)代理門戶202截取來自開發(fā)者的關于應用的 安裝依賴關系的請求(例如,指令)。
      [0041] 接口 320提供可用于關于應用的安裝的依賴關系的視覺表示。例如,接口 320示 出了依賴關系A、B和C的相應的視覺表示322A、322B和322C。選擇框324A-324C對應于 相應的依賴關系A、B和C。用戶可選擇選擇框324A來使依賴關系A關于應用來被安裝;用 戶可選擇選擇框324B來使依賴關系B關于應用來被安裝,以此類推。
      [0042] 如圖3中所示,選擇框324A和324C被選擇,且選擇框324B不被選擇。從而,動態(tài) 代理門戶202生成標記為"ProductFeed. xml"的產(chǎn)品饋源316,以包括依賴關系A和C而 不包括依賴關系B。動態(tài)代理門戶202生成標記為"AggregatedFeed. xml"的聚集的饋源 318,以包括饋源214和316。饋源316和318可以是web平臺安裝工具兼容的,盡管示例實 施例的范圍在這一方面不受限制。動態(tài)代理門戶202向塊存儲204提供饋源316和318。
      [0043] 塊存儲204存儲饋源316和318以及插件212和饋源214。塊存儲204所存儲的 每一饋源可對應于一已知的依賴關系或一未知的依賴關系。已知的依賴關系是在應用開發(fā) 時已知的依賴關系。例如,諸如.丨ava?執(zhí)行框架的執(zhí)行框架是已知依賴關系的一個示例類 型。未知的依賴關系是在應用開發(fā)時不知道的依賴關系。例如,性能測量插件可構成未知 的依賴關系。應注意到,可在應用的部署被啟動之后,為關于應用的安裝選擇未知的依賴關 系。
      [0044] 圖4示出了根據(jù)一實施例的開發(fā)者為應用選擇插件。如圖4中所示,動態(tài)插件安裝 模塊400包括動態(tài)代理門戶202、塊存儲204和接口 420。動態(tài)代理門戶202和塊存儲204 能夠如以上參考圖2和3所述地操作。動態(tài)代理門戶202截取來自開發(fā)者的關于應用安裝 插件的請求(例如,指令)。
      [0045] 接口 420提供可用于關于應用的安裝的插件的視覺表示。例如,接口 420示出了 插件A、B和C的相應的視覺表示422A、422B和422C。選擇框424A-424C對應于相應的插件 A、B和C。用戶可選擇選擇框424A來使插件A關于應用來被安裝;用戶可選擇選擇框424B 來使插件B關于應用來被安裝,以此類推。用戶還可配置插件(例如,指定插件的設置)。
      [0046] 如圖4中所示,選擇框424A和424C被選擇,且選擇框424B不被選擇。從而,動態(tài) 代理門戶202修改產(chǎn)品饋源316以包括插件A和C的插件饋源。注意,插件B的插件饋源不 被添加到產(chǎn)品饋源316,因為選擇框424B未被選擇。動態(tài)代理門戶202響應于選擇框424A 和424C被選擇和/或響應于從用戶接收配置指令生成關于插件A和C的標記為"Settings, xml"的設置426。動態(tài)代理門戶202向塊存儲204提供設置426以便存儲在其中。
      [0047] 動態(tài)代理門戶202不在顯式公開的位置中存儲設置426。例如,設置426可包括 敏感數(shù)據(jù)(例如,數(shù)據(jù)庫連接串)。在用于維護這樣的敏感數(shù)據(jù)的安全的一個示例技術中, 在非可瀏覽的容器中使用基于全局唯一標識符(基于GUID)的URI來存儲設置426。盡管 URI技術是公開的,但用蠻力方法訪問URI是相對不可行的。將認識到,這僅是一個示例技 術,且可采用其它技術來補充或代替這一示例技術。
      [0048] 出于說明目的,定義通過對兩個插件的選擇而生成的饋源的代碼片段的非限定性 示例在以下的章節(jié)III. B中提供。出于說明目的,定義通過對兩個插件的選擇而生成的配 置文件的代碼片段的非限定性示例在以下的章節(jié)III. C中提供。
      [0049] 圖5示出了根據(jù)一實施例的如分別在圖3和4中所示的所選依賴關系和插件的安 裝和執(zhí)行。如圖5中所示,動態(tài)插件安裝模塊500包括動態(tài)代理門戶202和塊存儲204,它 們能夠如以上參考圖2-4所述地操作。應用528在圖5中被示為包括角色530和代理插件 532。角色530定義應用528的操作。代理插件532擔當應用528的代理。例如,代理插件 532提供動態(tài)理解其上安裝應用528的網(wǎng)絡的拓撲的能力。因為云環(huán)境中的機器(例如,物 理機器和/或虛擬機)通常位于防火墻之后,應用528的拓撲可能相當難以直接確定。從 而,代理插件532負責確定與應用528相關聯(lián)的虛擬機包括什么構成部分。一旦應用528 的拓撲被確定,代理插件532可部署其它插件、這些插件的依賴關系以及應用與相關位置 的依賴關系,然后初始化并運行這些插件和依賴關系。
      [0050] 出于說明目的,且不旨在限制,代理插件532包括WebPI代理534和動態(tài)代理536。 WebPI代理534被配置成安裝如分別在圖3和4中所示的所選依賴關系和插件。動態(tài)代理 536被配置成執(zhí)行如分別在圖3和4中所示的所選插件。
      [0051] WebPI代理534使用web平臺安裝工具的庫和應用編程接口(API)來讀取聚集的 饋源318,來確定要下載和安裝哪些依賴關系和插件。例如,WebPI代理534向動態(tài)代理門戶 202提供查詢(例如,查詢538)。查詢包括對聚集的饋源318和與應用528的部署相關聯(lián)的 部署標識符(ID)的請求。動態(tài)代理門戶202將查詢重定向到塊存儲204中對應于基于查 詢中的部署ID的統(tǒng)一資源標識符(URI,諸如統(tǒng)一資源定位符(URL)或統(tǒng)一資源名(URN)) 的存儲位置。WebPI代理534從對應于URI的存儲位置下載聚集的饋源318用于安裝如分 別在圖3和4中所示的所選依賴關系和插件。
      [0052] 在一個示例中,WebPI代理534可在應用528內(nèi)被配置成使用預定饋源來安裝來 自該饋源的預定的一組產(chǎn)品(例如,一個或多個依賴關系和/或一個或多個插件)或在預 定饋源中沒有指定產(chǎn)品時安裝"默認"產(chǎn)品。默認的產(chǎn)品可由預定饋源內(nèi)"默認"關鍵詞到 產(chǎn)品的關聯(lián)來指示。
      [0053] 在另一示例中,如果WebPI代理534未被特別配置,則WebPI代理534可向web應 用請求饋源。WebPI代理534可提供與應用528的部署相關聯(lián)的部署ID,使得web應用將 WebPI代理534重定向到與部署相關聯(lián)的饋源。如果未指定饋源或沒有饋源與應用528的 部署相關聯(lián),則WebPI代理534可不安裝如分別在圖3和4中所示的所選依賴關系和/或 插件。
      [0054] 動態(tài)代理536向動態(tài)代理門戶202提供查詢(例如,查詢538)。查詢包括對設置 426和與應用528的部署相關聯(lián)的部署標識符(ID)的請求。動態(tài)代理門戶202將查詢重定 向塊存儲204中對應于基于查詢中的部署ID的URI的存儲位置。動態(tài)代理536從對應于 URI的存儲位置下載設置426以用于如圖4中所示的所選插件的執(zhí)行。設置426可以(或 可以不)包括關于依賴關系的設置。
      [0055] 在一個示例中,動態(tài)代理536可在應用528內(nèi)被配置成使用標識要執(zhí)行的插件和 這些插件的配置設置的預定配置文件。在另一示例中,如果動態(tài)代理536未被特別配置,則 動態(tài)代理536可向web應用請求配置文件。動態(tài)代理536可提供與應用528的部署相關聯(lián) 的部署ID,使得web應用將動態(tài)代理536重定向到與部署相關聯(lián)的配置文件。如果未指定 配置文件或沒有配置文件與應用528的部署相關聯(lián),則動態(tài)代理536可不執(zhí)行如分別在圖 3和4中所示的所選插件。
      [0056] 在一示例實施例中,對于每一被配置的插件,動態(tài)代理536定位相應的插件清單 (例如,在本地機上)。動態(tài)代理536然后執(zhí)行在清單內(nèi)指示的每一二進制代碼。如果存在 與插件相關聯(lián)的配置設置,動態(tài)代理536就經(jīng)由環(huán)境變量將配置設置傳遞給插件。如果在 插件清單中指定等待插件停止執(zhí)行的指令,則動態(tài)代理536等待該插件停止執(zhí)行。否則,動 態(tài)代理536移動至下一配置的插件。當所有配置的插件已被執(zhí)行時,動態(tài)代理536停止執(zhí) 行。
      [0057] 在另一示例實施例中,動態(tài)代理536的操作模擬平臺的啟動加載器進程的行為, 啟動加載器進程運行隨應用528封包的插件。動態(tài)代理536從而可減少(例如最小化)作 為應用528的一部分運行的插件和作為這一動態(tài)情形的一部分運行的插件之間的體系結 構差異。一些插件可能能夠在兩種環(huán)境中執(zhí)行而無需對插件的改變。
      [0058] 應注意,其上安裝了應用528的網(wǎng)絡的拓撲可從動態(tài)代理門戶202拉取信息,然后 基于動態(tài)代理門戶202中的設置配置其本身。這不同于傳統(tǒng)上用于試圖發(fā)現(xiàn)網(wǎng)絡拓撲的推 送技術。
      [0059] 圖6-9描繪了根據(jù)各實施例的用于為應用動態(tài)安裝插件的示例方法600、700、800 和900的流程圖。流程圖600、700、800和900可例如由圖1中所示的系統(tǒng)100的動態(tài)插件 安裝模塊108執(zhí)行。出于說明性目的,關于圖10所示的動態(tài)插件安裝模塊1000描述了流 程圖600、700、800和900,根據(jù)一實施例,動態(tài)插件安裝模塊1000是動態(tài)插件安裝模塊108 的另一示例。如圖10中所示,動態(tài)插件安裝模塊1000包括標識模塊1002、因果關系模塊 1004、安裝模塊1006、執(zhí)行模塊1008、接口模塊1010、選擇模塊1012、生成模塊1014、確定模 塊1016和存儲1018?;谟嘘P流程圖600、700、800和900的討論,進一步的結構及操作實 施例對于相關領域的技術人員將是顯而易見的。
      [0060] 如圖6所示,流程圖600的方法在步驟602處開始。在步驟602,標識關于指定應 用的配置信息。配置信息指示要響應于指定應用正被部署而被安裝的從存儲在所部署的應 用可訪問的一位置中的一個或多個插件中選擇的選定插件。配置信息可以是專用于所指定 的應用的應用專用配置信息。例如,配置信息可按照其安裝文件和/或指定應用的描述來 定義指定應用的內(nèi)容供人類消費。在一示例實現(xiàn)中,標識模塊1002標識配置信息1026。配 置信息1026指示要響應于指定應用1030正被部署而被安裝的從存儲在存儲1018中的插 件1022選擇的選定插件1034。將認識到,在一些示例實施例中,配置信息指示沒有選定插 件要被安裝和/或執(zhí)行。
      [0061] 在步驟604,使代理插件在指定應用的第一部署(例如,跨云環(huán)境中的機器或"內(nèi) 部部署")中運行。指定的應用被封包以包括代理插件。在一示例實現(xiàn)中,因果關系模塊 1004使代理插件1032在指定應用1030的第一部署中運行。根據(jù)這一實現(xiàn),指定應用1030 被封包成包括代理插件1032。
      [0062] 在步驟606,代理插件被用于基于配置信息來動態(tài)(例如,當指定應用正在運行的 同時在進行中)安裝選定插件。在一示例實現(xiàn)中,安裝模塊使用代理插件1032來基于配置 信息1026動態(tài)安裝選定插件1034。
      [0063] 在示例實施例中,步驟602包括標識饋源,饋源包括選定插件、關于選定插件的位 置的位置信息、以及包括用于安裝選定插件的指令的安裝信息。例如,標識模塊1002可標 識饋源。根據(jù)這一實施例,代理插件被用于基于位置信息和安裝信息在步驟606處動態(tài)安 裝選定插件。例如,安裝模塊1006可使用代理插件1032基于位置信息和安裝信息來動態(tài) 安裝選定插件1034。將認識到饋源還可包括指定應用的一個或多個依賴關系。例如,指定 應用的一個或多個依賴關系可以是選定插件的超集。
      [0064] 在某些示例實施例中,可以不執(zhí)行流程圖600的一個或多個步驟602、604和/或 606。此外,可以執(zhí)行除步驟602、604、和/或606以外的或代替這些步驟的步驟。例如,在 一示例實施例中,配置信息還指示指定應用的一個或多個依賴關系。將認識到,一個或多個 依賴關系中的任何一個可具有一個或多個依賴關系,而這些依賴關系中的任何一個可具有 一個或多個依賴關系,以此類推。從而,每一依賴關系可具有它自己的一個或多個依賴關 系。根據(jù)這一實施例,流程圖600的方法還包括使用代理插件基于配置信息來安裝一個或 多個依賴關系。在一不例實現(xiàn)中,安裝模塊1006使用代理插件1032來基于配置信息1026 安裝一個或多個依賴關系。
      [0065] 在另一示例實施例中,配置信息還指示選定插件的一個或多個依賴關系。根據(jù)這 一實施例,流程圖600的方法還包括使用代理插件基于配置信息來安裝選定插件的一個或 多個依賴關系。例如,一個或多個依賴關系可被存儲在存儲1018中。
      [0066] 在又一示例實施例中,選定插件中的每一個包括相應的可執(zhí)行二進制代碼的集 合。可執(zhí)行二進制代碼是可執(zhí)行的二進制代碼。根據(jù)這一實施例,配置信息為每一選定插 件指示相應的可執(zhí)行二進制代碼的集合的相應的子集。相應的可執(zhí)行二進制代碼的集合的 每一子集可包括相應的集合中的任何一個或多個可執(zhí)行二進制代碼(例如,少于全部可執(zhí) 行二進制代碼、全部可執(zhí)行二進制代碼、沒有可執(zhí)行二進制代碼等等)。進一步根據(jù)這一實 施例,流程圖600的方法還包括使用代理插件基于配置信息來執(zhí)行每一子集。在一示例實 現(xiàn)中,執(zhí)行模塊1008使用代理插件1032來基于配置信息1026執(zhí)行每一子集。在一個示例 中,安裝模塊1006可響應于選定插件1034正被安裝而生成安裝指示符1020。例如,安裝指 示符1020可指示選定插件1034被安裝。根據(jù)這一實施例,執(zhí)行模塊1008可響應于從安裝 模塊1006接收安裝指示符1020來使用代理插件1032執(zhí)行每一子集。
      [0067] 注意到,選定插件中的任何一個或多個可包括單個可執(zhí)行二進制代碼。還注意到, 選定插件中的任何一個或多個除可執(zhí)行二進制代碼以外可包括一個或多個補充(例如, 庫)二進制代碼。
      [0068] 在又一示例實施例中,步驟602包括標識預定配置文件。預定配置文件可被包括 在配置信息中,盡管示例實施例的范圍在這一方面不受限制。例如,標識模塊1002可標識 預定配置文件(例如,配置文件10036),該文件可被包括在配置信息1026中。根據(jù)這一實 施例,預定配置文件為每一選定插件指示至少一個配置設置。例如,配置信息1026可為每 一選定插件1034指示配置設置。在一個示例中,配置設置可指定為監(jiān)視目的要訪問指定應 用的頻率。根據(jù)這一示例,配置設置可指定要每10秒、或每5毫秒或每30分鐘等等訪問該 應用,進一步根據(jù)這一實施例,流程圖600的方法還包括響應于使用代理插件來安裝選定 插件,使用代理插件基于預定配置文件來執(zhí)行選定插件。在一示例實現(xiàn)中,執(zhí)行模塊1008 使用代理插件1032來基于預定配置文件執(zhí)行選定插件1034。在一個示例中,預定配置文件 可不同于指示要響應于指定應用正被部署而被安裝的至少一個選定插件的另一文件。在另 一示例中,指示要響應于指定應用正被部署而被安裝的至少一個選定插件的配置信息可被 包括在預定配置文件中。
      [0069] 在又一示例實施例中,步驟602包括向經(jīng)由其生成配置文件的web應用請求對應 于指定應用的第一部署的配置文件。例如,標識模塊1002提供文件請求1028,該文件請求 向web應用請求對應于指定應用1030的第一部署的配置文件1036。根據(jù)這一實施例,步驟 602還包括從web應用接收配置文件。配置文件可被包括在配置信息中,盡管示例實施例 的范圍在這一方面不受限制。配置文件為選定插件中的每一個指示至少一個配置設置。例 如,執(zhí)行模塊1008可從web應用接收配置文件1036。進一步根據(jù)這一實施例,流程圖600 的方法還包括響應于使用代理插件來安裝選定插件,使用代理插件基于配置文件來執(zhí)行選 定插件。在一示例實現(xiàn)中,執(zhí)行模塊1008使用代理插件1032來基于配置文件1036執(zhí)行選 定插件1034。在一個示例中,配置文件可不同于指示要響應于指定應用正被部署而被安裝 的至少一個選定插件的另一文件。在另一示例中,指示要響應于指定應用正被部署而被安 裝的至少一個選定插件的配置信息可被包括在配置文件中。
      [0070] 在一示例實施例中,流程圖600的方法包括如圖7中所示的步驟中的一個或多個。 如圖7所示,流程圖700的方法在步驟702處開始。在步驟702,提供接口,用戶經(jīng)由該接 口上傳一個或多個插件。在一示例實現(xiàn)中,接口模塊1010提供接口 1038。例如,接口 1038 可被用戶用來上傳插件1022。
      [0071] 在步驟704,基于指定選定插件的第一用戶發(fā)起的指令從一個或多個插件中選擇 選定插件。在示例實現(xiàn)中,選擇模塊1012基于第一用戶發(fā)起的指令從插件1022選擇選定 插件1034。例如,選擇模塊1012可基于第一用戶發(fā)起的指令生成選擇請求1040來指定選 定插件1034。根據(jù)這一示例,選擇模塊1012可向存儲1018提供選擇請求1040以從插件 1022中選擇選定插件1034。
      [0072] 在步驟706,生成配置信息以包括選定插件的配置設置。配置設置由第二用戶發(fā)起 的指令指示。在一示例實現(xiàn)中,生成模塊1014生成配置信息1026以包括選定插件1034的 配置設置,配置設置由第二用戶發(fā)起的指令指定。
      [0073] 在步驟708,基于指定一個或多個依賴關系的第三用戶發(fā)起的指令來選擇指定應 用的一個或多個依賴關系。在一示例實現(xiàn)中,選擇模塊1012基于第三用戶發(fā)起的指令選擇 指定應用1030的一個或多個依賴關系。
      [0074] 在另一示例實施例中,流程圖600的方法包括如圖8中所示的步驟中的一個或多 個。如圖8所示,流程圖800的方法在步驟802處開始。在步驟802,確定配置信息在指定 應用正在運行時被改變以提供經(jīng)改變的配置信息。經(jīng)改變的配置信息指示要被安裝的第二 選定插件。在被改變之前的配置信息不指示要被安裝的第二選定插件。在一示例實現(xiàn)中, 確定模塊1016確定配置信息1026在指定應用1030正在運行時被改變以提供經(jīng)改變的配 置信息。
      [0075] 在步驟804,代理插件被用于基于經(jīng)改變的配置信息在指定應用正在運行的同時 動態(tài)地安裝第二選定插件。在一示例實現(xiàn)中,安裝模塊1006使用代理插件1032在指定應 用1030正在運行的同時動態(tài)安裝第二選定插件。
      [0076] 在又一示例實施例中,流程圖600的方法包括如圖9中所示的步驟中的一個或多 個。如圖9所示,流程圖900的方法在步驟902處開始。在步驟902,代理插件被用于執(zhí)行 選定插件的第一執(zhí)行。例如,步驟902可響應于在流程圖600的步驟606處使用代理插件 來安裝選定插件而被執(zhí)行。在一示例實現(xiàn)中,執(zhí)行模塊1008使用代理插件1032來執(zhí)行指 定插件1034的第一執(zhí)行。
      [0077] 在步驟904,第一執(zhí)行的狀態(tài)被標識。例如,狀態(tài)與選定插件的某些配置設置相關 聯(lián)。在一示例實現(xiàn)中,標識模塊1002標識第一執(zhí)行的狀態(tài)。
      [0078] 在步驟906,確定要再利用指定應用。在一示例實現(xiàn)中,確定模塊1016確定要再利 用指定應用。將認識到,"要再利用"意味著"要重新啟動"。例如,指定應用要再利用的判 斷可基于一個或多個因素,包括但不限于:確定其上部署指定應用的機器(例如,物理機器 或虛擬機)要被重新啟動(或已經(jīng)被重新啟動)、檢測到關于其上部署指定應用的機器的硬 件故障、檢測到關于指定應用的故障、確定與指定應用相關聯(lián)的操作系統(tǒng)要被升級、確定指 定應用正在其上運行的平臺已經(jīng)請求再利用指定應用等等。
      [0079] 在步驟908,使代理插件在指定應用的后續(xù)部署中運行。后續(xù)部署在第一部署啟動 之后被啟動。在一不例實現(xiàn)中,因果關系t旲塊1004使代理插件1032在指定應用1030的后 續(xù)部署中運行。
      [0080] 在步驟910,代理插件被用于基于配置信息動態(tài)重新安裝選定插件。在一示例實現(xiàn) 中,安裝模塊1006使用代理插件1032來基于配置信息1026動態(tài)重新安裝選定插件1034。
      [0081] 在步驟912,代理插件被用于在第一執(zhí)行狀態(tài)中啟動選定插件的第二執(zhí)行。例如, 代理插件可被用于使用與第一執(zhí)行的狀態(tài)相關聯(lián)的選定插件的某些配置設置來啟動第二 執(zhí)行。在一示例實現(xiàn)中,執(zhí)行模塊1008使用代理插件在第一執(zhí)行的狀態(tài)中啟動選定插件 1034的第二執(zhí)行。
      [0082] 將認識到,動態(tài)插件安裝模塊1000可不包括標識模塊1002、因果關系模塊1004、 安裝模塊1006、執(zhí)行模塊1008、接口模塊1010、選擇模塊1012、生成模塊1014、確定模塊 1016和/或存儲1018中的一個或多個。而且,動態(tài)插件安裝模塊1000可包括除標識模塊 1002、因果關系模塊1004、安裝模塊1006、執(zhí)行模塊1008、接口模塊1010、選擇模塊1012、生 成模塊1014、確定模塊1016和/或存儲1018以外或代替這些模塊的模塊。
      [0083] 動態(tài)插件安裝模塊108、動態(tài)代理門戶202、標識模塊1002、因果關系模塊1004、 安裝模塊1006、執(zhí)行模塊1008、接口模塊1010、選擇模塊1012、生成模塊1014、確定模塊 1016、流程圖600、流程圖700、流程圖800和流程圖900可用硬件、軟件、固件或其任何組合 來實現(xiàn)。
      [0084] 例如,動態(tài)插件安裝模塊108、動態(tài)代理門戶202、標識模塊1002、因果關系模塊 1004、安裝模塊1006、執(zhí)行模塊1008、接口模塊1010、選擇模塊1012、生成模塊1014、確定模 塊1016、流程圖600、流程圖700、流程圖800和/或流程圖900可被實現(xiàn)為被配置成在一個 或多個處理器中執(zhí)行的計算機程序代碼。
      [0085] 在另一示例中,動態(tài)插件安裝模塊108、動態(tài)代理門戶202、標識模塊1002、因果 關系模塊1004、安裝模塊1006、執(zhí)行模塊1008、接口模塊1010、選擇模塊1012、生成模塊 1014、確定模塊1016、流程圖600、流程圖700、流程圖800和/或流程圖900可被實現(xiàn)為硬 件邏輯/電子電路。
      [0086] 例如,在一實施例中,動態(tài)插件安裝模塊108、動態(tài)代理門戶202、標識模塊1002、 因果關系模塊1004、安裝模塊1006、執(zhí)行模塊1008、接口模塊1010、選擇模塊1012、生成模 塊1014、確定模塊1016、流程圖600、流程圖700、流程圖800和/或流程圖900中的一個或 多個可在片上系統(tǒng)(SoC)中實現(xiàn)。SoC可包括集成電路芯片,該集成電路芯片包括以下一個 或多個:處理器(如微控制器、微處理器、數(shù)字信號處理器(DSP)等等)、存儲器、一個或多 個通信接口、和/或用于執(zhí)行其功能的更多的電路和/或嵌入的固件。
      [0087] 圖11描繪其中可實現(xiàn)各實施例的示例計算機1100。圖1中所示的客戶機 102A-102M中的任何一個或多個、插件源110中的任何一個或多個或服務器106A-106N中 的任何一個或多個(或其在圖2-5和10中示出的任何一個或多個子組件)可使用計算機 1100實現(xiàn),包括計算機1100的一個或多個特征和/或替換特征。計算機1100可以是例如 常規(guī)個人計算機、移動計算機或工作站形式的通用計算設備,或者計算機1100可以是專用 計算設備。此處所提供的對計算機1100的描述只是為了說明,并不是限制性的。實施例也 可以在相關領域的技術人員所知的更多類型的計算機系統(tǒng)中實現(xiàn)。
      [0088] 如圖11所示,計算機1100包括處理單元1102、系統(tǒng)存儲器1104和總線1106,總 線1106將包括系統(tǒng)存儲器1104在內(nèi)的各種系統(tǒng)組件耦合到處理單元1102??偩€1106表 示若干類型的總線結構中的任何一種總線結構類型的一個或多個,包括存儲器總線或存儲 器控制器、外圍總線、加速圖形端口,以及處理器或使用各種總線體系結構中的任何一種的 局部總線。系統(tǒng)存儲器1104包括只讀存儲器(ROM) 1108和隨機存取存儲器(RAM) 1110。基 本輸入/輸出系統(tǒng)1112 (BIOS)儲存在ROM 1108中。
      [0089] 計算機1100還具有一個或多個以下驅(qū)動器:用于讀和寫硬盤的硬盤驅(qū)動器1114、 用于讀或?qū)懣梢苿哟疟P1118的磁盤驅(qū)動器1116、以及用于讀或?qū)懼T如⑶ROM、DVD ROM 或其他光介質(zhì)之類的可移動光盤1122的光盤驅(qū)動器1120。硬盤驅(qū)動器1114、磁盤驅(qū)動器 1116,以及光驅(qū)動器1120分別通過硬盤驅(qū)動器接口 1124、磁盤驅(qū)動器接口 1126,以及光盤 驅(qū)動器接口 1128連接到總線1106。驅(qū)動器以及它們相關聯(lián)的計算機可讀存儲介質(zhì)為計算 機提供了對計算機可讀指令、數(shù)據(jù)結構、程序模塊,及其他數(shù)據(jù)的非易失存儲器。雖然描述 了硬盤、可移動磁盤和可移動光盤,但是,也可以使用諸如閃存卡、數(shù)字視頻盤、隨機存取存 儲器(RAM)、只讀存儲器(ROM)等等之類的其他類型的計算機可讀存儲介質(zhì)來儲存數(shù)據(jù)。
      [0090] 數(shù)個程序模塊可被儲存在硬盤、磁盤、光盤、ROM或RAM上。這些程序包括操作系統(tǒng) 1130、一個或多個應用程序1132、其他程序模塊1134以及程序數(shù)據(jù)1136。應用程序1132 或程序模塊1134可例如包括用于實現(xiàn)如本文所述的動態(tài)插件安裝模塊108、動態(tài)代理門戶 202、標識模塊1002、因果關系模塊1004、安裝模塊1006、執(zhí)行模塊1008、接口模塊1010、選 擇模塊1012、生成模塊1014、確定模塊1016、流程圖600 (包括流程圖600的任何步驟)、流 程圖700 (包括流程圖700的任何步驟)、流程圖800 (包括流程圖800的任何步驟)和/或 流程圖900 (包括流程圖900的任何步驟)的計算機程序邏輯。
      [0091] 用戶可以通過諸如鍵盤1138和定點設備1140之類的輸入設備向計算機1100中 輸入命令和信息。其它輸入設備(未示出)可包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天 線、掃描儀、觸敏屏、相機、加速度計、陀螺儀等等。這些及其他輸入設備常常通過耦合到總 線1106的串行端口接口 1142連接到處理單元1102,但是,也可以通過其他接口,諸如并行 端口、游戲端口或通用串行總線(USB),來進行連接。
      [0092] 顯示設備1144(例如監(jiān)視器)也通過諸如視頻適配器1146之類的接口連接到總 線1106。除了顯示設備1144之外,計算機1100還可包括其他外圍輸出設備(未示出),如 揚聲器和打印機。
      [0093] 計算機1100通過網(wǎng)絡接口或適配器1150、調(diào)制解調(diào)器1152、或用于通過網(wǎng)絡建立 通信的其他裝置連接到網(wǎng)絡1148(例如,因特網(wǎng))。調(diào)制解調(diào)器1152(可以是內(nèi)置的或外置 的)通過串行端口接口 1142連接到總線1106。
      [0094] 如此處所用的,術語"計算機程序介質(zhì)"以及"計算機可讀介質(zhì)"被用于泛指非瞬態(tài) 介質(zhì),諸如與硬盤驅(qū)動器1114相關聯(lián)的硬盤、可移動磁盤1118、可移動光盤1122,以及其他 非易失性介質(zhì),諸如閃存卡、數(shù)字視頻盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)等。這 些計算機可讀存儲介質(zhì)與通信介質(zhì)相區(qū)別且不重疊。通信介質(zhì)通常在諸如載波等已調(diào)制數(shù) 據(jù)信號中承載計算機可讀指令、數(shù)據(jù)結構、程序模塊或者其它數(shù)據(jù)。術語"已調(diào)制數(shù)據(jù)信號" 是指使得以在信號中編碼信息的方式來設置或改變其一個或多個特征的信號。作為示例而 非限制,通信介質(zhì)包括無線介質(zhì),如聲學、RF、紅外和其它無線介質(zhì)。示例實施例也針對這些 通信介質(zhì)。
      [0095] 如上文所指示的,計算機程序和模塊(包括應用程序1132及其他程序模塊1134) 可被儲存在硬盤、磁盤、光盤、ROM或RAM上。這樣的計算機程序也可以通過網(wǎng)絡接口 1150或 串行端口接口 1142來接收。這些計算機程序在由應用程序執(zhí)行或加載時使得計算機1100 能夠?qū)崿F(xiàn)此處所討論的實施例的特征。相應地,這樣的計算機程序表示計算機1100的控制 器。
      [0096] 示例實施例還涉及包括存儲在任何計算機可用介質(zhì)上的軟件(例如計算機可讀 指令)的計算機程序產(chǎn)品。這樣的軟件,當在一個或多個數(shù)據(jù)處理設備中執(zhí)行時,使數(shù)據(jù)處 理設備如此處所描述的那樣操作。實施例可使用現(xiàn)在已知或?qū)碇獣缘娜魏斡嬎銠C可使用 或計算機可讀介質(zhì)。計算機可讀介質(zhì)的例子包括但不限于存儲設備,諸如RAM、硬盤、軟盤、 CD ROM、DVD ROM、Zip盤、磁帶、磁存儲設備、光存儲設備、基于MEMS的存儲設備、基于納米 技術的存儲設備,等等。
      [0097] III.示例性代碼片段
      [0098] 以下是分別標記為"示例代碼片段#1"、"示例代碼片段#2"和"示例代碼片段#3" 的三個示例代碼片段。
      [0099] A.示例性代碼片段#1
      [0100] 以下代碼片段闡明用于插件的示例饋源:
      [0101]

      【權利要求】
      1. 一種方法,包括: 標識關于指定應用的配置信息,所述配置信息指示要響應于所述指定應用正被部署而 被安裝的從存儲在所部署的應用可訪問的一位置中的一個或多個插件中選擇的至少一個 選定插件; 使代理插件在指定應用的第一部署中運行,所述指定應用被封包以包括所述代理插 件;以及 響應于使所述代理插件在所述指定的應用的第一部署中運行,使用所述代理插件基于 所述配置信息動態(tài)安裝所述至少一個選定插件。
      2. 如權利要求1所述的方法,其特征在于,所述至少一個選定插件中的每一個包括相 應的多個可執(zhí)行二進制代碼; 其中所述配置信息為所述至少一個選定插件中的每一個指示相應的多個可執(zhí)行二進 制代碼的相應的子集;以及 其中所述方法還包括: 使用所述代理插件來基于所述配置信息執(zhí)行每一子集。
      3. 如權利要求1所述的方法,其特征在于,標識配置信息包括: 標識為所述至少一個選定插件中的每一個指示至少一個配置設置的預定配置文件;以 及 其中所述方法還包括: 響應于使用所述代理插件安裝所述至少一個選定插件,使用所述代理插件基于所述預 定配置文件來執(zhí)行所述至少一個選定插件。
      4. 如權利要求1所述的方法,其特征在于,標識所述配置信息包括: 向經(jīng)由其生成所述配置文件的web應用請求對應于所述指定應用的第一部署的配置 文件;以及 從所述web應用接收所述配置文件,所述配置文件為所述至少一個選定插件中的每一 個指示至少一個配置設置;以及 其中所述方法還包括: 響應于使用所述代理插件安裝所述至少一個選定插件,使用所述代理插件基于所述配 置文件來執(zhí)行所述至少一個選定插件。
      5. 如權利要求1所述的方法,其特征在于,還包括: 提供接口,一個或多個用戶經(jīng)由所述接口來上傳所述一個或多個插件; 基于指定所述至少一個選定插件的第一用戶發(fā)起的指令,從所述一個或多個插件中選 擇所述至少一個選定插件;以及 生成所述配置信息以包括所述至少一個選定插件的配置設置,所述配置設置由第二用 戶發(fā)起的指令指定。
      6. 一種系統(tǒng),包括: 被配置成標識關于指定應用的配置信息的標識模塊,所述配置信息指示要響應于所述 指定應用正被部署而被安裝的從存儲在所部署的應用可訪問的一位置中的一個或多個插 件中選擇的至少一個選定插件; 因果關系模塊,所述因果關系模塊被配置成使代理插件在所述指定應用的第一部署中 運行,所述指定應用被封包以包括所述代理插件;以及 安裝模塊,所述安裝模塊被配置成響應于使所述代理插件在所述指定的應用的第一部 署中運行,使用所述代理插件基于所述配置信息動態(tài)安裝所述至少一個選定插件。
      7. 如權利要求6所述的系統(tǒng),其特征在于,所述配置信息還指示所述指定應用的一個 或多個依賴關系;以及 其中,所述安裝模塊還被配置成使用所述代理插件來基于所述配置信息安裝所述一個 或多個依賴關系。
      8. 如權利要求7所述的系統(tǒng),其特征在于,所述配置信息還指示所述至少一個選定插 件的至少一個依賴關系;以及 其中,所述安裝模塊還被配置成使用所述代理插件來基于所述配置信息安裝所述至少 一個選定插件的所述至少一個依賴關系。
      9. 如權利要求6所述的系統(tǒng),其特征在于,所述標識模塊被配置成標識饋源,所述饋源 包括所述至少一個選定插件、關于所述至少一個選定插件的位置的位置信息以及包括用于 安裝所述至少一個選定插件的指令的安裝信息;以及 其中所述安裝模塊被配置成基于所述位置信息和所述安裝信息來使用所述代理插件 來動態(tài)安裝所述至少一個選定插件。
      10. -種包括計算機可讀介質(zhì)的計算機程序產(chǎn)品,計算機可讀介質(zhì)上記錄有用于使得 基于處理器的系統(tǒng)能夠動態(tài)安裝關于指定應用的至少一個選定插件的計算機程序邏輯,所 述計算機程序產(chǎn)品包括: 用于使所述基于處理器的系統(tǒng)標識關于所述指定應用的配置信息的第一程序邏輯模 塊,所述配置信息指示要響應于所述指定應用正被部署而被安裝的從存儲在所部署的應用 可訪問的一位置中的一個或多個插件中選擇的所述至少一個選定插件; 用于使所述基于處理器的系統(tǒng)使代理插件跨云環(huán)境中的多個機器在所述指定應用的 第一部署中運行的第二程序邏輯模塊,所述指定應用被封包以包括所述代理插件; 用于使所述基于處理器的系統(tǒng)確定所述配置信息在所述指定應用正在運行的同時是 否被改變的第三程序邏輯模塊;以及 第四程序邏輯模塊,所述第四程序邏輯模塊用于使所述基于處理器的系統(tǒng)響應于使所 述代理插件正在所述指定應用的第一部署中運行而使用所述代理插件基于所述配置信息 來動態(tài)安裝所述至少一個選定插件,以及用于使所述基于處理器的系統(tǒng)響應于確定所述配 置信息被改變以提供經(jīng)改變的配置信息來使用所述代理插件基于所述經(jīng)改變的配置信息 在所述指定應用正在運行的同時動態(tài)安裝一個或多個第二選定插件,所述經(jīng)改變的配置信 息指示要被安裝的所述一個或多個第二選定插件,而改變之前的所述配置信息不指示要被 安裝的所述一個或多個第二選定插件。
      【文檔編號】G06F9/44GK104246699SQ201380017043
      【公開日】2014年12月24日 申請日期:2013年3月12日 優(yōu)先權日:2012年3月27日
      【發(fā)明者】P·M·霍夫, A·L·克賴德, S·H·吳, L·I·比羅夫, J·A·坎寧安 申請人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1