(57)【要約】  第１のコンピュータ実行可能プログラムを構成するための方法は、ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信することと、ユーザインターフェースを介して、プロセスの特性評価を受信することとを含み、特性評価には、プロセスのタイプと、プロセスに関連付けられたそれぞれの特性の値が含まれる。方法は、受信した情報に基づいて、第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、第１のコンピュータ実行可能プログラムに、実行時に、データソースからデータを受信させ、データターゲットにデータを出力させることを含む。方法は、受信したプロセスの特性評価に基づいて、第２のコンピュータ実行可能プログラムを参照するように、第１のコンピュータ実行可能プログラムを自動的に構成することを含む。構成することは、プロセスのタイプに基づいて第２のコンピュータ実行可能プログラムを識別することと、プロセスに関連付けられたそれぞれの特性の値に基づいて第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む。
2020527766.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータ実行可能プログラムを構成するための方法であって、
ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信することと、
前記ユーザインターフェースを介して、プロセスのタイプと、前記プロセスに関連付けられたそれぞれの特性の値とを含む、前記プロセスの特性評価を受信することと、
前記受信した情報に基づいて、前記第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、前記第１のコンピュータ実行可能プログラムに、実行時に、前記データソースからデータを受信させ、前記データターゲットにデータを出力させることと、
前記プロセスの前記受信した特性評価に基づいて、第２のコンピュータ実行可能プログラムを参照するように前記第１のコンピュータ実行可能プログラムを自動的に構成することであって、前記構成することが、
前記プロセスの前記タイプに基づいて、前記第２のコンピュータ実行可能プログラムを識別することと、
前記プロセスに関連付けられた前記それぞれの特性の前記値に基づいて、前記第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む、ことと、を含む、方法。
【請求項２】
前記第１のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す１つ以上のノードと、前記データ処理コンポーネント間のデータのフローを表す１つ以上のリンクとを含む第１のデータフローグラフを含む、請求項１に記載の方法。
【請求項３】
前記第２のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す１つ以上のノードと、前記データ処理コンポーネント間のデータのフローを表す１つ以上のリンクとを含む第２のデータフローグラフを含む、請求項１又は２に記載の方法。
【請求項４】
前記データソースを示す前記情報は、前記データソースのタイプを識別する、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記データソースを示す前記情報を受信することは、１つ以上のタイプのセットの中から前記データソースの前記タイプの選択を受信することを含む、請求項４に記載の方法。
【請求項６】
前記１つ以上のタイプのセットは、ファイル、テーブル、ＨＤＦＳデータセット、ＨＩＶＥテーブル、及びキューのうちの１つ以上を含む、請求項５に記載の方法。
【請求項７】
前記データソースを示す前記情報は、前記データソースの場所を示す情報を含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記データターゲットを示す前記情報は、前記データターゲットのタイプを識別する、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記データターゲットを示す前記情報を受信することは、１つ以上のタイプのセットの中から前記データターゲットの前記タイプの選択を受信することを含む、請求項８に記載の方法。
【請求項１０】
前記１つ以上のタイプのセットは、ファイル、テーブル、ＨＤＦＳデータセット、ＨＩＶＥテーブル、及びキューのうちの１つ以上を含む、請求項９に記載の方法。
【請求項１１】
前記データターゲットを示す前記情報は、複数のデータターゲットを示す情報を含む、請求項１〜１０のいずれか一項に記載の方法。
【請求項１２】
前記データターゲットを示す前記情報は、前記データターゲットの場所を示す情報を含む、請求項１〜１１のいずれか一項に記載の方法。
【請求項１３】
前記プロセスの前記特性評価は、複数のプロセスの各々の特性評価を含む、請求項１〜１２のいずれか一項に記載の方法。
【請求項１４】
前記プロセスの前記タイプに基づいて、前記プロセスに関連付けられた前記特性を判定することを含む、請求項１〜１３のいずれか一項に記載の方法。
【請求項１５】
プロセスの特性評価を受信することは、１つ以上のプロセスのセットの中からの特定のプロセスの選択を受信することを含む、請求項１〜１４のいずれか一項に記載の方法。
【請求項１６】
前記セットの前記プロセスは、マッピングプロセス、フィルタプロセス、重複除去プロセス、集約プロセス、複製プロセス、正規化プロセス、パーティション及びソートプロセス、変更データキャプチャプロセス、並びに結合プロセスのうちの１つ以上を含む、請求項１５に記載の方法。
【請求項１７】
前記第１のデータフローグラフの実行時に前記第２のデータフローグラフを参照するように、前記第１のデータフローグラフを自動的に構成することを含む、請求項１〜１６のいずれか一項に記載の方法。
【請求項１８】
前記第２のデータフローグラフを参照するように前記第１のデータフローグラフを自動的に構成することは、前記第１データフローグラフの実行中に前記第２データフローグラフを実行するように前記第１データフローグラフを構成することを含む、請求項１〜１７のいずれか一項に記載の方法。
【請求項１９】
コンピューティングシステムに第１のコンピュータ実行可能プログラムを構成させるための命令を保存する非一時的コンピュータ可読媒体であって、前記命令が、前記コンピューティングシステムに、
ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信させ、
前記ユーザインターフェースを介して、プロセスのタイプと、前記プロセスに関連付けられたそれぞれの特性の値とを含む、前記プロセスの特性評価を受信させ、
前記受信した情報に基づいて、前記第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、前記第１のコンピュータ実行可能プログラムに、実行時に、前記データソースからデータを受信させ、前記データターゲットにデータを出力させ、
前記プロセスの前記受信した特性評価に基づいて、第２のコンピュータ実行可能プログラムを参照するように前記第１のコンピュータ実行可能プログラムを自動的に構成させ、前記構成することが、
前記プロセスの前記タイプに基づいて、前記第２のコンピュータ実行可能プログラムを識別することと、
前記プロセスに関連付けられた前記それぞれの特性の前記値に基づいて、前記第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む、ための命令を含む、非一時的コンピュータ可読媒体。
【請求項２０】
第１のコンピュータ実行可能プログラムを構成するためのコンピューティングシステムであって、
１つ以上のプロセッサ及びメモリを含み、前記１つ以上のプロセッサ及びメモリが、
ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信し、
前記ユーザインターフェースを介して、プロセスのタイプと、前記プロセスに関連付けられたそれぞれの特性の値とを含む、前記プロセスの特性評価を受信し、
前記受信した情報に基づいて、前記第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、前記第１のコンピュータ実行可能プログラムに、実行時に、前記データソースからデータを受信させ、前記データターゲットにデータを出力させ、
前記プロセスの前記受信した特性評価に基づいて、第２のコンピュータ実行可能プログラムを参照するように前記第１のコンピュータ実行可能プログラムを自動的に構成させ、前記構成することが、
前記プロセスの前記タイプに基づいて、前記第２のコンピュータ実行可能プログラムを識別することと、
前記プロセスに関連付けられた前記それぞれの特性の前記値に基づいて、前記第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む、ように構成されている、コンピューティングシステム。
【請求項２１】
第１のコンピュータ実行可能プログラムを構成するためのコンピューティングシステムであって、
ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信するための手段と、
前記ユーザインターフェースを介して、プロセスのタイプと、前記プロセスに関連付けられたそれぞれの特性の値とを含む、前記プロセスの特性評価を受信するための手段と、
前記受信した情報に基づいて、前記第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、前記第１のコンピュータ実行可能プログラムに、実行時に、前記データソースからデータを受信させ、前記データターゲットにデータを出力させるための手段と、
前記プロセスの前記受信した特性評価に基づいて、第２のコンピュータ実行可能プログラムを参照するように前記第１のコンピュータ実行可能プログラムを自動的に構成するための手段であって、前記構成することが、
前記プロセスの前記タイプに基づいて、前記第２のコンピュータ実行可能プログラムを識別することと、
前記プロセスに関連付けられた前記それぞれの特性の前記値に基づいて、前記第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む、手段と、を含む、コンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
この出願は、２０１７年６月７日に出願された米国特許出願第６２／５１６，３９６号、及び２０１８年６月４日に出願された米国特許出願第１５／９９７，２７８号に対する優先権を主張するものであり、それら両方の内容は、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【０００２】
背景
コンピューティングシステムによって処理されるデータとユーザが対話できるようにするために、ユーザインターフェースを生成し、ユーザに表示することができる。いくつかのユーザインターフェースは、アプリケーションプログラムの静的コンポーネントであり、ユーザインターフェースは、問題の複数のユーザに対して同じように動作する。ユーザインターフェースが特定の目的に対してオーダーメイドされるように、アプリケーションプログラムのユーザによっていくつかのユーザインターフェースを定義できる。例えば、アプリケーションプログラムにより、複数のユーザインターフェースを指定でき、ユーザは、複数のユーザインターフェースの中から選択することができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
一態様では、第１のコンピュータ実行可能プログラムを構成するための方法は、ユーザインターフェースを介してデータソース及びデータターゲットを示す情報を受信することと、ユーザインターフェースを介してプロセスの特性評価を受信することとを含み、特性評価には、プロセスのタイプと、プロセスに関連付けられたそれぞれの特性の値が含まれる。方法は、受信した情報に基づいて、第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、第１のコンピュータ実行可能プログラムに、実行時に、データソースからデータを受信させ、データターゲットにデータを出力させることを含む。方法は、受信したプロセスの特性評価に基づいて、第２のコンピュータ実行可能プログラムを参照するように、第１のコンピュータ実行可能プログラムを自動的に構成することを含む。構成することは、プロセスのタイプに基づいて第２のコンピュータ実行可能プログラムを識別することと、プロセスに関連付けられたそれぞれの特性の値に基づいて第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む。
【０００４】
実施形態は、以下の特徴のうちの１つ以上を含むことができる。
【０００５】
第１のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す１つ以上のノードと、データ処理コンポーネント間のデータのフローを表す１つ以上のリンクとを含む第１のデータフローグラフを含む。
【０００６】
第２のコンピュータ実行可能プログラムは、データ処理コンポーネントを表す１つ以上のノードと、データ処理コンポーネント間のデータのフローを表す１つ以上のリンクとを含む第２のデータフローグラフを含む。
【０００７】
データソースを示す情報は、データソースのタイプを識別する。データソースを示す情報を受信することは、１つ以上のタイプのセットの中からデータソースのタイプの選択を受信することを含む。１つ以上のタイプのセットは、ファイル、テーブル、ＨＤＦＳデータセット、ＨＩＶＥテーブル、及びキューのうちの１つ以上を含む。
【０００８】
データソースを示す情報は、データソースの場所を示す情報を含む。
【０００９】
データターゲットを示す情報は、データターゲットのタイプを識別する。データターゲットを示す情報を受信することは、１つ以上のタイプのセットの中からデータターゲットのタイプの選択を受信することを含む。１つ以上のタイプのセットは、ファイル、テーブル、ＨＤＦＳデータセット、ＨＩＶＥテーブル、及びキューのうちの１つ以上を含む。
【００１０】
データターゲットを示す情報は、複数のデータターゲットを示す情報を含む。
【００１１】
データターゲットを示す情報は、データターゲットの場所を示す情報を含む。
【００１２】
プロセスの特性評価は、複数のプロセスの各々の特性評価を含む。
【００１３】
方法は、プロセスのタイプに基づいて、プロセスに関連付けられた特性を判定することを含む。
【００１４】
プロセスの特性評価の受信には、１つ以上のプロセスのセットの中からの特定のプロセスの選択を受信することが含まれる。セットのプロセスには、マッピングプロセス、フィルタプロセス、重複除去プロセス、集約プロセス、複製プロセス、正規化プロセス、パーティション及びソートプロセス、変更データキャプチャプロセス、並びに結合プロセスのうちの１つ以上が含まれる。
【００１５】
方法は、第１のデータフローグラフの実行時に第２のデータフローグラフを参照するように、第１のデータフローグラフを自動的に構成することを含む。
【００１６】
第２のデータフローグラフを参照するように第１のデータフローグラフを自動的に構成することは、第１データフローグラフの実行中に第２データフローグラフを実行するように第１データフローグラフを構成することを含む。
【００１７】
一態様では、非一時的コンピュータ可読媒体は、コンピューティングシステムに、第１のコンピュータ実行可能プログラムを構成させるための命令を保存する。命令は、コンピューティングシステムに、ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信させ、ユーザインターフェースを介して、プロセスのタイプと、プロセスに関連付けられたそれぞれの特性の値とを含む、特性評価を受信させ、受信した情報に基づいて、第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、第１のコンピュータ実行可能プログラムに、実行時に、データソースからデータを受信させ、データターゲットにデータを出力させ、プロセスの受信した特性評価に基づいて、第２のコンピュータ実行可能プログラムを参照するように、第１のコンピュータ実行可能プログラムを自動的に構成させる、ための命令を含む。構成することは、プロセスのタイプに基づいて第２のコンピュータ実行可能プログラムを識別することと、プロセスに関連付けられたそれぞれの特性の値に基づいて第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む。
【００１８】
一態様では、第１のコンピュータ実行可能プログラムを構成するためのコンピューティングシステムは、１つ以上のプロセッサ及びメモリを含み、１つ以上のプロセッサ及びメモリは、ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信し、ユーザインターフェースを介して、プロセスのタイプと、プロセスに関連付けられたそれぞれの特性の値とを含む、特性評価を受信し、受信した情報に基づいて、第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、第１のコンピュータ実行可能プログラムに、実行時に、データソースからデータを受信し、データターゲットにデータを出力し、プロセスの受信した特性評価に基づいて、第２のコンピュータ実行可能プログラムを参照するように、第１のコンピュータ実行可能プログラムを自動的に構成する、ように構成されている。構成することは、プロセスのタイプに基づいて第２のコンピュータ実行可能プログラムを識別することと、プロセスに関連付けられたそれぞれの特性の値に基づいて第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む。
【００１９】
一態様では、第１のコンピュータ実行可能プログラムを構成するためのコンピューティングシステムは、ユーザインターフェースを介して、データソース及びデータターゲットを示す情報を受信するための手段と、ユーザインターフェースを介して、プロセスのタイプと、プロセスに関連付けられたそれぞれの特性の値とを含む、特性評価を受信するための手段と、受信した情報に基づいて、第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値を自動的に割り当てて、第１のコンピュータ実行可能プログラムに、実行時に、データソースからデータを受信し、データターゲットにデータを出力するための手段と、プロセスの受信した特性評価に基づいて、第２のコンピュータ実行可能プログラムを参照するように、第１のコンピュータ実行可能プログラムを自動的に構成するための手段と、を含む。構成することは、プロセスのタイプに基づいて第２のコンピュータ実行可能プログラムを識別することと、プロセスに関連付けられたそれぞれの特性の値に基づいて第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることと、を含む。
【図面の簡単な説明】
【００２０】
図面の簡単な説明
【図１】図１は、システム図である。
【図２】図２は、データフローグラフの図である。
【図３】図３は、ユーザインターフェースの図である。
【図４】図４は、フローチャートである。
【図５Ａ】図５Ａは、例示的なスクリーンショットである。
【図５Ｂ】図５Ｂは、例示的なスクリーンショットである。
【図５Ｃ】図５Ｃは、例示的なスクリーンショットである。
【図５Ｄ】図５Ｄは、例示的なスクリーンショットである。
【図５Ｅ】図５Ｅは、例示的なスクリーンショットである。
【図５Ｆ】図５Ｆは、例示的なスクリーンショットである。
【図５Ｇ】図５Ｇは、例示的なスクリーンショットである。
【図６】図６は、例示的なスクリーンショットである。
【図７】図７は、例示的なスクリーンショットである。
【図８】図８は、例示的なスクリーンショットである。
【図９Ａ】図９Ａは、例示的なスクリーンショットである。
【図９Ｂ】図９Ｂは、例示的なスクリーンショットである。
【図１０】図１０は、システム図である。
【発明を実施するための形態】
【００２１】
詳細な説明
ここでは、ユーザが提供する特性に基づいてデータフローグラフを構成するアプローチについて説明する。特性は、データフローグラフによって処理されるデータソース、データフローグラフからのデータ出力のターゲットを定義でき、データフローグラフによってデータに対して実行される処理を定義できる。実行する処理のタイプは、利用可能なオプションのライブラリから選択できる。一般的で再利用可能なデータフローグラフは、これらの特性に従ってパラメータ化される。
【００２２】
図１を参照すると、データフローグラフを構成するための例示的なシステム１０は、各々が様々な記憶フォーマット（例えば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブフォーマット）のいずれかでデータを保存できる、ストレージデバイス、又はオンラインデータストリームへの接続など、１つ以上のデータソースを含み得るデータソース１２を含む。実行環境１４は、グラフ構成モジュール１６及びユーザインターフェースモジュール２２を含む。実行環境１４は、UNIXオペレーティングシステムなどの適切なオペレーティングシステムの制御下で、１つ以上の汎用コンピュータ上でホストされてもよい。例えば、実行環境１４は、ローカル（例えば、ＳＭＰコンピュータなどのマルチプロセッサシステム）、若しくはローカル分散型（例えば、クラスタ又はＭＰＰとして結合された複数のプロセッサ）か、リモート、若しくはリモート分散型（例えば、ＬＡＮ若しくはＷＡＮネットワークを介して結合された複数のプロセッサ）かのいずれか、又はそれらの任意の組み合わせである、複数の中央処理装置（ＣＰＵ）を使用するコンピュータシステムの構成を含む、マルチノード並列コンピューティング環境を含むことができる。
【００２３】
以下により詳細に説明するように、グラフ構成モジュール１６は、データフローグラフの構成を変更する。ユーザインターフェースモジュール２２は、構成情報をユーザ３０に表示し、構成アクションをユーザ３０から受信する。ユーザインターフェースモジュール２２はまた、ユーザのアクションに基づいてデータフローグラフを構成するグラフ構成モジュール１６と通信する。例えば、データフローグラフを、データソース１２に保存できる。データソース１２を提供するストレージデバイスは、例えば、実行環境１４を実行しているコンピュータ（例えば、ハードドライブ１８）に接続された記憶媒体上に保存されている実行環境１４に対してローカルであるか、又は、例えば、ローカル若しくはワイドエリアデータネットワークを介して実行環境１４を実行しているコンピュータと通信中のリモートシステム（例えば、メインフレーム２０）上でホストされている実行環境１４に対してリモートであり得る。
【００２４】
実行環境は、ユーザインターフェースを表示するためにユーザインターフェースモジュール２２によって使用される情報を含むデータストレージシステム２６と通信している。データストレージシステム２６はまた、データストレージシステム２６に保存され、ユーザインターフェースモジュール２２がユーザインターフェースを表示するために使用するユーザインターフェースを開発者３０が開発できる開発環境２８にアクセス可能である。
【００２５】
いくつかの実装において、データソース１２は、頂点間の有向リンク（作業要素のフローを表す）によって接続された頂点（コンポーネント又はデータセット）を含むデータフローグラフとしてアプリケーションを開発するためのシステムである。例えば、そのような環境は、参照により本明細書に組み込まれる、「Managing Parameters for Graph-Based Applications」と題する、米国特許出願公開第２００７／００１１６６８号に、より詳細に記載されている。
【００２６】
データフローグラフは、１つ以上のデータソースからのデータを処理するデータフローグラフ実行環境内で実行されるコンピュータプログラムである。データソースからのデータは、データフローグラフに従って操作及び処理され、１つ以上のデータシンクにエクスポートされる。データソース及びシンクには、例えば、ファイル、データベース、データストリーム、又はキューを含むことができる。データフローグラフは、少なくとも１つのデータ入力からのデータを処理し、少なくとも１つのデータ出力にデータを提供するためのコードを各々が含むデータ処理コンポーネントを表すノードと、データソース及び／又はシンクにアクセスするためのデータセットオブジェクトを表すノードと、を含む有向グラフとして表される。ノードは、コンポーネント間のデータフローを表す有向リンクによって接続され、データソースで始まり、データシンクで終わる。アップストリームコンポーネントのデータ出力ポートは、ダウンストリームコンポーネントのデータ入力ポートに接続される。データフローグラフは、データセットオブジェクトによって表される異なるデータソース及び異なるデータシンクに再利用できる。データフローグラフの実装に使用されるデータ構造及びプログラムコードは、例えば、異なるソース及びシンクを容易に置換することができるようにパラメータ化されることによって、複数の異なる構成をサポートすることができる。更に、いくつかの構成では、データフローグラフのフローは、コンポーネント又は一連のコンポーネントをバイパスできるように、パラメータの使用によって変更される場合がある。一般に、パラメータは、構成又は変更できるデータフローグラフのプロパティを表す。例えば、プロパティは、データフローグラフを使用するたびに変更でき、データフローグラフは、変更の結果として異なるように動作を実行する場合がある。データフローグラフは、コンパイル時に、特定のアクションを実行するためにデータフローグラフプリコンパイルを変更することにより、又は実行時に、パラメータを設定するか、若しくはデータフローグラフで使用される構成ファイルを変更することにより、構成することができる。
【００２７】
例えば、図２を参照すると、一般的なデータフローグラフ１００は、データソース１０２、コンポーネント１０４、及びデータシンク１０６ａ〜１０６ｎを含む。データソース１０２は、コンポーネント１０４の入力ポートに接続されている。コンポーネント１０４の出力ポートは、データシンク１０６ａ〜１０６ｎに接続されている。データソース、コンポーネント、及びデータシンク間の接続は、データフローグラフを通じたデータフローを定義する。
【００２８】
データソース１０２、コンポーネント１０４、及びデータシンク１０６ａ〜１０６ｎの各々は、パラメータセット１０８、１１０、１１２ａ〜１１２ｎにそれぞれ関連付けられ、各パラメータセットは１つ以上のパラメータを含む。パラメータは、データフローグラフの挙動を定義する。例えば、パラメータは、物理ディスク上のデータソース又はデータシンクの場所を定義できる。パラメータはまた、ソートコンポーネントがコンポーネントへのデータ入力をソートする方法など、コンポーネントの挙動を定義できる。いくつかの例では、パラメータセットのパラメータ値は、データフローグラフの実行時に入力される。
【００２９】
いくつかの例では、あるパラメータ値が、別のパラメータ値に依存する場合がある。例えば、データソースは、特定のディレクトリ内のファイルに保存され得る。データソースのパラメータセットには、「DIRECTORY」と呼ばれる第１のパラメータ、及び「FILENAME」と呼ばれる第２のパラメータを含むことができる。この例では、FILENAMEパラメータは、DIRECTORYパラメータに依存する（例えば、DIRECTORYは「/usr/local/」であり得、FILENAMEは「input.dat」であり得る）。パラメータはまた、他のコンポーネントのパラメータにも依存する場合がある。例えば、データフローグラフのデータシンクの物理的な場所は、データフローグラフのデータソースの物理的な場所に依存する場合がある。例えば、データシンクには、データソースのDIRECTORYパラメータに依存するFILENAMEパラメータを含むパラメータセットを含むことができる（例えば、データシンクのFILENAMEパラメータは、値「/usr/local/」がデータソースのDIRECTORYパラメータから取得される「/usr/local/output.dat」であり得る）。
【００３０】
コンポーネント１０４は、サブグラフと呼ばれることもある１つ以上の他のデータフローグラフ１２０ａ〜１２０ｎを参照するグラフインターフェースコンポーネントとすることができる。データフローグラフ１００は、実行時に、コンポーネント１０４によって参照されるサブグラフを動的にロードして実行し、例えば、サブグラフ１２０ａ〜１２０ｎによって提供される様々な機能にデータフローグラフ１００が柔軟にアクセスすることを可能にする。コンポーネント１０４の１つ以上のパラメータは、コンポーネント１０４によって参照される特定のサブグラフ１２０ａ〜１２０ｎを定義する。各サブグラフ１２０ａ〜１２０ｎはまた、１つ以上のパラメータを含むパラメータセット１２２ａ〜１２２ｎに関連付けられ、各パラメータが対応するサブグラフの挙動を定義する。
【００３１】
データフローグラフの構築は、場合によっては、本質的に高度に技術的である場合がある。特定のビジネス目標を達成するために書かれているが、グラフの根本的な構成及び構造は、技術的な考慮事項に基づいて判定される。例えば、グラフコンポーネントを選択して、再利用性を最大化し、又は並列処理をサポートすることができる。他方、グラフの使用方法と使用場所は、主として、ビジネス上の意思決定であり得る。パラメータ化されたデータフローグラフに関連付けられたパラメータの一部を使用することにより、その実装の背後にある技術的な複雑さをユーザが理解する必要なしに、ビジネスユーザがデータフローグラフをカスタマイズすることを可能にする。パラメータ化されたデータフローグラフは、カスタマイズを簡素化し、再利用を容易にする。
【００３２】
データフローグラフを構築するためにパラメータ値を識別するためのインターフェースは、クライアントマシン上に表示できる。いくつかの実装では、クライアントは、パラメータインターフェースを提供するクライアント上のＷｅｂブラウザーを使用して、及びクライアント側の処理に何らかの機能を提供するスクリプト言語を使用して、サーバ上で実行している開発環境にアクセスすることができる。スクリプト言語は、サーバと通信して、パラメータを更新し、他の必要な動作を実行できる。この通信は、構築中のグラフに対するオブジェクト及び関連付けられたパラメータ値を保存する開発環境を実行しているクライアントとサーバと間の通信を変換するブリッジマシンを介して生じ得る。このインターフェースにより、たとえユーザにデータフローグラフ及びデータフローグラフ構成に関する技術的な知識がなくても、ユーザは、パラメータ化されたデータフローグラフのパラメータを構成することができる。
【００３３】
クライアントデバイス上に提示される構成インターフェースにより、ユーザが図１のグラフ構成モジュール１６にアクセスすることが可能になる。構成インターフェースを介して、ユーザは、データフローグラフ構成に関する技術的知識を必要とすることなく、データソース、データシンク、及びデータフローグラフによって実行される変換の特性を指定することができる。ユーザが指定した特性に基づいて、パラメータ値を、パラメータセット１０８、１１０、１１２ａ〜１１２ｎ、１２２ａ〜１２２ｎに割り当てることができ、それゆえに、ユーザが指定した特性に従ってデータフローグラフの挙動を定義できる。
【００３４】
構成インターフェース内では、パラメータセット１０８、１１０、１１２ａ〜１１２ｎのパラメータは、例えば、技術的な考慮事項ではなくビジネス上の考慮事項を反映して、ユーザと対話するために、グループに結合して再編成することができる。ユーザ入力に基づいてパラメータの値を受信するための構成インターフェースでは、サーバ上の開発環境の態様によって必ずしも制限されない柔軟な方法で、パラメータ間の関係に従って、異なるパラメータを表示することができる。構成インターフェースの例は、米国特許出願公開第２０１１／０１４５７４８号に記載されており、その内容は参照によりその全体が本明細書に組み込まれる。
【００３５】
図３を参照すると、構成インターフェース３００により、ユーザはデータフローグラフ１００のパラメータに値を割り当てることが可能になる。図３の例では、パラメータは、データソース１０２のパラメータを表すソースアイコン３０２、コンポーネント１０４のパラメータを表す変換アイコン３０４、及び各々がデータシンク１０６ａ〜１０６ｎのうちの対応する１つのパラメータを表すシンクアイコン３０６ａ〜３０６ｎ、によって表されるパラメータの第１グループに分割される。ユーザは、各アイコンに関連付けられた特性を入力できる。ユーザが入力した特性に基づいて、データソース１０２、データシンク１０６ａ〜１０６ｎ、及びコンポーネント１０４のパラメータ値を判定することができる。
【００３６】
図３の例では、ソースアイコン３０２に関連付けられた第１の特性は、ユーザがテキストを入力できるテキストボックス３０８として表示される。テキストのタイプは、制限することができ（例えば、整数、浮動小数点値、文字列、若しくは他のタイプ）、又は任意のタイプのテキストを受け入れることができる。第２の特性は、事前入力された値とともにドロップダウンリスト３１０として表示される。第３の特性は、ラジオボタン３１２として表示される。第４の特性用のフィールド３１４により、ユーザはより多くのテキストを入力することができる。他のタイプの表示もまた使用できる。例えば、ユーザは、ファイルセレクタを開いて、データソースとして使用する特定のデータセットを選択でき、又はネットワークを介してデータセットにアクセス若しくはダウンロードする場所を選択でき得る。シンクアイコン３０６ａ〜３０６ｎ及び変換アイコン３０４に関連付けられた特性もまた入力することができる。
【００３７】
ソースアイコン３０２又はシンクアイコン３０６ａ〜３０６ｎに関連付けられた特性は、データソース１０２、又はデータシンク１０６ａ〜１０６ｎのうちの１つに対するデータセットのタイプを示す特性を含むことができる。例えば、ユーザは、ファイル、テーブル、ＨＤＦＳ（Hadoop分散ファイルシステム）データセット、ＨＩＶＥテーブル、キュー、又は他のタイプなど、サポートされているタイプのリストの中からデータセットのタイプを選択するように促され得る。ファイルとは、ファイルとして記述でき、又はデータフローグラフ１００の実装と互換性のあるレコードフォーマットで定義できる形式を有するデータを意味する。例えば、ＭＶＳ（複数仮想記憶）ファイルは、ファイルの一例である。ユーザは、データセットのパス又は場所を指定するように促され得る。ユーザが促される他の特性は、ユーザが選択したデータセットのタイプに依存してもよい。例えば、ユーザは、データセットのレコードフォーマット、データセットのキー、テーブルデータセットの構成ファイル、圧縮若しくは暗号化のタイプ、又は他の特性に関連する特性を入力することができる。複数のデータシンクが使用される場合、各データシンクは、その独自のタイプのデータセット、及び他の関連する特性を有することができる。
【００３８】
ソースアイコン３０２に関連付けられた入力特性は、実行時にデータフローグラフが適切なソースからデータを受信するように、データソース１０２を自動的にパラメータ化するために使用される。同様に、各シンクアイコン３０６ａ〜３０６ｎに関連付けられた入力特性は、実行時にデータフローグラフ１００からのデータ出力を適切な宛先に送信するように、各データシンク１０６ａ〜１０６ｎを自動的にパラメータ化するために使用される。
【００３９】
変換アイコン３０４に関連付けられた特性は、データソースからのデータに対して実行される処理のタイプを示す特性を含むことができる。例えば、ユーザは、サポートされているプロセスのライブラリの中からプロセスのタイプを選択するように促され得る。各プロセスは、コンポーネント１０４によって参照され得る、以前に構築され、保存されたサブグラフ１２０ａ〜１２０ｎに対応する。例えば、システムは、マッピングプロセス、フィルタプロセス、重複除去プロセス（重複排除プロセスとも呼ばれる）、集約プロセス、複製プロセス、正規化プロセス、パーティション及びソートプロセス、変更データキャプチャプロセス、結合プロセス、又は他のプロセスなどのプロセスをサポートすることができる。ユーザが促される他の特性は、プロセスのタイプに依存し得る。例えば、マッピングプロセスの場合、ユーザは、マッピングルールを入力し、マッピング用のターゲットデータセットを識別できる。フィルタプロセスの場合、ユーザは、フィルタルールを入力できる。重複排除プロセスの場合、ユーザは、重複排除キーを入力し、レコード選択ルールを指定できる。結合プロセスの場合、ユーザは、結合データセットを識別し、結合ルールを定義できる。いくつかの例では、ユーザは、複数のプロセスを選択し、選択したプロセスの所望のシーケンスを示すことができる。
【００４０】
変換アイコン３０４に関連付けられた入力特性は、コンポーネント１０４並びに任意の関連するサブグラフ１２０ａ〜１２０ｎを自動的にパラメータ化するために使用される。コンポーネント１０４は、ユーザによって選択されたプロセスのタイプに対応するサブグラフを参照するようにパラメータ化される。参照される各サブグラフの各々はまた、対応するプロセスに対してユーザが入力した特性に基づいてパラメータ化される。データフローグラフ１００は、実行されると、ユーザが入力した特性に基づくパラメータ化によって定義されている各々の参照されたサブグラフの挙動とともに、コンポーネントによって参照されたサブグラフ１２０ａ〜１２０ｎの各々を実行する。例えば、データフローグラフ１００は、サブグラフの実行中にデータが保存されないシリアルパイプラインプロセスで、参照されるサブグラフ１２０ａ〜１２０ｎの各々を実行することができる。
【００４１】
ここで説明する例では、システムは、単一のデータソース、及び最大２つのデータシンク、５つのデータシンク、１０のデータシンク、２０のデータシンク、又は別の数のデータシンクなどの複数のデータシンクをサポートする。各データシンク用のパラメータは、例えば、各データシンクが、異なるタイプのデータセットであり得るか、及び／又はその独自のパラメータセットを有し得るように、個別に定義することができる。いくつかの例では、システムは、複数のデータソースをサポートでき、例えば、複数のソースからのデータは、結合プロセス、ルックアッププロセス、又は他のタイプのプロセスを使用して処理することができる。例えば、結合プロセス、ルックアッププロセス、又は結合プロセスとルックアッププロセスとの両方の組み合わせによって、複数のソースを、効果的な単一のソースに結合することができる。いくつかの例では、システムは、単一のデータシンクをサポートできる。
【００４２】
いくつかの例では、システムは、データソースの詳細及び処理ステップのセットを提供するユーザ入力に基づいて、構成を自動的に生成することができる。例えば、ユーザは、スプレッドシートなどのユーザインターフェースを介してデータソース及び処理ステップのセットの詳細を提供することができ、システムは、ユーザが入力した詳細に基づいてコンピュータプログラムを自動的に構成することができる。
【００４３】
図４を参照すると、第１のコンピュータ実行可能プログラムを構成するための例示的なプロセスにおいて、データソース及びデータターゲットを示す情報が受信される（４００）。例えば、情報は、データセットのタイプ、データセットの場所又はパス、及びデータセットに関する他の特性を示すことができる。プロセスの特性評価が受信される（４０２）。特性評価には、プロセスのタイプ、及びプロセスのそれぞれの特性の値が含まれる。
【００４４】
受信した情報に基づいて、第１のコンピュータ実行可能プログラムのそれぞれのパラメータに値が自動的に割り当てられ（４０４）、第１のコンピュータ実行可能プログラムに、プログラムの実行時に、データソースからデータを受信させ、データターゲットにデータを出力させる。例えば、第１のコンピュータ実行可能プログラムは、データフローグラフとすることができる。
【００４５】
プロセスの受信した特性評価に基づいて、第１のコンピュータ実行可能プログラムは、第２のコンピュータ実行可能プログラムを参照するように自動的に構成される（４０６）。構成することは、プロセスのタイプに基づいて、第２のコンピュータ実行可能プログラムを識別することを含む（４０８）。構成することはまた、プロセスに関連付けられたそれぞれの特性の値に基づいて、第２のコンピュータ実行可能プログラムのそれぞれのパラメータに値を割り当てることを含む（４１０）。例えば、第２のコンピュータ実行可能プログラムは、サブグラフとすることができる。
【００４６】
図５Ａ〜図５Ｇは、ユーザがデータソース又はデータターゲットについての情報を入力できる構成インターフェースの例である。図５Ａを参照すると、ユーザは、ソースデータセット又はターゲットデータセットのタイプを選択するように促される。
【００４７】
図５Ｂ及び図５Ｃを参照すると、データセットのタイプがファイルである場合、ユーザは、ファイルのＵＲＬ、ファイルのレコードフォーマット、ファイルが圧縮若しくは暗号化されているか又はその両方かどうか、ファイル、ファイルのナチュラルキー、ファイルのデータ順序キーを読み取り若しくは書き込みするかどうか、又は他のパラメータ、のうちの１つ以上など、検証の詳細及び特性を入力するように促される。
【００４８】
図５Ｄを参照すると、物理ファイルのrpath又はリポジトリ名など、データセットについてのメタデータを入力できる。
【００４９】
図５Ｅを参照すると、データセットのタイプがテーブルである場合、ユーザは、テーブル若しくはクエリ（例えば、ＳＱＬクエリ）を使用するかどうか、テーブル、テーブルのデータベース構成ファイル、テーブルのナチュラルキー、テーブルのデータ順序キーを読み取り若しくは書き込みするかどうか、又は他のパラメータなど、特性を入力するように促される。クエリが選択されている場合、ユーザはクエリを指定できる。
【００５０】
図５Ｆを参照すると、データセットのタイプがＨＤＦＳデータセットである場合、ユーザは、ＨＤＦＳファイル、ＨＤＦＳファイルシステムのパス、ＨＤＦＳファイルの名前、ＨＤＦＳファイルのサフィックス（もしあれば）、レコードフォーマットファイルへのパスを読み取り若しくは書き込みするかどうか、又は他の様々な特性のいずれか、のうちの１つ以上など、ＨＤＦＳデータセットを説明する特性を入力するように促される。ユーザは、読み取り又は書き込みするＨＤＦＳファイルのタイプなど、未解釈ファイル（例えば、非圧縮、非フォーマットテキスト（例えば、ＡＳＣＩＩ若しくはＵＴＦ８）若しくはバイナリデータ）、Apache Optimized Row Columnarフォーマットなどの行列フォーマット、Apache Parquetなどの列記憶フォーマット、Hadoopシーケンスファイルなどのキーと値のペアを含むバイナリファイル、Apache Avroなどのバイナリファイルフォーマット、テキストデータ、又は他のタイプ、などのファイルタイプ又はフォーマットを示す特性を提供することができる。ユーザは、ｇｚｉｐ、Snappy、Ｄｅｆｌａｔｅ、ｂｚｉｐ２、ｚｌｉｂ、ＬＺ４、ＬＺＯ、又は圧縮の他のタイプなど、圧縮のタイプを示す特性を提供できる。ユーザは、既存のＨＤＦＳデータセットから直接派生し得るＨＤＦＳデータセット用のレコードフォーマットを供給することができ、又はレコードフォーマットを提供することができる。いくつかの例では、ファイルのタイプ、圧縮のタイプ、又はその両方の選択に応じて、ユーザに追加の特性の入力を促すことができる。
【００５１】
図５Ｇを参照すると、データセットのタイプがＨＩＶＥテーブルである場合、ユーザは、ＨＩＶＥテーブル、ＨＩＶＥテーブルのファイルフォーマット、レコードフォーマット、レコードフォーマットファイルのパス、データベースを読み取り若しくは書き込みするかどうか、テーブルが存在するかどうか、テーブル、又は他の様々な特性のうちのいずれか、のうちの１つ以上など、ＨＩＶＥテーブルを説明する特性を入力するように促される。いくつかの例では、テーブルのタイプ及び／又は圧縮のタイプの選択に応じて、ユーザに追加の特性の入力を促すことができる。
【００５２】
図６は、ユーザが処理ステップを定義することができる構成インターフェース６００の例である。図６の例では、ソースデータセット６０２、及び２つのターゲットデータセット６０４ａ、６０４ｂが、すでに定義されている。処理ステップウィンドウ６０６により、ユーザは、ソースデータセット上で実行される処理ステップを選択することができる。
【００５３】
図７は、一連の処理ステップがユーザによって指定されたフィードを示す構成インターフェース７００の例である。ソースデータセット７０２が定義されている。４つの処理ステップ、すなわち、マッピングステップ７０４、重複排除ステップ７０６、第２のマッピングステップ７０８、及び結合ステップ７１０もまた定義されている。各プロセスに対する様々な特性が指定されている。
【００５４】
構成インターフェース７００に示すフィードに基づいてデータフローグラフがパラメータ化されると、データソースは、ソースデータセットウィンドウ７０２で指定されたソーステーブルTeradata_cc_transからデータを受信するように構成される。データフローグラフのコンポーネントは、マッピングサブグラフ、重複排除サブグラフ、マッピングサブグラフを再度、及び結合サブグラフを参照するように構成される。参照される各サブグラフは、それぞれのプロセスのウィンドウ７０４〜７１０に示される特性に従ってパラメータ化される。
【００５５】
構成インターフェース７００におけるフィードからわかり得るように、ユーザは、グラフ構成の詳細な技術的理解を必要とすることなく、データフローグラフの構成の特性を入力することができる。例えば、図７の例では、ユーザは、ユーザが処理したいデータソース、及び処理されたデータの宛先（図示せず）を知っている。ユーザは、例えば１つ以上のフィールドのマッピングを変更するために、ソースデータをソースデータ自身にマッピングしたいことを知っている。ユーザは、重複排除キー{amount}を使用し、且つ、各グループの第１のレコードを保持して、マッピングされたデータを重複排除したいことを知っている。重複排除ステップ後、ユーザは、データを再びデータ自身にマッピングすることを望む。最後に、ユーザは、重複排除され、マッピングされたデータを、テーブルmixed_cc_accountsに結合することを望む。すなわち、このプロセスフローをセットアップするために、ユーザは、一般的なデータ処理フレームワークを理解できるが、データフローグラフの構成方法を知る必要はない。
【００５６】
いくつかの例では、構成インターフェース７００を介して、ユーザは、ソースデータセット７０２として使用されるテストデータのセットを選択できる。例えば、非常に大きなデータセット（例えば、実際の顧客レコードを有するデータセット）を使用してデータフローグラフをテストするのではなく、ユーザは、より迅速に処理できるより小さなデータセットを選択できる。いくつかの例では、例えばテスト目的で、ユーザは、実際の動作時に、データフローグラフがその処理されたデータを送信する宛先とは異なる処理されたデータ用の宛先を選択することができる。例えば、ユーザは、実際の顧客レコードでデータセットを上書きしないように、テストデータの宛先を選択できる。ソースデータセット７０２及び処理されたデータの宛先に関係なく、他のプロセス７０６〜７０８の構成は変更されないままであるため、ユーザがソースデータセット及び／又は宛先を思い通りに更新するのは簡単である。
【００５７】
いくつかの例では、構成インターフェース７００は、ユーザが入力したパラメータが意味をなすかどうかの指標を提供することができる。例えば、ユーザが入力したプロセスキーを、互いに対して検証できる。例えば、ユーザが、第１のキーを使用してデータセットを重複排除するデータフローグラフを作成し、第２のキーを使用して結果として得られる重複排除されたデータをソートする場合、構成インターフェースにアラートを表示できる。
【００５８】
いくつかの例では、ユーザがデータフローグラフを構成した後、システムは、例えば処理時間又は計算コストを削減するために、データフローグラフを実行する方法を判定することができる。例えば、所与のプロセスの場合、システムは、アップストリームプロセスで使用されるキーなど、１つ以上のアップストリームプロセスのパラメータに基づいて、データを再分割するかどうかを判定することができる。一例では、同様のキーがアップストリームプロセスで使用される場合、システムは、ダウンストリームプロセスで同じキーを用いてデータを再分割する必要はないと判定してもよい。再パーティション化又はソートが適切かどうかの判定は、ユーザの入力なしで自動的に実行できる。
【００５９】
いくつかの例では、データフローグラフの実行中に、データフローグラフのパフォーマンスを示す情報を構成インターフェース７００内に表示することができる。情報には、各処理ステップに出入りするレコードの数を示す情報を含むことができる。例えば、重複排除ステップ７０６は、レコード登録の数、レコード削除の数、及び重複として破棄されたレコードの数を、記録及び表示することができる。結合ステップ７１０は、第１のデータセットからのレコード数、第２のデータセットからのレコード数、記録削除されたレコード数、及び各データセットから破棄されたレコード数を記録及び表示することができる。この情報は、例えば、ユーザが意図した方法でデータフローグラフを構成したかどうかを示す、迅速なフィードバックをユーザに提供できるため、非技術的ユーザがデータフローグラフのトラブルシューティング及びデバッグを行うための方法を提供する。例えば、図８を参照すると、１１５，９１１個のレコードが重複排除ステップに読み込まれ、そのうち重複として１０８，１９１個が破棄されたことを確認した非技術的ユーザは、この情報を使用して、重複排除キーなどのパラメータが正しく構成されていない可能性があることを判定できる。
【００６０】
いくつかの例では、構成インターフェース７００は、ユーザがデータフローグラフを構築及び構成できるスプレッドシートインターフェースとして提示することができる。
【００６１】
いくつかの例では、例えば、スプレッドシート、データベース、又は他の場所におけるデータなど、使用されるデータを識別する特性に基づいて、ソースデータセット、ターゲットデータセット、又はそれらの両方を作成することができる。
【００６２】
図９Ａ及び図９Ｂを参照すると、いくつかの例では、処理されたデータをデータフローグラフからデータターゲットに送信する前に、マッピング又はフィルタプロセスなどのターゲット固有のプロセスを、それぞれ適用することができる。
【００６３】
図１０を参照すると、クライアントシステム８０２は、ユーザに構成インターフェース８０４を表示していてもよい。構成インターフェース８０４を介したユーザとの対話に基づいて生成されたパラメータセット８１４は、サーバ８０８上に保存されてもよい。その結果、構成インターフェース８０４によって行われた変更は、ブリッジ８０６を介してクライアント８０２からサーバ８０８に送信される。矢印８２０によって表されるように、クライアント８０２は、例えば、シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）を使用して送信されるメッセージなどの１つのフォーマットで、ブリッジ８０６にメッセージを送信する。ブリッジ８０６は、メッセージを新しいフォーマットに変換し、必要に応じて、サーバ８０８とのクライアントセッションを開始する。矢印８２２によって表されるように、ブリッジ８０６は、例えばＣＯＭ＋メッセージである、サーバ８０８によって理解されるフォーマットで、サーバ８０８にメッセージを送信する。サーバ８０８は、メッセージを受信し、パラメータセットを更新する。矢印８２４によって表されるように、サーバ８０８は、クライアント８０２によって受信された入力によりパラメータセットに生じた任意の変更を含む応答を、ブリッジ８０６に送信する。ブリッジ８０６は、メッセージをデコードし、クライアント８０２に対する応答メッセージを作成する。矢印８２６で表されるように、ブリッジ８０６は、クライアント８０２に応答メッセージを送信する。クライアント８０２は、構成インターフェース８０４を更新して、上述の前提条件の失敗により以前には隠されていた任意のコンポーネントの表示を含む変更を反映する。
【００６４】
ユーザはまた、完全であってもなくてもよい、現在のパラメータセットに基づくサンプルデータを使用して構築されているデータフローグラフを実行したいことをクライアント８０２に示してもよい。上記のように、クライアント８０２は、ブリッジ８０６を介してサーバ８０８にメッセージを送信する。サーバ８０８は、パラメータセットに任意の変更を適用し、サーバで実行されているプロセス８１６は、データフローグラフをコンパイルする。コンパイルされたデータフローグラフは、サンプルデータセット８１０、８１２からデータを受信し、コンパイルされたデータフローグラフを実行する。データフローグラフは、出力データセット８１８に要求された出力を生成する。データフローグラフの出力は、クライアント８０２によって要求された中間データであり、必ずしも、データフローグラフの完全な実行によって生成され得るデータではない。
【００６５】
上述のように、結果として得られるデータは、ブリッジ８０６を介してサーバ８０８からクライアント８０２に送信される。
【００６６】
上述のグラフ構成アプローチは、コンピュータ上で実行するためのソフトウェアを使用して実装することができる。例えば、ソフトウェアは、各々が少なくとも１つのプロセッサ、少なくとも１つのデータストレージシステム（揮発性及び不揮発性メモリ及び／又は記憶要素を含む）、少なくとも１つの入力デバイス又はポート、並びに少なくとも１つの出力デバイス又はポートを含む、１つ以上のプログラムされた又はプログラム可能なコンピュータシステム（分散、クライアント／サーバ、又はグリッドなどの様々なアーキテクチャであり得る）上で実行する１つ以上のコンピュータプログラムにおいてプロシージャを形成する。ソフトウェアは、例えば、計算グラフの設計及び構成に関連する他のサービスを提供する、より大きなプログラムの１つ以上のモジュールを形成してもよい。グラフのノード及び要素は、コンピュータ可読媒体に保存されたデータ構造、又はデータリポジトリに保存されたデータモデルに準拠する他の構造化データとして実装できる。
【００６７】
ソフトウェアは、汎用若しくは専用のプログラム可能なコンピュータによって読み取り可能なＣＤ−ＲＯＭなどの記憶媒体で提供されるか、又はネットワークの通信媒体を介してソフトウェアが実行されるコンピュータに配信（伝搬信号で符号化）されてもよい。全ての機能は、専用コンピュータ上で実行することも、コプロセッサなどの専用ハードウェアを使用して実行することもできる。ソフトウェアは、ソフトウェアによって指定された計算の異なる部分が異なるコンピュータによって実行される分散方式で実装されてもよい。そのような各コンピュータプログラムは、好ましくは、汎用又は専用のプログラム可能なコンピュータによって読み取り可能な記憶媒体又はデバイス（例えば、ソリッドステートメモリ若しくは媒体、又は磁気若しくは光学媒体）に保存又はダウンロードされ、記憶媒体又はデバイスがコンピュータシステムによって読み取られるときにコンピュータを構成及び動作して、本明細書で説明する手順を実行する。本発明のシステムはまた、コンピュータプログラムで構成されたコンピュータ可読記憶媒体として実装されると考えることができ、その場合、そのように構成された記憶媒体は、コンピュータシステムを、本明細書で説明する機能を実行する特定及び所定の方法で動作させる。
【００６８】
本発明のいくつかの実施形態を説明してきた。それにもかかわらず、本発明の精神及び範囲から逸脱することなく、様々な修正を行うことができることを理解されたい。例えば、上述の手順の一部は順序に依存しない場合があり、したがって、説明した順序とは異なる順序で実行することができる。
【００６９】
他の実装もまた、以下の特許請求の範囲内にある。
【図１】
2020527766.tif 000003
【図２】
2020527766.tif 000004
【図３】
2020527766.tif 000005
【図４】
2020527766.tif 000006
【図５Ａ】
2020527766.tif 000007
【図５Ｂ】
2020527766.tif 000008
【図５Ｃ】
2020527766.tif 000009
【図５Ｄ】
2020527766.tif 000010
【図５Ｅ】
2020527766.tif 000011
【図５Ｆ】
2020527766.tif 000012
【図５Ｇ】
2020527766.tif 000013
【図６】
2020527766.tif 000014
【図７】
2020527766.tif 000015
【図８】
2020527766.tif 000016
【図９Ａ】
2020527766.tif 000017
【図９Ｂ】
2020527766.tif 000018
【図１０】
2020527766.tif 000019
【国際調査報告】
2020527766.tif 000020
2020527766.tif 000021
2020527766.tif 000022