(57)【要約】【課題】障害が発生したノードにおける処理を、通信性能が十分良いノードに引き継がせることができるようにする。【解決手段】ノード２００，３００，４００，５００間における通信性能をノード間通信性能取得手段１０１で取得し、どのアプリケーション２０１，３０１，４０１，５０１間で通信が行われていたかをアプリケーション名登録手段１０３で取得する。そして、障害が発生したアプリケーション又はノードを特定し、ノード間通信性能取得手段１０１で取得した情報から最も通信性能が良いノードを特定し、この通信瀬能が良いノードを処理の引き継ぎ先とする。【選択図】図１
2010204875.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理ノードと、前記処理ノードを管理する管理ノードとが、通信ネットワークを介して接続され、
前記処理ノードには、送信用のアプリケーションを搭載するノードと、受信用のアプリケーションを搭載するノードとが含まれて構成される分散処理システムであって、
前記管理ノードは、
前記処理ノード間での通信における前記各処理ノードの通信性能に関する情報を取得するノード間通信性能取得手段と、
前記各アプリケーションに付される識別情報を、当該各アプリケーションを搭載する前記処理ノードの識別情報とを関連付けて登録し、当該登録された情報に基づいて、互いに通信する前記アプリケーションおよび前記処理ノードを識別可能にするアプリケーション名登録手段と、
前記処理ノードおよび前記アプリケーションの障害を検知する障害検知手段と、
前記障害検知手段により障害の発生が検知された場合に、前記アプリケーション名登録手段に登録された情報に基づいて、当該障害の主体となる障害処理ノードと当該障害の発生前に通信していた既通信処理ノードを特定し、前記ノード間通信性能取得手段により取得された情報に基づいて、前記既通信処理ノードのうち前記障害処理ノードとの通信において十分な前記通信性能を有すると認められる通信機能充足処理ノードを特定し、前記通信機能充足処理ノードに、前記障害処理ノードが前記障害の発生前に行っていた前記アプリケーションによる処理を引き継がせる処理を行う配置先決定手段と、
を備える分散処理システム。
【請求項２】
前記処理ノードには、
前記受信用のアプリケーションとして、通常時に動作する現用系受信アプリケーションを搭載する少なくとも１つのノードと、
前記受信用のアプリケーションとして、非常時に動作する待機系受信アプリケーションを搭載する複数のノードと、
が含まれ、
前記配置先決定手段は、
前記現用系受信アプリケーション又はこれを搭載するノードに障害が発生した場合に、前記待機系受信アプリケーションを搭載するノードのうち、前記送信用のアプリケーションとの通信において十分な前記通信性能を有するノードに、前記現用系受信アプリケーションによる処理を引き継がせる処理を行う、
請求項１記載の分散処理システム。
【請求項３】
前記処理ノードは、定期的な信号を送信するハートビート送信手段を備え、
前記障害検知手段は、前記ハートビート送信手段により送信される信号の有無に基づいて、前記各処理ノード又はこれに搭載される前記アプリケーションの障害を検知する、
請求項１又は２記載の分散処理システム。
【請求項４】
通信に関するアプリケーションを搭載する複数の処理ノードが通信ネットワークを介して接続されてなる分散処理システムにおける制御方法であって、
前記処理ノード間での通信における前記各処理ノードの通信性能に関する情報を取得するステップと、
前記各アプリケーションに付される識別情報を、当該各アプリケーションを搭載する前記処理ノードの識別情報とを関連付けて登録するステップと、
前記処理ノードおよび前記アプリケーションの障害を検知するステップと、
前記障害が検知された場合に、前記登録された識別情報に基づいて、当該障害の主体となる障害処理ノードと当該障害の発生前に通信していた既通信処理ノードを特定するステップと、
前記通信性能に関する情報に基づいて、前記既通信処理ノードのうち前記障害処理ノードとの通信において十分な前記通信性能を有すると認められる通信機能充足処理ノードを特定するステップと、
前記通信機能充足処理ノードに、前記障害処理ノードが前記障害の発生前に行っていた前記アプリケーションによる処理を引き継がせるステップと、
を備える分散処理システムの制御方法。
【請求項５】
前記処理ノードに、
前記受信用のアプリケーションとして、通常時に動作する現用系受信アプリケーションを搭載する少なくとも１つのノードと、
前記受信用のアプリケーションとして、非常時に動作する待機系受信アプリケーションを搭載する複数のノードと、
が含まれる場合において、
前記現用系受信アプリケーション又はこれを搭載するノードに障害が発生した場合に、前記待機系受信アプリケーションを搭載するノードのうち、前記送信用のアプリケーションとの通信において十分な前記通信性能を有するノードに、前記現用系受信アプリケーションによる処理を引き継がせるステップ、
を備える請求項４記載の分散処理システムの制御方法。
【請求項６】
前記各処理ノードが、定期的な信号を送信するステップと、
前記定期的な信号の有無に基づいて、前記各処理ノード又はこれに搭載される前記アプリケーションの障害を検知するステップと、
を備える請求項４又は５記載の分散処理システムの制御方法。
【請求項７】
通信に関するアプリケーションを搭載する複数の処理ノードと、前記処理ノードを管理する管理ノードとが、通信ネットワークを介して接続されてなる分散処理システムにおいて用いられる制御プログラムであって、
前記管理ノードを構成するコンピュータに、
前記処理ノード間での通信における前記各処理ノードの通信性能に関する情報を取得する処理と、
前記各アプリケーションに付される識別情報を、当該各アプリケーションを搭載する前記処理ノードの識別情報とを関連付けて登録する処理と、
前記処理ノードおよび前記アプリケーションの障害を検知する処理と、
前記障害が検知された場合に、前記登録された識別情報に基づいて、当該障害の主体となる障害処理ノードと当該障害の発生前に通信していた既通信処理ノードを特定する処理と、
前記通信性能に関する情報に基づいて、前記既通信処理ノードのうち前記障害処理ノードとの通信において十分な前記通信性能を有すると認められる通信機能充足処理ノードを特定する処理と、
前記通信機能充足処理ノードに、前記障害処理ノードが前記障害の発生前に行っていた前記アプリケーションによる処理を引き継がせる処理と、
を実行させる分散処理システムに用いられる制御プログラム。
【請求項８】
前記処理ノードに、
前記受信用のアプリケーションとして、通常時に動作する現用系受信アプリケーションを搭載する少なくとも１つのノードと、
前記受信用のアプリケーションとして、非常時に動作する待機系受信アプリケーションを搭載する複数のノードと、
が含まれる場合において、
前記管理ノードを構成するコンピュータに、
前記現用系受信アプリケーション又はこれを搭載するノードに障害が発生した場合に、前記待機系受信アプリケーションを搭載するノードのうち、前記送信用のアプリケーションとの通信において十分な前記通信性能を有するノードに、前記現用系受信アプリケーションによる処理を引き継がせる処理、
を実行させる請求項７記載の分散処理システムに用いられる制御プログラム。
【請求項９】
前記各処理ノードが、定期的な信号を送信する手段を備える場合において、
前記管理ノードを構成するコンピュータに、
前記定期的な信号の有無に基づいて、前記各処理ノード又はこれに搭載される前記アプリケーションの障害を検知する処理、
を実行させる請求項７又は８記載の分散処理システムに用いられる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ及び通信ネットワークを用いた分散処理システムに関し、特にフェイルオーバー、即ちノード間通信において障害が発生した場合に、障害が発生したノード上で行っていた処理を、他のノードに引き継ぐための技術に関するものである。
【背景技術】
【０００２】
従来のフェイルオーバークラスタシステムの一例が、特許文献１に記載されている。この従来のフェイルオーバークラスタシステムは、要求されるサービスのレベルをあらかじめ与えておき、その設定にしたがって障害発生時にフェイルオーバーする。
【０００３】
また、特許文献２において、複数のノードが相互に稼働状態を監視する手順と、監視結果に基づいて障害の発生を検知する手順と、障害が発生したことを検知したときには、障害が発生したノードを除くクラスタ内の各ノードが、予め共有する装置に格納された障害の発生したノードの処理を他のノードへ引き継ぐ引き継ぎ情報を読み込む手順と、各ノードが、引き継ぎ情報に基づいて障害が発生したノードの処理を引き継ぐ手順とを含む方法が開示されている。
【０００４】
また、特許文献３において、高速パケットデータサービスのためのリソースの状態を基地局がＲＮＣ(Radio Network Controller)に報告する方法であって、ローカルセル別に高速パケットデータサービスの支援可否を判定する段階と、この判定により、各ローカルセル別に高速パケットデータサービスの利用状態に関する情報をＲＮＣに伝送する段階とを有する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２６０３５７号公報
【特許文献２】特開２００６−７９１６１号公報
【特許文献３】特表２００７−５１１９５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、無線ＬＡＮのアドホックネットワークのような各ノード間の通信性能が一律ではないネットワークでは、障害が発生したノードで動作するアプリケーションの処理を他ノードで引き継ぐ時に、引き継いだノード上で動作するアプリケーションが十分な通信性能を出せない場合があるという問題がある。その理由は、障害が発生したノード上のアプリケーションと通信を行っていたアプリケーションがどのノード上に存在するかが引き継ぎ先を決定する手段（管理ノード）の側からはわからないためである。
【０００７】
そこで、本発明は、障害が発生したノードで動作するアプリケーションの処理を、通信性能が十分良いノードに引き継がせることができるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、複数の処理ノードと、前記処理ノードを管理する管理ノードとが、通信ネットワークを介して接続され、前記処理ノードには、送信用のアプリケーションを搭載するノードと、受信用のアプリケーションを搭載するノードとが含まれて構成される分散処理システムであって、前記管理ノードは、前記処理ノード間での通信における前記各処理ノードの通信性能に関する情報を取得するノード間通信性能取得手段と、前記各アプリケーションに付される識別情報を、当該各アプリケーションを搭載する前記処理ノードの識別情報とを関連付けて登録し、当該登録された情報に基づいて、互いに通信する前記アプリケーションおよび前記処理ノードを識別可能にするアプリケーション名登録手段と、前記処理ノードおよび前記アプリケーションの障害を検知する障害検知手段と、前記障害検知手段により障害の発生が検知された場合に、前記アプリケーション名登録手段に登録された情報に基づいて、当該障害の主体となる障害処理ノードと当該障害の発生前に通信していた既通信処理ノードを特定し、前記ノード間通信性能取得手段により取得された情報に基づいて、前記既通信処理ノードのうち前記障害処理ノードとの通信において十分な前記通信性能を有すると認められる通信機能充足処理ノードを特定し、前記通信機能充足処理ノードに、前記障害処理ノードが前記障害の発生前に行っていた前記アプリケーションによる処理を引き継がせる処理を行う配置先決定手段とを備えるものである。
【０００９】
また、本発明は、通信に関するアプリケーションを搭載する複数の処理ノードが通信ネットワークを介して接続されてなる分散処理システムにおける制御方法であって、前記処理ノード間での通信における前記各処理ノードの通信性能に関する情報を取得するステップと、前記各アプリケーションに付される識別情報を、当該各アプリケーションを搭載する前記処理ノードの識別情報とを関連付けて登録するステップと、前記処理ノードおよび前記アプリケーションの障害を検知するステップと、前記障害が検知された場合に、前記登録された識別情報に基づいて、当該障害の主体となる障害処理ノードと当該障害の発生前に通信していた既通信処理ノードを特定するステップと、前記通信性能に関する情報に基づいて、前記既通信処理ノードのうち前記障害処理ノードとの通信において十分な前記通信性能を有すると認められる通信機能充足処理ノードを特定するステップと、前記通信機能充足処理ノードに、前記障害処理ノードが前記障害の発生前に行っていた前記アプリケーションによる処理を引き継がせるステップとを備えるものである。
【００１０】
また、本発明は、通信に関するアプリケーションを搭載する複数の処理ノードと、前記処理ノードを管理する管理ノードとが、通信ネットワークを介して接続されてなる分散処理システムにおいて用いられる制御プログラムであって、前記管理ノードを構成するコンピュータに、前記処理ノード間での通信における前記各処理ノードの通信性能に関する情報を取得する処理と、前記各アプリケーションに付される識別情報を、当該各アプリケーションを搭載する前記処理ノードの識別情報とを関連付けて登録する処理と、前記処理ノードおよび前記アプリケーションの障害を検知する処理と、前記障害が検知された場合に、前記登録された識別情報に基づいて、当該障害の主体となる障害処理ノードと当該障害の発生前に通信していた既通信処理ノードを特定する処理と、前記通信性能に関する情報に基づいて、前記既通信処理ノードのうち前記障害処理ノードとの通信において十分な前記通信性能を有すると認められる通信機能充足処理ノードを特定する処理と、前記通信機能充足処理ノードに、前記障害処理ノードが前記障害の発生前に行っていた前記アプリケーションによる処理を引き継がせる処理とを実行させるものである。
【発明の効果】
【００１１】
上記本発明によれば、障害が発生したノードが障害発生前に通信していたノードを特定し、この通信先のノードの中から通信性能が十分良いノードを特定することができる。これにより、障害が発生したノードが行っていた処理を、通信性能が十分良いノードに選択的に引き継がせることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１に係る配置先決定システムの構成を示す機能ブロック図である。
【図２】実施の形態１に係る配置先決定システムの動作を示すフローチャートである。
【図３】実施の形態１に係る配置先決定システムの動作を示すフローチャートである。
【図４】本発明の実施の形態２に係る配置先決定システムの構成を示す機能ブロック図である。
【図５】実施の形態２に係る配置先決定システムの動作を示すフローチャートである。
【図６】実施の形態２に係る配置先決定システムの動作を示すフローチャートである。
【図７】本発明の実施の形態３に係る配置先決定システムの構成を示す機能ブロック図である。
【図８】ノード間通信性能情報の具体例である。
【図９】アプリケーション間通信情報の具体例である。
【図１０】アプリケーション間の通信が行われるまでの動作を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
実施の形態１
以下、図面を参照して本発明の実施の形態を説明する。図１に示す本実施の形態に係る配置先決定システムは、複数の処理ノードを管理する機能を集約した管理ノード１００と、アプリケーションを実施する複数の処理ノード２００，３００，４００，５００と、各ノード１００，２００，３００，４００，５００を相互に接続するネットワーク６００とから構成されている。
【００１４】
管理ノード１００は、各処理ノード２００，３００，４００，５００間における通信性能に関する情報を取得するノード間通信性能取得手段１０１と、ノード間通信性能取得手段１０１が取得した情報を保存するノード間通信性能情報１０２と、処理ノード２００，３００，４００，５００に搭載されたアプリケーションが通信を行う際に使用する名前（識別情報）を登録するアプリケーション名登録手段１０３と、アプリケーション名登録手段１０３に登録された識別情報を保存するアプリケーション間通信情報１０４と、アプリケーションやノード２００，３００，４００，５００に発生した障害を検知する障害検知手段１０５と、障害検知手段１０５により障害が検知された時に障害が発生したアプリケーションの新たな配置先を決定する配置先決定手段１０６とを含む。
【００１５】
処理ノード２００は、送信処理を実施する送信アプリケーション２０１と、送信アプリケーション２０１を実行するアプリケーション実行手段２０２とを含む。
【００１６】
処理ノード３００は、受信処理を実施する受信アプリケーション３０１と、受信アプリケーション３０１を実行するアプリケーション実行手段３０２とを含む。
【００１７】
処理ノード４００は、受信処理を実施する受信アプリケーション４０１と、受信アプリケーション４０１を実行するアプリケーション実行手段４０２とを含む。
【００１８】
処理ノード５００は、受信処理を実施する受信アプリケーション５０１と、受信アプリケーション５０１を実行するアプリケーション実行手段５０２とを含む。
【００１９】
これらの手段はそれぞれ概略つぎのように動作する。ノード間通信性能取得手段１０１は、各処理ノード２００，３００，４００，５００間における通信性能を測定して、その測定結果をノード間通信性能情報１０２に保存する。
【００２０】
アプリケーション名登録手段１０３は、送信アプリケーション２０１および各受信アプリケーション３０１，４０１，５０１から得られる識別情報としての名前と、前記受信アプリケーション３０１，４０１，５０１が動作する処理ノード３００，４００，５００の位置情報とを関連付け、アプリケーション間通信情報１０４に登録する。送信アプリケーション２０１および受信アプリケーション３０１，４０１，５０１からアプリケーション名登録手段１０３に登録された名前が同じである場合、それらの送信アプリケーション２０１と受信アプリケーション３０１，４０１，５０１とは通信を行うことを意味する。
【００２１】
障害検知手段１０５は、送信アプリケーション２０１、各受信アプリケーション３０１，４０１，５０１、又は各処理ノード２００，３００，４００，５００に発生した障害を検知し、配置先決定手段１０６に通知する。
【００２２】
配置先決定手段１０６は、障害検知手段１０５から障害が発生した旨の通知を受け取ると、障害が発生した送信アプリケーション２０１又は各受信アプリケーション３０１，４０１，５０１を動作させるための他の処理ノード（配置先処理ノード）を決定し、この配置先処理ノード上のアプリケーション実行手段２０２，３０２，４０２，５０２に対して、障害発生したアプリケーションに相当するアプリケーション２０１，３０１，４０１，５０１を実行させる命令を送信する。
【００２３】
各処理ノード２００，３００，４００，５００上のアプリケーション実行手段２０２，３０２，４０２，５０２は、それぞれ管理ノード１００上の配置先決定手段１０６からアプリケーション２０１，３０１，４０１，５０１を実行させる命令を受信すると、同じ処理ノード２００，３００，４００，５００上に存在するアプリケーション２０１，３０１，４０１，５０１を実行する。
【００２４】
次に、本実施の形態の全体の動作について詳細に説明する。ここでは、処理ノード２００上の送信アプリケーション２０１と、処理ノード３００上の受信アプリケーション３０１とが動作している時に、処理ノード３００に障害が発生し、処理ノード４００上の受信アプリケーション４０１を起動する場合について、障害発生前の動作と障害発生時の動作について別々に説明する。
【００２５】
図１及び図２を参照し、障害発生前の動作を説明する。まず、ノード間通信性能取得手段１０１は、各処理ノード２００，３００，４００，５００の通信性能に関する情報を取得し、取得した情報をノード間通信性能情報１０２に保存する（ステップＳ１００）。この例では、処理ノード１００と処理ノード５００との間の通信性能は両アプリケーション２０１，５０１の通信性能としては不十分であり、処理ノード１００と処理ノード４００との間の通信性能は両アプリケーション２０１，４０１の通信性能としては十分良いとする。
【００２６】
次に、送信アプリケーション２０１が実行されると、アプリケーション名登録手段１０３に、通信時に利用する名前を登録する（ステップＳ１０１）。アプリケーション名登録手段１０３は、登録された名前と、この送信アプリケーション２０１が動作する（搭載される）装置が処理ノード２００であるという情報とを関連付けて、アプリケーション間通信情報１０４に保存する（ステップＳ１０２）。
【００２７】
次に、受信アプリケーション３０１が実行されると、アプリケーション名登録手段１０３、通信時に利用する名前を登録する（ステップＳ１０１）。アプリケーション名登録手段１０３は、登録された名前と、この受信アプリケーション３０１が動作する装置が処理ノード３００であるという情報とを関連付けて、アプリケーション間通信情報１０４に保存する（ステップＳ１０２）。
【００２８】
続いて、図１および図３を参照し、障害発生時の動作について説明する。まず、処理ノード３００に障害が発生すると（ステップＳ２００）、障害検知手段１０５は、障害の発生を検知し、処理ノード３００で障害が発生したことを配置先決定手段１０６に通知する（ステップＳ２０１）。配置先決定手段１０６は、処理ノード３００で障害が発生した通知を受信すると、処理ノード３００上で動作する受信アプリケーション３０１を停止し、他の処理ノード上のアプリケーションを動作させる計画を立て始める（ステップＳ２０２）。
【００２９】
配置先決定手段１０６は、アプリケーション間通信情報１０４から、受信アプリケーション３０１と処理ノード２００上の送信アプリケーション２０１とが通信を行っていたことを取得する（ステップＳ２０３）。さらに、配置先決定手段１０６は、ノード間通信性能情報１０２から、処理ノード２００と処理ノード４００との間での通信性能、および処理ノード２００と処理ノード５００との間での通信性能を取得し、処理ノード２００と処理ノード５００との間での通信性能が十分良いことを取得する（ステップＳ２０４）。
【００３０】
次に、配置先決定手段１０６は、処理ノード２００との通信性能が十分良い処理ノード５００上のアプリケーション実行手段５０２に、受信アプリケーション５０１を実行するように命令する（ステップＳ２０５）。最後に、アプリケーション実行手段５０２は、受信アプリケーション５０１を実行する（ステップＳ２０６）。
【００３１】
次に、本実施の形態の効果について説明する。本実施の形態では、ノード間通信性能情報１０２が、各処理ノード２００，３００，４００，５００間における通信性能を保持し、アプリケーション間通信情報１０４が、どのアプリケーション２０１，３０１，４０１，５０１同士が通信を行っていたかという情報を保持する。これにより、配置先決定手段１０６は、ノード間通信性能情報１０２及びアプリケーション間通信情報１０４からの情報を参照することで、受信側の処理ノード３００，４００，５００に障害が発生した時に、障害が発生したもの以外の処理ノード３００，４００，５００の中から、送信アプリケーション２０１との通信性能が十分良い処理ノード３００，４００，５００を選択し、受信アプリケーション３０１，４０１，５０１を起動することができる。
【００３２】
実施の形態２
次に、本発明の実施の形態２について図面を参照して説明する。図４に示す本実施の形態に係る配置先決定システムは、図１の構成に存在する配置先決定手段１０６を引継ぎ先決定手段１０７に置き替え、受信アプリケーション３０１を現用系受信アプリケーション３０３に置き替え、アプリケーション実行手段３０２をアプリケーション制御手段３０４に置き替え、受信アプリケーション４０１を待機系系受信アプリケーション４０３に置き替え、アプリケーション実行手段４０２をアプリケーション制御手段４０４に置き替え、受信アプリケーション５０１を待機系系受信アプリケーション５０３に置き替え、アプリケーション実行手段５０２をアプリケーション制御手段５０４に置き替えた構成になる。
【００３３】
これらの置き替えた手段は、それぞれ概略つぎのように動作する。引継ぎ先決定手段１０７は、障害検知手段１０５から処理ノード３０３の障害を検知したことを通知されると、現用系受信アプリケーション３０３の処理を引き継ぐための待機系受信アプリケーション４０３，５０３を決定し、その待機系受信アプリケーション４０３，５０３が存在する処理ノード４００，５００上のアプリケーション制御手段４０４，５０４に対して、待機系受信アプリケーション４０３，５０３の状態を現用系に切替える命令を送信する。各アプリケーション制御手段４０４，５０４は、引継ぎ先決定手段１０７から受信した命令に従い、同一の処理ノード４００，５００上に存在する受信アプリケーション４０３，５０３の状態を制御する。
【００３４】
次に、本実施の形態の全体の動作について詳細に説明する。この例では、各処理ノード２００，３００，４００，５００上の各アプリケーション２０１，３０３，４０３，５０３が動作しており、送信アプリケーション２０１と現用系受信アプリケーション３０３とが通信を行っている時に、処理ノード３００に障害が発生し、処理ノード４００上の待機系受信アプリケーション４０３を現用系に切替えることで、現用系受信アプリケーション３０３が行っていた処理を引き継ぐ場合について、障害発生前の動作と障害発生時の動作について別々に説明する。
【００３５】
図４および図５を参照し、障害発生前の動作について説明する。まず、ノード間通信性能取得手段１０１は、各処理ノード２００，３００，４００，５００間の通信性能を取得して、取得した情報をノード間通信性能情報１０２に保存する（ステップＳ４００）。この例では、処理ノード２００と処理ノード５００との間の通信性能は不十分であり、処理ノード２００と処理ノード４００の間の通信性能は十分良いとする。
【００３６】
次に、現用系受信アプリケーション３０３が実行されると、通信に利用する名前と、現用系受信アプリケーション１０３が動作する（搭載される）装置が処理ノード３００であるという情報とを関連付けてアプリケーション名登録手段１０３に登録する（ステップＳ４０１）。アプリケーション名登録手段１０３は、通信に利用する名前と、この現用系受信アプリケーション３０３が処理ノード３００上で受信するという情報とを関連付けてアプリケーション間通信情報１０４に保存する（ステップＳ４０２）。
【００３７】
次に、現用系受信アプリケーション４０３が実行されると、通信に利用する名前と、現用系受信アプリケーション４０３が動作する装置が処理ノード４００であるという情報とを関連付けてアプリケーション名登録手段１０３に登録する（ステップＳ４０１）。アプリケーション名登録手段１０３は、通信に利用する名前と、この現用系受信アプリケーション４０３が処理ノード４００上で動作するという情報とを関連付けてアプリケーション間通信情報１０４に保存する（ステップＳ４０２）。
【００３８】
次に、待機系受信アプリケーション５０３が実行されると、通信に利用する名前と登録を実施した待機系受信アプリケーション５０３が動作する装置が処理ノード５００であるという情報とを関連付けてアプリケーション名登録手段１０３に登録する（ステップＳ４０１）。アプリケーション名登録手段１０３は、通信に利用する名前と、この待機系受信アプリケーション５０３が処理ノード５００上で動作するという情報とを関連付けてアプリケーション間通信情報１０４に保存する（ステップＳ４０２）。
【００３９】
次に、送信アプリケーション２０１が実行されると、通信に利用する名前と、送信アプリケーション２０１が動作する装置が処理ノード２００であるという情報とを関連付けてアプリケーション名登録手段１０３に登録する（ステップＳ４０１）。アプリケーション名登録手段１０３は、通信に利用する名前と、この送信アプリケーション２０１が処理ノード２００上で動作するという情報とを関連付けてアプリケーション間通信情報１０４に保存する（ステップＳ４０２）。
【００４０】
待機系受信アプリケーション４０３および待機系受信アプリケーション５０３は、それぞれアプリケーション名登録手段１０３に名前を登録した後、各処理ノード２００，３００，４００，５００上のアプリケーション制御手段２０２，３０４，４０４，５０４からの通知があるまで待機する（ステップＳ４０３）。
【００４１】
続いて、図４および図６を参照し、処理ノード３００に障害が発生した時の動作について説明する。まず、処理ノード３００に障害が発生すると（ステップＳ５００）、障害検知手段１０５が障害の発生を検知し、処理ノード３００で障害が発生したことを引き継ぎ先決定手段１０７に通知する（ステップＳ５０１）。引継ぎ先決定手段１０７は、処理ノード３００で障害が発生した通知を受信すると、処理ノード３００上で動作する現用系受信アプリケーション３０３を停止し、他の処理ノード４００，５００上で動作する待機系受信アプリケーションの中から処理を引き継ぐアプリケーション４０３，５０３の選択を開始する（ステップＳ５０２）。引継ぎ先決定手段１０７は、アプリケーション間通信情報１０４から受信アプリケーション３０１と処理ノード２００上の送信アプリケーション２０１とが通信を行っていたことと、この通信に利用する名前を取得する（ステップＳ５０３）。
【００４２】
次に、引継ぎ先決定手段１０７は、アプリケーション間通信情報１０４から待機系受信アプリケーション４０３および待機系受信アプリケーション５０３が既に受信できる状態で実行されており、この通信に利用する名前と関連付けられていることを取得する（ステップＳ５０４）。
【００４３】
次に、引継ぎ先決定手段１０７は、ノード間通信性能情報１０２から処理ノード２００と処理ノード４００との間での通信性能、および処理ノード２００と処理ノード５００との間での通信性能を取得し、処理ノード２００と処理ノード５００との間での通信性能が十分良いことを取得する（ステップＳ５０５）。
【００４４】
次に、引継ぎ先決定手段１０７は、処理ノード２００との間で通信性能が十分良い処理ノード５００上のアプリケーション制御手段５０４に、待機系受信アプリケーション５０３を現用系に切り替えるように命令する（ステップＳ５０６）。
【００４５】
最後に、アプリケーション制御手段５０４は、待機系受信アプリケーション５０３を現用系に切替える（ステップＳ５０７）。
次に、本実施の形態の効果について説明する。本実施の形態では、ノード間通信性能情報１０２が、各処理ノード２００，３００，４００，５００間における通信性能を保持する。また、アプリケーション間通信情報１０４が、どのアプリケーション２０１，３０３，４０３，５０３同士が通信を行うかという情報を保持すると共に、現用系受信アプリケーション３０３の処理を引き継ぐことが可能な待機系受信アプリケーションがどの処理ノード４００，５００で起動しているかという情報を保存している。これにより、引継ぎ先決定手段１０７は、それらの情報を参照することで、処理ノード３００に障害が発生した時に、待機系受信アプリケーション４０３，５０３が既に実行されている処理ノード４００，５００の中から送信アプリケーション２０１との通信性能が十分良い処理ノード４００，５００で動作している待機系受信アプリケーションを現用系に切替えることができる。
【００４６】
実施例
次に、具体的な実施例を用いて本発明を説明する。図７に示すように、図１に記載の管理ノード１００は、ＣＯＲＢＡ(Common Object Request Broker Architecture)名前サーバ１０８と、ハートビート障害検出手段１０９とを含む。
【００４７】
定常状態で実行されている受信アプリケーションが受信アプリケーション３０１のみの場合、受信アプリケーション３０１はＣＯＲＢＡ名前サーバ１０８に通信に使用する固有の名前を登録する。
【００４８】
送信アプリケーション２０１は、ＣＯＲＢＡ名前サーバ１０８に対して通信に使用する固有の名前として受信アプリケーション３０１が登録した名前と同じ名前を指定して受信アプリケーション３０１が動作する装置が処理ノード３０１であることを認識し、処理ノード３０１上で動作する受信アプリケーション３０１に対して通信によってデータの送信を開始する。
【００４９】
また、各処理ノード２００，３００，４００，５００上にはハートビート送信手段２０６，３０６，４０６，５０６が存在する。各ハートビート送信手段２０６，３０６，４０６，５０６は、ネットワーク６００に対してハートビートパケットを一定の間隔でマルチキャスト送信し、ハートビート障害検出手段１０９は、各ハートビート送信手段２０６，３０６，４０６，５０６が送信するハートビートパケットが一定時間以上受信できない場合にその処理ノード２００，３００，４００，５００に障害が発生したと判断する。特定の処理ノード２００，３００，４００，５００に障害が発生すると、配置先決定手段１０６に対して障害の発生を通知し、配置先決定手段１０６は、ノード間通信性能情報１０２やアプリケーション間通信情報１０４に含まれる各種情報を元に処理ノード２００との通信性能が最も良い処理ノード３００，４００，５００上で受信アプリケーション３０１，４０１，５０１を実行するように決定する。
【００５０】
ネットワーク障害以外の処理ノード２００，３００，４００，５００上のハードウェア障害を検知する場合には、処理ノード２００，３００，４００，５００上で障害を検知して、直接配置先決定手段１０６に対して通知を行う方法も考えられる。
【００５１】
また、ノード間通信性能取得手段１０１には、ＳＮＭＰ(Simple Network Management Protocol)などの汎用的なネットワーク監視の仕組みが利用できる。ノード間通信性能取得手段１０１で取得し、配置先を決定する時に参考にするノード間通信性能情報１０２としては、通信の遅延や利用可能な帯域などがある。
【００５２】
次に、４つのノードから構成される場合のノード間通信性能情報１０２に保存するデータを図８に示す。図８に示すノード間通信性能情報１０２が存在し、ＮＯＤＥ＿Ａ上に送信用アプリケーションが存在し、ＮＯＤＥ＿Ｂ上に受信用アプリケーションが存在し、互いに通信を行っている場合であり、この通信には２０Ｍｂｐｓの通信帯域が必要な場合に、ＮＯＤＥ＿Ｂで障害が発生すると、受信用アプリケーションはＮＯＤＥ＿Ｃでは動作できず、ＮＯＤＥ＿Ｄで処理が引き継がれる。
【００５３】
次に、アプリケーション間通信情報１０４に保存されるデータの具体例を図９に示す。図９に示したアプリケーション間通信情報１０４では、ＮＯＤＥ＿Ａ上のアプリケーションとＮＯＤＥ＿Ｂ上のアプリケーションとが通信を行い、ＮＯＤＥ＿Ｃ上のアプリケーションとＮＯＤＥ＿Ｄ上のアプリケーションとが通信を行うことを表わしている。
【００５４】
次に、図７における処理ノード２００上の送信アプリケーション２０１と処理ノード３００上の受信アプリケーション３０１とが通信を行うまでの処理の流れを図１０に示す。受信アプリケーション３０１は、ＣＯＲＢＡ名前サーバ１０８にアプリケーション名と受信アプリケーション３０１が動作する装置が処理ノード３００であることを登録する（呼び出しＣ１００）。このとき通信に利用するアプリケーション名も一緒に登録する。
【００５５】
ＣＯＲＢＡ名前サーバ１０８は、アプリケーション名とアプリケーションが動作する装置が処理ノード３００である情報とをアプリケーション間通信情報１０４に保存する。
【００５６】
次に、送信アプリケーション２０１は、受信アプリケーション３０１が動作する処理ノード３００を知るために、上記アプリケーション名でＣＯＲＢＡ名前サーバ１０８に問い合わせを行い、このアプリケーション名に対応する受信アプリケーション３０１が処理ノード３００上で動作していることを取得する（呼び出しＣ１０１）。
【００５７】
上記問い合わせ実施時に、送信アプリケーション２０１が処理ノード２００上で動作するという情報もＣＯＲＢＡ名前サーバ１０８に送信することで、送信アプリケーション２０１が上記アプリケーション名で通信を行うという情報を、アプリケーション間通信情報１０４に登録する。
【００５８】
これにより、アプリケーション間通信情報１０４には、同一のアプリケーション名を関連付けることで送信アプリケーション２０１と受信アプリケーション３０１とが通信を行うことが登録される。送信アプリケーション２０１は、処理ノード３００上の受信アプリケーション３０１に対して通信を行う。
本発明の配置先決定システムの各構成要素は、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。
【産業上の利用可能性】
【００５９】
本発明は、様々な性能のノードから構成されるネットワークを管理するクラスタリングミドルウェアにおいて、障害発生時に最適なノードで処理を引き継ぐといった用途に適用できる。なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００６０】
１００  管理ノード
１０１  ノード間通信性能取得手段
１０２  ノード間通信性能情報
１０３  アプリケーション名登録手段
１０４  アプリケーション間通信情報
１０５  障害検知手段
１０６  配置先決定手段
１０７  引継ぎ先決定手段
２００，３００，４００，５００  処理ノード
２０２，３０２，４０２，５０２  アプリケーション実行手段
２０１  送信アプリケーション
３０１，４０１，５０１  受信アプリケーション
３０３  現用系受信アプリケーション
４０３，５０３  待機系受信アプリケーション
３０４，４０４，５０４  アプリケーション制御手段
６００  ネットワーク
【図１】
2010204875.tif 000003
【図２】
2010204875.tif 000004
【図３】
2010204875.tif 000005
【図４】
2010204875.tif 000006
【図５】
2010204875.tif 000007
【図６】
2010204875.tif 000008
【図７】
2010204875.tif 000009
【図８】
2010204875.tif 000010
【図９】
2010204875.tif 000011
【図１０】
2010204875.tif 000012