(57)【特許請求の範囲】
【請求項１】
少なくとも２つのサーバを含むクラスタを使用するクラスタデータ処理方法であって、
前記少なくとも２つのサーバのうちの１つから外部コンピューティングデバイスへ、外部コンピューティングデバイスによって処理される処理データ及び制御識別子記録を含む第１のデータを送信するステップであって、前記制御識別子記録は、前記第１のデータを識別するための一意の識別子及び前記処理データが処理されることによって生成される処理結果のデータを含む第２のデータの宛先となるサーバの位置情報を含む制御情報を含む、ステップと、
前記第１のデータを送信した後、前記クラスタと前記外部コンピューティングデバイスとの間のネットワーク接続を中断するステップと、
前記外部コンピューティングデバイスが前記第１のデータを処理することによって前記第２のデータが生成された後、前記クラスタと前記外部コンピューティングデバイスとの間のネットワーク接続を確立するステップであって、前記第２のデータは、前記処理結果のデータ及び前記制御識別子記録を含む、ステップと、
前記ネットワーク接続の確立に応答して、前記外部コンピューティングデバイスから、前記クラスタで前記第２のデータを受信するステップと、
前記第２のデータを受信した後、前記クラスタと前記外部コンピューティングデバイスとの間のネットワーク接続を中断するステップと、
前記第２のデータの前記制御情報に従って、前記第２のデータをルーティングするステップと
を含み、
前記制御識別子記録が変更される場合、前記第１のデータが前記外部コンピューティングデバイスによって処理されて前記第２のデータが前記クラスタで受信される間を通して前記一意の識別子は変更されずに前記制御情報が変更されることを特徴とする方法。
【請求項２】
前記クラスタは、負荷バランシングデバイスを有し、前記第２のデータは、ルーティングされる前に、前記負荷バランシングデバイスによって受信されることを特徴とする請求項１に記載の方法。
【請求項３】
前記クラスタで前記第２のデータを受信するステップは、既定の負荷バランシングルールに従って、前記クラスタ内の前記少なくとも２つのサーバの受信サーバで前記第２のデータを受信するステップであって、前記受信サーバは前記第２のデータの前記制御情報に従って前記第２のデータをルーティングする、ステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記クラスタで前記第２のデータを受信するステップは、
既定の負荷バランシングルールに従って、前記クラスタ内の前記少なくとも２つのサーバの受信サーバで前記第２のデータを受信するステップと、
前記第２のデータの前記制御情報に従って、前記第２のデータをルーティングするように適合される、ルーティングミドルウェアへ前記第２のデータを送信するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記制御情報に従って、前記第２のデータをルーティングするステップは、前記受信サーバが、適切に機能していない場合、既定のルーティングルールに従って、前記クラスタ内の前記少なくとも２つのサーバの代替受信サーバへ前記第２のデータを送信するステップをさらに含むことを特徴とする請求項３に記載の方法。
【請求項６】
前記方法は、商取引において使用され、前記制御識別子記録は、発注情報を含むことを特徴とする請求項１に記載の方法。
【請求項７】
クラスタデータ処理システムであって、
少なくとも２つのサーバを含むサーバクラスタと、
負荷バランシングデバイスと、
ルーティングユニットとを含み、
各サーバは、外部コンピューティングデバイスによって処理される処理データ及び制御識別子記録を含む第１のデータを外部コンピューティングデバイスへ送信するように適合される送信ユニットを有し、前記第１のデータの送信後に前記外部コンピューティング装置との間のネットワーク接続を中断し、前記制御識別子記録は、前記第１のデータを識別するための一意の識別子及び前記処理データが処理されることによって生成される処理結果のデータを含む第２のデータの宛先となるサーバの位置情報を含む制御情報を含み、
前記負荷バランシングデバイスは、前記外部コンピューティングデバイスが前記第１のデータを処理することによって前記第２のデータが生成され、前記外部コンピューティングデバイスとの間のネットワーク接続が確立された後、前記外部コンピューティングデバイスから前記第２のデータを受信するように適合され、前記第２のデータは、前記処理結果のデータ及び前記制御識別子記録を含み、前記負荷バランシングデバイスは、前記第２のデータを受信後、既定の負荷バランシングルールに従って、前記少なくとも２つのサーバの受信サーバの前記ルーティングユニットへ前記第２のデータを伝送するようにさらに適合され、
前記ルーティングユニットは、前記第２のデータに含まれる前記制御情報に従って、前記第２のデータをルーティングするように適合され、
前記サーバクラスタと前記外部コンピューティングデバイスとの間のネットワーク接続は、前記第２のデータの受信後に中断され、
前記制御識別子記録が変更される場合、前記第１のデータが前記外部コンピューティングデバイスによって処理されて前記第２のデータが前記クラスタで受信される間を通して前記一意の識別子は変更されずに前記制御情報が変更されることを特徴とするシステム。
【請求項８】
前記ルーティングユニットは、前記少なくとも２つのサーバの各々に配置され、前記受信サーバは、前記負荷バランシングデバイスから前記第２のデータを受信するように適合される受信ユニットを含むことを特徴とする請求項７に記載のシステム。
【請求項９】
前記受信サーバは、ルーティングされる前記ルーティングユニットへ前記第２のデータを伝送するように適合されることを特徴とする請求項７に記載のシステム。
【請求項１０】
前記ルーティングユニットは、前記位置情報に従って、前記受信サーバが機能しているかどうか確認するために使用され、前記受信サーバが機能していない場合、前記ルーティングユニットは、既定のルーティングルールに従って、前記少なくとも２つのサーバの代替受信サーバをさらに選択し、前記代替受信サーバへ前記第２のデータを送信するように適合される、故障検出ユニットをさらに含むことを特徴とする請求項７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術の分野に関し、特に、クラスタに基づくデータ処理方法システムに関する。本願は、２００７年４月２５日出願の中国特許出願第２００７１０１０２６４９．４号「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＣＬＵＳＴＥＲ  ＤＡＴＡ  ＰＲＯＣＥＳＳＩＮＧ（クラスタデータ処理のための方法及び装置）」の優先権を主張するものである。
【背景技術】
【０００２】
コンピュータ及びネットワーク技術の継続的な発展に伴って、サーバの信頼性に対してますます高まりつつある処理需要及び要件は、単に、サーバのハードウェア性能を向上させるだけでは、もはや充足させることは不可能である。このような状況下、クラスタコンピューティング技術は、次第に、広く注目を集め、使用されるようになってきている。クラスタとは、多くの集積コンピューティングデバイス（パーソナルコンピュータ及びサーバ等）によって構成され、統合コンピューティングリソースとして使用される、ある種の並列又は分散システムを指す。クラスタ内のサーバのうちの１つが機能しない場合、同一クラスタ内の他のサーバが、そのサービス及びジョブを引き継ぎ、高信頼性ネットワークサービスを提供することができる。さらに、クラスタコンピューティング技術を使用することによって、もともと単一サーバによって担われていた負荷を、同一クラスタ内の他のサーバによって共有することができる。これによって、システムの処理能力が、大幅に向上する。
【０００３】
図１は、クラスタを使用して、データ処理を実行する共通システムの構造図を示す。図１のシステムは、クラスタ１００と、外部サーバ１９０とを有する。クラスタ１００は、サーバａ0、ａ1、…ａi、…及びａnと、負荷バランシングデバイス１１０とによって形成される。外部処理要求を受信後、負荷バランシングデバイス１１０は、システムの物理的見地に基づくあるストラテジーを使用して、クラスタ１００からサーバを選択し、外部にサービスを提供する。選択は、例えば、クラスタ１００内のサーバの現在のネットワーク接続に基づくことができる。通常の状況下では、クラスタ内の各サーバは、類似サービスを提供する。しかしながら、時として、異なるサーバが異なる役割を担い、異なるサービスを提供する場合がある。例えば、サーバａ0は、主要顧客のデータを取り扱うことができる一方で、サーバａ1及びａ2は、一般顧客のデータに対応することができる。この場合、サーバａ0は、一意の識別子を含む１つ又は複数セットのデータを外部サーバ１９０へ送信すると、外部サーバ１９０は、同一の一意の識別子を含む処理結果のデータを返送し、返送されたデータが同一サーバａ0によってさらに処理されることを要求する。
【０００４】
上述のプロセスにおいて、処理されたデータを関連サーバａ0へ正確に返送するために、既存の技術における常套手段は、外部サーバ１９０がクラスタサーバａ0からデータを受信後、外部サーバ１９０とクラスタサーバａ0との間のネットワーク接続を維持することである。処理が完了すると、次いで、サーバ１９０は、維持されるネットワークリンクを通して、直接、サーバａ0に処理結果を返送することができる。しかしながら、これによって、ネットワーク接続の負荷が外部サーバ１９０にかかる。この問題は、外部サーバ１９０によって送達される多くの標的が存在する場合、より顕著となる。過剰な数のネットワーク接続は、外部サーバ１９０のリソースを大幅に消費し、その処理能力を低減させる。
【０００５】
したがって、処理されたデータを外部サーバ１９０からクラスタ内の関連サーバへ正確に伝送するのに役立ち得る新しい設計が望ましく、これは、クラスタコンピューティング技術の分野において一般的に直面する継続的課題である。
【発明の概要】
【０００６】
本開示は、サーバリソースにかかる重い負荷の課題を解決し、かつ既存の技術においてデータ伝送のための外部サーバとクラスタとの間のネットワーク接続を継続的に維持することによって生じる低サーバ処理性能を防止するための、クラスタに基づくデータ処理方法について説明する。開示されるクラスタデータ処理方法及びシステムは、クラスタ内のサーバと外部コンピュータとの間の連続的ネットワーク接続を必要としない、一意の識別子制御に基づく。
【０００７】
本開示の一態様は、少なくとも２つのサーバを含むクラスタを使用するクラスタデータ処理方法である。本方法によると、クラスタは、第１の制御識別子記録を含む第１のデータを外部コンピューティングデバイス（外部サーバ等）へ送信し、続いて、外部コンピューティングデバイスから第２のデータをクラスタにおいて受信する。第２のデータは、第１のデータの処理結果であって、第１のデータの第１の制御識別子記録に対応する第２の制御識別子記録を含む。第１の制御識別子記録及び第２の制御識別子記録は各々、互いに対応する一意の識別子と、互いに対応する制御情報とを有する。クラスタは、次いで、第２のデータの第２の制御識別子記録に従って、第２のデータをルーティングする。
【０００８】
第２の制御識別子記録と第１の制御識別子記録との間の対応によって、クラスタは、第２のデータと第１のデータとの間の関係を識別し、第２のデータの適切なルーティングのために、第２のデータに含まれる制御情報を使用することが可能となる。一実施形態では、第２の制御識別子記録の一意の識別子は、第１の制御識別子記録の一意の識別子と等しい。さらに、第２の制御識別子記録の制御情報もまた、第１の制御識別子記録の制御情報と等しい場合がある。
【０００９】
本方法の一実施形態では、クラスタは、負荷バランシングデバイスを有し、第２のデータは、ルーティングされる前に、負荷バランシングデバイスによって受信される。負荷バランシングデバイスは、別個のデバイスであってもよく、又はクラスタ内のサーバのうちの１つに配置されてもよい。
【００１０】
最適には、外部サーバからの第２のデータの受信に応じて、負荷バランシングデバイスは、既定の負荷バランシングルールに従って、クラスタ内の受信サーバへ第２のデータを送信することもできる。受信サーバは、次いで、第２のデータに含まれる制御情報に従って、第２のデータをルーティングする。別の実施形態では、受信サーバは、ルーティングミドルウェアへ受信した第２のデータを送信し、このミドルウェアは、続いて、第２のデータに含まれる制御情報に従って、第２のデータをルーティングすることができる。
【００１１】
ルーティングを制御するため、制御情報は、サーバ位置情報を含み、第１のデータによって指定されるように、クラスタ内の所望のサーバを識別することができる。この場合、制御情報に従って、クラスタ内で第２のデータをルーティングするステップは、サーバ位置情報に従って選択される受信サーバへ第２のデータを送信するステップを含むことができる。一実施形態では、サーバ位置情報に従って選択される受信サーバが機能していない場合、既定のルーティングルールに従って、代替受信サーバがクラスタから選択され、次いで、第２のデータは代替受信サーバへ伝送される。
【００１２】
本開示の別の態様は、少なくとも２つのサーバと、負荷バランシングデバイスと、ルーティングユニットとを含む、クラスタデータ処理システムである。各サーバは、第１の制御識別子記録を含む第１のデータを外部コンピューティングデバイスへ送信するように適合される送信ユニットを有する。負荷バランシングデバイスは、外部サーバから、第２のデータを受信するように適合され、第２のデータは、第１のデータの第１の制御識別子記録に対応する第２の制御識別子記録を含む。ルーティングユニットは、第２のデータに含まれる第２の制御識別子記録に従って、第２のデータをルーティングするように適合される。
【００１３】
ルーティングユニットは、クラスタのサーバのうちの１つ以上に配置されてもよい。第２のデータの受信に応じて、負荷バランシングデバイスは、既定の負荷バランシングルールに従って、ルーティングユニットをホスティングするサーバのうちの１つへ第２のデータを伝送する。ホスティングサーバは、負荷バランシングデバイスから、第２のデータを受信するために使用される受信ユニットを有する。ホスティングサーバ内のルーティングユニットは、第２のデータに含まれる制御情報に従って、第２のデータをルーティングする。
【００１４】
代替として、ルーティングユニットは、独立型デバイスであってもよい。負荷バランシングデバイスは、既定の負荷バランシングルールに従って、クラスタのサーバへ第２のデータを伝送し、次いで、サーバはルーティングユニットへ第２のデータを送信し、このルーティングユニットは、続いて、第２のデータに含まれる制御情報に従って、第２のデータをルーティングする。
【００１５】
最適には、ルーティングユニットは、故障検出ユニットをさらに含むことができる。故障検出ユニットは、サーバ位置情報に従って選択されるサーバが、適切に機能しているかどうか検出するために使用される。適切に機能していない場合、代替サーバが、既定のルーティングルールに基づいて選択され、第２のデータが、代替サーバへ伝送される。
【００１６】
既存の技術と比較して、本明細書で開示されるいくつかの例示的な実施形態は、潜在的に以下の効果を有することができる。一意の識別子は、データ伝送中に変更又は修正されないという利点を利用して、開示される方法及びシステムは、制御情報を追加することによって、一意の識別子を制御識別子記録に拡張する。外部からの第２のデータの受信に応じて、本方法及びシステムは、第２のデータ内の制御識別子記録の制御情報に従って、クラスタ内の第２のデータのルーティングを実現する。これによって、クラスタ内のサーバと外部サーバとの間のネットワーク接続が維持されていなくても、正しいサーバによって、第２のデータを処理させることができる。これは、サーバのリソースにかかる重い負荷の課題を解決し、既存の技術において、データ伝送のために、外部サーバとクラスタサーバとの間のネットワーク接続を連続的に維持することによるサーバの処理性能の低減を防止するのに役立つ。本明細書で開示される概念は、既存の技術におけるデータ伝送の際の一意の識別子の使用に関する一般的理解から脱却するものである。開示される方法及びシステムは、既存のデータ構造の何らかの変更、ならびに外部サーバのプログラム及びシステムの何らかの修正を必要とせずに、クラスタと外部サーバとの間の処理のアップグレードを達成する。
【００１７】
本発明の概要は、発明を実施するための形態においてさらに後述される、選択された概念を簡略化した形態で紹介するために提供される。本発明の概要は、請求される主題の重要な特徴又は不可欠な特徴を識別すること、又は請求される主題の範囲を判断する補助として使用されることを意図していない。
【図面の簡単な説明】
【００１８】
発明を実施するための形態は、付随の図面を参照して記述される。図面中、参照番号の一番左の桁の数字は、参照番号が初出である図を識別する。異なる図における同一参照番号の使用は、類似又は同一項目を示す。
【図１】データ処理を実行するために、クラスタを使用する共通システムの構造図である。
【図２】本開示による、方法の例示的な実施形態を示すフローチャートである。
【図３】本開示による、アプリケーション環境を伴う方法の例示的な実施形態を示すフローチャートである。
【図４】本開示による、例示的なクラスタデータ処理システムを示す図である。
【図５】本開示による、別の例示的なクラスタデータ処理システムを示す図である。
【発明を実施するための形態】
【００１９】
既存のクラスタコンピューティング技術では、クラスタ１００内のあるサーバａiによってもともと処理されたデータが、外部サーバ１９０によってデータが処理された後、同一サーバａiによって取り扱われることを可能にするために、ａiと外部サーバ１９０との間の連続的ネットワーク接続は、データ伝送のために維持される必要がある。この実施は、サーバのリソースを占有し、実質的にクラスタサーバａ0、ａ1、…ａi、…及びａnと外部サーバ１９０との両方の処理性能を低減させる。
【００２０】
以下、初めに、クラスタデータ処理方法及びシステムが、共通クラスタシステムの構造図である図１をここでも参照して例示される。開示されるクラスタデータ処理方法及びシステムと既存のクラスタコンピューティング技術との間の差異は、後述される実装にある。
【００２１】
本開示は、クラスタ１００から外部サーバ１９０へ送信される一意の識別子を設定する新しい方法を記述する。本方法は、一意の識別子に制御情報を追加し、一意の識別子を制御識別子記録に拡張する。制御情報は、各データ又は一式の複数データの特定の要件に従って、クラスタサーバ（ａ0、ａ1、…ａi、…又はａn）によって生成されるそのデータ又は一式の複数データ内に指定される。制御識別子記録は、クラスタサーバによって送信されるオリジナルデータを解析し、その識別子及び制御特性を維持する。原則として、識別子及び制御特性は、外部サーバ１９０によって処理されたデータに見られる制御識別子記録と、クラスタサーバａ0、ａ1、…ａi、…又はａnによって送信されたオリジナルデータ内の制御識別子記録との間に認識可能な対応がある限り、維持することができる。しかしながら、これを実装するための直接的方法の１つは、制御識別子記録を変更しないまま保持することである。すなわち、処理されたデータ内の制御識別子記録は、クラスタサーバによって送信されたオリジナルデータに見られる制御識別子記録と同一である。本開示による制御識別子記録は、一意の識別子及び制御情報の両方を有するため、制御識別子記録が変更されないことは、一意の識別子及び制御情報の両方が変更されないまま保持されることを意味する。本開示では、例示的な実施形態を、制御識別子記録が変更されずに使用されるという前提で例示する。
【００２２】
外部サーバ１９０によってデータが処理されるとき、制御識別子記録が変更されないままであるため、クラスタ１００は、制御識別子記録内の制御情報に従って、外部サーバ１９０から受信したデータをルーティングすることができる。これによって、データは、クラスタ内の関連（又は指定）サーバによって処理され、従ってクラスタ１００と外部サーバ１９０との間のデータ処理を改善することが可能となる。
【００２３】
クラスタデータ処理方法及びシステムを、以下の図面及び例示的な実施形態を使用して、さらに詳細に説明する。
【００２４】
図２は、本開示による、方法の例示的実施形態を示すフローチャートである。例示的な実施形態は、以下のように、図２を参照して詳述される。本記述では、プロセスが記述される順番は、制限として解釈されることを意図しておらず、任意の数の記述されるプロセスブロックを任意の順番で組み合わせて、本方法又は代替方法を実装することができる。
【００２５】
ブロック２１０では、クラスタ１００内のサーバは、既定のルールに従って、制御識別子記録を生成する。既存の技術におけるように、クラスタから外部サーバ１９０へ送信されるデータの各セットは、他のデータから自身を区別するための一意の識別子を含む。一実施形態では、この一意の識別子は、データが外部サーバ１９０によって処理され、クラスタ１００に返送される間を通して、変更されないままである。一意の識別子の本特徴を利用することによって、本開示は、制御情報を追加し、一意の識別子を制御識別子記録に拡張する。具体的には、例示的な一実施形態では、制御識別子記録は、一意の識別子及び制御情報を含む。開示される方法を実施する際に、一意の識別子を生成するルールは、データ識別子が使用される限り、必要性に基づいて、任意の好適な方法で、ユーザによって定義することができる。制御情報は、続いて、クラスタ１９０及び／又はクラスタ１００において、データがどのように処理されるかを制御するために使用される。例えば、制御情報は、データを処理するために使用するのが望ましいクラスタ内のサーバの位置情報を含むことができる。
【００２６】
しかしながら、制御情報内にサーバ位置情報を含めるステップは、制御識別子記録に制御情報を実装するための例示的な方法の１つでしかないことに留意されたい。当業者は、各自のサービスの必要性に応じて、制御情報内に他のコンテンツを設定することができる。例えば、制御情報は、データ処理のために使用されるプログラムのバージョンに関連する情報を有することができる。いくつかのクラスタ内の異なるサーバによって実行されるプログラムのバージョンは、異なってもよい。この場合、データ処理は、一定の互換性のあるプログラム又は関連バージョンのプログラムを有するサーバによって実行されることが必要とされる場合がある。したがって、データのために必要とされるプログラムバージョンを含む制御情報を設定することができる。別の実施例では、データが、指定の時間内にサーバによって処理されなければならない場合、制御情報は、データを処理するために選択されるサーバによって充足される必要がある処理時間を含むように設定することができる。
【００２７】
ブロック２２０では、第１のデータを処理したサーバは、外部サーバ１９０へ第１のデータを送信する。コンピューティングデータ自体に加え、第１のデータは、ブロック２１０で生成された制御識別子記録を含む。外部サーバ１９０によって処理されるコンピューティングデータ及び制御識別子記録は結合され、第１のデータを形成し、外部サーバ１９０へ送信される。
【００２８】
好ましい一実施形態では、一意の識別子を制御識別子記録に拡張する際、開示される方法は、一意の識別子のオリジナルデータ構造を変更しない。外部サーバ１９０に送信される第１のデータに関し、そのデータ構造及びインターフェースルールは、その意味論の適合性、一貫性、及び完全性が維持されるように、既存の技術において見られるものから変更されない。さらに、外部サーバ１９０のもともとの処理ルールを修正する必要がない。クラスタ１００内のデータの制御要件が変化する場合、制御識別子記録内の制御情報のみ、変化に適合させるために変更する必要がある。これは、本開示によるクラスタデータ処理システムを変更することによって生じるコストを大幅に削減する。
【００２９】
ブロック２３０では、クラスタ１００は、外部サーバ１９０から第２のデータを受信する。第２のデータは、外部サーバ１９０によって第１のデータを処理することによって得られ、外部サーバ１９０からクラスタ１００へ返送される。第２のデータは、第１のデータの制御識別子記録に基づき、それに対応する制御識別子記録を含む。一実施形態では、第２のデータ内の制御識別子記録は、第１のデータの制御識別子記録と等しい。例示目的のため、外部サーバ１９０は、クラスタ１００とデータ相互作用を実行するように選択されるデバイス又はシステムである。しかしながら、別個のコンピューティングデバイスを使用して、外部サーバ１９０によって生成される第２のデータをクラスタ１００に伝えてもよいことが考えられる。また、外部サーバ１９０は、クラスタ自体であってもよいことを理解されたい。開示される方法は、外部サーバ１９０の形態について、もしくは外部サーバ１９０、あるいは任意の他の外部デバイス又はシステムによって、第１のデータを処理する方法について、何ら制限を有しない。
【００３０】
クラスタ１００は、クラスタ１００及びそのサーバの物理的見地に基づくある選択ストラテジーに従って、次のサービスを提供する、クラスタ１００内のサーバを選択するために使用される負荷バランシングデバイス１１０をさらに有する。選択ストラテジーは、例えば、ランダム選択、又はサーバの現在のネットワーク接続に基づく選択等とすることができる。負荷バランシングデバイス１１０は、サーバから離れた特殊ハードウェア、又はクラスタ１００内のサーバのうちの１つに配置されるデバイスであってもよい。本明細書で開示される方法を実装する際に、特殊ハードウェアを使用して、負荷バランシングを実行するかどうかは、実装者の自由裁量によって行われる。
【００３１】
ブロック２４０では、クラスタ１００は、第２のデータから、その中に含まれる制御情報を含む制御識別子記録を解析する。一実施形態では、例えば、第２のデータを受信後、負荷バランシングデバイス１１０は、クラスタ１００内のサーバを選択し、選択されたサーバへ第２のデータを送信する。第２のデータを受信したサーバは、既定のルールに従って、制御識別子記録から、一意の識別子及び制御情報を解析する。
【００３２】
ブロック２５０では、クラスタ１００は、第２のデータから、含まれる制御識別子記録内の制御情報に設定されるルールに従って、第２のデータをルーティングする。再ルーティングは、第２のデータの制御識別子記録を解析したクラスタ内の同一サーバによって実行され得る。最適には、制御情報は、クラスタ１００内のサーバの位置を記述するサーバ位置情報を有することができる。制御情報内のサーバ位置情報に従って、好適なサーバが選択され、次いで、第２のデータが、選択されたサーバへ送信される。本明細書に記述される方法を実装する際、ルールに従って第２のデータを適切にルーティングするために、自分自身の実際的な必要性に従って、制御情報のコンテンツ及びルールを設定することができることを理解されたい。例えば、サーバによって提供されるサービスのバージョン及び／又は必要処理時間に従って、サーバを選択するためのルールを設定することができる。本開示は、制御情報のコンテンツ及びルールの設定方法について、何ら制限を課さない。
【００３３】
クラスタ１００は、選択に応じて、ルーティングユニットを使用して、第２のデータをクラスタ内の適切なサーバにルーティングすることができる。ルーティングユニットは、サーバから離れた独立型ハードウェア、又はクラスタ内のサーバのうちの１つ以上に配置されるデバイスのいずれかとすることができる。例示的な本実施形態では、クラスタ内の任意のサーバを、第２のデータをルーティングするために使用することができる。外部サーバ１９０からの第２のデータの受信に応じて、負荷バランシングデバイス１１０は、クラスタ内のサーバをランダムに選択し、ルーティングされるサーバへ第２のデータを送信することができる。
【００３４】
ブロック２６０では、故障保護のための任意選択のステップが実行される。制御情報内のサーバ位置情報に従って、クラスタ１００は、（例えば、負荷バランシングデバイス１１０を使用して）選択されたサーバが機能しているかどうかを判断する。選択されたサーバが機能していない場合、既定のルール及びストラテジーに基づいて、代替サーバが選択され、次いで、処理のための代替サーバへ第２のデータが送信される。
【００３５】
さらに、一意の識別子及び制御情報に加えて、特定のサービスの必要性に従って、制御識別子記録に設定される他のコンテンツが存在し得る。本開示は、制御識別子記録内でそのようなコンテンツを設定するために、何ら制限を有していない。例えば、制御識別子記録内のデータを暗号化し、かつそれに署名し、データの安全性を向上することができる。
【００３６】
制御識別子記録クラスタの例示的な使用は、後述される。実施例は、制御識別子記録が発注情報を含む商取引において見られる。
【００３７】
クラスタ１００は、データグラムをサーバ１９０へ送信し、アカウントＩＤ「ｃｕｓｔｏｍｅｒＡｃｃｏｕｎｔＩｄ」を有するユーザアカウントから＄１００を引き落とすようにサーバ１９０に要求する。データグラムは、以下の形態とすることができる。
＜ｏｒｄｅｒＩｄ＞１２３４５８７６２９８７０８７６５６３５５５３２２３＜／ｏｒｄｅｒＩｄ＞
＜ｃｕｓｔｏｍｅｒＡｃｃｏｕｎｔＩｄ＞８７６３４２９３８８２１７３７１０９８７＜／ｃｕｓｔｏｍｅｒＡｃｃｏｕｎｔＩｄ＞
＜ｒｅｑｕｅｓｔｅｒＩｄ＞０９８７６５８９３２＜／ｒｅｑｕｅｓｔｅｒＩｄ  ＞  
＜ｐｒｏｄｕｃｔ＞ｓｕｐｅｒｍａｒｋｅｔ  ｓｈｏｐｐｉｎｇ＜／ｐｒｏｄｕｃｔ＞
＜ｐｒｉｃｅ＞  １００．００＜／ｐｒｉｃｅ＞
＜ｃｒｅａｔｅＤａｔｅ＞２００７−０４−１９  １２：０１  ＜／ｃｒｅａｔｅＤａｔｅ＞
上述の実施例では、「ｏｒｄｅｒＩｄ」に関する第１行目は、本開示に記述される方法で使用可能な制御識別子記録である。サーバ１９０によるデータグラムのコンテンツの修正又は否認を回避するために、データグラムのコンテンツは、暗号化されたコンテンツの要約（例えば、ハッシュ和又はハッシュ値）を得るために、既定のアルゴリズムに基づいて暗号化されてもよく、次いで、この要約は、制御識別子記録に入れられる。本実施例では、ｏｒｄｅｒＩｄ（８７０８７６５６３５５５３２２３）の最後の１６桁は、現在のデータグラムのコンテンツの要約である。トランザクションにエラーが生じていないかどうかを確かめるために、サーバ１９０によって受信されるデータグラムのコンテンツは、テスト要約を得るためのものと同一のアルゴリズムを使用して暗号化される。テスト要約は、制御識別子記録内のもともとの要約と比較される。それらが同一ではない場合、データグラムは、サーバ１９０へ送信された後に修正されていると判断される。したがって、暗号化によって、データの安全性が改善される。
【００３８】
本開示の第２の例示的な実施形態では、第２のデータの受信に応じて、負荷バランシングデバイスによって選択されるサーバは、第２のデータをルーティングミドルウェアへ伝送する。次いで、ルーティングミドルウェアは、第２のデータに含まれる制御情報に従って、本データをルーティングする。ルーティングミドルウェアは、独立サーバ、クラスタ内の専用サーバ、又はクラスタ内のサーバのうちの１つとすることができる。第１の例示的な実施形態と比較して、第２の例示的な実施形態におけるクラスタ内のサーバは、データルーティングに関与しない。代わりに、データルーティングは、ルーティングミドルウェアによって実行される。したがって、各サーバのルーティングサービスの保守が回避されるため、本実施形態は、保守の複雑性を低減することができる。第２の例示的な実施形態のもう１つの態様は、第１の例示的な実施形態のものに類似しているため、ここでは繰り返さない。
【００３９】
さらに別の例示的な実施形態では、負荷バランシングデバイス及びルーティングミドルウェアの機能性は、単一集積デバイス上で実現することができる。この場合、外部サーバ１９０から返送されるデータの受信に応じて、集積デバイスは、負荷バランシングを考慮し、全体として、データの関連制御情報のルールを制御し、データの処理を完了するためのクラスタ内のサーバを選択することができる。上述の例示的な実施形態のさらなる詳細は、図４−５を参照して後述される。
【００４０】
クラスタデータ処理方法は、上述されている。以下では、アプリケーション環境を伴う実践的実施例を使用して、本方法の実装についてさらに説明する。
【００４１】
図３は、本開示によるアプリケーション環境を伴う本方法の例示的な実施形態を示すフローチャートである。ここに例示される実践的実施例では、クラスタ１００は、支払要求をサーバ１９０へ送信する。本要求の受信に応じて、サーバ１９０は、支払要求に指定される発注番号に従って、支払を完了し、支払結果を返送する。詳細は、以下に記述される。
【００４２】
ブロック３０１ａでは、クラスタ１００内のサーバ（例えば、サーバａ1）は、外部サーバ１９０への接続要求を送信する。外部サーバ１９０が応答する場合、ネットワーク接続が、サーバａ1とサーバ１９０との間で確立される。続いて、サーバａ1は、要求データグラムをサーバ１９０へ送信する。
【００４３】
サーバａ1からサーバ１９０へ送信される要求データグラムのコンテンツを以下に示す。
＜orderId＞A111123＜／orderId＞
＜customerAccountId＞87634293882173710987＜／customerAccountId＞
＜requesterId＞0987658932＜／requesterId＞
＜product＞supermarket  shopping＜／product＞
＜price＞  100.00＜／price＞
＜createDate＞2007−04−19  12：01  ＜／createDate＞
【００４４】
上述の要求データグラムでは、＜ｏｒｄｅｒＩｄ＞Ａ１１１１２３＜／ｏｒｄｅｒＩｄ＞は、現在のデータグラムの制御識別子記録である。Ａ１は、発注を処理したサーバ（ａ1）名を識別する制御情報であって、１１１２３は、発注番号を指定する発注の一意の識別子である。
【００４５】
ブロック３０１ｂでは、サーバａ1は、データ伝送完了後、サーバ１９０とのネットワーク接続を中断する。
【００４６】
ブロック３０２では、外部サーバ１９０は、受信したデータグラムを処理し、処理結果を生成する。本実施例では、外部サーバ１９０は、顧客アカウント８７６３４２９３８８２１７３７１０９８７から＄１００．００の支払を行うことを要求され、次いで、処理結果を生成する。処理結果のフォーマットは、以下のようになる。
＜orderId＞A111123＜／orderId＞
＜result＞payment  successful＜／result＞
【００４７】
上述のように、処理結果は、クラスタサーバａ1から受信したもともとの要求データグラムに含まれる制御識別子記録と等しい制御識別子記録＜ｏｒｄｅｒＩｄ＞Ａ１１１１２３＜／ｏｒｄｅｒＩｄ＞を含む。外部サーバ１９０は、クラスタ１００へ返送される処理結果を準備する。制御識別子記録＜ｏｒｄｅｒＩｄ＞Ａ１１１１２３＜／ｏｒｄｅｒＩｄ＞は、サーバ１９０の返送されたメッセージ内に含まれる。
【００４８】
ブロック３０３では、外部サーバ１９０は、負荷バランシングデバイス１１０に新しいネットワーク接続を要求し、ネットワーク接続の確立に応じて、負荷バランシングデバイス１１０へ処理結果を返送する。データ伝送が完了後、サーバ１９０は、負荷バランシングデバイス１１０とのネットワーク接続を中断する。
【００４９】
ブロック３０４では、サーバ１９０からの処理結果データの受信に応じて、負荷バランシングデバイス１１０は、クラスタ１００内のルーティングサーバａiをランダムに選択し、外部サーバ１９０から、選択されたルーティングサーバａiへ受信したデータを伝送する。
【００５０】
ブロック３０５では、外部サーバ１９０からデータを受信後、選択されたルーティングサーバａiは、ルーティングプログラムを起動し、制御識別子記録（本実施例では、＜ｏｒｄｅｒＩｄ＞Ａ１１１１２３＜／ｏｒｄｅｒＩｄ＞の値を有する）を解析し、標的サーバの位置情報を得る。本実施例では、サーバ位置情報の値は、サーバａ1を表すＡ１であって、サーバａ1がデータのさらなる処理のための所望の標的サーバであることを意味する。次いで、ルーティングサーバａiは、外部サーバ１９０から受信したデータをサーバａ1へ送信し、さらに処理する。
【００５１】
クラスタデータ処理方法を、上記の例示的な実施形態を使用して記述した。本開示の別の態様は、クラスタデータ処理システムであって、そのさらなる詳細を後述する。
【００５２】
図４は、本開示による、例示的なクラスタデータ処理システムを示す。クラスタデータ処理システム４００は、負荷バランシングデバイス４１０と、そのうちの１つのみが、クラスタ内の全サーバ４２０を表すものとして具体的に例示されるサーバ４２０とを含む。
【００５３】
各サーバ４２０は、制御識別子記録を含む第１のデータを外部コンピューティングデバイス（例えば、外部サーバ１９０）へ送信するために使用される送信ユニット４２１を有する。制御識別子記録は、第１のデータに対応する一意の識別子及び制御情報を含む。
【００５４】
負荷バランシングデバイス４１０は、外部コンピューティングデバイスから第２のデータを受信する。第２のデータは、第１のデータと同一の制御識別子記録及び対応する制御情報を含む。
【００５５】
また、各サーバ４２０は、負荷バランシングデバイス４１０から送信される第２のデータを受信するために使用される受信ユニット４２２を有する。各サーバ４２０は、第２のデータに含まれる制御情報に従って、サーバ４２０の中から適切な標的サーバへ第２のデータをルーティングするために使用されるルーティングユニット４２３をさらに有する。
【００５６】
送信ユニット４２１によって送信される第１のデータに関して、制御識別子記録内の制御情報は、第１のデータを生成した特定のサーバ４２０の位置情報を含むことができる。また、負荷バランシングデバイス４１０によって外部から受信される第２のデータは、同一制御識別子記録を含む。また、対応して、本制御識別子記録の制御情報もまた、第１のデータを生成した特定のサーバ４２０の位置情報を含む。
【００５７】
負荷バランシングデバイス４１０が、第２のデータを送信する方法に応じて、負荷バランシングデバイス４１０から第２のデータを受信するサーバは、第１のデータを最初に生成したサーバと同一でなくてもよい。図４に示される例示的な実施形態では、受信サーバは、一実施例では第１のデータを最初に生成したサーバである、所望の標的サーバへ第２のデータをさらにルーティングするように適合される。具体的には、サーバ４２０が、負荷バランシングデバイス４１０から第２のデータを受信後、ルーティングユニット４２３は、制御識別子記録に含まれる制御情報に指定されるサーバ位置情報に対応するサーバへ、第２のデータを伝送する。
【００５８】
さらに、ルーティングユニット４２３はまた、故障検出ユニット４２３１を含むことができる。故障検出ユニット４２３１は、それぞれのサーバ４２０が機能しているかどうかを確認するために使用される。機能していない場合、サーバ４２０の中から代替サーバが、既定のルーティングルールに従って選択され、第２のデータは、処理のために該代替サーバへ伝送される。
【００５９】
図５は、本開示による、別の例示的なクラスタデータ処理システムを示す。クラスタデータ処理システム５００は、負荷バランシングデバイス５１０、サーバ５２０、及びルーティングミドルウェア５３０を含む。サーバ５２０の１つのみが、クラスタ内の全サーバ５２０を表すものとして具体的に例示される。
【００６０】
クラスタデータ処理システム５００は、図４に示されるクラスタデータ処理システム４００の代替設計である。クラスタデータ処理システム５００は、ルーティングユニットの構成である一態様において、クラスタデータ処理システム４００と異なる。クラスタデータ処理システム５００内のサーバに各々配置される複数のルーティングユニットを有する代わりに、別個のルーティングデバイス５３０がクラスタ５００内に設定され、同一クラスタ５００内の各サーバ５２０と接続する。負荷バランシングデバイス５１０は、ルーティングユニット５３０へ第２のデータを送信し、次いで、制御情報に従って、所望の標的サーバ５２０へ第２のデータを伝送する。ルーティングデバイス５３０は、独立型ルーティングミドルウェアとすることができる。
【００６１】
代替として、ルーティングデバイス５３０は、サーバ５２０、あるいはホスティングサーバ内に含まれるものの中から１つ又は少数のホスティングサーバにのみ接続されるルーティングユニットであってもよい。これは、１つ又はいくつかのサーバ５２０のみが、接続されている、あるいはルーティングユニットをホスティングするという点で、依然としてクラスタデータ処理システム４００とは異なる。ホスティングサーバが、負荷バランシングデバイス５１０から第２のデータを受信後、ルーティングユニットへ第２のデータを送信する。次いで、ルーティングユニットは、第２のデータに含まれる制御情報に従って、処理のための所望の標的サーバへ本第２のデータを伝送する。クラスタデータ処理システム５００の他の態様は、クラスタデータ処理システム４００のものと類似しているため、ここでは繰り返さない。
【００６２】
クラスタデータ処理方法及びその対応するシステムが、上記において詳述されてきた。本明細書で論じられる潜在的効果及び利点は、添付の請求項の範囲の制限又は制約として解釈されるべきではないことを理解されたい。実施例は、本開示の原理及び例示的な実装方法を実証するための例示にすぎない。
【００６３】
本主題を、構造特徴及び／又は方法論的作用に特定して記述してきたが、添付の請求項に定義される主題は、必ずしも、記述される特定の特徴又は作用に制限されないことを理解されたい。むしろ、特定の特徴及び作用は、請求項を実装する例示的な形態として開示される。
【図１】
0005645216.tif 000002
【図２】
0005645216.tif 000003
【図３】
0005645216.tif 000004
【図４】
0005645216.tif 000005
【図５】
0005645216.tif 000006