(57)【要約】  分散コンピューティングのためのデータマージング方法は、構成ファイルを使用して、分散ノードによって得られた計算結果のデータベーステーブルへの挿入を誘導し、データベーステーブルに挿入された計算結果をマージする。前記構成ファイルは、分散コンピューティングのタスク分割条件に従って構築される。本方法は、データマージングサーバを使用して、前記構成ファイルをインポートおよびホストし、前記構成ファイルに対応するデータベーステーブルを生成する。各分散ノードは、それぞれの分散コンピューティングタスク完了後、その分散計算結果を前記データベーステーブルに挿入し、一方、データマージングサーバは、前記データベーステーブル内のデータをマージする。種々の使用および種々の分散コンピューティングタスクに適用されるインターフェース規格を使用して、ユーザは、前記インターフェース規格に基づいて、ジョブ特有の構成ファイルを構築することのみが必要となるようにすることができる。
2010524060.tif 000002
【特許請求の範囲】
【請求項１】
分散コンピューティングのためのデータマージング方法であって、
構成ファイルをデータマージングサーバに提供するステップであって、前記構成ファイルは、分散コンピューティングのタスク分割条件に従って設定されるステップと、
前記構成ファイルに従って、前記データマージングサーバによって、データベーステーブルを生成するステップと、
分散ノードが、それぞれの分散コンピューティングタスクを完了した後、前記データベーステーブルに、前記分散ノードから受信した分散計算結果データを挿入するステップと、
前記データマージングサーバによって、前記データベーステーブル内のデータをマージするステップと
を含む方法。
【請求項２】
請求項１に記載のデータマージング方法において、
前記データマージングサーバが、前記データベーステーブル内の前記データをマージした後、データベースまたはファイルとして、データマージング結果をエクスポートするステップをさらに含むことを特徴とするデータマージング方法。
【請求項３】
請求項１に記載のデータマージング方法において、前記構成ファイルは、
データマージングのための前記データベーステーブル名、データベーステーブルフィールド名、データ挿入方法、およびデータマージング方法
を指定する情報を含むことを特徴とするデータマージング方法。
【請求項４】
請求項３に記載のデータマージング方法において、前記データベーステーブル内の前記データをマージするステップは、
前記構成ファイルに指定される前記マージング方法に従って、前記データベーステーブルフィールドを処理するステップ
を含むことを特徴とするデータマージング方法。
【請求項５】
請求項３に記載のデータマージング方法において、前記構成ファイルは、
最大レコード数、エラー処理方法、最大不正レコード数、およびレコードストレージ方法を指定するさらなる情報を含むことを特徴とするデータマージング方法。
【請求項６】
請求項３に記載のデータマージング方法において、前記データベーステーブルに計算結果データを挿入するステップは、
データマージングのための前記データベーステーブル名に従って、前記データベーステーブルに前記計算結果データを挿入するステップ
を含むことを特徴とするデータマージング方法。
【請求項７】
請求項１に記載のデータマージング方法において、前記分散計算結果データは、分散タスクＩＤ、分散構成アイテム名、および分散計算結果を含むことを特徴とするデータマージング方法。
【請求項８】
請求項７に記載のデータマージング方法において、前記分散計算結果データは、ＡＳＣＩＩコードによって、互いに分離される複数のデータブロックを含むことを特徴とするデータマージング方法。
【請求項９】
請求項１に記載のデータマージング方法において、
前記構成ファイルをインポートおよび解析するため、および／または前記データベーステーブルに前記計算結果データを挿入するためのインターフェース規格を構築するステップ
をさらに含むことを特徴とするデータマージング方法。
【請求項１０】
請求項９に記載のデータマージング方法において、前記インターフェース規格は、ユーザによって拡張可能であることを特徴とするデータマージング方法。
【請求項１１】
分散コンピューティングデータマージングシステムであって、
少なくとも１つの分散ノードと、
データマージングサーバであって、構成ファイルに従って、データベーステーブルを生成し、分散ノードが、それぞれの分散タスクを完了した後、前記分散ノードから前記データベーステーブルにそれぞれの分散計算結果データを受信および挿入し、ならびに各分散ノードが、前記それぞれの分散計算結果データを報告した後、前記データベーステーブル内のデータをマージするように構成される、データマージングサーバと
を含むことを特徴とする分散コンピューティングデータマージングシステム。
【請求項１２】
請求項１１に記載の分散コンピューティングデータマージングシステムにおいて、前記データマージングサーバは、
前記構成ファイルに従って、データベーステーブルを生成するためのデータベーステーブル生成モジュールと、
各分散ノードが、前記それぞれの分散計算結果データを報告した後、前記構成ファイルに従って、前記データベーステーブル内の前記データをマージするためのデータマージングモジュールと
を含むことを特徴とする分散コンピューティングデータマージングシステム。
【請求項１３】
請求項１２に記載の分散コンピューティングデータマージングシステムにおいて、前記データマージングサーバは、
全分散ノードが、そのそれぞれの分散計算結果データを報告したかどうかを判定するための計算結果統計モジュール
をさらに含むことを特徴とする分散コンピューティングデータマージングシステム。
【請求項１４】
請求項１２に記載の分散コンピューティングデータマージングシステムにおいて、前記データマージングサーバは、
データをマージする前に、前記データベーステーブルを格納するための中間データストレージモジュール
をさらに含むことを特徴とする分散コンピューティングデータマージングシステム。
【請求項１５】
請求項１２に記載の分散コンピューティングデータマージングシステムにおいて、前記データマージングサーバは、前記構成ファイルをインポートおよび解析し、ならびに前記データベーステーブルに前記分散計算結果データを受信および挿入するためのインターフェース規格を使用するように構成されることを特徴とする分散コンピューティングデータマージングシステム。
【請求項１６】
請求項１５に記載の分散コンピューティングデータマージングシステムにおいて、前記インターフェース規格は、ユーザによって拡張可能であることを特徴とする分散コンピューティングデータマージングシステム。
【請求項１７】
分散コンピューティングのためのデータマージングサーバであって、
分散ノードによって報告される分散計算結果データを受信および挿入するために構成されており、構成ファイルに従ってデータベーステーブルを生成するためのデータベーステーブル生成モジュールと、
各分散ノードが、そのそれぞれの計算結果データを報告した後、前記構成ファイルに従って、前記データベーステーブル内のデータをマージするためのデータマージングモジュールと
を含むデータマージングサーバ。
【請求項１８】
請求項１７に記載のデータマージングシステムにおいて、全分散ノードが、そのそれぞれの分散計算結果データを報告したかどうかを判定するための計算結果統計モジュール
をさらに含むことを特徴とするデータマージングサーバ。
【請求項１９】
請求項１７に記載のデータマージングシステムにおいて、データをマージする前に、前記データベーステーブルを格納するための中間データストレージモジュールをさらに含むことを特徴とするデータマージングサーバ。
【請求項２０】
請求項１７に記載のデータマージングシステムにおいて、前記構成ファイルをインポートおよび解析し、ならびに前記データベーステーブルに前記分散計算結果データを受信および挿入するためのインターフェース規格を使用するように構成されることを特徴とするデータマージングサーバ。
【発明の詳細な説明】
【背景技術】
【０００１】
本出願は、２００７年３月３０日出願の中国特許出願、出願番号第２００７１００９０９９５．５号、「ＭＥＴＨＯＤ，  ＳＹＳＴＥＭ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＤＡＴＡ  ＭＥＲＧＩＮＧ  ＩＮ  ＤＩＳＴＲＩＢＵＴＥＤ  ＣＯＭＰＵＴＩＮＧ」の優先権を主張する。
【０００２】
本開示は、概して、ネットワーク通信技術の分野に関し、具体的には、分散コンピューティングのデータマージングに関する。
【０００３】
インターネット技術の急速な発展に伴い、インターネット上に存在する膨大な量の情報を処理することは、困難な課題となっている。単一のコンピュータが、大量のデータを処理するために使用される場合、コンピュータは、非常に強力な処理能力およびポート能力を有することを要求される。しかしながら、高性能単一ユニットコンピュータは、非常に高価であるだけでなく、単一コンピュータで応答する処理方法は、非常に制限される。計算タスクシステムの処理能力を向上させるためには、分散コンピューティングが使用されて、大規模な課題を多くのコンピュータに分散される多くの小規模な課題に分割する。分散コンピューティングは、ネットワーク上で互いに通信する２つ又は複数のコンピュータ上で同時に実行されるプログラムの異なる部分内のコンピュータ処理の方法である。分散コンピューティングは、インターネット上の多くの相互接続されたコンピュータのアイドルリソースを利用して、インターネット上の大量の情報を処理することができる。
【０００４】
分散コンピューティングでは、多くの計算を必要とするプロジェクトデータを多くの小断片に分割し、この小断片を多くの異なるコンピュータによって、別々に計算させる。分散ノードと呼ばれるこれらの異なるコンピュータは、分散計算結果を中央コンピュータに送信して戻す。分散計算結果のアップロード後、中央コンピュータは、結果をマージし、最終データまたはソリューションを得る。従って、分散コンピューティングは、通常、タスク分割、タスク計算、および結果マージングのための構成要素を含む、いくつかの構成要素から成る。タスク分割のために、異なる方法を使用して、アプリケーションの性質に応じて、タスクを分割する。目標は、通常、各タスクを互いに無関係に維持しながら、同時に、均一なタスク分割を達成することである。タスク分割後、タスクは、異なる分散ノードに割り当てられる。タスク計算のために、各分散ノードは、対応する分散計算を実行し、分散サブタスクの計算結果を得る。結果マージングのために、異なる分散ノードの処理結果をサーバコンピュータにてマージし、最終処理結果を得る。
【０００５】
現在の分散コンピューティング技術では、異なるアプリケーションに対する処理方法は異なる。あるアプリケーションを処理するために、ユーザは、分散コンピューティングにおいて、並列処理、フォールトトレランス、および負荷平衡等の詳細を考慮しなければならない。その結果、コーディングが、非常に複雑になる場合がある。実施例として、インターネットユーザによって訪問されるウェブサイトのアクセス経路の解析を取り上げる。このタスクは、タスク分割、アクセス経路解析、および結果マージングのために、コードを書き込むことを要する。これらのコード内では、プログラムはまた、データ同期化、同時並行性、フォールトトレランス、および負荷を処理することも必要とされる。分散コンピューティングのためのコーディングは、通常、アプリケーション特有である。新しいアプリケーションに対し、タスク分割、結果マージング、およびデータ同期化等の課題の考慮とともに、これらの全プロセスを繰り返さなければならない場合がある。これは、分散コンピューティングを実装することに対し煩わしい環境を生成する。
【発明の概要】
【０００６】
本開示は、分散コンピューティングにおけるデータマージングの方法およびシステムを記述する。開示される方法およびシステムを使用することによって、分散コンピューティングにおけるデータマージングは、数ステップのみによって完了することができ、従って、ユーザの作業負荷を低減することができる。
【０００７】
分散コンピューティングのデータマージング方法は、構成ファイルを使用して、分散ノードによって得られた計算結果のデータベーステーブルへの挿入を誘導し、かつデータベーステーブルに挿入された計算結果をマージする。構成ファイルは、分散コンピューティングのタスク分割条件に従って構築される。本方法は、データマージングサーバを使用して、構成ファイルをインポートおよびホストし、かつ構成ファイルに対応するデータベーステーブルを生成する。各分散ノードは、それぞれの分散コンピューティングタスク完了後、その分散計算結果をデータベーステーブルに挿入し、一方、データマージングサーバは、データベーステーブル内のデータをマージする。種々の使用および種々の分散コンピューティングタスクに適用されるインターフェース規格を使用して、ユーザが、インターフェース規格に基づいて、ジョブ特有の構成ファイルを構築することのみを必要とするようにすることができる。システムは、自動的にデータをマージするように構成することができる。開示される方法およびシステムは、分散コンピューティングにおけるデータマージングの詳細を表示せず、プロシージャを簡素化する。
【０００８】
本開示の一態様は、最初に、構成ファイルをデータマージングサーバに提供する、分散コンピューティングに対するデータマージング方法を記述する。構成ファイルは、分散コンピューティングのタスク分割条件に従って設定される。データマージングサーバは、構成ファイルに従って、データベーステーブルを生成する。そのそれぞれの分散コンピュータタスクを完了した後、分散ノードは、データベーステーブルに挿入される分散計算結果を戻す。次いで、データマージングサーバは、データベーステーブル内のデータをマージする。構成ファイルは、データマージングのためのデータベーステーブル名、データベーステーブルフィールド名、使用されるデータ挿入方法、および使用されるデータマージング方法等のアイテムを指定する情報を含んでもよい。構成ファイルは、データ挿入およびデータマージングを促進する。例えば、計算結果データを、データマージングのために、データベーステーブル名に従って、データベーステーブルに挿入することができる。データベーステーブル内のデータをマージするために、データマージングサーバは、構成ファイルに指定されるマージング方法に従って、データベース内のフィールドを処理することができる。構成ファイルは、最大レコード数、エラー処理方法、最大不正レコード数、およびレコードストレージ方法をさらに指定することができる。
【０００９】
いくつかの実施形態では、分散計算結果データは、分散タスクＩＤ、分散構成アイテム名、および分散計算結果を含む。分散計算結果データ内の複数のデータエントリを、ＡＳＣＩＩコードによって、互いに分離することができる。
【００１０】
データ結合方法の一実施形態は、構成ファイルをインポートおよび解析するため、および／またはデータベーステーブルに計算結果データを挿入するためのインターフェース規格を構築する。インターフェース規格は、ユーザによって拡張可能であってもよい。
【００１１】
本開示の別の態様は、分散コンピューティングデータマージングシステムを記述する。データマージングサーバは、構成ファイルに従って、データベーステーブルを生成し、分散ノードが、それぞれの分散タスクを完了した後、分散ノードからそれぞれの分散計算結果データを受信し、データベーステーブルに挿入し、各分散ノードが、それぞれの分散計算結果データを報告した後、データベーステーブル内のデータをマージするように構成される。一実施形態では、データマージングサーバは、データベーステーブル生成モジュールおよびデータマージングモジュールを有する。データベーステーブル生成モジュールは、構成ファイルに従って、データベーステーブルを生成するために使用される。データマージングモジュールは、各分散ノードが、それぞれの計算結果データを報告した後、データベーステーブル内のデータをマージするために使用される。また、データマージングサーバは、全分散ノードが、そのそれぞれの計算結果データを報告したかどうかを判定するための計算結果統計モジュールを有することができる。また、データマージングサーバは、データをマージする前に、データベーステーブルを格納するために用いられる中間データストレージモジュールを有することもできる。
【００１２】
本開示の別の態様は、データベーステーブル生成モジュールおよびデータマージングモジュールを含む、データマージングサーバを記述する。データベーステーブル生成モジュールは、構成ファイルに従って、データベーステーブルを生成するために使用され、ここでデータベーステーブルは、分散ノードから、分散計算結果データレコーダを受信し、挿入するために構成される。データマージングモジュールは、各分散ノードが、そのそれぞれの計算結果データを報告した後、構成ファイルに従って、データベーステーブル内のデータをマージするために使用される。
【００１３】
本「発明の概要」は、以下の「発明を実施するための形態」においてさらに記述される概念の選択を単純化された形式で紹介するために提供される。本「発明の概要」は、請求される主題の重要な特徴または不可欠な特徴を識別することを意図せず、または請求される主題の範囲を判定する補助として使用されることも意図していない。
【００１４】
発明を実施するための形態は、付随の図面を参照して記述される。図面中、参照番号の一番左の数字は、参照番号が初出である図を識別する。異なる図における同一参照番号の使用は、類似または同一アイテムを示す。
【図面の簡単な説明】
【００１５】
【図１】本開示による、例示的分散コンピューティングデータマージングシステムのブロック図を示す。
【図２】本開示による、分散コンピューティングのための例示的データマージング方法のフローチャートを示す。
【図３】本開示による、分散コンピューティングのための別の例示的データマージング方法のフローチャートを示す。
【図４】本開示のデータマージング方法を実装するための例示的環境を示す。
【発明を実施するための形態】
【００１６】
本明細書では、構成ファイル、またはコンフィグファイルは、一部のコンピュータプログラムのための初期設定を構成するために使用されるコンピュータファイルである。構成ファイルを、ユーザアプリケーション、サーバプロセス、およびオペレーティングシステム設定のために使用することができる。ファイルを、ＡＳＣＩＩおよびＵＴＦ−８等の任意の好適なコードで書くことができ、オペレーティングシステムにより、行が、ニューラインまたはキャリッジリターン／ラインフィードのペアによって終了するライン指向であってもよい。
【００１７】
データベーステーブルは、横の行および縦の列からなるモデルを使用して体系化される一組のデータ要素（値）である。データベーステーブルの一例は、名前によって識別される列と、候補キーとして識別されている特定の列サブセットに現れる値によって識別される行とを有する。リレーショナルデータベースおよびフラットファイルデータベースでは、テーブルとは、リレーションにあたる別の用語である。テーブルは、通常、特定の数の列を有するが、任意の数の行を有することができる。実際のデータ行に加え、テーブルはまた、特定の列内のテーブルまたは値の制約等、何等かのメタ情報に関連付けることもできる。テーブル内のデータは、物理的にデータベースに格納されてもよいが、そうである必要はない。
【００１８】
データマージングの方法およびシステムは、例証として、例示的実施形態を使用して、さらに後述される。本明細書に記述される例示的実施形態は、プラットフォームとしてデータベースを使用し、分散コンピューティングのデータマージングの特定の詳細をカプセル化する。一部の実施形態は、簡略化したデータマージングプロシージャの利点を有する。記述されるデータ結合方法およびシステムのユーザは、所定のインターフェース規格に基づいて、ジョブ特有の構成ファイルを書き込むことのみを必要とする。データがインポートされると、システムは自動的にデータをマージする。以前は、数百行のコードを必要としたであろうジョブを完了するために、単純な数ステップのみが必要とされる。
【００１９】
図１は、本開示による、例示的分散コンピューティングデータマージングシステムのブロック図を示す。分散コンピューティングデータマージングシステム１００は、データマージングサーバ１０１および少なくとも１つの分散ノード１０２を含む。データマージングサーバ１０１は、分散コンピューティングデータマージングシステム１００を使用し、ある分散コンピューティング操作を実行することを目的とするユーザによって設定することができる、構成ファイルに従って、データベーステーブルを生成する。そのような分散コンピューティング操作の一例は、ウェブサイトアクセスデータ収集および統計を処理することである。
【００２０】
本明細書では、分散コンピューティングデータマージングシステムのユーザは、データマージングサーバ１０１への直接アクセスを有しデータマージングサーバ１０１上で構成ファイルを設定するか、または構成ファイルを別に設定し、データマージングサーバ１０１にそれをアップロードするかのいずれかをすることができる。構成ファイルに従って生成されるデータベーステーブルは、本明細書においてさらに例証されるように、その構成ファイルに対し、対応関係を有する。
【００２１】
データマージングサーバ１０１は、各分散ノード１０２が、そのそれぞれの計算結果データを報告した後、データベーステーブル内のデータをマージする。本目的に向けて、各分散ノード１０２は、最初に、そのそれぞれの分散計算タスクを完了後、割り当てられた分散計算追加タスクを実行し、それぞれの計算結果を得て、計算結果データの一部として、この計算結果をデータマージングサーバ１０１に報告する。次いで、報告された計算結果データは、データマージングサーバ１０１内のデータベーステーブルに挿入される。データベーステーブルへの計算結果データの挿入を、データマージングサーバ１０１によって、またはそれぞれの分散ノード１０２により適切なインターフェースを通して、行うことができる。本明細書では、分散ノード１０２は、その計算結果データをデータベーステーブルに挿入するとしばしば述べられる。そのような特徴は、例証の目的のためだけであって、分散ノード１０２が、単に、その計算結果データをデータマージングサーバ１０１に送信し、データマージングサーバ１０１によって、または別の好適なデバイスもしくは構成要素によって、計算結果データを挿入させるように委ねる構成を排除しない。
【００２２】
本分散コンピューティングデータマージングシステムを通して、計算結果をマージするステップの例示的プロセスは、以下のように記述される。
【００２３】
一実施形態では、データマージングインターフェースのための規格は、データマージングプロセスに使用される方法に基づいて、設定される。本規格は、分散コンピューティングの異なるアプリケーションおよび操作を規格化（正規化）するために使用される。本規格を使用することによって、分散コンピューティングデータマージングシステムのユーザは、異なるアプリケーションのためのコードを繰り返し書き込むことを要求されることなく、分散コンピューティングの異なるアプリケーションを処理することができる。その代わりに、ユーザは、規格に従って、特定のアプリケーションのためのジョブ特有の構成ファイルを書き込む。この構成ファイルは、分散コンピューティングのタスク分割およびタスクコンピューティングプロシージャの条件に基づいて、設定される。構成ファイルは、データベーステーブル名（データマージングのために使用されるデータベース名）、フィールド名、データ挿入方法、およびマージング方法を指定する情報を含むことができ、これらはすべて分散コンピューティングのタスク分割の条件に従って設定される。また、構成ファイルは、最大レコード数、エラー処理方法、最大不正レコード数、およびレコードストレージ方法を指定する情報を含むこともできる。
【００２４】
本明細書では、データ挿入方法とは、データベースにデータを挿入する方法を指す。挿入は、直接的または間接的であることができる。データの挿入を、適切なインターフェースを通して、分散ノードによって行うことができ、またはデータマージングサーバ１０１自体等の別の構成要素によって、行うことができる。レコードストレージ方法とは、使用されるストレージのための出力データの形式を指し、データベース、リモートネットワークファイル、またはローカルディスク内のファイルの形式であることができる。また、構成ファイルは、ユーザによって拡大され、必要に応じて、同一種類のさらなるアイテムを含む、または他の種類のアイテムを指定することができる。
【００２５】
データマージングサーバ１０１は、構成ファイルを読み込み、データマージングインターフェースの規格に従って、構成ファイルを解析する。構成ファイルを解析することによって、データマージングサーバ１０１は、データベーステーブル名、フィールド名、データ挿入方法およびマージング方法、最大レコード数、エラー処理方法、最大不正レコード数、ならびにレコードストレージ方法等のユーザ構成情報を得る。データマージングサーバ１０１は、その中に含まれる（またはアクセス可能な）データベースを使用し、本情報に従って、データベーステーブルを生成し、生成されたデータベーステーブルにユーザ構成データベーステーブル名を用いて名前を付ける。また、データマージングサーバ１０１は、ユーザ構成データマージング方法を記録する。
【００２６】
分散コンピューティングタスクの完了後、各分散ノード１０２は、データマージングサーバ１０１に、データベーステーブルに挿入されるそれぞれの計算結果データを報告する。一実施形態では、分散ノード１０２は、本データマージング方法に従って、データマージングインターフェースを自動的に呼び出し、データベーステーブルにそれぞれの計算結果データを挿入する。計算結果データは、分散タスクＩＤ、分散構成アイテム名、および計算結果を含むことができる。計算結果データの部分の分離（例えば、分散タスクＩＤ等を含む、例証アイテム）を、セパレータとしての＼５の使用等のＡＳＣＩＩコードを使用して達成することができる。
【００２７】
全分散ノード１０２が、そのそれぞれの計算結果データを報告した後、データマージングサーバ１０１は、次いで、以前に記録されたユーザ構成データマージング方法に従って、データベーステーブルをマージする。本マージ操作を、データマージングサーバ１０１に含まれるデータベース、またはデータマージングサーバ１０１によってアクセス可能なデータベースを使用することにより達成することができる。マージ操作の完了後、データマージングサーバ１０１は、ユーザ構成ファイルによって指定されるレコードストレージ方法に従って、データベーステーブル、リモートネットワークファイル、またはローカルディスク内のファイルの形式で、最終マージング結果をエクスポートする。
【００２８】
ユーザは、データベースによってサポートされる任意のマージング操作を選択し、データマージングの際に実行させることができる。マージング操作の例は、データベーステーブル内の特定のフィールドのグルーピング、特定のフィールドの値の合計、および特定のフィールド内の最大値の検索である。
【００２９】
図１に示されるように、データマージングサーバ１０１は、データベーステーブル生成モジュール１１１およびデータマージングモジュール１１２を有する。データベーステーブル生成モジュール１１１を使用し、ユーザによって設定される構成ファイルに従って、データベーステーブルを生成する。従って、生成されるデータベーステーブルは、その構成ファイルに対し、対応関係を有する。データマージングモジュール１１２は、各分散ノード１０２が、そのそれぞれの計算結果データを報告した後、データベーステーブルにてデータをマージするために使用される。
【００３０】
また、データマージングサーバ１０１は、計算結果統計モジュール１１３および中間データストレージモジュール１１４を有することもできる。計算結果統計モジュール１１３は、全分散ノード１０２が、そのそれぞれの計算結果データを報告したかどうかを判定する。中間データストレージモジュール１１４は、データマージングの前に、データベーステーブルを格納するために使用される。
【００３１】
図２は、本開示による、分散コンピューティングのための例示的データマージング方法のフローチャートを示す。本明細書では、プロセスが記述される順番は、制限として解釈されることを意図しておらず、記述されるプロセスブロックの任意の数を任意の順番で組み合わせて、本方法または代替方法を実装することができる。プロセスは、以下のように記述される。
【００３２】
ブロック２０１では、構成ファイルは、分散コンピューティングのタスク分割の条件に従って、設定される。構成ファイルは、分散コンピューティングのタスク分割およびタスクコンピューティングプロシージャの条件に基づいて、設定される。構成ファイルは、データベーステーブル名、フィールド名、データ挿入方法、およびマージング方法を指定することができる。また、構成ファイルは、最大レコード数、エラー処理方法、最大不正レコード数、およびレコードストレージ方法をさらに指定することができる。構成ファイルは、必要に応じて、拡大可能である。データ挿入方法とは、データベースにデータを挿入する方法を指す。挿入は、直接的または間接的であることができる。レコードストレージ方法とは、ストレージのための出力データの形式を指し、データベース、リモートネットワークファイル、またはローカルディスク内のファイルの形式であることができる。
【００３３】
ブロック２０２では、構成ファイルは、データマージングサーバ（例えば、データマージングサーバ１０１）に提供され、データマージングサーバは提供された構成ファイルを使用して、データベーステーブルを生成する。一実施形態では、ブロック２０１で設定される構成ファイルは、構成ファイルに対応するデータベーステーブルを生成する、データマージングサーバにインポートされる。このため、データマージングサーバは、構成ファイルを読み込み、規格データマージングインターフェースに従って、構成ファイル内の情報を解析する。構成ファイルを解析することによって、データマージングサーバは、データマージングのために使用されるデータベーステーブル名、フィールド名、データ挿入方法およびマージング方法、最大レコード数、エラー処理方法、最大不正レコード数、ならびにレコードストレージ方法等のユーザ構成情報を得る。次いで、データマージングサーバは、データベースを使用し、得られた情報に従って、データベーステーブルを生成し、データベーステーブルにユーザ構成データベーステーブル名を用いて名前を付ける。また、データマージングサーバは、その後の使用のために、ユーザ構成データマージング方法を記録する。
【００３４】
ブロック２０３では、各分散モードは、分散コンピューティングタスクを完了後、データベーステーブルにそのそれぞれの計算結果データを挿入する。これを達成するため、各分散ノードは、提供される規格インターフェースを使用して、分散コンピューティングタスクの完了後、データベーステーブルに計算結果データを自動的に挿入することができる。計算結果データは、分散タスクＩＤ、分散構成アイテム名、および計算結果の情報を含むことができる。計算結果データの部分間の分離は、セパレータとしての＼５の使用等、ＡＳＣＩＩコードを使用して達成される。
【００３５】
ブロック２０４では、データマージングサーバは、データベーステーブル内のデータをマージする。データマージングサーバは、ブロック２０２で以前に記録されたユーザ構成データマージング方法に従って、データベーステーブルをマージする。本マージング操作は、例証された実施形態におけるデータベースを使用して達成される。マージング操作が完了した後、データマージングサーバは、ユーザ構成ファイルに従って、データベーステーブル、リモートネットワークファイル、または格納されるローカルディスク内のファイルの形式で、最終マージング結果をエクスポートする。データマージングプロセスでは、ユーザは、データベースによってサポートされる任意のマージング操作を選択することができる。マージング操作の例は、データベーステーブル内の特定のフィールドのグルーピング、特定のフィールドの値の合計、および特定のフィールド内の最大値の検索である。
【００３６】
図３は、本開示による、分散コンピューティングのための別の例示的データマージング方法のフローチャートを示す。プロセスは、以下のように記述される。
【００３７】
ブロック３０１では、データマージングインターフェースの規格は、マージングプロセスのために使用される方法に基づいて、設定される。本データマージングインターフェース規格は、均一フレームワークの下、分散コンピューティングの異なるアプリケーションを規格化（正規化）する。規格を使用することによって、ユーザは、データマージングの同一フレームワークの下、分散コンピューティングの異なるアプリケーションを処理することができ、異なるアプリケーションのためのコードを繰り返し書き込むことを必要としない。本規格は、本明細書に開示される分散コンピューティングのためのデータマージング方法に必須ではない。しかしながら、規格を設定することによって、例示的実施形態は、分散コンピューティングの種々のアプリケーションを有利に規格化することができる。
【００３８】
規格は、構成ファイルの標準形式として、実装することができる。そのような標準構成ファイルの例は、以下に例証される。
create mergedata table_name
(
field1_name field1_type field1_class,
field2_name field2_type field2_class
)
[limit n]
[maxerror n]
[directload]
[globalfile/localfile]
【００３９】
上述では、ｆｉｅｌｄ１およびｆｉｅｌｄ２の項は、分散コンピューティングのデータマージング前に、タスク分割条件に従って、設定されるフィールドである。項「ｌｉｍｉｔ」は、レコードが降順に配列された後の最大（レコード）数を指す。項「ｍａｘｅｒｒｏ」は、データベースに挿入可能な最大不正レコード数を指す。項「ｄｉｒｅｃｔｌｏａｄ」は、データベースへのデータ挿入の方法を示し、例示的事例では、直接挿入である。データ挿入の方法は、直接挿入であっても、または間接挿入であってもよい。Ｇｌｏｂａｌｆｉｌｅ／ｌｏｃａｌｆｉｌｅは、レコードストレージの方法を示し、例示的事例では、ファイルの形式（グローバルファイルまたはローカルファイル）である。レコードストレージの方法は、データベースまたはファイルの形式であることができ、ファイルはＧｌｏｂａｌｆｉｌｅ（リモートネットワークファイル）またはｌｏｃａｌｆｉｌｅ（ローカルディスク内のファイル）のいずれかであることができる。また、例示的実施形態では、データマージングインターフェースの規格は、ユーザの要求に従って、拡大することもできる。例えば、構成ファイル内のフィールドの数を、ユーザの必要性に従って拡大し、より多いフィールドを含むことができる。また、規格を拡張し、他の仕様を含むこともできる。
【００４０】
ブロック３０２では、構成ファイルは、分散コンピューティングのタスク分割の条件に従って、設定される。以下に例証されるのは、ユーザの要求に基づいて、ユーザによって設定される例示的構成ファイルである。
CREATE mergedata ANALOG_RES_SUMMARY DAILY
(
PROFILE_ID         NUMBER    key,
REPORT_TIME        NUMBER    key,
PAGEVIEW           NUMBER    order,
VISITS             NUMBER    order,
AVER_VISIT_LEN     NUMBER    order,
UNIQ_VISITOR       NUMBER    order,
VISIT1_VISITOR     NUMBER    order,
PAGEVIEW1_VISIT    NUMBER    order
)
limit 1
maxerror 1
directload
localfile;
【００４１】
上記の例示的構成ファイルは、上述の標準構成ファイルの具体的な実施形態であって、８つの異なるフィールド（ＰＲＯＦＩＬＥ＿ＩＤ；  ＲＥＰＯＲＴ＿ＴＩＭＥ；  ＰＡＧＥＶＩＥＷ；  ＶＩＳＩＴＳ；  ＡＶＥＲ＿ＶＩＳＩＴ＿ＬＥＮ；  ＵＮＩＱ＿ＶＩＳＩＴＯＲ；  ＶＩＳＩＴ１＿ＶＩＳＩＴＯＲ；  ＰＡＧＥＶＩＥＷ１＿ＶＩＳＩＴ）を有する。
【００４２】
ブロック３０３では、データマージングサーバは、構成ファイルをインポートし、この構成ファイルに対応するデータベーステーブルを生成する。データマージングサーバは、構成ファイルを読み込み、データマージングインターフェースの規格に従って、構成ファイルを解析する。構成ファイルを解析することによって、データマージングサーバは、データマージングのために使用されるデータベーステーブル名、フィールド名、データ挿入方法、およびマージング方法、最大レコード数、エラー処理方法、最大不正レコード数、ならびにレコードストレージ方法等のユーザ構成情報を得る。次いで、データマージングサーバは、データベースを使用し、本情報に従って、データベーステーブルを生成し、データベーステーブルにユーザ構成データベーステーブル名による名前を付ける。また、データマージングサーバは、その後の使用のために、ユーザ構成データマージング方法を記録する。
【００４３】
ユーザの要求に従って、ユーザによって設定された上記で例証される例示的構成ファイルから、以下の構成情報が得られる。  
（ｉ）構成ファイル内に指定されるタスク分割条件に従って、タスク計算結果は、ｐｒｏｆｉｌｅ＿ｉｄ、ｒｅｐｏｒｔ＿ｔｉｍｅ、ｐａｇｅｖｉｅｗ、ｖｉｓｉｔｓ、ａｖｅｒ＿ｖｉｓｉｔ＿ｌｅｎ、ｕｎｉｑ＿ｖｉｓｉｔｏｒ、ｖｉｓｉｔ１＿ｖｉｓｉｔｏｒ、およびｐａｇｅｖｉｅｗ１＿ｖｉｓｉｔの８つのフィールドを有するはずである。  
（ｉｉ）レコード数に制限はない。  
（ｉｉｉ）許容される最大不正レコード数は、１である。  
（ｉｖ）直接挿入方法は、データをインポートするために使用される。  
（ｖ）データベーステーブル名は、ＡＮＡＬＯＧ＿ＲＥＳ＿ＳＵＭＭＡＲＹ＿ＤＡＩＬＹである。  
（ｖｉ）最終マージング結果は、ローカルディスクファイルの形式でエクスポートされる。
【００４４】
上述の例示的規格に従って、ユーザ設定構成ファイルでは、Ｆｉｅｌｄ１＿ｃｌａｓｓまたはＦｉｅｌｄ２＿ｃｌａｓｓは、マージング方法を示す。この例では、ｐｒｏｆｉｌｅ＿ｉｄおよびｒｅｐｏｒｔ＿ｔｉｍｅのｆｉｅｌｄ＿ｃｌａｓｓは、「キー」である一方、残りのフィールドのｆｉｅｌｄ＿ｃｌａｓｓは、「順番」である。これは、データマージング方法を指定する。具体的には、データマージングプロセスは、キーワードとして、ｐｒｏｆｉｌｅ＿ｉｄおよびｒｅｐｏｒｔ＿ｔｉｍｅを使用し、同一プロファイルＩＤおよび報告時間に関連するデータを識別し、従って、識別される他のフィールド（ｐａｇｅ＿ｖｉｅｗ、ｖｉｓｉｔｓ、ａｖｅｒ＿ｖｉｓｉｔ＿ｌｅｎ、ｕｎｉｑ＿ｖｉｓｉｔｏｒ、ｖｉｓｉｔ１＿ｖｉｓｉｔｏｒ、およびｐａｇｅｖｉｅｗ１＿ｖｉｓｉｔ）の各々の合計を計算する。
【００４５】
構成ファイルから得られた上述の情報に基づいて、データマージングサーバは、データベースを呼び出し、それに応じて、上述の情報を含むデータベーステーブルを生成する。また、データマージングサーバは、その後の使用のために、記述されるマージング方法を格納する。
【００４６】
ブロック３０４では、各分散モードは、その分散コンピューティングタスクを完了後、データベーステーブルにそのそれぞれの計算結果データを挿入する。具体的には、分散コンピューティングタスクの完了後、各分散ノードは、提供される規格インターフェースを自動的に使用し、データベーステーブルにそれぞれの計算結果データを挿入する。計算結果データは、計算結果が挿入されるデータベーステーブル名および計算結果等のユーザ構成情報を含むことができる。本計算結果データの各部分間の分離は、ＡＳＣＩＩコードを使用して達成される。
【００４７】
例えば、報告される計算データは、ＡＮＡＬＯＧ＿ＲＥＳ＿ＳＵＭＭＡＲＹ＿ＤＡＩＬＹと呼ばれるデータベーステーブル名を指定し、挿入されるデータ「２＼５２００７０２１４＼５１００＼５５０＼５２３＼５２４＼５１２＼５４８」を含むことができる。挿入されるデータは、各々が構成ファイル内に指定されるフィールドに対応する、別個のデータブロックを含む。データブロックは、セパレータとして、ＡＳＣＩＩコード５を使用して分離される。本明細書において例証される例では、挿入されるデータは、ｐｒｏｆｉｌｅ＿ｉｄ＝２、ｒｅｐｏｒｔ＿ｔｉｍｅ＝２００７０２１４、ｐａｇｅｖｉｅｗ＝１００、ｖｉｓｉｔｓ＝５０、ａｖｅｒ＿ｖｉｓｉｔ＿ｌｅｎ＝２３、ｕｎｉｑ＿ｖｉｓｉｔｏｒ＝２４、ｖｉｓｉｔ１＿ｖｉｓｉｔｏｒ＝１２、およびｐａｇｅｖｉｅｗ１＿ｖｉｓｉｔ＝４８である。
【００４８】
ブロック３０５では、データマージングサーバは、データベーステーブル内のデータをマージする。例示的構成ファイル内に指定されるマージング方法は、それぞれのｐｒｏｆｉｌｅ＿ｉｄおよびｒｅｐｏｒｔ＿ｔｉｍｅが同一である場合、フィールドｐａｇｅ＿ｖｉｅｗ、ｖｉｓｉｔｓ、ａｖｅｒ＿ｖｉｓｉｔ＿ｌｅｎ、ｕｎｉｑ＿ｖｉｓｉｔｏｒ、ｖｉｓｉｔ１＿ｖｉｓｉｔｏｒ、およびｐａｇｅｖｉｅｗ１＿ｖｉｓｉｔの各々が、マージされるべきであることを示す。例えば、同一のｐｒｏｆｉｌｅ＿ｉｄおよびｒｅｐｏｒｔ＿ｔｉｍｅを有する場合、分散ノードによって提供される計算結果データ内のｐａｇｅ＿ｖｉｅｗはすべて、マージされる（合計される）べきである。同様に、同一のｐｒｏｆｉｌｅ＿ｉｄおよびｒｅｐｏｒｔ＿ｔｉｍｅを有する場合、分散ノードによって提供される計算結果データ内のｖｉｓｉｔｓはすべて、マージされる（合計される）べき、等々となる。従って、データマージングサーバは、データベースを使用し、上述のマージング方法に従って、データをマージし、ストレージのためのローカルディスクファイルとして、マージング結果をエクスポートする。
【００４９】
本明細書に例証されるデータマージング方法およびシステムの例示的実施形態は、データマージングサーバおよび分散ノードを使用する自動データマージングによる分散コンピューティングにおけるデータマージングの詳細を表示しない。これは、分散コンピューティングのユーザの作業負荷を緩和する。その結果、ユーザは、分散コンピューティングにおけるデータマージングの詳細を理解する必要がなく、さらに、各々の異なるアプリケーションのためのジョブ特有のコードを書き込む必要がない。データマージング方法およびシステムの例示的実施形態を使用することによって、以前は、数百行のコードを必要とするジョブを完了するために、単純な数ステップのみが必要となる。
【００５０】
実装環境
上述の技術を、コンピューティングユニットを有するサーバまたはパーソナルコンピュータ（ＰＣ）等のコンピューティングデバイスを活用して、実装することができる。
【００５１】
図４は、本開示の方法を実装するための例示的環境を示す。コンピューティングシステム４０１は、プロセッサ４１０、入出力デバイス４２０、コンピュータ可読媒体（例えば、メモリ）４３０、およびネットワークインターフェース（図示せず）を含む、コンピューティングデバイス４０２によって実装される。４４１、４４２、および４４３等の他のコンピューティングデバイスは、同様の構成要素を有することができる。コンピュータデバイス４０２は、ネットワーク４９０を通して、コンピューティングデバイス４４１、４４２、および４４３に接続される。コンピューティングデバイス４０２は、本明細書に記述されるデータマージングサーバとして使用されるサーバであるが、一方、コンピューティングデバイス４４１、４４２、および４４３は各々、本明細書に記述される分散ノードとして使用することができる。
【００５２】
コンピュータ可読媒体４３０は、アプリケーションプログラムモジュール４３２およびデータ４３４（構成ファイル、データベーステーブル、およびデータベース等）を格納する。アプリケーションプログラムモジュール４３２は、プロセッサ４１０によって実行されると、プロセッサ４１０に本明細書に記述されるプロセスの作用（例えば、図２−３のプロセス内のある作用）を実行させる命令を含む。
【００５３】
コンピュータ可読媒体は、コンピュータデータを格納するための好適なメモリデバイスのいずれかであってもよいことを理解されたい。そのようなメモリデバイスは、ハードディスク、フラッシュメモリデバイス、光学データストレージ、およびフロッピーディスクを含むが、それらに限定されない。さらに、コンピュータ実行可能命令を含むコンピュータ可読媒体は、複数のリモートシステムのネットワークにわたって分散されるローカルシステム内または構成要素内の構成要素から成ることができる。コンピュータ実行可能命令のデータを、有形の物理メモリデバイス内で送達するか、または電子的に伝送することができる。
【００５４】
また、コンピューティングデバイスは、プロセッサ、入出力デバイス、およびメモリ（内部メモリまたは外部メモリのいずれか）を有する任意のデバイスであってよく、パーソナルコンピュータに制限されないことを理解されたい。特に、各コンピュータデバイス４０２、４４１、４４２、および４４３は、サーバコンピュータ、またはインターネットもしくはイントラネットのいずれかであってよいネットワーク４９０を通して接続される、そのようなサーバコンピュータのクラスタであってもよい。このように構成される本開示の分散コンピューティングシステムを、オンライン商取引を処理するために使用される電子商取引システムの一部として使用されることを含む、種々の計算タスクを処理するために使用することができる。
【００５５】
本分散タスクシステムおよび分散タスク管理方法を、任意の既存分散タスクシステムおよび方法と組み合わせて、使用することができる。例えば、遠隔手続呼び出し（リモートプロシージャコール、ＲＰＣ）を、本開示の技術と組み合わせて使用することができる。ＲＰＣは、プログラマーが、本リモート相互作用のための詳細を明示的にコーディングすることなく、サブルーチンまたはプロシージャを別のアドレス空間（一般的には、共有ネットワーク上の別のコンピュータ）で実行させるコンピュータプログラムを可能にする。
【００５６】
本明細書で論じられる潜在的利益および利点は、添付の特許請求の範囲の制限または制約として解釈されるべきではないことは理解されるべきである。
【００５７】
本主題は、構造的特徴および／または方法論的作用に特有の言語で記述されたが、添付の請求項に定義される主題は、必ずしも、記述される具体的な特徴または作用に制限されないことが理解されるべきである。むしろ、具体的な特徴および作用は、請求項を実装する例示的形式として開示される。
【図１】
2010524060.tif 000003
【図２】
2010524060.tif 000004
【図３】
2010524060.tif 000005
【図４】
2010524060.tif 000006
【国際調査報告】
2010524060.tif 000007