(57)【要約】  システムおよび方法は、同じリモートピアのために複数の無関係のＩＰアドレスを介してリモートトランザクションを行なう際のインターネットプロトコル（ＩＰ）アドレスおよびノード名の整合性を確実にし得る。このシステムは、連携するピアノードがすべて、任意の時点で名前およびＩＰアドレスが完全に一致することを確実にし得る。特に、ネットワーク構成が動的に更新され得る場合、システムは、どのアドレスを使用すべきかについての古くなったビューをピアノードが有するために、そのような更新が整合性のないトランザクションまたは失敗したトランザクションをもたらすということがないことを確実にし得る。さらに、トランザクションを開始するピアノードは、各分散トランザクションが整合性のあるアドレス情報を使用して実行されることを確実にするために、他のピアノードがすべて、システム構成全体のまったく同じビューを有することを検証できる。
2015534308.tif 000002
【特許請求の範囲】
【請求項１】
ミドルウェアマシン環境で分散トランザクションをサポートするための方法であって、
各々が複数のネットワークアドレスに関連付けられた１つ以上のリモートピアノードとの分散トランザクションを、ピアノードを介して開始するステップと、
１つ以上のリモートピアノードがすべて、システム構成の同じビューを有することを、ピアノードを介して検証するステップと、
１つ以上のリモートピアノードに関連付けられた複数のネットワークアドレスを介して、分散トランザクションを実行するステップとを含む、方法。
【請求項２】
システム構成が、
各ピアノードに関連付けられた１つ以上の一意的な名前、
ネットワークのリスト、および
各ピアノードに到達するためのインターネットプロトコル（ＩＰ）アドレス
のうちの少なくとも１つを含むことを可能にするステップをさらに含む、請求項１に記載の方法。
【請求項３】
応答する前に、ローカルシステム構成情報がローカルＯＳ／ネットワーキング構成と整合しているかどうかを、１つ以上のリモートピアノードを介してチェックするステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
連携するピアノード間でネットワーク構成が整合してしない期間の間、分散トランザクションが開始されないことを確実にするステップをさらに含む、前述の請求項のいずれかに記載の方法。
【請求項５】
ネットワーク構成の変更が生じた場合、次の分散トランザクションが実行され得る前に、１つ以上の連携するピアノードを同期させるステップをさらに含む、前述の請求項のいずれかに記載の方法。
【請求項６】
連携するピアノードのリストの変更を検出するステップをさらに含む、前述の請求項のいずれかに記載の方法。
【請求項７】
１回以上のネットワーク構成更新を自動でまたは手動で行なうステップをさらに含む、前述の請求項のいずれかに記載の方法。
【請求項８】
１回以上のネットワーク構成更新が、ピアノードまたは任意のリモートピアノードがシステム構成の古くなったビューを有することを引き起こさないことを確実にするステップをさらに含む、請求項７に記載の方法。
【請求項９】
分散トランザクションの実行中、ネットワークアドレスのうちの１つ以上を動的に変更するステップをさらに含む、前述の請求項のいずれかに記載の方法。
【請求項１０】
１つ以上のネットワークアドレスの使用中に変更が生じた場合、１つ以上のネットワークアドレスの変更を検出するために、アドレスプローブ動作または通信障害を使用するステップをさらに含む、請求項９に記載の方法。
【請求項１１】
ミドルウェアマシン環境で分散トランザクションをサポートするためのシステムであって、
１つ以上のマイクロプロセッサと、
１つ以上のマイクロプロセッサ上で走るピアノードとを含み、ピアノードは、
各々が複数のネットワークアドレスに関連付けられた１つ以上のリモートピアノードとの分散トランザクションを開始し、
１つ以上のリモートピアノードがすべて、システム構成の同じビューを有することを検証し、
１つ以上のリモートピアノードに関連付けられた複数のネットワークアドレスを介して、分散トランザクションを実行するように動作する、システム。
【請求項１２】
システム構成は、
各ピアノードに関連付けられた１つ以上の一意的な名前、
ネットワークのリスト、および
各ピアノードに到達するためのインターネットプロトコル（ＩＰ）アドレス
のうちの少なくとも１つを含む、請求項１１に記載のシステム。
【請求項１３】
応答する前に、１つ以上のリモートピアノードは、ローカルシステム構成情報がローカルＯＳ／ネットワーキング構成と整合しているかどうかをチェックする、請求項１１または１２に記載のシステム。
【請求項１４】
連携するピアノード間でネットワーク構成が整合してしない期間の間、分散トランザクションは開始されない、請求項１１〜１３のいずれかに記載のシステム。
【請求項１５】
ネットワーク構成の変更が生じた場合、次の分散トランザクションが実行され得る前に、１つ以上の連携するピアノードは同期される、請求項１４に記載のシステム。
【請求項１６】
ピアノードは、連携するピアノードのリストの変更を検出するように動作する、請求項１１〜１５のいずれかに記載のシステム。
【請求項１７】
１回以上のネットワーク構成更新が、自動でまたは手動で行なわれる、請求項１１〜１６のいずれかに記載のシステム。
【請求項１８】
１回以上のネットワーク構成更新は、ピアノードまたは任意のリモートピアノードがシステム構成の古くなったビューを有することを引き起こさない、請求項１７に記載のシステム。
【請求項１９】
分散トランザクションの実行中、ネットワークアドレスのうちの１つ以上が動的に変更される、請求項１１〜１８のいずれかに記載のシステム。
【請求項２０】
命令が格納された非一時的な機械読取可能な記憶媒体であって、前記命令は、実行されると、
各々が複数のネットワークアドレスに関連付けられた１つ以上のリモートピアノードとの分散トランザクションを、ピアノードを介して開始するステップと、
１つ以上のリモートピアノードがすべて、システム構成の同じビューを有することを、ピアノードを介して検証するステップと、
リモートピアノードに関連付けられた複数のネットワークアドレスを介して、分散トランザクションを実行するステップとを、システムに行なわせる、非一時的な機械読取可能な記憶媒体。
【請求項２１】
１つ以上のプロセッサに、請求項１〜１０のいずれか１項に記載の方法を実装させるための、プログラム。
【請求項２２】
１つ以上のコンピュータシステムによって実行されると、前記１つ以上のコンピュータシステムに、請求項１〜１０のいずれかに記載の方法を行なわせる機械読取可能な命令を含む、コンピュータプログラム。
【請求項２３】
請求項２２に記載のコンピュータプログラムを機械読取可能な記憶媒体上に含む、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文献の開示の一部は、著作権保護の対象となる資料を含む。この特許文献または特許開示は特許商標庁の特許ファイルまたは記録に記載されているため、著作権保有者は、何人によるその複写複製に対して異議はないが、その他の場合には如何なるときもすべての著作権を保有する。
【０００２】
発明の分野
この発明は、一般にコンピュータシステムに関し、特にミドルウェアマシン環境に関する。
【背景技術】
【０００３】
背景
相互接続ネットワークは、次世代のスーパーコンピュータ、クラスタおよびデータセンターにおいて有益な役割を果たす。たとえば、インフィニバンド（InfiniBand：ＩＢ）技術は、クラウド・コンピューティング・ファブリックの基盤として増加したデプロイメント（deployment）を見てきた。より大きいクラウド・コンピューティング・アーキテクチャが導入されるにつれて、伝統的なネットワークおよびストレージに関連する性能および管理上の障害が、かなりの問題となっている。
【０００４】
これが、この発明の実施形態が取組もうとしている一般的領域である。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
ここに説明されるのは、同じリモートピアのために複数の無関係のＩＰアドレスを介してリモートトランザクションを行なう際のインターネットプロトコル（Internet Protocol：ＩＰ）アドレスおよびノード名の整合性を確実にし得るシステムおよび方法である。このシステムは、連携するピアノードがすべて、任意の時点で名前およびＩＰアドレスが完全に一致することを確実にし得る。特に、ネットワーク構成が動的に更新され得る場合、システムは、どのアドレスを使用すべきかについての古くなったビューをピアノードが有するために、そのような更新が整合性のないトランザクションまたは失敗したトランザクションをもたらすということがないことを確実にし得る。さらに、トランザクションを開始するピアノードは、各分散トランザクションが整合性のあるアドレス情報を使用して実行されることを確実にするために、他のピアノードがすべて、システム構成全体のまったく同じビューを有することを検証できる。
【図面の簡単な説明】
【０００６】
【図１】この発明の一実施形態に従って、ミドルウェアマシン環境で、高可用性通信を使用して分散トランザクションをサポートする図である。
【図２】この発明の一実施形態に従って、ミドルウェアマシン環境で、分散トランザクションをサポートするために整合性のあるアドレス情報を確実にする図である。
【図３】この発明の一実施形態に従って、ミドルウェアマシン環境で、ネットワーク構成が変化した場合に分散トランザクションをサポートする図である。
【図４】この発明の一実施形態に従って、ミドルウェアマシン環境で、分散トランザクションをサポートするために整合性のあるアドレス情報を確実にするための例示的なフローチャートを示す図である。
【図５】この発明の一実施形態に従って、ミドルウェアマシン環境で、分散トランザクションをサポートするために整合性のあるアドレス情報を確実にするための例示的な機能ブロック図である。
【図６】この発明の一実施形態に従ったピアノードを示す図である。
【発明を実施するための形態】
【０００７】
詳細な説明
この発明を、同じ参照符号が同様の要素を示す添付図面の図において、限定的ではなく例示的に説明する。なお、この開示における「ある」または「１つの」または「いくつかの」実施形態への言及は、必ずしも同じ実施形態とは限らず、そのような言及は少なくとも１つを意味する。
【０００８】
以下のようなこの発明の説明は、コンピュータネットワークの一例として、インターネットプロトコル（ＩＰ）ネットワークを使用する。他のタイプのコンピュータネットワークが限定なしで使用可能であることは、当業者には明らかであろう。
【０００９】
ここに説明されるのは、ミドルウェアマシン環境で、ＩＰアドレスおよびノード名の整合性といったシステム構成の整合性を確実にすることができるシステムおよび方法である。
【００１０】
図１は、この発明の一実施形態に従って、ミドルウェアマシン環境で、高可用性通信を使用して分散トランザクションをサポートする図を示す。図１に示すように、ミドルウェアマシン環境１００は、異なるサブネット、たとえばサブネットＡ１１１〜Ｃ１１３を介して相互接続する１つ以上のピアノードＡ１０１〜Ｄ１０４を含み得る。各ピアノードＡ１０１〜Ｄ１０４は、異なるＩＰアドレス、たとえばＩＰアドレス１２１〜１２４、およびさまざまなネットワークインターフェイス、たとえばネットワークインターフェイス１３１〜１３４に関連付けられ得る。
【００１１】
この発明の一実施形態によれば、ミドルウェアマシン環境１００において、複数のネットワーク（またはサブネット）を介して、複数のローカルネットワークインターフェイスならびに複数の独立したローカルおよびリモートＩＰアドレスを介して高可用性通信を使用して、さまざまな分散トランザクションを行なうかまたは実装することができる。
【００１２】
さらに、連携するピアノードＡ１０１〜Ｄ１０４はすべて、そのようなピアごとに関連する名前およびＩＰアドレスについて、任意の時点で完全に一致し得る。加えて、ネットワーク構成、たとえば、ネットワーク構成１１０が動的に更新される場合、そのような更新が整合性のないトランザクションまたは失敗したトランザクションをもたらさないことを確実にすることが、有益である。なぜなら、ピアの中には、どのアドレスを使用すべきかについての古くなったビューを有するものがあるためである。
【００１３】
図２は、この発明の一実施形態に従って、ミドルウェアマシン環境で、分散トランザクションをサポートするために整合性のあるアドレス情報を確実にする図を示す。図２に示すように、ミドルウェアマシン環境２００において、ピアノードＡ２０１は、１つ以上のリモートピアノード、たとえばピアノードＢ２０２との分散トランザクション２１０を開始できる。ここでは、ピアノードＡ２０１はネットワークアドレス２１１〜２１２に関連付けられ、ピアノード２０２はネットワークアドレス２２１〜２２３に関連付けられている。
【００１４】
分散トランザクション２１０が整合性のあるアドレス情報を使用して実行可能であることを確実にするために、ピアノードＡ２０１は、ピアノードＢ２０２といった他のピアノードがすべて、システム構成２２０全体のまったく同じビューをそれ自体として有することを検証できる。
【００１５】
この発明の一実施形態によれば、分散トランザクション２１０を開始するピアノードＡ２０１によってチェックされるべき情報は、各ピアノードに関連付けられた１つ以上の一意的な名前、 ネットワークのリスト、および個々のネットワークを介して各ピアノードに到達するはずであるＩＰアドレスを含み得る。
【００１６】
さらに、各リモートピアノード（たとえば、ピアノードＢ２０２）は、応答する前に、それ自体についての情報がローカルＯＳ／ネットワーキング構成２３０と整合していることを確実にし得る。このため、システムは、管理者エラーが分散トランザクションの整合性のある実行を妨げないことが保証され得る。
【００１７】
図３は、この発明の一実施形態に従って、ミドルウェアマシン環境で、ネットワーク構成が変化した場合に分散トランザクションをサポートする図を示す。図３に示すように、ピアノードＡ３０１〜Ｃ３０３を伴うミドルウェアマシン環境３００において、分散トランザクションが実行可能である。ここでは、ピアノードＡ３０１はネットワークアドレス３１１に関連付けられ、一方、ピアノードＢ３０２はネットワークアドレス３２１〜３２２に関連付けられ、ピアノードＣ３０３はネットワークアドレス３３１〜３３３に関連付けられ得る。
【００１８】
この発明の一実施形態によれば、ネットワーク構成３２０の変更が生じた場合、システムは、次の分散トランザクションが実行され得る前に、連携するピアノードＡ３０１〜Ｃ３０３をすべて同期させることができる。加えて、必要とされる整合性が達成可能である限り、ネットワーク構成３２０の更新は自動であってもよく、または手動であってもよい。
【００１９】
さらに、ネットワーキングアドレス情報の潜在的変化を有する一定の一組の連携するピアノードＡ３０１〜Ｃ３０３にとって、各分散トランザクションの一部としてシステムによって実行される頑強な整合性チェックは、すべての連携するピアノードＡ３０１〜Ｃ３０３間でネットワーク構成が整合してしない期間の間、分散トランザクションが首尾よく開始されないことを確実にするのに十分であり得る。
【００２０】
また、一組の連携するノードＡ３０１〜Ｃ３０３が、メンバ−ノードのリスト自体の点で同期していないかもしれない状況があり得る。頑強な整合性チェックは、連携する各ノードＡ３０１〜Ｃ３０３が、どのアドレスが各ノードに関連付けられているかに加えて、ノードの組全体が何かについての同じビューを有することができる、ということを確実にし得る。たとえば、連携するピアノードのリストが変更されることになっている場合、システムは、上述のスキームを使用して、ネットワーク構成３２０の変更（または不整合性）を検出することができる。
【００２１】
この発明の一実施形態によれば、ネットワーク構成３２０の変更（または不整合性）は同期して検出可能であり、次のトランザクションが起こることを可能にするために、構成情報全体を適宜チェックし、更新することが可能である。
【００２２】
図３に示すように、分散トランザクションの実行中、ネットワークアドレス３３１は動的に変更可能である。ネットワーク構成３２０のこの変更（または不整合性）は、分散トランザクション中、関連するアドレスがもはや使用されなくなった（または、関連するアドレスが全く使用されなくなった）後で、生じるかもしれない。これらの場合、ネットワーク構成３２０の変更（または不整合性）は、トランザクションを行なうための問題を引き起こさないかもしれない。
【００２３】
加えて、ネットワーク構成３２０の変更は、アドレスがまだ使用されている間、またはそれが使用される前に生じるかもしれない。そのような場合、問題は、リモート動作の一部としての明示的チェック動作を介して、アドレスプローブ動作によって検出されるか、または、実際の通信中、通信障害（たとえばＴＣＰタイムアウト）として扱われてもよい。
【００２４】
図４は、この発明の一実施形態に従って、ミドルウェアマシン環境で、分散トランザクションをサポートするために整合性のあるアドレス情報を確実にするための例示的なフローチャートを示す。図４に示すように、ステップ４０１で、ピアノードは、各々が複数のネットワークアドレスに関連付けられた１つ以上のリモートピアノードとの１つ以上の分散トランザクションを開始できる。次に、ステップ４０２で、ピアノードは、各リモートピアノードがシステム構成の同じビューを有することを検証できる。さらに、ステップ４０３で、システムは、リモートピアノードに関連付けられた複数のネットワークアドレスを介して、分散トランザクションを実行できる。
【００２５】
図５は、この発明の一実施形態に従って、ミドルウェアマシン環境で、分散トランザクションをサポートするために整合性のあるアドレス情報を確実にするための例示的な機能ブロック図を示す。図５に示すように、各ピアノードは、ネットワークマネージャ５０１と、ネットワークインターフェイス５０２と、トランザクション実行モジュール５０３と、検証モジュール５０４とを含む。ネットワークマネージャ５０１はシステム構成を管理し、システム構成は、すべての連携するピアノードに関係しており、１つ以上の一意的な名前と、ネットワークのリストと、インターネットプロトコル（ＩＰ）アドレスとを含む。ネットワークインターフェイス５０２は、１つ以上のリモートピアノードとの間で信号を送受信するための物理層として作用する。
【００２６】
任意の明示的なまたは暗示的な事象に応答して、トランザクション実行モジュール５０３は、１つ以上のリモートピアノードとの分散トランザクションを開始する。各分散トランザクションは、複数のネットワークアドレスに関連付けられている。検証モジュール５０４は、１つ以上のリモートピアノードがすべて、システム構成の同じビューを有することを検証する。例示的な一実現化例として、検証モジュール５０４は、それ自体のピアノードにおけるネットワークマネージャ５０１からシステム構成を取得し、１つ以上のリモートピアノードからシステム構成を取得して、次に、整合性のあるアドレス情報を確実にするためにそれらを互いに比較する。
【００２７】
トランザクション実行モジュール５０３が一旦、検証モジュール５０４から検証の好結果を受信すると、トランザクション実行モジュール５０３は、１つ以上のリモートピアノードに関連付けられた複数のネットワークアドレスを介して、分散トランザクションを実行し始める。
【００２８】
図６は、この発明の一実施形態に従ったピアノード６００を示す。図６に示すように、ピアノード６００は、各々が複数のネットワークアドレスに関連付けられた１つ以上のリモートピアノードとの分散トランザクションを開始するように構成された開始ユニット６０２と、１つ以上のリモートピアノードがすべて、システム構成の同じビューを有することを検証するように構成された検証ユニット６０４と、１つ以上のリモートピアノードに関連付けられた複数のネットワークアドレスを介して、分散トランザクションを実行するように構成された実行ユニット６０６とを含む。
【００２９】
一例では、システム構成は、各ピアノードに関連付けられた１つ以上の一意的な名前、 ネットワークのリスト、および各ピアノードに到達するためのインターネットプロトコル（ＩＰ）アドレスのうちの少なくとも１つを含む。
【００３０】
一例では、応答する前に、１つ以上のリモートピアノードは、ローカルシステム構成情報がローカルＯＳ／ネットワーキング構成と整合しているかどうかをチェックする。
【００３１】
別の例では、ネットワーク構成の変更が生じた場合、１つ以上の次の分散トランザクションが実行され得る前に、１つ以上の連携するピアノードは同期される。
【００３２】
さらに別の例では、連携するピアノード間でネットワーク構成が整合してしない期間の間、分散トランザクションは開始されない。
【００３３】
一例では、ピアノード６００は、連携するピアのリストの変更を検出するように構成された検出ユニット６０８をさらに含む。
【００３４】
一例では、１回以上のネットワーク構成更新は、自動でまたは手動で行なわれる。
たとえば、１回以上のネットワーク構成更新は、ピアノードまたは任意のリモートピアノードがシステム構成の古くなったビューを有することを引き起こさない。
【００３５】
一例では、分散トランザクションの実行中、ネットワークアドレスは動的に変更される。
【００３６】
なお、点線によって示されたユニットは任意である。ここに開示されたさまざまなユニットは、ハードウェア、ソフトウェア、またはそれらの組合せで実現または実行されてもよい。それらは、ここに説明された機能を行なうよう設計された、汎用のシングルまたはマルチチッププロセッサ、デジタル信号プロセッサ（digital signal processor：ＤＳＰ）、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）または他のプログラマブルロジックデバイス、個別のゲートまたはトランジスタロジック、個別のハードウェアコンポーネント、もしくはそれらの任意の組合せで実現または実行されてもよい。汎用プロセッサは、マイクロプロセッサ、もしくは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連動する１つ以上のマイクロプロセッサ、または任意の他のそのような構成として実現されてもよい。いくつかの実現化例では、ユニットは、所与の機能に特有の回路によって実現されてもよい。
【００３７】
この発明は、この開示の教示に従ってプログラミングされた１つ以上のプロセッサ、メモリ、および／またはコンピュータ読取可能な記憶媒体を含む、従来の汎用または専用デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを１つ以上用いて、都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、適切なソフトウェアコーディングが、この開示の教示に基づいて、熟練したプログラマらによって容易に準備可能である。
【００３８】
いくつかの実施形態では、この発明は、この発明のプロセスのうちのいずれかを行なうようにコンピュータをプログラミングするために使用可能な命令が格納された記憶媒体またはコンピュータ読取可能な媒体である、コンピュータプログラム製品を含む。この記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含むあらゆるタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気カードまたは光カード、ナノシステム（分子メモリＩＣを含む）、もしくは、命令および／またはデータを格納するのに好適なあらゆるタイプの媒体またはデバイスを含み得るものの、それらに限定されない。
【００３９】
この発明の前述の説明は、例示および説明のために提供されてきた。それは、包括的であるよう、または、この発明を開示された形態そのものに限定するよう意図されてはいない。当業者には、多くの修正および変形が明らかであろう。修正および変形は、開示された特徴の任意の組合せを含む。実施形態は、この発明の原理およびその実際の応用を最良に説明するために選択され説明されており、それにより、当業者が、考えられる特定の用途に適したさまざまな実施形態に関する、およびさまざまな修正を有するこの発明を理解できるようにする。この発明の範囲は、特許請求の範囲およびその均等物によって定義されることが意図されている。
【図１】
2015534308.tif 000003
【図２】
2015534308.tif 000004
【図３】
2015534308.tif 000005
【図４】
2015534308.tif 000006
【図５】
2015534308.tif 000007
【図６】
2015534308.tif 000008
【国際調査報告】
2015534308.tif 000009
2015534308.tif 000010
2015534308.tif 000011