WO2015001798A1 - 情報処理サーバ、情報処理システム、情報処理方法及びプログラム記録媒体 - Google Patents

情報処理サーバ、情報処理システム、情報処理方法及びプログラム記録媒体 Download PDF

Info

Publication number
WO2015001798A1
WO2015001798A1 PCT/JP2014/003497 JP2014003497W WO2015001798A1 WO 2015001798 A1 WO2015001798 A1 WO 2015001798A1 JP 2014003497 W JP2014003497 W JP 2014003497W WO 2015001798 A1 WO2015001798 A1 WO 2015001798A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
update
information processing
service
update file
Prior art date
Application number
PCT/JP2014/003497
Other languages
English (en)
French (fr)
Inventor
加藤 勝也
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2015001798A1 publication Critical patent/WO2015001798A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Definitions

  • the present invention relates to an information processing server, an information processing system, an information processing method, and a program recording medium that can update an application without stopping a service that is being provided.
  • the present invention relates to an information processing server that implements application update without stopping a service in an application that operates using a TCP port as a standby port on the information processing server (TCP: Transmission Control Protocol).
  • the production environment that provides services through applications and the test environment that develops and tests applications are not completely the same, and there are often differences in device configuration and various settings. Therefore, after updating the application, it is desirable to check whether the system operates normally even in the production environment. At present, in a system composed of a single machine, it is necessary to check the operation by stopping the service after updating the application. In addition, in a system in which a plurality of machines that perform the same processing are prepared, it is possible to check the operation on some machines by degenerating the service.
  • Patent Document 1 discloses an information processing system capable of performing maintenance work such as application update without interrupting service.
  • the client and the server are provided with the same application providing means, and the synchronization means for executing the synchronization of the user data on the client side and the server side. Therefore, the application can be updated on one side of the server or the client, and the execution of the application can be continued on the other side. Further, when the update of the application is completed on one side of the server or the client, the end of the update is responsible for the execution of the application, and the other application can be updated.
  • the application can be updated while continuing the service, but the same application service providing means is required for both the server and the client.
  • the server updates or executes an application of a client the application operating on another client may be updated or executed using the server. Can not.
  • An object of the present invention is to provide an information processing server capable of executing application updating / switching without stopping a service to be provided without providing an extra server.
  • the information processing server of the present invention includes a plurality of applications that provide the same service in response to a client request, and at the time of receiving an application update file, at least one of the plurality of applications that does not provide a service Management means for applying an update file to an application and switching the application so that the application to which the update file is applied provides a service is provided.
  • the information processing system of the present invention includes a plurality of applications that provide the same service in response to a client request, and at the time of receiving an application update file, at least one of the plurality of applications that does not provide a service
  • An information processing server comprising a management means for applying an update file to an application and switching the application so as to provide a service to the application to which the update file is applied, and an operation area in which the application operates via the management means
  • An application update server that confirms and transmits an update file of the application to the management means in accordance with the registered update schedule and update scenario.
  • An information processing method of the present invention is an information processing method for updating a plurality of applications that provide the same service in response to a client request.
  • an update file of an application is received, the service among the plurality of applications is updated.
  • the update file is applied to at least one application that is not provided, and the application is switched so that the application to which the update file is applied provides the service.
  • the program recording medium of the present invention is an information processing program that updates a plurality of applications that provide the same service in response to a client request.
  • the service of the plurality of applications is An information processing program that causes a computer to execute a process of applying an update file to at least one application that is not provided and a process of switching an application so that the application to which the update file is applied provides a service. Record.
  • an information processing server capable of executing application updating / switching without stopping a service to be provided without providing an extra server.
  • the information processing system 1 includes a server 10, an application update server 30, and an operation terminal 40.
  • the server 10 (also referred to as an information processing server) executes an application in response to a request from the client and provides a service to the client.
  • the server 10 receives a client request via a network such as the Internet.
  • the application update server 30 performs application update file management, update scenario management, update schedule management, execution of various commands to the surface management function of the server 10, and the like.
  • the application update server 30 may be directly connected to the server 10 via a cable or the like, or may be connected to the server 10 via a network such as the Internet.
  • the operation terminal 40 is a terminal operated by an operator such as a service provider or an administrator.
  • the operation terminal 40 is a terminal for logging in to the application update server 30 and performing various operations.
  • the operation terminal 40 can register / hold update information for updating an application.
  • Application update information refers to information related to application updates including update schedules, update scenarios, and update files.
  • the update schedule includes time distribution such as timing for updating the application.
  • the update scenario includes information on how to deal with the application according to the operation status of the application when the application is updated according to the update schedule. For example, in the present embodiment, the operation state of the application is confirmed at a timing according to the update schedule, and the application is updated by applying an update scenario according to the operation state of the application.
  • the operation terminal 40 may be directly connected to the application update server 30 with a cable or the like, or may be connected to the application update server 30 via a network such as the Internet.
  • the server 10 includes an A-side application 11 (also referred to as a first application) and a B-side application 12 (also referred to as a second application).
  • the A-side application 11 is an application that operates on the A-side (also referred to as the first operation region)
  • the B-side application 12 is an application that operates on the B-side (also referred to as the second operation region).
  • the A-side application 11 and the B-side application 12 are installed in different directories, for example.
  • the A-side application 11 is stored in the first directory and operates in the first operation area.
  • the B-side application 12 is stored in the second directory and operates in the second operation area.
  • the server 10 also has a standby port 13 (also referred to as a first port) for the A-side application 11 and a standby port 14 (also referred to as a second port) for the B-side application 12.
  • a standby port 13 also referred to as a first port
  • a standby port 14 also referred to as a second port
  • the server 10 has a standby port 15 (also referred to as a first interface) and a surface management API 16 (also referred to as management means) (API: Application Programming Interface).
  • a standby port 15 also referred to as a first interface
  • a surface management API 16 also referred to as management means
  • API Application Programming Interface
  • the server 10 has two startup planes on which the A plane application 11 and the B plane application 12 operate.
  • an application can be activated on one side or both sides of the A side and the B side.
  • a starting surface shows the operation area
  • a state in which the service is provided to the client is referred to as “active”, and a state in which the service is not provided to the client is referred to as “standby”.
  • the active application that is set to accept a client request by the surface management API 16 is an application that provides a service to the client.
  • an application that provides a service to a client among activation surfaces on which the application is activated is referred to as an application that is providing the service.
  • An application that does not provide a service to a client is called an application that does not provide a service.
  • An application that does not provide a service includes an application that is activated to be able to provide a service to the client but is not connected to the client, and an application that is not activated to be able to provide a service to the client.
  • the A-side application 11 starts with the standby port 13 as a standby port. Further, the B-side application 12 is activated with the standby port 14 as a standby port.
  • the A-side application 11 executes the process.
  • the B-side application 12 executes processing.
  • the standby port 15 is a first interface that receives a request from a client. When receiving the request, the standby port 15 performs port conversion, and passes the request to the standby port (the standby port 13 or the standby port 14) of the application providing the service. The application providing the service executes processing in response to the received request.
  • the A-side application 11 when the A-side application 11 is an application that is providing a service, the A-side application 11 executes processing. If the B-side application 12 is an application that is providing a service, the B-side application 12 executes processing.
  • the surface management API 16 is a management means having a surface management function of the server 10, and mainly manages the startup surface of the application. Specifically, the side management API 16 switches the conversion destination port of the standby port 15 and starts / stops the A side application 11 and the B side application 12 in accordance with a request from the application update server 30.
  • the surface management API 16 updates the standby application.
  • the waiting application is an application that is not executing a client request (not providing a service). For example, when the A-side application 11 is providing a service, the standby B-side application 12 is updated.
  • the face management API 16 starts the updated application and switches the port conversion destination of the standby port 15 to the standby port of the updated application. For example, when the B-side application 12 that has been waiting is updated, the B-side application 12 is activated, and the port conversion destination of the standby port 15 is switched to the standby port 14. That is, when the update file is applied to the standby application, the surface management API 16 (management unit) switches the application so that the application to which the update file is applied provides a service.
  • the application can be updated without stopping the service.
  • the server for updating and executing the application since there is no need to separate the server for updating and executing the application, it is not necessary to prepare a plurality of servers, and the updating of the application may be performed once.
  • the operation terminal 40 logs in to the application update server 30 and registers application update information in the application update server 30 (step S11).
  • the application update information is information related to the update file, the update scenario, and the update schedule.
  • the application update server 30 confirms the activation surface with respect to the surface management API 16 (step S12).
  • the surface management API 16 acquires an update file (application update file) for the application that is not running (standby) from the application update server 30 and updates the application on the standby surface (step S13).
  • the plane management API 16 changes the conversion destination port of the standby port 15 to the standby port (standby port 13 or 14) of the application whose update has been completed, and switches the startup plane (step S14). .
  • the application whose update has been completed is running.
  • the surface management API 16 confirms the remaining connection of the application that has been started (one that has not been updated) (step S15).
  • step S16 the surface management API 16 checks the remaining connection until the remaining connection becomes 0 (returns to step S15).
  • step S16 If the remaining connection is 0 (Yes in step S16), the surface management API 16 notifies the application update server 30 that all connections have been released (step S17).
  • the face management API 16 stops the application that has been started (one that has not been updated) (step S18).
  • the operation terminal 40 logs in remotely to the application update server 30 (step S101).
  • step S102 When the operation terminal 40 logs into the application update server 30, the update information is registered in the application update server 30 (step S102).
  • step S ⁇ b> 102 the operation terminal 40 first registers an application update file in the application update server 30.
  • the operation terminal 40 registers an update scenario and an update schedule in the application update server 30.
  • the application update server 30 automatically executes the processes after step S103 according to the registered update schedule.
  • the application update server 30 confirms the activation surface with respect to the surface management API 16 (step S103).
  • the plane management API 16 notifies the application update server 30 that the A plane application 11 is being activated (step S104).
  • the application update server 30 determines that the file of the side B application 12 of the side that is not running (standby side) is to be updated because the application currently providing the service is the side A. Then, the application update server 30 transfers the application update file to the surface management API 16 (step S105).
  • the side management API 16 After receiving the application update file, the side management API 16 backs up the current application file of the B side application 12 (step S106).
  • the side management API 16 expands the application update file on the B-side (step S107).
  • the surface management API 16 notifies the application update server 30 of the completion of the development (step S108).
  • the deployment completion notification may be notified from the B-side application 12 to the application update server 30.
  • the application update server 30 After completing the update file deployment on the B side, the application update server 30 makes a startup plane switching request to the plane management API 16 (step S109).
  • the surface management API 16 activates the updated B surface application 12 (step S110).
  • the B-side application 12 When the activation of the B-side application 12 is completed, the B-side application 12 notifies the completion of activation to the surface management API 16 (step S111).
  • the surface management API 16 Upon reception of the start completion notification, the surface management API 16 executes a start surface switching process for changing the conversion destination port for the standby port 15 from the standby port 13 of the A surface application 11 to the standby port 14 of the B surface application 12. (Step S112).
  • the request received by the standby port 15 is processed by the updated B plane application 12.
  • the side management API 16 notifies the application update server 30 of the application activation completion (step S113).
  • connection release processing of the A-side application 11 that has been activated (provided the service) is executed.
  • the application update server 30 When receiving the activation completion notification of the B-side application 12, the application update server 30 issues a remaining connection confirmation start request to the surface management API 16 (step S114).
  • the plane management API 16 confirms the remaining connection to the A plane application 11 (step S115).
  • the A-side application 11 makes a remaining connection response to the side management API 16 (step S116). Note that the confirmation processing in step S115 and the response processing in step S116 are repeated until the remaining connections become zero.
  • the side management API 16 sends a connection release notification to the application update server 30 (step S117).
  • the application update server 30 issues a request to stop the A-side application 11 to the side management API 16 (step S118).
  • the plane management API 16 stops the A plane application 11 in response to the stop request from the application update server 30 (step S119).
  • the A-side application 11 is stopped by the stop control of the surface management API 16, and a stop completion notification is given (step S120).
  • the plane management API 16 notifies the application update server 30 of the completion of the stop of the plane A application 11 (step S121).
  • the application update server 30 does not perform the next application update until the stop of the A-side application 11 is completed.
  • the A-side application 11 (before update) and the B-side application 12 (updated) are activated at the same time.
  • the conversion destination port of the standby port 15 is changed from the standby port 13 of the A-side application 11 to the standby port 14 of the B-side application 12. Therefore, the request received after the change of the conversion destination port is processed by the updated B-side application 12. That is, since the activation plane is switched by changing the conversion destination port of the standby port 15, the application can be updated without stopping the service.
  • the application can be updated without stopping the service.
  • Any information processing method using the method according to the first embodiment of the present invention is included in the scope of the present invention.
  • a program for causing a computer to execute processing relating to the information processing method according to the first embodiment of the present invention and a program recording medium storing the program are also included in the scope of the present invention.
  • FIG. 4 shows a modification of the first embodiment.
  • the information processing system 1-1 of the modified example is the same as the information processing system 1 of FIG. 1 except that it includes a server 17 having three or more operation areas. Therefore, the same code
  • the server 17 includes at least one N plane application 18 in addition to the A plane application 11 and the B plane application 12.
  • FIG. 4 illustrates the N-face application 18 and the standby port 19. 4 shows only one N-plane application, the modified server 17 can include a plurality of N-plane applications. In other words, the modified server 17 includes three or more applications.
  • an application to be preferentially provided by the surface management API 16 is set, and an application to be preferentially updated may be set.
  • all the applications may be updated in order and the application which is not providing a service may be updated simultaneously.
  • the update file may be acquired from the surface management API 16 and the application may transfer the update file to a different application.
  • only the application in the specific operation area may be updated to the latest, or a specific old version may be held for the application in the specific operation area.
  • the update may be performed by another application while receiving different requests in parallel by a plurality of different applications.
  • the information processing system 2 according to the second embodiment is different from the information processing system 1 according to the first embodiment in that it includes a normality confirmation server 50 and a standby port 27.
  • the information processing system 2 includes a server 20, an application update server 30, an operation terminal 40, and a normality confirmation server 50.
  • the application update server 30 and the operation terminal 40 are the same as the structure of the information processing system 1 which concerns on 1st Embodiment, the same code
  • the server 20 includes an A-side application 21 (also referred to as a first application) and a B-side application 22 (also referred to as a second application).
  • the server 20 also includes a standby port 23 (also referred to as a first port) for the A-side application 21 and a standby port 24 (also referred to as a second port) for the B-side application 22.
  • the server 20 includes a request waiting port 25 (also referred to as a first interface) from a client, and a surface management API 26 (also referred to as a management unit).
  • the server 20 includes a standby port 27 corresponding to the B-side application 22.
  • the server 20 is different from the server 10 of the information processing system 1 according to the first embodiment in that the server 20 has a standby port 27.
  • Side A application 21, side B application 22, standby ports 23 to 25, and side management API 26 in FIG. 5 correspond to side A application 11, side B application 12, standby ports 13 to 15 and side management API 16 in FIG. 1, respectively. .
  • the normality confirmation server 50 is a server that executes a script for automatically executing a normality confirmation test.
  • the standby port 27 is a standby port (also referred to as a second interface) that receives a request for performing normality confirmation. It is possible to check the normality after updating the application while providing the service by separating the port from the standby port 25 for the service being provided and the standby port 27 for the normality check.
  • FIG. 5 shows that the standby port 27 is connected to the standby ports 23 and 24 in the server 20, it may be connected to the standby port 25 and the surface management API 26.
  • the B-side application 22 is updated while the A-side application 21 provides a service, and the updated B-side application 22 is normal. Confirmation can be made.
  • the operation terminal 40 logs in to the application update server 30 and registers application update information in the application update server 30 (step S21).
  • the application update information is information related to the update file, the update scenario, and the update schedule.
  • the application update server 30 confirms the activation surface with respect to the surface management API 26 (step S22).
  • the surface management API 26 acquires an update file for the application that is not running (standby) from the application update server 30, and updates the application that is not running (standby) (step S23).
  • the surface management API 26 changes the conversion destination port of the standby port 27 to the standby port (the standby port 23 or 24) on the application side where the update has been completed (step S24).
  • the application is operating on two sides, and the normality of the updated application can be confirmed on the other side while providing the service on one side.
  • the service is provided by the A-side application 21
  • the normality confirmation server 50 executes the normality confirmation script for the updated application in response to the normality confirmation request from the application update server 30, and performs normality confirmation (step S25).
  • the normality check is, for example, to send an HTTP request to the application and check whether an expected HTTP response is returned if the application uses the HTTP protocol (HTTP: Hypertext Transfer Protocol).
  • HTTP Hypertext Transfer Protocol
  • the normality confirmation in the present embodiment is not limited to the above-described method as long as the normality of the updated application can be confirmed.
  • the surface management API 26 stops the application of the normality check (updated one) in response to the application stop request from the application update server 30 (step S26).
  • the operation terminal 40 remotely logs in to the application update server 30 (step S201).
  • step S202 When the operation terminal 40 logs in to the application update server 30, the update information is registered in the application update server 30 (step S202).
  • step S ⁇ b> 202 the operation terminal 40 first registers an application update file in the application update server 30.
  • the operation terminal 40 registers an update scenario and an update schedule in the application update server 30.
  • the application update server 30 automatically executes the processes after step S203 according to the registered update schedule.
  • the application update server 30 confirms the activation surface with respect to the surface management API 26 (step S203).
  • the plane management API 26 notifies the application update server 30 that the A plane application 21 is being activated (step S204).
  • the application update server 30 determines that the file of the B-side application 22 on the side that is not being activated (standby side) is updated because the currently activated application is the A-side. Then, the application update server 30 transfers the application update file to the surface management API 26 (step S205).
  • the surface management API 26 After receiving the application update file, the surface management API 26 backs up the current application file of the B surface application 22 (step S206).
  • the surface management API 26 After completing the backup of the application file of the B-side application 22, the surface management API 26 develops the application update file on the B-side (step S207).
  • the surface management API 26 notifies the application update server 30 of the completion of the development (step S208).
  • the deployment completion notification may be notified from the B-side application 12 to the application update server 30.
  • the application update server 30 After completing the update file development on the B side, the application update server 30 makes a conversion destination port change request to the side management API 26 (step S209).
  • the surface management API 26 activates the updated B surface application 22 (step S210).
  • the B-side application 22 When the activation of the B-side application 22 is completed, the B-side application 22 notifies the activation completion to the surface management API 26 (step S211).
  • the surface management API 26 Upon receipt of the start completion notification, the surface management API 26 performs conversion destination port change processing for changing the conversion destination port from the standby port 23 of the A-side application 21 to the standby port 24 of the B-side application 22 for the standby port 27. Execute (step S212).
  • the request received by the standby port 27 is processed by the updated B-side application 22.
  • the side management API 26 notifies the conversion destination port change completion to the application update server 30 (step S213).
  • the application is operating on the two sides A and B, and the normality of the updated application can be checked with the B-side application 22 while providing the service with the A-side application 21. .
  • the normality confirmation process of the B-side application 22 for which the application update has been completed is executed.
  • the application update server 30 makes a normality confirmation request for the B-side application 22 to the normality confirmation server 50 (step S214).
  • the normality confirmation server 50 executes the normality confirmation script and performs normality confirmation on the B-side application 22.
  • the request to the B-side application 22 executed by the normality confirmation script is received by the standby port 27 (step S215), converted to the standby port 24, and then transmitted to the B-side application 22 (step). S216).
  • the B-side application processes the request transmitted from the standby port 27 and returns a response to the normality confirmation server 50 (step S217).
  • the normality confirmation server 50 notifies the application update server 30 of the result of the normality confirmation (step S218).
  • the application update server 30 makes a stop request for the B-side application 22 to the surface management API 26 (step S219).
  • the surface management API 26 stops the B-side application 22 in response to the stop request from the application update server 30 (step S220).
  • the B-side application 22 is stopped by the stop control of the surface management API 26, and a stop completion notification is sent to the surface management API 26 (step S221).
  • the stop completion notification may be notified to the surface management API 26 immediately before the stop of the B-side application 22 or may be set to be notified to the surface management API 26 after the stop is completed.
  • the surface management API 26 notifies the application update server 30 of the stop completion of the surface B application 22 (step S222).
  • the application update server 30 does not perform the next application update until the stop of the B-side application 22 is completed.
  • the information processing system 2 it is possible to check the normality of the updated B-side application 22 while providing a service with the A-side application 21 before being updated.
  • the description of the second embodiment an example in which two applications are operated has been described. However, a case in which a plurality of applications are operated in the same manner as in the modification of the first embodiment is also described in the second embodiment. Such a method can be applied.
  • Any information processing method using the method according to the second embodiment of the present invention is included in the scope of the present invention. Further, a program for causing a computer to execute processing related to the information processing method of the present invention and a program recording medium storing the program are also included in the scope of the present invention.

Abstract

 余分なサーバを設けることなしに、提供するサービスを停止することなく、アプリケーションの更新・切替を実行するため、本発明の情報処理サーバは、クライアントのリクエストに対して同一のサービスを提供する複数のアプリケーションを含み、アプリケーションの更新ファイルを受信した際に、複数のアプリケーションのうちサービスを提供していない少なくとも1つのアプリケーションに更新ファイルを適用し、更新ファイルを適用したアプリケーションがサービスを提供するようにアプリケーションを切り替える管理手段を備える情報処理サーバとする。

Description

情報処理サーバ、情報処理システム、情報処理方法及びプログラム記録媒体
 本発明は、提供中のサービスを停止せずにアプリケーションを更新することができる情報処理サーバ、情報処理システム、情報処理方法及びプログラム記録媒体に関する。特に、情報処理サーバ上でTCPポートを待ち受けポートとして動作するアプリケーションにおいて、サービスを停止することなく、アプリケーションの更新を実現する情報処理サーバに関する(TCP:Transmission Control Protocol)。
 一般的なアプリケーションサービスにおいては、情報処理サーバ上で動作するアプリケーションを更新する際、アプリケーションの停止・再起動によるサービス停止が伴う。そのため、サービス停止が許されないシステムでは、同一処理を行うことができるサーバを2台用意し、一方を現行系、他方を待機系として動作させる方法を取ることになる。
 また、アプリケーションによりサービスを提供している本番環境と、アプリケーションの開発・試験を実施している試験環境は、完全に同じではなく、機器構成や各種設定に差分があることが多い。そのため、アプリケーション更新後には、本番環境でもシステムが正常に動作するか否かを確認することが望ましい。現状では、単一のマシンで構成されたシステムであれば、アプリケーション更新後にサービスを停止して動作確認を行う必要がある。また、同一処理を行うマシンが複数台用意されているシステムであれば、サービスを縮退して一部のマシンで動作確認を行うことができる。
 特許文献1には、サービスを中断せずに、アプリケーションの更新等の保守作業を行うことができる情報処理システムについて開示されている。特許文献1の情報処理システムは、クライアントとサーバとが同様のアプリケーション提供手段を備え、クライアント側とサーバ側のユーザデータの同期を実行する同期手段を備える。そのため、サーバ又はクライアントの一方でアプリケーションを更新するとともに、他方でアプリケーションの実行を継続することができる。また、サーバ又はクライアントの一方でアプリケーションの更新が終了すると、更新が終了した方がアプリケーションの実行を受け持ち、他方のアプリケーションを更新することができる。
特開2010-134702号公報
 一般的なアプリケーションサービスでは、同一処理を行うことができるサーバを複数台用意し、いずれかのサーバを現行系とし、現行系ではないサーバを待機系として動作することができる。しかしながら、系切替の際に数分程度サービス停止を伴ったり、同一サービスを提供するサーバを複数台用意する必要があったり、全てのサーバのアプリケーションが更新されるまでの待機時間があったりするといった課題がある。
 また、一般的なアプリケーションサービスでは、アプリケーション更新後の動作確認においては、サーバが単数・複数のいずれであっても、サービスに影響が出てしまう。そのため、サービスに影響を与えずに更新後のアプリケーションの正常性を確認することができないという課題がある。
 特許文献1の情報処理システムでは、サービスを継続しながらアプリケーションを更新することができるものの、サーバとクライアントの双方に同一のアプリケーションサービス提供手段が必要になる。また、複数のクライアントでアプリケーションを共有する場合、サーバがあるクライアントのアプリケーションの更新又は実行をしていると、そのサーバを用いて他のクライアントで動作しているアプリケーションの更新又は実行をすることができない。
 本発明は、余分なサーバを設けることなしに、提供するサービスを停止することなく、アプリケーションの更新・切替を実行することができる情報処理サーバを提供することを目的とする。
 本発明の情報処理サーバは、クライアントのリクエストに対して同一のサービスを提供する複数のアプリケーションを含み、アプリケーションの更新ファイルを受信した際に、複数のアプリケーションのうちサービスを提供していない少なくとも1つのアプリケーションに更新ファイルを適用し、更新ファイルを適用したアプリケーションがサービスを提供するようにアプリケーションを切り替える管理手段を備える。
 本発明の情報処理システムは、クライアントのリクエストに対して同一のサービスを提供する複数のアプリケーションを含み、アプリケーションの更新ファイルを受信した際に、複数のアプリケーションのうちサービスを提供していない少なくとも1つのアプリケーションに更新ファイルを適用し、更新ファイルを適用したアプリケーションにサービスを提供するようにアプリケーションを切り替える管理手段を備えることを特徴とする情報処理サーバと、管理手段を介してアプリケーションが動作する動作領域を確認し、登録された更新スケジュール及び更新シナリオに従って、アプリケーションの更新ファイルを管理手段に送信するアプリケーション更新サーバと、を備える。
 本発明の情報処理方法は、クライアントのリクエストに対して同一のサービスを提供する複数のアプリケーションを更新する情報処理方法であって、アプリケーションの更新ファイルを受信した際に、複数のアプリケーションのうちサービスを提供していない少なくとも1つのアプリケーションに更新ファイルを適用し、更新ファイルを適用したアプリケーションがサービスを提供するようにアプリケーションを切り替える。
 本発明のプログラム記録媒体は、クライアントのリクエストに対して同一のサービスを提供する複数のアプリケーションを更新する情報処理プログラムであって、アプリケーションの更新ファイルを受信した際に、複数のアプリケーションのうちサービスを提供していない少なくとも1つのアプリケーションに更新ファイルを適用する処理と、更新ファイルを適用したアプリケーションがサービスを提供するようにアプリケーションを切り替える処理と、をコンピュータに実行させることを特徴とする情報処理プログラムを記録する。
 本発明によれば、余計なサーバを設けることなしに、提供するサービスを停止することなく、アプリケーションの更新・切替を実行することができる情報処理サーバを提供することが可能になる。
本発明の第1の実施形態に係る情報処理システムの構成を示すブロック図である。 本発明の第1の実施形態に係る情報処理システムの動作を示すフローチャートである。 本発明の第1の実施形態に係る情報処理システムの動作を示すシークエンス図である。 本発明の第1の実施形態に係る変形例の情報処理システムの構成を示すブロック図である。 本発明の第2の実施形態に係る情報処理システムの構成を示すブロック図である。 本発明の第2の実施形態に係る情報処理システムの動作を示すフローチャートである。 本発明の第2の実施形態に係る情報処理システムの動作を示すシークエンス図である。
 以下に、本発明を実施するための形態について図面を用いて説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
 (第1の実施形態)
 (構成)
 まず、図1を用いて本発明の第1の実施形態に係る情報処理システム1の構成について説明する。
 図1において、第1の実施形態に係る情報処理システム1は、サーバ10と、アプリケーション更新サーバ30と、操作端末40と、を備える。
 サーバ10(情報処理サーバとも呼ぶ)は、クライアントからのリクエストに応じてアプリケーションを実行し、クライアントにサービスを提供する。サーバ10は、インターネットなどのネットワークを介して、クライアントのリクエストを受信する。
 アプリケーション更新サーバ30は、アプリケーション更新ファイルの管理、更新シナリオの管理、更新スケジュールの管理、サーバ10の面管理機能への各種コマンドの実行などを行う。アプリケーション更新サーバ30は、ケーブルなどで直接にサーバ10と接続されていてもよいし、インターネットなどのネットワークを経由してサーバ10と接続されていてもよい。
 操作端末40は、サービスの提供者や管理者などの操作者が操作する端末である。操作端末40は、アプリケーション更新サーバ30にログインして各種操作を行うための端末である。操作端末40は、アプリケーションを更新するための更新情報を登録・保持することができる。
 アプリケーションの更新情報とは、更新スケジュール、更新シナリオ及び更新ファイルを含むアプリケーションの更新に関する情報を示す。更新スケジュールは、アプリケーションを更新するタイミングなどの時間配分を含む。更新シナリオは、更新スケジュールに従ってアプリケーションを更新する際に、アプリケーションの動作状況などに応じてどのような対処方法をとるかという情報を含む。例えば、本実施形態においては、更新スケジュールに従ったタイミングでアプリケーションの動作状況を確認し、アプリケーションの動作状況に応じた更新シナリオを適用してアプリケーションを更新する。
 なお、操作端末40は、ケーブルなどで直接にアプリケーション更新サーバ30と接続されていてもよいし、インターネットなどのネットワークを経由してアプリケーション更新サーバ30と接続されていてもよい。
 サーバ10は、A面アプリケーション11(第1のアプリケーションとも呼ぶ)と、B面アプリケーション12(第2のアプリケーションとも呼ぶ)と、を含む。A面アプリケーション11はA面(第1の動作領域とも呼ぶ)で動作するアプリケーションであり、B面アプリエーション12はB面(第2の動作領域とも呼ぶ)で動作するアプリケーションである。A面アプリケーション11及びB面アプリケーション12は、例えば、異なるディレクトリにインストールされる。
 本実施形態においては、A面アプリケーション11は、第1のディレクトリに保存され、第1の動作領域で動作する。また、本実施形態においては、B面アプリケーション12は、第2のディレクトリに保存され、第2の動作領域で動作する。
 また、サーバ10は、A面アプリケーション11の待ち受けポート13(第1のポートとも呼ぶ)と、B面アプリケーション12の待ち受けポート14(第2のポートとも呼ぶ)と、を有する。
 さらに、サーバ10は、待ち受けポート15(第1のインターフェースとも呼ぶ)と、面管理API16(管理手段とも呼ぶ)と、を有する(API:Application Programming Interface)。
 サーバ10は、A面アプリケーション11及びB面アプリケーション12が動作する2つの起動面を有する。サーバ10上においては、A面とB面の片面又は両面でアプリケーションを起動することができる。なお、起動面とは、A面アプリケーション11及びB面アプリケーション12をそれぞれ個別に動作させることができる動作領域を示す。
 なお、本実施形態においては、クライアントに対してサービスを提供できる状態に起動されている状態を起動中とよび、クライアントに対してサービスを提供できる状態には起動されていない状態を待機中とよぶ。面管理API16によってクライアントのリクエストを受け付けるように設定された方の起動中のアプリケーションが、クライアントに対してサービスを提供するアプリケーションとなる。
 また、本実施形態においては、アプリケーションが起動されている起動面のうち、クライアントに対してサービスを提供しているアプリケーションを、サービスを提供中のアプリケーションとよぶ。そして、クライアントに対してサービスを提供していないアプリケーションを、サービスを提供していないアプリケーションとよぶ。サービスを提供していないアプリケーションは、クライアントにサービスを提供できる状態に起動されながらクライアントと接続されていないアプリケーションと、クライアントにサービスを提供できる状態に起動されていないアプリケーションと、を含む。
 A面アプリケーション11は、待ち受けポート13を待ち受けポートとして起動する。また、B面アプリケーション12は、待ち受けポート14を待ち受けポートとして起動する。
 待ち受けポート13でクライアントからのリクエストを受信すると、A面アプリケーション11で処理を実行する。また、待ち受けポート14でクライアントからのリクエストを受信すると、B面アプリケーション12で処理を実行する。
 待ち受けポート15は、クライアントからのリクエストを受信する第1のインターフェースである。待ち受けポート15は、リクエストを受信するとポート変換を行い、サービスを提供中のアプリケーションの待ち受けポート(待ち受けポート13又は待ち受けポート14)にリクエストを渡す。サービスを提供中のアプリケーションは、受け取ったリクエストに応じて処理を実行する。
 例えば、A面アプリケーション11がサービスを提供中のアプリケーションである場合、A面アプリケーション11で処理を実行する。また、B面アプリケーション12がサービスを提供中のアプリケーションである場合、B面アプリケーション12で処理を実行する。
 面管理API16は、サーバ10の面管理機能を有する管理手段であり、主にアプリケーションの起動面の管理を行う。具体的には、面管理API16は、アプリケーション更新サーバ30の要求に従って、待ち受けポート15の変換先ポートの切り替え、A面アプリケーション11及びB面アプリケーション12の起動・停止を行う。
 また、面管理API16は、アプリケーションを更新する際には、待機中のアプリケーションの更新を行う。待機中のアプリケーションとは、クライアントのリクエストを実行していない方(サービスを提供していない方)のアプリケーションである。例えば、A面アプリケーション11がサービスを提供中である場合、待機中であるB面アプリケーション12が更新される。
 その後、面管理API16は、更新後のアプリケーションを起動し、待ち受けポート15のポート変換先を更新後のアプリケーションの待ち受けポートに切り替える。例えば、待機中であったB面アプリケーション12が更新された場合、B面アプリケーション12が起動され、待ち受けポート15のポート変換先が待ち受けポート14に切り替えられる。すなわち、面管理API16(管理手段)は、待機中のアプリケーションに更新ファイルが適用されると、更新ファイルが適用されたアプリケーションがサービスを提供するように、アプリケーションを切り替える。
 以上のような本発明の第1の実施形態に係る情報処理システムによれば、サービス停止をすることなくアプリケーションの更新が可能となる。また、アプリケーションの更新と実行をするサーバを分ける必要がないため、複数台のサーバを用意する必要はなく、アプリケーションの更新も1回のタイミングで実施すればよい。
 (動作)
 次に、図2のフローチャートを参照して、第1の実施形態に係る情報処理システム1の動作について説明する。
 図2において、まず、操作端末40は、アプリケーション更新サーバ30にログインし、アプリケーション更新サーバ30にアプリケーションの更新情報を登録する(ステップS11)。アプリケーションの更新情報は、更新ファイル、更新シナリオ及び更新スケジュールに関する情報である。
 アプリケーション更新サーバ30は、面管理API16に対して起動面を確認する(ステップS12)。
 面管理API16は、起動中ではない方(待機中)のアプリケーション用の更新ファイル(アプリケーション更新ファイル)をアプリケーション更新サーバ30から取得し、待機面のアプリケーションを更新する(ステップS13)。
 アプリケーションの更新が終了すると、面管理API16は、待ち受けポート15の変換先ポートを更新が終了した方のアプリケーション側の待ち受けポート(待ち受けポート13又は14)に変更し、起動面を切り替える(ステップS14)。この段階で、更新が終了した方のアプリケーションが起動中となる。
 面管理API16は、アプリケーション更新サーバ30の残コネクション確認要求に応じて、起動中であった方(更新していない方)のアプリケーションの残コネクションを確認する(ステップS15)。
 残コネクションが0ではない場合(ステップS16でNo)、面管理API16は、残コネクションが0になるまで残コネクションを確認する(ステップS15に戻る)。
 残コネクションが0の場合(ステップS16でYes)、面管理API16は、アプリケーション更新サーバ30にコネクションが全て開放したことを通知する(ステップS17)。
 面管理API16は、アプリケーション更新サーバ30のアプリケーション停止要求に応じて、起動中であった方(更新していない方)のアプリケーションを停止する(ステップS18)。
 以上が、第1の実施形態に係る情報処理システム1の動作の説明である。
 さらに、図3のシークエンス図を参照して、サービスを提供中のアプリケーションがA面アプリケーション11である場合に、アプリケーションの更新を開始する動作を詳細に説明する。なお、起動中のアプリケーションがB面アプリケーション12である場合は、以下の説明において、A面とB面とを入れ替えればよい。
 図3において、操作端末40は、アプリケーション更新サーバ30にリモートログインする(ステップS101)。
 操作端末40は、アプリケーション更新サーバ30にログインすると、アプリケーション更新サーバ30に更新情報を登録する(ステップS102)
 ステップS102において、まず、操作端末40は、アプリケーション更新サーバ30にアプリケーションの更新ファイルを登録する。次に、操作端末40は、アプリケーション更新サーバ30に更新シナリオと更新スケジュールを登録する。
 アプリケーション更新サーバ30は、登録された更新スケジュールに従ってステップS103以降の処理を自動で実行する。
 アプリケーション更新サーバ30は、面管理API16に対して起動面の確認を行う(ステップS103)。
 面管理API16は、アプリケーション更新サーバ30にA面アプリケーション11が起動中であることを通知する(ステップS104)。
 アプリケーション更新サーバ30は、現在サービス提供中のアプリケーションがA面であることから、起動中ではない方(待機面)のB面アプリケーション12のファイルを更新すると判断する。そして、アプリケーション更新サーバ30は、アプリケーションの更新ファイルを面管理API16に転送する(ステップS105)。
 面管理API16は、アプリケーションの更新ファイルを受信後、B面アプリケーション12の現在のアプリケーションファイルをバックアップする(ステップS106)。
 B面アプリケーション12のアプリケーションファイルのバックアップ完了後、面管理API16は、アプリケーションの更新ファイルをB面に展開する(ステップS107)。
 アプリケーションの展開が完了したら、面管理API16は、アプリケーション更新サーバ30に展開完了通知を行う(ステップS108)。なお、展開完了通知は、B面アプリケーション12からアプリケーション更新サーバ30に通知するようにしてもよい。
 B面への更新ファイル展開完了後、アプリケーション更新サーバ30は、面管理API16に対して起動面切替要求を行う(ステップS109)。
 アプリケーション更新サーバ30の起動面切替要求に応じて、面管理API16は、更新済みのB面アプリケーション12を起動する(ステップS110)。
 B面アプリケーション12の起動が完了すると、B面アプリケーション12は、面管理API16に対して起動完了を通知する(ステップS111)。
 起動完了の通知を受けると、面管理API16は、待ち受けポート15に対して変換先ポートをA面アプリケーション11の待ち受けポート13からB面アプリケーション12の待ち受けポート14に変更する起動面切替処理を実行する(ステップS112)。
 起動面切替処理以降、待ち受けポート15が受信したリクエストは、更新済みのB面アプリケーション12で処理されることとなる。
 B面アプリケーション12の起動及び待ち受けポート15の変換先ポートの変更が完了したら、面管理API16は、アプリケーション更新サーバ30に対してアプリケーション起動完了通知を行う(ステップS113)。
 ここで、第1の実施形態に係る情報処理システム1では、起動中であった(サービスを提供していた)A面アプリケーション11のコネクション開放処理を実行する。
 B面アプリケーション12の起動完了通知を受信したら、アプリケーション更新サーバ30は、面管理API16に残コネクション確認開始要求を行う(ステップS114)。
 面管理API16は、A面アプリケーション11に対して残コネクションの確認を行う(ステップS115)。
 A面アプリケーション11は、面管理API16に対して残コネクションの応答を行う(ステップS116)。なお、ステップS115の確認とステップS116の応答の処理は、残コネクションが0になるまで繰り返す。
 A面のコネクションが全て開放されると、面管理API16は、アプリケーション更新サーバ30に対してコネクション開放通知を行う(ステップS117)。
 コネクション開放通知を受信すると、アプリケーション更新サーバ30は、面管理API16に対してA面アプリケーション11の停止要求を行う(ステップS118)。
 面管理API16は、アプリケーション更新サーバ30の停止要求に応じて、A面アプリケーション11を停止する(ステップS119)。
 A面アプリケーション11は、面管理API16の停止制御によって停止し、停止完了通知を行う(ステップS120)。
 面管理API16は、アプリケーション更新サーバ30に対してA面アプリケーション11の停止完了通知を行う(ステップS121)。
 なお、A面アプリケーション11の停止が完了するまでは、アプリケーション更新サーバ30は次のアプリケーション更新は実施しない。
 以上が、図3のシークエンス図を用いた第1の実施形態に係る情報処理システム1の動作の詳細な説明である。
 第1の実施形態に係る情報処理システム1では、B面アプリケーション12を更新後、A面アプリケーション11(更新前)とB面アプリケーション12(更新済み)を同時に起動した状態にしておく。そして、待ち受けポート15の変換先ポートをA面アプリケーション11の待ち受けポート13からB面アプリケーション12の待ち受けポート14に変更する。そのため、変換先ポートの変更後に受信したリクエストは更新済みであるB面アプリケーション12で処理される。すなわち、待ち受けポート15の変換先ポートを変更することによって起動面の切り替えを行うため、サービス停止をすることなくアプリケーションの更新をすることが可能となる。
 このように、本発明の第1の実施形態に係る情報処理システムによれば、サービス停止をすることなく、アプリケーションを更新することができる。
 以上の本発明の第1の実施形態に係る方法を用いた任意の情報処理方法は、本発明の範囲に含まれるものである。また、本発明の第1の実施形態に係る情報処理方法に関する処理をコンピュータに実行させるプログラム、そのプログラムを格納したプログラム記録媒体も本発明の範囲に含まれるものである。
 (変形例)
 図4には、第1の実施形態の変形例を示した。
 変形例の情報処理システム1-1は、3つ以上の動作領域を有するサーバ17を備えている以外は、図1の情報処理システム1と同じである。そのため、同様の構成要素については、同じ符号を用いる。
 サーバ17は、A面アプリケーション11及びB面アプリケーション12に加えて、少なくとも一つのN面アプリケーション18を含む。図4には、N面アプリケーション18及び待ち受けポート19を図示している。なお、図4にはN面アプリケーションを一つしか図示していないが、変形例のサーバ17は、複数のN面アプリケーションを含みうる。すなわち、変形例のサーバ17は、3個以上のアプリケーションを含むことになる。
 情報処理システム1-1は、例えば、面管理API16によって優先的にサービス提供するアプリケーションが設定されているとともに、優先的に更新されるアプリケーションが設定されていてもよい。また、更新されるアプリケーションについては、順番に全てのアプリケーションを更新してもよいし、サービスを提供していないアプリケーションを一斉に更新してもよい。この際、面管理API16から更新ファイルを取得しアプリケーションが、異なるアプリケーションに更新ファイルを転送するようにしてもよい。また、特定の動作領域にあるアプリケーションのみを常に最新に更新するようにしてもよいし、特定の動作領域にあるアプリケーションについては特定の古いバージョンを保持させたりしてもよい。さらに、複数の異なるアプリケーションで並列して異なるリクエストを受け付けながら、他のアプリケーションで更新を行うようにしてもよい。
 変形例の情報システムによれば、起動面を3つ以上にすることによって、複数のリクエストを並行して処理しながら、サービスを停止せずに、アプリケーションの更新をすることができる。
 (第2の実施形態)
 次に、図5を用いて本発明の第2の実施形態に係る情報処理システム2の構成について説明する。第2の実施形態に係る情報処理システム2は、正常性確認サーバ50及び待ち受けポート27を有する点で、第1の実施形態に係る情報処理システム1とは異なる。
 (構成)
 図5において、第2の実施形態に係る情報処理システム2は、サーバ20と、アプリケーション更新サーバ30と、操作端末40と、正常性確認サーバ50とを備える。なお、アプリケーション更新サーバ30及び操作端末40は、第1の実施形態に係る情報処理システム1の構成と同じなので同じ符号を付し、説明は省略する。
 サーバ20は、A面アプリケーション21(第1のアプリケーションとも呼ぶ)と、B面アプリケーション22(第2のアプリケーションとも呼ぶ)と、を含む。また、サーバ20は、A面アプリケーション21の待ち受けポート23(第1のポートとも呼ぶ)と、B面アプリケーション22の待ち受けポート24(第2のポートとも呼ぶ)と、を含む。また、サーバ20は、クライアントからのリクエスト待ち受けポート25(第1のインターフェースとも呼ぶ)と、面管理API26(管理手段とも呼ぶ)と、を含む。さらに、サーバ20は、B面アプリケーション22に対応する待ち受けポート27を含む。サーバ20は、待ち受けポート27を有する点が、第1の実施形態に係る情報処理システム1のサーバ10とは異なる点である。
 図5のA面アプリケーション21、B面アプリケーション22、待ち受けポート23~25及び面管理API26は、それぞれ図1のA面アプリケーション11、B面アプリケーション12、待ち受けポート13~15及び面管理API16に対応する。
 正常性確認サーバ50は、正常性確認試験を自動で実施するためのスクリプトの実行を行うサーバである。
 待ち受けポート27は、正常性確認を実施する際のリクエストを受信する待ち受けポート(第2のインターフェースとも呼ぶ)である。提供中のサービスは待ち受けポート25、正常性確認は待ち受けポート27と、ポートを分けることによりサービスを提供しながらアプリケーション更新後の正常性確認を実施することができる。なお、図5においては、サーバ20内部で、待ち受けポート27は、待ち受けポート23及び24に接続されるように示しているが、待ち受けポート25や面管理API26と接続されていてもよい。
 以上のような第2の実施形態に係る情報処理システム2によれば、A面アプリケーション21がサービス提供を行っている間に、B面アプリケーション22を更新し、更新済みB面アプリケーション22の正常性確認を行うことができる。
 (動作)
 次に、図6のフローチャートを参照して、第2の実施形態に係る情報処理システム2の動作について説明する。
 図6において、操作端末40は、アプリケーション更新サーバ30にログインし、アプリケーション更新サーバ30にアプリケーションの更新情報を登録する(ステップS21)。アプリケーションの更新情報は、更新ファイル、更新シナリオ及び更新スケジュールに関する情報である。
 アプリケーション更新サーバ30は、面管理API26に対して起動面を確認する(ステップS22)。
 面管理API26は、起動中ではない方(待機中)のアプリケーション用の更新ファイルをアプリケーション更新サーバ30から取得し、起動中ではない方(待機中)のアプリケーションを更新する(ステップS23)。
 アプリケーションの更新が終了すると、面管理API26は、待ち受けポート27の変換先ポートを、更新が終了した方のアプリケーション側の待ち受けポート(待ち受けポート23又は24)に変更する(ステップS24)。この段階で、2面でアプリケーションが動作している状態となり、一方の面でサービス提供を行いながら、他方の面で更新アプリケーションの正常性確認を実施することができる。例えば、A面アプリケーション21でサービスを提供していた場合、B面アプリケーション22を更新後、A面アプリケーション21によるサービスの提供を継続させながら、B面アプリケーション22の正常性確認を実施することが可能となる。
 正常性確認サーバ50は、アプリケーション更新サーバ30の正常性確認要求に応じて、更新後のアプリケーションに対して正常性確認スクリプトを実行し、正常性確認を行う(ステップS25)。
 正常性確認とは、例えば、HTTPプロトコルを利用するアプリケーションであれば、HTTPリクエストをアプリケーションに送信し、期待したHTTPレスポンスが返却されるか否かを確認することである(HTTP:Hypertext Transfer Protocol)。なお、本実施形態における正常性確認は、更新後のアプリケーションの正常性を確認できる処理であれば、上述の方式に限定しない。
 正常性確認が終了すると、面管理API26は、アプリケーション更新サーバ30のアプリケーション停止要求に応じて、正常性確認を行った方(更新した方)のアプリケーションを停止する(ステップS26)。
 以上が、第2の実施形態に係る情報処理システム2の動作の説明である。なお、本発明の範囲は、図6のフローチャートに限らず、種々の変更・追加をすることができる。
 さらに、図7のシークエンス図を参照して、本実施例の動作を以下に記載する。ここでは、サービスを提供中のアプリケーションがA面アプリケーション21である場合に、アプリケーションの更新を開始する動作を詳細に説明する。なお、起動中のアプリケーションがB面アプリケーション22である場合は、以下の説明においてA面とB面とを入れ替えればよい。
 図7において、まず、操作端末40は、アプリケーション更新サーバ30にリモートログインする(ステップS201)。
 操作端末40は、アプリケーション更新サーバ30にログインすると、アプリケーション更新サーバ30に更新情報を登録する(ステップS202)
 ステップS202において、まず、操作端末40は、アプリケーション更新サーバ30にアプリケーションの更新ファイルを登録する。次に、操作端末40は、アプリケーション更新サーバ30に更新シナリオと更新スケジュールを登録する。
 アプリケーション更新サーバ30は、登録された更新スケジュールに従ってステップS203以降の処理を自動で実行する。
 アプリケーション更新サーバ30は、面管理API26に対して起動面の確認を行う(ステップS203)。
 面管理API26は、アプリケーション更新サーバ30にA面アプリケーション21が起動中であることを通知する(ステップS204)。
 アプリケーション更新サーバ30は、現在の起動中のアプリケーションがA面であることから、起動中ではない方(待機面)のB面アプリケーション22のファイルを更新すると判断する。そして、アプリケーション更新サーバ30は、アプリケーションの更新ファイルを面管理API26に転送する(ステップS205)。
 面管理API26は、アプリケーションの更新ファイルを受信後、B面アプリケーション22の現在のアプリケーションファイルをバックアップする(ステップS206)。
 B面アプリケーション22のアプリケーションファイルのバックアップ完了後、面管理API26は、アプリケーションの更新ファイルをB面に展開する(ステップS207)。
 アプリケーションの展開が完了したら、面管理API26は、アプリケーション更新サーバ30に展開完了通知を行う(ステップS208)。なお、展開完了通知は、B面アプリケーション12からアプリケーション更新サーバ30に通知するようにしてもよい。
 B面への更新ファイル展開完了後、アプリケーション更新サーバ30は、面管理API26に対して変換先ポート変更要求を行う(ステップS209)。
 アプリケーション更新サーバ30の変換先ポート変更要求に応じて、面管理API26は、更新済みのB面アプリケーション22を起動する(ステップS210)。
 B面アプリケーション22の起動が完了すると、B面アプリケーション22は、面管理API26に対して起動完了を通知する(ステップS211)。
 起動完了の通知を受けると、面管理API26は、待ち受けポート27に対して、変換先ポートをA面アプリケーション21の待ち受けポート23からB面アプリケーション22の待ち受けポート24に変更する変換先ポート変更処理を実行する(ステップS212)。
 変換先ポート変更処理以降、待ち受けポート27が受信したリクエストは、更新済みのB面アプリケーション22で処理されることとなる。
 B面アプリケーション22の起動及び待ち受けポート27の変換先ポートの変更が完了したら、面管理API26は、アプリケーション更新サーバ30に対して変換先ポート変更完了通知を行う(ステップS213)。
 この時点で、A面及びB面の2面でアプリケーションが動作している状態となり、A面アプリケーション21でサービス提供を行いながら、B面アプリケーション22で更新アプリケーションの正常性確認を実施することができる。
 ここで、第2の実施形態に係る情報処理システム2では、アプリケーションの更新が終了したB面アプリケーション22の正常性確認処理を実行する。
 アプリケーション更新サーバ30は、正常性確認サーバ50にB面アプリケーション22の正常性確認要求を行う(ステップS214)。
 正常性確認サーバ50は、正常性確認スクリプトを実行し、B面アプリケーション22に対して正常性確認を実施する。この際、正常性確認スクリプトにより実行されるB面アプリケーション22へのリクエストは、待ち受けポート27で受信され(ステップS215)、待ち受けポート24にポート変換されてからB面アプリケーション22に送信される(ステップS216)。
 B面アプリケーションは、待ち受けポート27から送信されたリクエストの処理を行い、正常性確認サーバ50にレスポンスを返す(ステップS217)。
 正常性確認サーバ50は、正常性確認の結果をアプリケーション更新サーバ30に通知する(ステップS218)。
 アプリケーション更新サーバ30は、面管理API26に対してB面アプリケーション22の停止要求を行う(ステップS219)。
 面管理API26は、アプリケーション更新サーバ30の停止要求に応じて、B面アプリケーション22を停止する(ステップS220)。
 B面アプリケーション22は、面管理API26の停止制御によって停止し、面管理API26に対して停止完了通知を行う(ステップS221)。なお、停止完了通知は、B面アプリケーション22の停止直前に面管理API26に対して通知されてもよいし、停止完了後に面管理API26に対して通知されるように設定されていてもよい。
 面管理API26は、アプリケーション更新サーバ30に対してB面アプリケーション22の停止完了通知を行う(ステップS222)。
 なお、B面アプリケーション22の停止が完了するまでは、アプリケーション更新サーバ30は、次のアプリケーション更新は実施しない。
 以上が、図7のシークエンス図を用いた第2の実施形態に係る情報処理システム2の動作の詳細な説明である。
 以上のように、第2の実施形態に係る情報処理システム2では、更新前のA面アプリケーション21でサービスを提供しながら、更新済みのB面アプリケーション22の正常性確認が実施できる。なお、第2の実施形態の説明においては、2つのアプリケーションを動作させる例について説明したが、第1の実施形態の変形例と同様に複数のアプリケーションを動作させる場合についても第2の実施形態に係る手法を適用可能である。
 以上の本発明の第2の実施形態に係る方法を用いた任意の情報処理方法は、本発明の範囲に含まれる。また、本発明の情報処理方法に関する処理をコンピュータに実行させるプログラム、そのプログラムを格納したプログラム記録媒体も本発明の範囲に含まれる。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2013年7月3日に出願された日本出願特願2013-139779を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1、2  情報処理システム
 10、20  サーバ
 11、21  A面アプリケーション
 12、22  B面アプリケーション
 13、14、23、24  待ち受けポート
 15、25、27  待ち受けポート
 16、26  面管理API
 30  アプリケーション更新サーバ
 40  操作端末
 50  正常性確認サーバ

Claims (10)

  1.  クライアントのリクエストに対して同一のサービスを提供する複数のアプリケーションを含み、
     前記アプリケーションの更新ファイルを受信した際に、前記複数のアプリケーションのうち前記サービスを提供していない少なくとも1つのアプリケーションに前記更新ファイルを適用し、前記更新ファイルを適用した前記アプリケーションが前記サービスを提供するようにアプリケーションを切り替える管理手段を備えることを特徴とする情報処理サーバ。
  2.  第1の動作領域で動作する第1のアプリケーションと、
     前記第1の動作領域とは異なる第2の動作領域で動作する第2のアプリケーションと、
     前記第1及び第2のアプリケーションのそれぞれに前記リクエストを受け渡す第1及び第2のポートと、
     前記リクエストを受信してポート変換し、前記第1及び第2のポートに前記リクエストを振り分ける第1のインターフェースと、を含み、
     前記管理手段は、
     前記第1のインターフェースに対して前記リクエストを前記第1及び第2のポートのいずれに振り分けるかを切り替える指示を出し、前記第1及び第2のアプリケーションの起動及び停止を制御するとともに、
     前記第1のアプリケーションが起動中に前記アプリケーションの更新ファイルを取得した場合、待機中の前記第2のアプリケーションに前記更新ファイルを適用した後に、前記第1のアプリケーションから前記第2のアプリケーションに前記サービスを提供するアプリケーションを切り替えることを特徴とする請求項1に記載の情報処理サーバ。
  3.  前記管理手段は、
     前記更新ファイルを適用する前に、前記更新ファイルを適用する前記アプリケーションのバックアップを取ることを特徴とする請求項1又は2に記載の情報処理サーバ。
  4.  前記管理手段は、
     前記第2のアプリケーションを更新した後に、待機中の前記第2のアプリケーションを起動し、前記第1のアプリケーションの残コネクションがゼロになった段階で、前記第1のアプリケーションから前記第2のアプリケーションに前記サービスを提供するアプリケーションを切り替えることを特徴とする請求項2又は3に記載の情報処理サーバ。
  5.  前記管理手段は、
     前記アプリケーションのいずれかが起動中に前記更新ファイルを取得した場合、
     待機中のいずれかの前記アプリケーションの更新を実行した後に、前記更新ファイルを適用した前記アプリケーションのいずれかを起動し、
     前記更新ファイルを適用した前記アプリケーションが前記サービスを提供するようにアプリケーションを切り替えることを特徴とする請求項1乃至4のいずれか一項に記載の情報処理サーバ。
  6.  クライアントのリクエストに対して同一のサービスを提供する複数のアプリケーションを含み、前記アプリケーションの更新ファイルを受信した際に、前記複数のアプリケーションのうち前記サービスを提供していない少なくとも1つのアプリケーションに前記更新ファイルを適用し、前記更新ファイルを適用した前記アプリケーションが前記サービスを提供するようにアプリケーションを切り替える管理手段を備えることを特徴とする情報処理サーバと、
     前記管理手段を介して前記アプリケーションが動作する動作領域を確認し、登録された更新スケジュール及び更新シナリオに従って、前記アプリケーションの更新ファイルを前記管理手段に送信するアプリケーション更新サーバと、を備えることを特徴とする情報処理システム。
  7.  前記更新ファイル、前記更新スケジュール及び前記更新シナリオを前記アプリケーション更新サーバに登録する操作端末を備えることを特徴とする請求項6に記載の情報処理システム。
  8.  さらに、前記更新ファイルを適用した前記アプリケーションに対して正常性確認のスクリプトを実行する正常性確認サーバを備え、
     前記情報処理サーバは、正常性確認を実施する際のリクエストを受信する第2のインターフェースを含み、
     前記正常性確認サーバは、
     前記アプリケーション更新サーバからのリクエストに応じて、前記第2のインターフェースを介して、前記更新ファイルを適用した前記アプリケーションの正常性確認のスクリプトを実行することを特徴とする請求項6又は7に記載の情報処理システム。
  9.  クライアントのリクエストに対して同一のサービスを提供する複数のアプリケーションを更新する情報処理方法であって、
     前記アプリケーションの更新ファイルを受信した際に、
     前記複数のアプリケーションのうち前記サービスを提供していない少なくとも1つのアプリケーションに前記更新ファイルを適用し、
     前記更新ファイルを適用した前記アプリケーションが前記サービスを提供するようにアプリケーションを切り替えることを特徴とする情報処理方法。
  10.  クライアントのリクエストに対して同一のサービスを提供する複数のアプリケーションを更新する情報処理プログラムを記録するプログラム記録媒体であって、
     前記アプリケーションの更新ファイルを受信した際に、
     前記複数のアプリケーションのうち前記サービスを提供していない少なくとも1つのアプリケーションに前記更新ファイルを適用する処理と、
     前記更新ファイルを適用した前記アプリケーションに前記サービスを提供するアプリケーションを切り替える処理と、をコンピュータに実行させることを特徴とする情報処理プログラムを記録するプログラム記録媒体。
PCT/JP2014/003497 2013-07-03 2014-07-01 情報処理サーバ、情報処理システム、情報処理方法及びプログラム記録媒体 WO2015001798A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013139779 2013-07-03
JP2013-139779 2013-07-03

Publications (1)

Publication Number Publication Date
WO2015001798A1 true WO2015001798A1 (ja) 2015-01-08

Family

ID=52143398

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/003497 WO2015001798A1 (ja) 2013-07-03 2014-07-01 情報処理サーバ、情報処理システム、情報処理方法及びプログラム記録媒体

Country Status (2)

Country Link
TW (1) TW201519099A (ja)
WO (1) WO2015001798A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017150242A1 (ja) * 2016-03-01 2017-09-08 ヤンマー株式会社 端末装置およびソフトウェア書き換えプログラム
JP2022156799A (ja) * 2021-03-31 2022-10-14 ソフトマックス株式会社 情報処理装置、情報処理方法及びそのプログラム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535450A (ja) * 1991-08-01 1993-02-12 Nec Corp アプリケーシヨンプログラム差替方式
JPH0887410A (ja) * 1994-09-19 1996-04-02 Hitachi Ltd プログラム更新/回復方法
JP2000155674A (ja) * 1998-11-19 2000-06-06 Nec Corp プログラム入替装置及びその入替方法
US6622159B1 (en) * 1999-06-30 2003-09-16 International Business Machines Corporation Method, apparatus and computer program product for automatically restarting an RPC server without losing client RPC calls
JP2005267312A (ja) * 2004-03-19 2005-09-29 Hitachi Ltd アプリケーション入れ替え方法およびそのプログラム
JP2007304845A (ja) * 2006-05-11 2007-11-22 Nec Corp 仮想計算機システムおよびソフトウェア更新方法
JP2009265894A (ja) * 2008-04-24 2009-11-12 Ntt Docomo Inc ノード装置及びプログラム並びに方法
JP2010170285A (ja) * 2009-01-22 2010-08-05 Fujitsu Ltd サービス提供ノード、サービス提供用プログラム、およびソフトウェア更新方法
JP2011221912A (ja) * 2010-04-13 2011-11-04 Nec Corp 計算機システム、及び計算機システム管理方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535450A (ja) * 1991-08-01 1993-02-12 Nec Corp アプリケーシヨンプログラム差替方式
JPH0887410A (ja) * 1994-09-19 1996-04-02 Hitachi Ltd プログラム更新/回復方法
JP2000155674A (ja) * 1998-11-19 2000-06-06 Nec Corp プログラム入替装置及びその入替方法
US6622159B1 (en) * 1999-06-30 2003-09-16 International Business Machines Corporation Method, apparatus and computer program product for automatically restarting an RPC server without losing client RPC calls
JP2005267312A (ja) * 2004-03-19 2005-09-29 Hitachi Ltd アプリケーション入れ替え方法およびそのプログラム
JP2007304845A (ja) * 2006-05-11 2007-11-22 Nec Corp 仮想計算機システムおよびソフトウェア更新方法
JP2009265894A (ja) * 2008-04-24 2009-11-12 Ntt Docomo Inc ノード装置及びプログラム並びに方法
JP2010170285A (ja) * 2009-01-22 2010-08-05 Fujitsu Ltd サービス提供ノード、サービス提供用プログラム、およびソフトウェア更新方法
JP2011221912A (ja) * 2010-04-13 2011-11-04 Nec Corp 計算機システム、及び計算機システム管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017150242A1 (ja) * 2016-03-01 2017-09-08 ヤンマー株式会社 端末装置およびソフトウェア書き換えプログラム
JP2022156799A (ja) * 2021-03-31 2022-10-14 ソフトマックス株式会社 情報処理装置、情報処理方法及びそのプログラム

Also Published As

Publication number Publication date
TW201519099A (zh) 2015-05-16

Similar Documents

Publication Publication Date Title
US8719386B2 (en) System and method for providing configuration synchronicity
US20130007506A1 (en) Managing recovery virtual machines in clustered environment
JP6820342B2 (ja) 環境隔離の方法及び装置
US20070174715A1 (en) Remote debugging
EP3210367B1 (en) System and method for disaster recovery of cloud applications
US11748163B2 (en) Control token and hierarchical dynamic control
JP2003022258A (ja) サーバーのバックアップシステム
JP7461471B2 (ja) クロス・クラウド・オペレーションのためのクラウド・サービス
US10110434B2 (en) Cloud orchestrated cloud connector upgrades
WO2016045439A1 (zh) 一种vnfm容灾保护的方法、装置和nfvo、存储介质
EP3737039B1 (en) Method for transmitting request message and apparatus
WO2014171130A1 (ja) 情報処理システム、配備方法、処理装置、及び、配備装置
KR102114339B1 (ko) 액티브/스탠바이 모델을 지원하는 쿠버네티스 시스템의 동작 방법
JP2006252437A (ja) パッチ適用方式及びパッチ適用方法
WO2015001798A1 (ja) 情報処理サーバ、情報処理システム、情報処理方法及びプログラム記録媒体
US9935867B2 (en) Diagnostic service for devices that employ a device agent
US9882779B2 (en) Software version maintenance in a software defined network
CN106161086A (zh) 主控板重启的控制方法及装置
US20170153885A1 (en) Zero-downtime cloud connector upgrades
JP2008181298A (ja) 作業状態復帰プログラム、作業状態復帰方法および作業状態復帰装置
US20230146880A1 (en) Management system and management method
US20170017520A1 (en) System and control method
JP2007141129A (ja) システム切替方法、その計算機システム及びプログラム
WO2019216210A1 (ja) サービス継続システムおよびサービス継続方法
WO2019171704A1 (ja) 管理サーバ、クラスタシステム、クラスタシステムの制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14819678

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14819678

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP