(57)【要約】【課題】冗長構成を実現するための複数の処理装置の間で共有資源の引き継ぎを高速で行うことができるようにする。【解決手段】本タスク引継方法は、所定の機能を実現するタスクを管理するサーバのタスクを占有している現用系の処理装置からサーバのタスクの引き継ぎを行う待機系の処理装置により実行される。そして、本タスク管理方法は、現用系の処理装置における異常の発生が検知された場合、サーバのタスクを引き継ぐためのタスク引き継ぎ要求をサーバに送信する要求ステップと、サーバから当該サーバのタスクの引き継ぎ許可を受信した場合、サーバのタスクを占有可能である旨を待機系の処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するステップとを含む。【選択図】図１
2011248737.tif 000002
【特許請求の範囲】
【請求項１】
所定の機能を実現するタスクを管理するサーバの前記タスクを占有している現用系の処理装置から前記サーバのタスクの引き継ぎを行う待機系の処理装置に、
前記現用系の処理装置における異常の発生が検知された場合、前記サーバのタスクを引き継ぐためのタスク引き継ぎ要求を前記サーバに送信する要求ステップと、
前記サーバから当該サーバのタスクの引き継ぎ許可を受信した場合、前記サーバのタスクを占有可能である旨を前記待機系の処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するステップと、
を実行させるためのタスク引継プログラム。
【請求項２】
前記現用系の処理装置における異常の発生が検出される前に、前記サーバのタスクを引き継ぎ可能な待機系の処理装置であることを表す識別データを前記現用系の処理装置から受信し、第１のデータ格納部に格納するステップ
をさらに実行させ、
前記要求ステップが、
前記現用系の処理装置における異常の発生が検知された場合、前記第１のデータ格納部から前記識別データを読み出し、当該識別データを含む引き継ぎ要求を生成するステップ
を含む請求項１記載のタスク引継プログラム。
【請求項３】
前記要求ステップが、
前記現用系の処理装置における異常の発生が検知された場合、前記サーバのタスクの占有優先順位を表す優先度を格納する第２のデータ格納部から前記優先度を読み出し、当該優先度を含む引き継ぎ要求を生成するステップ
を含み、
前記現用系の処理装置の優先度は前記待機系の処理装置の優先度より高い
請求項１又は２記載のタスク引継プログラム。
【請求項４】
所定の機能を実現するタスクを管理するサーバの前記タスクを占有している他の処理装置から前記サーバのタスクの引き継ぎを行う処理装置であって、
前記他の処理装置における異常の発生を検知する監視部と、
前記監視部により前記他の処理装置における異常の発生が検知された場合、前記サーバのタスクを引き継ぐためのタスク引き継ぎ要求を前記サーバに送信し、前記サーバから当該サーバのタスクの引き継ぎ許可を受信した場合、前記サーバのタスクを占有可能である旨を前記処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するリソース管理部と、
を有する処理装置。
【請求項５】
サーバと、
第１の処理装置と、
第２の処理装置と、
を有し、
前記サーバが、
所定の機能を実現するためのタスクを実行するようになっており、
前記第１の処理装置が、
前記タスクを占有している前記第２の処理装置において異常が発生したことを検知する監視部と、
前記監視部により前記第２の処理装置において異常が発生したことが検知された場合、前記タスクを引き継ぐための引き継ぎ要求を前記サーバに送信し、前記サーバから前記タスクの引き継ぎ許可を受信した場合、前記タスクを占有可能である旨を前記第１の処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するリソース管理部と、
を有し、
前記タスクが、
前記第１の処理装置から前記引き継ぎ要求を受信した場合、前記第１の処理装置において待機中のアプリケーション・プログラムのプロセスに対する前記引き継ぎ許可を、前記リソース管理部に一括して送信する機能を前記サーバに実現させる
コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、複数の処理装置間で共有する資源を管理する技術に関する。
【背景技術】
【０００２】
一般に、クラスタシステムにおいては、処理装置を複数台用意しておき、処理を実行中の現用系処理装置が何らかの原因で停止した場合には、現用系処理装置の代わりに待機系処理装置に処理を実行させる。処理の実行に利用する資源を処理装置間で共有するクラスタシステムにおいては、このような引き継ぎ（フェイルオーバーとも言う）を行う際、処理に関連する資源を待機系処理装置が引き継いでおく必要がある。従って、システムの稼働停止時間を小さくするためには、共有資源の引き継ぎを処理装置間でスムースに行わなければならない。
【０００３】
従来、システムにおける共有資源の管理に関して、以下のような技術が存在する。具体的には、第１のタスクの次回実行開始予定時刻と、第１のタスクより優先度が低い第２のタスクの解放予定時刻とを比較する。そして、解放予定時刻より次回実行開始予定時刻が早ければ、第２のタスクに共有資源の占有を許可しない。一方、解放予定時刻より次回実行開始予定時刻が早くなければ、第２のタスクに共有資源の占有を許可する。
【０００４】
ところで、近年では、サービスの多様化等に伴い、処理装置に多数のアプリケーション・プログラムが搭載されるようになっている。引き継ぎに関連するアプリケーション・プログラムの数が増えると、共有資源の引き継ぎに要する時間もそれに従って長くなるという問題がある。しかしながら、上記の従来技術では、このような問題については考慮されていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１３１８９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本技術の目的は、冗長構成を実現するための複数の処理装置の間で共有資源の引き継ぎを高速で行うための技術を提供することである。
【課題を解決するための手段】
【０００７】
本タスク引継方法は、所定の機能を実現するタスクを管理するサーバのタスクを占有している現用系の処理装置からサーバのタスクの引き継ぎを行う待機系の処理装置により実行される。そして、本タスク管理方法は、現用系の処理装置における異常の発生が検知された場合、サーバのタスクを引き継ぐためのタスク引き継ぎ要求をサーバに送信する要求ステップと、サーバから当該サーバのタスクの引き継ぎ許可を受信した場合、サーバのタスクを占有可能である旨を待機系の処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するステップとを含む。
【発明の効果】
【０００８】
冗長構成を実現するための複数の処理装置の間で共有資源の引き継ぎを高速で行うことができるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本技術の実施の形態に係るシステムの構成図である。
【図２】図２は、タスク管理テーブル格納部に格納されるデータの一例を示す図である。
【図３】図３は、接続管理テーブル格納部に格納されるデータの一例を示す図である。
【図４】図４は、接続管理テーブル格納部に格納されるデータの一例を示す図である。
【図５】図５は、実施の形態１における処理の処理フローを示す図である。
【図６】図６は、接続管理テーブル格納部に格納されるデータの一例を示す図である。
【図７】図７は、接続管理テーブル格納部に格納されるデータの一例を示す図である。
【図８】図８は、タスク管理テーブル格納部に格納されるデータの一例を示す図である。
【図９】図９は、接続管理テーブル格納部に格納されるデータの一例を示す図である。
【図１０】図１０は、接続管理テーブル格納部に格納されるデータの一例を示す図である。
【図１１】図１１は、実施の形態２における処理の処理フローを示す図である。
【図１２】図１２は、実施の形態２における処理の処理フローを示す図である。
【図１３】図１３は、接続管理テーブル格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、接続管理テーブル格納部に格納されるデータの一例を示す図である。
【図１５】図１５は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
［実施の形態１］
図１に、本実施の形態に係るシステムの構成図を示す。例えばインターネットであるネットワーク１には、ユーザ端末５と、クライアント装置Ａと、クライアント装置Ｂとが接続されている。クライアント装置Ａ及びＢには、例えばＬＡＮ（Local Area Network）であるネットワーク７を介して、クライアント装置Ａ及びＢとは疎な関係にあるリソースサーバＡとリソースサーバＢとが接続されている。リソースサーバＡ、リソースサーバＢ、クライアント装置Ａ及びクライアント装置Ｂはクラスタシステム３を構成している。クラスタシステム３は、ユーザ端末５から受信した処理要求に応じ処理を実施し、処理結果をユーザ端末５に送信するシステムである。なお、図１においてはクライアント装置及びリソースサーバをそれぞれ２つしか示していないが、数に限定はない。
【００１１】
なお、実施の形態１においては、タスクＡ乃至Ｄを利用するクライアント装置は、クライアント装置Ａ及びＢだけであるとする。また、以下ではクライアント装置Ａがハングアップする例について説明するが、クライアント装置Ａがハングアップから回復することはないとする。
【００１２】
クライアント装置Ａは、クライアントリソース管理部３５１と、タスク管理テーブル格納部３５２と、監視・切替部３５３と、アプリケーションＡ（３５４）と、アプリケーションＢ（３５５）と、アプリケーションＣ（３５６）とを含む。クライアント装置Ｂは、クライアントリソース管理部３７１と、タスク管理テーブル格納部３７２と、監視・切替部３７３と、アプリケーションＡ（３７４）と、アプリケーションＢ（３７５）と、アプリケーションＣ（３７６）とを含む。クライアント装置ＡにおけるアプリケーションＡと、クライアント装置ＢにおけるアプリケーションＡとは同一の機能を有するものとする。アプリケーションＢ及びＣについても同様である。
【００１３】
クライアントリソース管理部３５１は、アプリケーションＡ乃至Ｃの代わりにリソースサーバＡ及びＢにおけるタスクを占有するための処理等を行う。監視・切替部３５３は、クライアント装置Ｂにおける監視・切替部３７３と通信を行い、クライアント装置Ｂの状態を監視する処理等を行う。アプリケーションＡ乃至Ｃは、リソースサーバＡ及びＢにおけるタスクＡ乃至Ｄを利用して処理を実施するアプリケーション・プログラムである。なお、クライアント装置Ｂにおけるクライアントリソース管理部３７１、タスク管理テーブル格納部３７２、監視・切替部３７３及びアプリケーションＡ乃至Ｃは、クライアント装置Ａにおけるクライアントリソース管理部３５１、タスク管理テーブル格納部３５２、監視・切替部３５３及びアプリケーションＡ乃至Ｃと同じであるので、ここでは説明を省略する。
【００１４】
リソースサーバＡは、タスクＡ（３１３）と、タスクＢ（３１４）と、接続管理テーブル格納部３１１と、通信監視部３１２とを含む。リソースサーバＢは、タスクＣ（３３３）と、タスクＤ（３３４）と、接続管理テーブル格納部３３１と、通信監視部３３２とを含む。
【００１５】
タスクＡ乃至Ｄは、リソースサーバＡ及びＢにおいて実行されているプロセスであり、アプリケーションＡ乃至Ｃのための処理を行う。通信監視部３１２及び３３２は、クライアント装置Ａ及びＢにおける監視・切替部３５３及び３７３との通信の異常を例えばハートビート等により確認する。なお、本実施の形態において、リソースサーバＡ及びＢは、クライアント装置Ａ及びＢから送信される信号が途絶えたことにより通信異常を確認することはできるが、クライアント装置Ａ及びＢがどのような状態であるか（例えばハングアップの状態であるか）といったことは確認できない。
【００１６】
図２に、タスク管理テーブル格納部３５２及び３７２に格納されているデータの一例を示す。図２の例では、タスク名の列と、タスクのアドレスの列と、アプリケーションのアドレスの列とが含まれる。本実施の形態においては、クライアント装置Ａにおけるタスク管理テーブル格納部３５２に格納されるデータ及びクライアント装置Ｂにおけるタスク管理テーブル格納部３７２に格納されるデータは同じである。
【００１７】
図３に、リソースサーバＡに含まれる接続管理テーブル格納部３１１に格納されるデータの一例を示す。図３の例では、タスク名の列と、クライアントリソース管理部のアドレスの列とが含まれる。
【００１８】
図４に、リソースサーバＢに含まれる接続管理テーブル格納部３３１に格納されるデータの一例を示す。図４の例では、図３の例と同様に、タスク名の列と、クライアントリソース管理部のアドレスの列とが含まれる。
【００１９】
次に、図５乃至７を用いて、図１に示したシステムの処理内容について説明する。まず、クライアント装置Ａにおけるクライアントリソース管理部３５１は、タスク管理テーブル格納部３５２に格納されているタスクのアドレスを用いて、リソースサーバＡにおけるタスクＢ、リソースサーバＢにおけるタスクＣ及びリソースサーバＢにおけるタスクＤにタスク占有要求を送信する（図１：ステップＳ１）。
【００２０】
一方、リソースサーバＡにおけるタスクＢは、クライアント装置Ａからタスク占有要求を受信する（ステップＳ３）。同様に、リソースサーバＢにおけるタスクＣ及びタスクＤは、クライアント装置Ａからタスク占有要求を受信する（ステップＳ３）。
【００２１】
そして、リソースサーバＡにおけるタスクＢは、接続管理テーブル格納部３１１において、タスクＢのタスク名に対応付けて格納されているクライアントリソース管理部のアドレスがないことを確認し、クライアントリソース管理部３５１のアドレスをタスクＢのタスク名に対応付けて格納する（ステップＳ５）。同様に、リソースサーバＢにおけるタスクＣ及びタスクＤは、接続管理テーブル格納部３３１において、タスクＣ及びタスクＤのタスク名に対応付けて格納されているクライアントリソース管理部のアドレスがないことを確認し、クライアントリソース管理部３５１のアドレスをタスクＣ及びタスクＤのタスク名に対応付けて格納する（ステップＳ５）。
【００２２】
そして、リソースサーバＡにおけるタスクＢは、タスクＢの占有許可通知をクライアント装置Ａのクライアントリソース管理部３５１に送信する（ステップＳ７）。同様に、リソースサーバＢにおけるタスクＣ及びタスクＤは、タスクＣ及びタスクＤの占有許可通知をクライアント装置Ａのクライアントリソース管理部３５１に送信する（ステップＳ７）。ステップＳ７の処理が終了すると、接続管理テーブル格納部３１１及び３３１は、図３及び図４の例に示したデータが格納された状態になっている。
【００２３】
一方、クライアント装置Ａのクライアントリソース管理部３５１は、タスクＢ乃至Ｄから占有許可通知を受信し（ステップＳ９）、占有が許可された旨を監視・切替部３５３に通知する。また、監視・切替部３５３は、待機中のアプリケーションＡ乃至Ｃのプロセスに対し現用化を指示する。そして、アプリケーションＡ乃至Ｃのプロセスは、クライアントリソース管理部３５１を介し、リソースサーバＡ及びＢにおけるタスクＢ乃至Ｄの占有を開始する（ステップＳ１１）。
【００２４】
その後、クライアント装置Ａが例えば障害によりハングアップする（ステップＳ１３）。
【００２５】
一方、リソースサーバＡにおける通信監視部３１２及びリソースサーバＢにおける通信監視部３３２は、クライアント装置Ａとの通信の異常を検知する（ステップＳ１７）。また、クライアント装置Ｂにおける監視・切替部３７３は、クライアント装置Ａがハングアップしたことを検知し（ステップＳ１５）、クライアントリソース管理部３７１にその旨を通知する。
【００２６】
そして、クライアント装置Ｂにおけるクライアントリソース管理部３７１は、タスク管理テーブル格納部３５２に格納されているタスクのアドレスを用いて、リソースサーバＡにおけるタスクＢ、リソースサーバＢにおけるタスクＣ及びリソースサーバＢにおけるタスクＤにタスク引継要求を送信する（ステップＳ１９）。
【００２７】
一方、リソースサーバＡにおけるタスクＢは、クライアント装置Ｂからタスク引継要求を受信する（ステップＳ２１）。同様に、リソースサーバＢにおけるタスクＣ及びタスクＤは、クライアント装置Ｂからタスク引継要求を受信する（ステップＳ２１）。
【００２８】
そして、リソースサーバＡにおけるタスクＢは、接続管理テーブル格納部３１１において、タスクＢのタスク名に対応付けて格納されているクライアントリソース管理部のアドレスが示す装置（クライアント装置Ａ）との通信異常を検知しているときに、クライアントリソース管理部３５１のアドレスを、クライアントリソース管理部３７１のアドレスで更新する（ステップＳ２３）。同様に、リソースサーバＢにおけるタスクＣ及びタスクＤは、接続管理テーブル格納部３３１において、タスクＣ及びタスクＤのタスク名に対応付けて格納されているクライアントリソース管理部のアドレスが示す装置（クライアント装置Ｂ）との通信異常を検知しているときに、クライアントリソース管理部３５１のアドレスを、クライアントリソース管理部３７１のアドレスで更新する（ステップＳ２３）。ステップＳ２３の処理が終了すると、接続管理テーブル格納部３１１及び３３１は、図６及び図７の例に示したデータが格納された状態になっている。
【００２９】
そして、リソースサーバＡにおけるタスクＢは、引継許可通知をクライアント装置Ｂにおけるクライアントリソース管理部３７１に送信する（ステップＳ２５）。また、リソースサーバＢにおけるタスクＣ及びタスクＤは、引継許可通知をクライアント装置Ｂにおけるクライアントリソース管理部３７１に送信する（ステップＳ２５）。
【００３０】
一方、クライアント装置Ｂのクライアントリソース管理部３７１は、タスクＢ乃至Ｄから引継許可通知を受信し（ステップＳ２７）、引き継ぎが許可された旨を監視・切替部３７３に通知する。また、監視・切替部３７３は、待機中のアプリケーションＡ乃至Ｃのプロセスに対し現用化を指示する。そして、アプリケーションＡ乃至Ｃのプロセスは、クライアントリソース管理部３７１を介し、リソースサーバＡ及びＢにおけるタスクＢ乃至Ｄの占有を開始する（ステップＳ２９）。そして、処理を終了する。
【００３１】
以上のように、クライアント装置ＢにおけるアプリケーションＡ乃至Ｃのプロセスがそれぞれ引き継ぎのための処理を行うのではなく、クライアントリソース管理部３７１が引き継ぎのための処理を代行する。これにより、引き継ぎを高速で行うことができ、また通信負荷を削減することができるようになる。
【００３２】
なお、従来では、ステップＳ１７の処理によって計時を開始してから所定の時間（例えば数十秒などの時間）が経過するまでは通信異常が検知されたクライアント装置からの応答を待ち、所定の時間を経過後に他の装置からの引き継ぎ要求を受け入れるようにすることがあった。これに対し、本実施の形態における処理によれば、所定の時間の経過を待たずに引き継ぎを完了することができるようになっている。
【００３３】
［実施の形態２］
次に、第２の実施の形態について説明する。第２の実施の形態では、セションＩＤ及び実行優先度を用いてタスクの引き継ぎを行う。
【００３４】
第２の実施の形態に係るシステムの構成図及び各装置の機能ブロック図は第１の実施の形態で説明したものと同じであるため、ここでは説明を省略する。
【００３５】
図８に、タスク管理テーブル格納部３５２及び３７２に格納されているデータの一例を示す。図８の例では、タスク名の列と、セションＩＤの列と、タスクのアドレスの列と、アプリケーションのアドレスの列とが含まれる。第１の実施の形態におけるタスク管理テーブル格納部３５２及び３７２と比較すると、セションＩＤの列が設けられている点が異なっている。なお、第２の実施の形態においても、クライアント装置Ａにおけるタスク管理テーブル格納部３５２に格納されるデータ及びクライアント装置Ｂにおけるタスク管理テーブル格納部３７２に格納されるデータは同じである。
【００３６】
図９に、リソースサーバＡに含まれる接続管理テーブル格納部３１１に格納されるデータの一例を示す。図９の例では、タスク名の列と、セションＩＤの列と、実行優先度の列と、クライアントリソース管理部のアドレスの列とが含まれる。第１の実施の形態における接続管理テーブル格納部３１１と比較すると、セションＩＤの列及び実行優先度の列が設けられている点が異なっている。
【００３７】
図１０に、リソースサーバＢに含まれる接続管理テーブル格納部３３１に格納されるデータの一例を示す。図１０の例では、図９の例と同様に、タスク名の列と、セションＩＤの列と、実行優先度の列と、クライアントリソース管理部のアドレスの列とが含まれる。
【００３８】
次に、図１１乃至図１４を用いて、第２の実施の形態におけるシステムの処理内容について説明する。まず、クライアント装置Ａにおけるクライアントリソース管理部３５１は、予め付与されており且つ図示しないデータ格納部に格納されている実行優先度（ここでは、実行優先度は「１」であるとする）を読み出し、当該実行優先度を含むタスク占有要求を生成する。そして、クライアントリソース管理部３５１は、タスク管理テーブル格納部３５２に格納されているタスクのアドレスを用いて、リソースサーバＡにおけるタスクＢ、リソースサーバＢにおけるタスクＣ及びリソースサーバＢにおけるタスクＤにタスク占有要求を送信する（図１１：ステップＳ３１）。
【００３９】
ここで、実行優先度について説明する。実行優先度は、いずれのクライアント装置がタスクを優先的に占有できるかを表す優先順位である。例えば、クライアント装置Ａの実行優先度が「１」であり、クライアント装置Ｂの実行優先度が「２」であるとする。この場合には、リソースサーバＡ及びＢは、クライアント装置Ｂの実行優先度がクライアント装置Ａの実行優先度よりも高いと判断し、クライアント装置Ｂにタスクを優先的に占有させる。
【００４０】
図１１の説明に戻り、リソースサーバＡにおけるタスクＢは、クライアント装置Ａにおけるクライアントリソース管理部３５１からタスク占有要求を受信する（ステップＳ３３）。同様に、リソースサーバＢにおけるタスクＣ及びＤは、クライアント装置Ａにおけるクライアントリソース管理部３５１からタスク占有要求を受信する（ステップＳ３３）。
【００４１】
そして、リソースサーバＡにおけるタスクＢは、接続管理テーブル格納部３１１において、タスクＢのタスク名に対応付けて格納されているクライアントリソース管理部のアドレスがないことを確認し、タスクＢのタスク名に対応付けてクライアントリソース管理部３５１のアドレス及びステップＳ３３において受信した実行優先度を格納する（ステップＳ３５）。同様に、リソースサーバＢにおけるタスクＣ及びＤは、接続管理テーブル格納部３３１において、タスクＣ及びＤのタスク名に対応付けて格納されているクライアントリソース管理部のアドレスがないことを確認し、タスクＣ及びＤのタスク名に対応付けてクライアントリソース管理部３５１のアドレス及びステップＳ３３において受信した実行優先度を格納する（ステップＳ３５）。また、ステップＳ３５において、タスクＢ乃至ＤはそれぞれセションＩＤを発行し、タスク名に対応付けて接続管理テーブル３１１及び３３１に格納する。ステップＳ３５の処理が終了すると、接続管理テーブル格納部３１１及び３３１には、図９及び図１０の例に示したデータが格納された状態になっている。
【００４２】
そして、リソースサーバＡにおけるタスクＢは、ステップＳ３５において発行したセションＩＤを含む占有許可通知を生成し、クライアント装置Ａにおけるクライアントリソース管理部３５１に送信する（ステップＳ３７）。同様に、リソースサーバＢにおけるタスクＣ及びＤは、ステップＳ３５において発行したセションＩＤを含む占有許可通知を生成し、クライアント装置Ａにおけるクライアントリソース管理部３５１に送信する（ステップＳ３７）。
【００４３】
一方、クライアント装置Ａにおけるクライアントリソース管理部３５１は、リソースサーバＡにおけるタスクＢ、リソースサーバＢにおけるタスクＣ及びリソースサーバＢにおけるタスクＤから占有許可通知を受信し（ステップＳ３９）、占有が許可された旨を監視・切替部３５３に通知する。また、ステップＳ３９において受信したセションＩＤを当該セションＩＤを発行したタスクのタスク名に対応付けて格納する（ステップＳ４１）。そして、ステップＳ３９において受信したセションＩＤを含む更新通知を生成し、クライアント装置Ｂにおけるクライアントリソース管理部３７１に送信する（ステップＳ４３）。なお、リソースサーバＡにおけるタスクＢ、リソースサーバＢにおけるタスクＣ及びリソースサーバＢにおけるタスクＤを引き継ぎ可能なクライアント装置がクライアント装置Ｂの他にも存在する場合には、そのクライアント装置にも更新通知を送信する。
【００４４】
そして、クライアント装置Ａにおける監視・切替部３５３は、待機中のアプリケーションＡ乃至Ｃのプロセスに対し現用化を指示する。そして、アプリケーションＡ乃至Ｃのプロセスは、クライアントリソース管理部３５１を介し、リソースサーバＡ及びＢにおけるタスクＢ乃至Ｄの占有を開始する（ステップＳ４９）。
【００４５】
一方、クライアント装置Ｂにおけるクライアントリソース管理部３７１は、クライアント装置Ａにおけるクライアントリソース管理部３５１から更新通知を受信する（ステップＳ４５）。そして、ステップＳ４５において受信したセションＩＤを、当該セションＩＤを発行したタスクのタスク名に対応付けて格納する（ステップＳ４７）。そして、処理は端子Ａ乃至Ｃを介して図１２の処理に移行する。
【００４６】
図１２を用いて端子Ａ乃至Ｃ以降の処理について説明する。クライアント装置Ａは、例えば障害によりハングアップする（ステップＳ５１）。一方、リソースサーバＡにおける通信監視部３１２及びリソースサーバＢにおける通信監視部３３２は、クライアント装置Ａとの通信の異常を検知する（ステップＳ５５）。また、クライアント装置Ｂにおける監視・切替部３７３は、クライアント装置Ａがハングアップしたことを検知し（ステップＳ５３）、クライアントリソース管理部３７１にその旨を通知する。
【００４７】
そして、クライアント装置Ｂにおけるクライアントリソース管理部３７１は、タスク管理テーブル格納部３７２から実行優先度及びセションＩＤを読み出し、当該実行優先度及びセションＩＤを含むタスク引継要求を生成する。ここでは、実行優先度は「２」であるとする。そして、クライアントリソース管理部３７１は、タスク管理テーブル格納部３７２に格納されているタスクのアドレスを用いて、リソースサーバＡにおけるタスクＢ、リソースサーバＢにおけるタスクＣ及びリソースサーバＢにおけるタスクＤにタスク引継要求を送信する（ステップＳ５７）。
【００４８】
一方、リソースサーバＡにおけるタスクＢは、クライアント装置Ｂにおけるクライアントリソース管理部３７１からタスク引継要求を受信する（ステップＳ５９）。同様に、リソースサーバＢにおけるタスクＣ及びＤは、クライアント装置Ｂにおけるクライアントリソース管理部３７１からタスク引継要求を受信する（ステップＳ５９）。
【００４９】
そして、リソースサーバＡにおけるタスクＢは、ステップＳ５９において受信したセションＩＤが、接続管理テーブル格納部３１１に格納されているセションＩＤと一致することを確認する。また、ステップＳ５９において受信した実行優先度が接続管理テーブル格納部３１１に格納されている実行優先度よりも高い（すなわち、数字が大きい）ことを確認する。そして、リソースサーバＡにおけるタスクＢは、接続管理テーブル格納部３１１において、タスクＢのタスク名に対応付けて格納されているクライアントリソース管理部のアドレスを、クライアントリソース管理部３７１のアドレスで更新する（ステップＳ６１）。同様に、リソースサーバＢにおけるタスクＣ及びＤは、ステップＳ５９において受信したセションＩＤが、接続管理テーブル格納部３３１に格納されているセションＩＤと一致することを確認する。また、ステップＳ５９において受信した実行優先度が接続管理テーブル格納部３３１に格納されている実行優先度よりも高いことを確認する。そして、リソースサーバＢにおけるタスクＣ及びＤは、接続管理テーブル格納部３３１において、タスクＣ及びＤのタスク名に対応付けて格納されているクライアントリソース管理部のアドレスを、クライアントリソース管理部３７１のアドレスで更新する（ステップＳ６１）。ステップＳ６１の処理が終了すると、接続管理テーブル格納部３１１及び３３１には、図１３及び図１４の例に示したデータが格納された状態になっている。
【００５０】
そして、リソースサーバＡにおけるタスクＢは、引継許可通知をクライアント装置Ｂにおけるクライアントリソース管理部３７１に送信する（ステップＳ６３）。また、リソースサーバＢにおけるタスクＣ及びタスクＤは、引継許可通知をクライアント装置Ｂにおけるクライアントリソース管理部３７１に送信する（ステップＳ６３）。
【００５１】
一方、クライアント装置Ｂのクライアントリソース管理部３７１は、タスクＢ乃至Ｄから引継許可通知を受信し（ステップＳ６５）、引き継ぎが許可された旨を監視・切替部３７３に通知する。また、監視・切替部３７３は、待機中のアプリケーションＡ乃至Ｃのプロセスに対し現用化を指示する。そして、アプリケーションＡ乃至Ｃのプロセスは、クライアントリソース管理部３７１を介し、リソースサーバＡ及びＢにおけるタスクＢ乃至Ｄの占有を開始する（ステップＳ６７）。そして、処理を終了する。
【００５２】
以上のような処理を実施することにより、クライアント装置Ａとクライアント装置Ｂとの間のタスクの引き継ぎを高速で行うことができるようになる。また、リソースサーバはタスクを引き継ぎ可能であることをセションＩＤにより確認するので、タスクを引き継ぐべきではないクライアント装置による割り込みを防止できる。さらに、上で述べた例では、リソースサーバは、優先度が高いことを確認した上で引き継ぎを許可している。よって、クライアント装置Ｂへの引き継ぎが行われた後にクライアント装置Ａがハングアップから回復し、占有の再開を要求してきたとしても、クライアント装置Ａに対してタスクの占有を許可することはない。
【００５３】
以上、本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明したクライアント装置Ａ、クライアント装置Ｂ、リソースサーバＡ及びリソースサーバＢの機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
【００５４】
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００５５】
例えば、上で述べた例では各クライアント装置にクライアントリソース管理部を１つ設けるような構成であったが、負荷分散等のために複数のクライアントリソース管理部を設けるようにしてもよい。この場合には、複数のクライアントリソース管理部の間でタスク管理テーブル格納部に格納されているデータを共有して使用する。
【００５６】
また、上で述べた第２の実施の形態は、実行優先度及びセションＩＤを用いて処理を実施する構成であったが、セションＩＤを用いずに処理を実施するようにしてもよい。但し、この場合には、リソースサーバＡ及びＢにおけるタスクを利用するクライアント装置がクライアント装置Ａ及びＢ以外には存在しない場合に有効である。
【００５７】
逆に、実行優先度を用いずセションＩＤだけを用いて処理を実施するようにしてもよい。但し、この場合には、クライアント装置Ａがハングアップから回復することはない場合又は回復してもネットワークから切り離される場合に有効である。
【００５８】
また、各クライアント装置を起動させるタイミングをずらし、クライアント装置が起動する際に取得したタイムスタンプを実行優先度として用いるようにしてもよい。
【００５９】
また、上で述べた例では、タスクを引き継ぎ可能なクライアント装置であるか判別するためにセションＩＤを用いているが、冗長構成を実現するための複数のクライアント装置間で共通して保持するデータ（例えば仮想ＩＰアドレス）を用いるようにしてもよい。
【００６０】
なお、クライアント装置Ａ、クライアント装置Ｂ、リソースサーバＡ及びリソースサーバＢは、図１５に示すように、メモリ２５０１（記憶部）とＣＰＵ２５０３（処理部）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。ＯＳ及びＷｅｂブラウザを含むアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。このようなコンピュータは、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００６１】
以上述べた本技術の実施の形態をまとめると以下のようになる。
【００６２】
本タスク引継方法は、サーバのタスクを占有している現用系の処理装置からサーバのタスクの引き継ぎを行う待機系の処理装置により実行される。そして、本タスク引継方法は、現用系の処理装置における異常の発生が検知された場合、サーバのタスクを引き継ぐためのタスク引き継ぎ要求を、待機系の処理装置において待機中のアプリケーション・プログラムのプロセスの代わりにサーバに送信する要求ステップと、サーバから当該サーバのタスクの引き継ぎ許可を受信した場合、サーバのタスクを占有可能である旨を待機系の処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するステップとを含む。
【００６３】
このようにすれば、サーバのタスクを利用するアプリケーション・プログラムのプロセスの数が多い場合であっても、引き継ぎを高速で行うことができるようになる。また、通信負荷を削減することができるようになる。
【００６４】
また、現用系の処理装置における異常の発生が検出される前に、サーバのタスクを引き継ぎ可能な待機系の処理装置であることを表す識別データを現用系の処理装置から受信し、第１のデータ格納部に格納するステップをさらに含むようにしてもよい。そして、上で述べた要求ステップが、現用系の処理装置における異常の発生が検知された場合、第１のデータ格納部から識別データを読み出し、当該識別データを含む引き継ぎ要求を生成するステップを含むようにしてもよい。これにより、サーバは、タスクを引き継ぎ可能な待機系の処理装置を識別することができるようになるので、タスクを引き継ぐべきでない待機系の処理装置による割り込みを防ぐことができる。
【００６５】
また、上で述べた要求ステップが、現用系の処理装置における異常の発生が検知された場合、サーバのタスクの占有優先順位を表す優先度を格納する第２のデータ格納部から優先度を読み出し、当該優先度を含む引き継ぎ要求を生成するステップを含むようにしてもよい。そして、現用系の処理装置の優先度は待機系の処理装置の優先度より高くてもよい。このような構成であれば、タスクの占有優先順位に従い引き継ぎを許可すべきか判断できるようになる。例えば、一旦タスクの引き継ぎが行われた後に、優先度が低い処理装置（すなわち、元々現用系であった処理装置）からタスクの占有を要求された場合に、タスクの占有を不許可と判定することができるようになる。
【００６６】
本技術の実施の形態に係るコンピュータ・システムは、サーバと、第１の処理装置と、第２の処理装置とを有する。そして、上で述べたサーバが、所定の機能を実現するためのタスクを実行するようになっている。また、上で述べた第１の処理装置が、タスクを占有している第２の処理装置において異常が発生したことを検知する監視部と、監視部により第２の処理装置において異常が発生したことが検知された場合、タスクを引き継ぐための引き継ぎ要求をサーバに送信し、サーバからタスクの引き継ぎ許可を受信した場合、タスクを占有可能である旨を第１の処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するリソース管理部とを有する。そして、上で述べたタスクが、第１の処理装置から引き継ぎ要求を受信した場合、第１の処理装置において待機中のアプリケーション・プログラムのプロセスに対する引き継ぎ許可を、リソース管理部に一括して送信する機能をサーバに実現させるようにしてもよい。
【００６７】
このような構成であれば、第１及び第２の処理装置に搭載されるアプリケーション・プログラムの数が多い場合であっても、引き継ぎを高速で行うことができるようになる。
【００６８】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００６９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７０】
（付記１）
所定の機能を実現するタスクを管理するサーバの前記タスクを占有している現用系の処理装置から前記サーバのタスクの引き継ぎを行う待機系の処理装置に、
前記現用系の処理装置における異常の発生が検知された場合、前記サーバのタスクを引き継ぐためのタスク引き継ぎ要求を前記サーバに送信する要求ステップと、
前記サーバから当該サーバのタスクの引き継ぎ許可を受信した場合、前記サーバのタスクを占有可能である旨を前記待機系の処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するステップと、
を実行させるためのタスク引継プログラム。
【００７１】
（付記２）
前記現用系の処理装置における異常の発生が検出される前に、前記サーバのタスクを引き継ぎ可能な待機系の処理装置であることを表す識別データを前記現用系の処理装置から受信し、第１のデータ格納部に格納するステップ
をさらに実行させ、
前記要求ステップが、
前記現用系の処理装置における異常の発生が検知された場合、前記第１のデータ格納部から前記識別データを読み出し、当該識別データを含む引き継ぎ要求を生成するステップ
を含む付記１記載のタスク引継プログラム。
【００７２】
（付記３）
前記要求ステップが、
前記現用系の処理装置における異常の発生が検知された場合、前記サーバのタスクの占有優先順位を表す優先度を格納する第２のデータ格納部から前記優先度を読み出し、当該優先度を含む引き継ぎ要求を生成するステップ
を含み、
前記現用系の処理装置の優先度は前記待機系の処理装置の優先度より高い
付記１又は２記載のタスク引継プログラム。
【００７３】
（付記４）
所定の機能を実現するタスクを管理するサーバの前記タスクを占有している他の処理装置から前記サーバのタスクの引き継ぎを行う処理装置であって、
前記他の処理装置における異常の発生を検知する監視部と、
前記監視部により前記他の処理装置における異常の発生が検知された場合、前記サーバのタスクを引き継ぐためのタスク引き継ぎ要求を前記サーバに送信し、前記サーバから当該サーバのタスクの引き継ぎ許可を受信した場合、前記サーバのタスクを占有可能である旨を前記処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するリソース管理部と、
を有する処理装置。
【００７４】
（付記５）
サーバと、
第１の処理装置と、
第２の処理装置と、
を有し、
前記サーバが、
所定の機能を実現するためのタスクを実行するようになっており、
前記第１の処理装置が、
前記タスクを占有している前記第２の処理装置において異常が発生したことを検知する監視部と、
前記監視部により前記第２の処理装置において異常が発生したことが検知された場合、前記タスクを引き継ぐための引き継ぎ要求を前記サーバに送信し、前記サーバから前記タスクの引き継ぎ許可を受信した場合、前記タスクを占有可能である旨を前記第１の処理装置において待機中のアプリケーション・プログラムのプロセスに対し通知するリソース管理部と、
を有し、
前記タスクが、
前記第１の処理装置から前記引き継ぎ要求を受信した場合、前記第１の処理装置において待機中のアプリケーション・プログラムのプロセスに対する前記引き継ぎ許可を、前記リソース管理部に一括して送信する機能を前記サーバに実現させる
コンピュータ・システム。
【符号の説明】
【００７５】
１，７  ネットワーク    ３  クラスタシステム
５  ユーザ端末
３１１，３３１  接続管理テーブル格納部
３１２，３３２  通信監視部
３１３  タスクＡ    ３１４  タスクＢ
３３３  タスクＣ    ３３４  タスクＤ
３５１，３７１  クライアントリソース管理部
３５２，３７２  タスク管理テーブル格納部
３５３，３７３  監視・切替部
３５４  アプリケーションＡ    ３５５  アプリケーションＢ
３５６  アプリケーションＣ    ３７４  アプリケーションＡ
３７５  アプリケーションＢ    ３７６  アプリケーションＣ
【図１】
2011248737.tif 000003
【図２】
2011248737.tif 000004
【図３】
2011248737.tif 000005
【図４】
2011248737.tif 000006
【図５】
2011248737.tif 000007
【図６】
2011248737.tif 000008
【図７】
2011248737.tif 000009
【図８】
2011248737.tif 000010
【図９】
2011248737.tif 000011
【図１０】
2011248737.tif 000012
【図１１】
2011248737.tif 000013
【図１２】
2011248737.tif 000014
【図１３】
2011248737.tif 000015
【図１４】
2011248737.tif 000016
【図１５】
2011248737.tif 000017