以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態について説明する。
図1は、第1の実施の形態の構成の一例を示す図である。情報処理装置10は、例えばネットワークを介して、管理対象コンピュータ1に接続されている。
管理対象コンピュータ1は、例えば仮想マシンによって第1OS3を実行している。第1OS3は、設定情報の格納領域として、例えばレジストリ3aを有している。また第1OS3は、ソフトウェア3bを実行している。
管理対象コンピュータ1上の第1OS3は、仮想マシンごと管理対象コンピュータ2にコピーすることができる。仮想マシンがコピーされると、管理対象コンピュータ2が第2OS4を実行する。第2OS4は、設定情報の格納領域として、例えばレジストリ4aを有している。第1OS3のコピーが生成されると、第1OS3で実行されているソフトウェア3bもコピーされ、コピー先の第2OS4で、ソフトウェア3bからコピーされたソフトウェア4bが実行される。
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
記憶部11は、管理対象コンピュータ上で実行されているものと認識しているOSに対応するレコードを記憶する。記憶部11には、コピーによって生成された複数のOSであっても、別個体として、OSごとのレコードが格納される。
処理部12は、例えば管理対象コンピュータ1上で実行されている第1OS3の存在を認識すると、第1OS3に対応する第1識別子および第1管理キーを、第1OSの設定情報の格納領域に書き込む。例えば処理部12は、第1OS3を指定したレコードの登録要求の入力によって、第1OS3の存在を認識する。第1OS3の設定情報の格納領域は、例えばレジストリ3aである。また処理部12は、第1識別子と第1管理キーとの組を含む第1レコードを、記憶部11に格納する。図1の例では、第1識別子の値は「os01」であり、第1管理キーの値は「aaa」である。
その後、第1OS3が仮想マシンごと、管理対象コンピュータ2にコピーされたものとする。コピー直後の第2OS4のレジストリ4aには、第1識別子と同じ値「os01」の第1識別子と、第1管理キーと同じ値「aaa」の第3管理キーとが含まれる。
処理部12は、所定のタイミングで、第1OS3のレジストリ3aと第1レコードそれぞれの第1管理キーを、第1管理キーとは異なる値の第2管理キーに書き換える。図1の例では、第1管理キーを、値が「aab」の第2管理キーに書き換えている。例えば処理部12は、第1管理キーの第2管理キーへの変更を、所定の時間間隔で定期的に実行する。また処理部12は、第1管理キーの第2管理キーへの変更を、第2OS4の存在の認識後、後述する第2識別子の第3識別子への変更前に実行する。
処理部12は、管理対象コンピュータ2上で実行されている第2OS4の存在を認識すると、第2OS4の設定情報の格納領域から、第2OS4に対応する第2識別子および第3管理キーを取得する。第2OS4の設定情報の格納領域は、例えばレジストリ4aである。例えば処理部12は、第2OS4を指定したレコードの登録要求の入力によって、第2OS4の存在を認識する。処理部12は、第2OS4から取得した識別子と記憶部11に格納されている第1識別子との値を比較すると共に、第2OS4から取得した識別子と記憶部11に格納されている第2管理キーとの値を比較する。
図1の例では、取得した識別子と第1識別子との値が一致し、かつ取得した管理キーと第2管理キーとの値が一致しない。この場合、処理部12は、第2OS4のレジストリ4a内の識別子を、第1識別子とは異なる値の第2識別子に書き換える。図1の例では、値が「os01」の識別子が、値が「os02」の第2識別子に書き換えられている。また処理部12は、第2OS4のレジストリ4a内の管理キーを、第2管理キーとは異なる値の第3管理キーに書き換える。図1の例では、値が「aaa」の管理キーが、値が「bbb」の第3管理キーに書き換えられている。
そして処理部12は、第2識別子と第3管理キーとの組を含む第2レコードを、記憶部11に格納する。
このようにして、第1OS3からコピーされた第2OS4に対して、第1OS3とは別の識別子が付与され、記憶部11には、対応する個別のレコードが格納される。すなわち、仮想マシンごとOSがコピーされても、情報処理装置10では、それぞれ異なる個体のOSとして認識し、それぞれに識別子を割り当てることができる。OSの個体識別が可能となることにより、例えば、OSごとの識別子を、そのOSにインストールされているソフトウェアのサポート契約に関連付けておくことで、1つのサポート契約に対して複数のソフトウェアの問い合わせを行うことを防ぐことができる。
なおOSのコピー後に、第1OS3が機能停止した場合、第1OS3のレジストリ3a内の管理キーの書き換えはできない。この場合、記憶部11の第1レコード内の第1管理キーも書き換えられない。すると、第2OS4の認識時には、第2OS4から取得した識別子と第1識別子との値が一致し、かつ第2OS4から取得した管理キーと第1管理キーとの値が一致する。この場合、処理部12は、第2OS4のレジストリ4a内の管理キーと第1レコード内の第1管理キーとを、第2管理キーとは異なる値の第3管理キーに書き換える。これにより、後に第1OS3が再起動されたとき、第1OS3と第2OS4との管理キーは異なる値となる。その結果、処理部12は、管理キーの違いにより、第1OS3と第2OS4とを個別の個体として認識することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、確実なOSの個体識別を行うことで、OSに付与した識別子を用いて、OSにインストールされているソフトウェアに関するサポート契約の適切な管理を行うものである。
図2は、第2の実施の形態のシステム構成例を示す図である。顧客企業30は、サービス提供業者40から、コンピュータシステムに関する各種サービスの提供を受ける。例えば顧客企業30は、複数のサーバ210,220,・・・と管理サーバ100とを所持する。サーバ210,220,・・・は、顧客企業30における業務の遂行に利用するコンピュータである。管理サーバ100は、サーバ210,220,・・・にインストールされているソフトウェアに対するサポートサービスの契約の管理を支援するコンピュータである。
サーバ210,220,・・・と管理サーバ100とは、ローカルネットワーク20で接続されている。また、顧客企業30は、各サーバ210,220,・・・にインストールするソフトウェアを、例えばサービス提供業者40から購入する。そして顧客企業30は、購入したソフトウェアのサポートサービスを、サービス提供業者40から受ける。例えば顧客企業30のユーザは、ローカルネットワーク20に接続された管理サーバ100を用いて、サポート契約の適用対象であることを確認するための暗号ファイルを生成する。顧客企業30のユーザは、生成した暗号ファイルを、サービス提供業者に40に送り、サポートサービスを依頼する。
サービス提供業者40は、サポート契約管理サーバ300を有している。サポート契約管理サーバ300は、顧客企業30に販売したソフトウェアのサポートライセンスを管理するコンピュータである。サポート契約管理サーバ300は、例えば顧客企業30のローカルネットワーク20に、広域的なネットワーク50を介して接続されている。サポート契約管理サーバ300は、例えばネットワーク50経由で、管理サーバ100が作成した暗号ファイルを受け取ることができる。そして、サポート契約管理サーバ300は、顧客企業30から提供された暗号ファイルに基づいて、サポート対象のソフトウェアに対するサポート契約の有無を確認する。サポート契約があることが確認できた場合、サービス提供業者40のサービス担当者が、顧客企業30へのソフトウェアサポートサービスを実施する。
なお図2に示すサーバ210,220,・・・は、第1の実施の形態に示した管理対象コンピュータ1,2の一例である。また図2に示す管理サーバ100は、第1の実施の形態に示した情報処理装置10の一例である。
図3は、第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のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ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の実施の形態の処理機能を実現することができる。なおサーバ210,220,・・・およびサポート契約管理サーバ300も、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。また第1の実施の形態に示した情報処理装置10も、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。
管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図4は、第2の実施の形態の各装置の機能の一例を示すブロック図である。サーバ210,220,・・・は、それぞれ1以上のOSを実行している。例えばサーバ210は、複数のOS211,212,・・・を実行している。複数のOS211,212,・・・の実行は、例えばハイパーバイザを用いることで実現できる。例えばサーバ210は、ハイパーバイザを用いて、サーバ210内に複数の仮想マシン(VM:Virtual Machine)を構築する。そしてサーバ210は、構築した複数の仮想マシンそれぞれで、OS211,212,・・・を実行させる。
サーバ210で実行されているOS211は、レジストリ211aを有している。レジストリ211aは、OS211における設定情報を格納するためのデータベースである。またOS211には、ソフトウェアサポート契約の管理対象となるソフトウェア211bをインストールすることができる。OS211がソフトウェア211bを実行すると、ソフトウェア211bの実行過程で発生する各種イベントを示すメッセージを蓄積するログ211cが生成される。ログ211cには、例えば、ソフトウェア211bを実行しているときに発生したエラーを示すエラーメッセージが含まれる。エラーメッセージには、例えばエラーの種別を示すエラーコードが含まれる。
なおOS211に限らず、サーバ210,220,・・・のいずれかで実行されているOSは、OS211と同様に、レジストリを有し、ソフトウェアを実行している場合には、そのソフトウェアに対応するログを有する。
管理サーバ100は、OS情報データベース110、ユーザインタフェース120、OS状態監視部130、およびログ管理部140を有する。
OS情報データベース110は、サーバ210,220,・・・上で動作しているOSに関する情報を記憶するデータベースである。例えば管理サーバ100のメモリ102またはストレージ装置103の記憶領域の一部が、OS情報データベース110として使用される。
ユーザインタフェース120は、顧客企業30内のユーザ31からの入力の受け付け、入力に応じた処理結果の表示を行う。
OS状態監視部130は、サーバ210,220,・・・上で動作しているOSの状態を監視する。例えばOS状態監視部130は、各OSに対してOS管理番号とOS管理キーを付与する。OS管理番号は、OSの識別子である。OS管理キーは、例えばランダムに生成した文字、数字、またな記号の配列である。例えばOS状態監視部130は、OS211にリモートログインし、OS211のOS管理番号とOS管理キーとを、そのOS211のレジストリ211aに格納する。そしてOS状態監視部130は、OS管理番号とOS管理キーとを用いて、OSの状態を管理する。
ログ管理部140は、サーバ210,220,・・・におけるソフトウェアが出力したログを管理する。例えばログ管理部140は、OS状態監視部130を介して、いずれかのサーバのログを取得し、そのログを暗号化する。例えばログ管理部140は、サービス提供業者40から提供された公開鍵によって暗号化を行う。暗号化されたログは、ユーザ31によって、サポート依頼の際に、トラブル内容の記録として、サービス提供業者40におけるサポート担当者41に渡される。
サポート契約管理サーバ300は、サポート契約情報データベース310、およびサポート契約管理部320を有している。
サポート契約情報データベース310は、顧客企業30との間で締結したサポート契約に関する情報を記憶する。例えば、サポート契約管理サーバ300が有するメモリまたはストレージ装置の記憶領域の一部が、サポート契約情報データベース310として使用される。
サポート契約管理部320は、サービス提供業者40内のサポート担当者41からのサポート契約情報データベース310への入力の受け付け、および入力に応じたサポート契約情報データベース310に対する処理結果の表示を行う。またサポート契約管理部320は、暗号化されたファイルを復号する。例えばサポート契約管理部320は、不具合が発生したソフトウェアのログや、そのソフトウェアがインストールされているOSのOS管理番号などを暗号化した暗号データを、サービス提供業者40の秘密鍵で復号する。さらにサポート契約管理部320は、復号によって得られたログなどの情報を参照して、ユーザ31からのサポート依頼におけるサポート対象のソフトウェアがサポート契約の対象か否かの確認処理を行う。
次に、各装置で管理する情報について、具体的に説明する。
図5は、レジストリの一例を示す図である。OS211のレジストリ211aには、OS211の環境設定、およびOS211にインストールされているソフトウェアの環境設定に関する情報が設定されている。レジストリ211aに設定されている情報の中には、ソフトウェア211bに関連する情報として、IPアドレス、OS管理番号、OS管理キー、およびインストール有無フラグが含まれている。これらの情報は、例えばソフトウェア211bの製品名「ソフトウェアA」に対応付けて、レジストリ211aに登録されている。
ソフトウェア211bに関する情報内のIPアドレスは、OS211のIPアドレスである。ソフトウェア211bに関する情報内のOS管理番号は、顧客企業30内でOSを一意に識別するための識別番号である。ソフトウェア211bに関する情報内のOS管理キーは、OSのコピーが生成された場合に、コピーによって生成された複数のOSを区別するために用いるデータである。ソフトウェア211bに関する情報内のインストール有無フラグは、OS211にソフトウェア211bがインストールされているか否かを示すフラグである。図5の例では、ソフトウェア211bがインストールされている場合、インストール有無フラグに丸印を設定し、ソフトウェア211bがインストールされていない場合、インストール有無フラグにばつ印を設定するものとする。なお、データ上は、例えば、丸印を「1」の値に置き換えて記憶し、ばつ印を「0」の値に置き換えて記憶する。
図6は、OS情報データベースの一例を示す図である。OS情報データベース110には、サーバ210,220,・・・内で実行されているOSごとのレコードに、対応するOSにおけるソフトウェアに関する情報が格納されている。例えばOS情報データベース110内の各レコードには、IPアドレス、OS管理番号、OS管理キー、およびインストール有無フラグが含まれている。
図7は、サポート契約情報データベースの一例を示す図である。サポート契約情報データベース310には、顧客企業とのソフトウェア1本分のサポート契約ごとのレコードに、サポート契約に関する情報が格納されている。例えばサポート契約情報データベース310内の各レコードには、顧客名、製品名、サポート契約番号、およびOS管理番号が含まれる。顧客名は、サポート契約を締結した顧客の名称である。製品名は、サポート対象となるソフトウェアの製品名である。サポート契約番号は、ソフトウェア1本ずつのサポート契約を識別するための識別番号である。OS管理番号は、サポート対象となるソフトウェアがインストールされているOSの識別番号である。なお、サポート対象のソフトウェアが確定していないサポート契約に関するレコードについては、OS管理番号は未設定(空欄)である。
以上のようなデータを用いて、ソフトウェアに対するサポート契約の管理が行われる。以下の説明では、まず、図8〜図23を参照して、顧客企業30が、サービス提供業者40との間でソフトウェアに対するサポート契約を締結し、サポートサービスの提供を受けるまでの基本的な手順について説明する。その後、図24〜図33を参照して、OSごと仮想マシンがコピーされた場合の対処手順について説明する。最後に、図34〜図40を参照して、OSごと仮想マシンがコピーされた場合を想定したサポート契約管理処理の全体の処理手順を説明する。
<サポートサービスの提供手順>
まず、OSごと仮想マシンがコピーされる場合を想定せずに、顧客企業30に対して、サポート契約の範囲内のソフトウェアに対してサポートを行う手順について説明する。
図8は、ソフトウェアインストール前の状態の一例を示す図である。例えばユーザ31は、サービス提供業者40からソフトウェアパッケージ51を購入する。ソフトウェアパッケージ51には、インストールできるOSの数がライセンス数で示されている。図8の例では、ソフトウェアパッケージ51のライセンス数は「4」である。すなわち、顧客企業30は、4つのOSに対してソフトウェアパッケージ51を用いてソフトウェアをインストールする権利を有する。
ソフトウェアパッケージ51は、例えばコンピュータ読み取り可能な記録媒体である。またユーザ31は、ソフトウェアパッケージ51として、電子データのみをネットワーク50経由で受け取ることもできる。この段階では、いずれのサーバにも、管理対象となるソフトウェアはインストールされていない。そのため、例えばサーバ210内のOS211,212それぞれのレジストリ211a,212aには、インストールなしを示すインストール有無フラグが設定されている。
ソフトウェアパッケージ51を購入した顧客企業30のユーザ31は、ソフトウェアパッケージ51を用いて、サーバ210,220,・・・内のいずれかのOSに、ソフトウェアをインストールし、そのソフトウェアを用いた情報処理をサーバに実行させる。また顧客企業30は、サービス提供業者40とソフトウェアのサポート契約を結ぶことで、サービス提供業者40からソフトウェアのサポートサービスの提供を受けることができる。
図9は、ソフトウェアのインストールおよびサポート契約後の状態の一例を示す図である。例えば顧客企業30のユーザ31は、ソフトウェア購入時に、顧客名(Z社)、ソフトウェア名(ソフトウェアA)、サポート契約本数(2本)をサービス提供業者40のサポート担当者41に伝える。顧客企業30とサービス提供業者40との間でサポート契約が成立すると、サポート担当者41は、サポート契約管理サーバ300内のサポート契約情報データベース310に、締結されたサポート契約に関する情報を格納する。
図9の例では、顧客企業30は、サポート契約を2本購入しているので、サポート契約情報データベース310には、2つのレコードが追加されている。追加された2つのレコードには、共通の顧客名と製品名が設定されている。また追加された2つのレコードのサポート契約番号は、異なる値である。
ユーザ31は、サポート契約締結後、ソフトウェアパッケージ51を用いて、ソフトウェアをインストールする。図9の例では、OS211に対してソフトウェア211bがインストールされている。ユーザ31がOS211にソフトウェア211bをインストールすると、OS211のレジストリ211aに、ソフトウェア211bのインストール情報が書き込まれる。すなわちインストール有無フラグに、インストール有りを示す値が設定される。
また、ユーザ31は、サポート契約に基づくサポートを受けるための準備として、管理サーバ100に、ソフトウェア211bをインストールしたOS211に関する情報を登録する。
図10は、管理サーバへのOS情報の登録状況の一例を示す第1の図である。ユーザ31は、ユーザインタフェース120にサポート対象のソフトウェアがインストールされたOS211のOS情報データベース110への登録を指示する入力を行う。例えばユーザ31は、OS211のIPアドレスを含む登録指示を入力する。登録指示は、ユーザインタフェース120で受け取られ、OS状態監視部130に転送される。
登録指示を受信したOS状態監視部130は、まずOS情報データベース110から、すでに登録されているOS情報を示すレコードを取得する。このとき、OS情報データベース110にレコードが登録されている場合は、OS状態監視部130は、取得したレコードのOS管理キーの書き換え処理を行うことになる。しかし、図10の例では、OS情報のレコードは登録されていないため、OS管理キーの書き換え処理は行われない。
OS情報データベース110にOS情報を示すレコードが存在しないことを確認したOS状態監視部130は、登録指示に従ったOS情報の登録処理を行う。
図11は、管理サーバへのOS情報の登録状況の一例を示す第2の図である。OS状態監視部130は、まず管理対象のOS211のレジストリ211aから、OS管理番号、OS管理キー、インストール有無フラグの各情報を取得する。この段階では、レジストリ211aには、OS管理番号とOS管理キーとは登録されていない。従って、OS状態監視部130は、インストール有無フラグのみを取得することができる。
次にOS状態監視部130は、OS情報データベース110を参照し、取得したOS管理番号がすでに登録されていないか確認する。図11の例では、確認段階では未登録である。
OS状態監視部130は、OS管理番号がOS情報データベース110に登録されていない場合、OS管理番号、OS管理キーを新規に作成し、OS211のレジストリ211aに書き込む。さらにOS状態監視部130は、OS211のレジストリ211aに登録されているソフトウェア211bに関する情報を含む新規のレコードを、OS情報データベース110に登録する。図11の例では、OS211のIPアドレス「192.168.10.10」、OS管理番号「os01」、OS管理キー「aaa」、およびインストール有無フラグ「○」が設定されたレコードが、OS情報データベース110に登録されている。
このようにして、ソフトウェア211bがインストールされているOS211に対してOS管理番号とOS管理キーとが付与される。そして、OS211のレジストリ211aに格納されているソフトウェア211bに関する情報と同じ内容が、管理サーバ100内のOS情報データベース110に登録される。
図11の例は、ユーザ31が、すでにソフトウェア211bがインストールされているOS211の登録指示を入力した場合の処理であるが、ユーザ31は、ソフトウェアのインストールが未実施のOSに関する登録指示を入力することもできる。
図12は、管理サーバへのOS情報の登録状況の一例を示す第3の図である。図12の例では、ユーザ31は、ソフトウェアがインストールされていないOS212に関する登録指示を、管理サーバ100に入力している。入力された登録指示は、ユーザインタフェース120で受け取られ、OS状態監視部130に転送される。このとき、OS状態監視部130は、図10に示したように、OS情報データベース110へのレコードの登録の有無の確認と、登録されているレコードのOS管理キーの更新とを行うことになるが、図12ではそれらの処理は省略している。
OS状態監視部130は、まず管理対象のOS212のレジストリ212aから、OS管理番号、OS管理キー、インストール有無フラグの各情報を取得する。次にOS状態監視部130は、OS情報データベース110を参照し、取得したOS管理番号がすでに登録されていないか確認する。図12の例では、確認段階では未登録である。そこでOS状態監視部130は、OS管理番号、OS管理キーを新規に作成し、OS212のレジストリ212aに書き込む。さらにOS状態監視部130は、OS212のレジストリ212aに登録されているソフトウェアに関する情報を含む新規のレコードを、OS情報データベース110に登録する。図12の例では、OS212のIPアドレス「192.168.10.11」、OS管理番号「os02」、OS管理キー「bbb」、およびインストール有無フラグ「×」が設定されたレコードが、OS情報データベース110に登録されている。
このようにして、ソフトウェアが未インストールのOS212についても、対応するレコードを、管理サーバ100のOS情報データベース110に登録することができる。そしてユーザ31は、管理サーバ100への登録指示の後に、OS212へのソフトウェアのインストールを行うことができる。
図13は、管理サーバへの登録後のソフトウェアのインストール状況の一例を示す図である。例えばユーザ31は、ソフトウェアパッケージ51を用いて、OS212に対してソフトウェア212bをインストールする。ユーザ31がOS212にソフトウェア212bをインストールすると、OS212のレジストリ212aに、ソフトウェア212bのインストール情報が書き込まれる。すなわちインストール有無フラグに、インストール有りを示す値が設定される。
OS212へソフトウェア212bをインストールした直後は、レジストリ212aに示されているソフトウェア212bに関する情報が、管理サーバ100のOS情報データベース110に反映されていない。そこで、管理サーバ100では、ソフトウェアのインストール有無フラグの定期取得を行う。
図14は、インストール有無フラグの定期取得の状況の一例を示す図である。管理サーバ100のOS状態監視部130は、設定された時間ごと、インストール有無フラグの取得処理を行う。例えばOS状態監視部130は、OS情報データベース110から、登録されているOS211,212のレコードを取得する。次にOS状態監視部130は、すでにレコードが登録されている各OS211,212のレジストリ211a,212aから、インストール有無フラグを取得する。そしてOS状態監視部130は、各OS211,212から取得したインストール有無フラグを、OS情報データベース110に書き込む。
このようにして、管理サーバ100にOSの情報を登録後に、そのOSにソフトウェアをインストールした場合でも、インストールされたことを管理サーバ100で把握することができる。
その後、サーバ220内の2つのOSにもソフトウェアがインストールされ、それらのOSの情報を示すレコードが、OS情報データベース110に格納されたものとする。これにより、ソフトウェアパッケージ51のライセンス数分のOSに対して、ソフトウェアがインストールされたこととなる。
図15は、ライセンス数分のソフトウェアインストール後の状態の一例を示す図である。サーバ220では、2つのOS221,222が実行されている。各OS221,222には、ソフトウェア221b,222bがインストールされている。各OS221,222のレジストリ221a,222aには、インストールされたソフトウェア221b,222bに関する情報が登録されている。
管理サーバ100のOS情報データベース110には、サーバ220内の2つのOS221,222それぞれに対応するレコードが登録されている。各レコードには、対応するOSのIPアドレス、OS管理番号、OS管理キー、およびソフトウェアがインストール済みであることを示すインストール有無フラグが設定されている。
ところで各サーバ210,220で実行されているOSは、IPアドレスを変更することができる。IPアドレスが変更されたOSは、OS管理番号は変更されないが、OS管理キーは変更される。
図16は、IPアドレス変更状況の一例を示す図である。図16の例では、ユーザ31は、サーバ210内のOS211のIPアドレスを「192.168.10.10」から「192.168.10.14」に変更している。ユーザ31はOS211のIPアドレスの変更後、管理サーバ100に対して、OS211のIPアドレスの変更を指示する。例えばユーザ31は、変更前のIPアドレス「192.168.10.10」と変更後のIPアドレス「192.168.10.14」とを指定したIPアドレス設定変更指示を、管理サーバ100に入力する。
管理サーバ100では、ユーザインタフェース120がIPアドレス設定変更指示を受け付ける。ユーザインタフェース120は、取得したIPアドレス設定変更指示をOS状態監視部130に転送する。OS状態監視部130は、OS情報データベース110から、変更前のIPアドレス「192.168.10.10」に対応するレコードを取得する。次に、OS状態監視部130は、OS211用の新たなOS管理キー「aab」を生成する。さらにOS状態監視部130は、変更後のIPアドレスに基づいてOS211にアクセスし、OS211内のレジストリ211a内のOS管理キーとして、新たに生成したOS管理キー「aab」を書き込む。
またOS状態監視部130は、取得したレコードのIPアドレスを変更後のIPアドレス「192.168.10.14」に更新し、そのレコードのOS管理キーを新たに生成したOS管理キー「aab」に更新する。そしてOS状態監視部130は、更新したレコードを、OS情報データベース110内の元の位置に書き戻す。
このようにして、OSのIPアドレスが変更された場合、OS情報データベース110内の該当OSに対応するレコードのIPアドレスとOS管理キーとが更新される。
ユーザ31は、OSにインストールしたソフトウェアを使用して業務を遂行する。ソフトウェアを使用していると、何らかの不具合が発生する場合がある。不具合の原因は、ソフトウェア自身にある場合、OSにある場合、あるいはOSを実行しているサーバにある場合などがあり、ユーザ31が自身で不具合の原因を判断するのが困難な場合がある。そのような場合、ユーザ31は、サポート契約に基づいて、サービス提供業者40からソフトウェアのサポートを受けることができる。
次に、インストールされたいずれかのソフトウェアの利用中に不具合が発生したときの、サポート依頼手順について説明する。
図17は、サポート依頼の一例を示す第1の図である。図17の例では、サーバ210内のOS211において、ソフトウェア211bの不具合が発生している。ソフトウェア211bにおいて不具合が発生すると、不具合に応じたメッセージ(例えばエラーメッセージ)が、ログ211cに格納される。
ユーザ31は、ソフトウェア211bで不具合が発生したことを認識すると、OS211のIPアドレスを確認する。図17の例では、OS211のIPアドレスは「192.168.10.10」である。
ユーザ31は、OS211のIPアドレスをキーとして、管理サーバ100に、OS211のOS管理番号の問い合わせを入力する。OS管理番号の問い合わせは、ユーザインタフェース120で受け取られる。ユーザインタフェース120は、取得したOS管理番号の問い合わせに応じて、OS管理番号取得要求をOS状態監視部130に送信する。OS状態監視部130は、OS情報データベース110内のOS211のIPアドレスに対応するレコードからOS管理番号「os01」を取得する。OS状態監視部130は、取得したOS管理番号を、ユーザインタフェース120に送信する。ユーザインタフェース120は、受信したOS管理番号をモニタ21に表示する。
ユーザ31は、モニタ21に表示されたOS管理番号を確認し、管理サーバ100に、そのOS管理番号に対応するOS211上のソフトウェア211bに関するログ取得指示を入力する。ログ取得指示は、ユーザインタフェース120で受け取られる。ユーザインタフェース120は、取得したログ取得指示をログ管理部140に送信する。
ログ管理部140は、OS状態監視部130を介して、OS211のログ211c、OS管理番号、およびOS管理キーを取得する。例えばログ管理部140は、OS状態監視部130に、OS管理番号「os01」のログ取得要求を送信する。OS状態監視部130は、ログ取得要求に応じて、OS管理番号「os01」に対応するOS211から、ログ211c、OS管理番号「os01」、OS管理キー「aaa」を取得する。OS状態監視部130は、OS211から取得した情報を、ログ管理部140に転送する。
ログ管理部140は、取得したログ、OS管理番号、OS管理キーを暗号化し、暗号化されたデータ(暗号データ)を含むファイル52を作成する。そして、ログ管理部140は、作成したファイル52を出力する。例えばログ管理部140は、作成したファイル52をストレージ装置103内の所定のフォルダ(ディレクトリ)に格納し、ログ取得完了の応答をユーザインタフェース120に送信する。ユーザインタフェース120は、ログを含むファイルの格納が完了したことを、モニタ21に表示する。
ユーザ31は、サービス提供業者40のサポート担当者41に、サポート依頼を行う。サポート依頼は、電話、電子メールなどの手段で行われる。サポート依頼の際、ユーザ31は、顧客名、OS管理番号、ソフトウェア名をサポート担当者41に伝える。またユーザ31は、暗号化したファイル52をサポート担当者41に渡す。例えばユーザ31は、管理サーバ100の電子メール機能を用い、サポート依頼の電子メールにファイル52を添付し、サポート担当者41のメールアドレス宛てに送信する。
図18は、サポート依頼の一例を示す第2の図である。サポート依頼を受けたサポート担当者41は、ユーザ31から受け取ったファイル52をサポート契約管理サーバ300に入力する。入力されたファイル52は、サポート契約管理部320によって復号される。例えばサポート担当者41は、ファイル52をサポート契約管理サーバ300のストレージ装置内に格納する。そしてサポート担当者41は、サポート契約管理サーバ300にファイル52の復号指示を入力する。
復号指示はサポート契約管理部320で受け取られる。サポート契約管理部320は、ファイル52内のデータを復号し、復号されたデータを含む新たなファイルを、ストレージ装置に格納する。
またサポート担当者41は、ユーザ31から通知された、顧客名、ソフトウェア名、OS管理番号、および不具合内容を、サポート契約管理サーバ300に入力する。するとサポート契約管理部320は、復号されたファイル内の情報を参照し、ユーザ31から伝えられたOS管理番号のOSのログであること、サポート依頼を受けた内容の不具合が起きていることを確認する。
次にサポート契約管理部320は、顧客名とソフトウェア名とをキーにして、サポート契約情報データベース310から、その顧客名とソフトウェア名との組に対応するサポート契約を示すレコードを取得する。そしてサポート契約管理部320は、取得したサポート契約のレコードの中に、OS管理番号の欄の値が、ユーザ31から伝えられたOS管理番号と一致するレコードがあるか確認する。図18の例では、該当するレコードが存在しない。そこでサポート契約管理部320は、取り出したサポート契約のレコードの中に、OS管理番号の欄が空のレコードがあるか確認する。図18の例では、OS管理番号の欄が空のレコードが存在する。
サポート契約管理部320は、OS管理番号の欄が空のレコードのOS管理番号の欄に、今回入力されたOS管理番号を登録する。図18の例では、サポート契約情報データベース310の先頭のレコードに、OS管理番号「os01」が設定されている。これにより、1つのサポート契約とOS管理番号とが関連付けられる。
そしてサポート契約管理部320は、不具合のあったソフトウェアがサポート契約の適用対象であることを表示する。サポート担当者41は、サポート契約の適用対象であることを確認し、ユーザ31に対するソフトウェア211bのサポートを実施する。
図18に示した処理により、OS管理番号「os01」のOS211にインストールされているソフトウェア211bが、サポート契約の対象であることがサポート契約情報データベース310に登録される。以後、ソフトウェア211bで不具合が発生した場合、サポート契約であることの確認後に、サポート担当者41によるサポートが実施される。
図19は、サポート契約対象のソフトウェアで不具合が発生した場合の対処の一例を示す図である。ソフトウェア211bで再び不具合が発生すると、ユーザ31は、サポート担当者41に対して、サポート依頼を行い、顧客名、OS管理番号、ソフトウェア名を伝え、暗号化したファイル53をサポート担当者41に渡す。
サポート担当者41は、顧客名、OS管理番号、ソフトウェア名をサポート契約管理サーバ300に入力すると共に、サポート契約管理部320にファイル53を復号させる。サポート契約管理部320は、復号したデータに基づいて、ユーザ31から伝えられたOS管理番号のOSのログであること、ユーザ31から伝えられた内容の不具合が起きていることを確認する。またサポート契約管理部320は、顧客名、ソフトウェア名をキーにして、サポート契約情報データベース310から、キーに該当するサポート契約のレコードを取得する。そしてサポート契約管理部320は、取得したサポート契約のレコードの中に、OS管理番号の欄がユーザから伝えられたOS管理番号と一致するレコードがあるか確認する。図19の例では、該当するレコードが存在する。そこでサポート契約管理部320は、不具合のあったソフトウェアがサポート契約の適用対象であることを表示する。サポート担当者41は、サポート契約の適用対象であることを確認し、ユーザ31に対するソフトウェア211bのサポートを実施する。
このようにして、すでにサポート契約の対象となっているソフトウェア211bで不具合が発生した場合、そのサポート契約に基づいてサポートが実施される。
次に、サポート契約の対象となっているソフトウェア211bとは別のソフトウェアで不具合が発生した場合について説明する。
図20は、サポート契約対象とは別のソフトウェアで不具合が発生した場合の対処の一例を示す図である。サーバ220内のOS221にインストールされたソフトウェア221bで不具合が発生すると、ユーザ31は、サポート担当者41に対して、サポート依頼を行い、顧客名、OS管理番号、ソフトウェア名を伝える。そしてユーザ31は、暗号化したファイル54をサポート担当者41に渡す。
サポート担当者41は、顧客名、OS管理番号、ソフトウェア名をサポート契約管理サーバ300に入力すると共に、サポート契約管理部320にファイル54を復号させる。サポート契約管理部320は、復号したデータに基づいて、ユーザ31から伝えられたOS管理番号のOSのログであること、ユーザ31から伝えられた内容の不具合が起きていることを確認する。次にサポート契約管理部320は、顧客名、ソフトウェア名をキーにして、サポート契約情報データベース310から、キーに該当するサポート契約のレコードを取得する。そしてサポート契約管理部320は、取得したサポート契約のレコードの中に、OS管理番号の欄がユーザから伝えられたOS管理番号と一致するレコードがあるか確認する。図20の例では、該当するレコードが存在しない。そこでサポート契約管理部320は、取り出したサポート契約のレコードの中に、OS管理番号の欄が空のレコードがあるか確認する。図20の例では、OS管理番号の欄が空のレコードが存在する。
サポート契約管理部320は、OS管理番号の欄が空のレコードのOS管理番号の欄に、今回入力されたOS管理番号を登録する。そしてサポート契約管理部320は、不具合のあったソフトウェアがサポート契約の適用対象であることを表示する。サポート担当者41は、サポート契約の適用対象であることを確認し、ユーザ31に対するソフトウェア221bのサポートを実施する。
顧客企業30は、ソフトウェア2本分のサポート契約しか締結していないため、図20の処理により、サポート契約の対象とすることができる2本のソフトウェアが特定されたこととなる。ここで、サポート契約の対象の本数以上のソフトウェアで不具合が発生した場合について説明する。
図21は、サポート契約の対象の本数以上のソフトウェアで不具合が発生した場合の対処の一例を示す図である。サーバ210内のOS212にインストールされたソフトウェア212bで不具合が発生すると、ユーザ31は、サポート担当者41に対して、サポート依頼を行い、顧客名、OS管理番号、ソフトウェア名を伝える。そしてユーザ31は、暗号化したファイル55をサポート担当者41に渡す。
サポート担当者41は、顧客名、OS管理番号、ソフトウェア名をサポート契約管理サーバ300に入力すると共に、サポート契約管理部320にファイル55を復号させる。サポート契約管理部320は、復号したデータに基づいて、ユーザ31から伝えられたOS管理番号のOSのログであること、ユーザ31から伝えられた内容の不具合が起きていることを確認する。次にサポート契約管理部320は、顧客名、ソフトウェア名をキーにして、サポート契約情報データベース310から、キーに該当するサポート契約のレコードを取得する。そしてサポート契約管理部320は、取得したサポート契約のレコードの中に、OS管理番号の欄がユーザから伝えられたOS管理番号と一致するレコードがあるか確認する。図21の例では、該当するレコードが存在しない。そこでサポート契約管理部320は、取り出したサポート契約のレコードの中に、OS管理番号の欄が空のレコードがあるか確認する。図21の例では、OS管理番号の欄が空のレコードが存在しない。この場合、サポート契約管理部320は、新規サポート契約の提案を促すメッセージを表示する。サポート担当者41は、メッセージを確認し、ユーザ31に対して、新規のサポート契約の締結を提案する。
このように、サポート契約の対象の本数以上のソフトウェアで不具合が発生すると、ユーザ31は、サポート契約の本数を超えた分のソフトウェアについては、サポートを受けることができない。この場合、ユーザ31が、サポート契約の本数を超えた分のソフトウェアについてのサポートを受けるために、不具合が発生したソフトウェアがインストールされているOSのOS管理番号を偽る可能性がある。次に、ユーザが虚偽のOS管理番号を伝えて、サポート依頼をした場合の対処について説明する。
図22は、虚偽のOS管理番号を伝えてサポートを受けようとした場合の対処の一例を示す図である。図22の例は、サーバ210内のOS212にインストールされたソフトウェア212bで不具合が発生したにもかかわらず、ユーザ31が、すでにサポート契約の対象となっているソフトウェア211bでの不具合であると虚偽の連絡をした場合である。ユーザ31は、サポート担当者41に対して、サポート依頼を行い、顧客名、虚偽のOS管理番号(os01)、ソフトウェア名を伝える。そしてユーザ31は、暗号化したファイル56をサポート担当者41に渡す。ファイル56には、不具合の発生していないソフトウェア211bのログ211cが含まれている。
サポート担当者41は、顧客名、OS管理番号、ソフトウェア名をサポート契約管理サーバ300に入力すると共に、サポート契約管理部320にファイル56を復号させる。サポート契約管理部320は、ユーザ31から伝えられたOS管理番号(os01)のOSのログであることを確認する。しかし図22の例では、ログ内に、不具合の発生した形跡は見つからない。そのためサポート契約管理部320は、ユーザ31から伝えられた内容の不具合が起きていることを確認できない。そこでサポート契約管理部320は、不具合内容の再確認を促すメッセージを表示する。サポート担当者41は、メッセージを確認し、ユーザ31に対して、不具合内容の再確認を依頼する連絡をする。
このように、ユーザ31が虚偽のOS管理番号を伝えたとしても、サポート契約の本数を超えてソフトウェアのサポートをせずに済む。
以上が、基本的なサポート契約の管理方法である。以上の方法でサポート契約を管理することで、ソフトウェアが仮想マシン上にインストールされている場合でもその個体を特定し、サポート契約と結びつけることができる。すなわち、ユーザ31がサポート担当者41に問い合わせを行った際に、サポート担当者41はユーザの問い合わせ内容が正しいかどうかを正しく判断することができ、適切な対応を行うことができる。
<OSごと仮想マシンがコピーされた場合の対処手順>
次に、OSごと仮想マシンがコピーされた場合の対処手順について説明する。
仮想マシンはコンピュータ上で動作する擬似的なコンピュータシステムであり、コピーを行うことが可能である。コピーを行った場合仮想マシン上のOSごとコピーが行われ、OSの個体を特定する情報ごとコピーが行われてしまう。上記のサポートサービスの提供手順では、各OSにOS管理番号を割り当てているが、仮想マシンのコピーを行った場合、管理サーバ100から、同じOS管理番号を持つOSが複数認識できるようになってしまう。その結果、OS管理番号とサポート契約が1対1で結びつかなくなってしまう。
このような仮想マシンのコピーに対応するため、第2の実施の形態では、OS管理番号とは別に、各OSにOS管理キーを対応付けている。管理サーバ100は、OS管理キーを、定期的もしくは所定の操作が行われるたびに更新する。すなわち管理サーバ100は、適宜、新たにOS管理キーを生成し、それをOSのレジストリと、管理サーバ100内のOS情報データベース110に上書きする。これによってOSがコピーされ複数に枝分かれしても、管理サーバはOS管理キーを参照することで、それぞれを別のOSとして認識し、それぞれに別のOS管理番号を改めて割り当てることが可能となる。その結果、仮想マシンのコピーが行われた場合であっても、1つのサポート契約で複数のソフトウェアに対してサポートしてしまうことが抑止される。
図23は、仮想マシンをコピーする前の運用状態の一例を示す図である。図23の例では、サーバ210内のOS211に管理対象のソフトウェア211bがインストールされており、他のOSには、管理対象のソフトウェアのインストールは行われていないものとする。また管理サーバ100には、すでにOS211についてのOS情報の登録が済んでいる。さらに、顧客企業30とサービス提供業者40との間で、1本のソフトウェアについてのサポート契約が締結されている。そしてサポート担当者41により、サポート契約に関する情報が、サポート契約管理サーバ300のサポート契約情報データベース310に登録されている。
このような状態のときに、OSごと仮想マシンのコピーが行われた場合を考える。
図24は、仮想マシンのコピーが行われた後の状態の一例を示す図である。図24の例では、OS211を実行しているサーバ210内の仮想マシンのコピーが、サーバ220に作成されている。その結果、サーバ220では、OS211と同じ内容を有するOS223が実行されている。すなわち、OS223には、OS211にインストールされていたソフトウェア211bと同じソフトウェア223bがインストールされている。OS211内にソフトウェア211bのログ211cが含まれていた場合、ログ211cと同じ内容を有するログ223cが、コピー先のOS223にも含まれる。
さらにコピー直後は、OS223のレジストリ223aには、OS211のレジストリ211aと同じ情報が設定されている。IPアドレスまで同一だと、2つのOS211,223を同時に同じネットワークに接続することができない。そこで、一方のOS(図24の例では、コピー先のOS223)のIPアドレスは変更されている。
このように、仮想マシンのコピーが行われた結果、コピー元の仮想マシンで実行されているOS211と同じOS管理番号およびOS管理キーを有するOS223が生成される。このままの状態では、ソフトウェアのサポート対象の特定が困難となる。そこで、管理サーバ100は、OS管理キーの定期更新を行う。
図25は、OS管理キーの定期更新状況の一例を示す図である。OS状態監視部130は、設定された時間間隔で、定期的に以下の処理を行う。
まずOS状態監視部130は、OS情報データベース110から、すでに登録してあるOSの情報を示すレコードを取得する。次にOS状態監視部130は、取得したレコードに示されているIPアドレスに対応するOS211のレジストリ211aに、新たなOS管理キーを書き込む。図25の例では、OS管理キーが「aaa」から「aab」に更新されている。さらにOS状態監視部130は、OS211に新たに設定したOS管理キーを、OS情報データベース110内の対応するレコードのOS管理キーの欄に書き込む。
このように第2の実施の形態では、OS情報データベース110に登録されているOSの情報に基づいて、管理サーバ100で認識しているOSのOS管理キーの定期更新を行っている。これにより、仮想マシンのコピーが行われ、コピー元のOSとコピー先のOSとをOS管理キーに基づいて区別可能となる。
OS管理キーの更新は、例えば、新たなOSの情報を管理サーバ100に登録する際にも行われる。
図26は、OS情報がすでに登録されている場合における他のOS情報の登録状況の一例を示す第1の図である。ユーザ31がユーザインタフェース120に、管理対象のソフトウェア223bがインストールされたOS223の登録指示を入力する。登録指示には、OS223のIPアドレスが含まれる。入力された登録指示は、ユーザインタフェース120で受け取られ、OS状態監視部130に転送される。
登録指示を受信したOS状態監視部130は、まずOS情報データベース110から、すでに登録されているOS情報を示すレコードを取得する。OS状態監視部130は、取得したレコードに示されているIPアドレスに対応するOS211のレジストリ211aに、新たなOS管理キーを書き込む。図26の例では、OS管理キーが「aab」から「aac」に更新されている。さらにOS状態監視部130は、OS211に新たに設定したOS管理キーを、OS情報データベース110内の対応するレコードのOS管理キーの欄に書き込む。
その後、登録指示に応じたOS情報の登録処理が行われる。
図27は、OS情報がすでに登録されている場合における他のOS情報の登録状況の一例を示す第2の図である。OS状態監視部130は、まず管理対象のOS223のレジストリ223aから、OS管理番号、OS管理キー、インストール有無フラグの各情報を取得する。この段階では、図26に示したレジストリ223a内の情報が取得される。次にOS状態監視部130は、OS情報データベース110を参照し、取得したOS管理番号がすでに登録されていないか確認する。図27の例では、確認段階では登録済みである。
OS状態監視部130は、OS管理番号がOS情報データベース110に登録されている場合、レジストリ223a内のOS管理キーと、OS情報データベース110に登録されているレコードに含まれるOS管理キーとが一致するかどうかを照合する。図27の例では、OS管理キーが一致しない。この場合、OS状態監視部130は、ユーザインタフェース120を介して、新たなOS管理番号になることを、ユーザ31に通知する。
そして、OS状態監視部130は、OS管理番号とOS管理キーとを新規に作成し、OS223のレジストリ223aに書き込む。さらにOS状態監視部130は、OS223のレジストリ223aに登録されているソフトウェア223bに関する情報を含む新規のレコードを、OS情報データベース110に登録する。図27の例では、OS223のIPアドレス「192.168.10.11」、OS管理番号「os02」、OS管理キー「bbb」、およびインストール有無フラグ「○」が設定されたレコードが、OS情報データベース110に登録されている。
このようにして、OS情報の登録指示が管理サーバ100に入力された場合、すでに登録されているOS情報に示されるOSのOS管理キーが更新される。
ところで、図27に示した処理では、コピー先のOSのOS管理番号は新たに生成された値に変更されているが、コピー元のOSのOS管理番号は変更されていない。しかし、運用形態によっては、逆に、コピー元のOSのOS管理番号が新たに生成された値に変更され、コピー先のOSのOS管理番号は変更されない場合もある。コピー元のOSのOS管理番号が変更される場合としては、例えば仮想マシンのコピーを行った後に、コピー元の仮想マシンを有するサーバの電源が切られた場合がある。
以下、図24に示したような仮想マシンのコピーが行われた後、OS管理キーの更新が行われる前に、コピー元のOSを有するサーバの電源が遮断された場合を想定し、コピー元のOSのOS管理番号が変更される場合の処理について説明する。
図28は、コピー元のOSを有するサーバの電源遮断後のOS管理キーの定期更新状況の一例を示す図である。まずOS状態監視部130は、OS情報データベース110から、すでに登録してあるOSの情報を示すレコードを取得する。次にOS状態監視部130は、取得したレコードに示されているIPアドレスに対応するOS211のレジストリ211aへの、新たなOS管理キーの書き込みを試みる。しかし、サーバ210の電源が遮断されており、OS状態監視部130は、OS211のレジストリ211aにアクセスすることができない。そのため、OS管理キーの書き込みは失敗となり、OS管理キーの更新は行われずに、OS管理キーの定期更新処理は終了する。
図29は、コピー元のOSを有するサーバの電源遮断後におけるOS情報の登録に伴うOS管理キーの更新状況の一例を示す第1の図である。ユーザ31がユーザインタフェース120に、管理対象のソフトウェア223bがインストールされたOS223の登録指示を入力する。登録指示には、OS223のIPアドレスが含まれる。入力された登録指示は、ユーザインタフェース120で受け取られ、OS状態監視部130に転送される。
登録指示を受信したOS状態監視部130は、まずOS情報データベース110から、すでに登録されているOS情報を示すレコードを取得する。OS状態監視部130は、取得したレコードに示されているIPアドレスに対応するOS211のレジストリ211aに、新たなOS管理キーの書き込みを試みる。しかし、サーバ210の電源が遮断されており、OS状態監視部130は、OS211のレジストリ211aにアクセスすることができない。そのため、OS管理キーの書き込みは失敗となり、OS管理キーの更新は行われずに、登録指示に応じたOS情報の登録処理が行われる。
図30は、コピー元のOSを有するサーバの電源遮断後におけるOS情報の登録に伴うOS管理キーの更新状況の一例を示す第2の図である。OS状態監視部130は、まず管理対象のOS223のレジストリ223aから、OS管理番号、OS管理キー、インストール有無フラグの各情報を取得する。次にOS状態監視部130は、OS情報データベース110を参照し、取得したOS管理番号がすでに登録されていないか確認する。図30の例では、登録済みである。
OS状態監視部130は、取得したOS管理番号がOS情報データベース110に登録されている場合、そのOS管理番号を含むレコードのOS管理キーと、OS223から取得したOS管理キーとが一致するかどうかを確認する。図30の例では、OS管理キーが一致する。OS状態監視部130は、OS管理キーが一致する場合、指示されたOS情報がすでに登録済みであると判断して、新規の登録は行わない。
ただし、OS223のIPアドレス「192.168.10.11」と、OS情報データベース110に登録されているOS223の情報を示すレコードに設定されているIPアドレス「192.168.10.10」とが異なっている。そこで、OS状態監視部130は、該当レコードのIPアドレスを「192.168.10.11」に変更する。そしてOS状態監視部130は、登録されているIPアドレスを変更したことを、ユーザインタフェース120に通知する。ユーザインタフェース120は、登録されているIPアドレスが変更されたことを、モニタ21に表示する。
以後、管理サーバ100では、OS管理キー「aaa」に対応するOSが、コピー先のOS223であると認識する。その後、サーバ210の電源が遮断されたまま、OS管理キーの定期更新が行われたものとする。
図31は、登録済みのOS情報のコピー先のOSへの割り当て後におけるOS管理キーの定期更新状況の一例を示す図である。OS状態監視部130は、OS情報データベース110から、すでに登録してあるOSの情報を示すレコードを取得する。次にOS状態監視部130は、取得したレコードに示されているIPアドレスに対応するOS223のレジストリ223aに、新たなOS管理キーを書き込む。図31の例では、OS管理キーが「aaa」から「aab」に更新されている。さらにOS状態監視部130は、OS223に新たに設定したOS管理キーを、OS情報データベース110内の対応するレコードのOS管理キーの欄に書き込む。
その後、サーバ210に電源が投入され、OS211が起動されたものとする。図30に示した処理により、現在、OS情報データベース110に登録されているレコードは、OS223のOS情報を示している。そこで、ユーザ31は、OS211の起動完了後、OS211の登録指示を管理サーバ100に対して入力する。
図32は、コピー元のOSの再起動後のOS情報の登録状況の一例を示す第1の図である。ユーザ31がユーザインタフェース120に、管理対象のソフトウェア211bがインストールされたOS211の登録指示を入力する。登録指示には、OS211のIPアドレスが含まれる。入力された登録指示は、ユーザインタフェース120で受け取られ、OS状態監視部130に転送される。
登録指示を受信したOS状態監視部130は、まずOS情報データベース110から、すでに登録されているOS情報を示すレコードを取得する。OS状態監視部130は、取得したレコードに示されているIPアドレスに対応するOS223のレジストリ223aに、新たなOS管理キーを書き込む。図32の例では、OS管理キーが「aab」から「aac」に更新されている。さらにOS状態監視部130は、OS223に新たに設定したOS管理キーを、OS情報データベース110内の対応するレコードのOS管理キーの欄に書き込む。
その後、登録指示に応じたOS情報の登録処理が行われる。
図33は、コピー元のOSの再起動後のOS情報の登録状況の一例を示す第2の図である。OS状態監視部130は、まず管理対象のOS211のレジストリ211aから、OS管理番号、OS管理キー、インストール有無フラグの各情報を取得する。次にOS状態監視部130は、OS情報データベース110を参照し、取得したOS管理番号がすでに登録されていないか確認する。図33の例では、確認段階では未登録である。
OS状態監視部130は、OS管理番号がOS情報データベース110に登録されていない場合、OS管理番号、OS管理キーを新規に作成し、OS211のレジストリ211aに書き込む。さらにOS状態監視部130は、OS211のレジストリ211aに登録されているソフトウェア211bに関する情報を含む新規のレコードを、OS情報データベース110に登録する。図33の例では、OS211のIPアドレス「192.168.10.10」、OS管理番号「os02」、OS管理キー「bbb」、およびインストール有無フラグ「○」が設定されたレコードが、OS情報データベース110に登録されている。
このように、仮想マシンのコピーによって、同じOS管理番号およびOS管理キーを有するOSが複数存在することになった場合、管理サーバ100は最初に情報取得ができたほうのOSを、すでに認識しているOSであると認識する。そして管理サーバ100は、後から情報を取得したほうのOSを新規のOSとして認識する。
このように、OS管理番号にOS管理キーを組み合わせ、認識しているOS管理キーを適宜更新することで、OSごと仮想マシンがコピーされた場合でも、コピー元のOSとコピー先のOSとの区別が可能となる。
<全体を通した処理手順>
以下、第2の実施の形態における一連の処理手順を、さらに具体的に説明する。なお、ライセンス数分のOSへのソフトウェアのインストール、および顧客企業30とサービス提供業者40との間のソフトウェアのサポート契約は、すでに完了しているものとする。
まず、OS情報を管理サーバ100に登録する際の処理手順について詳細に説明する。
図34は、OS情報の登録処理の手順の前半を示すシーケンス図である。以下、図34に示す処理を、ステップ番号に沿って説明する。
[ステップS101]ユーザインタフェース120は、ユーザ31が入力したOSの登録指示を取得する。OSの登録指示には、登録対象のOSのIPアドレスが含まれる。
[ステップS102]ユーザインタフェース120は、取得したOSの登録指示を、OS状態監視部130に転送する。
[ステップS103]OSの登録指示を受信したOS状態監視部130は、OS情報データベース110に対して、OS情報を示す全レコードの呼び出し要求を送信する。
[ステップS104]OS情報データベース110は、OS情報を示す全レコードを、OS状態監視部130に送信する。
[ステップS105]OS状態監視部130は、OS情報データベース110にOS情報が存在するか否かを判断する。例えばOS状態監視部130は、OS情報データベース110から、少なくとも1つのレコードを受信した場合、OS情報が存在すると判断する。また、OS状態監視部130は、OS情報データベース110から、1つのレコードも受信できなかった場合、OS情報が存在しないと判断する。OS状態監視部130は、OS情報が存在した場合、処理をステップS106に進める。またOS状態監視部130は、OS情報が存在しない場合、処理をステップS121(図35参照)に進める。
[ステップS106]OS状態監視部130は、取得したOS情報のレコードの数分だけ、ステップS107〜S110の処理を実行する。すなわちOS状態監視部130は、OS情報データベース110から取得したレコードを1つずつ選択し、選択したレコードに対して、ステップS107〜S110の処理を行う。図34の例では、OS211のOS情報を示すレコードが取得できた場合の処理が、ステップS107〜S110に示されている。
[ステップS107]OS状態監視部130は、新規のOS管理キーを生成し、選択したレコードに対応するOS211のレジストリ211aに、生成したOS管理キーを書き込む。例えばOS状態監視部130は、OS211に対して、レジストリ211aへのOS管理キーの書き込み要求を送信する。
[ステップS108]OS211は、OS状態監視部130へ、レジストリ211aへの書き込み結果を応答する。例えばOS211は、書き込みが成功した場合、書き込みコマンドの正常終了を応答する。またOS211は、書き込みに失敗した場合、書き込み失敗を示すエラーメッセージを応答する。
[ステップS109]OS状態監視部130は、書き込み結果の応答に基づいて、書き込みが成功したか否かを判断する。例えばOS状態監視部130は、OS211から、書き込み成功の応答を受信した場合に、書き込みが成功したと判断する。またOS状態監視部130は、エラーメッセージの応答を受信した場合や、OS211との通信接続に失敗した場合、書き込みに失敗したと判断する。OS状態監視部130は、書き込みに成功した場合、処理をステップS110に進める。またOS状態監視部130は、書き込みに失敗した場合、処理をステップS112に進める。
[ステップS110]OS状態監視部130は、OS211のレジストリ211aに書き込んだOS管理キーを、OS情報データベース110内のOS211のOS情報を示すレコードに書き込む。
[ステップS111]OS情報データベース110は、OS管理キーの書き込み後、書き込み成功を示す書き込み結果応答を、OS状態監視部130に送信する。
[ステップS112]OS状態監視部130は、OS情報データベース110から取得したすべてのレコードに対する処理が完了すると、処理をステップS121(図35参照)に進める。
図35は、OS情報の登録処理の手順の後半を示すシーケンス図である。以下、図35に示す処理を、ステップ番号に沿って説明する。なお、OSの登録指示には、OS223のIPアドレスが含まれていたものとする。
[ステップS121]OS状態監視部130は、OS223のレジストリ223aから、OS管理番号、OS管理キー、インストール有無フラグの各情報を取得する。例えばOS状態監視部130は、OS223に対して、レジストリ223a内のOS管理番号、OS管理キー、およびインストール有無フラグの読み出し要求を送信する。
[ステップS122]OS223は、読み出し要求に応じて、レジストリ223a内のOS管理番号、OS管理キー、およびインストール有無フラグの各情報を、OS状態監視部130に送信する。なおOS223は、図24に示したように、他のOSのコピーの場合、OSの登録指示の際にすでにOS管理番号とOS管理キーとが設定されている。他方、他のOSのコピーでなければ、OS管理番号とOS管理キーとは未設定である。OS223は、レジストリ223aにOS管理番号とOS管理キーとが未設定の場合、インストール有無フラグのみをOS状態監視部130に送信する。
[ステップS123]OS状態監視部130は、OS管理番号とOS管理キーとを取得できたか否かを判断する。OS状態監視部130は、OS管理番号とOS管理キーとを取得できた場合、処理をステップS124に進める。またOS状態監視部130は、OS管理番号とOS管理キーとを取得できなかった場合、処理をステップS131に進める。
[ステップS124]OS状態監視部130は、OS223から取得したOS管理番号を含むレコードを、OS情報データベース110から検索する。
[ステップS125]OS情報データベース110は、指定されたOS管理番号を含むレコードを、検索結果としてOS状態監視部130に送信する。なお、該当するレコードがない場合、OS情報データベース110は、該当レコードなしを示す応答を、OS状態監視部130に送信する。
[ステップS126]OS状態監視部130は、OS223から取得したOS管理番号が、OS情報データベース110に登録済みか否かを判断する。例えばOS状態監視部130は、OS情報データベース110に対する検索により、該当するレコードが見つかった場合、登録済みであると判断する。OS状態監視部130は、OS223から取得したOS管理番号が登録済みであれば、処理をステップS127に進める。またOS状態監視部130は、OS223から取得したOS管理番号が未登録であれば、処理をステップS131に進める。
[ステップS127]OS状態監視部130は、OS223から取得したOS管理キーと、OS情報データベース110から取得したレコードに含まれるOS管理キーとが一致するか否かを照合する。
[ステップS128]OS状態監視部130は、OS管理キーが一致した場合、処理をステップS137に進める。またOS状態監視部130は、OS管理キーが一致しない場合、処理をステップS129に進める。
[ステップS129]OS状態監視部130は、新たなOS管理番号を割り当てることを示す情報を、ユーザインタフェース120に通知する。
[ステップS130]ユーザインタフェース120は、新たなOS管理番号を割り当てることを示すメッセージを、モニタ21に表示する。
[ステップS131]OS状態監視部130は、OS管理番号とOS管理キーとを、OS223のレジストリ223aに書き込む。
[ステップS132]OS223は、OS管理番号とOS管理キーとの書き込み結果の応答を、OS状態監視部130に送信する。
[ステップS133]OS状態監視部130は、新規のレコードをOS情報データベース110に登録する。登録されるレコードには、OS223のIPアドレス、ステップS131で書き込んだOS管理番号およびOS管理キー、ステップS121,122の処理で取得したインストール有無フラグが含まれる。
[ステップS134]OS情報データベース110は、レコードの書き込み後、書き込み結果の応答を、OS状態監視部130に送信する。
[ステップS135]OS状態監視部130は、操作結果をユーザインタフェース120に通知する。
[ステップS136]ユーザインタフェース120は、通知された操作結果をモニタ21に表示する。
ステップS128でOS管理キーが一致しないと判断された場合、以上でOS情報の登録処理が終了する。以下は、ステップS128でOS管理キーが一致すると判断された場合の処理である。
[ステップS137]OS状態監視部130は、IPアドレスを変更することを、ユーザインタフェース120に通知する。
[ステップS138]ユーザインタフェース120は、IPアドレスを変更する旨のメッセージを、モニタ21に表示する。
[ステップS139]OS状態監視部130は、OS情報データベース110における、ステップS124の検索でヒットしたレコードのIPアドレスを、取得したOS情報の登録指示に含まれるIPアドレスに変更する。
[ステップS140]OS情報データベース110は、変更後のIPアドレスを該当レコードに書き込み、書き込み結果の応答を、OS状態監視部130に送信する。
[ステップS141]OS状態監視部130は、操作結果をユーザインタフェース120に通知する。
[ステップS142]ユーザインタフェース120は、通知された操作結果をモニタ21に表示する。
このようにして、OS情報の登録指示に応じて、その登録指示に示されるOSのOS情報が、OS情報データベース110に登録される。
次に、インストールの有無を示す情報の定期取得処理について説明する。
図36は、インストール情報定期取得処理の手順の一例を示すシーケンス図である。以下、図36に示す処理をステップ番号に沿って説明する。
[ステップS201]OS状態監視部130は、予め設定された時間ごとに、ステップS202〜S210の処理を実行する。
[ステップS202]OS状態監視部130は、OS情報データベース110に、登録されたOS情報を示すレコードの取得要求を送信する。
[ステップS203]OS情報データベース110は、OS情報を示すレコードをOS状態監視部130に送信する。
[ステップS204]OS状態監視部130は、OS情報のレコードを取得できたか否かを判断する。OS状態監視部130は、レコードを取得できた場合、処理をステップS205に進める。またOS状態監視部130は、レコードを取得できなかった場合、処理をステップS211に進める。
[ステップS205]OS状態監視部130は、OS情報データベース110に登録されていたレコードごとに、ステップS206〜S210の処理を実行する。
以下、OS212の情報を示すレコードに対する処理を実行するものとして、ステップS206〜S209の処理を説明する。
[ステップS206]OS状態監視部130は、処理対象のレコードに対応するOS212のレジストリ212a内のインストール有無フラグの取得要求を、OS212に送信する。
[ステップS207]OS212は、レジストリ212a内のインストール有無フラグを、OS状態監視部130に送信する。
[ステップS208]OS状態監視部130は、OS情報データベース110に対して、OS212に対応するレコードへのOS212から取得したインストール有無フラグの書き込み要求を送信する。
[ステップS209]OS情報データベース110は、インストール有無フラグの書き込みを行い、書き込み結果を示す応答を、OS状態監視部130に送信する。
[ステップS210]OS状態監視部130は、OS情報データベース110から取得したすべてのレコードに対する処理が完了した場合、処理をステップS211に進める。
[ステップS211]OS状態監視部130は、例えばユーザ31により、インストール情報の定期取得処理の終了指示が入力されたとき、ステップS202〜S210の繰り返し処理の実行を終了する。
このようにして、例えば図14に示したように、各サーバにソフトウェアがインストールされているか否かを示す情報が、管理サーバ100で取得され、OS情報データベース110に反映される。
次に、OS管理キーの定期更新処理手順について説明する。
図37は、OS管理キー定期更新処理の手順の一例を示すシーケンス図である。以下、図37に示す処理をステップ番号に沿って説明する。
[ステップS301]OS状態監視部130は、予め設定された時間ごとに、ステップS302〜S311の処理を実行する。
[ステップS302]OS状態監視部130は、OS情報データベース110に、登録されたOS情報を示すレコードの取得要求を送信する。
[ステップS303]OS情報データベース110は、OS情報を示すレコードをOS状態監視部130に送信する。
[ステップS304]OS状態監視部130は、OS情報のレコードを取得できたか否かを判断する。OS状態監視部130は、レコードを取得できた場合、処理をステップS305に進める。またOS状態監視部130は、レコードを取得できなかった場合、処理をステップS312に進める。
[ステップS305]OS状態監視部130は、OS情報データベース110に登録されていたレコードごとに、ステップS306〜S310の処理を実行する。
以下、OS211の情報を示すレコードに対する処理を実行するものとして、ステップS306〜S309の処理を説明する。
[ステップS306]OS状態監視部130は、新たなOS管理キーを生成し、OS211のレジストリ211aへの新たなOS管理キーの書き込み要求を、OS211に送信する。
[ステップS307]OS211は、OS管理キーをレジストリ211aに書き込み、書き込み結果を示す応答を、OS状態監視部130に送信する。
[ステップS308]OS状態監視部130は、OS管理キーの書き込みが成功したか否かを判断する。OS状態監視部130は、書き込みが成功した場合、処理をステップS309に進める。またOS状態監視部130は、書き込みに失敗した場合、処理をステップS311に進める。
[ステップS309]OS状態監視部130は、OS情報データベース110に対して、OS211に対応するレコードへの新たなOS管理キーの書き込み要求を送信する。
[ステップS310]OS情報データベース110は、OS管理キーの書き込みを行い、書き込み結果を示す応答を、OS状態監視部130に送信する。
[ステップS311]OS状態監視部130は、OS情報データベース110から取得したすべてのレコードに対する処理が完了した場合、処理をステップS312に進める。
[ステップS312]OS状態監視部130は、例えばユーザ31により、OS管理キーの定期取得処理の終了指示が入力されたとき、ステップS302〜S311の繰り返し処理の実行を終了する。
このようにして、各OSのOS管理キーが定期的に更新される。
次に、ソフトウェアで不具合が発生し、サポートサービスを依頼する場合の処理について説明する。サポートサービスを依頼する場合、顧客企業30側のシステムでは、OS管理番号特定処理と暗号ファイル作成処理とが行われる。
図38は、OS管理番号特定処理の手順の一例を示すフローチャートである。以下、図38に示す処理をステップ番号に沿って説明する。
[ステップS401]ユーザインタフェース120は、ユーザ31からの、OS管理番号問い合わせの入力を受け付ける。
[ステップS402]ユーザインタフェース120は、OS管理番号問い合わせに示されるIPアドレスを指定したOS管理番号取得要求を、OS状態監視部130に送信する。
[ステップS403]OS状態監視部130は、IPアドレスを指定したOS管理暗号の読み出し要求を、OS情報データベース110に送信する。
[ステップS404]OS情報データベース110は、指定されたIPアドレスを含むレコードからOS管理番号を読み出し、読み出したOS管理番号を、OS状態監視部130に送信する。
[ステップS405]OS状態監視部130は、取得したOS管理番号をユーザインタフェース120に送信する。
[ステップS406]ユーザインタフェース120は、OS状態監視部130から送られたOS管理番号を、OS管理番号問い合わせに応じた処理結果としてモニタ21に表示する。
これにより、ユーザ31は、不具合が発生したソフトウェアがインストールされているOSのOS管理番号を認識することができる。そしてユーザ31が、OS管理番号を指定して、ログ取得指示を管理サーバ100に入力すると、暗号ファイル作成処理が実行される。
図39は、暗号ファイル作成処理の手順の一例を示すフローチャートである。以下、図39に示す処理をステップ番号に沿って説明する。
[ステップS501]ユーザインタフェース120は、ユーザ31からの、ログ取得指示の入力を受け付ける。
[ステップS502]ユーザインタフェース120は、ログ管理部140に対して、OS管理番号を指定したログ取得要求を送信する。
[ステップS503]ログ管理部140は、OS状態監視部130に対して、OS管理番号を指定した、ログとOS管理キーとの取得要求を送信する。
[ステップS504]OS状態監視部130は、指定されたOS管理番号に対応するOS211に対して、OS管理番号とOS管理キーとの読み出し要求を送信する。
[ステップS505]OS211は、レジストリ211aからOS管理番号とOS管理キーとを読み出し、読み出したOS管理番号とOS管理キーとをOS状態監視部130に送信する。
[ステップS506]OS状態監視部130は、OS211に対して、ログ211cの読み出し要求を送信する。
[ステップS507]OS211は、ログ211cを読み出し、読み出したログ211cをOS状態監視部130に送信する。
[ステップS508]OS状態監視部130は、読み出したOS管理番号、OS管理キー、およびログ211cを、ログ管理部140に送信する。
[ステップS509]ログ管理部140は、OS管理番号、OS管理キー、およびログ211cを暗号化し、暗号データを生成する。そしてログ管理部140は、生成した暗号データを含むファイルを作成する。ログ管理部140は、作成したファイルを、処理の場所に格納する。
[ステップS510]ログ管理部140は、ログの取得結果を、ユーザインタフェース120に通知する。
[ステップS511]ユーザインタフェース120は、ログの取得結果を、モニタ21に表示する。例えば暗号化されたOS管理番号、OS管理キー、およびログ211cを含むファイルの格納場所が、モニタ21に表示される。
ユーザ31は、サポート担当者41へのサポート依頼の際、OS管理番号と不具合内容とをサポート担当者41に伝えると共に、サポート担当者41に暗号化されたログ211cを含むファイルを渡す。サポート担当者41は、受け取ったファイルを用いて、不具合のあったソフトウェアがサポート契約の対象か否かを判断する。
なお図18〜図22に示した例では、サポート担当者41自身がサポート契約の対象か否かの判断を行っているが、その判断をサポート契約管理サーバ300に実行させることもできる。以下、サポート契約管理サーバ300による、サポート対象か否かを判断する処理(サポート契約確認処理)の手順について説明する。
図40は、サポート契約確認処理の手順の一例を示すフローチャートである。以下、図40に示す処理をステップ場合に沿って説明する。
[ステップS601]サポート契約管理部320は、顧客名、ソフトウェア名、OS管理番号、および不具合内容の入力を受け付ける。例えばサポート担当者41が、サポート契約管理部320によって表示された画面内の所定のフィールドに、顧客名などの情報を入力する。OS管理番号と不具合内容とは、サポート依頼の際にユーザ31から伝えられた情報が入力される。不具合内容は、例えば不具合発生時に表示されたエラーコードである。サポート契約管理部320は、所定のフィールドに入力された各情報を取得する。
[ステップS602]サポート契約管理部320は、暗号データを含むファイルを取得する。例えばサポート担当者41が、サポート契約管理サーバ300のストレージ装置内にファイルを格納し、そのファイルの格納場所を入力する。サポート契約管理部320は、入力された場所からファイルを取得する。
[ステップS603]サポート契約管理部320は、取得したファイル内の暗号データを復号する。暗号データの復号により、OS管理番号、OS管理キー、およびログが取得できる。
[ステップS604]サポート契約管理部320は、復号したデータ内のOS管理番号と、ステップS601で入力されたOS管理番号とを比較する。
[ステップS605]サポート契約管理部320は、ステップS604の比較において、OS管理番号が一致したか否かを判断する。サポート契約管理部320は、OS管理番号が一致した場合、処理をステップS607に進める。またサポート契約管理部320は、OS管理番号が不一致の場合、処理をステップS606に進める。
[ステップS606]サポート契約管理部320は、ログの再取得の連絡を促すメッセージをモニタに表示する。サポート担当者41は、表示されたメッセージを確認し、ユーザ31から受け取ったログの採取元が間違っていることを認識し、ユーザ31に対して、正しいログの再取得を依頼する。その後、サポート契約確認処理は終了する。
[ステップS607]サポート契約管理部320は、入力された不具合内容と、ログに示されている不具合内容とを比較する。例えばサポート契約管理部320は、不具合内容を示すエラーコードを比較する。
[ステップS608]サポート契約管理部320は、不具合内容が一致したか否かを判断する。サポート契約管理部320は、不具合内容が一致した場合、処理をステップS610に進める。またサポート契約管理部320は、不具合内容が不一致の場合、処理をステップS609に進める。
[ステップS609]サポート契約管理部320は、不具合内容の再確認を促すメッセージをモニタに表示する。サポート担当者41は、表示されたメッセージを確認し、ユーザ31から受け取ったログの採取元、あるいは通知された不具合内容が間違っていることを認識し、ユーザ31に対して、不具合内容の再確認を依頼する。その後、サポート契約確認処理は終了する。
[ステップS610]サポート契約管理部320は、入力された顧客名とソフトウェア名との組に対応するレコードを、サポート契約情報データベース310から取得する。
[ステップS611]サポート契約管理部320は、取得したレコードの中に、入力されたOS管理番号と一致するOS管理番号を有するレコードがあるか否かを判断する。サポート契約管理部320は、該当するレコードがあれば、処理をステップS615に進める。またサポート契約管理部320は、該当するレコードがなければ、処理をステップS612に進める。
[ステップS612]サポート契約管理部320は、取得したレコードの中に、OS管理番号が未設定のレコードがあるか否かを判断する。サポート契約管理部320は、該当するレコードがあれば、処理をステップS614に進める。またサポート契約管理部320は、該当するレコードがなければ、処理をステップS613に進める。
[ステップS613]サポート契約管理部320は、新規サポート契約の提案を促すメッセージを、モニタに表示する。サポート担当者41は、表示されたメッセージを確認することで、サポート契約の対象のソフトウェア本数が不足していることを認識し、ユーザ31に対して新規のサポート契約を提案する。その後、サポート契約確認処理が終了する。
[ステップS614]サポート契約管理部320は、取得したレコードのうちの、OS管理番号が未設定のレコードの1つに、入力されたOS管理番号を設定する。サポート契約管理部320は、OS管理番号を設定したレコードを、サポート契約情報データベース310に書き戻す。
[ステップS615]サポート契約管理部320は、サポート依頼によるサポート対象のソフトウェアが、サポート契約の適用対象であることをモニタに表示する。サポート担当者41は、サポート契約の適用対象であることを示す表示を確認し、ユーザ31に対してサポートを実施する。その後、サポート契約確認処理が終了する。
このように、第2の実施の形態によれば、ソフトウェアが仮想マシン上にインストールされている場合でもその個体を特定し、サポート契約と結びつけることができる。その結果、ユーザ31がサポート担当者41にサポートを依頼した際に、サポート担当者41は、ユーザの問い合わせ内容が正しいかどうかを判断することができ、適切な対応を行うことができる。
さらに管理サーバ100は、仮想マシンのコピーを行っても、コピー元とコピー先とのそれぞれの仮想マシンで動作しているOSを違う個体だと認識し、それぞれにOS管理番号を割り当てることできる。これによって、仮想マシンのコピーが行われた場合でも、ソフトウェア1本分のサポート契約で、コピー元とコピー先との両方のソフトウェアに対してサポートを実施してしまうことを防ぐことができる。
〔その他の実施の形態〕
第2の実施の形態において、図17に示した例では、ユーザ31は、OS管理番号の問い合わせと、OSに関するログ取得指示とを個別に行っているが、これらの入力を1回で済ませることもできる。例えばユーザ31は、OSのIPアドレスを指定したログ取得指示を入力する。ユーザインタフェース120は、ログ取得指示を受け取り、IPアドレスを指定したログ取得要求を、ログ管理部140に送信する。ログ管理部140は、IPアドレスを指定して、OS管理番号、OS管理キー、およびログの取得要求を、OS状態監視部130に送信する。OS状態監視部130は、IPアドレスに対応するOSのレジストリから、OS管理番号とOS管理キーとを取得する。またOS状態監視部130は、IPアドレスに対応するOSからソフトウェアのログを取得する。OS状態監視部130は、取得したOS管理番号、OS管理キー、およびログを、ログ管理部140に送信する。ログ管理部140は、取得したOS管理番号、OS管理キー、およびログを暗号化し、暗号データを含むファイルを作成する。そしてログ管理部140は、ユーザインタフェース120に、ログ取得完了の応答を送信する。ユーザインタフェース120は、ログを含むファイルの格納が完了したことを、モニタ21に表示する。このようにして、ログを含む暗号データを作成する際のユーザ31の入力の手間を削減することができる。
なお、第2の実施の形態では、ネットワーク上でOSを特定する情報としてIPアドレスを用いているが、他の情報でOSを特定してもよい。例えばOSに個体識別番号が設定されている場合、その個体識別番号によってOSを特定することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 管理対象コンピュータ上で実行されているものと認識しているオペレーティングシステムに対応するレコードを記憶する記憶部と、
前記管理対象コンピュータ上で実行されている第1オペレーティングシステムの存在を認識すると、前記第1オペレーティングシステムに対応する第1識別子および第1管理キーを、前記第1オペレーティングシステムの設定情報を格納する第1格納領域に書き込み、前記第1識別子と前記第1管理キーとの組を含む第1レコードを、前記記憶部に格納し、所定のタイミングで、前記第1格納領域と前記第1レコードそれぞれに含まれる前記第1管理キーを、前記第1管理キーとは異なる値の第2管理キーに書き換え、前記管理対象コンピュータ上で実行されている第2オペレーティングシステムの存在を認識すると、前記第2オペレーティングシステムの設定情報を格納する第2格納領域から識別子と管理キーとを取得し、取得した前記識別子の値が前記第1識別子の値と一致し、かつ取得した前記管理キーの値が前記第2管理キーの値と一致しない場合、前記第2格納領域内の前記識別子を、前記第1識別子とは異なる値の第2識別子に書き換えると共に、前記第2格納領域内の前記管理キーを、前記第2管理キーとは異なる値の第3管理キーに書き換え、前記第2オペレーティングシステムに対応する前記第2識別子と前記第3管理キーとの組を含む第2レコードを、前記記憶部に格納する処理部と、
を有する情報処理装置。
(付記2) 前記処理部は、前記第1管理キーの前記第2管理キーへの変更を、所定の時間間隔で定期的に実行する、
付記1記載の情報処理装置。
(付記3) 前記処理部は、前記第1管理キーの前記第2管理キーへの変更を、前記第2オペレーティングシステムの存在の認識後、前記第2格納領域内の前記識別子の前記第2識別子への書き換え前に実行する、
付記1または2記載の情報処理装置。
(付記4) 前記処理部は、取得した前記識別子の値が前記第1識別子の値と一致し、かつ取得した前記管理キーの値が前記第1管理キーの値と一致する場合、前記第2格納領域内の前記管理キーと、前記第1レコード内の前記第1管理キーとを、前記第1管理キーとは異なる値の第4管理キーに書き換える、
付記1ないし3のいずれかに記載の情報処理装置。
(付記5) コンピュータに、
管理対象コンピュータ上で実行されている第1オペレーティングシステムの存在を認識すると、前記第1オペレーティングシステムに対応する第1識別子および第1管理キーを、前記第1オペレーティングシステムの設定情報を格納する第1格納領域に書き込み、
前記第1識別子と前記第1管理キーとの組を含む第1レコードを、記憶部に格納し、
所定のタイミングで、前記第1格納領域と前記第1レコードそれぞれに含まれる前記第1管理キーを、前記第1管理キーとは異なる値の第2管理キーに書き換え、
前記管理対象コンピュータ上で実行されている第2オペレーティングシステムの存在を認識すると、前記第2オペレーティングシステムの設定情報を格納する第2格納領域から識別子と管理キーとを取得し、
取得した前記識別子の値が前記第1識別子の値と一致し、かつ取得した前記管理キーの値が前記第2管理キーの値と一致しない場合、前記第2格納領域内の前記識別子を、前記第1識別子とは異なる値の第2識別子に書き換えると共に、前記第2格納領域内の前記管理キーを、前記第2管理キーとは異なる値の第3管理キーに書き換え、
前記第2オペレーティングシステムに対応する前記第2識別子と前記第3管理キーとの組を含む第2レコードを、前記記憶部に格納する、
処理を実行させる管理プログラム。
(付記6) 前記コンピュータに、さらに、
取得した前記識別子の値が前記第1識別子の値と一致し、かつ取得した前記管理キーの値が前記第1管理キーの値と一致する場合、前記第2格納領域内の前記管理キーと、前記第1レコード内の前記第1管理キーとを、前記第1管理キーとは異なる値の第4管理キーに書き換える、
付記5記載の管理プログラム。