JP2017194865A - 情報処理システムおよび情報処理方法 - Google Patents
情報処理システムおよび情報処理方法 Download PDFInfo
- Publication number
- JP2017194865A JP2017194865A JP2016085446A JP2016085446A JP2017194865A JP 2017194865 A JP2017194865 A JP 2017194865A JP 2016085446 A JP2016085446 A JP 2016085446A JP 2016085446 A JP2016085446 A JP 2016085446A JP 2017194865 A JP2017194865 A JP 2017194865A
- Authority
- JP
- Japan
- Prior art keywords
- server
- information processing
- licenses
- activated
- information
- 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.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 190
- 238000003672 processing method Methods 0.000 title claims description 3
- 238000012545 processing Methods 0.000 claims description 111
- 230000004913 activation Effects 0.000 claims description 79
- 230000005856 abnormality Effects 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 description 69
- 230000008569 process Effects 0.000 description 63
- 230000002159 abnormal effect Effects 0.000 description 34
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 14
- 238000012217 deletion Methods 0.000 description 12
- 230000037430 deletion Effects 0.000 description 12
- 230000015654 memory Effects 0.000 description 11
- 230000008439 repair process Effects 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000007689 inspection Methods 0.000 description 6
- 208000013166 Abnormality of the head Diseases 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/101—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Technology Law (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
【課題】新規にソフトウェアを起動したときのライセンスチェックを迅速に行うことができるようにする。
【解決手段】複数の情報処理装置11a〜11zでライセンスチェックを行う情報処理システム10において、例えば情報処理装置11mが割当てライセンスを追加する場合、記憶部13mに記憶された割当て済み数に追加ライセンス数を加算するとともに、最初に起動された情報処理装置11aと、自装置の次に起動された情報処理装置11nとに追加ライセンス数を送信する。情報処理装置11aでは、記憶部13mに記憶された割当て済み数に追加ライセンス数を加算し、情報処理装置11n以降の情報処理装置11n〜11zでも、起動順に、記憶部13n〜13zに記憶された割当て済み数に追加ライセンス数を加算していく。情報処理装置11a〜11zが自身でライセンス数の管理を行うので、ライセンスチェックを迅速に行うことができる。
【選択図】図1
【解決手段】複数の情報処理装置11a〜11zでライセンスチェックを行う情報処理システム10において、例えば情報処理装置11mが割当てライセンスを追加する場合、記憶部13mに記憶された割当て済み数に追加ライセンス数を加算するとともに、最初に起動された情報処理装置11aと、自装置の次に起動された情報処理装置11nとに追加ライセンス数を送信する。情報処理装置11aでは、記憶部13mに記憶された割当て済み数に追加ライセンス数を加算し、情報処理装置11n以降の情報処理装置11n〜11zでも、起動順に、記憶部13n〜13zに記憶された割当て済み数に追加ライセンス数を加算していく。情報処理装置11a〜11zが自身でライセンス数の管理を行うので、ライセンスチェックを迅速に行うことができる。
【選択図】図1
Description
本発明は情報処理システムおよび情報処理方法に関する。
クラウドコンピューティングサービスでは、ネットワーク上で同時に使用できるアプリケーションソフトウェアの最大数でライセンス数を許諾するようなライセンス契約の形態が多くなっている。このようなライセンス契約が結ばれるアプリケーションでは、そのライセンス数の範囲内でのみアプリケーションの同時使用が可能になる。
この場合、ネットワーク上で同時に使用されるアプリケーションの数がライセンス数を超えないようなライセンス管理が行われる。このためには、ライセンス管理専用のライセンス管理サーバを設置してライセンス数を管理することが一般に行われている。
ライセンス管理サーバでライセンス数の管理を行う場合、そのライセンス管理サーバがダウンしたときには、すべてのライセンス管理情報が消失したり、すべての可動サーバでライセンス数の管理ができなくなったりする。
これに対し、ライセンス管理サーバを設けないでライセンス数の管理を行うライセンス認証方法が提案されている。この提案によれば、ソフトウェアの管理番号にライセンス数情報を入れ込んでインストールする。そして、コンピュータは、ソフトウェア起動時にネットワーク接続されたすべてのコンピュータからソフトウェアの管理番号を取得し、起動するソフトウェアと同一の管理番号を有するコンピュータの台数がライセンス数未満であれば使用を許可する。
ソフトウェアを起動しようとするコンピュータにライセンス情報を設定し、システム内で同じソフトウェアを使用しているコンピュータの台数を確認することで、ライセンス管理サーバは使用せずに済む。その結果、特定のコンピュータの故障により、すべてのライセンス管理ができなくなることが抑止できる。その一方、システム内のすべてのコンピュータから、管理番号のようなライセンス情報を取得することになるため、ネットワーク上のコンピュータ台数の増加に応じて、ライセンス情報の取得に要する時間が増加する。その結果、ライセンスチェックの完了までの時間が長くなり、新規に稼働したソフトウェアが利用できるまでの時間も長くなってしまう。
1つの側面では、新規にソフトウェアを起動したときのライセンスチェックを迅速に行うことができるようにすることを目的とする。
1つの案では、複数の情報処理装置を含む情報処理システムが提供される。複数の情報処理装置のそれぞれは、割当て済みのライセンス数を記憶する記憶部と、処理部と、を備える。複数の情報処理装置のうち、記憶部に複数の情報処理装置の起動順序において最初に起動された情報処理装置以外の情報処理装置の処理部は、自装置において割当てライセンスを追加する場合、自装置の記憶部に記憶された割当て済みのライセンス数に、追加するライセンスの数を加算するとともに、最初に起動された情報処理装置と、起動順序において自装置の1つ後に起動された情報処理装置と、に追加で割当てを行うライセンス数を送信する。また、複数の情報処理装置のうち、記憶部に複数の情報処理装置の起動順序において最初に起動された情報処理装置以外の情報処理装置の処理部は、他の情報処理装置から追加で割当てを行うライセンス数を受信した場合、自装置の記憶部に記憶された割当て済みのライセンス数に、受信したライセンス数を加算して、受信したライセンス数を起動順序において自装置の1つ後に起動された情報処理装置に送信する。最初に起動された情報処理装置の処理部は、他の情報処理装置から追加で割当てを行うライセンス数を受信した場合、自装置の記憶部に記憶された割当て済みのライセンス数に、受信したライセンス数を加算する。
1つの側面によれば、新規にソフトウェアを起動したときのライセンスチェックを迅速に行うことができる。
以下、本実施の形態について図面を参照して説明する。なお、各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置システムの機能の一例を示す図である。情報処理システム10は、複数の情報処理装置11a〜11zを備えている。ここで、複数の情報処理装置11a〜11zは、図示では、起動した順に並べてある。それぞれの情報処理装置11a〜11zは、それぞれ処理部12a〜12zおよび記憶部13a〜13zを備えている。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置システムの機能の一例を示す図である。情報処理システム10は、複数の情報処理装置11a〜11zを備えている。ここで、複数の情報処理装置11a〜11zは、図示では、起動した順に並べてある。それぞれの情報処理装置11a〜11zは、それぞれ処理部12a〜12zおよび記憶部13a〜13zを備えている。
処理部12a〜12zは、自装置が割当てライセンスを追加する場合、および、他装置から追加で割当てを行うライセンス数を受信した場合に、割当て済みライセンス数の更新処理を行う。記憶部13a〜13zは、ソフトウェアライセンスの割当て済みのライセンス数を記憶する。また記憶部13a〜13zそれぞれは、保有ライセンス数も記憶している。
以上の構成の情報処理システム10において、最初に起動された情報処理装置11aは、この情報処理システム10を代表する装置として機能し、システム全体のライセンス数の管理を行う。このため、他の情報処理装置11b〜11z(情報処理装置11bは2番目に起動した装置とする)は、自装置で割当てライセンスの追加をする場合には、必ず、代表の情報処理装置11aに追加ライセンス数が送信される。
ここで、m番目に起動した情報処理装置11mが新規にソフトウェアを、例えば、2ライセンスを追加する場合の動作について説明する。まず、情報処理装置11mにおいては、その処理部12mが追加ライセンス数の「2」を情報処理装置11aに送信する処理を行う。
情報処理装置11aでは、その記憶部13aに割当て済みのライセンス数(以下、割当て済み数という。)が記憶されていて、図示の例では、割当て済み数として「10」が記憶されているとする。情報処理装置11aの処理部12aは、情報処理装置11mから追加で割当てを行うライセンス数の「2」を受信すると、記憶部13aに記憶された割当て済み数に、受信したライセンス数を加算する。図示の例では、処理部12aは、割当て済み数の「10」に、受信したライセンス数「2」を加算し、記憶部13aの割当て済み数を「12」に更新する処理を行う。処理部12aは、更新後の割当て済み数が、保有ライセンス数以下であれば、情報処理装置11mに使用可能を通知する。
使用可能の通知を受けた情報処理装置11mでは、その処理部12mが自身の記憶部13mに記憶された割当て済み数に追加のライセンス数を加算する。図示の例では、処理部12mは、割当て済み数の「8」に、追加のライセンス数「2」を加算し、記憶部13mの割当て済み数を「10」に更新する処理を行う。そして、処理部12mは、自装置の1つ後に起動された情報処理装置11nに追加ライセンス数の「2」を送信する処理を行う。
次に、情報処理装置11mから追加ライセンス数の「2」を受信した情報処理装置11nでは、その処理部12nが記憶部13nに記憶された割当て済み数に追加のライセンス数を加算する。図示の例では、処理部12nは、割当て済み数の「10」に、追加のライセンス数「2」を加算し、記憶部13nの割当て済み数を「12」に更新する処理を行う。そして、処理部12nは、自装置の1つ後に起動された情報処理装置に追加ライセンス数の「2」を送信する処理を行う。この自装置の1つ後に起動された情報処理装置に向けて追加ライセンス数を送信する処理は、起動順で最後に起動された情報処理装置11zが割当て済み数の更新処理を行うまで繰り返される。
この処理により、システム全体としての総割当て済みライセンス数は、起動順に繋がっている情報処理装置11a〜11zの先頭の情報処理装置11aと最後尾の情報処理装置11zとに記憶されることになる。その他の情報処理装置11b〜11y(情報処理装置11yは最後から2番目に起動した装置とする)に記憶される割当て済み数は、割当てライセンスの追加を行った情報処理装置から自装置までの装置に割当てられた累積ライセンス数になる。
この情報処理システム10では、情報処理装置11mにて新規にソフトウェアを追加するときの処理が自装置での割当て済み数の更新処理と、先頭の情報処理装置11aおよび自装置の次に起動された情報処理装置11nへの追加ライセンス数の送信処理だけである。このため、この情報処理システム10は、新規にソフトウェアを起動したときのライセンスチェックを短時間で行うことができ、新規ソフトウェアを迅速に起動することができる。
さらに情報処理システム10は、起動順序において先頭の情報処理装置11aがライセンスを管理するものと決められている。そのため、ライセンスを管理していた情報処理装置11aに障害が発生した場合、ライセンス管理処理を引き継ぐのは、起動順序において2番目の情報処理装置11bである。このようにライセンス管理処理を引き継ぐ情報処理装置が一意に決定できるため、ライセンス管理処理の引き継ぎを迅速に行うことができる。しかも先頭の情報処理装置11aに障害が発生しても、システム全体としての総割当て済みライセンス数を最後尾の情報処理装置11zが保持している。そのため情報処理装置11zから、起動順序において2番目の情報処理装置11bへ、総割当て済みライセンス数を送信することで、情報処理装置11bは、迅速にライセンスの管理を開始することができる。
なお、情報処理装置11a〜11zが有する処理部12a〜12zは、例えば情報処理装置11a〜11zが有するプロセッサである。また、情報処理装置11a〜11zが有する記憶部13a〜13zは、例えば情報処理装置11a〜11zが有するメモリまたはストレージ装置である。
〔第2の実施の形態〕
図2は、第2の実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
図2は、第2の実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に用いる各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、ストレージ装置103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
ストレージ装置103は、内蔵した記憶媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、コンピュータの補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)またはSSD(Solid State Drive)を使用することができる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理システム10の複数の情報処理装置11a〜11zは、コンピュータ100による物理サーバに構築された仮想化環境で稼働する複数の仮想サーバにより実現することができる。したがって、第1の実施の形態に示した情報処理システム10の複数の情報処理装置11a〜11zが有する処理部12a〜12zは、プロセッサ101に相当し、記憶部13a〜13zは、メモリ102およびストレージ装置103に相当する。
図3は、第2の実施の形態に係るライセンス管理システムを示す構成図、図4は、サーバリンク情報の構成例を示す図、図5は、ライセンス管理情報の構成例を示す図である。ライセンス管理システム30は、複数の仮想サーバ、すなわち、第1ないし第n仮想サーバ31〜34を備えている。第1仮想サーバ31(以下、サーバ1と言うことがある。)は、ネットワーク35を介して、第2仮想サーバ32(以下、サーバ2と言うことがある。)、第3仮想サーバ33(以下、サーバ3と言うことがある。)、・・・、第n仮想サーバ34と接続されている。
この第1ないし第n仮想サーバ31〜34は、それぞれ同じ構成を有している。したがって、ここでは、第1ないし第n仮想サーバ31〜34の構成を、第1仮想サーバ31の構成により代表して説明する。
第1仮想サーバ31は、ソフトウェアの起動/停止を制御するソフトウェア制御部41、仮想環境内のネットワーク35を介して、他の仮想サーバとの通信を行う通信制御部42、および、ライセンス管理を行うライセンス管理部51を備えている。通信制御部42は、また、物理サーバとしてのコンピュータ100のネットワークインタフェース108にも接続されている。
ライセンス管理部51は、2つの機能、すなわち、サーバ間のサーバリンク情報を管理するサーバリンク機能およびソフトウェアのライセンス情報を管理するライセンス管理機能を有している。
サーバリンク機能は、サーバリンク参照部43、サーバリンク検査部44、サーバリンク更新部45およびサーバリンク情報格納部46を備えている。このサーバリンク機能が管理するサーバリンク情報は、サーバリンク情報格納部46に格納されており、例えば図4に示す情報を有している。すなわち、サーバリンク情報は、Currentサーバ、起動順/IPアドレス、Headサーバ、Tailサーバ、PreviousサーバおよびNextサーバの情報を有している。Currentサーバの情報は、配備された自サーバのアドレス(IPアドレス)を表すサーバ情報である。起動順/IPアドレスの情報は、各サーバが起動された順序と各サーバのアドレス(IPアドレス)とを表すサーバ情報である。Headサーバの情報は、最初に起動されたサーバのアドレス(IPアドレス)を表すサーバ情報である。Tailサーバの情報は、最後に起動されたサーバのアドレス(IPアドレス)を表すサーバ情報である。Previousサーバの情報は、自サーバの前に起動されたサーバのアドレス(IPアドレス)を表すサーバ情報である。そして、Nextサーバの情報は、自サーバの次に起動されたサーバのアドレス(IPアドレス)を表すサーバ情報である。
なお、図4に例示したサーバリンク情報によれば、Currentサーバの情報から自サーバがサーバ3であり、起動順/IPアドレスの情報からは、自サーバが起動するまでにサーバ1およびサーバ2がこの順で起動していることが分かる。Headサーバの情報からは、最初に起動されたサーバがサーバ1であり、Tailサーバの情報から最後に起動されたサーバがサーバ5であり、すでに5台サーバが起動していることが分かる。そして、PreviousサーバおよびNextサーバの情報からは、自サーバの前後に起動されたサーバが、サーバ2およびサーバ4であることが分かる。
ライセンス管理部51のサーバリンク機能において、サーバリンク参照部43は、ライセンスチェック時にHeadサーバやTailサーバなどのサーバ情報を参照する。サーバリンク検査部44は、サーバリンク情報格納部46に格納されている各サーバリンク情報のチェックを実施する。サーバリンク更新部45は、サーバリンク情報に変更があった場合にサーバリンク情報を更新する。サーバリンク情報格納部46は、各サーバ間のリンク情報を格納する。
一方、ライセンス管理部51のライセンス管理機能は、ライセンス情報参照部47、ライセンス情報検査部48、ライセンス情報更新部49およびライセンス管理情報格納部50を備えている。ライセンス情報参照部47は、ソフトウェア起動時にソフトウェアの保有ライセンスや割当て済みのライセンスなどの情報を参照する。ライセンス情報検査部48は、ソフトウェア起動時にソフトウェアの保有ライセンスや割当て済みのライセンスなどの情報をチェックする。ライセンス情報更新部49は、ソフトウェア起動時にソフトウェアの保有ライセンスや割当て済みのライセンスなどの情報を更新する。ライセンス管理情報格納部50は、ソフトウェアの保有ライセンス、割当て済みのライセンスなどを管理し、ソフトウェアの保有ライセンスや割当て済みのライセンスなどの情報を格納している。
ライセンス管理情報格納部50に格納されていてこのライセンス管理機能が管理するライセンス管理情報は、例えば図5に示す情報を有している。すなわち、ライセンス管理情報は、ソフトウェア名、保有ライセンス数、割当て済み数および当サーバ使用数の情報がソフトウェア別に管理されている。ここで、ライセンス管理情報のソフトウェア名は、管理対象のソフトウェアの名称である。保有ライセンス数は、管理対象のソフトウェアの保有ライセンス数である。割当て済み数は、管理対象のソフトウェアの割当て済みのライセンス数(プロセッサの割当て数)である。当サーバ使用数は、管理対象のソフトウェアの本サーバで使用するライセンス数である。
以下、このライセンス管理システムにおいて、ライセンス管理に係る各種処理について説明する。まず、新規にソフトウェアを起動した時の使用ライセンスの追加処理、更新処理および削除処理について説明する。
<新規にソフトウェアを起動した時のライセンス管理処理>
図6は、新規にソフトウェアを起動した時のライセンス追加処理の流れを示したライセンス情報の処理シーケンスを示す図、図7は、新規にソフトウェアを起動した時のライセンス追加処理の流れを例示した説明図である。なお、図6において、左側に示したサーバは、HeadサーバからTailサーバまでをまとめて表しており、中央に示したライセンス管理部は、それらサーバのライセンス管理部を表している。
図6は、新規にソフトウェアを起動した時のライセンス追加処理の流れを示したライセンス情報の処理シーケンスを示す図、図7は、新規にソフトウェアを起動した時のライセンス追加処理の流れを例示した説明図である。なお、図6において、左側に示したサーバは、HeadサーバからTailサーバまでをまとめて表しており、中央に示したライセンス管理部は、それらサーバのライセンス管理部を表している。
まず、ライセンス管理システムとして、図7に示したように、サーバ1〜サーバ5がこの順序で起動している場合を例に説明する。このとき、最初に起動したサーバ1がHeadサーバ、最後に起動したサーバ5がTailサーバとなる。ここで、サーバ4がソフトウェアAを新規に起動するとする。また、このライセンス管理システムでは、ソフトウェアAの保有ライセンス数が「20」、サーバ4が起動した時点でのソフトウェアAの割当て済み数が「8」であるとする。また、サーバ4での当サーバ使用数が「0」、サーバ4が新規に起動するソフトウェアAのライセンス数が「2」であるとしている。
このライセンス追加処理は、サーバ4がソフトウェアAを起動することによって開始される。サーバ4のライセンス管理部51のサーバリンク参照部43は、サーバリンク情報格納部46に格納しているHeadサーバのアドレスを取得する。次に、サーバ4は、ソフトウェアAが新規に2ライセンス起動することをHeadサーバに通知する。
このとき、Headサーバでは、ライセンス管理情報格納部50に格納されたソフトウェアAの保有ライセンス数が「20」、現時点でのソフトウェアAの割当て済み数が「10」であるとする。サーバ4から2ライセンスの新規使用の問い合せがあると、Headサーバは、まず、ライセンス情報参照部47がライセンス管理情報格納部50の割当て済み数および当サーバ使用数を参照する。そして、割当て済み数および当サーバ使用数に基づいて、ライセンス情報検査部48が使用ライセンス数の割当て可否を確認する。この例では、ソフトウェアAの保有ライセンス数の「20」と割当て済み数の「10」と、要求ライセンス数の「2」とから、割当て済み数が「12」に増えても保有ライセンス数の「20」に達することはない。このため、Headサーバは、要求ライセンス数の「2」が使用可能であると判断し、サーバ4に判断結果を通知する。次に、Headサーバでは、ライセンス情報更新部49がライセンス管理情報格納部50の割当て済み数を「12」に更新する。
一方、ライセンス使用可が通知されたサーバ4においては、ライセンス情報更新部49がライセンス管理情報格納部50の割当て済み数を「8」から「10」に更新し、当サーバ使用数を「0」から「2」に更新する。
次に、サーバ4のライセンス管理部51は、サーバリンク参照部43がサーバリンク情報格納部46に格納しているNextサーバのアドレスを取得し、Nextサーバに割当て済み数の追加を通知する。
その後、Nextサーバとして確認されたサーバでは、割当て済み数が「2」増えたことを通知され、自身のライセンス管理情報の割当て済み数を「2」だけ増やした値に更新する。この割当て済み数の更新処理は、ソフトウェアAが新規に起動したサーバ4を起点にして後続のサーバに対して起動順にそれぞれ割当て済み数を「2」ずつ増やした値に順次更新する処理を繰り返し行う。
そして、NextサーバとしてTailサーバが確認されると、Tailサーバは、自身のライセンス管理情報の割当て済み数を「2」だけ増やした値に更新する。なお、図7に示す例では、サーバ4のNextサーバがTailサーバであるので、Tailサーバの割当て済み数を「10」から「12」に更新した時点でこの使用ライセンスの追加処理は終了する。
次に、新規にソフトウェアを起動した時の使用ライセンスの更新処理について説明する。この更新処理は、あるサーバで新規にソフトウェアを起動したときに上記のようなライセンス追加処理が行われるが、新規にソフトウェアを追加することによってHeadサーバで管理されている割当て済み数が保有ライセンス数を超過する場合に行われる。この処理は、使用ライセンスの削除処理では、すべてのサーバが割当て済み数の更新処理は行わないために、Headサーバで管理されている割当て済み数がその時点での真の割当て済み数ではない場合があることによる。このため、新規にソフトウェアを起動するときに、割当て済み数と要求ライセンスとの和が保有ライセンス数を超過する場合、システムとして最新の割当て済み数にするべく、割当て済み数の更新処理を一括して行うようにしている。この更新処理で、割当て済み数が削減されると、保有ライセンス数の範囲内でのライセンスの追加が可能になる。
図8は、新規にソフトウェアを起動した時のライセンス更新処理の流れを示したライセンス情報の処理シーケンスを示す図、図9は、新規にソフトウェアを起動した時のライセンス更新処理の流れを例示した説明図である。
ここで、ライセンス管理システムでは、ソフトウェアAの保有ライセンス数および割当て済み数がともに「20」であるとする。サーバ4がソフトウェアAを新規に起動し、2ライセンスを要求した場合について説明する。
このライセンス更新処理は、サーバ4にてソフトウェアAが起動することによって開始される。サーバ4のライセンス管理部51のサーバリンク参照部43は、サーバリンク情報格納部46に格納しているHeadサーバのアドレスを取得する。次に、サーバ4は、ソフトウェアAが新規に2ライセンス起動することをHeadサーバに通知する。
サーバ4から問い合せを受けたHeadサーバでは、そのライセンス情報参照部47がライセンス管理情報格納部50の割当て済み数および当サーバ使用数を参照し、ライセンス情報検査部48が使用ライセンス数の割当て可否を確認する。この例では、すでに割当て済み数が保有ライセンス数に達しているので、ライセンス情報検査部48は、ライセンス使用不可と判断する。このライセンス使用不可の判断結果は、ソフトウェアAが起動したサーバ4に通知される。これにより、サーバ4では、ソフトウェア制御部41がソフトウェアAの使用を保留する。
次に、Headサーバでは、ライセンス情報参照部47がライセンス管理情報格納部50の当サーバ使用数を取得し、サーバリンク参照部43がNextサーバのサーバリンク情報を取得する。取得した当サーバ使用数は、取得したNextサーバ、図示の例では、サーバ2に通知される。
サーバ2では、ライセンス情報参照部47がライセンス管理情報格納部50の当サーバ使用数を取得し、ライセンス情報更新部49が当サーバ使用数とHeadサーバの当サーバ使用数との和の数で割当て済み数を更新(最新化)する。次に、サーバリンク参照部43がNextサーバのサーバリンク情報を取得し、サーバ2の当サーバ使用数をNextサーバに通知する。
次に、サーバ3では、同様にして、サーバ2から通知された当サーバ使用数とサーバ3の当サーバ使用数との和の数でサーバ3の割当て済み数を更新(最新化)し、サーバ3の当サーバ使用数をサーバ3のNextサーバに通知する。
この割当て済み数の更新(最新化)は、サーバ2からTailサーバまで順次実施されていく。
Tailサーバは、割当て済み数の更新が行われると、その割当て済み数は、ソフトウェアAの総割当て済み数に最新化される。次に、Tailサーバは、サーバリンク参照部43がHeadサーバのサーバリンク情報を取得し、更新されたTailサーバの割当て済み数をHeadサーバに通知する。これにより、Headサーバは、全サーバそれぞれの割り当て済みライセンス数の合計値を取得することができる。
Tailサーバは、割当て済み数の更新が行われると、その割当て済み数は、ソフトウェアAの総割当て済み数に最新化される。次に、Tailサーバは、サーバリンク参照部43がHeadサーバのサーバリンク情報を取得し、更新されたTailサーバの割当て済み数をHeadサーバに通知する。これにより、Headサーバは、全サーバそれぞれの割り当て済みライセンス数の合計値を取得することができる。
Headサーバでは、ライセンス情報更新部49がライセンス管理情報格納部50の割当て済み数をTailサーバから通知された割当て済み数で更新(最新化)する。その後、Headサーバは、サーバ4が要求していたライセンス数の割当て可否を確認し、割当て可能と判断した場合にサーバ4にライセンス使用可になったことを通知する。
この新規にソフトウェアを起動した時のライセンス更新処理によれば、Headサーバの割当て済み数のライセンス情報と要求ライセンスとの和が保有ライセンス数を超過した場合、割当て済み数で更新処理が行われる。これにより、例えばライセンスの削除の処理結果が、Headサーバの割当て済み数に反映されていない場合に、最新化により、Headサーバの割当て済み数を最新にして、ライセンス数の割当て可否が再確認される。これにより、使用ライセンスの削除の処理のたびに、Headサーバの割当て済み数を更新しなくてもよくなる。使用ライセンスの削除の際のHeadサーバの割当て済み数の更新処理を省略すれば、ライセンスを削除したときの処理量を削減することができる。
次に、起動しているソフトウェアを停止する時の使用ライセンスの削除処理について説明する。以下の説明では、使用ライセンスの削除処理時に、HeadサーバとTailサーバとの割当て済み数を更新するものとする。
図10は、ソフトウェアを停止した時のライセンス削除処理の流れを示したライセンス情報の処理シーケンスを示す図、図11は、ソフトウェアを停止した時のライセンス削除処理の流れを例示した説明図である。
ここで、ライセンス管理システムでは、ソフトウェアBの保有ライセンス数が「20」、割当て済み数が「17」であるとする。サーバ4では、そのライセンス情報の割当て済み数が「15」、当サーバ使用数が「4」であるときに、ソフトウェアBの2ライセンスを削減する場合について説明する。
このライセンス削除処理は、サーバ4にてソフトウェアBが停止することによって開始される。サーバ4のライセンス管理部51のライセンス情報更新部49がライセンス管理情報格納部50の割当て済み数および当サーバ使用数を更新する。図示の例では、割当て済み数は、「15」から「13」に削減され、当サーバ使用数は、「4」から「2」に削減されている。
次に、サーバ4は、サーバリンク参照部43がサーバリンク情報格納部46に格納されているHeadサーバのサーバリンク情報を取得する。次に、サーバ4は、Headサーバにアクセスし、ソフトウェアBの削減数を通知する。
次に、サーバ4のライセンス管理部51は、サーバリンク参照部43がサーバリンク情報格納部46に格納しているNextサーバのアドレスを取得し、Nextサーバに割当て済み数の削減を通知する。
その後、Nextサーバとして確認されたサーバでは、割当て済み数が「2」減ったことを通知され、自身のライセンス管理情報の割当て済み数を「2」だけ減らした値に更新する。この割当て済み数の更新処理は、ソフトウェアBを停止したサーバ4を起点にして後続のサーバに対して起動順にそれぞれ割当て済み数を「2」ずつ減らした値に順次更新する処理を繰り返し行う。
Headサーバでは、ライセンス情報更新部49がライセンス管理情報格納部50の割当て済み数を更新する。図示の例では、Headサーバで管理されている割当て済み数が「17」であるので、「15」に削減されることになる。
次に、Headサーバは、サーバリンク参照部43によってTailサーバのサーバリンク情報を取得し、更新された割当て済み数をTailサーバに通知する。
次に、Headサーバから更新情報が通知されたTailサーバは、ライセンス情報更新部49がライセンス管理情報格納部50の割当て済み数を更新する。図示の例では、Headサーバで更新された割当て済み数が「15」であるので、Tailサーバの割当て済み数も、そのまま「15」に更新される。
次に、Headサーバから更新情報が通知されたTailサーバは、ライセンス情報更新部49がライセンス管理情報格納部50の割当て済み数を更新する。図示の例では、Headサーバで更新された割当て済み数が「15」であるので、Tailサーバの割当て済み数も、そのまま「15」に更新される。
このソフトウェアを停止した時のライセンス削除処理によれば、ソフトウェアを停止したサーバ、HeadサーバおよびTailサーバだけしか更新しないので、ライセンス削除処理を短時間で終了させることができる。
次に、サーバの構成が変更されたときの処理について説明する。
<新規にサーバを追加した時のサーバリンク情報の処理>
図12は、新規にサーバを追加した時のサーバリンク情報の処理の流れを示したフローチャート、図13は、Headサーバのサーバリンク情報の初期設定の例を示す図である。
<新規にサーバを追加した時のサーバリンク情報の処理>
図12は、新規にサーバを追加した時のサーバリンク情報の処理の流れを示したフローチャート、図13は、Headサーバのサーバリンク情報の初期設定の例を示す図である。
[ステップS11]例えばオペレータによって、新規にサーバが起動された場合、起動されたサーバ(起動サーバ)は、同報送信により問い合せをし、応答があるかどうかによって、最初の起動サーバであるかどうかを判断する。起動サーバが最初の起動サーバである場合、処理は、ステップS12に進み、すでに1以上のサーバが稼働している場合、処理は、ステップS13に進む。
[ステップS12]起動されたサーバが最初の起動サーバの場合、起動サーバは、自サーバをHeadサーバとしてサーバリンク情報を初期設定する。Headサーバとしてのサーバリンク情報は、例えば、図13に示した情報が設定される。すなわち、CurrentサーバおよびHeadサーバには、自サーバ(サーバ1)を設定し、起動順番は、「1」とする。Tailサーバ、PreviousサーバおよびNextサーバには、それぞれ0(初期値)を設定する。
[ステップS13]起動サーバは、問い合せに対する応答があった任意のサーバにアクセスする。
[ステップS14]任意のサーバは、サーバリンク情報格納部46からHeadサーバのアドレスを取得し、起動サーバに返す。
[ステップS14]任意のサーバは、サーバリンク情報格納部46からHeadサーバのアドレスを取得し、起動サーバに返す。
[ステップS15]起動サーバは、任意のサーバから取得したサーバリンク情報からHeadサーバにアクセスし、Tailサーバのアドレスを取得する。
[ステップS16]起動サーバは、Tailサーバにアクセスし、起動サーバが新Tailサーバになることを通知する。
[ステップS16]起動サーバは、Tailサーバにアクセスし、起動サーバが新Tailサーバになることを通知する。
[ステップS17]通知を受けたTailサーバは、NextサーバおよびTailサーバのサーバリンク情報をそれぞれ起動サーバに更新する。
[ステップS18]起動サーバは、自サーバを新Tailサーバとして設定する。
[ステップS18]起動サーバは、自サーバを新Tailサーバとして設定する。
[ステップS19]起動サーバは、Headサーバに通知し、Headサーバは、Tailサーバのサーバリンク情報を起動サーバに更新する。
図14は、新規にサーバを追加した時のサーバリンク情報の更新処理の流れを例示した説明図である。図示の例では、4台のサーバ(サーバ1〜4)が稼働しているところに新規にサーバ5を起動した場合を示している。この場合、サーバ5は、任意のサーバ(ここでは、サーバ2)にアクセスしてHeadサーバ(サーバ1)のアドレスを取得する。次に、サーバ5は、Headサーバ(サーバ1)にアクセスしてTailサーバ(サーバ4)のアドレスを取得する。
図14は、新規にサーバを追加した時のサーバリンク情報の更新処理の流れを例示した説明図である。図示の例では、4台のサーバ(サーバ1〜4)が稼働しているところに新規にサーバ5を起動した場合を示している。この場合、サーバ5は、任意のサーバ(ここでは、サーバ2)にアクセスしてHeadサーバ(サーバ1)のアドレスを取得する。次に、サーバ5は、Headサーバ(サーバ1)にアクセスしてTailサーバ(サーバ4)のアドレスを取得する。
次に、サーバ5は、Tailサーバ(サーバ4)にアクセスしてサーバ5がTailサーバになることを通知する。次に、Tailサーバ(サーバ4)は、サーバリンク情報を更新する。すなわち、Tailサーバ(サーバ4)は、そのNextサーバおよびTailサーバのサーバリンク情報をそれぞれサーバ5に設定する。
次に、サーバ5は、Tailサーバとしての設定をする。すなわち、サーバ5は、Tailサーバのサーバリンク情報をサーバ5に設定し、Previousサーバのサーバリンク情報をサーバ4に設定する。また、サーバ5は、Currentサーバのサーバリンク情報をサーバ5に設定し、起動順のサーバリンク情報には、サーバ4から取得したサーバリンク情報に起動順およびサーバ5の情報を追加する。
最後に、サーバ5のTailサーバのサーバリンク情報がHeadサーバ(サーバ1)に通知され、Headサーバ(サーバ1)では、Tailサーバのサーバリンク情報がサーバ5に更新される。これにより、稼働しているすべてのサーバには、新規に起動したサーバを含めたサーバリンク情報が作成される。
なお、以上の説明は、3番目以降に新規に起動したサーバの場合についてのものであるが、2番目に新規に起動したサーバの場合は、図12のステップS15〜S17の処理が不要になる。すなわち、起動サーバは、Tailサーバとしての設定をし、Headサーバ(サーバ1)は、そのTailサーバのサーバリンク情報が「0」であるため、TailサーバとNextサーバのサーバリンク情報に起動サーバのアドレスを設定する。
次に、稼働中のサーバを停止する時のサーバリンク情報の処理について説明する。
<稼働中のサーバを停止する時のサーバリンク情報の処理>
図15は、稼働中サーバを停止する時のサーバリンク情報の処理の流れを示したフローチャートである。
<稼働中のサーバを停止する時のサーバリンク情報の処理>
図15は、稼働中サーバを停止する時のサーバリンク情報の処理の流れを示したフローチャートである。
[ステップS21]停止しようとするサーバは、自身のサーバリンク情報からPreviousサーバとNextサーバのアドレスを検知して自サーバの停止をそれぞれのサーバに通知する。
[ステップS22]Previousサーバは、そのサーバリンク情報のNextサーバを停止しようとするサーバのNextサーバに更新する。
[ステップS23]Nextサーバは、そのサーバリンク情報のPreviousサーバを停止しようとするサーバのPreviousサーバに更新する。
[ステップS23]Nextサーバは、そのサーバリンク情報のPreviousサーバを停止しようとするサーバのPreviousサーバに更新する。
[ステップS24]停止しようとするサーバは、自身のサーバリンク情報からHeadサーバのアドレスを検知してアクセスし、当サーバ使用数を通知する。
[ステップS25]Headサーバは、そのライセンス管理情報の割当て済み数を停止しようとするサーバの当サーバ使用数を差し引いた数に更新する。
[ステップS25]Headサーバは、そのライセンス管理情報の割当て済み数を停止しようとするサーバの当サーバ使用数を差し引いた数に更新する。
[ステップS26]Headサーバは、そのサーバリンク情報からTailサーバのアドレスを検知してTailサーバにアクセスし、更新された割当て済み数を通知する。
[ステップS27]Tailサーバは、そのライセンス管理情報の割当て済み数を通知された割当て済み数に更新する。
[ステップS27]Tailサーバは、そのライセンス管理情報の割当て済み数を通知された割当て済み数に更新する。
図16は、稼働中のサーバを停止する時のサーバリンク情報の更新処理の流れを例示した説明図である。図示の例では、稼働している4台のサーバ(サーバ1〜4)のうち、サーバ3が停止する場合を示している。この場合、サーバ3は、起動順で前後のサーバ(PreviousサーバおよびNextサーバ)のサーバリンク情報およびライセンス管理情報と、Headサーバのライセンス管理情報とを変更する。
そのために、まず、停止するサーバ3は、そのサーバリンク情報からPreviousサーバとNextサーバのアドレスを検知する。次に、サーバ3は、Previousサーバ(サーバ2)にアクセスし、サーバ2のNextサーバがサーバ3のNextサーバ(サーバ4)になることを通知する。サーバ2は、その通知を受けて、サーバリンク情報のNextサーバをサーバ4に更新する。
次に、サーバ3は、Nextサーバ(サーバ4)にアクセスし、サーバ3が停止することを通知する。サーバ4は、その通知を受けて、サーバリンク情報のPreviousサーバをサーバ2に更新し、サーバリンク情報の起動順の情報からサーバ3の情報を削除する。
次に、サーバ3は、そのサーバリンク情報からHeadサーバのアドレスを検知し、Headサーバにアクセスして、停止するサーバ3におけるライセンス管理情報のソフトウェアAの当サーバ使用数を通知する。Headサーバは、この通知を受けて、ライセンス管理情報のソフトウェアAの割当て済み数を更新する。図示の例では、Headサーバの割当て済み数が「12」であり、停止するサーバ3の当サーバ使用数が「2」であることから、Headサーバの割当て済み数は、「10」に更新される。
次に、Headサーバは、そのサーバリンク情報からTailサーバのアドレスを検知し、Tailサーバにアクセスして、Headサーバの更新された割当て済み数の「10」を通知する。Tailサーバ(サーバ4)は、その通知を受けて、サーバ4の割当て済み数を「10」に更新する。
これにより、停止するサーバ3を除いたすべてのサーバのサーバリンク情報およびライセンス管理情報が再構成され、サーバ3のサーバリンク情報が設定されたサーバは、存在しなくなり、サーバ3の停止の準備が整ったことになる。
次に、サーバに異常が発生していることを判明した場合に、正常に稼働しているサーバのサーバリンク情報およびライセンス管理情報を修復する手順について説明する。このサーバリンク情報およびライセンス管理情報の修復は、サーバが起動順にリンクされ、かつ、起動順に情報を累積する構成を利用している。すなわち、サーバリンク情報は、最初に起動したHeadサーバから起動順で最後に稼働したTailサーバまでをPreviousサーバとNextサーバという形式で数珠つなぎ式に形成されている。また、起動サーバの情報は、サーバが起動した順番に累積して格納される。これらの管理情報は、HeadサーバとTailサーバの両方に格納している。このため、サーバリンク内のいずれかのサーバで異常が発生した場合、数珠つなぎ式に格納したサーバリンク情報およびライセンス管理情報をもとにこれらの情報を復元することになる。
なお、サーバリンク情報およびライセンス管理情報の修復処理は、例えば保有ライセンス数を超えるライセンス数の使用要求があったタイミングで実施される。また、サーバの異常は、サーバリンク内のいずれかのサーバから何らかのアクセスがあった際に応答がないことによって発見されることもある。
<HeadサーバおよびTailサーバ以外のサーバで異常が発生した場合の処理>
図17は、HeadサーバおよびTailサーバ以外の中間のサーバで異常が発生した場合のサーバリンク修復処理の流れを示したフローチャートである。このサーバリンク修復処理は、例えば異常が発生したサーバ(以下、異常サーバという)にアクセスしたサーバがサーバの稼働を確認できなかった場合に開始される。
図17は、HeadサーバおよびTailサーバ以外の中間のサーバで異常が発生した場合のサーバリンク修復処理の流れを示したフローチャートである。このサーバリンク修復処理は、例えば異常が発生したサーバ(以下、異常サーバという)にアクセスしたサーバがサーバの稼働を確認できなかった場合に開始される。
[ステップS31]異常サーバを検出したサーバは、自身のサーバリンク情報からTailサーバのアドレスを取得し、Tailサーバにアクセスし、サーバリンクの修復を要求する。
[ステップS32]Tailサーバは、自身のサーバリンク情報からPreviousサーバのアドレスを取得し、PreviousサーバにアクセスしてPreviousサーバの稼働を確認する。
[ステップS33]Tailサーバよりも起動順で1つ前のサーバは、自身のサーバリンク情報からPreviousサーバのアドレスを取得し、PreviousサーバにアクセスしてPreviousサーバの稼働を確認する。
[ステップS34]Previousサーバにアクセスしたサーバは、異常サーバが確認されたかどうかを判断する。サーバの稼働を確認できた場合、処理は、ステップS33に戻る。これは、PreviousサーバにアクセスしてPreviousサーバの稼働を確認するという処理が起動順をさかのぼって順次実施され、異常サーバが確認されるまで、繰り返される。異常サーバが確認された場合、異常サーバを確認したサーバは、Tailサーバに通知して、処理をステップS35に進める。
[ステップS35]Tailサーバは、その起動順のスタック情報から異常サーバの前に起動したサーバを確認する。
[ステップS36]Tailサーバは、異常サーバの前に起動したサーバにアクセスして、そのサーバの稼働を確認し、起動順で次のサーバが異常サーバであることを通知する。
[ステップS36]Tailサーバは、異常サーバの前に起動したサーバにアクセスして、そのサーバの稼働を確認し、起動順で次のサーバが異常サーバであることを通知する。
[ステップS37]異常サーバの前に起動したサーバは、自身のサーバリンク情報のNextサーバを、異常サーバの次に起動したサーバに更新し、異常サーバの次に起動したサーバに通知する。
[ステップS38]異常サーバの次に起動したサーバ(異常サーバを確認したサーバ)は、自身のサーバリンク情報のPreviousサーバを、異常サーバの前に起動したサーバに更新する。
[ステップS39]異常サーバの前に起動したサーバは、自身のサーバリンク情報からPreviousサーバのアドレスを取得し、PreviousサーバにアクセスしてPreviousサーバの稼働を確認する。
[ステップS40]稼働確認が行われたサーバは、自身のサーバリンク情報からPreviousサーバのアドレスを取得し、そのアドレスが初期値の「0」であるかどうかにより、Headサーバを検出したかどうかを判断する。Headサーバが検出されない場合、処理は、ステップS39に戻される。このサーバリンクをさらにさかのぼってサーバの稼働を確認するステップS39およびステップS40の処理は、Headサーバが検出されるまで、繰り返される。
[ステップS41]異常サーバを検出したサーバは、異常サーバ以降に起動したサーバのサーバリンク情報の中で、起動順のスタック情報から異常サーバの情報を削除する。その異常サーバの情報の削除は、Tailサーバがその起動順のスタック情報から異常サーバの情報を削除するまで順次繰り返し行われる。
[ステップS42]Tailサーバは、起動順のスタック情報をHeadサーバに送信し、Headサーバは、そのTailサーバの起動順のスタック情報を自身の起動順のスタック情報に反映させる。
図18は、HeadサーバおよびTailサーバ以外の中間のサーバで異常が発生した場合のサーバリンク修復処理の流れを例示した説明図である。図示の例では、稼働している5台のサーバ(サーバ1〜5)のうち、サーバ3が異常となった場合を示している。また、このサーバ3の異常は、例えばサーバ2がサーバ3にアクセスしたときにサーバ3の稼働を確認することができないことによって検知される。この場合、サーバ2は、自身のサーバリンク情報からTailサーバのアドレスを取得し、Tailサーバに異常サーバの存在を通知する。
次に、Tailサーバ(サーバ5)は、自身のサーバリンク情報からPreviousサーバ(サーバ4)のアドレスを取得し、Previousサーバ(サーバ4)にアクセスしてPreviousサーバ(サーバ4)の稼働を確認する。
次に、サーバ4においても、自身のサーバリンク情報からPreviousサーバ(サーバ3)のアドレスを取得し、Previousサーバ(サーバ3)にアクセスしてPreviousサーバ(サーバ3)の稼働を確認する。
この場合、サーバ4は、サーバ3の稼働を確認することができないので、自身のサーバリンク情報からTailサーバのアドレスを取得し、Tailサーバにサーバ3の異常を通知する。
次に、Tailサーバは、起動順のスタック情報から異常となっているサーバ3のPreviousサーバがサーバ2であることを求め、サーバ2にアクセスしてサーバ2の稼働を確認し、Nextサーバがサーバ4であることを通知する。
サーバ2は、サーバリンク情報のNextサーバをサーバ4に更新し、サーバ4に通知する。通知を受けたサーバ4は、Previousサーバをサーバ2に更新する。
次に、サーバ2は、そのPreviousサーバであるサーバ1にアクセスする。サーバ1では、Previousサーバが初期値の「0」に設定されているので、TailサーバからHeadサーバへたどってサーバリンク情報を修復する作業は終了する。
次に、サーバ2は、そのPreviousサーバであるサーバ1にアクセスする。サーバ1では、Previousサーバが初期値の「0」に設定されているので、TailサーバからHeadサーバへたどってサーバリンク情報を修復する作業は終了する。
ただ、異常サーバ(サーバ3)以降の起動順のスタック情報には、サーバ3の情報が残っている。このため、まず、サーバ4がその起動順のスタック情報からサーバ3の情報を削除し、サーバ5(Tailサーバ)がその起動順のスタック情報からサーバ3の情報を削除する。
最後に、Tailサーバは、その起動順のスタック情報をHeadサーバに通知し、Headサーバは、その起動順のスタック情報をTailサーバの起動順のスタック情報に更新し、起動順の最新情報をHeadサーバとTailサーバとで共有する。
図19は、HeadサーバおよびTailサーバ以外の中間のサーバで異常が発生した場合のライセンス情報修復処理の流れを例示した説明図である。このライセンス情報の修復は、上記のサーバリンクの修復に合わせて実施される。
すなわち、ライセンス情報の修復は、サーバ3で異常が発生した場合、サーバ2の割当て済み数に基づいて、サーバ3より後に起動されたサーバの割当て済み数を、リンクをたどりながらそれぞれサーバ3の使用ライセンス数(当サーバ使用数)だけ減らしていく。
ここで、サーバ2の割当て済み数が「4」、サーバ3の使用ライセンス数が「3」、サーバ4の使用ライセンス数が「3」、サーバ5の使用ライセンス数が「2」だとする。サーバ3に異常が発生したことによりNextサーバをサーバ4に更新したサーバ2は、サーバ4に、サーバ2の割当て済み数の「4」を送信する。サーバ4は、サーバ4の割当て済み数を、サーバ2の割当て済み数の「4」とサーバ4の使用ライセンス数の「3」との和「7」に更新する。そしてサーバ4は、更新後のサーバ4の割当て済み数の「7」を、サーバ5に送信する。サーバ5は、サーバ5の割当て済み数を、サーバ4の割当て済み数の「7」とサーバ5の使用ライセンス数の「2」との和「9」に更新する。そしてサーバ5は、更新後のサーバ5の割当て済み数の「9」を、Headサーバであるサーバ1に送信する。サーバ1は、サーバ5の割当て済み数の「9」を、サーバ1の割当て済み数に設定する。これにより、HeadサーバとTailサーバとでライセンスの最新情報が共有される。
次に、Tailサーバで異常が発生した場合の処理について説明する。
<Tailサーバで異常が発生した場合の処理>
図20は、Tailサーバで異常が発生した場合の処理の流れを示した処理シーケンスを示す図、図21は、Tailサーバで異常が発生した場合の処理の流れを例示した説明図である。
<Tailサーバで異常が発生した場合の処理>
図20は、Tailサーバで異常が発生した場合の処理の流れを示した処理シーケンスを示す図、図21は、Tailサーバで異常が発生した場合の処理の流れを例示した説明図である。
Tailサーバで異常が発生した場合には、HeadサーバからNextサーバの稼働を起動順にたどって確認していき、Tailサーバの直前に起動したサーバをTailサーバに設定する処理をすることになる。
すなわち、図20に示したように、まず、異常サーバを検出したサーバは、Headサーバを確認して、HeadサーバからTailサーバのアドレスを取得する。次に、Tailサーバにアクセスして、Tailサーバが稼働していないことを確認する。
次に、HeadサーバのNextサーバを確認して、HeadサーバからNextサーバのアドレスを取得する。以下、Nextサーバの稼働を確認して、そのサーバからNextサーバのアドレスを取得するという処理を繰り返していくことで、Headサーバから稼働しているサーバを起動順に確認していく。
最後に、Tailサーバの直前に起動したサーバをTailサーバに設定する。
このように、Tailサーバで異常が発生した場合、Tailサーバの直前に起動したサーバのライセンス情報には、Tailサーバが起動する前のライセンス情報がすべて格納されているため、ライセンス情報の修復処理は不要である。
このように、Tailサーバで異常が発生した場合、Tailサーバの直前に起動したサーバのライセンス情報には、Tailサーバが起動する前のライセンス情報がすべて格納されているため、ライセンス情報の修復処理は不要である。
Tailサーバで異常が発生した場合の具体的な処理の例を図21に示す。ここでは、サーバ4がTailサーバであり、そのTailサーバで異常が発生したとし、Tailサーバの異常発生は、新規にサーバを追加するときに、Tailサーバを確認するときに検出される場合を示している。
まず、新規サーバは、任意のサーバに問い合せをしてHeadサーバのアドレスを取得し、Headサーバにアクセスする。新規サーバは、Headサーバから取得したTailサーバ(サーバ4)にアクセスするが稼働を確認することができない。
次に、Headサーバからサーバ2へ、サーバ2からサーバ3へと起動順にサーバの稼働を順次確認していくことにより、サーバ4が異常サーバであり、サーバ3がリンクで繋がっている最後のサーバであることが確認される。
次に、新規サーバは、サーバ3にアクセスし、サーバ3は、自身のNextサーバを「0」に更新し、サーバ3のTailサーバにサーバ3を設定して、サーバリンクを修復する。最後に、サーバ1は、サーバリンク情報のTailサーバをサーバ3に更新する。
次に、Headサーバで異常が発生した場合の処理について説明する。
<Headサーバで異常が発生した場合の処理>
図22は、Headサーバで異常が発生した場合の処理の流れを示した処理シーケンスを示す図である。Headサーバの異常は、他のサーバからアクセスできなくなることによって検出される。
<Headサーバで異常が発生した場合の処理>
図22は、Headサーバで異常が発生した場合の処理の流れを示した処理シーケンスを示す図である。Headサーバの異常は、他のサーバからアクセスできなくなることによって検出される。
この場合、Headサーバの異常を検出したサーバは、任意のサーバからHeadサーバのアドレスを取得し、HeadサーバにアクセスしてHeadサーバが稼働していないことを確認する。Headサーバの異常を検出したサーバは、任意のサーバからNextサーバのアドレスを取得し、任意のサーバの次に起動したサーバの稼働を確認する。このNextサーバの稼働の確認は、NextサーバとしてTailサーバの稼働確認が行われるまで繰り返し行われる。
Tailサーバの稼働確認まで進んだら、Tailサーバは、そのサーバリンク情報の起動順のスタック情報から2番目に起動したサーバ(サーバ2)を取得し、そのサーバ2に、Headサーバの異常の発生を通知する。
Headサーバの異常が通知されたサーバ2は、Headサーバとしての設定を行う。次に、新Headサーバ以降の情報、すなわち、サーバリンク情報の起動順、Headサーバ、Previousサーバと、ライセンス管理情報の割当て済み数をそれぞれ起動順に更新する。
次に、Tailサーバの情報の更新が終わると、Tailサーバは、そのライセンス管理情報の割当て済み数を新Headサーバに通知する。新Headサーバは、新Headサーバのライセンス管理情報の割当て済み数を、通知されたTailサーバの割当て済み数に更新する。
次に、HeadサーバとTailサーバの両方が異常になった場合の処理について説明する。
<HeadサーバとTailサーバの両方で異常が発生した場合の処理>
図23は、HeadサーバとTailサーバの両方で異常が発生した場合の処理の流れを示した処理シーケンスを示す図、図24は、HeadサーバとTailサーバの両方で異常が発生した場合の処理の流れを例示した説明図である。
<HeadサーバとTailサーバの両方で異常が発生した場合の処理>
図23は、HeadサーバとTailサーバの両方で異常が発生した場合の処理の流れを示した処理シーケンスを示す図、図24は、HeadサーバとTailサーバの両方で異常が発生した場合の処理の流れを例示した説明図である。
あるサーバが任意のサーバにアクセスし、任意のサーバからそのサーバリンク情報を取得し、その取得したサーバリンク情報をもとにHeadサーバにアクセスする。その結果、Headサーバが稼働していないことが検出されると、Headサーバに異常が発生したと判断される。また、あるサーバが取得したサーバリンク情報をもとにTailサーバにアクセスした結果、Tailサーバが稼働していないことが検出されると、Tailサーバに異常が発生したと判断される。
このように、HeadサーバとTailサーバの両方で異常が発生した場合には、サーバリンク情報を提供したサーバから、そのサーバリンク情報のNextサーバにもとづいて起動順にサーバの稼働を確認していく。Nextサーバにもとづきアクセスしたサーバの稼働を確認できなくなると、サーバリンク情報の最後尾のサーバが検出される。その最後尾のサーバは、Tailサーバとして設定される。
次に、サーバリンク情報を提供したサーバから、サーバリンク情報のPreviousサーバにもとづいて起動順をさかのぼってサーバの稼働を順次確認していく。最後に稼働が確認されたサーバがHeadサーバとして設定される。そして、新Headサーバから新Tailサーバに向かってHeadサーバおよびNextサーバの情報が新Headサーバおよび新Nextサーバの情報に順次更新されていく。
このようにして新Headサーバから新Tailサーバまでサーバリンク情報が復元される。新Headサーバと新Tailサーバとは、図9に示した割り当て済み数の更新(最新化)処理を行い、各サーバの割当て済み数の合計値を取得し、自装置の割当て済み数として設定する。
HeadサーバとTailサーバの両方で異常が発生した場合の具体的な処理の例を図24に示す。ここでは、サーバ5がTailサーバであり、そのTailサーバで異常が発生し、かつ、Headサーバでも異常が発生したとし、これらの異常が新規にサーバを追加する場合に、TailサーバとHeadサーバを確認するときに検出される場合を例示している。
まず、新規サーバは、任意のサーバ(ここでは、サーバ3)に問い合せをしてHeadサーバのアドレスを取得し、Headサーバにアクセスする。しかし、Headサーバの稼働を確認できないので、次に、新規サーバは、サーバ3から取得したTailサーバのアドレスをもとにTailサーバにアクセスする。しかし、ここでも、Tailサーバの稼働を確認できない。
このような場合、新規サーバは、問い合せをしたサーバ3の次に起動したサーバ4の稼働を確認し、サーバ4は、次に起動したサーバ5の稼働を確認しようとする。サーバ4は、サーバ5の稼働を確認できないので、Tailサーバに設定される。
新規サーバは、また、問い合せをしたサーバ3の前に起動したサーバ2の稼働を確認し、サーバ2は、その前に起動したサーバ1の稼働を確認しようとする。サーバ2は、サーバ1の稼働を確認できないので、Headサーバに設定される。
なお、HeadサーバとTailサーバの両方で異常が発生した場合に、HeadサーバとTailサーバの直近に起動されたサーバを検知する方法として、上記の方法では、サーバリンクをたどっていくことによって検出している。しかし、HeadサーバとTailサーバの直近に起動されたサーバを検知する方法として、例えば、DHCP(Dynamic Host Configuration Protocol server)サーバでの管理情報を利用することができる。例えば、DHCPサーバが管理するIPアドレスのリリース日時、ユーザ管理しているIPアドレスの数値をもとに、新Headサーバと新Tailサーバのアドレスを獲得することができる。
次に、クラウド環境でのサーバリンク情報の設定の例について説明する。
<クラウド環境でのサーバリンク情報の設定の例>
図25は、クラウド環境でのサーバリンク情報の更新の流れの処理シーケンス(その1)、図26は、クラウド環境でのサーバリンク情報の更新の流れの処理シーケンス(その2)である。
<クラウド環境でのサーバリンク情報の設定の例>
図25は、クラウド環境でのサーバリンク情報の更新の流れの処理シーケンス(その1)、図26は、クラウド環境でのサーバリンク情報の更新の流れの処理シーケンス(その2)である。
まず、クラウド環境に新規にサーバを配備するときの初期処理について説明する。この場合、クラウド管理部60がシステム構築済みのマスタイメージを作成し、これをクラウド環境に配備してシステムを構築する。このような環境では、事前に設計したシステム構成でマスタとなるシステム(マスタイメージ)を作成する。マスタイメージの設計時には、Headサーバのアドレスをあらかじめ決めておき、このアドレスをマスタイメージのサーバリンク情報のHeadサーバに設定しておく。
クラウド環境に配備されたマスタイメージは、まず、起動して、Headサーバの有無を確認し、Headサーバが稼働していないことを確認する。次に、稼働中のサーバの有無を確認し、稼働中のサーバがないことを確認する。このように、Headサーバも稼働中のサーバも存在しない場合、このマスタイメージは、最初に配備されたサーバであり、しかも、Headサーバとしての設定がすでになされているので、そのままHeadサーバとして稼働することができる。
マスタイメージがクラウド環境に配備されたときにすでに何台かのサーバが稼働していて、Headサーバが異常の場合には、マスタイメージは、まず、稼働中のサーバを確認する。次に、マスタイメージは、任意のサーバからTailサーバのアドレスを取得する。次に、マスタイメージは、Tailサーバにアクセスし、Tailサーバの起動順の情報を取得する。次に、マスタイメージは、Tailサーバの起動順の情報から2番目に起動したサーバをHeadサーバとし、さらに、各サーバのサーバリンク情報を更新する。これにより、マスタイメージを除くサーバのサーバリンク情報が復元される。
次に、マスタイメージは、クラウド管理部60に対し、マスタイメージのHeadサーバアドレスの更新を依頼する。クラウド管理部60は、マスタイメージのHeadサーバアドレスを、2番目に起動したサーバのアドレスに更新し、新規サーバの追加処理に備える。
次に、クラウド環境に配備されたマスタイメージをTailサーバとして設定し、Headサーバのサーバリンク情報のTailサーバを更新する。
次に、複数台のサーバがすでに稼働しているクラウド環境にマスタイメージを配備する通常処理では、マスタイメージは、HeadサーバおよびTailサーバの稼働を確認し、Tailサーバとしての設定を行う。
次に、複数台のサーバがすでに稼働しているクラウド環境にマスタイメージを配備する通常処理では、マスタイメージは、HeadサーバおよびTailサーバの稼働を確認し、Tailサーバとしての設定を行う。
図27は、クラウド環境でのサーバリンク情報の更新の流れを示すフローチャートである。
[ステップS51]クラウド管理部60において、システム構築済みのマスタイメージが作成される。
[ステップS51]クラウド管理部60において、システム構築済みのマスタイメージが作成される。
[ステップS52]クラウド管理部60は、マスタイメージにHeadサーバとしての情報を設定する。
[ステップS53]クラウド管理部60は、マスタイメージを仮想イメージとしてクラウド環境に配備する。
[ステップS53]クラウド管理部60は、マスタイメージを仮想イメージとしてクラウド環境に配備する。
[ステップS54]マスタイメージは、クラウド環境に配備された後に起動し、配備先のクラウド環境にHeadサーバが存在するかどうかを判断する。Headサーバが存在する場合、処理は、ステップS55に進み、Headサーバが存在しない場合には、処理は、ステップS59に進む。
[ステップS55]マスタイメージは、イメージに設定されたサーバリンク情報からHeadサーバを検知する。
[ステップS56]マスタイメージは、Headサーバにアクセスし、Headサーバのサーバリンク情報からTailサーバを検知する。
[ステップS56]マスタイメージは、Headサーバにアクセスし、Headサーバのサーバリンク情報からTailサーバを検知する。
[ステップS57]マスタイメージは、Tailサーバにアクセスしてサーバリンク情報におけるTailサーバおよびNextサーバの情報を更新させ、配備した自身のイメージを新Tailサーバとして設定する。
[ステップS58]マスタイメージは、Headサーバにアクセスし、HeadサーバのTailサーバの情報を新Tailサーバの情報に更新させる。
[ステップS59]他に稼働中のサーバがあるかどうかを判断する。Headサーバは存在しないが、稼働中のサーバがある場合、処理は、ステップS60に進み、Headサーバも稼働中のサーバも存在しない場合には、処理はステップS64に進む。
[ステップS59]他に稼働中のサーバがあるかどうかを判断する。Headサーバは存在しないが、稼働中のサーバがある場合、処理は、ステップS60に進み、Headサーバも稼働中のサーバも存在しない場合には、処理はステップS64に進む。
[ステップS60]マスタイメージは、任意の稼働サーバからTailサーバのアドレスを取得する。
[ステップS61]マスタイメージは、Tailサーバにアクセスし、Tailサーバの起動順の情報から2番目に起動したサーバのアドレスを取得し、2番目に起動したサーバに通知する。
[ステップS61]マスタイメージは、Tailサーバにアクセスし、Tailサーバの起動順の情報から2番目に起動したサーバのアドレスを取得し、2番目に起動したサーバに通知する。
[ステップS62]2番目の起動サーバは、自装置をHeadサーバとするようサーバリンク情報を更新し、3番目以降の起動サーバについても、自イメージを含めた各サーバのサーバリンク情報のHeadサーバを順次更新する。
[ステップS63]マスタイメージは、自イメージのHeadサーバのアドレスを新Headサーバのアドレスに更新する。
[ステップS64]Headサーバも他に稼働中のサーバがない場合、マスタイメージは、配備した自イメージをそのままHeadサーバとして設定する。
[ステップS64]Headサーバも他に稼働中のサーバがない場合、マスタイメージは、配備した自イメージをそのままHeadサーバとして設定する。
次に、マスタイメージのクラウド環境への配備例について説明する。
図28は、Headサーバがある場合のクラウド環境でのイメージ配備例を示す説明図である。Headサーバが存在しているクラウド環境に、新規サーバとしてHeadサーバに設定されたマスタイメージを配備する場合、マスタイメージは、まず、Headサーバの存在を確認する。このHeadサーバの存在は、例えば、マスタイメージが自身に設定されたHeadサーバのアドレスを指定してpingコマンドを実行し、応答が返ってくるかどうかによって確認することができる。応答が返ってくれば、すでにHeadサーバが存在していることになる。
図28は、Headサーバがある場合のクラウド環境でのイメージ配備例を示す説明図である。Headサーバが存在しているクラウド環境に、新規サーバとしてHeadサーバに設定されたマスタイメージを配備する場合、マスタイメージは、まず、Headサーバの存在を確認する。このHeadサーバの存在は、例えば、マスタイメージが自身に設定されたHeadサーバのアドレスを指定してpingコマンドを実行し、応答が返ってくるかどうかによって確認することができる。応答が返ってくれば、すでにHeadサーバが存在していることになる。
この場合、マスタイメージは、Tailサーバをサーバ3から自イメージに切り換える処理を行う。次に、マスタイメージは、新しくTailサーバになったことをHeadサーバに通知し、HeadサーバのTailサーバの情報を更新させる。
図29は、Headサーバが異常、かつ、稼働中のサーバがある場合のクラウド環境でのイメージ配備例を示す説明図である。Headサーバが異常、かつ、稼働中のサーバがある場合のクラウド環境に、新規サーバとしてHeadサーバに設定されたマスタイメージを配備する場合、マスタイメージは、まず、Headサーバの存在を確認する。
この場合、Headサーバからの応答がないので、次に、マスタイメージは、稼働中のサーバの存在を確認する。この稼働中のサーバの存在は、例えば、相手先を指定しないで問い合せを行う一斉同報送信を行い、これに対して応答が返ってくるかどうかによって確認することができる。応答が返ってくれば、Headサーバではない稼働中のサーバが存在していることになる。
Headサーバがなく、かつ、稼働中のサーバがある場合、マスタイメージは、応答が返ってきた任意のサーバからTailサーバのアドレスを取得し、Tailサーバのサーバリンク情報から2番目に起動したサーバのアドレスを取得する。次に、マスタイメージは、2番目に起動したサーバ2に対し、Headサーバへの設定およびサーバ3へのHeadサーバのリンク情報の更新依頼を通知する。次に、マスタイメージは、Headサーバのリンク情報をサーバ2のリンク情報に更新し、新Tailサーバに設定し、Tailサーバのリンク情報をHeadサーバに通知する。
図30は、Headサーバがない場合のクラウド環境でのイメージ配備例を示す説明図である。Headサーバも稼働中のサーバもない場合、マスタイメージは、Headサーバのアドレスを指定したpingコマンドを実行しても、相手先を指定しない一斉同報送信を行っても、まったく応答が返ってくることはない。このような場合、マスタイメージは、配備されたクラウド環境にサーバが存在しないと判断し、Headサーバとしてそのまま配備することになる。
図31は、Headサーバおよび稼働中のサーバがあるクラウド環境でのイメージ配備中にHeadサーバが異常になった例を示す説明図である。すでに、Headサーバおよび稼働中のサーバがあるクラウド環境にマスタイメージを連続して追加配備しているときに、Headサーバ(サーバ1)に異常があった場合、サーバ1からTailサーバのサーバリンク情報を取得することができない。このため、マスタイメージは、任意のサーバからTailサーバのサーバリンク情報を取得し、取得した起動順の情報からHeadサーバのサーバリンク情報を削除する。また、マスタイメージは、自身のHeadサーバのサーバリンク情報を2番目に起動したサーバ2のサーバリンク情報に更新し、Tailサーバのサーバリンク情報をサーバ5に更新する。
次に、このサーバ5において、起動順の情報からHeadサーバのサーバリンク情報を削除し、HeadサーバおよびTailサーバのサーバリンク情報をサーバ5に更新する処理は、稼働中の他のサーバにおいても行われる。すなわち、サーバ5での処理は、サーバ5の前に配備されたサーバ4から始まり、起動順をさかのぼってサーバ2まで繰り返し行われる。
図32は、Headサーバおよび稼働中のサーバがあるクラウド環境でのイメージ配備例を示す説明図である。すでに、Headサーバおよび稼働中のサーバがあるクラウド環境にマスタイメージを連続して追加配備する場合、新規に配備されたマスタイメージは、Tailサーバに設定する処理をする。
すなわち、マスタイメージは、サーバリンク情報からHeadサーバにアクセスしてTailサーバのサーバリンク情報を取得し、この取得した情報をもとにTailサーバのサーバリンク情報をサーバ4に更新する。これとともに、Headサーバでも、Tailサーバのサーバリンク情報をサーバ4に更新する。
10 情報処理システム
11a〜11z 情報処理装置
12a〜12z 処理部
13a〜13z 記憶部
20 ネットワーク
21 モニタ
22 キーボード
23 マウス
24 光ディスク
25 メモリ装置
26 メモリリーダライタ
27 メモリカード
30 ライセンス管理システム
31 第1仮想サーバ
32 第2仮想サーバ
33 第3仮想サーバ
34 第n仮想サーバ
35 ネットワーク
41 ソフトウェア制御部
42 通信制御部
43 サーバリンク参照部
44 サーバリンク検査部
45 サーバリンク更新部
46 サーバリンク情報格納部
47 ライセンス情報参照部
48 ライセンス情報検査部
49 ライセンス情報更新部
50 ライセンス管理情報格納部
51 ライセンス管理部
60 クラウド管理部
100 コンピュータ
101 プロセッサ
102 メモリ
103 ストレージ装置
104 グラフィック処理装置
105 入力インタフェース
106 光学ドライブ装置
107 機器接続インタフェース
108 ネットワークインタフェース
109 バス
11a〜11z 情報処理装置
12a〜12z 処理部
13a〜13z 記憶部
20 ネットワーク
21 モニタ
22 キーボード
23 マウス
24 光ディスク
25 メモリ装置
26 メモリリーダライタ
27 メモリカード
30 ライセンス管理システム
31 第1仮想サーバ
32 第2仮想サーバ
33 第3仮想サーバ
34 第n仮想サーバ
35 ネットワーク
41 ソフトウェア制御部
42 通信制御部
43 サーバリンク参照部
44 サーバリンク検査部
45 サーバリンク更新部
46 サーバリンク情報格納部
47 ライセンス情報参照部
48 ライセンス情報検査部
49 ライセンス情報更新部
50 ライセンス管理情報格納部
51 ライセンス管理部
60 クラウド管理部
100 コンピュータ
101 プロセッサ
102 メモリ
103 ストレージ装置
104 グラフィック処理装置
105 入力インタフェース
106 光学ドライブ装置
107 機器接続インタフェース
108 ネットワークインタフェース
109 バス
Claims (10)
- 複数の情報処理装置を含む情報処理システムであって、
前記複数の情報処理装置のそれぞれが、
割当て済みのライセンス数を記憶する記憶部と、
処理部と、を備え、
前記複数の情報処理装置のうち、前記記憶部に前記複数の情報処理装置の起動順序において最初に起動された情報処理装置以外の情報処理装置の前記処理部は、
自装置において割当てライセンスを追加する場合、自装置の前記記憶部に記憶された前記割当て済みのライセンス数に、追加するライセンスの数を加算するとともに、前記最初に起動された情報処理装置と、前記起動順序において自装置の1つ後に起動された情報処理装置と、に追加で割当てを行うライセンス数を送信し、かつ、他の情報処理装置から追加で割当てを行うライセンス数を受信した場合、自装置の前記記憶部に記憶された割当て済みのライセンス数に、受信したライセンス数を加算して、受信したライセンス数を前記起動順序において自装置の1つ後に起動された情報処理装置に送信し、
前記最初に起動された情報処理装置の前記処理部は、
他の情報処理装置から追加で割当てを行うライセンス数を受信した場合、自装置の前記記憶部に記憶された割当て済みのライセンス数に、受信したライセンス数を加算する、
情報処理システム。 - 前記最初に起動された情報処理装置の前記処理部は、前記起動順序において最初に起動された情報処理装置以外の情報処理装置から受信したライセンス数を自装置の前記記憶部に記憶された割当て済みのライセンス数に加算したライセンス数が自装置の前記記憶部に記憶された保有ライセンス数を超える場合、前記複数の情報処理装置それぞれの割り当て済みライセンス数の合計値を取得し、前記合計値で、自装置の前記記憶部に記憶された割り当て済みライセンス数を更新し、受信したライセンス数を更新後の該割当て済みのライセンス数に加算したライセンス数が前記保有ライセンス数以下であれば、ライセンス数の送信元の情報処理装置に、ライセンス割当て許可を通知し、
前記最初に起動された情報処理装置以外の情報処理装置の前記処理部は、前記最初に起動された情報処理装置に送信したライセンス数に対して、前記最初に起動された情報処理装置からライセンス割当て許可の応答を受信したときに、自装置の前記記憶部に記憶された前記割当て済みのライセンス数に、追加するライセンスの数を加算する、
請求項1記載の情報処理システム。 - 前記起動順序において最初に起動された情報処理装置および前記起動順序において最後に起動された情報処理装置以外の情報処理装置の前記処理部は、自装置において割当てライセンスを削除する場合、自装置の前記記憶部に記憶された割当て済みのライセンス数およびライセンス使用数をそれぞれ削除するライセンス数で削減し、かつ、削除するライセンス数を前記起動順序において最初に起動された情報処理装置に送信し、
前記起動順序において最初に起動された情報処理装置の前記処理部は、自装置の前記記憶部に記憶された割当て済みのライセンス数を受信した削除するライセンス数で削減して更新し、かつ、更新された割当て済みのライセンス数を前記起動順序において最後に起動された情報処理装置に送信し、
前記起動順序において最後に起動された情報処理装置の前記処理部は、自装置の前記記憶部に記憶された割当て済みのライセンス数を受信した割当て済みのライセンス数で更新する、
請求項1または2に記載の情報処理システム。 - 前記複数の情報処理装置に新規追加される情報処理装置の処理部は、前記複数の情報処理装置のうちのいずれかの情報処理装置にアクセスして該情報処理装置から前記起動順序において最初に起動された情報処理装置のアドレスを取得し、該情報処理装置から前記起動順序において最後に起動された情報処理装置のアドレスを取得し、該情報処理装置から割当て済みのライセンス数を取得し、取得した割当て済みのライセンス数を自装置の前記記憶部に設定し、前記起動順序において最初に起動された情報処理装置に自装置のアドレスを送信し、
前記起動順序において最初に起動された情報処理装置の前記処理部は、前記新規追加の情報処理装置からアドレスを受信した場合、自身の前記記憶部に記憶された前記起動順序において最後に起動された情報処理装置のアドレスを、受信したアドレスに更新する、
請求項1ないし3のいずれかに記載の情報処理システム。 - 前記起動順序において自装置の1つ後に起動された情報処理装置の異常の発生を検知した情報処理装置の前記処理部は、自装置の前記記憶部に記憶された割当て済みのライセンス数の情報を、前記起動順序において異常が発生した情報処理装置の1つ後に起動した情報処理装置に送信し、
前記起動順序において最後に起動された情報処理装置以外の情報処理装置の前記処理部は、前記起動順序において自装置より前に起動した情報処理装置から割当て済みのライセンス数を受信した場合、自装置の前記記憶部に記憶されたライセンス使用数に受信した割当て済みのライセンス数を加算し、加算されたライセンス数で自装置の前記記憶部に記憶された割当て済みのライセンス数を更新し、更新された割当て済みのライセンス数を前記起動順序において自装置の1つ後に起動した情報処理装置に送信し、
前記起動順序において最後に起動された情報処理装置の前記処理部は、前記起動順序において自装置より前に起動した情報処理装置から更新された割当て済みのライセンス数を受信した場合、自装置の前記記憶部に記憶されたライセンス使用数に受信した割当て済みのライセンス数を加算し、加算されたライセンス数で自装置の前記記憶部に記憶された割当て済みのライセンス数を更新し、更新された割当て済みのライセンス数を前記起動順序において最初に起動した情報処理装置に送信し、
前記起動順序において最初に起動された情報処理装置の前記処理部は、割当て済みのライセンス数を受信した場合、受信した割当て済みのライセンス数で自装置の前記記憶部に記憶された割当て済みのライセンス数を更新する、
請求項1ないし4のいずれかに記載の情報処理システム。 - 前記起動順序において最後に起動された情報処理装置の異常を検出した情報処理装置の前記処理部は、前記起動順序において最初に起動された情報処理装置から順に、前記起動順序に従って情報処理装置のアドレスを取得し、前記起動順序において最初に起動された情報処理装置の1つ後に起動した情報処理装置に前記起動順序において最後に起動された情報処理装置に異常が発生したことを通知し、
前記起動順序において最初に起動された情報処理装置の前記処理部は、前記任意の情報処理装置から問い合せに対して自装置の前記記憶部に記憶された前記起動順序において最後に起動された情報処理装置および前記起動順序において自装置の1つ後に起動された情報処理装置のアドレスを送信し、前記起動順序において自装置の1つ後に起動された情報処理装置の稼働確認を行い、
前記起動順序において自装置の1つ前に起動された情報処理装置から稼働確認を受けた情報処理装置の前記処理部は、自装置の前記記憶部に記憶された前記起動順序において自装置の1つ後に起動された情報処理装置の情報をもとに前記起動順序において自装置の1つ後に起動された情報処理装置の稼働確認を行い、
前記起動順序において最後に起動された情報処理装置の1つ前に起動された情報処理装置の前記処理部は、前記起動順序において自装置の1つ前に起動された情報処理装置から稼働確認を受けた場合、自装置の前記記憶部に記憶された情報を、前記起動順序において最後に起動されたときの情報に更新する、
請求項1ないし5のいずれかに記載の情報処理システム。 - 前記起動順序において最後に起動された情報処理装置の前記処理部は、前記起動順序において最初に起動された情報処理装置に異常が発生した場合、前記起動順序において2番目に起動された情報処理装置に、自装置の前記記憶部に記憶された割当て済みのライセンス数を通知し、
前記起動順序において2番目に起動された情報処理装置の前記処理部は、前記起動順序において最後に起動された情報処理装置から受信した割当て済みのライセンス数を、自装置の前記記憶部に記憶する、
請求項1ないし6のいずれかに記載の情報処理システム。 - クラウドの管理を行うクラウド管理部を備え、
前記クラウド管理部は、あらかじめシステム構築済みのマスタイメージを前記起動順序において最初に起動された情報処理装置として設定された構成で作成し、クラウド環境に新たに情報処理装置を配備する場合には前記マスタイメージを前記クラウド環境に配備する、
請求項1ないし7のいずれかに記載の情報処理システム。 - 前記記憶部は、リンク情報とライセンス管理情報とを記憶し、前記リンク情報は、自装置を表すCurrent、起動した情報管理装置のアドレスを起動した順に累積して記憶する起動順、最初に起動した情報管理装置のアドレスを記憶するHead、最後に起動した情報管理装置のアドレスを記憶するTail、自装置の1つ前に起動された情報処理装置のアドレスを記憶するPreviousおよび自装置の1つ後に起動された情報処理装置のアドレスを記憶するNextの情報を有し、前記ライセンス管理情報は、ソフトウェア名、保有ライセンス数、割当て済み数および使用数の情報を有している、
請求項1ないし8のいずれかに記載の情報処理システム。 - コンピュータが、
起動順にリンク情報によって繋げられた複数の情報処理装置のうち、起動順序において最初に起動された情報処理装置以外の情報処理装置において割当てライセンスを追加する場合に、自装置の割当て済みのライセンス数に、追加で割当てを行うライセンス数を加算し、
前記最初に起動された情報処理装置と起動順序において自装置の1つ後に起動された情報処理装置とに追加で割当てを行うライセンス数を送信し、
前記最初に起動された情報処理装置では自装置の割当て済みのライセンス数に、受信した追加で割当てを行うライセンス数を加算し、
割当てライセンスを追加する装置の1つ後に起動された情報処理装置では自装置の割当て済みのライセンス数に、受信した追加で割当てを行うライセンス数を加算するとともに、自装置の1つ後に起動された情報処理装置に受信した追加で割当てを行うライセンス数を送信し、
受信した追加で割当てを行うライセンス数の加算および送信を、起動順序において最後から1つ前に起動された情報処理装置に達するまで繰り返し、
起動順序において最後に起動された情報処理装置では自装置の割当て済みのライセンス数に、受信した追加で割当てを行うライセンス数を加算する、
情報処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016085446A JP2017194865A (ja) | 2016-04-21 | 2016-04-21 | 情報処理システムおよび情報処理方法 |
US15/444,499 US20170308684A1 (en) | 2016-04-21 | 2017-02-28 | System and method for information processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016085446A JP2017194865A (ja) | 2016-04-21 | 2016-04-21 | 情報処理システムおよび情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017194865A true JP2017194865A (ja) | 2017-10-26 |
Family
ID=60089074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016085446A Pending JP2017194865A (ja) | 2016-04-21 | 2016-04-21 | 情報処理システムおよび情報処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170308684A1 (ja) |
JP (1) | JP2017194865A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019003794A1 (ja) * | 2017-06-26 | 2019-01-03 | 日本電気株式会社 | アンテナ方向調整装置、アンテナ方向調整システム、及びその方法 |
US20220311620A1 (en) * | 2021-03-23 | 2022-09-29 | Sap Se | Encrypted handshake for trust validation between two applications |
-
2016
- 2016-04-21 JP JP2016085446A patent/JP2017194865A/ja active Pending
-
2017
- 2017-02-28 US US15/444,499 patent/US20170308684A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170308684A1 (en) | 2017-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5902716B2 (ja) | 大規模記憶システム | |
US10509680B2 (en) | Methods, systems and apparatus to perform a workflow in a software defined data center | |
US20030078944A1 (en) | Remote access program, remote access request-processing program, and client computer | |
US20170242771A1 (en) | Storage controller failover system | |
JP5862359B2 (ja) | シンクライアントシステム、接続管理サーバ、接続管理方法、及び接続管理プログラム | |
KR20220001630A (ko) | 엣지 컴퓨팅 장치를 위한 애플리케이션 배포 방법 및 시스템 | |
CN112153167B (zh) | 网际互连协议管理方法、装置、电子设备及存储介质 | |
JP2007122664A (ja) | 情報処理方法および情報処理装置 | |
JP4407956B2 (ja) | 情報処理方法および情報処理装置 | |
JP5503678B2 (ja) | ホスト提供システム及びホスト提供方法 | |
JP2007233815A (ja) | 情報処理システムおよび情報処理装置の割当管理方法 | |
CN110413369B (zh) | 用于虚拟化环境中的备份的系统和方法 | |
US20160357948A1 (en) | Information processing device and management method | |
JP5493976B2 (ja) | 情報処理装置、計算機システム及びプログラム | |
CN107153671B (zh) | 一种在分布式系统中实现多文件副本读写的方法与设备 | |
JP2017194865A (ja) | 情報処理システムおよび情報処理方法 | |
US20120084550A1 (en) | Information processing system and startup control method | |
CN111737362A (zh) | 区块链处理方法、装置、设备和存储介质 | |
JP2008293278A (ja) | 分散処理プログラム、分散処理装置、および分散処理方法 | |
US20150135004A1 (en) | Data allocation method and information processing system | |
CN106991121B (zh) | 超融合数据存储方法及系统 | |
JP2017004502A (ja) | 情報システムおよびアップデート方法 | |
JP5660986B2 (ja) | データ処理システム及びデータ処理方法及びプログラム | |
US10853003B2 (en) | Method of managing print jobs based on job identification of the print jobs in printing system and apparatus for performing the same | |
US9430489B2 (en) | Computer, data storage method, and information processing system |