本發(fā)明涉及一種用于提供云服務(wù)的系統(tǒng)、服務(wù)器系統(tǒng)、方法。
背景技術(shù):
近年來流行在互聯(lián)網(wǎng)上提供的云服務(wù)。從世界各地經(jīng)常使用云服務(wù)。因此,與傳統(tǒng)服務(wù)不同,云服務(wù)難以在用戶量小的夜間停止系統(tǒng),從而進行維護。因此,存在如下不斷增長的需求:在不停止服務(wù)的情況下進行維護工作。如日本特開2013-182413號公報和日本特開2013-182397號公報中所討論的,傳統(tǒng)上,通過在會話管理下進行不停機的版本升級、并進行基于會話的分配處理,來進行這種維護工作。
隨著Web應(yīng)用技術(shù)的進展,進行用于在服務(wù)器端生成畫面并將處理結(jié)果返回給客戶的處理的傳統(tǒng)構(gòu)造,已轉(zhuǎn)向諸如表述性狀態(tài)轉(zhuǎn)移(REST)ful模型-視圖-控制器(MVC)和客戶端MVC的技術(shù)。這種服務(wù)器被構(gòu)造為經(jīng)由REST接口(I/F)執(zhí)行處理,并被構(gòu)造為僅將數(shù)據(jù)返回給客戶,使得在客戶端生成畫面。
技術(shù)實現(xiàn)要素:
根據(jù)本發(fā)明的一方面,提供了一種服務(wù)器系統(tǒng),其包括應(yīng)用服務(wù)器系統(tǒng),所述應(yīng)用服務(wù)器系統(tǒng)根據(jù)來自在終端中包括的Web瀏覽器的請求來提供服務(wù),所述服務(wù)器系統(tǒng)包括:部署單元,其被構(gòu)造為在第二應(yīng)用服務(wù)器系統(tǒng)中部署多個模塊,所述多個模塊具有與部署在第一應(yīng)用服務(wù)器系統(tǒng)中的用于實現(xiàn)所述服務(wù)的多個模塊的構(gòu)造至少部分不同的構(gòu)造;存儲單元,其被構(gòu)造為將第一資源和第二資源存儲到存儲服務(wù)中,所述第一資源與部署在所述第一應(yīng)用服務(wù)器系統(tǒng)中的多個模塊相對應(yīng),所述第二資源與部署在所述第二應(yīng)用服務(wù)器系統(tǒng)中的多個模塊相對應(yīng),所述第一資源和所述第二資源是顯示要由所述Web瀏覽器顯示的畫面所需的資源;以及切換單元,其被構(gòu)造為在所述部署單元進行部署之后,將所述服務(wù)的源從所述第一應(yīng)用服務(wù)器系統(tǒng)切換到所述第二應(yīng)用服務(wù)器系統(tǒng),其中,在所述切換單元的切換之后,在從所述Web瀏覽器接受到關(guān)于顯示所述畫面的請求、并且所述請求中包括的數(shù)據(jù)被確認為與所述第一資源相關(guān)聯(lián)的情況下,所述第二應(yīng)用服務(wù)器系統(tǒng)從所述存儲單元獲得所述第一資源,并將所述第一資源發(fā)送至所述Web瀏覽器。
通過以下參照附圖對示例性實施例的描述,本發(fā)明的其他特征將變得清楚。
附圖說明
圖1是系統(tǒng)構(gòu)造圖。
圖2是各裝置的硬件構(gòu)造圖。
圖3是各裝置的軟件模塊構(gòu)造圖。
圖4是例示用于將程序組建為可執(zhí)行形式的處理的流程圖。
圖5例示了通過組建處理生成的超文本標記語言(HTML)和JavaScript(注冊商標)的示例。
圖6是例示用于部署模塊的處理的流程圖。
圖7例示了客戶終端使用應(yīng)用服務(wù)的序列。
圖8是例示當接收到意外請求時的表述性狀態(tài)轉(zhuǎn)移(REST)應(yīng)用程序接口(API)的處理的流程圖。
圖9是例示從組建程序到部署程序為止的處理的示意圖。
圖10是例示客戶終端使用應(yīng)用服務(wù)的序列的示意圖。
具體實施方式
作為用于實現(xiàn)不停機的升級的新技術(shù),使用被稱為藍綠部署(blue-green deployment)的方法。該技術(shù)包括:在保持當前啟動的服務(wù)運行的同時,在其他系統(tǒng)上構(gòu)建升級的服務(wù);以及將服務(wù)的源切換到構(gòu)建的系統(tǒng)。
依據(jù)藍綠部署,通過改變域名系統(tǒng)(DNS)的設(shè)置來立即切換這兩個系統(tǒng)。然而,即使服務(wù)器被切換,在客戶端Web瀏覽器中緩存或在互聯(lián)網(wǎng)路徑上緩存的例如超文本標記語言(HTML)和JavaScript(注冊商標)的內(nèi)容,也未必被立即更新為最新內(nèi)容。在這種情況下,可能做出從預(yù)升級的舊應(yīng)用的HTML到升級的新應(yīng)用的REST應(yīng)用程序接口(API)的處理請求。由于在維持REST API的I/F之間的兼容性的同時升級應(yīng)用,因此允許這種API調(diào)用。
存在如下問題:僅通過I/F的兼容性無法處理與畫面HTML密切相關(guān)的內(nèi)容,例如要通過REST API獲得的畫面的資源數(shù)據(jù)(顯示文本)。例如,如果HTML的舊版本從REST API的新版本獲得應(yīng)用的新版本的不兼容資源,則不顯示合適的畫面。
本發(fā)明旨在包括用于提供服務(wù)不停機(service nonstop)的機制的系統(tǒng)中,除了維持I/F的兼容性之外,還維持畫面HTML的兼容性。
下面將參照附圖描述用于執(zhí)行本發(fā)明的構(gòu)造。
下面將描述第一示例性實施例。在本示例性實施例中,假定在互聯(lián)網(wǎng)的各服務(wù)器中安裝有應(yīng)用。假定這些應(yīng)用與客戶終端協(xié)作提供各種功能。提供這些功能的實體將被稱為服務(wù)。向客戶終端提供功能將被稱為提供服務(wù)。
在具有圖1所示的構(gòu)造的網(wǎng)絡(luò)上實現(xiàn)根據(jù)本示例性實施例的用于提供云服務(wù)的信息處理裝置。在本發(fā)明的示例性實施例中,由萬維網(wǎng)(WWW)系統(tǒng)來構(gòu)造廣域網(wǎng)(WAN)100。局域網(wǎng)(LAN)101連接各部件。LAN 102類似于LAN 101,但是經(jīng)常被構(gòu)造為不能經(jīng)由WAN 100而訪問的內(nèi)部網(wǎng)絡(luò)。與LAN 101類似,LAN 102也可以直接連接到WAN100并且可訪問WAN 100。應(yīng)用服務(wù)器110和120各自典型包括多個信息處理裝置。應(yīng)用服務(wù)器110是當前正提供云服務(wù)的系統(tǒng)。應(yīng)用服務(wù)器120是提供升級的云服務(wù)的系統(tǒng)。存儲服務(wù)器130典型包括多個信息處理裝置。
從應(yīng)用服務(wù)器110和120訪問存儲服務(wù)器130,并且存儲服務(wù)器130存儲應(yīng)用服務(wù)器110和120的資源數(shù)據(jù)。管理服務(wù)器140典型包括多個信息處理裝置。管理服務(wù)器140管理應(yīng)用服務(wù)器110和120的程序,構(gòu)建應(yīng)用服務(wù)器110和120的系統(tǒng),并進行用于切換提供服務(wù)的源的源服務(wù)器系統(tǒng)的處理。客戶終端150是各自安裝有Web瀏覽器的信息處理裝置。客戶終端150的示例包括個人計算機和諸如智能手機等的移動終端。
DNS 180是解析互聯(lián)網(wǎng)上的服務(wù)器的主機名并返回要訪問的互聯(lián)網(wǎng)協(xié)議(IP)地址的系統(tǒng)。當與登記在DNS 180中的主機名相對應(yīng)的IP地址從應(yīng)用服務(wù)器110的IP地址切換到應(yīng)用服務(wù)器120的IP地址時,實現(xiàn)通過藍綠部署進行的服務(wù)的切換。當客戶終端150使用云服務(wù)時,客戶終端150從DNS 180獲得與在Web瀏覽器上輸入的主機名相對應(yīng)的服務(wù)器的IP地址,并基于獲得的IP地址訪問此時正在運行的應(yīng)用服務(wù)器。
在本示例性實施例中,服務(wù)器被例示為各自包括一個裝置。然而,如上所述,各服務(wù)器可以包括多個裝置。因此,在本示例性實施例中,包括一個或多個裝置的服務(wù)器將被稱為服務(wù)器系統(tǒng)。例如,應(yīng)用服務(wù)器系統(tǒng)是指包括一個或多個裝置并提供應(yīng)用服務(wù)的系統(tǒng)。
圖2例示了根據(jù)本示例性實施例的信息處理裝置的典型構(gòu)造,該信息處理裝置包括應(yīng)用服務(wù)器110和120、存儲服務(wù)器130、管理服務(wù)器140、客戶終端150和DNS 180。中央處理單元(CPU)231執(zhí)行存儲在ROM 233的程序只讀存儲器(ROM)中的或從外部存儲器241(例如硬盤(HD))加載到隨機存取存儲器(RAM)232中的程序,例如操作系統(tǒng)(OS)和應(yīng)用。CPU 231控制與系統(tǒng)總線234連接的塊。通過執(zhí)行程序能夠?qū)崿F(xiàn)以下描述的序列處理。RAM 232用作CPU 231的主存儲器和工作區(qū)。操作單元I/F 235控制從操作單元239的輸入。陰極射線管(CRT)控制器(CRTC)236控制CRT顯示器240的顯示。盤控制器(DKC)237控制對存儲有各種數(shù)據(jù)的外部存儲器241(例如HD)中的數(shù)據(jù)的訪問。網(wǎng)絡(luò)控制器(NC)238進行用于與經(jīng)由WAN 100或LAN 101和102連接的服務(wù)器計算機和其他設(shè)備通信的控制處理。
在所有以下描述中,除非另外指明,執(zhí)行以下描述的操作的主要硬件部件為CPU 231。主要的軟件部件為安裝在外部存儲器241中的模塊。在模塊被CPU 231執(zhí)行的情況下,模塊提供了其功能。
圖3是例示應(yīng)用服務(wù)器110和120、存儲服務(wù)器130、管理服務(wù)器140、客戶終端150和DNS 180的各模塊構(gòu)造的圖。模塊被存儲在外部存儲器241中并由CPU 231執(zhí)行。
應(yīng)用服務(wù)器110和120包括應(yīng)用服務(wù)319。應(yīng)用服務(wù)319由Web服務(wù)器模塊310和API模塊311實現(xiàn)。Web服務(wù)器模塊310典型使用Jetty或Apache Tomcat來分配HTML和腳本,即JavaScript(注冊商標),并提供API模塊311的執(zhí)行環(huán)境。應(yīng)用服務(wù)器110和120執(zhí)行Web服務(wù)器模塊310來實現(xiàn)與超文本傳輸協(xié)議(HTTP)有關(guān)的處理。應(yīng)用服務(wù)器110和120執(zhí)行API模塊311來實現(xiàn)API處理。在本發(fā)明的示例性實施例中,假設(shè)用于升級的藍綠部署,并且假設(shè)切換之前的應(yīng)用服務(wù)器110中的模塊構(gòu)造與切換之后的應(yīng)用服務(wù)器120中的模塊構(gòu)造有部分不同。這種不同的示例包括由于HTML表達的變化而導(dǎo)致的Web服務(wù)器模塊310的構(gòu)造的變化。
存儲服務(wù)器130包括存儲服務(wù)330。存儲服務(wù)器130管理數(shù)據(jù)并為應(yīng)用服務(wù)器110和120提供數(shù)據(jù)管理功能。通過存儲模塊(未示出)來實現(xiàn)存儲服務(wù)330。管理服務(wù)器140包括管理服務(wù)349。管理服務(wù)349包括程序管理模塊340、組建模塊341和部署模塊342。程序管理模塊340管理用于提供應(yīng)用服務(wù)器110和120的程序。組建模塊341將由程序管理模塊340管理的程序構(gòu)造為可執(zhí)行形式的模塊。部署模塊342通過使用由組建模塊341生成的可執(zhí)行形式的模塊,來構(gòu)建應(yīng)用服務(wù)器110和120的環(huán)境,并進行應(yīng)用服務(wù)319的升級處理。
客戶終端150包括用于訪問應(yīng)用服務(wù)器110和120的Web瀏覽器350。Web瀏覽器350從應(yīng)用服務(wù)器110和120接收用于畫面顯示的各種數(shù)據(jù)。DNS 180包括DNS服務(wù)380,并實現(xiàn)以下描述的服務(wù)器系統(tǒng)的切換。DNS服務(wù)380由DNS模塊(未例示)實現(xiàn)。
將參照圖4至圖6來描述根據(jù)本示例性實施例的用于組建應(yīng)用服務(wù)器110和120的詳細流程。還將描述示意性例示處理流程的圖9。圖4是例示管理服務(wù)器140的組建模塊341將構(gòu)成應(yīng)用服務(wù)器110和120的模塊的程序組建為可執(zhí)行形式的處理流程的流程圖。
在步驟S401中,組建模塊341生成組建版本,作為能夠唯一識別組建處理的標識信息。例如,組建模塊341生成包括日期和序列值的組合的字符串,例如“20150515.1”。每當組建模塊341組建用于實現(xiàn)應(yīng)用服務(wù)器110和120的程序以進行部署時,組建模塊341生成唯一的標識信息。不允許重復(fù)。
在步驟S402中,組建模塊341獲得由程序管理模塊340管理的應(yīng)用服務(wù)319的一組最新程序。該組最新程序包括圖9所示的應(yīng)用服務(wù)程序901。應(yīng)用服務(wù)程序901包括用于畫面顯示的HTML、作為描述用于獲得要用于畫面顯示的資源的命令和用于描繪HTML的命令的腳本的JavaScript(注冊商標)、API模塊311的程序、以及要用于畫面顯示的資源(例如文本數(shù)據(jù)和圖像數(shù)據(jù))。
在步驟S403中,組建模塊341進行組建處理。組建模塊341將程序代碼編譯為可執(zhí)行形式,并進行用于將在步驟S401中生成的組建版本嵌入到HTML和JavaScript(注冊商標)中包括的API調(diào)用中的處理。圖5例示了實際生成的JavaScript(注冊商標)和HTML的示例的摘錄。在JavaScript(注冊商標)500中,在步驟S401中生成的組建版本“20150515.1”被嵌入用于調(diào)用REST API的處理的參數(shù)501中。在HTML 510中,在步驟S401中生成的組建版本“20150515.1”被嵌入讀取路徑511中,以讀取JavaScript(注冊商標)500。結(jié)果,HTML 510總是使用同時生成的JavaScript(注冊商標)500,并能夠經(jīng)由JavaScript(注冊商標)500將包括組建版本的請求發(fā)送至REST API。在步驟S404中,組建模塊341將在步驟S403中生成的產(chǎn)物與在步驟S401中生成的組建版本相關(guān)聯(lián)地存儲。
圖9例示了在組建版本“20150515.1”中生成的產(chǎn)物902和在“20150517.2”中生成的產(chǎn)物903。產(chǎn)物902和903二者均包括各組建時間的最新程序,并且各組建版本被嵌入HTML和JavaScript(注冊商標)中。例如,圖9中的產(chǎn)物902構(gòu)成了應(yīng)用服務(wù)器110。產(chǎn)物903構(gòu)成了應(yīng)用服務(wù)器120。以此方式,組建模塊341生成并管理各升級的產(chǎn)物。以上描述了管理服務(wù)器140的組建模塊341組建可執(zhí)行形式的應(yīng)用服務(wù)器110和120的程序的處理。
圖6是例示根據(jù)本示例性實施例的管理服務(wù)器140的部署模塊342部署應(yīng)用服務(wù)器110和120的處理流程的流程圖。在步驟S601中,部署模塊342確定要部署的產(chǎn)物。具體地說,部署模塊342識別要部署的組建版本。在步驟S602中,部署模塊342構(gòu)建要作為部署目的地的信息處理裝置組。具體地說,部署模塊342構(gòu)造用于主持程序的信息處理裝置。在執(zhí)行藍綠部署時,典型構(gòu)造虛擬信息處理裝置。虛擬信息處理裝置是用于在信息處理裝置的硬件上生成多個虛擬信息處理裝置的技術(shù)。通過程序能夠控制虛擬信息處理裝置的生成和刪除。例如,針對各部署,能夠盡可能多地生成虛擬信息處理裝置,并且能夠?qū)⒊绦虿渴鸬教摂M信息處理裝置。此外,能夠立即刪除不再需要的虛擬信息處理裝置。這使得能夠快速簡便地實現(xiàn)藍綠部署。在本發(fā)明中構(gòu)造的信息處理裝置不限于虛擬信息處理裝置,而可以是物理信息處理裝置。在這種情況下,針對信息處理裝置,需要預(yù)先構(gòu)建各應(yīng)用服務(wù)器110和120的環(huán)境,并且在這種環(huán)境中部署模塊。從系統(tǒng)的部件中排除已刪除的應(yīng)用服務(wù)器。
在步驟S603中,部署模塊342進行模塊部署。部署模塊342將目標模塊部署在步驟S602中構(gòu)建的信息處理裝置中。以各版本構(gòu)造圖9所示的應(yīng)用服務(wù)器110和120。相應(yīng)組建版本的模塊(包括HTML、JavaScript(注冊商標)和API模塊311)被部署在各應(yīng)用服務(wù)319中。
在步驟S604中,部署模塊342部署資源。在用于部署資源的處理中,部署模塊342將能夠識別組建版本的信息賦予存儲服務(wù)器130,使得存儲在步驟S403中生成的產(chǎn)物中包括的文本和圖像資源。例如,假設(shè)存儲服務(wù)330能夠管理目錄構(gòu)造(如典型的文件共享服務(wù)器)中的數(shù)據(jù)。如圖9的信息904中所例示,部署模塊342生成具有組建版本的目錄,并將文本和圖像文件存儲在目錄下。
以上描述了應(yīng)用服務(wù)器110和120的部署處理。在通過升級工作進行部署的情況下,除了應(yīng)用服務(wù)器110的現(xiàn)有環(huán)境之外,還新添加應(yīng)用服務(wù)器120的另一環(huán)境。在步驟S604中,DNS 180的設(shè)置尚未改變,客戶終端150繼續(xù)訪問應(yīng)用服務(wù)器110。
在步驟S605中,DNS服務(wù)380進行切換。該處理典型在進行步驟S604中的處理并確認應(yīng)用服務(wù)器120正常運行之后進行。在DNS切換處理中,將與在DNS 180中登記的應(yīng)用服務(wù)器110的主機名相對應(yīng)的IP地址,從應(yīng)用服務(wù)器110的值改變?yōu)閼?yīng)用服務(wù)器120的值。
圖7是例示根據(jù)本示例性實施例當客戶終端150使用應(yīng)用服務(wù)器110時的典型處理流程的圖。首先將描述當Web瀏覽器350使用由RESTful MVC構(gòu)造的應(yīng)用時要進行的處理概要。Web瀏覽器350從應(yīng)用服務(wù)器110獲得用于描繪畫面的HTML。HTML包括到JavaScript(注冊商標)的鏈接,使得Web瀏覽器350獲得JavaScript(注冊商標)。在Web瀏覽器350上執(zhí)行獲得的JavaScript(注冊商標),并且Web瀏覽器350調(diào)用在應(yīng)用服務(wù)器110上公布的RESTAPI以獲得數(shù)據(jù)。例如,Web瀏覽器350進行用于指定顯示用于畫面顯示的文本的期望語言、然后調(diào)用API以獲得相應(yīng)語言的文本數(shù)據(jù)的處理。Web瀏覽器350利用獲得的語言的文本數(shù)據(jù)來重寫HTML的顯示文本,以生成并顯示畫面。如果在Web瀏覽器350上進行各種操作,則Web瀏覽器350還調(diào)用REST API并獲得結(jié)果以更新畫面。換句話說,如果在HTML定義的顯示文本與REST API獲得的文本數(shù)據(jù)之間存在不一致,則無法在HTML上顯示合適的文本。已結(jié)合問題描述了這種現(xiàn)象的原因。
將進一步詳細描述處理流程。假設(shè)Web瀏覽器350開始使用應(yīng)用服務(wù)器110。在步驟S701中,Web瀏覽器350檢查在緩存中是否存在應(yīng)用服務(wù)器110的HTML。如果在緩存中存在應(yīng)用服務(wù)器110的HTML,則Web瀏覽器350使用緩存的HTML。否則,Web瀏覽器350進行步驟S704和S705中的用于獲得HTML的處理。在步驟S702中,為了獲得HTML,Web瀏覽器350請求DNS 180的名稱解析。在步驟S703中,DNS 180以與應(yīng)用服務(wù)器110相對應(yīng)的IP地址進行響應(yīng)。在啟動Web瀏覽器350之后,當Web瀏覽器350向應(yīng)用服務(wù)器110發(fā)出請求時進行步驟S702和S703的處理。換句話說,緊接在步驟S704、S707和S709之前,進行步驟S702和S703的處理。由于一旦從DNS獲得了IP地址,典型瀏覽器就暫時緩存該IP地址,因此可以省略DNS詢問。反映DNS切換的定時由此取決于客戶終端150的類型。
響應(yīng)于HTML的獲取,Web瀏覽器350獲得與HTML相對應(yīng)的JavaScript(注冊商標)。在步驟S706中,與HTML一樣,Web瀏覽器350檢查在緩存中是否存在JavaScript(注冊商標)。如果在緩存中存在JavaScript(注冊商標),則Web瀏覽器350使用緩存的JavaScript(注冊商標)。否則,與HTML類似,Web瀏覽器350針對JavaScript(注冊商標)進行步驟S707和S708的獲取處理。在步驟S709中,響應(yīng)于JavaScript(注冊商標)的獲取,Web瀏覽器350調(diào)用在JavaScript(注冊商標)中描述的RESTAPI。該API調(diào)用的參數(shù)包括組建版本。在步驟S710和S711中,應(yīng)用服務(wù)器110從存儲服務(wù)器130獲得由API調(diào)用指定的組建版本的資源。在步驟S712中,應(yīng)用服務(wù)器110對Web瀏覽器350做出響應(yīng)。在步驟S713中,當接收到響應(yīng)時,Web瀏覽器350基于HTML和與HTML相對應(yīng)的資源進行畫面顯示。以上描述了當客戶終端150使用應(yīng)用服務(wù)器110時進行的處理。當該服務(wù)在使用中時進行升級處理。
參照圖7,將描述當在升級處理之后客戶終端150使用應(yīng)用服務(wù)器120時要進行的處理的示例。圖10是示意性例示處理流程的圖。例如,Web瀏覽器350已使用舊版本并緩存從應(yīng)用服務(wù)器110獲得的HTML和JavaScript(注冊商標),如圖10所例示。因此,不進行圖7中的步驟S702和S703的名稱解析處理。還跳過步驟S704和S705的HTML獲取處理以及步驟S707和S708的JavaScript(注冊商標)獲取處理。在步驟S709中,Web瀏覽器350進行API調(diào)用。這里,Web瀏覽器350進行步驟S702和S703的名稱解析處理,以首次從DNS 180獲得應(yīng)用服務(wù)器的IP地址。如圖10所例示,能夠在處理中獲得的IP地址為應(yīng)用服務(wù)器120的IP地址。由此,針對應(yīng)用服務(wù)器120進行步驟S709中的API調(diào)用。在該API調(diào)用期間,與應(yīng)用服務(wù)器110相對應(yīng)的組建版本作為參數(shù)被傳遞到應(yīng)用服務(wù)器120。如圖10所例示,在本示例性實施例中,由應(yīng)用服務(wù)器110提供的組建版本“20150515.1”被傳遞到應(yīng)用服務(wù)器120。應(yīng)用服務(wù)器120檢查組建版本是否相互一致。在步驟S710和S711的處理中,應(yīng)用服務(wù)器120從存儲服務(wù)器130獲得與應(yīng)用服務(wù)器110相對應(yīng)的資源。在步驟S712中,應(yīng)用服務(wù)器120做出響應(yīng)。在步驟S713中,Web瀏覽器350能夠基于從應(yīng)用服務(wù)器110獲得的緩存HTML和JavaScript(注冊商標)、以及從應(yīng)用服務(wù)器120獲得的相應(yīng)資源,正常進行用于顯示畫面的處理。
如上所述,根據(jù)本示例性實施例,包括用于提供服務(wù)不停機的機制的系統(tǒng)除了能夠維持I/F的兼容性之外,還能夠維持畫面HTML的兼容性。
下面將描述第二示例性實施例。將描述除了本發(fā)明的第一示例性實施例之外也可以實現(xiàn)的處理。本處理涉及用于在自升級結(jié)束起經(jīng)過一定時間之后刪除應(yīng)用服務(wù)器110的環(huán)境的處理、以及當在刪除之后請求應(yīng)用服務(wù)器110的資源時要進行的處理。
管理服務(wù)器140的部署模塊342進行用于在升級結(jié)束之后刪除應(yīng)用服務(wù)器110的處理。部署模塊342通過從旨在提供服務(wù)的系統(tǒng)的部件中排除應(yīng)用服務(wù)器110,來刪除應(yīng)用服務(wù)器110。這里,還從存儲服務(wù)器130中刪除與應(yīng)用服務(wù)器110相對應(yīng)的組建版本的資源數(shù)據(jù)。在該處理中,刪除整個應(yīng)用服務(wù)器110。用戶在任意定時給出刪除指定。
接下來,將描述當請求應(yīng)用服務(wù)器110的資源時要進行的處理。這里,假設(shè)HTML的緩存已過期并且不再存在與應(yīng)用服務(wù)器110相對應(yīng)的資源請求的時間點。由于服務(wù)器系統(tǒng)不可控制互聯(lián)網(wǎng)上的緩存,因此可能在由于意外因素而刪除資源之后,請求與應(yīng)用服務(wù)器110相對應(yīng)的資源。
圖8例示了考慮到意外請求的接收的API模塊311的處理流程。假定API模塊311在步驟S709中從Web瀏覽器350接收到API調(diào)用。在步驟S801中,API模塊311進行用于獲得與由參數(shù)指定的組建版本相對應(yīng)的資源的處理。如果在存儲服務(wù)器130中存在相應(yīng)資源(步驟S801中的OK),則在步驟S802中,API模塊311以該資源進行響應(yīng)。否則(步驟S801中的NG),在步驟S803中,API模塊311生成錯誤響應(yīng),并以此進行響應(yīng)。錯誤響應(yīng)的一個含義為指示W(wǎng)eb瀏覽器350丟棄緩存并再次獲得HTML。當接收到錯誤響應(yīng)時,Web瀏覽器350通過使用JavaScript(注冊商標)對自身進行重載。重載處理的執(zhí)行消除了緩存的HTML,Web瀏覽器350從應(yīng)用服務(wù)器120獲得新的HTML和JavaScript(注冊商標)。Web瀏覽器350還進行API調(diào)用以獲得與應(yīng)用服務(wù)器120相對應(yīng)的資源。由此,Web瀏覽器350能夠顯示應(yīng)用服務(wù)器120的正確畫面。
其他實施例
另外,還可以通過讀出并執(zhí)行記錄在存儲介質(zhì)(例如,非臨時性計算機可讀存儲介質(zhì))上的用于執(zhí)行本發(fā)明的一個或多個上述實施例的功能的計算機可執(zhí)行指令的系統(tǒng)或裝置的計算機來實現(xiàn)本發(fā)明的各實施例,以及通過系統(tǒng)或裝置的計算機通過例如從存儲介質(zhì)讀出并執(zhí)行用于執(zhí)行一個或多個上述實施例的功能的計算機可執(zhí)行指令的方法來實現(xiàn)本發(fā)明的各實施例。計算機可以包括中央處理單元(CPU)、微處理單元(MPU)或其他電路中的一個或多個,并且可以包括獨立的計算機或獨立的計算機處理器的網(wǎng)絡(luò)。計算機可執(zhí)行指令可以例如從網(wǎng)絡(luò)或存儲介質(zhì)被提供給計算機。存儲介質(zhì)可以包括例如硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、分布式計算系統(tǒng)的存儲器、光盤(諸如壓縮光盤(CD)、數(shù)字通用光盤(DVD)或藍光光盤(BD)TM)、閃存設(shè)備、存儲卡等中的一個或多個。
本發(fā)明的實施例還可以通過如下的方法來實現(xiàn),即,通過網(wǎng)絡(luò)或者各種存儲介質(zhì)將執(zhí)行上述實施例的功能的軟件(程序)提供給系統(tǒng)或裝置,該系統(tǒng)或裝置的計算機或是中央處理單元(CPU)、微處理單元(MPU)讀出并執(zhí)行程序的方法。
雖然參照示例性實施例對本發(fā)明進行了描述,但是應(yīng)當理解,本發(fā)明并不限于所公開的示例性實施例。應(yīng)當對所附權(quán)利要求的范圍給予最寬的解釋,以使其涵蓋所有這些變型例以及等同的結(jié)構(gòu)和功能。