(57)【要約】本発明は、タスク処理方法及び分散コンピューティングフレームワークに関する。当該方法の一具体的な実施例では、分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップであって、タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、演算子は、分散データセット及び／又は分散データセットをグループ化して得られた分散データセットに作用するものである、ステップと、タスク説明情報に基づいて、演算子により作用される分散データセットを確定するステップと、演算子を用いて、演算子により作用される分散データセットに対して分散コンピューティングを行うステップとを含む。これにより、分散コンピューティングにおいて、トポロジ構造を構築して演算子の作用範囲及び入れ子関係を説明することを実現し、同じ演算子は分散データセットと、分散データセットをグループ化して得られた分散データセットとに同時に作用でき、異なるコンピューティングのニーズに応じる分散コンピューティングタスクを説明できる。【選択図】図１
2019528522.tif 000002
【特許請求の範囲】
【請求項１】
タスク処理方法であって、
分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットに作用するものである、ステップと、
前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するステップと、
前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うステップとを含むことを特徴とする、タスク処理方法。
【請求項２】
請求項１に記載のタスク処理方法であって、
前記表現式は、グループ化演算子キーワードと、グループ化キーワードと、操作演算子キーワードとを含むことを特徴とする、タスク処理方法。
【請求項３】
請求項２に記載のタスク処理方法であって、
前記タスク説明情報は、トポロジ構造であり、
前記トポロジ構造は、演算子とドメインとを含み、
前記ドメインは、前記分散データセットに対応する範囲を示すためのものであることを特徴とする、タスク処理方法。
【請求項４】
請求項３に記載のタスク処理方法であって、
前記分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップは、
前記グループ化キーワードに対応するドメインを作成するステップと、
前記操作演算子キーワードに対応する操作演算子を確定するステップと、
前記トポロジ構造を構築するステップであって、前記ドメインの前記トポロジ構造における子ノードは、前記グループ化演算子キーワードに対応するグループ化演算子と前記操作演算子とを含む、ステップとを含むことを特徴とする、タスク処理方法。
【請求項５】
請求項４に記載のタスク処理方法であって、
前記トポロジ構造のルートノードの子ノードは、前記演算子により作用される分散データセットに対して前記演算子を用いて分散コンピューティングを行って得られた計算結果を出力するための出力演算子を含むことを特徴とする、タスク処理方法。
【請求項６】
分散コンピューティングフレームワークであって、
分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するように配置される構築ユニットであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットである、構築ユニットと、
前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するように配置される確定ユニットと、
前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うように配置されるコンピューティングユニットとを備えることを特徴とする、分散コンピューティングフレームワーク。
【請求項７】
請求項６に記載の分散コンピューティングフレームワークであって、
前記表現式は、グループ化演算子キーワードと、グループ化キーワードと、操作演算子キーワードとを含むことを特徴とする、分散コンピューティングフレームワーク。
【請求項８】
請求項７に記載の分散コンピューティングフレームワークであって、
前記タスク説明情報は、トポロジ構造であり、
前記トポロジ構造は、演算子とドメインとを含み、
前記ドメインは、前記分散データセットに対応する範囲を示すためのものであることを特徴とする、分散コンピューティングフレームワーク。
【請求項９】
請求項８に記載の分散コンピューティングフレームワークであって、
前記構築ユニットは、
前記グループ化キーワードに対応するドメインを作成するように配置される作成サブユニットと、
前記操作演算子キーワードに対応する操作演算子を確定するように配置される操作演算子確定サブユニットと、
前記トポロジ構造を構築するように配置されるトポロジ構造構築サブユニットであって、前記ドメインの前記トポロジ構造における子ノードは、前記グループ化演算子キーワードに対応するグループ化演算子と前記操作演算子とを含む、トポロジ構造構築サブユニットとを備えることを特徴とする、分散コンピューティングフレームワーク。
【請求項１０】
請求項９に記載の分散コンピューティングフレームワークであって、
前記トポロジ構造のルートノードの子ノードは、前記演算子により作用される分散データセットに対して前記演算子を用いて分散コンピューティングを行って得られた計算結果を出力するための出力演算子を含むことを特徴とする、分散コンピューティングフレームワーク。
【請求項１１】
プロセッサと、メモリとを備える機器であって、
前記プロセッサによって実行可能なコンピュータ可読命令が前記メモリに記憶され、前記コンピュータ可読命令が実行される場合、前記プロセッサは、タスク処理方法を実行し、前記方法は、
分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットに作用するものである、ステップと、
前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するステップと、
前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うステップとを含むことを特徴とする、機器。
【請求項１２】
プロセッサによって実行可能なコンピュータ可読命令が記憶されている不揮発性コンピュータ記憶媒体であって、
前記コンピュータ可読命令が前記プロセッサによって実行される場合、前記プロセッサはタスク処理方法を実行し、前記方法は、
分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットに作用するものである、ステップと、
前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するステップと、
前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うステップと、を含むことを特徴とする、不揮発性コンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２０１６年９月３０日に提出した、出願番号が「２０１６１０８７３６４６．Ｘ」である中国特許出願に基づく優先権を主張し、当該出願の全文を引用することにより本願に組み込む。
【０００２】
本発明は、コンピュータの分野に関し、具体的には、分散コンピューティングの分野に関し、特に、タスク処理方法及び分散コンピューティングフレームワークに関する。
【背景技術】
【０００３】
分散コンピューティングにおいて、分散コンピューティングタスクを説明するために、ロジカルプラン（Ｌｏｇｉｃａｌ  Ｐｌａｎ）を使用する必要がある。従来の分散コンピューティングフレームワークにおいて、一般的に使用されているロジカルプランを構築する方法は、演算子（Ｏｐｅｒａｔｏｒ）の上流（ｕｐｓｔｒｅａｍ）と下流（ｄｏｗｎｓｔｒｅａｍ）の関係について説明する方法である。
【０００４】
しかしながら、このような方法を使用してロジカルプランを構築する際に、演算子により作用されるデータの範囲について説明することができない。例えば、Ａｐａｃｈｅ  Ｓｐａｒｋ、Ｇｏｏｇｌｅ  ＣｌｏｕｄＤａｔａｆｌｏｗなどの分散コンピューティングフレームワークは、単に全局的に分散データセットをサポートしているだけで、分散データセットをグループ化してグループ化データが得られた後に、グループ化データに対して再グループ化することができない。これにより、構築されたロジカルプランは、実際の分散コンピューティングにおいて頻出している例えばデータをグループ化してからグループ化データに対して操作するようなニーズを説明することができなくなる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、前述した背景技術の中に提出された技術的問題を解決するためのタスク処理方法及び分散コンピューティングフレームワークを提供する。
【０００６】
本発明の第一の態様によれば、タスク処理方法を提供する。前記方法は、分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットに作用するものである、ステップと、前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するステップと、前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うステップと、を含む。
【０００７】
本発明の第二の態様によれば、分散コンピューティングフレームワークを提供する。前記分散コンピューティングフレームワークは、分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するように配置される構築ユニットであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットに作用するものである、構築ユニットと、前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するように配置される確定ユニットと、前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うように配置されるコンピューティングユニットとを備える。
【０００８】
本発明に係るタスク処理方法及び分散コンピューティングフレームワークは、分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築し、その中で、タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、演算子は、分散データセット及び／又は分散データセットをグループ化して得られた分散データセットに作用するものであり、且つ、タスク説明情報に基づいて、演算子により作用される分散データセットを確定し、演算子を用いて、演算子により作用される分散データセットに対して分散コンピューティングを行う。これにより、分散コンピューティングにおいて、トポロジ構造を構築して、演算子の作用範囲及び入れ子関係を説明することを実現し、同じ演算子は、分散データセットと、分散データセットをグループ化して得られた分散データセットとに同時に作用することができ、したがって、異なるコンピューティングのニーズに応じる分散コンピューティングタスクを説明することができる。
【図面の簡単な説明】
【０００９】
以下の図面による非限定的な実施例についての詳細な説明を閲覧・参照することにより、本発明の他の特徴、目的及び利点がより明らかになる。
【００１０】
【図１】本発明の一実施例（実施形態）に係るタスク処理方法のフローチャートである。
【図２】ＤＡＧ（有向非巡回グラフ）を利用して分散コンピューティングタスクを説明する例示的な効果図である。
【図３】ツリー構造を利用して分散コンピューティングタスクを説明する例示的な効果図である。
【図４】ツリー構造及びＤＡＧを利用して分散コンピューティングタスクを説明する例示的な効果図である。
【図５】本発明の一実施例に係る分散コンピューティングフレームワークの構成の模式図である。
【図６】本発明の一実施例に係る分散コンピューティングフレームワークを実現するのに適するコンピュータシステムの構成の模式図である。
【発明を実施するための形態】
【００１１】
以下、図面と実施例を参照しながら、本発明を詳細に説明する。ここで記載される具体的な実施例は、関連の発明を解釈するのみに用いられ、当該発明に対する限定ではないと理解されるべきである。なお、説明の便宜上、図面には、関連の発明に関わる部分のみを示す。
【００１２】
なお、特に断らない（他の説明と衝突しない）限り、本発明の実施例及び実施例における特徴は互いに組み合わせることができる。以下、図面を参照しながら、実施例を併せて本発明を詳しく説明する。
【００１３】
図１に示すように、本発明の一実施例に係るタスク処理方法のフロー１００を示す図である。前記方法は、次のようなステップを含む。
【００１４】
ステップ１０１において、分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築する。
【００１５】
本実施例において、分散コンピューティングタスクは、表現式で表示することができる。タスク説明情報を用いて、分散コンピューティングタスクを説明することができ、タスク説明情報をロジカルプランと呼ぶことができる。分散コンピューティングタスクを処理する場合、分散コンピューティングタスクの表現式を解析し、分散コンピューティングタスクに対応するロジカルプランを構築することができる。
【００１６】
本実施例において、分散コンピューティングタスクのロジカルプランは、演算子と演算子の所在するドメインとを含むことができる。演算子は、データに対する操作を表示することができる。学校での一回の学生の成績データを例として、学生の成績データから上位の３名（学生の成績順位の第１〜３位）を取得する操作を、「学生成績データから上位の３名取得する演算子」と呼んでもよい。ドメインは、データに対するグループ化を表示するためのものであってもよい。演算子の所在するドメインを介して、演算子により作用される分散データセットを確定することができる。例えば、学生成績データから上位の３名取得する演算子の１つの所在するドメインが学年ドメインであれば、当該学年ドメインは、学校全体のすべての学生の成績データを含む分散データセットを学年別にグループ化することを示し、学生成績データから上位の３名取得する演算子により作用される分散データセットは、グループ化して得られた１つの学年の学生成績データを含む分散データセットである。
【００１７】
本実施例において、ロジカルプランは、以下のような形で定義することができる。
ｌｏｇｉｃａｌ  ｐｌａｎ  ｛
ｄｏｍａｉｎ（ｓｉｎｇｌｅ  ｒｏｏｔ）
｝
ｄｏｍａｉｎ：  ｛
ｐａｒｅｎｔ  ｎｏｄｅ：ｅｍｐｔｙ  ｜  ｄｏｍａｉｎ
ｃｈｉｌｄ  ｎｏｄｅ：ｅｍｐｔｙ  ｜  ［ｄｏｍａｉｎ  ｜  ｏｐｅｒａｔｏｒ］
｝
ｏｐｅｒａｔｏｒ  ｛
ｕｐｓｔｒｅａｍ：ｅｍｐｔｙ  ｜  ［ｏｐｅｒａｔｏｒ］
ｄｏｗｎｓｔｒａｍ：ｅｍｐｔｙ  ｜  ［ｏｐｅｒａｔｏｒ］
ｐａｒｅｎｔ  ｎｏｄｅ：  ｄｏｍａｉｎ
｝
本実施例において、エンタードメイン（ｅｎｔｅｒ  ｄｏｍａｉｎ）とエグジットドメイン（ｅｘｉｔ  ｄｏｍａｉｎ）の意味を定義することができる。１つのドメインにエンターすると、分散データセットのグループ化を始める。１つのドメインにエンターすることは、まず、表現式における分散データセットをグループ化するためのキーワードを読み取るための１つの演算子を導入することができる。１つのドメインからエグジットすると、分散データセットのグループ化をしないようになる。エグジットされたドメインで発生したすべての分散データセットは、一緒に集まって、次のノードに流入する。
【００１８】
学生の成績データから学年別に上位の３名、及びクラス別に上位の３名を取得する分散コンピューティングタスクを例として、ロジカルプランは、まず１つの全局ドメインを有し、全局ドメインの作用範囲がすべての学生の成績であるというように要約することができる。全局ドメインは、１つの入力を有し、当該入力から学年情報を読み取って学年ドメインを作成することができる。上位の３名を取得する演算子は、学年ドメインに配置され、各学年の学生の成績に対して上位の３名を取得するために使用することができる。同時に、学年ドメインにおいて、さらにクラス情報を読み取ってクラスドメインを作成し、上位の３名を取得する演算子は、クラスドメインに配置されて各クラスの学生の成績から上位の３名を取得するために使用することができる。最後に、二回に渡って上位の３名を取得した結果を全局ドメインにおける出力演算子よって出力することができる。
【００１９】
本実施例のいくつかの代替的な実施形態において、タスク説明情報は、トポロジ構造であり、該トポロジ構造は演算子及びドメインを含み、該ドメインは分散データセットに対応する範囲を示すためのものである。
【００２０】
本実施例において、タスク説明情報は、トポロジ構造であってもよい。トポロジ構造は、演算子とドメインとを含むことができる。ドメインは、データに対するグループ化を表示するためのものである。ドメインの親ノードはヌル（ＮＵＬＬ）又はドメインであり、ドメインの子ノードはドメイン又は演算子である。
【００２１】
本実施例のいくつかの代替的な実施形態において、表現式は、グループ化演算子キーワードと、グループ化キーワードと、操作演算子キーワードとを含む。
【００２２】
本実施例において、分散コンピューティングタスクに対応する表現式は、グループ化演算子キーワードと、グループ化キーワードと、操作演算子キーワードとを含む。
【００２３】
本実施例のいくつかの代替的な実施形態において、分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するのは、グループ化キーワードに対応するドメインを作成するステップと、操作演算子キーワードに対応する操作演算子を確定するステップと、トポロジ構造を構築するステップとを含み、ここで、ドメインのトポロジ構造における子ノードには、グループ化演算子キーワードに対応するグループ化演算子と、操作演算子とを含む。
【００２４】
以下、学生の成績データから学年別に上位の３名、及びクラス別に上位の３名を取得する分散コンピューティングタスクを説明する表現式を例として、分散コンピューティングタスクに対応する表現式を解析する過程を説明する。
【００２５】
表現式のグループ化演算子キーワード（例えば、ＧｒｏｕｐＢｙ）と、学年別にグループ化することを示すグループ化キーワードとが現れた場合、当該グループ化キーワードに基づいて、学校のすべての学生の成績データを含む分散データセットに対して学年別にグループ化することを確定することができる。表現式において当該グループ化キーワードの前に、学生成績データから上位の３名取得する演算子に対応する操作演算子キーワードが含まれた場合、当該操作演算子キーワードに基づいて、学生成績データから上位の３名取得する演算子により作用される分散データセットは、グループ化して得られた１つの学年の学生成績データを含む分散データセットとして確定することができる。
【００２６】
表現式のグループ化演算子キーワード（例えば、ＧｒｏｕｐＢｙ）と、クラス別にグループ化することを示すグループ化キーワードとが現れた場合、当該グループ化キーワードに基づいて、１つの学年の学生成績データを含む分散データセットに対してクラス別にグループ化することを確定することができる。表現式において当該グループ化キーワードの前に、学生成績データから上位の３名取得する演算子に対応する操作演算子キーワードが含まれた場合、当該操作演算子キーワードに基づいて、学生成績データから上位の３名取得する演算子により作用される分散データセットは、１つのクラスの学生成績データを含む分散データセットとして確定することができる。
【００２７】
分散コンピューティングタスクの表現式を解析して、学生成績データから上位の３名取得する演算子により作用される分散データセットのそれぞれが、各学年の学生成績データ及び各クラスの学生成績データであることを確定した後、学生の成績データから学年別に上位の３名、及びクラス別に上位の３名を取得する分散コンピューティングタスクを説明するためのトポロジ構造を構築することができる。
【００２８】
このトポロジ構造において、学生の成績データの範囲が学校のすべての学生の成績データであることを示すドメインである全局ドメインが含まれる。当該ドメインの子ノードは、入力ノードと、出力ノードと、学生の成績データの範囲が学年であることを示すドメインである学年ドメインとを含むことができる。学校のすべての学生の成績データを含む分散データセットは、入力ノードから入力されることができる。一つの学年の学生成績データから上位の３名及び一つの学年におけるクラスの学生成績データから上位の３名を取得して得られた結果は、総括された後に出力ノードに出力されることができる。
【００２９】
このトポロジ構造において、学生の成績データの範囲が学年であることを示すドメインの子ノードは、学年情報を読み取るためのグループ化演算子と、学生成績データから上位の３名を取得する操作演算子と、学生の成績データの範囲がクラスであることを示すドメインとを含む。当該グループ化演算子は、入力ノードから学年情報を読み取るためのものであり、入力ノードへ入力された、学校のすべての学生の成績データを含む分散データセットを、学年別にグループ化して、各学年の学生成績データを含む分散データセットを取得する。学生成績データから上位の３名を取得する操作演算子は、各学年の学生成績データから上位の３名を取得するために使用される。
【００３０】
このトポロジ構造において、学生の成績データの範囲がクラスであることを示すドメインの子ノードは、クラス情報を読み取るためのグループ化演算子と、学生成績データから上位の３名を取得する操作演算子とを含む。当該グループ化演算子は、クラス情報を読み取るためのものであり、一つの学年の学生成績データを含む分散データセットをクラス別にグループ化して、各クラスの学生成績データを含む分散データセットを取得する。学生成績データから上位の３名を取得する操作演算子は、各クラスの学生成績データから上位の３名を取得するために使用される。
【００３１】
図２に示すように、ＤＡＧを利用して分散コンピューティングタスクを説明する例示的な効果図である。
【００３２】
図２には、入力ノード、学年情報読み取りノードと、クラス情報読み取りノードと、成績上位３名取得ノードと、出力ノードが示されている。上記ノードにより表示される演算子同士は、互いに上流と下流の関係を構成して１つのＤＡＧ（Ｄｉｒｅｃｔｅｄ  Ａｃｙｃｌｉｃ  Ｇｒａｐｈ：有向非巡回グラフ）を形成することができる。入力ノードは、入力された、学校のすべての学生の成績データを含む分散データセットを受けるための入力演算子である。学年情報読み取りノードは、学年情報を読み取るためのグループ化演算子である。クラス情報読み取りノードは、クラス情報を読み取るためのグループ化演算子である。成績上位３名取得ノードは、それぞれ学年の学生成績データから上位の３名を取得する操作演算子、及びクラスの学生成績データから上位の３名を取得する操作演算子である。出力ノードは、学年の学生成績データ及びクラスの学生成績データから上位の３名を取得して得られた結果を出力するための出力演算子である。
【００３３】
図３に示すように、ツリー構造を利用して分散コンピューティングタスクを説明する例示的な効果図である。
【００３４】
図３には、入力ノード、学年情報読み取りノード、クラス情報読み取りノード、成績上位３名取得ノード、出力ノード、全局ドメインノード、学年ドメインノード、及びクラスドメインノードが示されている。
【００３５】
全局ドメインノードの子ノードは、入力ノード、出力ノード及び学年ドメインノードを含む。入力ノードは、入力された、学生の成績データを含む分散データセットを受ける入力演算子であってもよい。出力ノードは、演算子を用いて分散データセットを分散コンピューティングして得られた計算結果を出力する出力演算子であってもよい。
【００３６】
学年ドメインの子ノードは、学年情報読み取りノードと成績上位３名取得ノードとを含む。学年情報読み取りノードは、学年情報を読み取るためのグループ化演算子であり、成績上位３名取得ノードは、学生成績データから上位の３名を取得する操作演算子であってもよい。
【００３７】
クラスドメインの子ノードは、クラス情報読み取りノードと成績上位３名取得ノードとを含む。クラス情報読み取りノードは、クラス情報を読み取るグループ化演算子であり、成績上位３名取得ノードは、学生成績データから上位の３名を取得する操作演算子であってもよい。
【００３８】
図４に示すように、ツリー構造及びＤＡＧを利用して分散コンピューティングタスクを説明する例示的な効果図である。
【００３９】
図４は、実線で示す入力ノード、学年情報読み取りノード、クラス情報読み取りノード、成績上位３名取得ノード、出力ノード、並びに点線で示す全局ドメインノード、学年ドメインノード及びクラスドメインノードが示されている。
【００４０】
入力ノードは、入力された、学生の成績データを含む分散データセットを受ける入力演算子であってもよい。出力ノードは、演算子を用いて分散データセットを分散コンピューティングして得られた計算結果を出力する出力演算子であってもよい。
【００４１】
学年情報読み取りノードは、学年情報を読み取るためのグループ化演算子であり、成績上位３名取得ノードは、学生成績データから上位の３名を取得する操作演算子であってもよい。
【００４２】
クラス情報読み取りノードは、クラス情報を読み取るためのグループ化演算子であり、成績上位３名取得ノードは、学生成績データから上位の３名を取得する操作演算子であってもよい。
【００４３】
演算子間の接続線は、演算子の上流と下流の関係を説明することができ、ノード間の入れ子は、親子関係を説明することができる。
【００４４】
ステップ１０２において、タスク説明情報に基づいて、演算子により作用される分散データセットを確定する。
【００４５】
本実施例において、ステップ１０１で分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築した後、例えばトポロジ構造を構築した後、タスク説明情報に基づいて、演算子により作用される分散データセットを確定することができる。
【００４６】
学生の成績データから学年別に上位の３名、及びクラス別に上位の３名を取得する分散コンピューティングタスクを例として、ステップ１０１を介して構築された分散コンピューティングタスクのタスク説明情報であるトポロジ構造には、ルートノードである全局ドメインと、入力ノードと、出力ノードと、学年ドメインと、クラスドメインノードと、学生成績データから上位の３名を取得する操作演算子とを含む。このトポロジ構造におけるノードをトラバーサルすることができ、トラバーサル中に、学生の成績データから上位の３名を取得する操作演算子が学年ドメインとクラスドメインとにそれぞれ位置したことを確定し、さらに、学生成績データから上位の３名取得する演算子により作用される分散データセットは、それぞれ各学年の学生成績データ、及び各クラスの学生成績データであることを確定することができる。
【００４７】
ステップ１０３において、演算子を用いて、演算子により作用される分散データセットに対して分散コンピューティングを行う。
【００４８】
本実施例において、ステップ１０２により、タスク説明情報に基づいて、演算子により作用される分散データセットを確定した後、演算子を用いて、演算子により作用される分散データセットに対して分散コンピューティングを行うことができる。
【００４９】
学生の成績データから学年別に上位の３名、及びクラス別に上位の３名を取得する分散コンピューティングタスクを例として、ステップ１０２により、学生成績データから上位の３名取得する演算子により作用される分散データセットが、それぞれ各学年の学生成績データ及び各クラスの学生成績データであることを確定する。各学年の学生成績データ及び各クラスの学生成績データとに対して、それぞれ上位の３名を取得する分散コンピューティングを行うことができる。そして、全局ドメインにおける出力ノードを介して結果を出力することができる。
【００５０】
図５に示すように、上記各図面に示す方法の実現形態として、本発明は、分散コンピューティングフレームワークの一実施例を提供する。該フレームワークの実施例は、図２に示された方法の実施例に対応している。
【００５１】
図５に示すように、本実施例の分散コンピューティングフレームワーク５００は、構築ユニット５０１と、確定ユニット５０２と、コンピューティングユニット５０３とを含む。ここで、構築ユニット５０１は、分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するように配置され、タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、演算子は、分散データセット及び／又は分散データセットをグループ化して得られた分散データセットに作用するものである。確定ユニット５０２は、タスク説明情報に基づいて、演算子により作用される分散データセットを確定するように配置される。コンピューティングユニット５０３は、演算子を用いて、演算子により作用される分散データセットに対して分散コンピューティングを行うように配置される。
【００５２】
本実施例のいくつかの代替的な実施形態において、表現式は、グループ化演算子キーワードと、グループ化キーワードと、操作演算子キーワードとを含む。
【００５３】
本実施例のいくつかの代替的な実施形態において、タスク説明情報は、トポロジ構造であり、前記トポロジ構造は、演算子とドメインとを含み、前記ドメインは、前記分散データセットに対応する範囲を示すためのものである。
【００５４】
本実施例のいくつかの代替的な実施形態において、構築ユニット５０１は、グループ化キーワードに対応するドメインを作成するように配置される作成サブユニット（図示せず）と、操作演算子キーワードに対応する操作演算子を確定するように配置される操作演算子確定サブユニット（図示せず）と、トポロジ構造を構築するように配置されるトポロジ構造構築サブユニットであって、ドメインのトポロジ構造における子ノードにはグループ化演算子キーワードに対応するグループ化演算子と操作演算子とを含む、トポロジ構造構築サブユニット（図示せず）と、を備える。
【００５５】
本実施例のいくつかの代替的な実施形態において、トポロジ構造のルートノードの子ノードは、演算子により作用される分散データセットに対して演算子を用いて分散コンピューティングを行って得られた計算結果を出力するための出力演算子を含む。
【００５６】
図６は、本発明の実施例に係る分散コンピューティングフレームワークを実現することに適するコンピュータシステムの構造模式図を示す。
【００５７】
図６に示すように、コンピュータシステム６００は、読み出し専用メモリ（ＲＯＭ）６０２に記憶されたプログラム、又は記憶部６０８からランダムアクセスメモリ（ＲＡＭ）６０３に取り込まれたプログラムにより各種適宜な動作及び処理することができる中央処理装置（ＣＰＵ）６０１を具備する。ＲＡＭ６０３において、システム６００の操作に必要な各種のプログラム及びデータが記憶されている。ＣＰＵ６０１と、ＲＯＭ６０２と、ＲＡＭ６０３とは、バス６０４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース６０５もバス６０４に接続されている。
【００５８】
キーボード、マウスなどを含む入力部６０６と、陰極線管（ＣＲＴ）、液晶表示装置（ＬＣＤ）などとスピーカーなどを含む出力部６０７と、ハード駆動部などを含む記憶部６０８と、ＬＡＮカード、モデムなどのネットワークインターフェースカードを含む通信部６０９のような部品は、Ｉ／Ｏインターフェース６０５に接続されている。通信部６０９は、インターネットなどのネットワークを介して通信処理する。駆動部６１０も必要に応じて、Ｉ／Ｏインターフェース６０５に接続される。磁気ディスク、光ディスク、磁気光ディスク、半導体メモリなどのようなリムーバブルメディア６１１は、必要に応じて、読み取得したコンピュータプログラムを必要に応じて記憶部６０８にインストールできるように、駆動部６１０に取り付けられる。
【００５９】
特に、本発明に係る実施例によれば、以上のフローチャートを参照しながら記載したプロセスは、コンピュータソフトウェアプログラムとして実現することができる。例えば、本発明の実施例は、コンピュータ可読媒体に有形に具現化されるコンピュータプログラムを含むコンピュータプログラムを含み、当該コンピュータプログラムは、フローチャートに示された方法を実行するためのプログラムコードを含む。このような実施例において、当該コンピュータプログラムは、通信部６０９を介してネットワークからダウンロードされてインストールされてもよく、及び／又はリムーバブルメディア６１１からインストールされてもよい。
【００６０】
図面におけるフローチャート及びブロック図は、本発明の各種実施例によるシステム、方法及びコンピュータプログラムが実現可能なシステムアーキテクチャー、機能及び操作を図示する。この点から、フローチャート又はブロック図におけるそれぞれのブロックは、１つのモジュール、プログラムブロック、又はコードの一部を示すことができ、当該モジュール、プログラムブロック、又はコードの一部は、一つ又は複数の所定のロジカル機能を実現するための実行可能な命令を含む。なお、複数の代わりになる実装において、ブロックに表示された機能は、図面に表示された順番と異なる順番で発生させることができる。例えば、２つの直列的に接続されると示されたブロックは、実際には、基本的に並行して実行することができ、機能によっては、逆の順番で実行することも可能である。なお、ブロック図及び／又はフローチャートにおけるそれぞれのブロックと、ブロック図及び／又はフローチャートにおけるブロックの組み合わせは、所定の機能又は操作するための専用のハードウェアに基づくシステムによって実現することができ、あるいは、専用ハードウェアとコンピュータ命令の組み合わせによって実現することができる。
【００６１】
他の態様として、本発明は、不揮発性コンピュータ記憶媒体をさらに提供し、該不揮発性コンピュータ記憶媒体は、上記実施例に記載された機器に含まれる不揮発性コンピュータ記憶媒体であってもよく、独立で存在して端末に組み立てられていない不揮発性コンピュータ記憶媒体であってもよい。上記不揮発性コンピュータ記憶媒体は、１つ又は複数のプログラムが記憶されている。上記１つ又は複数のプログラムが１つの機器によって実行される場合、上記機器は、分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップであって、上記タスク説明情報は、演算子と分散データセットの対応関係を説明するためのものであり、上記演算子は、分散データセット及び／又は上記分散データセットをグループ化して得られた分散データセットに作用するものである、ステップと、上記タスク説明情報に基づいて、上記演算子により作用される分散データセットを確定するステップと、上記演算子を用いて上記演算子により作用される分散データセットに対して分散コンピューティングを行うステップと、を実行するようになっている。
【００６２】
以上の記載は、本発明の好ましい実施例、及び使われている技術的原理の説明に過ぎない。当業者は、本発明に係る保護範囲が、上記の技術的特徴による特定の組合せからなる技術案に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、上記技術的特徴又は均等の特徴の任意の組合せからなる他の技術案も含まれることを理解している。例えば、上記特徴と、本発明に開示された類似の機能を持っている技術的特徴（これらに限定されていない）とを互いに置き換えてなる技術案も含まれる。
【図１】
2019528522.tif 000003
【図２】
2019528522.tif 000004
【図３】
2019528522.tif 000005
【図４】
2019528522.tif 000006
【図５】
2019528522.tif 000007
【図６】
2019528522.tif 000008
【手続補正書】
【提出日】平成31年1月31日(2019.1.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
タスク処理方法であって、
分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットに作用するものである、ステップと、
前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するステップと、
前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うステップとを含むことを特徴とする、タスク処理方法。
【請求項２】
請求項１に記載のタスク処理方法であって、
前記表現式は、グループ化演算子キーワードと、グループ化キーワードと、操作演算子キーワードとを含むことを特徴とする、タスク処理方法。
【請求項３】
請求項２に記載のタスク処理方法であって、
前記タスク説明情報は、トポロジ構造であり、
前記トポロジ構造は、演算子とドメインとを含み、
前記ドメインは、前記分散データセットに対応する範囲を示すためのものであることを特徴とする、タスク処理方法。
【請求項４】
請求項３に記載のタスク処理方法であって、
前記分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップは、
前記グループ化キーワードに対応するドメインを作成するステップと、
前記操作演算子キーワードに対応する操作演算子を確定するステップと、
前記トポロジ構造を構築するステップであって、前記ドメインの前記トポロジ構造における子ノードは、前記グループ化演算子キーワードに対応するグループ化演算子と前記操作演算子とを含む、ステップとを含むことを特徴とする、タスク処理方法。
【請求項５】
請求項４に記載のタスク処理方法であって、
前記トポロジ構造のルートノードの子ノードは、前記演算子により作用される分散データセットに対して前記演算子を用いて分散コンピューティングを行って得られた計算結果を出力するための出力演算子を含むことを特徴とする、タスク処理方法。
【請求項６】
分散コンピューティングフレームワークであって、
分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するように配置される構築ユニットであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットに作用するものである、構築ユニットと、
前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するように配置される確定ユニットと、
前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うように配置されるコンピューティングユニットとを備えることを特徴とする、分散コンピューティングフレームワーク。
【請求項７】
請求項６に記載の分散コンピューティングフレームワークであって、
前記表現式は、グループ化演算子キーワードと、グループ化キーワードと、操作演算子キーワードとを含むことを特徴とする、分散コンピューティングフレームワーク。
【請求項８】
請求項７に記載の分散コンピューティングフレームワークであって、
前記タスク説明情報は、トポロジ構造であり、
前記トポロジ構造は、演算子とドメインとを含み、
前記ドメインは、前記分散データセットに対応する範囲を示すためのものであることを特徴とする、分散コンピューティングフレームワーク。
【請求項９】
請求項８に記載の分散コンピューティングフレームワークであって、
前記構築ユニットは、
前記グループ化キーワードに対応するドメインを作成するように配置される作成サブユニットと、
前記操作演算子キーワードに対応する操作演算子を確定するように配置される操作演算子確定サブユニットと、
前記トポロジ構造を構築するように配置されるトポロジ構造構築サブユニットであって、前記ドメインの前記トポロジ構造における子ノードは、前記グループ化演算子キーワードに対応するグループ化演算子と前記操作演算子とを含む、トポロジ構造構築サブユニットとを備えることを特徴とする、分散コンピューティングフレームワーク。
【請求項１０】
請求項９に記載の分散コンピューティングフレームワークであって、
前記トポロジ構造のルートノードの子ノードは、前記演算子により作用される分散データセットに対して前記演算子を用いて分散コンピューティングを行って得られた計算結果を出力するための出力演算子を含むことを特徴とする、分散コンピューティングフレームワーク。
【請求項１１】
プロセッサと、メモリとを備える機器であって、
前記プロセッサによって実行可能なコンピュータ可読命令が前記メモリに記憶され、前記コンピュータ可読命令が実行される場合、前記プロセッサは、タスク処理方法を実行し、前記方法は、
分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットに作用するものである、ステップと、
前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するステップと、
前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うステップとを含むことを特徴とする、機器。
【請求項１２】
プロセッサによって実行可能なコンピュータ可読命令が記憶されている不揮発性コンピュータ記憶媒体であって、
前記コンピュータ可読命令が前記プロセッサによって実行される場合、前記プロセッサはタスク処理方法を実行し、前記方法は、
分散コンピューティングタスクに対応する表現式を解析し、分散コンピューティングタスクに対応するタスク説明情報を構築するステップであって、前記タスク説明情報は、演算子と分散データセットとの対応関係を説明するためのものであり、前記演算子は、分散データセット及び／又は前記分散データセットをグループ化して得られた分散データセットに作用するものである、ステップと、
前記タスク説明情報に基づいて、前記演算子により作用される分散データセットを確定するステップと、
前記演算子を用いて、前記演算子により作用される分散データセットに対して分散コンピューティングを行うステップと、を含むことを特徴とする、不揮発性コンピュータ記憶媒体。
【請求項１３】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項１ないし請求項５のいずれか一項に記載の方法を実現させるコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
学生の成績データから学年別に上位の３名、及びクラス別に上位の３名を取得する分散コンピューティングタスクを例として、ステップ１０１を介して構築された分散コンピューティングタスクのタスク説明情報であるトポロジ構造には、ルートノードである全局ドメインと、入力ノードと、出力ノードと、学年ドメインノードと、クラスドメインノードと、学生成績データから上位の３名を取得する操作演算子とを含む。このトポロジ構造におけるノードをトラバーサルすることができ、トラバーサル中に、学生の成績データから上位の３名を取得する操作演算子が学年ドメインとクラスドメインとにそれぞれ位置したことを確定し、さらに、学生成績データから上位の３名取得する演算子により作用される分散データセットは、それぞれ各学年の学生成績データ、及び各クラスの学生成績データであることを確定することができる。
【国際調査報告】
2019528522.tif 000009
2019528522.tif 000010
2019528522.tif 000011
2019528522.tif 000012