(57)【特許請求の範囲】
【請求項１】
第１の計算機で実行されているライセンスサーバプロセスとの間で通信コネクションを確立することにより実行ライセンスを取得したプロセスを実行する第２の計算機と、
前記第２の計算機で実行されていた前記プロセスの実行を再開させるための第３の計算機とを備えた計算機システムであって、
前記第２の計算機で実行されている前記プロセスの処理を中断し、この中断したプロセスを前記第３の計算機に移送して前記第３の計算機で実行を再開させるプロセス移送手段と、
前記第３の計算機に移送された前記プロセスの代わりに前記ライセンスサーバプロセスとの間で通信コネクションを確立して前記実行ライセンスを取得するためのライセンス取得プロキシ手段と、
前記プロセス移送手段により前記プロセスが前記第３の計算機に移送され実行が再開された後、前記ライセンス取得プロキシ手段の動作を起動する起動手段と、
前記起動されたライセンス取得プロキシ手段が前記ライセンスサーバプロセスとの間で通信コネクションを確立した後に前記ライセンス取得プロキシ手段の実行を一時停止させる停止手段と、
前記停止手段により前記ライセンス取得プロキシ手段の実行が一時停止された後、前記ライセンス取得プロキシ手段が前記ライセンスサーバプロセスとの間で確立した通信コネクションを前記第２の計算機に移送された前記プロセスに移転する移転手段と、
前記移転手段による前記通信コネクションの移転後に前記ライセンス取得プロキシ手段の実行を終了させる終了手段と
を具備したことを特徴とする計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機上で実行しているプロセスを他の計算機に移送（マイグレーション）して、その実行を継続させるプロセスマイグレーションに関する。  特に、同時実行できるプロセスの数が制限されて使用許諾された有償ソフトウェアにおいて、ライセンスを取得して実行しているプロセスをその取得したライセンスを保持したままで他の計算機に移送するプロセスマイグレーションに関する
【０００２】
【従来の技術】
従来から、ある計算機上で実行中のプロセスを他の計算機上に移送するプロセス移送の技術がある。これは、実行中のプロセスの状態をチェックポイントとして採取／保存し、この保存したチェックポイントを用いて他の計算機上でプロセスをリスタートさせるという技術である。チェックポイントとして保存する情報は、ＣＰＵのプログラムカウンタや各種レジスタが保持している内容等のそのプロセスを実行するのに必要な制御情報である。
【０００３】
近年、同時に実行できるプロセスの数を事前に制限して顧客に使用許諾する例えばＣＡＤプログラム（ Computer Aided Designプログラム ）等の有償ソフトウェアがある。例えば、４ライセンス（同時実行ライセンス）付きで使用許諾されたＣＡＤプログラムの場合には、ＣＡＤ業務を実行するＣＡＤプログラム実行プロセスを同時に４つ実行することができる。即ち、４台の計算機（換言すると４人のユーザー）が同時にＣＡＤプログラムを実行することができる。
【０００４】
このように同時実行ライセンスを取得して実行しているプロセスを他の計算機上に移送すると、移送された後のプロセスは同時実行ライセンスを取得しないにも拘わらず、処理を継続実行してしまう問題があった。
【０００５】
【発明が解決しようとする課題】
このような同時実行ライセンスを取得して実行しているプロセスを他の計算機上にプロセス移送する処理について図４に図示したタイムチャートに基づいて説明する。具体的には、例えばＣＡＤプログラムにおいて、同時実行ライセンスを取得してＣＡＤ業務を実行するＣＡＤプログラム実行プロセスのプロセス移送を例として説明する。
【０００６】
先ず、ＣＡＤプログラム実行プロセスを時刻Ｔ０で起動する。このＣＡＤプログラム実行プロセスは、時刻Ｔ１に同時実行ライセンスをライセンスサーバープロセスから取得する。更に、ＣＡＤプログラム実行プロセスは、時刻Ｔ２でチェックポイント１を、時刻Ｔｎでチェックポイントｎを採取している。その後、時刻Ｔｎ＋１でＣＡＤプログラム実行プロセスの実行を停止し（中断し）、時刻Ｔｎで採取したチェックポイントｎを用いて他の計算機上でＣＡＤプログラム実行プロセスをリスタートさせることでプロセス移送が終了して他の計算機上でＣＡＤプログラム実行プロセスの処理が引き続いて続行される。ここで時刻Ｔｎ＋１におけるＣＡＤプログラム実行プロセスの実行の停止は、計算機の障害による計画外のプロセス移送による場合も含まれる。計画的なプロセス移送では、時刻Ｔnでチェックポイントｎを採取した後、それ以後のプロセスの実行を停止（中断）して、すぐにその採取したチェックポイントを用いて他の計算機でプロセスをリスタートする場合もある。
【０００７】
一般にプロセスは、その起動処理時に同時実行ライセンスを管理しているライセンスサーバプロセスとの間でソケットインターフェースを用いたプロセス間通信を開始して通信コネクションを確立することで、同時実行ライセンスを取得したことになる。ライセンスサーバプロセスは、同時実行ライセンスの要求のあったプロセスとの間に確立している通信コネクションの数を管理することで付与する同時実行ライセンスの数を管理している。プロセスから通信コネクションの確立を要求されたライセンスサーバプロセスは、既に他のプロセスに付与している同時実行ライセンスの数が予め設定されているライセンスの制限数に達しているか否かを判断した結果に基づいて、そのプロセスとの間に通信コネクションを確立して同時実行ライセンスを付与するか否かを制御している。従って、ライセンスサーバプロセスは、既に付与済みの同時実行ライセンスの数が予め設定されているライセンスの制限数に達していない場合には、通信コネクションの確立を要求されたプロセスとの間で通信コネクションを確立する。この結果、プロセスは同時実行ライセンスを取得する。
【０００８】
一方、ライセンスサーバプロセスは、既に付与済みの同時実行ライセンスの数が予め設定されているライセンスの制限数に達している場合には、通信コネクションの確立を要求されたプロセスとの間で通信コネクションの確立をしない。この結果、プロセスは同時実行ライセンスを取得できないので、処理を続行することができない。
【０００９】
上記説明のように他の計算機上にプロセス移送されたプロセスが同時実行ライセンスを取得しないままにその実行を再開して処理を継続実行してしまう理由を説明する。
【００１０】
図５は、ＬＡＮ（ Local Area Network ）４５に計算機（コンピュータ）４１と計算機（コンピュータ）４２が接続された計算機システムを図示している。例えば、この計算機システムでは、ＣＡＤプログラムが実行されるものとする。計算機４２上では、ＣＡＤプログラムの同時実行ライセンスを管理しているライセンスサーバープロセス４４が実行されている。計算機４１上では、ＣＡＤプログラムのＣＡＤ業務を処理するＣＡＤプログラム実行プロセス４３が実行されている。
【００１１】
ＣＡＤプログラム実行プロセス４３とライセンスサーバープロセス４４との間には、通信コネクション４６が確立されている。このため、ＣＡＤプログラム実行プロセス４３は、ライセンスサーバープロセス４４から同時実行ライセンスを取得して、その処理を行っている。このような状態で、計算機の障害等が原因でライセンスサーバープロセス４４の実行が停止してしまうことがある。このような場合には、ライセンスサーバープロセス４４は、ＣＡＤプログラム実行プロセス４３との間の通信コネクションが切断されてしまう。しかし、このような場合でもＣＡＤプログラム実行プロセス４３は、フェイルセイフ設計されているため、ライセンスサーバープロセス４４との間の通信コネクションが途中で切断されても起動時にコネクションが確立されて同時実行ライセンスを取得していれば、処理を続行することができるよう構成されている。
【００１２】
一方、計算機の障害等が原因で又はユーザーの意図的なＣＡＤプログラム実行プロセス４３の処理の中断により、ＣＡＤプログラム実行プロセス４３の処理が停止することがある。このときも同様に、ライセンスサーバープロセス４４との間の通信コネクションが切断される。このときライセンスサーバープロセス４４は、ＣＡＤプログラム実行プロセス４３との間の通信コネクションが切断されたことに基づいて、ＣＡＤプログラム実行プロセス４３に付与していた同時実行ライセンスの回収を行う。一般的にライセンスサーバープロセス４４は、同時実行ライセンスを付与したプロセス（この場合にはＣＡＤプログラム実行プロセス４３）との間の通信コネクションを監視しており、この通信コネクションが切断されたことを検出すると、プロセスが停止したと判断して付与していた同時実行ライセンスの回収を行う。
【００１３】
以上の説明から明らかなように、同時実行ライセンスを取得したプロセスが他の計算機にプロセス移送されると、それまでライセンスサーバープロセスとの間で確立されていたコネクションは切断される。このため、ライセンスサーバープロセスは、同時実行ライセンスを取得したプロセスとの間の通信コネクションが切断されるので、そのプロセスが停止したと判断して付与していた同時実行ライセンスの回収を行う。一方、プロセス移送されたプロセスは、他の計算機上で同時実行ライセンスの取得をすることなく、処理を継続することになる。
【００１４】
以上説明したように同時実行ライセンスを取得したプロセスを他の計算機にプロセス移送すると、移送したプロセスが同時実行ライセンスを取得しないままにその実行処理が継続できてしまうという問題があった。特に、クラスタシステムを構築しているコンピュータシステムにおいて、同時実行ライセンスを取得済みのプロセスが実行されている稼働系のコンピュータで障害が発生した場合、同時実行ライセンスを取得済みのプロセスは待機系のコンピュータにプロセスの移送が行われ、その処理が継続されることになる。 この場合、上記説明したようにプロセス移送が行われその処理が継続されたプロセスは、同時実行ライセンスを取得しないままにその処理を継続してしまうことになる。これは、同時実行ライセンスを取得して実行していたプロセス移送する前のプロセスが、プロセスを移送することで、同時実行ライセンスが回収されたにもかかわらずその処理を継続実施できることになってしまうことである。従って、この回収された同時実行ライセンスは、他のプロセスに対して提供することができる。これは、制限を受けていたライセンス数が一つ増えたことになる。
【００１５】
このようにクラスタシステムで実行されている同時実行できるプロセスの数が制限されて使用許諾された有償ソフトウェアは、プロセス移送が発生するとユーザーの意志にかかわらず、制限を受けていたライセンス数が増えてしまうという問題が発生してしまう。
【００１６】
本発明の目的は、同時実行ライセンスを取得したプロセスを他の計算機上にプロセス移送したとき、同時実行ライセンスを取得した状態でそのプロセスの処理を継続実行することができるプロセス移送方法及び計算機システムを提供することを目的とする。
【００１７】
【課題を解決するための手段】
本発明は、プロセスに対して実行ライセンスを付与する手段を持ち、前記実行ライセンスを取得したプロセスだけがその実行をすることができるプログラムにおいて、第１の計算機上で実行している前記実行ライセンスを取得したプロセスを第２の計算機に移送して前記第２の計算機上で実行させるためのプロセス移送方法であって、前記第１の計算機上で実行している前記実行ライセンスを取得したプロセスの処理を中断し、この中断したプロセスを前記第２の計算機に移送して前記第２の計算機上でその実行を再開させるプロセス移送ステップと、前記第２の計算機に移送されたプロセスの代わりに前記実行ライセンスを取得するステップとを具備したことを特徴とするプロセス移送方法であるる。
【００１８】
本発明によれば、同時実行ライセンスを取得したプロセスを他の計算機に移送したとき、同時実行ライセンスを取得した状態でそのプロセスの処理を継続実行することができる。
【００１９】
【発明の実施の形態】
以下、図面を用いて、４ライセンス（同時実行ライセンス）付きで使用許諾されたＣＡＤプログラムを実行する際に、同時実行ライセンスを取得したＣＡＤ業務を実行するためのＣＡＤプログラム実行プロセスを他の計算機にプロセス移送する場合を一例として、本発明の一実施形態を詳細に説明する。
【００２０】
図１は、本発明の一実施形態を説明するための計算機システムを示す。計算機システム１０には、ＬＡＮ（ Local Area Network ）１６が設けられている。このＬＡＮ１６には、計算機１１、計算機１２、計算機１３、計算機１５、ファイルサーバ１４が接続されて、相互に通信可能に設けられている。
【００２１】
ファイルサーバ１４は、図示しない外部記憶装置を持ち、計算機システム１０のファイルサーバとしての機能を提供するサーバ計算機である。このファイルサーバ１４の外部記憶装置にはＣＡＤプログラム２１が格納保存されている。計算機１５上では、ＣＡＤプログラム２１を実行することにより生成される同時実行ライセンスを管理するためのライセンスサーバプロセス２２が実行されている。計算機１１上では、ファイルサーバ１４に格納されたＣＡＤプログラム２１により起動されたＣＡＤ業務を実行するためのＣＡＤプログラム実行プロセス１７が実行されている。
【００２２】
ＣＡＤプログラム実行プロセス１７は、その起動時にライセンスサーバプロセス２２との間で、ソケットインターフェースを用いたプロセス間通信により通信コネクションを確立してライセンスサーバプロセス２２から同時実行ライセンスを取得している。このＣＡＤプログラム実行プロセス１７が移送対象となるプロセスである。計算機１２上ではプロセス移送管理デーモンプロセス１８が実行されている。このプロセス移送管理デーモンプロセス１８は、本発明のプロセス移送の実現するためのデーモンプロセスであり、その機能構成を図２に図示した。
【００２３】
図２に示すようにプロセス移送管理デーモンプロセス１８は、 チェックポイント採取指示手段１８１、プロセスリスタート手段１８２、ライセンス取得プロキシ起動手段１８３、ライセンス取得確認手段１８４、ライセンス取得プロキシサスペンド手段１８５、接続ソケット受け渡し手段１８６、ライセンス取得プロキシ停止手段１８７とから構成されている。
【００２４】
以下、図３に図示したフローチャート図を用いて、計算機１１上で実行されているＣＡＤプログラム実行プロセス１７を計算機１３に移送して、計算機１３上で実行を再開するプロセス移送を行う場合のプロセス移送管理デーモン18の動作処理手順を説明する。
【００２５】
先ず、ステップＳ３１では、プロセス移送管理デーモン18がチェックポイント採取指示手段１８１を用いて、ＣＡＤプログラム実行プロセス１７にチェックポイント採取の指示を出す。チェックポイント採取の指示を受けたＣＡＤプログラム実行プロセス１７は、実行中のプロセスの状態をチェックポイント２３として採取しファイルサーバ１４に保存する。チェックポイントとして保存する情報は、ＣＰＵのプログラムカウンタや各種レジスタが保持している内容等のそのプロセスを実行するのに必要な制御情報である。このチェックポイントの採取は、ＣＡＤプログラム実行プロセス１７にその機能を実装するか又はＤＬＬ（ Dynamic Link Library ）ファイルとして用意されたチェックポイント取得ライブラリをコールすることで実現できる。このチェックポイント２３の採取の後、プロセス移送管理デーモン18は、ＣＡＤプログラム実行プロセス１７の実行を停止する。このＣＡＤプログラム実行プロセス１７の実行が停止することにより、ＣＡＤプログラム実行プロセス１７とライセンスサーバプロセス２２との間で確立していた通信コネクションが切断される。このため、ライセンスサーバプロセス２２は、ＣＡＤプログラム実行プロセス１７に付与していた同時実行ライセンスを回収する。
【００２６】
次にステップＳ３２では、プロセス移送管理デーモン18がライセンス取得プロキシ起動手段１８３を用いて、ＣＡＤプログラム実行プロセス１７の移送先である計算機１３上に新たにＣＡＤプログラム実行プロセスをライセンス取得プロキシプロセス１９として起動する。この新たに起動されたＣＡＤプログラム実行プロセスは、起動処理の一環としてライセンスサーバプロセス２２から同時実行ライセンスを取得するものとする。このように新たに起動されたＣＡＤプログラム実行プロセスをライセンス取得プロキシプロセス１９と呼ぶ。このライセンス取得プロキシプロセス１９は、プロセス移送対象であるＣＡＤプログラム実行プロセス１７の代わりに同時実行ライセンスを取得することになる。
【００２７】
次にステップＳ３３では、プロセス移送管理デーモン18がライセンス取得確認手段１８４用いて、ライセンス取得プロキシプロセス１９が同時実行ライセンスを取得したことを確認する。このライセンス取得プロキシプロセス１９が同時実行ライセンスを取得したことの確認は、ライセンス取得プロキシプロセス１９とライセンスサーバプロセス２２との間で確立されている通信コネクションの存在を確認することで実現する。
【００２８】
ステップＳ３３でライセンス取得プロキシプロセス１９が同時実行ライセンスを取得したことを確認したら、続いてステップＳ３４では、プロセス移送管理デーモン18がライセンス取得プロキシサスペンド手段１８５用いて、ライセンス取得プロキシプロセス１９をサスペンドしてその動作を一時的に停止させる。
【００２９】
次にステップＳ３５では、プロセス移送管理デーモン18がプロセスリスタート手段１８２用いて、ファイルサーバ１４に保存したチェックポイント２３を用いて、計算機１３上でプロセス移送対象のＣＡＤプログラム実行プロセス１７をリスタートする。このリスタートによって、計算機１３上で実行が再開されるのがＣＡＤプログラム実行プロセス２０である。
【００３０】
次にステップＳ３６では、プロセス移送管理デーモン18が接続ソケット受け渡し手段１８６用いて、ライセンス取得プロキシプロセス１９とライセンスサーバプロセス２２との間で確立されている通信コネクションのソケットをライセンス取得プロキシプロセス１９からＣＡＤプログラム実行プロセス２０に渡す。
【００３１】
最後にステップＳ３７では、プロセス移送管理デーモン18がライセンス取得プロキシ停止手段１８７を用いてライセンス取得プロキシプロセス１９の実行を終了させる。
【００３２】
このような処理手順により、移送されたプロセスであるＣＡＤプログラム実行プロセス２０がライセンス取得プロキシプロセス１９からライセンスサーバプロセス２２との間で確立されている通信コネクションのソケットの受け渡しを受けたことにより、同時実行ライセンスを取得したことになる。従って、プロセス移送後のＣＡＤプログラム実行プロセス２０は、同時実行ライセンスを持った状態で処理を継続することができる。
【００３３】
以上の説明では、ステップＳ３７において、ライセンス取得プロキシプロセス１９の実行を終了させているが、終了させないでサスペンドさせても良い。この場合には、プロセス移送後のＣＡＤプログラム実行プロセス２０の処理が終了したときに、その時点でライセンス取得プロキシプロセス１９の実行を終了させる必要がある。
【００３４】
また、以上の説明では、ステップＳ３６において確立されている通信コネクションのソケットをライセンス取得プロキシプロセス１９からＣＡＤプログラム実行プロセス２０に渡しているが、これを行わなくても構わない。ただし、この場合には、ステップＳ３７で行っているライセンス取得プロキシプロセス１９の実行の終了を行わない。更にプロセス移送後のＣＡＤプログラム実行プロセス２０の処理が終了したときに、その時点でライセンス取得プロキシプロセス１９の実行の終了を行う必要がある。
【００３５】
更に以上の説明では、計算機１１、計算機１２、計算機１３、ファイルサーバ１４、計算機１５は、それぞれ独立した構成としたが、このうちの幾つかの計算機又は全ての計算機を１つの計算機で構成しても構わない。
【００３６】
【発明の効果】
本発明によれば、同時実行ライセンスを取得したプロセスを他の計算機上にプロセス移送したとき、同時実行ライセンスを取得した状態でそのプロセスの処理を継続実行することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態の計算機システムの構成を示す図である。
【図２】プロセス移送管理デーモンプロセスの構成を示す図である。
【図３】プロセス移送管理デーモンプロセスの処理手順を説明するためのフローチャートを示す図である。
【図４】従来のプロセス移送の処理手順を示したタイムチャートを示す図である。
【図５】従来の計算機システムの構成を示す図である。
【符号の説明】
１７‥‥ＣＡＤプログラム実行プロセス
１８‥‥プロセス移送管理デーモンプロセス
１９‥‥ライセンス取得プロキシプロセス
２０‥‥ＣＡＤプログラム実行プロセス
２１‥‥ＣＡＤプログラム
２２‥‥ライセンスサーバプロセス
２３‥‥チェックポイント
【図１】
0004080699.tif 000002
【図２】
0004080699.tif 000003
【図３】
0004080699.tif 000004
【図４】
0004080699.tif 000005
【図５】
0004080699.tif 000006