国产精品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>

      分布式、可擴展應(yīng)用程序的創(chuàng)建和部署的制作方法

      文檔序號:6478560閱讀:184來源:國知局
      專利名稱:分布式、可擴展應(yīng)用程序的創(chuàng)建和部署的制作方法
      分布式、可擴展應(yīng)用程序的創(chuàng)建和部署背景安裝在分布式計算網(wǎng)絡(luò)上的軟件允許用戶創(chuàng)建利用主存在分開的服務(wù)器群集上的多個服務(wù)的端對端應(yīng)用程序和解決方案。這些端對端應(yīng)用程序可包含諸如商業(yè)數(shù)據(jù)、頁 面設(shè)計、頁面布局、以及業(yè)務(wù)邏輯等組件,其各自都可任選地分布在不同服務(wù)器群集上。由 于這些應(yīng)用程序的分布式特性,其部署在諸如協(xié)調(diào)、認(rèn)證、內(nèi)容保真、沖突管理、以及可伸縮 性等領(lǐng)域造成了各種困難。例如,隨著可用服務(wù)的數(shù)量快速增長,這些應(yīng)用程序必須按照可 將未來的服務(wù)容易并靈活地合并到該應(yīng)用程序中同時保留與之前創(chuàng)建的應(yīng)用程序的完全 向后兼容性的方式擴展。發(fā)明概述提供本概述是為了以簡化的形式介紹將在以下詳細(xì)描述中進一步描述的一些概 念。本概述不旨在標(biāo)識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定 所要求保護的主題的范圍。創(chuàng)建分布式應(yīng)用程序的方法包括從遠(yuǎn)程服務(wù)器群集上可用的組件的列表中選擇 一組組件。從遠(yuǎn)程服務(wù)器群集接收安裝所選組件所需的數(shù)據(jù)。響應(yīng)于所接收到的數(shù)據(jù)創(chuàng)建 指令的列表并存儲該指令的列表。一種有形計算機可讀介質(zhì)具有用于創(chuàng)建分布式應(yīng)用程序的計算機可讀指令。這些 指令包括從分布式計算機系統(tǒng)上可用的服務(wù)的列表中選擇服務(wù)。選擇所選服務(wù)上可用的組 件。從分布式計算機系統(tǒng)接收涉及所選組件的安裝數(shù)據(jù)。響應(yīng)于所接收到的數(shù)據(jù)創(chuàng)建包文 件。存儲該包文件。用于集中化分布式計算應(yīng)用程序的控制的系統(tǒng)包括處理器和計算機可讀介質(zhì)。系 統(tǒng)還包括存儲在計算機可讀介質(zhì)上并在處理器上執(zhí)行的操作環(huán)境。還包括存儲在計算機可 讀介質(zhì)上并在處理器上執(zhí)行的解決方案框架。該解決方案框架被配置成從服務(wù)器群集上可 用的服務(wù)的列表中選擇服務(wù)。選擇所選服務(wù)上可用的組件。從所選的服務(wù)處接收涉及所選 組件的安裝數(shù)據(jù)。響應(yīng)于所接收到的數(shù)據(jù)創(chuàng)建包文件。隨后將該包文件存儲在計算機可讀 介質(zhì)上。通過閱讀以下具體實施方式
      并查閱相關(guān)聯(lián)的附圖,這些和其他特征和優(yōu)點將是顯 而易見的??梢岳斫猓笆鲆话忝枋龊鸵韵略敿?xì)描述均僅是說明性的,且不是限制性的。此 處所述的各實施例可被具體化為方法、設(shè)備、或其組合等。同樣,各實施例可采用完全硬件 實施例、完全軟件實施例或者結(jié)合軟件和硬件方面實施例的形式。因此,本文并非是局限性 的。附圖簡述在附圖中,相同標(biāo)號表示相同元素。

      圖1是用于實現(xiàn)此處所述的計算機實現(xiàn)的方法的操作環(huán)境的框圖;圖2是示出用于實現(xiàn)解決方案框架的操作環(huán)境的框圖;圖3是示出包文件的實現(xiàn)的圖示;圖4是示出選擇一組組件的操作的流程圖5是示出創(chuàng)建包文件的操作的流程圖;以及圖6是示出在分布式計算環(huán)境上部署包文件的操作的流程圖。各實現(xiàn)的詳細(xì)描述現(xiàn)在參考其中相同的標(biāo)號代表相似的元素的附圖,描述各實施例。具體地,圖1和 相應(yīng)的討論旨在提供對在其中可以實現(xiàn)各實施例的合適計算環(huán)境的簡要、概括描述。一般而言,提供負(fù)責(zé)在最終用戶與服務(wù)群集之間接口的解決方案框架。解決方案 框架可集中化分布式應(yīng)用程序的創(chuàng)建和部署兩者。在分布式應(yīng)用程序的創(chuàng)建和部署兩者中 存在許多優(yōu)點。例如,分布式應(yīng)用程序可利用位于多個不同遠(yuǎn)程服務(wù)器上的多個服務(wù)上的 組件以將許多分開的服務(wù)的功能組合成單個應(yīng)用程序。解決方案框架通過擔(dān)當(dāng)創(chuàng)建用戶界面與服務(wù)的群集之間的中介來集中化分布式 應(yīng)用程序的創(chuàng)建。然而,在允許用戶創(chuàng)建集成具體服務(wù)的包文件之前,用戶可能需要向服務(wù) 認(rèn)證。解決方案框架還可通過將用戶憑證信息傳遞到服務(wù)器群集中的每一個來集中化此認(rèn) 證進程。解決方案框架可隨后允許被認(rèn)證的用戶通過選擇在服務(wù)群集中可用的各組件來定 義分布式應(yīng)用程序。響應(yīng)于應(yīng)用程序的定義,創(chuàng)建包文件。通過使用基于文件的內(nèi)容被包 括在文件內(nèi)的水印元數(shù)據(jù)來維護包文件的內(nèi)容保真度。在安裝應(yīng)用程序之前,可將包文件從定義該應(yīng)用程序的用戶處傳輸?shù)搅硪挥脩?處,或僅僅由定義該應(yīng)用程序的用戶安裝。在安裝期間,沖突解決也可由解決方案框架集中 化地控制。一旦解決了沖突,解決方案框架可向所有相關(guān)服務(wù)群集通信并基于所定義的包 文件將組件安裝在正確位置?,F(xiàn)參考圖1,將描述在各實施例中利用的計算機100的說明性計算機體系結(jié)構(gòu)。圖 1所示的計算機體系結(jié)構(gòu)可被配置為臺式或移動計算機,并且包括中央處理單元5(CPU)、 包括隨機存取存儲器9 ( “RAM”)和只讀存儲器(“ROM”) 10的系統(tǒng)存儲器7、以及將存儲器 耦合至CPU 5的系統(tǒng)總線12。基本輸入/輸出系統(tǒng)存儲在ROM 10中,它包含幫助在諸如啟動期間在計算機內(nèi)元 件之間傳遞信息的基本例程。計算機100還包括用于存儲操作系統(tǒng)16、應(yīng)用程序24和解決 方案框架26等的大容量存儲設(shè)備14,這將在以下更為詳盡地描述。大容量存儲設(shè)備14通過連接至總線12的海量存儲控制器(未示出)連接到CPU 5。大容量存儲設(shè)備14及其相關(guān)聯(lián)的計算機可讀介質(zhì)為計算機100提供非易失性存儲。雖 然此處包含的計算機可讀介質(zhì)的描述針對諸如硬盤或CD-ROM驅(qū)動器等大容量存儲設(shè)備, 但是計算機可讀介質(zhì)可以是能夠由計算機100訪問的任何可用介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和通信介質(zhì)。計 算機存儲介質(zhì)包括以存儲如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任 何方法或技術(shù)來實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。計算機存儲介質(zhì)包括 但不限于,RAM、ROM、EPROM、EEPR0M、閃存或其它固態(tài)存儲器技術(shù)、CD-ROM、數(shù)字多功能盤 (“DVD”)或其它光學(xué)存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或能用于存儲所 需信息且可以由計算設(shè)備100訪問的任何其它介質(zhì)。根據(jù)各實施例,計算機100可以使用通過諸如因特網(wǎng)等網(wǎng)絡(luò)18與遠(yuǎn)程計算機的邏 輯連接在網(wǎng)絡(luò)化環(huán)境中操作。計算機100可以通過連接至總線12的網(wǎng)絡(luò)接口單元20來連 接到網(wǎng)絡(luò)18。網(wǎng)絡(luò)連接可以是無線的和/或有線的。網(wǎng)絡(luò)接口單元20也可用于連接到其它類型的網(wǎng)絡(luò)和遠(yuǎn)程計算機系統(tǒng)。計算機100還可以包括用于接收和處理來自多個其它設(shè) 備的輸入的輸入/輸出控制器22,這些設(shè)備包括鍵盤、鼠標(biāo)或者電子指示筆(未在圖1中示 出)。 類似地,輸入/輸出控制器22可以為顯示屏28、打印機或其它類型的輸出設(shè)備提 供輸出。如前簡述地,多個程序模塊和數(shù)據(jù)文件可以存儲在計算機100的大容量存儲設(shè)備 14和RAM 9內(nèi),包括適于控制聯(lián)網(wǎng)的個人計算機操作的操作系統(tǒng)16,如華盛頓州雷蒙德市 的微軟公司的WINDOWS VISTA操作系統(tǒng)。大容量存儲設(shè)備14和RAM 9還可以存儲一個或 多個程序模塊。具體地,大容量存儲設(shè)備14和RAM 9可以存儲一個或多個應(yīng)用程序24。例 如,大容量存儲設(shè)備14可存儲解決方案框架26。解決方案框架26集中化分布式應(yīng)用程序 的部署和安裝。圖2示出解決方案框架26在其中操作的環(huán)境的實現(xiàn)。解決方案框架26工作可耦 合到服務(wù)的群集230。服務(wù)的群集230可通過諸如因特網(wǎng)或外聯(lián)網(wǎng)等網(wǎng)絡(luò)耦合到解決方案 框架26。服務(wù)的群集230可包括N個獨立服務(wù)——服務(wù)232、234和236??蓪⒏鱾€服務(wù)存 儲在分開的位置。例如,可將服務(wù)230存儲在第一位置處的第一服務(wù)器上,且可將服務(wù)240 存儲在第二位置處的第二服務(wù)器上。在其它實現(xiàn)中,可將多個服務(wù)存儲在單個位置處。因 此,解決方案框架可獨立于各個服務(wù)的位置來操作。每一服務(wù)可提供各種形式的功能。例如,服務(wù)可包括商業(yè)數(shù)據(jù)、頁面設(shè)計或布局。 在其它示例中,服務(wù)可包括業(yè)務(wù)邏輯。在另一些其它示例中,服務(wù)可包括任何其它形式的功 能。解決方案框架26還可耦合到創(chuàng)建界面210和部署界面220。創(chuàng)建界面210可提 供允許用戶定義包括一組所選服務(wù)的包文件的界面。部署界面220可提供允許用戶部署包 文件以安裝一組所選服務(wù)的界面。在某些實現(xiàn)中,這些界面可以是以諸如超文本標(biāo)記語言 (HTML)或可擴展標(biāo)記語言(XML)等標(biāo)記語言編碼的web界面。在其它實現(xiàn)中,這些界面可 是以諸如C#或Java等其它語言編碼的。創(chuàng)建界面210可位于第一位置處的第一計算環(huán)境上并允許第一用戶創(chuàng)建包文件, 而部署界面220可位于第二位置處的第二計算環(huán)境上并允許第二用戶部署包文件。在此 類實現(xiàn)中,可將包文件從第一計算環(huán)境傳輸?shù)降诙嬎悱h(huán)境。此傳輸可通過任何方式的文 件傳輸來達(dá)成。例如,可將文件編碼在計算機可讀介質(zhì)上,如物理地傳輸?shù)降诙嬎悱h(huán)境的 盤。在其它示例中,可通過兩個計算環(huán)境之間的網(wǎng)絡(luò)連接電子地傳輸文件,如通過在因特網(wǎng) 上發(fā)送的電子郵件附件的方式。在其它實現(xiàn)中,創(chuàng)建界面210和部署界面220可位于同一計算環(huán)境上。在此類實 現(xiàn)中,同一用戶既可創(chuàng)建又可部署來自相同計算環(huán)境的包文件。此外,在此類實現(xiàn)中,可避 免以上所需的包文件的傳輸。因此,解決方案框架26管理并集中化包文件和創(chuàng)建和包文件的部署兩者。圖3示出包文件300的實現(xiàn)。包文件300可包括從位0到位767的768位。包文 件300可包括從位0到位31的頭部部分。包文件300還可包括描述所選組件的從位32到 位63的清單。清單可包括從服務(wù)器群集230接收信息,這些信息描述關(guān)于可由服務(wù)使用以 檢測潛在沖突和組件可用性的組件的信息。例如,清單可包括由每一服務(wù)群集在小包創(chuàng)建時刻返回的描述小包中的組件的信息的一部分。以即使在沒有物理小包的情況下,清單中 的元信息仍可用于檢測沖突的方式來設(shè)計清單。在頭部和清單之后,包文件300可包括從 位64到位127的凈荷。如以下參考圖5更詳細(xì)地描述地,包文件300的凈荷部分包括從所 選服務(wù)接收的信息。
      為了安全性,包文件300可包括諸如512位密鑰等從位128到位639的公鑰。為 了進一步的安全性并啟用文件完整性的驗證,如以下參考圖6詳細(xì)描述地,包文件300可從 位640到位767包括諸如加密128位安全散列算法5 (SHA-I)散列等的水印。在其它實施 例中,水印可包括消息摘要算法5(MD5)散列。散列可通過將任何散列算法應(yīng)用到包文件內(nèi) 的凈荷和清單來創(chuàng)建。解決方案框架操作現(xiàn)在參考圖4,將描述用于定義要被包括在分布式應(yīng)用程序中的組件集合的說明 性進程400。當(dāng)閱讀對在此提供的例程的討論時,應(yīng)當(dāng)理解,各種實施例的邏輯操作被實現(xiàn)為 (1)運行于計算系統(tǒng)上的一系列計算機實現(xiàn)的動作或程序模塊,和/或(2)計算系統(tǒng)內(nèi)互連 的機器邏輯電路或電路模塊。該實現(xiàn)是取決于實現(xiàn)本發(fā)明的計算機系統(tǒng)的性能要求來選擇 的。因此,所例示的并且構(gòu)成此處所描述的實施例的邏輯操作被不同地表示為操作、結(jié)構(gòu)設(shè) 備、動作或模塊。這些操作、結(jié)構(gòu)設(shè)備、動作和模塊可用軟件、固件、專用數(shù)字邏輯以及它們 的任何組合來實現(xiàn)。在起始操作之后,進程前進至操作410且在解決方案框架26處接收服務(wù)的列表。 此進程可在例如用戶在創(chuàng)建界面210上瀏覽至包創(chuàng)建頁面時被觸發(fā)。解決方案框架可隨后 對服務(wù)群集230作出調(diào)用,以請求可用服務(wù)的列表。為確定具體服務(wù)是否是可用的,解決方 案框架26可集中化地仲裁創(chuàng)建界面210與服務(wù)群集230內(nèi)的服務(wù)中的每一個之間的許可。 例如,解決方案框架26可向服務(wù)群集230傳輸用戶的簡檔并作為響應(yīng)接收用戶可訪問的服 務(wù)的集合。因此,可用性可依賴于聯(lián)網(wǎng)到解決方案框架26的服務(wù)以及各個用戶許可。在解決方案框架26接收到并最終化可用服務(wù)的列表之后,進程前進至操作420, 并選擇第一服務(wù)??身憫?yīng)于從創(chuàng)建界面210接收到的指示用戶查看服務(wù)內(nèi)的組件的請求來選擇該 服務(wù)的命令來選擇服務(wù)。一旦選擇了服務(wù),進程即前進至操作430,其中收集組件類型的列 表。在此操作期間,解決方案框架26向所選服務(wù)傳送傳輸所選服務(wù)上可用的各個組件類型 的列表的請求。類型信息可包括描述可用組件的類型的信息和描述可用于選擇各個組件的 用戶界面的信息。在某些實現(xiàn)中,此信息可包括用于選擇專用于該服務(wù)的組件類型和組件 的定制用戶界面。進程隨后前進至操作440,其中收集了可用組件的列表。類似于上述服務(wù)的可用 性,組件的可用性可不僅取決于組件是否連接到解決方案框架26,而且還取決于許可檢查。進程隨后前進至操作450,其中處理接收到的、與所選組件相關(guān)聯(lián)的類型信息并將 其傳輸?shù)絼?chuàng)建界面210,在創(chuàng)建界面210中向用戶呈現(xiàn)選擇界面。響應(yīng)于從所選服務(wù)接收到 的類型信息來創(chuàng)建此選擇界面,以使得可顯示定制選擇界面以便于選擇可用組件的具體類 型。此定制界面可包含供用戶向所選組件輸入任意參數(shù)的機制。這些參數(shù)可擔(dān)當(dāng)向解決方 案框架、服務(wù)群集描述封裝所選組件的方式的其它元信息。
      進程隨后前進至操作460,其中用戶使用在圖2的創(chuàng)建界面210上呈現(xiàn)的選擇界面 來選擇所需組件。在某些實現(xiàn)中,在此操作期間,向服務(wù)群集230傳輸并在服務(wù)群集230處 接收所選組件的列表。在其它實現(xiàn)中,不向服務(wù)群集230傳輸所選組件的列表直到該進程 在操作470之后對每一所選服務(wù)完成。移至操作470,作出關(guān)于是否選擇了其它服務(wù)的判定。如果用戶選擇了其它服務(wù),則進程返回到操作420,且為下一所選服務(wù)重復(fù)界面生成和組件選擇進程。如果用戶未選擇 其它服務(wù),則進程繼續(xù)至操作480。繼續(xù)到操作480,如以下參考圖5更詳細(xì)地描述地,將所有小包組合并格式化成單 個包文件。隨后該進程前進至結(jié)束操作并返回以處理其它動作?,F(xiàn)在參考圖5,將描述用于創(chuàng)建諸如在操作480創(chuàng)建的包文件等包文件的說明性 進程500。在起始操作之后,進程前進至操作510且所選組件的列表由解決方案框架26處 理??稍诮鉀Q方案框架26處從創(chuàng)建界面210接收所選組件的列表??衫绺鶕?jù)圖4中示 出的進程400來創(chuàng)建所選組件的列表。該進程隨后前進至操作520,其中選擇所選組件位于其中的第一服務(wù)。此選擇是其 中解決方案框架26迭代通過所選組件的列表上的各組件被包括在內(nèi)的所有服務(wù)的自動進 程的一部分。因此,服務(wù)可在沒有用戶通過創(chuàng)建界面210的介入或輸入的情況下由解決方 案框架26直接選擇。一旦解決方案框架26選擇了第一服務(wù),該進程即前進至操作530,其 中將與所選服務(wù)相關(guān)聯(lián)的組件的描述從解決方案框架傳輸?shù)降谝凰x服務(wù)。即,解決方案 框架26向服務(wù)傳輸位于用戶所選服務(wù)內(nèi)的組件的列表。一旦該服務(wù)接收了組件的列表,進程即前進至操作540,其中服務(wù)通過傳輸包含與 所選組件相關(guān)聯(lián)的信息的小包來對請求作出響應(yīng)。小包可包括包含所請求的數(shù)據(jù)以及描述 關(guān)于所請求的數(shù)據(jù)的元信息的清單的二進制數(shù)據(jù)流。在操作550,作出是否要選擇另一服務(wù)的判定。如果解決方案框架26循環(huán)并處理 了處理所有所選組件所需的服務(wù),則不需要選擇其它服務(wù)且進程繼續(xù)至操作560。如果解 決方案框架26未對所選組件循環(huán)通過所有服務(wù),則進程返回到操作520,并選擇下一服務(wù)。 在其它實施例中,可異步地執(zhí)行此進程。即,其中解決方案框架26同時調(diào)用所有服務(wù)以接 收小包并隨后在其返回時組裝它們的多線程環(huán)境。因此,此進程可按異步或線性/順序兩 種方式執(zhí)行。在操作560,將所接收到的小包添加到包文件中。例如,可將小包串接在一起并添 加到包文件300的凈荷部分中。在其它實現(xiàn)中,可在小包被包括到包文件300的凈荷部分 內(nèi)之前執(zhí)行對小包的其它處理。在操作570,將水印添加到包文件300。在某些實現(xiàn)中,水印可僅是從小包創(chuàng)建的 散列。在其它實現(xiàn)中,可從小包和被包括在包文件中的諸如頭部部分、清單部分或諸如密鑰 等安全性部分等其它數(shù)據(jù)創(chuàng)建水印。在某些示例中,水印可使用SHA-I散列算法來創(chuàng)建。因 此,散列之后可用于驗證數(shù)據(jù)的完整性,包括確定包文件300是否被篡改。隨后該進程前進 至結(jié)束操作并返回以處理其它動作。現(xiàn)在參考圖6,將描述用于部署包文件300的說明性進程600。在起始操作之后,該進程前進至操作610,其中在解決方案框架26處從部署界面220接收包文件300。在某些示例中,可在包文件300的創(chuàng)建期間系統(tǒng)接收包文件300時從 系統(tǒng)直接向解決方案框架26傳輸包文件300。這可發(fā)生在其中創(chuàng)建包文件300的用戶也正 在部署它的情況下。在其它示例中,可從不同用戶處向解決方案框架26傳輸包文件300。 例如,包文件300可在創(chuàng)建界面210處由第一用戶接收,且隨后在壓縮盤(⑶)上被傳輸或 使用電子郵件發(fā)送給部署界面220處的第二用戶,在部署界面220處包文件300隨后被傳 輸?shù)浇鉀Q方案框架26。一旦在解決方案框架26接收了包文件300,則進程即前進至操作620。在操作620, 作出包文件300是否有效的判定??蓞⒖妓碜鞒龃伺卸?。例如,如果包文件300在各 傳輸期間損壞了,或包文件300被有意地篡改了,則水印可能不再與包含在包文件300內(nèi)的 數(shù)據(jù)正確匹配。在其它示例中,可使用其它準(zhǔn)則來確定包文件是否有效。例如,可對文件擴 展名是否被更改進行參考。在其它示例中,可對文件大小進行參考。即,可分配默認(rèn)最大文 件大小且可將任何大于默認(rèn)文件大小的文件標(biāo)記為無效。因此,包文件300是否有效的判 定可部分取決于水印并部分取決于包文件300的其它特性。因此,如果包文件300是有效 的,則進程前進至操作630,其中處理繼續(xù)。如果包文件300不再有效,則進程前進至操作680,其中部署異常中止且流程繼續(xù) 至結(jié)束操作。在某些示例中,異常中止操作680可包括在部署界面向用戶呈現(xiàn)錯誤信息。在 其它示例中,異常中止操作680還可包括自動錯誤糾正以使可糾正的錯誤被解決方案框架 26自動糾正且該進程可以繼續(xù)。在操作630,處理了包文件300并提取了凈荷。處理該凈荷以確定需要哪些服務(wù)。 解決方案框架26隨后確定由包文件所需的所有服務(wù)是否都是可用的。如果被包括在包文 件300內(nèi)的組件駐留在一特定服務(wù)上,則需要該服務(wù)。例如,如果創(chuàng)建包文件300時與部署 包文件300時之間的時間流逝了,則在服務(wù)群集230中可用的服務(wù)中的一個或多個可能不
      再可用。如上所述,如果例如部署包文件300的用戶不具有訪問特定服務(wù)的許可,或如果 服務(wù)從網(wǎng)絡(luò)斷開,則服務(wù)可能不再可用。如果所需服務(wù)是不可用的,則該進程前進至操作 680,其中部署異常中止。如果所有所需的服務(wù)都是可用的,則該進程前進至操作640。在操作640,選擇了第一服務(wù)。此選擇是其中解決方案框架26迭代通過由包文件 300的凈荷中的組件利用的所有服務(wù)的自動進程的一部分。因此,服務(wù)可在沒有來自用戶通 過部署界面220的介入或輸入的情況下由解決方案框架26直接選擇。一旦解決方案框架 26選擇了第一服務(wù),該進程即前進至操作650,其中執(zhí)行了沖突檢查。在操作650,可將包文件300的內(nèi)容傳輸?shù)椒?wù)群集230。在某些實現(xiàn)中,可僅傳 輸清單以節(jié)省代價高昂的傳輸時間。清單可包括由每一服務(wù)群集在小包創(chuàng)建時刻返回的描 述小包中的組件的信息的一部分。以即使在沒有物理小包的情況下,清單中的元信息仍可 用于檢測沖突的方式來設(shè)計清單。每一服務(wù)隨后檢查包文件300的內(nèi)容(或其它實現(xiàn)中的 清單)并向解決方案框架26報告組件細(xì)節(jié)、組件沖突、以及用戶可能在包文件300的部署 期間遇到的任何其它部署問題。通過向解決方案框架26回報此信息,可集中化沖突檢查進 程的控制。如果沖突存在,則該進程前進至操作670。如果沒有沖突存在,則該進程前進至 操作660且部署進程繼續(xù)。在其它實施例中,可異步地執(zhí)行沖突檢查的進程。即是,其中解 決方案框架26同時檢測沖突的多線程進程。因此,此進程可按異步或線性/順序兩種方式
      10執(zhí)行。在操作670,作出沖突是否可由解決方案框架自動糾正的判定。如果解決方案框架 可自動糾正沖突,則解決方案框架可隨后自動糾正該沖突且該進程可繼續(xù)至操作660。在某 些實現(xiàn)中,可通過部署界面220向用戶呈現(xiàn)警告消息以向用戶告知被糾正的沖突。如果解 決方案框架26不能自動糾正該沖突,則可向用戶呈現(xiàn)錯誤消息以指示該致命沖突,且進程 前進至操作680,其中部署異常中止。在其它實現(xiàn)中,可給予用戶自動覆蓋任何沖突以重寫 沖突組件的能力。在此類實現(xiàn)中,用戶可能需要在嘗試部署包文件300之前這樣做,且如果 沖突發(fā)生,則可使用來自包文件300的新組件來重寫組件。在操作660,通過向服務(wù)傳輸涉及所選組件的小包來部署所選服務(wù)的各組件。每一 小包可包括專用于該服務(wù)的一系列二進制數(shù)據(jù)。所選服務(wù)可知曉如何將數(shù)據(jù)流去串行化成 用于部署的相關(guān)數(shù)據(jù)。一旦在服務(wù)上部署了數(shù)據(jù),該進程繼續(xù)至操作690。在操作690,作出是否要選擇另一服務(wù)的判定。如果必須將其它組件部署在另一服 務(wù)上,則進程返回到操作640,并選擇下一服務(wù)。如果部署了所有組件,則進程前進至結(jié)束操 作。在其它實現(xiàn)中,可在將任何小包從解決方案框架26傳輸?shù)椒?wù)群集230之前處理 所有所選組件以檢查沖突。例如,可循環(huán)通過所有服務(wù),在沖突信息被集中化處理的解決方 案框架處收集的沖突信息,且如果清除了這些沖突則將小包傳輸?shù)椒?wù)群集230。以此方 式,可集中化地處理所有沖突。此外,可執(zhí)行部署后進程。例如,在部署小包之后,每一服務(wù)群集可報告關(guān)于所部 署的組件的信息。可隨后將此部署后信息傳送回每一服務(wù)群集。因此,所有服務(wù)群集在整 個包的部署完成之后再次通信。這允許向服務(wù)群集通知部署在整個系統(tǒng)之間的所有組件。 以此方式,每一群集可基于此信息執(zhí)行部署后操作。例如,第一服務(wù)群集和第二服務(wù)群集中 的組件可以是彼此非常緊密地相關(guān)的,且通過知曉彼此相關(guān)的最終部署信息,服務(wù)可執(zhí)行 增強這是端對端、緊密連系的分布式應(yīng)用程序的部署而非許多隔離的部分的部署的事實的 業(yè)務(wù)邏輯。以上說明、示例和數(shù)據(jù)提供了對本發(fā)明的組成部分的制造和使用的全面描述。因 為可以在不背離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實施例,所以本發(fā)明落在 所附權(quán)利要求的范圍內(nèi)。
      權(quán)利要求
      一種用于創(chuàng)建分布式應(yīng)用程序的方法,所述方法包括從在遠(yuǎn)程服務(wù)器群集(230)上可用的組件的列表中選擇一組組件;從所述遠(yuǎn)程服務(wù)器群集(230)接收(410)安裝所選組件所需的數(shù)據(jù);響應(yīng)于所接收到的數(shù)據(jù)創(chuàng)建(480)指令的列表;以及存儲所述指令的列表。
      2.如權(quán)利要求1所述的方法,其特征在于,存儲所述指令的列表還包括 在所述指令的列表中編碼所接收到的信息;以及在所述指令的列表中編碼(570)水印。
      3.如權(quán)利要求1所述的方法,其特征在于,從在遠(yuǎn)程服務(wù)器群集(230)上可用的組件的 列表中選擇一組組件還包括選擇(420)在所述遠(yuǎn)程服務(wù)器群集(230)上可用的服務(wù); 接收(440)在所選服務(wù)上可用的組件的列表;以及 選擇(460)在所選服務(wù)上可用的組件。
      4.如權(quán)利要求3所述的方法,其特征在于,選擇在所選服務(wù)上可用的組件包括接收專 用于在所選服務(wù)上可用的組件的類型的選擇界面數(shù)據(jù)。
      5.如權(quán)利要求1所述的方法,其特征在于,還包括處理所述指令的列表以提取安裝所選組件所需的數(shù)據(jù);以及將安裝所選組件所需的數(shù)據(jù)傳輸?shù)剿鲞h(yuǎn)程服務(wù)器群集(230)以允許將所述組件安 裝在所述遠(yuǎn)程服務(wù)器群集(230)上。
      6.如權(quán)利要求5所述的方法,其特征在于,處理所述指令的列表還包括 向與所選組件相關(guān)聯(lián)的服務(wù)傳輸所選組件的描述;接收來自所述服務(wù)的沖突信息;集中化地處理所述沖突信息以確定所選組件內(nèi)是否存在沖突;以及 響應(yīng)于集中化處理所述沖突信息,在沖突不存在時,將安裝所選組件所需的數(shù)據(jù)傳輸 (660)到所述遠(yuǎn)程服務(wù)器群集(230)以允許在所述遠(yuǎn)程服務(wù)器群集(230)上安裝所述組件。
      7.如權(quán)利要求6所述的方法,其特征在于,處理所述指令的列表還包括 在沖突存在時,確定(670)是否可自動處理所述沖突;以及響應(yīng)于是否可自動處理所述沖突的判定自動處理所述沖突。
      8.一種具有用于創(chuàng)建分布式應(yīng)用程序的計算機可執(zhí)行指令的有形計算機可讀介質(zhì) (14),所述指令包括從在分布式計算機系統(tǒng)上可用的服務(wù)的列表中選擇(420)服務(wù);選擇(460)在所選服務(wù)上可用的組件;從所述分布式計算機系統(tǒng)接收涉及所選組件的安裝數(shù)據(jù);響應(yīng)于所接收到的數(shù)據(jù)創(chuàng)建(480)包文件;以及存儲所述包文件。
      9.如權(quán)利要求8所述的方法,其特征在于,存儲所述包文件還包括 編碼描述所述包文件中的所選組件的清單;將所述包文件中的安裝數(shù)據(jù)編碼(560)為凈荷;以及 在所述包文件中編碼(570)水印。
      10.如權(quán)利要求9所述的方法,其特征在于,在所述包文件中編碼(570)所述水印還包 括創(chuàng)建被包括在所述包文件中的數(shù)據(jù)的加密散列。
      11.如權(quán)利要求8所述的方法,其特征在于,選擇在所選服務(wù)上可用的組件還包括 接收專用于在所述服務(wù)上可用的組件的類型的選擇界面數(shù)據(jù);以及將所述選擇界面數(shù)據(jù)傳遞到用于響應(yīng)于所述選擇界面數(shù)據(jù)生成選擇界面的部署界面。
      12.如權(quán)利要求8所述的方法,其特征在于,還包括 處理所述包文件以提取所述安裝數(shù)據(jù);以及向所述分布式計算機系統(tǒng)傳輸所述安裝數(shù)據(jù)以允許安裝所述分布式應(yīng)用程序。
      13.如權(quán)利要求9所述的方法,其特征在于,處理所述包文件還包括 向與所選組件相關(guān)聯(lián)的所選服務(wù)傳輸所述清單;接收來自所選服務(wù)的沖突信息;集中化地處理所述沖突信息以確定(650)沖突是否存在;以及 響應(yīng)于集中化處理所述沖突信息,向所選服務(wù)傳輸所述安裝數(shù)據(jù)以允許安裝所述分布 式應(yīng)用程序。
      14.如權(quán)利要求12所述的方法,其特征在于,處理所述包文件還包括 確定所選服務(wù)是否可用;以及在所選服務(wù)可用時向所述分布式計算機系統(tǒng)傳輸所述安裝數(shù)據(jù)以允許安裝所述分布 式應(yīng)用程序。
      15.如權(quán)利要求12所述的方法,其特征在于,處理所述包文件以提取所述安裝數(shù)據(jù)還 包括基于用戶許可確定所選組件是否可用;以及在所選組件可用時向所述分布式計算機系統(tǒng)傳輸所述安裝數(shù)據(jù)以允許安裝所述分布 式應(yīng)用程序。
      16.一種用于分布式計算應(yīng)用程序的集中化控制的系統(tǒng),所述系統(tǒng)包括 處理器(5)和計算機可讀介質(zhì)(14);存儲在所述計算機可讀介質(zhì)(14)上并在所述處理器(5)上執(zhí)行的操作環(huán)境(16);以及存儲在所述計算機可讀介質(zhì)(14)上并在所述處理器(14)上執(zhí)行的解決方案框架 (26),所述解決方案框架(26)被配置成從在服務(wù)群集上可用的服務(wù)的列表中選擇(420)服務(wù); 選擇(460)在所選服務(wù)上可用的組件; 從所選服務(wù)接收涉及所選組件的安裝數(shù)據(jù); 響應(yīng)于所接收到的數(shù)據(jù)創(chuàng)建(480)包文件;以及 將所述包文件存儲在所述計算機可讀介質(zhì)上。
      17.如權(quán)利要求16所述的方法,其特征在于,所述解決方案框架(26)還被配置成通過 以下操作在所述計算機可讀介質(zhì)上存儲所述包文件在所述包文件中存儲描述所選組件的清單; 在所述包文件中存儲(560)所述安裝數(shù)據(jù);以及 在所述包文件中存儲(570)水印。
      18.如權(quán)利要求16所述的方法,其特征在于,所述解決方案框架(26)還被配置成 接收專用于在所述服務(wù)上可用的組件的類型的定制選擇界面;以及將所述定制選擇界面?zhèn)鬟f到部署界面。
      19.如權(quán)利要求17所述的方法,其特征在于,所述解決方案框架(26)還被配置成 處理所述包文件以提取所述安裝數(shù)據(jù);以及向所述分布式計算機系統(tǒng)傳輸所述安裝數(shù)據(jù)以允許安裝所述分布式計算應(yīng)用程序。
      20.如權(quán)利要求19所述的方法,其特征在于,所述解決方案框架(26)還被配置成通過 以下操作處理所述包文件以提取所述安裝數(shù)據(jù)向與所選組件相關(guān)聯(lián)的所選服務(wù)傳輸所述清單; 接收來自所述服務(wù)的沖突信息;集中化地處理所述沖突信息以確定(650)沖突是否存在;響應(yīng)于集中化處理所述沖突信息,向所選服務(wù)傳輸所述安裝數(shù)據(jù)以允許安裝所述組 件;以及向所述服務(wù)群集傳輸部署后調(diào)用。
      全文摘要
      創(chuàng)建分布式應(yīng)用程序包括從遠(yuǎn)程服務(wù)器群集上可用的組件的列表中選擇一組組件。從遠(yuǎn)程服務(wù)器群集接收安裝所選組件所需的數(shù)據(jù)。響應(yīng)于所接收到的數(shù)據(jù)創(chuàng)建指令的列表。隨后存儲指令的列表。處理指令的列表以提取安裝所選組件所需的數(shù)據(jù)。將安裝所選組件所需的數(shù)據(jù)傳輸?shù)竭h(yuǎn)程服務(wù)器群集以允許將組件安裝在遠(yuǎn)程服務(wù)器群集上。
      文檔編號G06F15/16GK101809563SQ200880109406
      公開日2010年8月18日 申請日期2008年9月12日 優(yōu)先權(quán)日2007年9月26日
      發(fā)明者A·C·S·沈, B·C·布洛姆奎斯特, C·J·拜特爾, D·邱, M·卡尼甘蒂, R·B·戈皮納特, R·W·湯姆 申請人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1