(57)【要約】【課題】分散コンピューティングシステムにおいて提供される機能の継続性を確保する。【解決手段】複数のサービスの連携による一連の処理を複数の端末装置が分散して実行する分散コンピューティングシステム１００は、ノードＡの端末装置１によって提供されるサービスＡは、ノードＢの端末装置２によって提供されるサービスＢを利用することによって実現され、端末装置２が、サービスＢの状態情報を永続的に格納することができない場合、端末装置２は、端末装置１に対し、サービスＢの状態情報の格納を依頼し、端末装置１は、格納を依頼されたサービスＢの状態情報を不揮発性記憶領域１４１に格納する。【選択図】図２
2007226547.tif 000002
【特許請求の範囲】
【請求項１】
複数のサービスの連携による一連の処理を複数の端末装置が分散して実行する分散コンピューティングシステムであって、
前記複数の端末装置によって提供されるサービスのうち、第１の端末装置によって提供される第１のサービスは、第２の端末装置によって提供される第２のサービスを利用することによって実現され、
前記第２の端末装置が、前記第２のサービスの状態情報を永続的に格納することができない場合、当該第２の端末装置は、前記第１の端末装置に対し、前記第２のサービスの状態情報の格納を依頼する手段を備え、
前記第１の端末装置は、
前記第２の端末装置から格納を依頼された状態情報を不揮発性の記憶領域に格納する手段を備えることを特徴とする分散コンピューティングシステム。
【請求項２】
前記第２の端末装置において発生した障害からの復旧時に、前記第１の端末装置は、前記不揮発性の記憶領域に格納された第２のサービスの状態情報を読み込み、当該状態情報を前記第２の端末装置に送信する手段を備えることを特徴とする請求項１に記載の分散コンピューティングシステム。
【請求項３】
前記第２の端末装置において発生した障害からの復旧時に、当該第２の端末装置は、前記第１の端末装置に対し、前記不揮発性の記憶領域に格納された第２のサービスの状態情報の送信を依頼する手段を備え、
前記第１の端末装置は、前記第２の端末装置からの送信依頼に応じて前記不揮発性の記憶領域に格納された第２のサービスの状態情報を読み込み、当該状態情報を前記第２の端末装置に送信する手段を備えることを特徴とする請求項１に記載の分散コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサービスの連携による一連の処理を複数の端末装置が分散して実行する分散コンピューティングシステムに関する。
【背景技術】
【０００２】
分散コンピューティングシステムは、当該システムを構成する各端末装置が、サービス提供に必要な他の端末装置と接続して自らの目的とする処理を達成することにより、各々のサービスを提供している（例えば、特許文献１〜４参照）。
【０００３】
図６（ａ）に、サービスＡがサービスＢを利用することによって実現される状態を示す。サービスＢを提供するノードＢ上の揮発性記憶領域には、サービスＢがサービスＡからの要求を実現するためのサービスＡ向け状態情報が蓄積されている。ここで「状態情報」とは、サービスＢがサービスＡに提供した処理の記録情報などである。
【０００４】
ノードＢのハードウェアの故障等により障害が発生し、サービスＢの提供が停止すると、サービスＡ側では、分散コンピューティングシステムで提供される各サービスの中から、サービスＢの提供処理の代替手段を有する他のサービスを検索する。当該他のサービスが発見されなかった場合、図６（ｂ）に示すように、サービスＡの処理が一時停止状態となる。
【０００５】
サービスＢが復旧した場合、図６（ｃ）に示すように、サービスＡとサービスＢが再接続され、サービスＡ側は、自らの目的とする処理を達成しようとする。但し、ノードＢ上の揮発性記憶領域に蓄積されていたサービスＡ向け状態情報は初期化されるため、サービスＢは、サービスＡに対し初期状態からの処理提供となる。更に、サービスＣがサービスＡを利用することによって実現される場合、サービスＡの初期状態からの処理提供はサービスＣへも影響し、サービスＣも同様に初期状態からの処理提供となる。
【特許文献１】特開平６−２７４４３０号公報
【特許文献２】特開平９−１１４７９１号公報
【特許文献３】特開２００１−１１７８９５号公報
【特許文献４】特開２００１−１８８７６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述のように、複数のサービスが連携して一つの機能を提供しているような状態において、従来の分散コンピューティングシステムでは、サービスＢのように状態情報を永続的に格納することができないハードウェア上で提供されるサービスがある場合、障害からの復旧時、初期状態からの処理提供となるため、その影響が他のサービスに伝播し（サービスＢ→サービスＡ→サービスＣ）、当該システムで提供される機能の継続性を確保することができなかった。即ち、障害発生からの復旧時の処理継続が不可能になるという問題があった。
【０００７】
本発明の課題は、分散コンピューティングシステムにおいて提供される機能の継続性を確保することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、請求項１に記載の発明は、複数のサービスの連携による一連の処理を複数の端末装置が分散して実行する分散コンピューティングシステムであって、
前記複数の端末装置によって提供されるサービスのうち、第１の端末装置によって提供される第１のサービスは、第２の端末装置によって提供される第２のサービスを利用することによって実現され、
前記第２の端末装置が、前記第２のサービスの状態情報を永続的に格納することができない場合、当該第２の端末装置は、前記第１の端末装置に対し、前記第２のサービスの状態情報の格納を依頼する手段を備え、前記第１の端末装置は、前記第２の端末装置から格納を依頼された状態情報を不揮発性の記憶領域に格納する手段を備えることを特徴としている。
【０００９】
請求項２に記載の発明は、請求項１に記載の分散コンピューティングシステムにおいて、前記第２の端末装置において発生した障害からの復旧時に、前記第１の端末装置は、前記不揮発性の記憶領域に格納された第２のサービスの状態情報を読み込み、当該状態情報を前記第２の端末装置に送信する手段を備えることを特徴としている。
【００１０】
請求項３に記載の発明は、請求項１に記載の分散コンピューティングシステムにおいて、前記第２の端末装置において発生した障害からの復旧時に、当該第２の端末装置は、前記第１の端末装置に対し、前記不揮発性の記憶領域に格納された第２のサービスの状態情報の送信を依頼する手段を備え、前記第１の端末装置は、前記第２の端末装置からの送信依頼に応じて前記不揮発性の記憶領域に格納された第２のサービスの状態情報を読み込み、当該状態情報を前記第２の端末装置に送信する手段を備えることを特徴としている。
【発明の効果】
【００１１】
本発明によれば、第２の端末装置が、自身が提供する第２のサービスの状態情報を永続的に格納することができない場合、第１の端末装置が第２のサービスの状態情報を代わりに不揮発性の記憶領域に格納しておくことにより、第２の端末装置側で障害が発生した場合であっても、分散コンピューティングシステムにおいて提供される機能の継続性を確保することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明の実施形態を説明する。
まず、本実施形態における構成について説明する。
【００１３】
図１に、本発明の実施形態における分散コンピューティングシステム１００の構成を示す。分散コンピューティングシステム１００は、複数のサービスの連携によって一つの機能を提供するシステムであり、端末装置１、端末装置２、端末装置３により構成され、端末装置１と端末装置２、端末装置１と端末装置３は、それぞれ通信ネットワークＮにより接続される。なお、分散コンピューティングシステム１００を構成する端末装置の台数は限定されない。
【００１４】
本実施形態では、ノードＡの端末装置１がサービスＡを提供し、ノードＢの端末装置２がサービスＢを提供し、ノードＣの端末装置３がサービスＣを提供し、サービスＡは、サービスＢを利用することによって実現され、サービスＣは、サービスＡを利用することによって実現されるものとする。以下では、端末装置１と端末装置２の構成について説明する。端末装置３の構成は、端末装置２と同等であるものとし、その説明を省略する。
【００１５】
端末装置１は、ノードＡのコンピュータであり、ＣＰＵ（Central Processing Unit）１０、ＲＡＭ（Random Access Memory）１１、ＲＯＭ（Read Only Memory）１２、通信制御部１３、記憶部１４により構成され、各部はバスにより相互に接続される。
【００１６】
ＣＰＵ１０は、ＲＯＭ１２に格納されたサービスＡの処理に係る各種制御プログラムに従って、端末装置１の各部の動作を制御する。
【００１７】
ＲＡＭ１１は、ＣＰＵ１０によって実行される制御プログラムをプログラム格納エリアに展開し、入力されたデータや、制御プログラムの実行時に生じる処理結果等のデータをワークエリアに一時的に記憶する。
【００１８】
ＲＯＭ１２は、ＣＰＵ１０によって実行されるサービスＡの処理に係る各種機能を実現するための制御プログラムと、当該制御プログラムの実行時に使用されるデータを記憶する
【００１９】
通信制御部１３は、通信ネットワークＮを介して接続される外部の装置との通信を制御する。
【００２０】
記憶部１４は、ハードディスク、フラッシュメモリ等の不揮発性記憶領域１４１を備え、不揮発性記憶領域１４１内のサービスＢ用状態情報格納領域に、サービスＡ向け状態情報を格納する。サービスＡ向け状態情報とは、サービスＢがサービスＡに提供した処理の記録情報などである。
【００２１】
端末装置２は、ノードＢのコンピュータであり、ＣＰＵ２０、ＲＡＭ２１、ＲＯＭ２２、通信制御部２３、記憶部２４により構成され、各部はバスにより相互に接続される。
【００２２】
ＣＰＵ２０は、ＲＯＭ２２に格納されたサービスＢの処理に係る各種制御プログラムに従って、端末装置２の各部の動作を制御する。
【００２３】
ＲＡＭ２１は、ＣＰＵ２０によって実行される制御プログラムをプログラム格納エリアに展開し、入力されたデータや、制御プログラムの実行時に生じる処理結果等のデータをワークエリアに一時的に記憶する。
【００２４】
ＲＯＭ２２は、ＣＰＵ２０によって実行されるサービスＢの処理に係る各種機能を実現するための制御プログラムと、当該制御プログラムの実行時に使用されるデータを記憶する
【００２５】
通信制御部２３は、通信ネットワークＮを介して接続される外部の装置との通信を制御する。
【００２６】
記憶部２４は、揮発性記憶領域２４２を備え、揮発性記憶領域２４２に、サービスＡ向けの状態情報を格納する。なお、サービスＡ向けの状態情報をＲＡＭ２１に格納するようにしてもよい。
【００２７】
次に、図２及び図３を参照して、分散コンピューティングシステム１００における動作について説明する。
【００２８】
まず、図２を参照して、分散コンピューティングシステム１００における処理の流れについて説明する。
【００２９】
ノードＢの端末装置２は、揮発性記憶領域２４２に格納されているサービスＡ向け状態情報の更新時、ノードＡの端末装置１に対して、当該サービスＡ向け状態情報の格納を依頼し、端末装置１は、端末装置２から受け取ったサービスＡ向け状態情報を不揮発性記憶領域１４１内のサービスＢ用状態情報格納領域に格納する（図２（ａ））。
【００３０】
ノードＢにおける障害（部品交換、故障、修理等）の発生によりサービスＢの提供が停止されると、図２（ｂ）に示すように、揮発性記憶領域２４２に格納されたサービスＡ向け状態情報が消滅し、サービスＡを利用するサービスＣの処理も一時的に停止する。
【００３１】
サービスＢの停止後、端末装置１は、ノードＢの復旧を検出しようと試行しており、ノードＢの復旧が検出されると、不揮発性記憶領域１４１内のサービスＢ用状態情報格納領域からサービスＡ向け状態情報を読み込み、端末装置２に対して、当該情報の取得を促す。端末装置２は、端末装置１からサービスＡ向け状態情報を取得すると、当該サービスＡ向け状態情報を揮発性記憶領域２４２に格納し、障害により中断した処理を再開する（図２（ｃ））。
【００３２】
なお、ノードＢが復旧した場合に、ノードＢの端末装置２が、端末装置１に対して、サービスＡ向け状態情報をロードするように要求してもよい。
【００３３】
次に、図３を参照して、端末装置１のＣＰＵ１０の制御によって実行される処理の詳細と、端末装置２のＣＰＵ２０の制御によって実行される処理の詳細を説明する。
【００３４】
〈状態情報格納依頼〉
まず、サービスＡ向け状態情報の更新時の処理について説明する。
ノードＢの端末装置２は、揮発性記憶領域２４２に格納されたサービスＡ向け状態情報の更新時、サービスＢ処理機能により、状態情報代替格納依頼機能２５の状態情報格納依頼トリガＩ／Ｆを用い、状態情報代替格納依頼機能２５にその更新を通知する。
【００３５】
状態情報格納依頼サブシステム２５１は、状態情報格納依頼トリガを元に、揮発性記憶領域２４２からサービスＡ向け状態情報を読み込んで状態情報格納依頼メッセージを生成し、状態情報代替格納機能１５内の状態情報格納受付サブシステム１５１へ送信する。
【００３６】
状態情報格納受付サブシステム１５１は、受信した状態情報格納依頼メッセージからサービスＡ向け状態情報を取得し、状態情報格納サブシステム１５２に対し、取得されたサービスＡ向け状態情報の格納を依頼する。
【００３７】
状態情報格納サブシステム１５２は、受け取ったサービスＡ向け状態情報をサービスＢの状態情報として不揮発性記憶領域１４１内のサービスＢ用状態情報格納領域に格納する。
【００３８】
〈サービス復旧処理〉
次に、ノードＢにおける障害発生によるサービスＢの停止状態から復旧する際の処理について説明する。
サービスＢの提供が停止状態にあるとき、ノードＡの端末装置１は、サービスＡ処理機能により、サービスＢ処理の復旧を検出しようと試行している。
【００３９】
端末装置１は、サービスＢ処理の復旧を検出すると、状態情報代替格納機能１５のサービス復旧依頼受付Ｉ／Ｆを用い、状態情報代替格納機能１５にサービスＢ処理の復旧を促す。
【００４０】
状態情報代替格納機能１５内の格納状態情報復旧受付サブシステム１５３は、利用サービス復旧依頼トリガを元に、不揮発性記憶領域１４１内のサービスＢ用状態情報格納領域からサービスＡ向け状態情報を読み込む。
【００４１】
格納状態情報復旧受付サブシステム１５３は、読み込まれたサービスＡ向け状態情報から格納状態情報復旧依頼メッセージを生成し、当該メッセージとサービスＡ向け状態情報を状態情報代替格納依頼機能２５内の状態情報復旧サブシステム２５２へ送信する。
【００４２】
状態情報復旧サブシステム２５２は、格納状態情報復旧依頼メッセージを受信すると、揮発性記憶領域２４２にサービスＡ向け状態情報を格納し、サービスＢ処理機能に対し、障害により中断したサービスＡに対する処理の続行を促す。
【００４３】
上述では、サービスＢの復旧処理をサービスＡ側が促す場合を示したが、サービスＢ側が自ら促すようにしてもよい。この場合、まず、端末装置２のサービスＢ処理機能により、状態情報復旧サブシステム２５２へ状態情報の復旧を促す。
【００４４】
状態情報復旧サブシステム２５２は、状態情報代替格納機能１５内の格納状態情報復旧受付サブシステム１５３に格納状態情報送信依頼メッセージを送信する。格納状態情報復旧受付サブシステム１５３は、格納状態情報送信依頼メッセージを受信すると、不揮発性記憶領域１４１内のサービスＢ用状態情報格納領域からサービスＡ向け状態情報を読み込む。以後、上述の復旧処理と同様の処理が繰り返される。
【００４５】
以上のように、本実施形態の分散コンピューティングシステム１００によれば、サービスＢ側で状態情報を永続的に格納することができない場合であっても、サービスＡ側の不揮発性記憶領域にサービスＡ向け状態情報を格納しておくことにより、障害発生により中断していたサービスＢの復旧後、不揮発性記憶領域に格納されたサービスＡ向け情報をサービスＢ側に送信し、サービスＡ向け状態情報を復旧させることが可能となる。従って、サービスＢの復旧後、従来のような初期状態からの処理は不要となり、サービスＡはサービスＢの処理を継続的に利用し、自らの処理の継続性を保証することが可能となる。
【００４６】
〈変形例１〉
上述の実施形態では、一方のサービス側で状態情報を不揮発性記憶領域に格納する場合を示したが、図４に示すように、分散コンピューティングシステム１００における各サービス同士が互いに状態情報を持ち合うことが可能である。
【００４７】
例えば図４では、ノードＡの端末装置１の記憶部１４は、不揮発性記憶領域１４１、揮発性記憶領域１４２を有し、不揮発性記憶領域１４１内にサービスＡ向け状態情報を格納するサービスＣ用状態情報格納領域を設けるとともに、揮発性記憶領域１４２にサービスＣ向け状態情報を格納する。一方、ノードＣの端末装置３の記憶部（図示略）は、不揮発性記憶領域３４１、揮発性記憶領域３４２を有し、不揮発性記憶領域３４１には、サービスＣ向け状態情報を格納するサービスＡ用状態情報格納領域を設けるとともに、揮発性記憶領域３４２にサービスＡ向け状態情報を格納する。サービスＡ側、サービスＣ側では、互いに状態情報の代替格納を依頼し、互いに状態情報を持ち合うことにより、双方のサービス処理の継続性を一層高めることが可能となる。
【００４８】
〈変形例２〉
本変形例２では、ノードＢでの障害発生時に、サービスＢの代替機能として他のサービスを利用する場合について説明する。以下、図５を参照して、サービスＡが、サービスＢの代替機能としてサービスＣを利用する場合について説明する。
【００４９】
ノードＢの端末装置２は、揮発性記憶領域２４２に格納されているサービスＡ向け状態情報の更新時、ノードＡの端末装置１に対して、当該サービスＡ向け状態情報の格納を依頼し、端末装置１は、端末装置２から受け取ったサービスＡ向け状態情報を不揮発性記憶領域１４１内のサービスＢ用状態情報格納領域に格納する（図５（ａ））。
【００５０】
ノードＢにおける障害（部品交換、故障、修理等）の発生によりサービスＢの提供が停止されると、揮発性記憶領域２４２に格納されたサービスＡ向け状態情報が消滅する（図５（ｂ））。このとき、ノードＡの端末装置１は、サービスＢの代替機能を有するサービスとしてサービスＣを発見し、不揮発性記憶領域１４１内のサービスＢ用情報格納領域に格納しているサービスＡ向け状態情報をノードＣの端末装置３へ復旧依頼として送信する。
【００５１】
ノードＣの端末装置３では、図５（ｃ）に示すように、端末装置１から受け取ったサービスＡ向け状態情報を揮発性記憶領域３４２に格納し、当該サービスＡ向け状態情報を元に、端末装置１に対し、サービスＢで実行されていた処理からの継続処理を提供する。
【００５２】
図５（ｃ）に示すように、サービスＣによってサービスＢと同様の機能を提供する際に、ノードＤの端末装置４で提供されるサービスＤが必要である場合、端末装置３は、揮発性記憶領域３４２に格納されたサービスＡ向け状態情報からサービスＣ向け状態情報を生成し、復旧依頼としてノードＤの端末装置４に送信する。
【００５３】
ノードＤの端末装置４では、端末装置３から受け取ったサービスＣ向け状態情報を揮発性記憶領域４４２に格納し、当該サービスＣ向け状態情報を元に、端末装置３に対し、サービスＢで実行されていた処理のうちサービスＤが担う処理部分の継続処理を提供する。
【００５４】
図５に示すように、ノードＢでの障害発生時、サービスＢの代替機能を有するサービスとしてサービスＣが発見されると、サービスＣによって、サービスＢで実行されていた処理からの継続処理が提供されることにより、サービスＡはサービスＢの処理を継続的に利用し、自らの処理の継続性を保証することが可能となる。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施形態に係る分散コンピューティングシステムの構成を示す図。
【図２】本実施形態の分散コンピューティングシステムにおいて実行される処理の流れを示す図。
【図３】ノードＡの端末装置及びノードＢの端末装置において実行される処理の詳細を示す図。
【図４】本実施形態の変形例における機能を説明するための図。
【図５】ノードＢの障害発生によりサービスＢの提供が停止した際の代替処理が発見された場合の処理を示す図。
【図６】従来の分散コンピューティングシステムにおいて実行される処理の流れを示す図。
【符号の説明】
【００５６】
１、２、３  端末装置
１０、２０  ＣＰＵ
１１、２１  ＲＡＭ
１２、２２  ＲＯＭ
１３、２３  通信制御部
１４、２４  記憶部
１４１  不揮発性記憶領域
１４２  揮発性記憶領域
１５  状態情報代替格納機能
１５１  状態情報格納受付サブシステム
１５２  状態情報格納サブシステム
１５３  格納状態情報復旧受付サブシステム
２４２  揮発性記憶領域
２５  状態情報代替格納依頼機能
２５１  状態情報格納依頼サブシステム
２５２  状態情報復旧サブシステム
１００  分散コンピューティングシステム
Ｎ  通信ネットワーク
【図１】
2007226547.tif 000003
【図２】
2007226547.tif 000004
【図３】
2007226547.tif 000005
【図４】
2007226547.tif 000006
【図５】
2007226547.tif 000007
【図６】
2007226547.tif 000008