JP7013978B2 - 情報処理システム、情報処理方法および情報処理プログラム - Google Patents

情報処理システム、情報処理方法および情報処理プログラム Download PDF

Info

Publication number
JP7013978B2
JP7013978B2 JP2018051599A JP2018051599A JP7013978B2 JP 7013978 B2 JP7013978 B2 JP 7013978B2 JP 2018051599 A JP2018051599 A JP 2018051599A JP 2018051599 A JP2018051599 A JP 2018051599A JP 7013978 B2 JP7013978 B2 JP 7013978B2
Authority
JP
Japan
Prior art keywords
application
servers
server
version
information processing
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2018051599A
Other languages
English (en)
Other versions
JP2019164531A (ja
Inventor
誠英 堀内
聡樹 山西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2018051599A priority Critical patent/JP7013978B2/ja
Publication of JP2019164531A publication Critical patent/JP2019164531A/ja
Application granted granted Critical
Publication of JP7013978B2 publication Critical patent/JP7013978B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、情報処理システム、情報処理方法および情報処理プログラムに関する。
従来から、休止すること無く連続してサービスを提供可能に構成されたシステムが知られている。このようなシステムにおける、ユーザが利用するアプリケーションプログラムの更新などの処理は、稼働中のサービスを停止すること無く実行されることが望ましい。例えば、単一のサーバに対してアプリケーションプログラムをデプロイする仕組みとして、アプリケーションプログラムを1つのファイルのパッケージングし、そのファイルをコピーしてインストールする方法が従来から知られている。
また、特許文献1には、単一のサーバにアプリケーションプログラムをデプロイする場合において、外部からの指示に応じて、セッションの切れ目でアプリケーションプログラムを差し替えるようにした構成が開示されている。
ところで、上述のサービスを連続して提供可能なシステムにおいて、サーバの負荷を分散させるために、同一のアプリケーションプログラムが搭載されたサーバを複数、稼働させるようにした構成が知られている。この複数サーバを稼働させるシステムにおいて、1度に複数のサーバにおいてアプリケーションプログラムの更新を実行した場合、システムが不安定な状態に陥るおそれがあるという問題点があった。
例えば、システムを利用するユーザは、バージョンアップ前後のアプリケーションプログラムの機能を混在して利用可能である。この場合、システムから見ると、バージョンアップ前後のアプリケーションプログラムが混在して実行されることにより不整合データが発生する可能性があり、これにより、その後のシステム処理が正常に実行されなくなる事態が発生し得る。
本発明は、上記に鑑みてなされたものであって、複数サーバのアプリケーションプログラムを更新する場合のシステムの安定性を向上させることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、複数のサーバと、制御装置とを含む情報処理システムであって、複数のサーバは、それぞれに搭載される所定プログラムの更新を要求に応じて実行する更新実行部をそれぞれ備え、制御装置は、実行時間を指定して複数のサーバに対して要求を行う要求部と、複数のサーバそれぞれの所定プログラムのバージョンを確認し、複数のサーバそれぞれについて、バージョンが更新後のバージョンであるか否かを判定する判定部と、複数のサーバのうち判定部により所定プログラムのバージョンが更新後のバージョンではないと判定されたサーバに対して、所定プログラムの起動を停止させるサーバ制御部と、を備える。
本発明によれば、複数サーバのアプリケーションプログラムを更新する場合のシステムの安定性を向上させることが可能となるという効果を奏する。
図1は、第1の実施形態に適用可能な情報処理システムの一例の構成を示すブロック図である。 図2は、第1実施形態に適用可能な管理サーバの一例の構成を示すブロック図である。 図3は、第1の実施形態に適用可能な各仮想サーバの一例の構成を示すブロック図である。 図4は、第1の実施形態に係る管理サーバの機能を説明するための一例の機能ブロック図である。 図5は、第1の実施形態に係る仮想サーバの機能を説明するための一例の機能ブロック図である。 図6は、第1の実施形態に適用可能な、アプリケーションの更新および更新のトリガの例を示す図である。 図7は、第1の実施形態に係るアプリケーションの更新処理を説明するための図である。 図8は、既存の技術に係る、各仮想サーバにおいて、更新後サービスと更新前サービスとが混在することを説明するための図である。 図9は、第1の実施形態に係る、各仮想サーバにおいて、更新後サービスと更新前サービスとが混在しないことを説明するための図である。 図10は、第1の実施形態に係るサーバ装置におけるアプリケーションの更新処理を示す一例のシーケンス図である。 図11は、第1の実施形態に係る、各仮想サーバにおけるアプリケーションの入替え処理を示す一例のフローチャートである。 図12は、第1の実施形態に係る、デプロイ指示後にスケールアウトが実行された場合の処理を示す一例のシーケンス図である。 図13は、第2の実施形態に係る画像検索システムの一例の構成を示すブロック図である。
[第1の実施形態]
以下に添付図面を参照して、情報処理システム、情報処理方法および情報処理プログラムの実施形態を詳細に説明する。図1は、第1の実施形態に適用可能な情報処理システムの一例の構成を示すブロック図である。図1において、情報処理システム1は、例えばインターネットであるネットワーク2に接続されるサーバ装置10を含み、サーバ装置10において提供されるサービスは、端末装置30、30、…からネットワーク2を介して利用できる。
サーバ装置10は、ロードバランサ100と、複数の仮想サーバと、操作端末130と、を含む。複数の仮想サーバは、所定のアプリケーションプログラムによるサービスを提供する仮想サーバ1201、1202、…、120Nと、これら仮想サーバ1201、1202、…、120Nの管理を行う管理サーバ110と、を含む。これら管理サーバ110、および、各仮想サーバ1201、1202、…、120Nは、それぞれCPU(Central Processing Unit)、RAM(Random Access Memory)、ストレージを含むハードウェアとして構成される。管理サーバ110は、各仮想サーバ1201、1202、…、120Nの動作を制御する制御装置と見做すことができる。
これらのうち、各仮想サーバ1201、1202、…、120Nは、共通のアプリケーションプログラム(以下、アプリケーション)が搭載され、それぞれ当該アプリケーションによるサービスを提供する。以下では、仮想サーバ1201、1202、…、120Nにより提供されるサービスを、適宜、サービス#1、#2、…、#Nと呼ぶ。
操作端末130は、CPU、RAM、ストレージ、データ入出力を行うためのデータI/F、などを含み、一般的なコンピュータと同等の構成にて実現できる。また、操作端末130は、ユーザ入力を受け付ける入力デバイスと、情報を表示するための表示デバイスと、を接続することができる。操作端末130は、入力デバイスに対するユーザ入力に応じて管理サーバ110に指示を出し、管理サーバ110から出力された情報に基づき、表示デバイスに対し、例えばサーバ装置10の状態に関する情報を表示させる。また、操作端末130は、外部から入力されたデータ、ストレージに記憶されるデータを、管理サーバ110に対して出力することができる。
ここで、各端末装置30、30、…は、各仮想サーバ1201、1202、…、120Nに共通に搭載されるアプリケーションに対応するクライアントアプリケーションが搭載される。ロードバランサ100は、各端末装置30、30、…からサーバ装置10に送信された、当該クライアントアプリケーションによるリクエストを、各仮想サーバ1201、1202、…、120Nに振り分ける。このとき、例えばある端末装置30から送信されたリクエストが、ロードバランサ100により、各仮想サーバ1201、1202、…、120Nのうちどの仮想サービスに振り分けられるかは、不定である。
なお、図1の例では、ロードバランサ100が独立したハードウェアとして示されているが、これはこの例に限定されず、例えば管理サーバ110がロードバランサ100の機能を含んでいてもよい。
サーバ装置10は、外部から各仮想サーバ1201、1202、…、120Nの負荷を監視される。管理サーバ110は、各仮想サーバ1201、1202、…、120Nの負荷に応じて、各仮想サーバ1201、1202、…、120Nの数を変更することができる。例えば、サーバ装置10は、(N+1)台以上の仮想サーバを備え、図1の例では、この(N+1)台以上の仮想サーバのうち、仮想サーバ1201、1202、…、120NのN台の仮想サーバが起動されている。
なお、起動される仮想サーバ1201、1202、…、120Nの数を増加させることをスケールアウト、減少させることをスケールインと呼ぶ。
第1の実施形態では、このような情報処理システム1において、仮想サーバ1201、1202、…、120Nに共通に搭載されるアプリケーションを更新(バージョンアップ)する際の処理を制御し、各端末装置30、30、…から見て、仮想サーバ1201、1202、…、120Nにバージョンの異なるアプリケーションが混在しないようにする。
より具体的には、管理サーバ110は、仮想サーバ1201、1202、…、120Nに対して、処理を実行する時間を指定して、同時にデプロイ要求を行う。この要求に応じて、各仮想サーバ1201、1202、…、120Nは、能動的にデプロイ処理を実行する。このデプロイ処理は、例えば、更新前のアプリケーション(旧アプリケーション)を更新後のアプリケーション(新アプリケーション)に入れ替えるための一連の処理を含む。このとき、各仮想サーバ1201、1202、…、120Nにおいて並列的に、この新旧アプリケーションの入れ替えが実行される。
管理サーバ110は、この新旧アプリケーションの入れ替えに伴い、各仮想サーバ1201、1202、…、120Nに対して当該アプリケーションのバージョンの確認を行い、各仮想サーバ1201、1202、…、120Nのうち、当該アプリケーションのバージョンが更新前のバージョンとなっている仮想サーバに対して、当該アプリケーションの起動停止を行う。
このように、第1の実施形態に係る情報処理システム1では、各仮想サーバ1201、1202、…、120Nのうち、搭載されるアプリケーションのバージョンが一致しない(更新されていない)仮想サーバにおける当該アプリケーションの起動を停止している。そのため、複数サーバにアプリケーションをデプロイする場合のシステムの安定性を向上させることができる。
[第1の実施形態のより具体的な構成]
図2は、第1実施形態に適用可能な管理サーバ110の一例の構成を示すブロック図である。図2において、管理サーバ110は、それぞれバス1106に接続される、CPU1100と、ROM(Read Only Memory)1101と、RAM1102と、ストレージ1103と、通信インタフェース(I/F)1104と、データI/F1105と、を含む。
ストレージ1103は、不揮発にデータを記憶する記憶媒体であって、ハードディスクドライブや、フラッシュメモリを適用できる。CPU1100は、ストレージ1103やROM1101に記憶されるプログラムに従い、RAM1102をワークメモリとして用いて、この管理サーバ110の全体の動作を制御する。
通信I/F1104は、CPU1100の制御により、各仮想サーバ1201、1202、…、120Nとの通信を実行する。通信I/F1104は、さらに、CPU1100の制御により、ネットワーク2を介した通信も実行する。データI/F1105は、外部の機器とデータの入出力を行う。管理サーバ110は、例えばこのデータI/F1105を介して操作端末130と接続される。
図3は、第1の実施形態に適用可能な各仮想サーバ1201、1202、…、120Nの一例の構成を示すブロック図である。各仮想サーバ1201、1202、…、120Nは、共通の構成にて実現可能であるので、ここでは、仮想サーバ1201の構成を、各仮想サーバ1201、1202、…、120Nを代表させて示している。また、以下では、仮想サーバ1201、1202、…、120Nを区別する必要が無い場合には、仮想サーバ1201、1202、…、120Nを仮想サーバ1201で代表させて説明を行う。
図3に示されるように、仮想サーバ1201は、それぞれバス1205に接続される、CPU1200と、ROM1201と、RAM1202と、ストレージ1203と、通信I/F1204と、を含み、管理サーバ110と略同様の構成を備える。
ストレージ1203は、不揮発にデータを記憶する記憶媒体であって、ハードディスクドライブや、フラッシュメモリを適用できる。CPU1200は、ストレージ1203やROM1201に記憶されるプログラムに従い、RAM1202をワークメモリとして用いて、この仮想サーバ1201の全体の動作を制御する。通信I/F1204は、CPU1200の制御に従い、ネットワーク2を介した通信を実行する。なお、仮想サーバ1201は、例えば図2のデータI/F1105を加えて、管理サーバ110と同様の構成としてもよい。
図4は、第1の実施形態に係る管理サーバ110の機能を説明するための一例の機能ブロック図である。図4において、管理サーバ110は、制御部111と、通信部112と、データ入力部113と、データ記憶部114と、通知部115と、を含む。
これら制御部111、通信部112、データ入力部113、データ記憶部114および通知部115は、CPU1100上で動作する情報処理プログラムが実行されることで実現される。これに限らず、これら制御部111、通信部112、データ入力部113、データ記憶部114および通知部115の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
通信部112は、各仮想サーバ1201、1202、…、120Nとの通信を制御する。また、通信部112は、ネットワーク2を介した通信の制御も行う。データ入力部113は、例えば操作端末130から出力されたデータを取得する。データ記憶部114は、データ入力部113により取得されたデータを、例えばストレージ1103に格納する。通知部115は、各仮想サーバ1201、1202、…、120N上で稼働されるサービスから、対象となるサービスを検出する。
制御部111は、要求部1110と、判定部1111と、サーバ制御部1112と、を含む。要求部1110は、各仮想サーバ1201、1202、…、120Nに対して、共通して搭載されるアプリケーションの更新処理を、実行時間を指定して要求する。判定部1111は、各仮想サーバ1201、1202、…、120Nに共通して搭載されるアプリケーションに対して、バージョンに基づく判定処理を行う。サーバ制御部1112は、判定部1111の判定結果に基づき、各仮想サーバ1201、1202、…、120Nにおける当該アプリケーションの起動を制御する。
第1の実施形態に係る処理を実行するための情報処理プログラムは、インストール可能な形式または実行可能な形式のファイルでCD(Compact Disk)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、第1の実施形態に係る処理を実行するための情報処理プログラムを、インターネット(例えばネットワーク2)などの通信ネットワークに接続されたコンピュータ上に格納し、通信ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1の実施形態に係る処理を実行するための情報処理プログラムを、インターネットなどの通信ネットワーク経由で提供または配布するように構成してもよい。
第1の実施形態に係る処理を実行するための情報処理プログラムは、例えば、上述した各部(制御部111、通信部112、データ入力部113、データ記憶部114および通知部115)を含むモジュール構成となっており、実際のハードウェアとしてはCPU1100が例えばストレージから当該情報処理プログラムを読み出して実行することにより上記各部が主記憶装置(例えばRAM1102)上にロードされ、各部が主記憶装置上に生成されるようになっている。
図5は、第1の実施形態に係る仮想サーバ1201の機能を説明するための一例の機能ブロック図である。図5において、仮想サーバ1201は、更新実行部121と、通信部122と、サービス実行部123と、を含む。
これら更新実行部121、通信部122およびサービス実行部123は、CPU1200上でプログラムが動作することで実現される。これに限らず、更新実行部121、通信部122およびサービス実行部123の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
通信部122は、ネットワーク2を介した通信を制御する。また、通信部122は、管理サーバ110との通信の制御も行う。サービス実行部123は、所定のアプリケーションを実行することで、当該アプリケーションに対応するクライアントアプリケーションを搭載する各端末装置30、30、…に、当該アプリケーションによりサービスを提供する。
この例では、サービス実行部123は、各仮想サーバ1201、1202、…、120Nに共通して搭載されるアプリケーションによるサービスを、各端末装置30、30、…に提供するものとする。また、特に記載の無い限り、以下では、「アプリケーション」は、この各仮想サーバ1201、1202、…、120Nに共通して搭載されるアプリケーションを指すものとする。
更新実行部121は、取込制御部1210と、入替制御部1211と、を含み、仮想サーバ1201に搭載されるアプリケーションの更新(バージョンアップ)を実行する。更新実行部121において、取込制御部1210は、データ記憶部114から、アプリケーションに関するデータを取り込んで管理する。取込制御部1210は、例えば当該アプリケーションのソースコードをデータ記憶部114から取り込んで、当該仮想サーバ1201のストレージ1203に格納する。また、取込制御部1210は、入替制御部1211に対して、アプリケーションの更新を行う時間を指定する。入替制御部1211は、取込制御部1210に指定された時間に従ったタイミングで、取込制御部1210が管理しているアプリケーションの更新を行う。
[第1の実施形態に係る処理の詳細]
次に、第1の実施形態に係る、アプリケーションの更新処理について、より詳細に説明する。図6は、第1の実施形態に適用可能な、アプリケーションの更新および更新のトリガの例を示す図である。図6において、非公開リポジトリ300および公開リポジトリ301は、管理サーバ110に対して設定される。
なお、リポジトリは、プロジェクトに関連する一連のデータ(ソースコード、ドキュメント、各種のデータファイルなど)を一元的に管理する格納場所を指す。例えば、管理サーバ110において、管理サーバ110が備えるストレージ1103の所定記憶領域に、リポジトリを設定することができる。
また、上述したように、各仮想サーバ1201、1202、…、120Nは、共通のアプリケーションによるサービス(サービス#1、#2、…、#N)をそれぞれ提供する。ここで、非公開アプリケーション310は、例えば当該サービスの提供元や開発元が試験的に実行するためのアプリケーションである。これに対して、公開アプリケーション311は、これらサービスの提供先である一般ユーザが実行可能とされたアプリケーションである。
非公開リポジトリ300は、非公開アプリケーション310に関する一連のデータが格納され、非公開アプリケーション310は、非公開リポジトリ300の内容に基づき形成される。同様に、公開リポジトリ301は、公開アプリケーション311に関する一連のデータが格納され、公開アプリケーション311は、公開リポジトリ301の内容に基づき形成される。
例えばサービスの提供者により、操作端末130から管理サーバ110に対して、非公開アプリケーション310を公開アプリケーション311に切り換える切り換え処理を実行するよう、指示される。管理サーバ110は、各仮想サーバ1201、1202、…、120Nに対して、非公開リポジトリ300の内容を取得するよう指示すると共に、当該切り換え処理を実行する時間を通知する。各仮想サーバ1201、1202、…、120N は、指示に応じて非公開リポジトリ300を取得し、取得した非公開リポジトリ300の内容に基づき非公開アプリケーション310を形成し起動させる。
指定された時間になったことをトリガとして、管理サーバ110は、非公開リポジトリ300の内容を公開リポジトリ301に反映し、各仮想サーバ1201、1202、…、120Nは、非公開アプリケーション310を公開アプリケーション311に切り換える。公開アプリケーション311は、切り換え処理前の公開アプリケーション311が非公開アプリケーション310で置き換えられたものとなる。これにより、公開アプリケーション311のバージョンアップが行われる。
図7は、第1の実施形態に係るアプリケーションの更新処理を説明するための図である。より具体的には、図7は、第1の実施形態に係る、リポジトリからアプリケーションファイルへの変換と、非公開状態のリポジトリおよびアプリケーションの、公開状態のリポジトリおよびアプリケーションへの非公開状態から公開状態への反映と、を模式的に示している。図7に示されるように、非公開アプリケーション310は、デプロイ時に、非公開リポジトリ300から当該非公開アプリケーション310のアプリケーションファイルに変換されることで形成される。一方、公開アプリケーション311は、当該公開アプリケーション311の起動時に、公開リポジトリ301から当該公開アプリケーション311のアプリケーションファイルに変換されることで形成される。
また、非公開リポジトリ300および公開リポジトリ301、ならびに、非公開アプリケーション310および公開アプリケーション311は、それぞれ、リンク変数により管理される。図7の例では、非公開リポジトリ300が非公開リポジトリリンク変数302により管理され、公開リポジトリ301が公開リポジトリリンク変数303により管理される。同様に、非公開アプリケーション310が非公開アプリケーションリンク変数312により管理され、公開アプリケーション311が公開アプリケーションリンク変数313により管理される。
非公開リポジトリ300の内容の公開リポジトリ301への反映は、公開リポジトリリンク変数303の値を非公開リポジトリ300を示す値に書き換えることで実行される。同様に、非公開アプリケーション310の公開アプリケーション311への反映は、公開アプリケーションリンク変数313の値を非公開アプリケーション310を示す値に書き換えることで実行される。
図8は、既存の技術に係る、各仮想サーバ1201、1202、…、120Nにおいて、更新されたアプリケーションによる各サービス(更新後サービスと呼ぶ)と、更新前のアプリケーションによる各サービス(更新前サービスと呼ぶ)とが混在することを説明するための図である。図8において、左から右方向に時間が経過する様子が示されている。
期間t1は、各仮想サーバ1201、1202、…、120Nにおいて、アプリケーションの更新が行われていない期間を示す。この期間t1では、各仮想サーバ1201、1202、…、120Nは、何れも更新前サービス40を提供する。端末装置30は、クライアントアプリケーション取得要求(ステップS20a)により更新前サービス40によるクライアントアプリケーション(更新前クライアントアプリケーションと呼ぶ)を取得する。この更新前クライアントアプリケーションは、データ更新要求により更新前サービス40によるデータを取得する(ステップS21a)ことになり、更新前クライアントアプリケーションと取得データとの間には不整合は生じない。
期間t2は、各仮想サーバ1201、1202、…、120Nにおいてアプリケーションの更新が実行されている期間を示す。各仮想サーバ1201、1202、…、120Nは、管理サーバ110から非公開リポジトリ300を取得し、この非公開リポジトリ300に基づき形成した非公開アプリケーション310に対する非公開アプリケーションリンク変数312を公開アプリケーションリンク変数313に書き換えることで、アプリケーションの更新を行う。
このとき、各仮想サーバ1201、1202、…、120Nにおいて、例えば管理サーバ110から非公開リポジトリ300を取得するために要する時間が異なる場合、期間t2において、更新前サービス40と、更新後サービス41とが混在する場合が発生し得る。この場合、端末装置30は、クライアントアプリケーション取得要求(ステップS20b)により、更新前サービス40による更新前クライアントアプリケーションと、更新後サービス41による更新後クライアントアプリケーションの何れかを取得することになる。また、端末装置30は、取得した更新前クライアントアプリケーションまたは更新後クライアントアプリケーションにより、更新前サービス40および更新後サービス41の何れかによるデータを取得する(ステップS21b)ことになる。
この場合、表1に示されるように、端末装置30において更新後クライアントアプリケーションにより、更新前サービス40によるデータを取得した場合に、不整合が発生する。一方、端末装置30において更新後クライアントアプリケーションにより更新後サービス41によるデータを取得した場合、および、更新前クライアントアプリケーションにより更新前サービス40によるデータを取得した場合は、不整合は、発生しない。また、この例では、端末装置30において更新前クライアントアプリケーションにより更新後サービス41によるデータを取得した場合にも、不整合が発生しないとされている。
Figure 0007013978000001
期間t3は、各仮想サーバ1201、1202、…、120Nにおいて、アプリケーションの更新が完了した後の期間を示す。この期間t3では、各仮想サーバ1201、1202、…、120Nは、何れも更新後サービス41を提供する。端末装置30は、クライアントアプリケーション取得要求(ステップS20c)により更新後サービス41による更新後クライアントアプリケーションを取得する。この更新後クライアントアプリケーションは、データ更新要求により更新後サービス41によるデータを取得する(ステップS21c)ことになり、更新後クライアントアプリケーションと取得データとの間には不整合は生じない。
図9は、第1の実施形態に係る、各仮想サーバ1201、1202、…、120Nにおいて、更新後サービスと、更新前サービスとが混在しないことを説明するための図である。図9において、図8と同様に、左から右方向に時間が経過する様子が示されている。
期間t1は、各仮想サーバ1201、1202、…、120Nにおいて、アプリケーションの更新が行われていない期間を示す。この期間t1は、図8の期間t1と同様であるので、ここでの詳細な説明を省略する。
第1の実施形態では、図9の時間tchangeにおいて、各仮想サーバ1201、1202、…、120Nにおいて一斉に、非公開アプリケーションリンク変数312の公開アプリケーションリンク変数313への書き換えを実行する。これにより、図8において期間t2で示したような、更新前サービス40と、更新後サービス41とが混在する期間が発生しない。したがって、更新前サービス40と、更新後サービス41とが混在することによる取得データの不整合は、発生しない。
期間t3は、各仮想サーバ1201、1202、…、120Nにおいて、アプリケーションの更新が完了した後の期間を示す。この期間t3は、図8の期間t3と同様であるので、ここでの詳細な説明を省略する。
図10は、第1の実施形態に係るサーバ装置10におけるアプリケーションの更新処理を示す一例のシーケンス図である。なお、図10において、上述した図1と共通する部分には同一の符号を付して、詳細な説明を省略する。
例えばサービスの提供者により操作端末130が操作され、アプリケーションに関するデプロイが指示される(ステップS100)。このデプロイ指示は、例えば、非公開アプリケーション310を公開アプリケーション311へと入れ替えることで公開アプリケーション311のバージョンアップを行う処理に関するデプロイを指示する。サービス提供者は、例えば、非公開アプリケーション310を形成するための、バージョン管理された一連のデータを操作端末130に対して入力し、デプロイを指示する。また、サービス提供者は、バージョンアップを実行する時間を操作端末130に入力して時間指定を行うと共に、バージョン情報を操作端末130に入力する。
以下では、特に記載の無い限り、「非公開アプリケーション310を形成するための、バージョン管理された一連のデータ」を、「非公開アプリケーション310に係る一連のデータ」と呼ぶ。
操作端末130は、管理サーバ110に対して、サービスの提供者により入力された、非公開アプリケーション310に係る一連のデータを送り、非公開リポジトリ300の登録を要求する(ステップS101)。この要求は、データ入力部113に受け取られる。データ入力部113は、この要求に応じて、操作端末130から受け取った、非公開アプリケーション310に係る一連のデータをデータ記憶部114に渡す(ステップS102)。
データ記憶部114は、受け取った非公開アプリケーション310に係る一連のデータを非公開リポジトリ300として例えばストレージ1103に格納し、非公開リポジトリ300の登録を行う。データ記憶部114は、非公開リポジトリ300の登録を行った旨をデータ入力部113を介して操作端末130に通知する(ステップS103、ステップS104)。
操作端末130は、非公開リポジトリ300が登録された旨が管理サーバ110から通知されると、管理サーバ110に対して、ステップS100で入力された時間指定およびバージョン情報を送り、非公開アプリケーション310のデプロイを指示する(ステップS105)。この指示は、管理サーバ110において制御部111に受け取られる。制御部111は、受け取った指示に応じて、各仮想サーバ1201、1202、…、120Nに対して、非公開リポジトリ300から非公開アプリケーション310に係る一連のデータを取得するよう、指示する(ステップS106)。
管理サーバ110から送信された取得指示は、各仮想サーバ1201、1202、…、120Nに受信され、各仮想サーバ1201、1202、…、120Nの取込制御部1210に渡される。以下、各仮想サーバ1201、1202、…、120Nを区別する必要が無い場合には、仮想サーバ1201、1202、…、120Nを仮想サーバ1201により代表させて説明を行う。
各仮想サーバ1201、1202、…、120Nにおいて、取込制御部1210は、管理サーバ110から受信した取得指示に従い、データ記憶部114から、非公開リポジトリ300に格納される、非公開アプリケーション310に係る一連のデータを取得する(ステップS107、ステップS108)。各仮想サーバ1201、1202、…、120Nの取込制御部1210は、取得した当該データを、例えばストレージ1203に格納し、当該データに基づき非公開アプリケーション310を形成し起動させる(ステップS109)。
ここで、当該データは、一般的にはデータ量が大きいデータとなる。したがって、各仮想サーバ1201、1202、…、120Nにおいて、取込制御部1210による当該データに係る処理が失敗するおそれがある。例えば、データの取得開始から所定の時間が経過してもデータの取得が完了しない場合に、当該処理が失敗したと判定できる。また、当該データに基づく非公開アプリケーション310の形成および起動が所定時間経過しても完了しない場合も、当該処理に失敗したと判定できる。
各取込制御部1210は、当該データの取得など、当該データに係る処理に成功した場合、公開アプリケーションリンク変数313の値に、バージョンアップした新アプリケーション、すなわち、非公開アプリケーション310を示す値をセットする。一方、各取込制御部1210は、当該データに係る処理に失敗したと判定した場合、公開アプリケーションリンク変数313の値に、非公開アプリケーション310を示す値をセットすることができない。この場合、当該データに係る処理に失敗した取込制御部1210は、同じ仮想サーバに含まれる入替制御部1211に対して警告を通知する。
制御部111は、また、操作端末130から受け取った時間指定に従い、要求部1110により、デプロイを開始する時間を設定する(ステップS110)。制御部111は、要求部1110により、設定された時間を、各仮想サーバ1201、1202、…、120Nに同時に送信する(ステップS111)。
管理サーバ110から送信されたデプロイ開始時間は、各仮想サーバ1201、1202、…、120Nにおいて入替制御部1211に受け取られる。各仮想サーバ1201、1202、…、120Nの入替制御部1211は、管理サーバ110から受信したデプロイ開始時間を、バージョンアップを行うためのプログラム(バージョンアッププログラムと呼ぶ)の起動時間として設定する。すなわち、このデプロイ開始時間に従い開始されるデプロイ処理は、このバージョンアッププログラムにより実行される。入替制御部1211は、このバージョンアッププログラムによる機能を含むことができる。
制御部111は、操作端末130に対して、デプロイ開始時間が各仮想サーバ1201、1202、…、120Nに通知された旨を通知する(ステップS112)。
管理サーバ110および各仮想サーバ1201、1202、…、120Nは、それぞれ時間を計測し、現在時刻が操作端末130から指定されたデプロイ開始時間になったか否かを判定する。
管理サーバ110において、制御部111は、現在時刻が指定されたデプロイ開始時間になったと判定した場合(ステップS200)、リポジトリの入替え処理を実行する(ステップS201)。
リポジトリの入替え処理において、制御部111は、データ入力部113に対して、リポジトリの入替えを要求する(ステップS202)。データ入力部113は、この要求に応じて、データ記憶部114に対して、公開リポジトリリンク変数303の値の書き換えを要求する(ステップS203)。データ記憶部114は、この要求に応じて、公開リポジトリリンク変数303の値を、公開リポジトリ301を示す値から非公開リポジトリ300を示す値に書き換える。これにより、非公開リポジトリ300が公開リポジトリ301に入れ替わる。
データ記憶部114は、公開リポジトリリンク変数303の値の書き換えが終了すると、その旨をデータ入力部113を介して制御部111に通知する(ステップS204、ステップS205)。
一方、各仮想サーバ1201、1202、…、120Nにおいて、入替制御部1211は、現在時刻が指定されたデプロイ開始時間になったと判定した場合(ステップS200’)、アプリケーションの切り換え処理を実行する(ステップS210)。このステップS200’および上述のステップS200の時間が、図9を用いて説明した時間tchangeに対応する。
図11は、第1の実施形態に係る、各仮想サーバ1201、1202、…、120Nにおけるアプリケーションの入替え処理を示す一例のフローチャートである。この図11のフローチャートによる処理は、ステップS200’で現在時刻が指定されたデプロイ開始時間になったことをトリガとして、各仮想サーバ1201、1202、…、120Nにおいて並列的に実行される。
ここでは、各仮想サーバ1201、1202、…、120Nを、仮想サーバ1201で代表させて説明を行う。以下に説明する、仮想サーバ1201における処理は、他の仮想サーバ1202、…、120Nについても、それぞれ同様に適用できる。
仮想サーバ1201において、入替制御部1211は、上述したステップS107、ステップS108の処理(図10参照)において、当該仮想サーバ1201における取込制御部1210が非公開アプリケーション310に係る一連のデータの取得に失敗した旨を示す警告の有無を判定する。入替制御部1211は、警告が無いと判定した場合(ステップS10、「無し」)、処理をステップS11に移行させる。
ステップS11で、入替制御部1211は、公開アプリケーションリンク変数313の値を、新しいアプリケーションのリンク変数、すなわち、非公開アプリケーションリンク変数312の値に書き換える。
次のステップS12で、入替制御部1211は、実行プロセスを新しいアプリケーションのプロセスに切り換える。より具体的には、ステップS12で、入替制御部1211は、ステップS11で書き換えられたリンク変数に従い、非公開アプリケーション310のプロセスを、新たな公開アプリケーション311のプロセスとする。
次のステップS13で、入替制御部1211は、古いアプリケーションのプロセスに終了指示を送る。より具体的には、ステップS13で、入替制御部1211は、当該仮想サーバ1201においてステップS12の処理以前から起動されている公開アプリケーション311のプロセスに終了指示を送る。
次のステップS14で、入替制御部1211は、図10のステップS110で管理サーバ110から送信されたデプロイ開始時間の通知に従ったバージョンアッププログラムの起動時間の設定を解除する。この、バージョンアッププログラムの起動時間の設定解除により、仮想サーバ1201におけるアプリケーションの入替え処理が完了し、図11のフローチャートによる一連の処理が終了される。
一方、入替制御部1211は、ステップS10で、非公開アプリケーション310に係る一連のデータの取得に失敗した旨を示す警告を受けていると判定した場合(ステップS10、「有り」)、処理をステップS15に移行させる。ステップS15で、入替制御部1211は、対象の仮想サーバにおけるサービスを再起動させ、図11のフローチャートによる一連の処理を終了させる。
このように、第1の実施形態に係る情報処理システム1では、各仮想サーバ1201、1202、…、120Nは、非公開アプリケーション310の公開アプリケーション311への入れ替え処理を、リンク変数の書き換えにより指定の時間において同時に実施する。それと共に、各仮想サーバ1201、1202、…、120Nは、非公開アプリケーション310を形成するための非公開リポジトリ300を、当該指定の時間以前に予め取得しておく。そのため、端末装置30から見た場合の、各仮想サーバ1201、1202、…、120Nにおける、バージョンアップ前後のアプリケーションの混在の発生が抑制され、システムの安定性が向上される。
さらに、第1の実施形態に係る情報処理システム1では、非公開アプリケーション310の公開アプリケーション311への入れ替え処理の際に、各仮想サーバ1201、1202、…、120Nのうち、公開アプリケーションリンク変数313に、非公開アプリケーション310を示す値が設定されていない仮想サーバによるサービスを再起動している。そのため、端末装置30から見た場合の、各仮想サーバ1201、1202、…、120Nにおける、バージョンアップ前後のアプリケーションの混在の発生を、より確実に抑制でき、システムの安定性をより向上させることができる。
[第1の実施形態に係る、仮想サーバのスケールアウトに対する処理]
次に、サーバ装置10において、仮想サーバ1201、1202、…、120Nの数を増加させるスケールアウトを実行した場合について説明する。以下では、N台の仮想サーバ1201、1202、…、120Nに対して、(N+1)台目の仮想サーバ120N+1を追加した場合について説明する。
第1の実施形態では、公開リポジトリリンク変数303の値を非公開リポジトリリンク変数302の値に書き換えることで、スケールアウトにより起動される新たな仮想サーバ120N+1において実行されるサービス#(N+1)が、新たなアプリケーション(非公開アプリケーション310)を取り込むことができる。
ここで、仮想サーバ1201、1202、…、120Nにおける負荷が高くなると自動でサービス(仮想サーバ)が追加されるシステムにおいて、所定の例外ケースを考慮しない場合、アプリケーションの確実なバージョンアップが困難となる。この例外ケースの1つとして、図10のステップS105によるデプロイ指示後にスケールアウトが実行された場合が考えられる。この場合、スケールアウトにより追加された仮想サーバ120N+1に対して、ステップS110によるデプロイ開始時間の指定を実行できない。これは、管理サーバ110において制御部111は、起動中のサービスは、デプロイの対象となる対象サービスとしては検出できないからである。
図12は、第1の実施形態に係る、デプロイ指示後にスケールアウトが実行された場合の処理を示す一例のシーケンス図である。なお、図12において、上述した図4および図10と共通する部分には同一の符号を付して、詳細な説明を省略する。
サーバ装置10において起動されるサービス#1、#2、…、#Nの負荷が、例えば外部サービスにより監視され、当該負荷が所定以上になった場合について考える。この場合、管理サーバ110は、仮想サーバ1201、1202、…、120Nに対して新たな仮想サーバ120N+1を追加して起動させる(ステップS300)。
追加起動された仮想サーバ120N+1は、管理サーバ110のデータ入力部113に対して、公開リポジトリ301の取得を要求する(ステップS301)。データ入力部113は、この要求に応じて、データ記憶部114から公開リポジトリ301を取得し(ステップS302、ステップS303)、取得した公開リポジトリ301を仮想サーバ120N+1に送信する。仮想サーバ120N+1は、管理サーバ110のデータ入力部113から送信された公開リポジトリ301を受信し(ステップS304)、受信した公開リポジトリ301に基づき公開アプリケーション311を起動させる(ステップS305)。
一方、管理サーバ110において、制御部111は、現在時刻が指定されたデプロイ開始時間になったと判定した場合(ステップS200、図10参照)、判定部1111により、仮想サーバ120N+1に対してリリースチェックを実行する(ステップS311)。判定部1111は、このリリースチェックを、各仮想サーバ1201、1202、…、120Nに対しても同時に実行する。
ここで、スケールアウトにより追加されて起動された仮想サーバ120N+1は、上述したステップS110によるデプロイの開始時間の設定が行われていないため、デプロイが実行されていない状態となっている。
ステップS311のリリースチェックは、サービスが正常に提供可能か否かを、新旧アプリケーションの入れ替え時(図10のステップS201およびステップS210参照)に確認する処理である。管理サーバ110において、制御部111において、判定部1111は、リリースチェックにより、仮想サーバ120N+1上で起動された公開アプリケーション311のバージョンを取得する(ステップS312)。
制御部111において、判定部1111は、ステップS313で、取得したバージョンと、例えば図10のステップS105で操作端末130から送信されたバージョンとに基づく判定処理を実行する。制御部111において、判定部1111により、この判定処理の結果、仮想サーバ120N+1から取得したバージョンが、ステップS105で送信されたバージョンより低いバージョンであると判定された場合、サーバ制御部1112は、仮想サーバ120N+1に対し、起動中のサービスを停止させる指示を出す(ステップS314)。
この結果、外部サービスの負荷の検出結果に基づき管理サーバ110により仮想サーバのスケールアウトがなされ、スケールアウトで追加された仮想サーバにより、新たなアプリケーション、すなわち、非公開アプリケーション310に入れ替えられることで更新された公開アプリケーション311が起動される。
なお、上述したように、ステップS311のリリースチェックは、スケールアウト以前に起動されてる各仮想サーバ1201、1202、…、120Nについても実行される。これら各仮想サーバ1201、1202、…、120Nでは、図11のフローチャートにおけるステップS10の判定により、公開アプリケーションリンク変数313の値に、非公開アプリケーション310を示す値がセットされていないとされた場合に、サービスの再起動が実行されている。そのため、各仮想サーバ1201、1202、…、120Nにおいて起動されているサービスについては、その公開アプリケーション311のバージョンは、図10のステップS105で操作端末130から送信されたバージョンと一致している。
このように、第1の実施形態に係る情報処理システム1では、スケールアウトにより追加された仮想サーバ120N+1上で実行されるサービス#(N+1)が、非公開アプリケーション310に入れ替えられる以前のバージョンの公開アプリケーション311によるサービスである場合に、仮想サーバ120N+1にて実行されるサービス#(N+1)が停止される。そのため、スケールアウトにより仮想サーバ120N+1が追加された場合であっても、端末装置30から見た場合の、各仮想サーバ1201、1202、…、120N、120N+1における、バージョンアップ前後のアプリケーションの混在の発生が抑制される。
[第1の実施形態の変形例]
上述した第1の実施形態では、図1に示したように、操作端末130がサーバ装置10に含まれるように説明したが、これはこの例に限定されない。例えば、操作端末130をサーバ装置10に対する外部装置として構成してもよい。例えば、操作端末130は、ネットワーク2を介して、ロードバランサ100を通さずに管理サーバ110と直接的に接続されるように構成できる。この場合、管理サーバ110は、図3に示した各仮想サーバ1201、1202、…、120Nと同等の構成を適用できる。その際、通信I/F1204は、図2に示したデータI/F1105の代替として動作させることになる。
[第2の実施形態]
次に、第2の実施形態について説明する。第2の実施形態は、上述した第1の実施形態に係るアプリケーションの更新方法を、撮像画像に基づく画像検索に応じて連携情報を出力する画像検索システムに適用した例である。
図13は、第2の実施形態に係る画像検索システムの一例の構成を示すブロック図である。図13において、画像検索システム5は、公開サービス部50と、登録サービス部60と、を含む。
第2の実施形態に係る画像検索システム5において、当該画像検索システム5のサービス提供者は、特定の契約を交わした者あるいは組織体に対して、画像検索の対象となる画像と、当該画像に関連付けられる連携情報の、公開用のデータベースへの登録を許可する。以下、サービス提供者と特定の契約を交わした者あるいは組織体を、事業者と呼ぶ。サービス提供者は、事業者の依頼に応じて、事業者から提供された画像および連携情報を公開用のデータベースに登録する。
画像検索システム5において、公開サービス部50は、一般ユーザからの検索要求に応じて参照される、公開用のデータベースを含む。一方、画像検索システム5において、登録サービス部60は、事業者が画像および連携情報を公開用のデータベースに登録する前に、試用にて画像および連携情報を登録する、試用のデータベースを含む。試用のデータベースに登録された画像および連携情報は、サービス提供者により、公開用のデータベースにアップロードされる。
公開サービス部50は、画像検索サーバ500と、DB(データベース)管理サーバ501と、画像検索用DB502と、インタフェース部503と、ログ収集サーバ504と、を含む。
インタフェース部503は、公開サービス部50の各部、および、登録サービス部60とに対するインタフェースである。インタフェース部503は、Webアプリに対するインタフェースを含み、例えば検索端末70に搭載される、この画像検索システム5による画像検索機能を利用するための、Webアプリとして構成される検索アプリと協働して、検索端末70と画像検索サーバ500およびDB管理サーバ501との間の通信を行う。
画像検索用DB502は、上述した公開用のデータベースであって、画像と、連携情報とが関連付けられて登録される。画像検索用DB502は、画像を、例えば、画像の特徴を抽出した特徴情報として登録する。連携情報は、例えばURL(Uniform Resource Locator)である。
DB管理サーバ501は、DB管理用アプリケーションプログラム(以下、DB管理用アプリケーション)が搭載され、このDB管理用アプリケーションにより、画像検索用DB502に登録される特徴情報および連携情報の管理を行う。DB管理サーバ501は、DB管理用アプリケーションにより、例えば、後述するインタフェース部503からの要求に応じて、画像検索用DB502に登録される特徴情報および連携情報を更新する。また、DB管理サーバ501は、DB管理用アプリケーションにより、後述する画像検索サーバ500の要求に応じて、画像検索用DB502に登録される特徴情報を参照して、画像検索サーバ500に返す。
画像検索サーバ500は、検索端末70により被写体71が撮像された撮像画像と、この撮像画像に基づく画像検索を要求する検索要求とがインタフェース部503を介して渡される。画像検索サーバ500は、インタフェース部503から渡された検索要求に従い、撮像画像を解析して特徴情報を抽出する。画像検索サーバ500は、抽出した特徴情報に基づき、DB管理サーバ501に対して画像検索用DB502に登録される特徴情報の参照を要求し、当該登録される特徴情報から、抽出した特徴情報に対する類似度が高い特徴情報を検索する。
画像検索サーバ500は、DB管理サーバ501に対して、検索結果の特徴情報に関連付けられて画像検索用DB502に登録される連携情報を要求する。DB管理サーバ501は、この要求に応じて画像検索用DB502から連携情報を取り出し、画像検索サーバ500に渡す。画像検索サーバ500は、DB管理サーバ501から渡された連携情報を、インタフェース部503から検索端末70に返す。
ログ収集サーバ504は、例えば検索端末70からインタフェース部503のアクセスに応じたログ情報を収集し、収集したログ情報を後述するステータスDB614に登録する。
登録サービス部60は、画像検索サーバ600と、DB管理サーバ601と、画像検索用DB602と、インタフェース部603と、を含む。これら画像検索サーバ600、DB管理サーバ601および画像検索用DB602は、公開サービス部50に含まれる画像検索サーバ500、DB管理サーバ501および画像検索用DB502と同等の機能を有する。ここで、画像検索用DB602は、上述した試用のデータベースである。
例えば、DB管理サーバ601は、上述したDB管理サーバ501と同等のDB管理用アプリケーションが搭載され、当該DB管理用アプリケーションにより、画像検索用DB602に登録される画像(特徴情報)および連携情報の管理を行う。
事業者は、検索端末70を用いて被写体71を撮像し、撮像画像および検索要求をインタフェース部603に送信する。これにより、事業者は、画像検索用DB602に登録された画像を撮像画像に基づき参照し、当該画像に関連付けられて画像検索用DB602に登録された連携情報を取得し、画像検索用DB602に登録された画像および連携情報を確認することができる。
登録サービス部60は、さらに、インタフェース部610と、ユーザ管理サーバ611と、ユーザDB612と、ログ管理サーバ613と、ステータスDB614と、を含む。ユーザ管理サーバ611は、ユーザDB612に登録されるユーザ情報を管理する。ログ管理サーバ613は、ステータスDB614に格納されるログ情報を管理する。
インタフェース部603および610は、Webアプリに対応するインタフェースを含む。インタフェース部603は、例えば編集端末81に搭載される、提供者が画像検索用DB602に対する画像(特徴情報)の登録、当該画像に関連付けられる連携情報の設定などを行うための、Webアプリとして構成される編集ツールと協働して、編集端末81と画像検索サーバ600およびDB管理サーバ601との間の通信を行う。
インタフェース部610は、編集端末81に搭載される、提供者がユーザ管理サーバ611によるユーザ情報の管理を行うための、Webアプリとして構成される管理ツールと協働して、編集端末81とユーザ管理サーバ611との間の通信を行う。なお、編集端末81は、ログ管理サーバ613とは、直接的に通信を行い、ステータスDB614に格納されるログ情報を閲覧することが可能である。
メンテナンス用端末80は、画像検索用DB502に登録される画像(特徴情報)および連携情報のメンテナンスを行う。また、メンテナンス用端末80は、画像検索用DB602に登録される画像(特徴情報)および連携情報を、公開サービス部50内の画像検索用DB502にアップロードする。このアップロードの際に、メンテナンス用端末80は、DB管理サーバ501に搭載されるDB管理用アプリケーションを、DB管理サーバ601に搭載されるDB管理用アプリケーションに基づき更新する。この、メンテナンス用端末80による画像および連携情報のアップロード、および、DB管理用アプリケーションの更新は、例えば、バッチ処理により、開始時間を夜間に指定して実行される。
ここで、画像検索システム5において、DB管理サーバ501は、多数の一般ユーザによる撮像画像および検索要求にそれぞれ対応する必要がある。同様に、DB管理サーバ601は、多数の事業者による撮像画像および検索要求にそれぞれ対応する必要がある。
したがって、DB管理サーバ501および601は、図1などを用いて説明したサーバ装置10と同様に、それぞれ、管理サーバ110と、複数の仮想サーバ1201、1202、…、120Nと、を含み、これら各仮想サーバ1201、1202、…、120Nにおいて、DB管理用アプリケーションが起動される構成となっている。管理サーバ110は、例えばDB管理サーバ601に含まれる。また、DB管理サーバ501および601は、起動される仮想サーバ1201、1202、…、120Nの数を、負荷に応じて変更できる。
上述した第1の実施形態に係るアプリケーションの更新方法は、DB管理サーバ501および601に対して適用される。より具体的には、メンテナンス用端末80のバッチ処理により、画像検索用DB602の登録内容が画像検索用DB502にアップロードされ、それに伴い、DB管理サーバ501に搭載されるDB管理用アプリケーションがDB管理サーバ601に搭載されるDB管理用アプリケーションの内容を反映させてアップデートされる処理に、第1の実施形態に係るアプリケーションの更新方法が適用される。
図7を参照し、例えば、公開リポジトリ301および公開アプリケーション311がDB管理サーバ501に含まれ、非公開リポジトリ300および非公開アプリケーション310がDB管理サーバ601に、それぞれ含まれる構成とすることができる。例えば、メンテナンス用端末80は、バッチ処理により、画像検索用DB602に登録される画像および連携情報を、インタフェース部603および503を介して画像検索用DB502にアップロードおよび登録する。また、メンテナンス用端末80は、バッチ処理により、例えば図10に示した操作端末130による処理を自動実行する。
このように、第2の実施形態では、公開サービス部50および登録サービス部60を含む画像検索システム5に対して、第1の実施形態に係るアプリケーションの更新方法を適用している。そのため、多数の一般ユーザが、各自の検索端末70に搭載される検索アプリを利用して、公開サービス部50に対して画像検索を要求した場合であっても、DB管理サーバ501に搭載されるDB管理アプリケーションにおける新旧バージョンの混在によるデータ不整合を抑制でき、システムの安定性を向上させることができる。
なお、上述の各実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
1 情報処理システム
2 ネットワーク
5 画像検索システム
10 サーバ装置
30 端末装置
50 公開サービス部
60 登録サービス部
70 検索端末
80 メンテナンス用端末
81 編集端末
110 管理サーバ
111 制御部
113 データ入力部
114 データ記憶部
1201,1202,…,120N,120N+1 仮想サーバ
121 更新実行部
130 操作端末
300 非公開リポジトリ
301 公開リポジトリ
302 非公開リポジトリリンク変数
303 公開リポジトリリンク変数
310 非公開アプリケーション
311 公開アプリケーション
312 非公開アプリケーションリンク変数
313 公開アプリケーションリンク変数
500,600 画像検索サーバ
501,601 DB管理サーバ
502,602 画像検索用DB
1110 要求部
1111 判定部
1112 サーバ制御部
1210 取込制御部
1211 入替制御部
特許第4532946号公報

Claims (4)

  1. 複数のサーバと、制御装置とを含む情報処理システムであって、
    前記複数のサーバは、
    それぞれに搭載される所定プログラムの更新を要求に応じて実行する更新実行部をそれぞれ備え、
    前記制御装置は、
    実行時間を指定して前記複数のサーバに対して前記要求を行う要求部と、
    前記複数のサーバそれぞれの前記所定プログラムのバージョンを確認し、該複数のサーバそれぞれについて、該バージョンが更新後のバージョンであるか否かを判定する判定部と、
    前記複数のサーバのうち前記判定部により前記所定プログラムの前記バージョンが前記更新後のバージョンではないと判定されたサーバに対して、該所定プログラムの起動を停止させるサーバ制御部と、
    を備える情報処理システム。
  2. 前記サーバ制御部は、
    前記複数のサーバに含まれるサーバ数を負荷に応じて変更し、
    前記判定部は、
    前記複数のサーバに含まれるサーバ数が増加された場合に、増加されたサーバに搭載される前記所定プログラムの前記バージョンを確認し、該バージョンが更新後のバージョンであるか否かを判定する
    請求項1に記載の情報処理システム。
  3. 複数のサーバと、制御装置とを含む情報処理システムにおける情報処理方法であって、
    前記複数のサーバそれぞれが、それぞれに搭載される所定プログラムの更新を要求に応じて実行する更新実行ステップと、
    実行時間を指定して前記複数のサーバに対して前記要求を行う要求ステップと、
    前記複数のサーバそれぞれの前記所定プログラムのバージョンを確認し、該複数のサーバそれぞれについて、該バージョンが更新後のバージョンであるか否かを判定する判定ステップと、
    前記複数のサーバのうち前記判定ステップにより前記所定プログラムの前記バージョンが前記更新後のバージョンではないと判定されたサーバに対して、該所定プログラムの起動を停止させるサーバ制御ステップと、
    を有する情報処理方法。
  4. 複数のサーバと、制御装置とを含む情報処理システムにおける該制御装置に実行させるための情報処理プログラムであって、
    前記複数のサーバそれぞれに対し、それぞれに搭載される所定プログラムの更新を、実行時間を指定して要求する要求ステップと、
    前記複数のサーバそれぞれの前記所定プログラムのバージョンを確認し、該複数のサーバそれぞれについて、該バージョンが更新後のバージョンであるか否かを判定する判定ステップと、
    前記複数のサーバのうち前記判定ステップにより前記所定プログラムの前記バージョンが前記更新後のバージョンではないと判定されたサーバに対して、該所定プログラムの起動を停止させるサーバ制御ステップと、
    を前記制御装置に実行させるための情報処理プログラム。
JP2018051599A 2018-03-19 2018-03-19 情報処理システム、情報処理方法および情報処理プログラム Active JP7013978B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018051599A JP7013978B2 (ja) 2018-03-19 2018-03-19 情報処理システム、情報処理方法および情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018051599A JP7013978B2 (ja) 2018-03-19 2018-03-19 情報処理システム、情報処理方法および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2019164531A JP2019164531A (ja) 2019-09-26
JP7013978B2 true JP7013978B2 (ja) 2022-02-01

Family

ID=68065522

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018051599A Active JP7013978B2 (ja) 2018-03-19 2018-03-19 情報処理システム、情報処理方法および情報処理プログラム

Country Status (1)

Country Link
JP (1) JP7013978B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006171918A (ja) 2004-12-13 2006-06-29 Internatl Business Mach Corp <Ibm> クライアントへのデータ送信および更新データの実行制御方法
JP2006268172A (ja) 2005-03-22 2006-10-05 Nec Corp サーバシステムおよびオンラインソフトウェア更新方法
JP2011170528A (ja) 2010-02-17 2011-09-01 Nec Corp 分散型情報処理システム及び分散ストレージシステム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2630227B2 (ja) * 1993-11-25 1997-07-16 日本電気株式会社 端末ソフトウェア自動同時更新システム
JP5319619B2 (ja) * 2010-06-29 2013-10-16 株式会社日立システムズ スケールアウト構成に対応したソフトウェア配布システム、方法、及びプログラム
JP6212972B2 (ja) * 2013-06-19 2017-10-18 株式会社リコー 情報処理システム、ソフトウェア更新方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006171918A (ja) 2004-12-13 2006-06-29 Internatl Business Mach Corp <Ibm> クライアントへのデータ送信および更新データの実行制御方法
JP2006268172A (ja) 2005-03-22 2006-10-05 Nec Corp サーバシステムおよびオンラインソフトウェア更新方法
JP2011170528A (ja) 2010-02-17 2011-09-01 Nec Corp 分散型情報処理システム及び分散ストレージシステム

Also Published As

Publication number Publication date
JP2019164531A (ja) 2019-09-26

Similar Documents

Publication Publication Date Title
JP6748638B2 (ja) マルチテナントアプリケーションサーバ環境においてパッチングをサポートするためのシステムおよび方法
US7448034B2 (en) Build time determination and installation of drivers on cloned systems
EP2210183B1 (en) Managing updates to create a virtual machine facsimile
JP4524113B2 (ja) ソフトウェア配布方法およびシステム
US7421490B2 (en) Uniquely identifying a crashed application and its environment
JP7069672B2 (ja) アプリケーションの更新方法およびプログラム
WO2016016975A1 (ja) 開発支援システム
US20100333068A1 (en) Compatibility evaluation apparatus, compatibility evaluation method, and recording medium
JP2014518425A (ja) あらかじめ構築された環境を瞬時に利用可能にすることによるテスト用の環境の展開
CN107193607B (zh) 用于更新代码文件的方法和装置、存储介质、处理器以及终端
JP2004158012A (ja) ソフトウェアアプリケーション管理のためのシステムおよび方法
JP2001356912A (ja) ソフトウェアのインストール/アップデート/アンインストールシステム
CN103677937A (zh) 升级软件和运行软件的方法及装置
US9600751B2 (en) Image forming apparatus and control method thereof with a determination whether an application relates to a dynamic update for reflecting change of the network setting without rebooting the apparatus
JP7013978B2 (ja) 情報処理システム、情報処理方法および情報処理プログラム
JP2019020798A (ja) 情報処理装置およびプログラム
JP4621709B2 (ja) バージョン管理システム及びプログラムバージョン管理方法
JP2010257083A (ja) サービス監視エージェントのインストール方法、アップデート方法、監視サーバ及び監視システム
CN113467801A (zh) 一种bmc固件应用更新方法、bmc、系统及存储介质
JP6098392B2 (ja) ソフトウェア修正パッチ抽出プログラム、ソフトウェア修正パッチ抽出方法および情報処理装置
JP2010186452A (ja) 保守管理システム、データベースサーバ、保守管理プログラムおよび保守管理方法
JP6700848B2 (ja) 管理システム、制御方法
JP2016146045A (ja) リソース管理装置およびリソース管理方法
JP4410224B2 (ja) プログラムのバージョン管理システムおよび方法
US8805895B2 (en) Adaptive methodology for updating solution building block architectures and designs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220103