一種Virgo組件的安裝更新方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及智能安裝技術領域,特別是涉及一種Virgo組件的安裝更新方法及裝置。
【背景技術】
[0002]Virgo Tomcat Server服務器是目前比較流行的基于OSGi的web應用服務器,該服務器可以很好的支持功能組件的熱插拔。但是Virgo服務器的組件熱插拔需要人為手動的做配置,并對管理員的要求比較高,不能完全做到自動化進行安裝和更新組件。而大型互聯(lián)網(wǎng)公司的服務器都要求在夜晚等一些業(yè)務時段比較空閑的時候來做服務器的熱切換,所以對服務器進行自動化的熱切換工作是非常有必要的。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種Virgo組件的安裝更新方法及裝置,目的在于解決現(xiàn)有Virgo Tomcat Server應用服務器沒有更新組件機制的功能的問題。
[0004]為解決上述技術問題,本發(fā)明提供一種Virgo組件的安裝更新方法,包括:
[0005]連接組件倉庫,所述組件倉庫包括預先將不同文件格式的組件分類存放到相應目錄中的多個Virgo組件;
[0006]從所述組件倉庫中獲取第一 Virgo組件;
[0007]解析所述第一Virgo組件的組件信息;
[0008]根據(jù)所述第一Virgo組件的類型調(diào)用相應的安裝器進行自動安裝。
[0009]可選地,預先將不同文件格式的組件存放到所述組件倉庫包括:
[0010]將jar文件格式和war文件格式的組件存放至bundles目錄,將par文件格式的組件存放到pars目錄,將plan文件格式的組件存放到plans目錄,將properties文件格式的組件存放到configurat1ns目錄,將包含所述組件的描述信息的聲明文檔存放在根目錄下content.xml 的目錄。
[0011]可選地,所述描述信息包括:所述組件的類型信息、ID信息、名字信息、版本號信息和/或依賴信息。
[0012]可選地,在所述連接組件倉庫之后,還包括:
[0013]判斷是否訪問過所述組件倉庫;
[0014]如果是,則退出;如果否,則執(zhí)行獲取所述第一Virgo組件的步驟。
[0015]可選地,所述判斷是否訪問過所述組件倉庫包括:
[0016]獲取所述組件倉庫的目錄文件;
[0017]從所述目錄文件中解析所述組件倉庫的時間戳,與系統(tǒng)的訪問日志中的時間戳進行比較,判斷是否訪問過所述組件倉庫。
[0018]可選地,所述根據(jù)所述第一Virgo組件的類型調(diào)用相應的安裝器進行自動安裝包括:
[0019]當所述第一Virgo組件為war或jar類型的組件時,采用Bundle安裝器進行安裝;當所述第一Virgo組件為par類型的組件時,采用par安裝器進行安裝,當所述第一Virgo組件為plan類型的組件時,采用plan安裝器進行安裝;當所述第一Virgo組件為properties類型的組件時,采用config安裝器進行安裝。
[0020]可選地,所述根據(jù)所述第一Virgo組件的類型調(diào)用相應的安裝器進行自動安裝包括:
[0021]當采用所述Bundle安裝器、所述par安裝器或所述plan安裝器進行安裝時,判斷系統(tǒng)已安裝的組件中是否存在與所述第一 Virgo組件相對應的第二 Virgo組件;
[0022]如果是,則將所述第一Virgo組件的版本與所述第二Virgo組件的版本進行比較,判斷所述第一 Virgo組件是否為新版本的組件;如果是,則通過對應的安裝器安裝所述新版本的組件;如果否,則退出安裝。
[0023]可選地,所述根據(jù)所述第一Virgo組件的類型調(diào)用相應的安裝器進行自動安裝包括:
[0024]當采用所述config安裝器進行安裝時,判斷系統(tǒng)已安裝的組件中是否存在與所述第一 Virgo組件相對應的第三Virgo組件,如果是,則卸載掉所述第三Virgo組件,安裝所述第一 Virgo組件;如果否,則直接安裝所述第一 Virgo組件。
[0025]可選地,在所述根據(jù)所述第一Virgo組件的類型調(diào)用相應的安裝器進行自動安裝之前還包括:
[0026]分析所述第一Virgo組件的依賴,并在系統(tǒng)和所述組件倉庫中查詢所述依賴是否滿足;
[0027]如果否,則退出;如果是,則執(zhí)行安裝的步驟。
[0028]本發(fā)明還提供了一種Virgo組件的安裝更新裝置,包括:
[0029]連接模塊,用于連接組件倉庫,所述組件倉庫包括預先將不同文件格式的組件分類存放到相應目錄中的多個Virgo組件;
[0030]獲取模塊,用于從所述組件倉庫中獲取第一Virgo組件;
[0031 ]解析模塊,用于解析所述第一Virgo組件的組件信息;
[0032]安裝模塊,用于根據(jù)所述第一Virgo組件的類型調(diào)用相應的安裝器進行自動安裝。
[0033]本發(fā)明所提供的Virgo組件的安裝更新方法及裝置,通過連接組件倉庫,組件倉庫包括預先將不同文件格式的組件分類存放到相應目錄中的多個Virgo組件;從組件倉庫中獲取第一 Virgo組件;解析第一 Virgo組件的組件信息;根據(jù)第一 Virgo組件的類型調(diào)用相應的安裝器進行自動安裝。本發(fā)明所提供的Virgo組件的安裝更新方法及裝置,能夠?qū)M件進行批量自動化更新,實現(xiàn)了組件的熱切換。
【附圖說明】
[0034]為了更清楚的說明本發(fā)明實施例或現(xiàn)有技術的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1為本發(fā)明所提供的Virgo組件的安裝更新方法的一種【具體實施方式】的流程圖;
[0036]圖2為本發(fā)明所提供的Virgo組件的安裝更新方法的另一種【具體實施方式】的流程圖;
[0037]圖3為本發(fā)明實施例提供的Virgo組件的安裝更新裝置的結(jié)構框圖。
【具體實施方式】
[0038]為了使本技術領域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0039]本發(fā)明所提供的Virgo組件的安裝更新方法的一種【具體實施方式】的流程圖如圖1所示,該方法包括:
[0040]步驟SlOl:連接組件倉庫,所述組件倉庫包括預先將不同文件格式的組件分類存放到相應目錄中的多個Virgo組件;
[0041 ] 基于OSGi規(guī)范的Virgo組件,包含了 jar、war、par、plan、properties不同文件格式的組件。具體地,可以按照不同的文件擴展名分類存放到相應的目錄中。
[0042]作為一種【具體實施方式】,可將jar文件格式和war文件格式的組件存放至bundles目錄,將par文件格式的組件存放到pars目錄,將plan文件格式的組件存放到plans目錄,將properties文件格式的組件存放到configurat1ns目錄,將包含所述組件的描述信息的聲明文檔存放在根目錄下content.xml的目錄。在根目錄下面建立名為content.xml的目錄文件,該文件對組件集合做了詳細的描述。描述信息可以具體但并不限于包括類型、ID、名字、版本號、依賴等信息。
[0043]步驟S102:從所述組件倉庫中獲取第一 Virgo組件;
[0044]具體地,可以在遠程連接組件倉庫后,下載遠程倉庫的目錄文件,下載倉庫中的組件。
[0045]步驟S103:解析所述第一Virgo組件的組件信息;
[0046]組件信息具體可以包括組件的類型、名字、ID、版本號、依賴等信息。
[0047]步驟S104:根據(jù)所述第一Virgo組件的類型調(diào)用相應的安裝器進行自動安裝。
[0048]本發(fā)明所提供的Virgo組件的安裝更新方法,通過連接組件倉庫,組件倉庫包括預先將不同文件格式的組件分類存放到相應目錄中的多個Virgo組件;從組件倉庫中獲取第一 Virgo組件;解析第一 Virgo組件的組件信息;根據(jù)第一 Virgo組件的類型調(diào)用相應的安裝器進行自動安裝。本發(fā)明所提供的Virgo組件的安裝更新方法,能夠?qū)M件進行批量自動化更新,實現(xiàn)了組件的熱切換。
[0049]在上述實施例的基礎上,本發(fā)明所提供的Virgo組件的安裝更新方法,在連接組件倉庫之后,還可以進一步包括:
[0050]判斷是否訪問過組件倉庫的步驟;如果是,則退出;如果否,則執(zhí)行獲取所述第一Virgo組件的步驟。
[0051 ]本發(fā)明實施例通過比較目前倉庫的版本和訪問過的倉庫的版本,如果是新倉庫就開始下載組件,如果是訪問過的倉庫或是舊的倉庫就放棄本次安裝。其判斷是否訪問過所述組件倉庫可以具體通過下述方式實現(xiàn):
[0052]獲取所述組件倉庫的目錄文件;
[0053]從所述目錄文件中解析所述組件倉庫的時間戳,與系統(tǒng)的訪問日志中的時間戳進行比較,判斷是否訪問過所述組件倉庫。
[0054]在上述任一實施例的基礎上,根據(jù)所述第一Virgo組件的類型調(diào)用相應的安裝器進行自動安裝可以具體為:針對不同類型的組件調(diào)用不同的安裝器來完成安裝,調(diào)度器可以識別 war、par、jar、plan、properties 類型的組件。
[0055]四種類型的安裝器,用于分別對應于不同類型的組件。當所述第一Virgo組件為war或jar類型的組件時,采用Bundle安裝器進行安裝;當所述第一Virgo組件為par類型的組件時,采用par安裝器進行安裝,當所述第一 Virgo組件為plan類型的組件時,采用plan安裝器進行安裝;當所述第一Virgo組件為properties類型的組件時,采用config安裝器進行安裝。
[0050]四種類型的安裝器工作方式有所不同,bundle安裝器、par安裝器和plan安裝器首先檢查系統(tǒng)中是否已經(jīng)安裝了該組件的舊版本,如果有就先卸載掉舊版本,然后再安裝新版本。如果沒有舊版本就直接安裝該組件。而Config安裝器在更新組件時先檢查有沒有舊組件,如果沒有就直接安裝;如果有就卸載掉舊組件再安裝新