部署設(shè)備和部署方法
【專利摘要】在構(gòu)造系統(tǒng)時,更有效地確認系統(tǒng)的正常性。在部署設(shè)備(100)中,配置信息存儲單元(104)存儲與組成所述系統(tǒng)的模塊的標識符關(guān)聯(lián)的配置信息,配置信息包括以下至少一個:用于確認PF模塊的部署正常性的PF確認模塊的標識符,以及用于確認所述模塊的部署正常性的自身確認模塊的標識符。正常性確認單元(106)參考所述配置信息執(zhí)行以下至少一個:在處理設(shè)備中部署所述模塊之前,利用所述PF確認模塊,確認處理設(shè)備中所述PF模塊的部署正常性;以及在處理設(shè)備中部署所述模塊之后,利用所述自身確認模塊,確認處理設(shè)備中所述模塊的部署正常性。
【專利說明】部署設(shè)備和部署方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及程序的部署設(shè)備和部署方法
【背景技術(shù)】
[0002]在使用虛擬機的系統(tǒng)中,可以手動構(gòu)造用于執(zhí)行服務(wù)應(yīng)用的環(huán)境(系統(tǒng)執(zhí)行環(huán)境)。在這種情況中,服務(wù)應(yīng)用的開發(fā)者創(chuàng)建用于構(gòu)造執(zhí)行環(huán)境的工作過程,作為構(gòu)造過程手冊。構(gòu)造系統(tǒng)的工程師根據(jù)過程手冊部署并設(shè)置OS(操作系統(tǒng))、中間件和各種模塊(例如相關(guān)庫),然后部署并設(shè)置開發(fā)的應(yīng)用模塊。工程師根據(jù)在構(gòu)造過程手冊中描述的確認項目列表來目視檢查與部署的模塊有關(guān)的日志和文件以及其他輸出是否存在,從而確認是否正常構(gòu)造執(zhí)行環(huán)境。
[0003]在非專利文獻I中公開了一種用于有效地構(gòu)造這種系統(tǒng)執(zhí)行環(huán)境的方法,其中,通過協(xié)同工具(orchestrat1n tool)構(gòu)造執(zhí)行環(huán)境。協(xié)同工具根據(jù)針對每個系統(tǒng)分別描述的工作流程來構(gòu)造執(zhí)行環(huán)境。協(xié)同工具根據(jù)在工作流程中描述的過程確認執(zhí)行環(huán)境是否正常被構(gòu)造。
[0004]并且,在作為相關(guān)技術(shù)的專利文獻I中公開了一種技術(shù),其中,針對組成系統(tǒng)的每個組件,插入用于確認當前操作系統(tǒng)的正常性的探測器。
[0005]引用文獻列表
[0006]專利文獻1:日本專利公開:Νο.4809772
[0007]非專利文獻1:“HP Operat1ns Orchestrat1n software,,,Hewlett-PackardCompany, [online], [searched 29May 2012], Internet URL:
[0008]http://www8.hp.com/us/en/software/software-product.html ? compURI = tcm:245_936143&pageTitle = operat1ns-orchestrat1n-software
【發(fā)明內(nèi)容】
[0009][技術(shù)問題]
[0010]如非專利文獻I所描述的,當通過協(xié)同工具構(gòu)造系統(tǒng)時,開發(fā)者必須定義用于確認系統(tǒng)正常性的過程,作為每個系統(tǒng)的工作流程的一部分。因此,當需要構(gòu)造多種不同的系統(tǒng)時,或者,當構(gòu)造目標系統(tǒng)因為是由很多模塊組成的因而是一個復(fù)雜系統(tǒng)時,創(chuàng)建工作流程的開發(fā)者的負擔會增加。
[0011]本發(fā)明的目的在于解決以上提到的問題,并提供一種部署設(shè)備和部署方法,其能夠在構(gòu)造系統(tǒng)時有效地確認系統(tǒng)的正常性。
[0012][解決問題的方案]
[0013]根據(jù)本發(fā)明示范性方案的部署設(shè)備,包括:配置信息存儲裝置,用于存儲與組成所述系統(tǒng)的模塊的標識符關(guān)聯(lián)的配置信息,所述配置信息包括平臺(PF)確認信息和自身確認信息中的至少一個,所述PF確認信息包括用于確認PF模塊的部署正常性的PF確認模塊的標識符,所述PF模塊是被所述模塊依賴的另一模塊,所述自身確認信息包括用于確認所述模塊的部署正常性的自身確認模塊的標識符;以及正常性確認裝置,用于參考所述配置信息執(zhí)行以下至少一個:在處理設(shè)備中部署所述模塊之前,利用所述PF確認模塊,確認處理設(shè)備中所述PF模塊的部署正常性;以及,在處理設(shè)備中部署所述模塊之后,利用所述自身確認模塊,確認處理設(shè)備中所述模塊的部署正常性。
[0014]根據(jù)本發(fā)明示范性方案的部署方法包括:存儲與組成所述系統(tǒng)的模塊的標識符關(guān)聯(lián)的配置信息,所述配置信息包括平臺(PF)確認信息和自身確認信息中的至少一個,所述PF確認信息包括用于確認PF模塊的部署正常性的PF確認模塊的標識符,所述PF模塊是被所述模塊依賴的另一模塊,所述自身確認信息包括用于確認所述模塊的部署正常性的自身確認模塊的標識符;在處理設(shè)備中部署所述模塊;以及參考配置信息執(zhí)行以下至少一個:在處理設(shè)備中部署所述模塊之前,利用所述PF確認模塊,確認處理設(shè)備中所述PF模塊的部署正常性;以及在處理設(shè)備中部署所述模塊之后,利用所述自身確認模塊,確認處理設(shè)備中所述模塊的部署正常性。
[0015]根據(jù)本發(fā)明示范性方案的計算機可讀存儲介質(zhì),其上記錄有程序,所述程序使得計算機執(zhí)行方法,所述方法包括:存儲與組成所述系統(tǒng)的模塊的標識符關(guān)聯(lián)的配置信息,所述配置信息包括平臺(PF)確認信息和自身確認信息中的至少一個,所述PF確認信息包括用于確認PF模塊的部署正常性的PF確認模塊的標識符,所述PF模塊是被所述模塊依賴的另一模塊,所述自身確認信息包括用于確認所述模塊的部署正常性的自身確認模塊的標識符;在處理設(shè)備中部署所述模塊;以及參考配置信息執(zhí)行以下至少一個:在處理設(shè)備中部署所述模塊之前,利用所述PF確認模塊,確認處理設(shè)備中所述PF模塊的部署正常性;以及在處理設(shè)備中部署所述模塊之后,利用所述自身確認模塊,確認處理設(shè)備中所述模塊的部署正常性。
[0016][本發(fā)明的有益效果]
[0017]本發(fā)明的有益效果是,在構(gòu)造系統(tǒng)時能夠更有效地確認系統(tǒng)的正常性。
【專利附圖】
【附圖說明】
[0018]圖1是示出本發(fā)明第一示范性實施例的特征配置的方框圖。
[0019]圖2是示出根據(jù)本發(fā)明第一示范性實施例的部署系統(tǒng)的配置的方框圖。
[0020]圖3是示出根據(jù)本發(fā)明第一示范性實施例的模塊之間依賴關(guān)系的示例的圖。
[0021]圖4是示出根據(jù)本發(fā)明第一示范性實施例的配置信息表300的示例的圖
[0022]圖5是示出根據(jù)本發(fā)明第一示范性實施例的配置信息表300的另一個示例的圖。
[0023]圖6是示出根據(jù)本發(fā)明第一示范性實施例的正常性確認方法的概覽的圖。
[0024]圖7是示出根據(jù)本發(fā)明第一示范性實施例的構(gòu)造列表的示例的圖。
[0025]圖8是示出根據(jù)本發(fā)明第一示范性實施例的系統(tǒng)構(gòu)造處理的流程圖。
[0026]圖9是示出根據(jù)本發(fā)明第一示范性實施例的構(gòu)造列表生成處理(步驟S12)的詳情的流程圖
[0027]圖10是示出根據(jù)本發(fā)明第一示范性實施例的節(jié)點處理(步驟S1204)的詳情的流程圖。
[0028]圖11是示出根據(jù)本發(fā)明第一示范性實施例的模塊部署處理(步驟S17)的詳情的流程圖。
[0029]圖12是示出根據(jù)本發(fā)明第二示范性實施例的配置信息表300的示例的圖。
【具體實施方式】
[0030][第一示范性實施例]
[0031 ] 接下來描述本發(fā)明的第一示范性實施例。
[0032]首先,將描述本發(fā)明第一示范性實施例的配置。圖2是示出根據(jù)本發(fā)明第一示范性實施例的部署系統(tǒng)的配置的方框圖。
[0033]參考圖2,部署系統(tǒng)包括部署環(huán)境1、外部存儲庫2、部署設(shè)備100、以及處理設(shè)備200。
[0034]部署設(shè)備100通過在處理設(shè)備200中部署組成IT系統(tǒng)的程序模塊(下文中稱為模塊)來構(gòu)造系統(tǒng),所述模塊例如是OS、中間件(MW)以及應(yīng)用(AP)。這里,部署是指向處理設(shè)備200發(fā)送模塊并通過安裝程序在處理設(shè)備200中安裝模塊的處理。
[0035]部署設(shè)備100根據(jù)在配置信息表300中描述的每個模塊的依賴關(guān)系在處理設(shè)備200中部署每個模塊。
[0036]圖3是示出根據(jù)本發(fā)明第一示范性實施例的模塊之間的依賴關(guān)系的示例的圖。圖3中,方框表示模塊,方框之間的箭頭指示依賴關(guān)系。這里,在處理設(shè)備200中部署位于箭頭尾部的模塊時,位于箭頭頂端的模塊必須已經(jīng)安裝在處理設(shè)備200中。也就是說,位于箭頭尾部的模塊的部署依賴于位于箭頭頂部的模塊的部署。在圖3示出的示例中,模塊“API”的部署依賴于模塊“Tomcat”的部署和模塊“PostgreSQL”的部署。模塊“Tomcat”的部署依賴于模塊“Java (注冊商標)”的部署。此外,位于箭頭尖端的模塊稱為位于箭頭尾部的模塊的平臺(PF)模塊或者低順序模塊,而位于箭頭尾部的模塊稱為位于箭頭尖端的模塊的高順序模塊。而且,從特定模塊起連續(xù)追蹤PF模塊得到的模塊形成的模塊組稱為該特定模塊的平臺。
[0037]在本發(fā)明第一示范性實施例中,確定部署模塊的順序,使得每個模塊依賴的PF模塊先部署在處理設(shè)備200中。
[0038]部署設(shè)備100包括模塊管理單元101、模塊存儲單元102、配置信息管理單元103、配置信息存儲單元104、部署單元105、正常性確認單元106、以及構(gòu)造請求輸入單元107。
[0039]模塊管理單元101從開發(fā)環(huán)境I或外部存儲庫2獲取構(gòu)造系統(tǒng)所需的模塊,并將其保存在模塊存儲單元102中。例如,模塊管理單元101從開發(fā)環(huán)境獲取AP模塊,從外部存儲庫2獲取多個系統(tǒng)公用的模塊,如OS模塊、MW模塊。
[0040]配置信息管理單元103從開發(fā)環(huán)境I或外部存儲庫2獲取每個模塊的配置信息表300,并將其保存在配置信息存儲單元104中。
[0041]圖4和圖5是不出根據(jù)本發(fā)明第一不范性實施例的配置信息表300的不例的圖。配置信息表300是針對每個模塊設(shè)置的。
[0042]配置信息表300包括模塊信息310、一條或更多條PF模塊信息320、以及自身確認信息330。
[0043]這里,模塊信息310包括模塊標識符311和模塊標識符311指定的模塊(部署目標模塊)的文件標識符312。并且,當部署目標模塊和用于安裝所述部署目標模塊的信息一起存儲在打包文件中時,文件標識符312可以是該打包文件的標識符。
[0044]PF模塊信息320包括作為PF模塊標識符的PF模塊標識符321以及用于部署目標模塊的PF確認信息322。PF確認信息322包括PF確認模塊的模塊類型323和文件標識符324。
[0045]PF確認模塊是用于在部署部署目標模塊前確認PF模塊的部署正常性的模塊(程序或腳本)。PF確認模塊被部署在PF模塊或OS上并且執(zhí)行。當PF確認模塊的模塊類型323是“部署”時,PF確認模塊被部署在PF模塊上。當模塊類型323是“單獨”時,PF確認模塊被直接部署在OS上。
[0046]PF確認模塊基于以下信息來確認PF模塊的部署正常性:在部署PF模塊時生成的預(yù)定文件是否存在;或者,在部署PF模塊時激活的預(yù)定進程是否存在。此外,PF確認模塊可以基于在部署PF模塊時由OS等生成的預(yù)定日志字符串是否存在來確認該正常性。
[0047]此外,PF確認模塊可以調(diào)用PF模塊的預(yù)定函數(shù)或API (應(yīng)用程序接口)來獲得返回值,并基于是否獲得預(yù)定返回值來確認PF模塊的部署正常性。PF確認模塊可以向PF模塊輸入預(yù)定腳本和數(shù)據(jù),并基于是否獲得預(yù)定結(jié)果來確認PF模塊的部署正常性。
[0048]注意,PF確認模塊可以在上文提到的確認中使用部署目標模塊所使用的文件、處理、函數(shù)、API等。
[0049]自身確認信息330包括自身確認模塊的模塊類型331和文件標識符332。
[0050]自身確認模塊是用于在部署部署目標模塊后確認部署目標模塊的部署正常性的模塊。自身確認模塊被部署在部署目標模塊或OS上并且執(zhí)行。當自身確認模塊的模塊類型331是“部署”時,自身確認模塊被部署在部署目標模塊上。當模塊類型331是“單獨”時,自身確認模塊被直接部署在OS上。
[0051]與PF確認模塊類似,自身確認模塊基于例如以下信息來確認部署目標模塊的部署正常性:在部署部署目標模塊時生成的預(yù)定文件是否存在,或者在部署部署目標模塊時激活的預(yù)定處理是否存在。此外,自身確認模塊可以基于在部署部署目標模塊時由OS等生成的預(yù)定日志字符串是否存在來確認該正常性。
[0052]此外,自身確認模塊可以調(diào)用部署目標模塊的預(yù)定函數(shù)或API來獲得返回值,并基于是否獲得預(yù)定返回值來確認部署目標模塊的部署正常性。自身確認模塊可以向部署目標模塊輸入預(yù)定腳本和數(shù)據(jù),并基于是否獲得預(yù)定結(jié)果來確認部署目標模塊的部署正常性。
[0053]圖4示出模塊標識符311為“API”的AP模塊的配置信息表300的示例。在該情形中,為了操作模塊“AP1”,需要模塊標識符311為“Tomcat”的PF模塊和模塊標識符311為“PostgreSQL”的PF模塊。在確認PF模塊“Tomcat”的部署正常性時,使用文件標識符為“Pf4APl.war”的PF確認模塊。在確認PF模塊“PostgreSQL”的部署正常性時,使用文件標識符為“PSQL4AP1.sql”的PF確認模塊。此外,在確認模塊“API”的部署正常性時,使用文件標識符332為“Aplself”的自身確認模塊。
[0054]每個模塊的開發(fā)者等預(yù)先為每個模塊創(chuàng)建PF確認模塊和自身確認模塊,并在該模塊的配置信息表300中的PF確認信息322和自身確認信息330中設(shè)置每個模塊的類型和文件標識符。
[0055]模塊管理單元101從開發(fā)環(huán)境I或外部存儲庫2獲取創(chuàng)建的PF確認模塊和創(chuàng)建的自身確認模塊,并將其存儲在模塊存儲單元102中。配置信息管理單元103從開發(fā)環(huán)境I或外部存儲庫2獲取創(chuàng)建的配置信息表300,并將其存儲在配置信息存儲單元104中。
[0056]注意,配置信息表300可以描述為其他形式,例如XML(可擴展標記語言)。在不存在部署目標模塊依賴的PF模塊時,可以不設(shè)置PF模塊信息320。在不需要確認PF模塊或部署目標模塊的部署正常性時,可以不設(shè)置PF確認信息322或自身確認信息330。
[0057]部署單元105包括準備(provis1ning)單元108、AP模塊部署單元109、MW部署單元110、OS部署單元111、虛擬機(VM)部署單元112、以及網(wǎng)絡(luò)(NW)部署單元113。
[0058]準備單元108基于組成系統(tǒng)的每個模塊的配置信息表300,在處理設(shè)備200中部署每個模塊。這里,準備單元108使用VM部署單元112和NW部署單元113,生成用于在處理設(shè)備200上構(gòu)造系統(tǒng)的虛擬服務(wù)器202。準備單元108使用AP模塊部署單元109、MW部署單元110和OS部署單元111,在生成的虛擬服務(wù)器202中部署每個模塊。
[0059]正常性確認單元106使用PF確認模塊確認PF模塊的部署正常性,以及使用自身確認模塊確認部署目標模塊的部署正常性。
[0060]構(gòu)造請求輸入單元107從用戶等接收關(guān)于系統(tǒng)構(gòu)造請求的輸入。
[0061]處理設(shè)備200是具有基礎(chǔ)OS的計算機,該OS具有例如通信功能、用于安裝的程序等。處理設(shè)備200包括虛擬化基礎(chǔ)設(shè)施201,例如VM監(jiān)視器、管理程序(hupervisor)。虛擬化基礎(chǔ)設(shè)施201響應(yīng)于來自部署單元105的請求生成虛擬服務(wù)器202,并在生成的虛擬服務(wù)器202中部署從部署單元105接收的每個模塊。虛擬服務(wù)器202執(zhí)行每個已部署單元的處理。
[0062]部署設(shè)備100可以是程序控制的計算機,其包括CPU(中央處理器)和存儲程序的存儲介質(zhì)。模塊存儲單元102和配置信息存儲單元104可以被配置為分離的存儲媒介或被配置為一個存儲媒介。
[0063]以下,將描述根據(jù)本發(fā)明第一示范性實施例的部署設(shè)備100的操作。
[0064]首先,描述根據(jù)本發(fā)明第一示范性實施例的正常性確認方法的概覽。圖6是示出根據(jù)本發(fā)明第一示范性實施例的正常性確認方法的概覽的圖。
[0065]這里,假設(shè)部署目標模塊的平臺已被部署(圖6示出的狀態(tài)I)。正常性確認單元106參考部署目標模塊的配置信息表300在處理設(shè)備200中部署從模塊存儲單元102獲取的PF確認模塊,并確認PF模塊的部署正常性(狀態(tài)2)。當已經(jīng)確認PF模塊被正常部署時,準備單元108參考配置信息表300在處理設(shè)備200中部署從模塊存儲單元102獲取的部署目標模塊(狀態(tài)3)。正常性確認單元106參考配置信息表300在處理設(shè)備200中部署從模塊存儲單元102獲取的自身確認模塊,并確認部署目標模塊的部署正常性(狀態(tài)4)。當已經(jīng)確認部署目標模塊被正常部署時,將順序等于或低于部署目標模塊的順序的模塊組成的模塊組看作新平臺(狀態(tài)5)。然后,部署順序高于部署目標模塊的順序的高順序模塊。
[0066]因而,在本發(fā)明第一示范性實施例中,以模塊的層級的遞增順序部署組成系統(tǒng)的模塊,在該處理中,在部署該部署目標模塊前,從部署目標模塊的視角確認PF模塊的部署正常性,在部署該部署目標模塊后,從部署目標模塊的視角確認部署目標模塊的部署正常性,并且重復(fù)這些確認處理。
[0067]以下,將描述本發(fā)明第一示范性實施例中的系統(tǒng)構(gòu)造處理。圖8是示出根據(jù)本發(fā)明第一示范性實施例的系統(tǒng)構(gòu)造處理的流程圖。
[0068]首先,構(gòu)造請求輸入單元107接收系統(tǒng)構(gòu)造請求輸入,在系統(tǒng)構(gòu)造請求輸入中,用戶等指定構(gòu)造目標系統(tǒng)(步驟Sll)。這里,通過作為系統(tǒng)中的最高順序模塊的AP模塊的標識符指定構(gòu)造目標系統(tǒng)。
[0069]例如,構(gòu)造請求輸入單元107接收構(gòu)造目標系統(tǒng)中的AP模塊的標識符“API”。
[0070]準備模塊108生成構(gòu)造列表(步驟S12)。
[0071]圖7是示出根據(jù)本發(fā)明第一示范性實施例的構(gòu)造列表的示例的圖。構(gòu)造列表是構(gòu)造系統(tǒng)時要部署的模塊的配置信息表300的列表。配置信息表300以部署順序布置在構(gòu)造列表中。
[0072]圖9是示出根據(jù)本發(fā)明第一示范性實施例的構(gòu)造列表生成處理(步驟S12)的詳情的流程圖。這里,將通過依賴關(guān)系相互關(guān)聯(lián)的配置信息表300視為有向圖,并且基于圖論中的拓撲排序算法生成構(gòu)造列表。
[0073]首先,準備單元108初始化構(gòu)造列表(步驟S1201)。準備單元108從配置信息存儲單元104獲取在步驟Sll中指定的AP模塊的配置信息表300。準備單元108通過以遞歸方式重復(fù)對PF模塊標識符321指定的PF模塊的配置信息表300的獲取來識別要部署的模塊,并提取每個模塊的配置信息表300 (步驟S1202)。這里,假設(shè)模塊之間的依賴關(guān)系不包括交叉引用和循環(huán)。
[0074]例如,準備單元108通過以遞歸方式從模塊“API”的配置信息表300獲取PF模塊標識符321,將模塊“Tomcat”、模塊“PostgreSQL”、和模塊“Java”識別為要部署的模塊,并獲取每個模塊的配置信息表300。
[0075]準備單元108選擇所獲取的配置信息表300之一(步驟S1203),并執(zhí)行節(jié)點處理(稍后提到),指定所選擇的配置信息表300 (步驟S1204)。準備單元108針對在步驟S1202中提取的所有配置信息表300重復(fù)步驟S1203和步驟1204的處理。
[0076]例如,準備單元108執(zhí)行分別指定模塊“Tomcat”、模塊“PostgreSQL”和模塊“Java”的配置信息表300的節(jié)點處理。
[0077]圖10是示出根據(jù)本發(fā)明第一示范性實施例的節(jié)點處理(步驟S1204)的詳情的流程圖。
[0078]首先,準備單元108確定與指定的配置信息表300有關(guān)的處理是否已執(zhí)行(步驟S12041)。當與指定的配置信息表300有關(guān)的處理已執(zhí)行時(步驟S12041/是),準備單元108結(jié)束該處理。當與指定的配置信息表300有關(guān)的處理還未執(zhí)行時(步驟S12041/否),準備單元108將指定的配置信息表300的狀態(tài)設(shè)置為“處理已執(zhí)行”(步驟S12042)。準備單元108提取在指定的配置信息表300中包括的所有PF模塊標識符321 (步驟S12043)。
[0079]當PF模塊標識符321不存在時(步驟S12044/否),準備單元108的處理前進至步驟 S12048。
[0080]當PF模塊標識符321存在時(步驟S12044/是),準備單元108選擇所提取的PF模塊之一并獲取該PF模塊的配置信息表300 (步驟S12045)。準備單元108以遞歸方式執(zhí)行指定所獲取的配置信息表300 (步驟S12046)的節(jié)點處理(步驟S12041至步驟S12048)。準備單元108針對在步驟S12043提取的所有PF模塊,重復(fù)步驟S12045和S12046的處理(步驟S12047)。準備單元108在構(gòu)造列表中添加指定的配置信息表300 (步驟S12048)。
[0081]例如,在步驟S1204,執(zhí)行指定模塊“API”的配置信息表300 (圖4)的節(jié)點處理。準備單元108將模塊“API”的配置信息表300的狀態(tài)設(shè)置為“處理已執(zhí)行”。準備單元108從模塊“API”的配置信息表300提取PF模塊標識符321 “Tomcat”和“PostgreSQL”。
[0082]準備單元108執(zhí)行指定模塊“Tomcat”的配置信息表300 (圖5)的節(jié)點處理。
[0083]準備單元108將模塊“Tomcat”的配置信息表300的狀態(tài)設(shè)置為“處理已執(zhí)行”。準備單元108從模塊“Tomcat”的配置信息表300提取PF模塊標識符321 “Java”。準備單元108執(zhí)行指定模塊“Java”的處理。
[0084]準備單元108將模塊“Java”的配置信息表300的狀態(tài)設(shè)置為“處理已執(zhí)行”。這里,假設(shè)在模塊“Java”的配置信息表300中未設(shè)置PF模塊信息320。因為在模塊“Java”的配置信息表300中不存在PF模塊標識符321,所以準備單元108向構(gòu)造列表的頂部添加模塊“Java”的配置信息表300。
[0085]然后,準備單元108向構(gòu)造列表添加模塊“Tomcat”的配置信息表300。
[0086]此外,準備單元108執(zhí)行指定模塊“PostgreSQL”的節(jié)點處理。準備單元108將模塊“PostgreSQL”的配置信息表300的狀態(tài)設(shè)置為“處理已執(zhí)行”。這里,假設(shè)在模塊“PostgreSQL”的配置信息表300中未設(shè)置PF模塊信息320。因為在模塊“PostgreSQL”的配置信息表300中不存在PF模塊標識符321,所以準備單元108向構(gòu)造列表添加模塊“PostgreSQL”的配置信息表300。
[0087]準備單元108向構(gòu)造列表添加模塊“API”的配置信息表300。
[0088]在步驟S1204,分別執(zhí)行指定模塊“Tomcat”、模塊“PostgreSQL”、和模塊“Java”的配置信息表300的節(jié)點處理。然而,因為這些模塊的配置信息表300的狀態(tài)被設(shè)置為“處理已執(zhí)行”,所以構(gòu)造列表不變。
[0089]例如,在執(zhí)行上文提到的構(gòu)造列表生成處理(步驟S12)時,生成構(gòu)造列表,模塊“Java”、模塊“Tomcat”、模塊“PostgreSQL”、和模塊“API”的配置信息表300以此順序布置在構(gòu)造列表中,如圖7所不。
[0090]注意,可以由使用除拓撲排序算法之外的其他算法的其他方法來生成構(gòu)造列表,只要所確定的每個模塊的部署順序滿足首先部署每個模塊依賴的PF模塊。
[0091]當構(gòu)造列表生成處理結(jié)束時,準備單元108經(jīng)由VM部署單元112和NW部署單元113,請求虛擬化基礎(chǔ)設(shè)施201生成用于構(gòu)造系統(tǒng)的虛擬服務(wù)器202 (步驟S13)。
[0092]如果不能生成虛擬服務(wù)器202 (步驟S14/否),準備單元108輸出“構(gòu)造錯誤”消息(步驟S15),并結(jié)束處理。
[0093]如果能夠生成虛擬服務(wù)器202 (步驟S14/是),準備單元108獲取列在生成的構(gòu)造列表頂部的配置信息表300 (步驟S16),并通過指定獲取的配置信息表300執(zhí)行模塊部署處理(稍后描述)(步驟S17)。當模塊部署處理結(jié)束時,準備單元108確定模塊部署處理是否正常結(jié)束(步驟S18)。
[0094]如果已經(jīng)確定模塊部署處理不正常結(jié)束(步驟S18/否),準備單元108輸出“構(gòu)造錯誤”消息(步驟S15)并結(jié)束處理。
[0095]準備單元108針對包括在構(gòu)造列表中的所有配置信息表300重復(fù)步驟S16至S18的處理(步驟S19)。如果對包括在構(gòu)造列表中的所有配置信息表300的模塊部署處理正常結(jié)束,準備單元108輸出“構(gòu)造正常結(jié)束”消息(步驟S20)并結(jié)束處理。
[0096]準備單元18執(zhí)行對包括在圖7示出的構(gòu)造列表中的模塊“Java”、模塊“Tomcat”、模塊“PostgreSQL”、和模塊“API”的配置信息表300加以指定的模塊部署處理,并且是按照上述順序分別執(zhí)行的。
[0097]圖11是示出根據(jù)本發(fā)明第一示范性實施例的模塊部署處理(步驟S17)的詳情的流程圖。
[0098]首先,正常性確認單元106從指定的配置信息表300提取所有的PF確認信息322 (步驟 S1701)。
[0099]如果PF確認信息322不存在(步驟S1702/否),正常性確認單元106的處理前進至步驟S1708的處理。
[0100]如果PF確認信息322存在(步驟S1702/是),正常性確認單元106選擇所提取的PF確認信息322之一(步驟S1703)。正常性確認單元106從模塊存儲單元102獲取由選擇的PF確認信息322中的文件標識符324指定的PF確認模塊文件。正常性確認單元106經(jīng)由部署單元109至111中的一個,在處理設(shè)備200中部署PF確認模塊,并命令其執(zhí)行PF確認模塊(步驟S1704)。當PF確認模塊的處理結(jié)束時,正常性確認單元106釋放(卸載)對PF確認模塊的部署(步驟S1705)。
[0101]如果執(zhí)行PF確認模塊的結(jié)果是不能確認PF模塊的部署正常性(步驟S1706/否),則正常性確認單元106輸出錯誤消息(步驟S1713),并結(jié)束處理。
[0102]正常性確認單元106針對在步驟S1701中提取的所有PF確認信息重復(fù)步驟1703至S1706的處理(步驟S1707)。
[0103]準備單元108從配置信息表300提取模塊信息310。準備單元108從模塊存儲單元102獲取由模塊信息310中的文件標識符312指定的部署目標模塊文件。準備單元108經(jīng)由部署單元109至111中的一個,在處理設(shè)備200中部署該部署目標模塊(步驟S1708)。
[0104]正常性確認單元106從配置信息表300提取自身確認信息330 (步驟S1709)。正常性確認單元106從模塊存儲單元102獲取由提取的自身確認信息330中的文件標識符332指定的自身確認模塊文件。正常性確認單元106經(jīng)由部署單元109至111中的一個,在處理設(shè)備200中部署自身確認模塊,并命令其執(zhí)行自身確認模塊(步驟S1710)。當自身確認模塊的處理已經(jīng)結(jié)束時,正常性確認單元106釋放(卸載)對自身確認模塊的部署(步驟 S1711)。
[0105]如果執(zhí)行自身確認模塊的結(jié)果是不能確認部署目標模塊的部署正常性(步驟S1712/否),正常性確認單元106輸出“部署錯誤”消息(步驟S1713),并結(jié)束處理。
[0106]如果能夠確認部署目標模塊的部署正常性(步驟S1712/是),正常性確認單元106輸出“部署正常結(jié)束”消息(步驟S1714),并結(jié)束處理。
[0107]例如,假設(shè)在步驟S17,在已經(jīng)執(zhí)行模塊“Java”的模塊部署處理后,執(zhí)行對模塊“Tomcat”的配置信息表300 (圖5)加以指定的模塊部署處理。在這種情況下,正常性確認單元106獲取由PF確認信息322中的文件標識符324指定的PF確認模塊文件“Pf4Tomcat”,并將其部署在處理設(shè)備200中。正常性確認單元106通過執(zhí)行PF確認模塊,確認PF模塊“Java”的部署正常性。當PF模塊“Java”正常部署時,正常性確認單元106獲取由模塊信息310中的文件標識符312指定的部署目標模塊文件“apache-tomcat-6.0.35.tgz”,并使用文件“apache-tomcat-6.0.35.tgz”將部署目標模塊“Tomcat”部署在處理設(shè)備200中。此外,正常性確認單元106獲取由自身確認信息330中的文件標識符332指定的自身確認模塊文件“Tomcatself”,并將其部署在處理設(shè)備200中。正常性確認單元106執(zhí)行自身確認模塊,從而確認部署目標模塊“Tomcat”的部署正常性。當部署目標模塊“Tomcat”正常部署時,正常性確認單元106輸出“部署正常結(jié)束”消息。
[0108]此外,假設(shè)在步驟S17,在已經(jīng)執(zhí)行模塊“PostgreSQL”的模塊部署處理后,執(zhí)行對模塊“API”的配置信息表300(圖4)加以指定的模塊部署處理。在這種情況下,正常性確認單元106獲取由PF確認信息322中的文件標識符324指定的PF確認模塊文件“Pf4Tomcat”,并將其部署在處理設(shè)備200中。正常性確認單元106通過執(zhí)行PF確認模塊,確認PF模塊“Tomcat”的部署正常性。此外,正常性確認單元106獲取由PF確認信息322中的文件標識符324指定的PF確認模塊文件“PSQL4AP1.sql”,并將其部署在處理設(shè)備200中。正常性確認單元106通過執(zhí)行PF確認模塊,確認PF模塊“PostgreSQL”的部署正常性。當PF模塊“Tomcat”和PF模塊“PostgreSQL”正常部署時,正常性確認單元106獲取由模塊信息310中的文件標識符312指定的部署目標模塊文件“aplModule.war”,并使用文件“aplModule.war”將部署目標模塊“API”部署在處理設(shè)備200中。并且,正常性確認單元106獲取由自身確認信息330中的文件標識符332指定的自身確認模塊文件“APlself”,并將其部署在處理設(shè)備200中。正常性確認單元106執(zhí)行自身確認模塊,從而確認部署目標模塊“API”的部署正常性。當部署目標模塊“Tomcat”正常部署時,正常性確認單元106輸出“部署正常結(jié)束”消息。
[0109]當針對所有模塊(模塊“Java”、模塊“Tomcat”、模塊“PostgreSQL”、和模塊“API”)的部署處理結(jié)束時,準備單元108輸出“構(gòu)造正常結(jié)束”消息。
[0110]如上文所描述的,本發(fā)明第一示范性實施例的操作結(jié)束。
[0111]以下,將描述本發(fā)明第一示范性實施例的特征配置。圖1是示出本發(fā)明第一示范性實施例的特征配置的方框圖。
[0112]參考圖1,部署設(shè)備100包括配置信息存儲單元104和正常性確認單元106。
[0113]配置信息存儲單元104存儲配置信息表300,配置信息表300包括與組成系統(tǒng)的模塊的標識符關(guān)聯(lián)的平臺(PF)確認信息322和自身確認信息中330中的至少一個。PF配置信息322包括用于確認PF模塊的部署正常性的PF確認模塊的標識符,所述PF模塊是被所述模塊依賴的另一模塊。自身確認信息330包括用于確認所述模塊的部署正常性的自身確認模塊的標識符。
[0114]正常性確認單元106通過參考配置信息表300,執(zhí)行以下至少一個:在處理設(shè)備200中所述模塊的部署前,利用PF確認模塊,執(zhí)行對處理設(shè)備200中PF模塊的部署正常性的確認,以及在處理設(shè)備200中所述模塊的部署后,利用自身確認模塊,執(zhí)行對處理設(shè)備200中所述模塊的部署正常性的確認。
[0115]根據(jù)本發(fā)明第一示范性實施例,在構(gòu)造系統(tǒng)時,能夠更有效地確認系統(tǒng)的正常性。這是因為,組成系統(tǒng)的模塊的配置信息表300包括PF確認模塊和自身確認模塊的標識符,并且,在部署組成系統(tǒng)的每個模塊時,正常性確認單元106使用PF確認模塊執(zhí)行對PF模塊的部署正常性的確認并且使用自身確認模塊執(zhí)行對部署目標模塊的部署正常性的確認。由此,不必針對每個要構(gòu)造的系統(tǒng)定義用于確認正常性的過程,降低了開發(fā)者的負擔。
[0116]并且,根據(jù)本發(fā)明第一示范性實施例,在構(gòu)造系統(tǒng)失敗時,能夠容易地在部署組成系統(tǒng)的模塊的步驟中找到哪一步驟失敗。這是因為,如上文提到的,在部署組成系統(tǒng)的模塊時,正常性確認單元106對PF模塊的部署正常性和部署目標模塊的部署正常性進行確認。因此,能夠容易地識別部署不成功的模塊。并且,開發(fā)者因此能夠容易地識別部署失敗的原因:PF模塊部署失敗或部署目標模塊部署失敗。
[0117][第二示范性實施例]
[0118]接下來,將描述本發(fā)明的第二示范性實施例。
[0119]在本發(fā)明第一示范性實施例中,在部署組成系統(tǒng)的模塊時,確認PF模塊的部署正常性和部署目標模塊的部署正常性。通過該處理,提高了構(gòu)造系統(tǒng)的穩(wěn)定性。然而,這需要較長時間來構(gòu)造系統(tǒng)。
[0120]在本發(fā)明第二示范性實施例中,根據(jù)重要度和可靠性閾值,確定是否確認PF模塊的部署正常性和部署目標模塊的部署正常性。這是本發(fā)明第一示范性實施例和本發(fā)明第二示范性實施例的區(qū)別。
[0121]本發(fā)明第二示范性實施例的配置與本發(fā)明第一示范性實施例的配置(圖2)類似。
[0122]圖12是示出根據(jù)本發(fā)明第二示范性實施例的配置信息表300的示例的圖。除了PF確認模塊的模塊類型323和文件標識符324之外,PF確認信息322還包括重要度325。重要度325指示與PF模塊的部署正常性確認有關(guān)的重要度。并且,除自身確認模塊的類型331和文件標識符332之外,自身確認模塊330還包括重要度333。重要度333指示與部署目標模塊的部署正常性確認有關(guān)的重要度。注意,假設(shè)重要度325或重要度333越大表示重要性越高。
[0123]正常性確認單元106根據(jù)重要度325和可靠性閾值確定是否確認PF模塊的部署正常性。正常性確認單元106還根據(jù)重要度333和可靠性閾值確定是否確認部署目標模塊的部署正常性。
[0124]以下,描述根據(jù)本發(fā)明第二示范性實施例的部署設(shè)備100的操作。
[0125]在本發(fā)明第二示范性實施例中,來自用戶等的系統(tǒng)構(gòu)造請求中除了指定除AP模塊標識符之外,還指定可靠性閾值。
[0126]在圖11示出的模塊部署處理中,在步驟S1703選擇PF確認信息322后,正常性確認單元106將選擇的PF確認信息322中的重要度325與可靠性閾值進行比較。如果重要度325大于或等于可靠性閾值,正常性確認單元106使用PF確認模塊(步驟S1704至S1706)確認PF模塊的部署正常性,如果重要度325小于可靠性閾值,正常性確認單元106不確認PF模塊的部署正常性。
[0127]并且,在步驟S1709提取自身確認信息330后,正常性確認單元106將提取的自身確認信息330中的重要度333與可靠性閾值比較。如果重要度333大于或等于可靠性閾值,正常性確認單元106使用自身確認模塊(步驟S1710至S1712)確認部署目標模塊的部署正常性。如果重要度333小于可靠性閾值,正常性確認單元106不確認部署目標模塊的部署正常性。
[0128]如上文所描述的,本發(fā)明第二示范性實施例的操作結(jié)束。
[0129]相比本發(fā)明第一示范性實施例,根據(jù)本發(fā)明第二示范性實施例能夠降低系統(tǒng)構(gòu)造所需要的時間。這是因為,正常性確認單元106將正常性確定的重要度與可靠性閾值進行比較,并確定是否確認PF模塊的部署正常性和部署目標模塊的部署正常性。通過該處理,對于部署失敗可能性小的模塊以及重要性低的模塊,降低重要度值,由此,能夠省去對部署正常性的確認,并能夠降低系統(tǒng)構(gòu)造所需要的時間。在系統(tǒng)需要快速構(gòu)造的情形中,例如災(zāi)難恢復(fù)等,通過增大可靠性閾值,對最少數(shù)量的模塊進行部署正常性的確認,能夠快速構(gòu)造系統(tǒng)。
[0130]盡管已經(jīng)參考本發(fā)明示范性實施例具體示出并描述了本發(fā)明,但是本發(fā)明不限于這些實施例。本領(lǐng)域技術(shù)人員可以理解并且作出各種形式上或細節(jié)上的改變,而不脫離權(quán)利要求界定的本發(fā)明的精神和范圍。
[0131]本申請基于并且要求2012年6月4日遞交的日本專利申請N0.2012-127259的優(yōu)先權(quán),通過引用將其全部公開內(nèi)容并入本文。
[0132]附圖標記列表
[0133]I 開發(fā)環(huán)境
[0134]2 外部存儲庫
[0135]100部署設(shè)備
[0136]101模塊管理單元
[0137]102模塊存儲單元
[0138]103配置信息管理單元
[0139]104配置信息存儲單元
[0140]105部署單元
[0141]106正常性確認單元
[0142]107構(gòu)造請求輸入單元
[0143]108準備單元
[0144]109 AP模塊部署單元
[0145]110 MW部署單元
[0146]111 OS部署單元
[0147]112 VM部署單元
[0148]113 NW部署單元
[0149]200處理設(shè)備
[0150]201虛擬化基礎(chǔ)設(shè)施
[0151]202虛擬服務(wù)器
[0152]300 配置信息表
[0153]310 模塊信息
[0154]311 模塊標識符
[0155]312 文件標識符
[0156]320 PF模塊信息
[0157]321 PF模塊標識符
[0158]322 PF確認信息
[0159]323 模塊類型
[0160]324 文件標識符
[0161]325 重要度
[0162]330 自身確認信息
[0163]331 模塊類型
[0164]332 文件標識符
[0165]333 重要度
【權(quán)利要求】
1.一種部署設(shè)備,包括: 配置信息存儲裝置,用于存儲與組成系統(tǒng)的模塊的標識符關(guān)聯(lián)的配置信息,所述配置信息包括平臺(PF)確認信息和自身確認信息中的至少一個,所述PF確認信息包括用于確認PF模塊的部署正常性的PF確認模塊的標識符,所述PF模塊是被所述模塊依賴的另一模塊,所述自身確認信息包括用于確認所述模塊的部署正常性的自身確認模塊的標識符;以及 正常性確認裝置,用于參考所述配置信息執(zhí)行以下至少一個:在處理設(shè)備中部署所述模塊之前,利用所述PF確認模塊,確認處理設(shè)備中所述PF模塊的部署正常性;以及在處理設(shè)備中部署所述模塊之后,利用所述自身確認模塊,確認處理設(shè)備中所述模塊的部署正常性。
2.根據(jù)權(quán)利要求1所述的部署設(shè)備,進一步包括用于在處理設(shè)備中部署所述模塊的部署裝置。
3.根據(jù)權(quán)利要求2所述的部署設(shè)備,其中 所述配置信息存儲裝置存儲與組成所述系統(tǒng)的多個模塊中的每一個模塊的標識符關(guān)聯(lián)的配置信息, 所述配置信息還包括所述PF模塊的標識符, 所述部署裝置參考所述多個模塊中的每一個模塊的配置信息,確定所述多個模塊的部署順序,使得在部署所述多個模塊中的每一個模塊之前在所述處理設(shè)備中部署了所述模塊的PF模塊,并根據(jù)所確定的順序部署所述多個模塊中的每一個模塊,以及 在部署所述多個模塊中的每一個模塊時,所述正常性確認裝置執(zhí)行以下至少一個:利用所述PF確認模塊確認所述PF模塊的部署正常性,以及利用所述自身確認模塊確認所述模塊的部署正常性。
4.根據(jù)權(quán)利要求2或3所述的部署設(shè)備,其中 當利用所述PF確認模塊確認所述PF模塊的部署正常性的結(jié)果是確定已經(jīng)正常部署了所述PF模塊時,所述部署裝置在處理設(shè)備中部署所述模塊。
5.根據(jù)權(quán)利要求2至4中任一項所述的部署設(shè)備,其中 當利用所述自身確認模塊確認所述模塊的部署正常性的結(jié)果是確定正常部署了所述模塊時,所述部署裝置部署使用已部署的模塊作為PF模塊的模塊。
6.根據(jù)權(quán)利要求1至5中任一項所述的部署設(shè)備,其中 所述PF確認信息還包括與所述PF模塊的部署正常性的確認有關(guān)的重要度,以及 所述正常性確認裝置通過將所述與所述PF模塊的部署正常性的確認有關(guān)的重要度和輸入的閾值進行比較,確定是否執(zhí)行對PF模塊的部署正常性的確認。
7.根據(jù)權(quán)利要求1至6中任一項所述的部署設(shè)備,其中 所述自身確認信息還包括與所述模塊的部署正常性的確認有關(guān)的重要度,以及 所述正常性確認裝置通過將所述與所述模塊的部署正常性的確認有關(guān)的重要度和輸入的閾值進行比較,確定是否執(zhí)行對所述模塊的部署正常性的確認。
8.根據(jù)權(quán)利要求1至7中任一項所述的部署設(shè)備,其中 所述PF確認模塊基于下述中的至少一個執(zhí)行對所述PF模塊的部署正常性的確認:在部署所述PF模塊時生成的預(yù)定文件是否存在、在部署所述PF模塊時激活的預(yù)定處理是否存在、在部署所述PF模塊時生成的預(yù)定日志字符串是否存在、以及通過執(zhí)行所述PF模塊的預(yù)定功能獲得的結(jié)果。
9.根據(jù)權(quán)利要求1至8中任一項所述的部署設(shè)備,其中 所述自身確認模塊基于下述中的至少一個執(zhí)行對所述模塊的部署正常性的確認:在部署所述模塊時生成的預(yù)定文件是否存在、在部署所述模塊時激活的預(yù)定處理是否存在、在部署所述模塊時生成的預(yù)定日志字符串是否存在、以及通過執(zhí)行所述模塊的預(yù)定功能獲得的結(jié)果。
10.一種部署方法,包括; 存儲與組成系統(tǒng)的模塊的標識符關(guān)聯(lián)的配置信息,所述配置信息包括平臺(PF)確認信息和自身確認信息中的至少一個,所述PF確認信息包括用于確認PF模塊的部署正常性的PF確認模塊的標識符,所述PF模塊是被所述模塊依賴的另一模塊,所述自身確認信息包括用于確認所述模塊的部署正常性的自身確認模塊的標識符; 在處理設(shè)備中部署所述模塊;以及 參考所述配置信息執(zhí)行以下至少一個:在處理設(shè)備中部署所述模塊之前,利用所述PF確認模塊,確認處理設(shè)備中所述PF模塊的部署正常性;以及在處理設(shè)備中部署所述模塊之后,利用所述自身確認模塊,確認處理設(shè)備中所述模塊的部署正常性。
11.一種計算機可讀存儲介質(zhì),其上記錄有程序,所述程序使得計算機執(zhí)行方法,所述方法包括: 存儲與組成系統(tǒng)的模塊的標識符關(guān)聯(lián)的配置信息,所述配置信息包括平臺(PF)確認信息和自身確認信息中的至少一個,所述PF確認信息包括用于確認PF模塊的部署正常性的PF確認模塊的標識符,所述PF模塊是被所述模塊依賴的另一模塊,所述自身確認信息包括用于確認所述模塊的部署正常性的自身確認模塊的標識符; 在處理設(shè)備中部署所述模塊;以及 參考所述配置信息執(zhí)行以下至少一個:在處理設(shè)備中部署所述模塊之前,利用所述PF確認模塊,確認處理設(shè)備中所述PF模塊的部署正常性;以及在處理設(shè)備中部署所述模塊之后,利用所述自身確認模塊,確認處理設(shè)備中所述模塊的部署正常性。
【文檔編號】G06F9/445GK104335174SQ201380029307
【公開日】2015年2月4日 申請日期:2013年5月28日 優(yōu)先權(quán)日:2012年6月4日
【發(fā)明者】島村榮 申請人:日本電氣株式會社