(57)【特許請求の範囲】
【請求項１】
コンピュータ実行可能アプリケーションを構成するための第１のグラフィカルユーザインタフェースを規定するためのコンピュータ実施方法であって、
少なくとも１つの構成可能アプリケーションの識別を受信することと、
前記少なくとも１つの構成可能アプリケーションに関連付けられた一つ以上のパラメータのセットを識別することと、
前記第１のグラフィカルユーザインタフェースを表現する第１の部分及び複数のグラフィック表示要素を表現する第２の部分の両方を表示する第２のグラフィカルユーザインタフェースを通じて、前記第２のグラフィカルユーザインタフェースに関するユーザのドラッグ・アンド・ドロップ入力を受信することであって、前記ユーザのドラッグ・アンド・ドロップ入力は、前記複数のグラフィック表示要素のグラフィック表示要素の選択、及び前記グラフィック表示要素を、前記第１のグラフィカルユーザインタフェースを表現する前記第１の部分内に置く位置を示す、ことと、
前記第１のグラフィカルユーザインタフェースを表現する前記第２のグラフィカルユーザインタフェースの前記第１の部分に前記グラフィック表示要素を前記位置に表示することであって、前記位置は、前記グラフィック表示要素を、前記第１のグラフィカルユーザインタフェースを表現する前記第１の部分内に置く位置である、ことと、
前記第２のグラフィカルユーザインタフェースに、前記パラメータのセットの１つ以上の表現を表示することと、
前記グラフィック表示要素の１つのプロパティと前記パラメータのセットの１つのパラメータとのマッピングを、前記第２のグラフィカルユーザインタフェースを通じて受信することと、
前記マッピングの表現と、前記第１のグラフィカルユーザインタフェース内に前記グラフィック表示要素を置く位置とを記憶することと、
を含む、方法。
【請求項２】
前記プロパティに関連付けられた第１のデータタイプが前記パラメータに関連付けられた第２のデータタイプと適合しているか否かを試験することを更に含む、請求項１に記載の方法。
【請求項３】
前記グラフィック表示要素を前記第１のグラフィカルユーザインタフェースのユーザに表示するために満足しなければならない少なくとも１つの条件を受信することを更に含む、請求項１に記載の方法。
【請求項４】
変数と前記グラフィック表示要素の属性とのマッピングを受信することを更に含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つの構成可能アプリケーションは、実行フローグラフを備える、請求項１に記載の方法。
【請求項６】
前記第２のグラフィカルユーザインタフェースの第３の部分に、ユーザに、パラメータリファレンス又はバリアブルリファレンスの検索を可能とする検索インタフェースを表示することと、
前記検索インタフェースを通じて、インプット検索ストリングを受信することと、
前記インプット検索ストリングに基づいて、前記少なくとも１つの構成可能アプリケーション及び／又は１つ以上の変数に関連する１つ以上のパラメータの参照を含む検索結果を生成することと、
前記検索インタフェースに前記検索結果を表示することと、
を含む、請求項１に記載の方法。
【請求項７】
前記検索結果に関連しない前記第２のグラフィカルユーザインタフェースの少なくとも一つの要素を暗くするか又はぼかすことを更に含む、請求項６に記載の方法。
【請求項８】
前記検索結果に関連する前記第２のグラフィカルユーザインタフェースの少なくとも一つの要素を強調することを更に含む、請求項６に記載の方法。
【請求項９】
前記第２のグラフィカルユーザインタフェースの第３の部分に、エラーを表示するためのエラーインタフェースを表示することと、
前記グラフィック表示要素のプロパティに関連する第１のデータタイプが第２のデータタイプ及び前記パラメータのセットのパラメータに適合しないという決定に応答して、前記エラーインタフェースにタイプミスマッチエラーのインディケーションを表示することと、
を更に含む請求項１に記載の方法。
【請求項１０】
前記少なくとも１つの構成可能アプリケーションは、データフローグラフを備え、
前記方法は、前記データフローグラフに関連するそれぞれのパラメータの最終パラメータ値を決定することと、
前記最終パラメータ値を用いて前記データフローグラフを実行することと、
を更に含む請求項１に記載の方法。
【請求項１１】
前記少なくとも１つの構成可能アプリケーションに関連する１つ以上のパラメータのセットは、ソーティングコンポーネントがデータをどのようにソートするのかを特定するパラメータ、ディスク上のデータソース又はデータシンクの位置を特定するパラメータ、記憶フォーマットを特定するパラメータ、ロールアップコンポーネントがどのように動作するのかを特定するパラメータ、及びファイルネームを特定するパラメータのグループから選択される少なくとも１つのパラメータを備える、請求項１に記載の方法。
【請求項１２】
前記ユーザのドラッグ・アンド・ドロップ入力は、前記第１のグラフィカルユーザインタフェースを表現する前記第１の部分内に前記グラフィック表示要素を置く位置を特定することにより、前記グラフィック表示要素をどこに置くのかを示す、請求項１に記載の方法。
【請求項１３】
少なくとも一つのプロセッサによって実行されたときに、前記少なくとも一つのプロセッサに、コンピュータ実行可能アプリケーションを構成するための第１のグラフィカルユーザインタフェースを規定するための方法を実行させる命令を記憶する少なくとも一つの非一過性のコンピュータ読み取り可能な記録媒体であって、
前記方法は、
少なくとも１つの構成可能アプリケーションの識別を受信することと、
前記少なくとも１つの構成可能アプリケーションに関連付けられた一つ以上のパラメータのセットを識別することと、
前記第１のグラフィカルユーザインタフェースを表現する第１の部分及び複数のグラフィック表示要素を表現する第２の部分の両方を表示する第２のグラフィカルユーザインタフェースを通じて、前記第２のグラフィカルユーザインタフェースに関するユーザのドラッグ・アンド・ドロップ入力を受信することであって、前記ユーザのドラッグ・アンド・ドロップ入力は、前記複数のグラフィック表示要素のグラフィック表示要素の選択、及び前記グラフィック表示要素を、前記第１のグラフィカルユーザインタフェースを表現する前記第１の部分内に置く位置を示す、ことと、
前記第１のグラフィカルユーザインタフェースを表現する前記第２のグラフィカルユーザインタフェースの前記第１の部分に前記グラフィック表示要素を前記位置に表示することであって、前記位置は、前記グラフィック表示要素を、前記第１のグラフィカルユーザインタフェースを表現する前記第１の部分内に置く位置である、ことと、
前記第２のグラフィカルユーザインタフェースに、前記パラメータのセットの１つ以上の表現を表示することと、
前記グラフィック表示要素の１つのプロパティと前記パラメータのセットの１つのパラメータとのマッピングを、前記第２のグラフィカルユーザインタフェースを通じて受信することと、
前記マッピングの表現と、前記第１のグラフィカルユーザインタフェース内に前記グラフィック表示要素を置く位置とを記憶することと、
を含む、少なくとも一つの非一過性のコンピュータ読み取り可能な記録媒体。
【請求項１４】
前記少なくとも一つのプロセッサは、前記プロパティに関連付けられた第１のデータタイプが前記パラメータに関連付けられた第２のデータタイプと適合しているか否かを試験することを実行するように構成されている、請求項１３に記載の少なくとも一つの非一過性のコンピュータ読み取り可能な記録媒体。
【請求項１５】
前記方法が、前記グラフィック表示要素を前記第１のグラフィカルユーザインタフェースのユーザに表示するために満足しなければならない少なくとも１つの条件を受信することを更に含む、請求項１３に記載の少なくとも一つの非一過性のコンピュータ読み取り可能な記録媒体。
【請求項１６】
前記方法が、変数と前記グラフィック表示要素の属性とのマッピングを受信することを更に含む、請求項１３に記載の少なくとも一つの非一過性のコンピュータ読み取り可能な記録媒体。
【請求項１７】
コンピュータ実行可能アプリケーションを構成するための第１のグラフィカルユーザインタフェースを規定するためのシステムであって、
少なくとも一つのプロセッサを含み、
前記一つのプロセッサは、
少なくとも１つの構成可能アプリケーションの識別を受信することと、
前記少なくとも１つの構成可能アプリケーションに関連付けられた一つ以上のパラメータのセットを識別することと、
前記第１のグラフィカルユーザインタフェースを表現する第１の部分及び複数のグラフィック表示要素を表現する第２の部分の両方を表示する第２のグラフィカルユーザインタフェースを通じて、前記第２のグラフィカルユーザインタフェースに関するユーザのドラッグ・アンド・ドロップ入力を受信することであって、前記ユーザのドラッグ・アンド・ドロップ入力は、前記複数のグラフィック表示要素のグラフィック表示要素の選択、及び前記グラフィック表示要素を、前記第１のグラフィカルユーザインタフェースを表現する前記第１の部分内に置く位置を示す、ことと、
前記第１のグラフィカルユーザインタフェースを表現する前記第２のグラフィカルユーザインタフェースの前記第１の部分に前記グラフィック表示要素を前記位置に表示することであって、前記位置は、前記グラフィック表示要素を、前記第１のグラフィカルユーザインタフェースを表現する前記第１の部分内に置く位置である、ことと、
前記第２のグラフィカルユーザインタフェースに、前記パラメータのセットの１つ以上の表現を表示することと、
前記グラフィック表示要素の１つのプロパティと前記パラメータのセットの１つのパラメータとのマッピングを、前記第２のグラフィカルユーザインタフェースを通じて受信することと、
前記マッピングの表現と、前記第１のグラフィカルユーザインタフェース内に前記グラフィック表示要素を置く位置とを記憶することと、
を実行するように構成されている、システム。
【請求項１８】
前記少なくとも一つのプロセッサは、前記プロパティに関連付けられた第１のデータタイプが前記パラメータに関連付けられた第２のデータタイプと適合しているか否かを試験することを実行するように構成されている、請求項１７に記載のシステム。
【請求項１９】
前記少なくとも一つのプロセッサは、前記グラフィック表示要素を前記第１のグラフィカルユーザインタフェースのユーザに表示するために満足しなければならない少なくとも１つの条件を受信することを実行するように構成されている、請求項１７に記載のシステム。
【請求項２０】
前記少なくとも一つのプロセッサは、変数と前記グラフィック表示要素の属性とのマッピングを受信することを実行するように構成されている、請求項１７に記載のシステム。
【請求項２１】
前記少なくとも一つのプロセッサは、
前記第２のグラフィカルユーザインタフェースの第３の部分に、ユーザに、パラメータリファレンス又はバリアブルリファレンスの検索を可能とする検索インタフェースを表示することと、
前記検索インタフェースを通じて、インプット検索ストリングを受信することと、
前記インプット検索ストリングに基づいて、前記少なくとも１つの構成可能アプリケーション及び／又は１つ以上の変数に関連する１つ以上のパラメータの参照を含む検索結果を生成することと、
前記検索インタフェースに前記検索結果を表示することと、
を実行するように構成されている、請求項１７に記載のシステム。
【請求項２２】
前記少なくとも一つのプロセッサは、
前記第２のグラフィカルユーザインタフェースの第３の部分に、エラーを表示するためのエラーインタフェースを表示することと、
前記グラフィック表示要素のプロパティに関連する第１のデータタイプが第２のデータタイプ及び前記パラメータのセットのパラメータに適合しないという決定に応答して、前記エラーインタフェースにタイプミスマッチエラーのインディケーションを表示することと、
を実行するように構成されている、請求項１７に記載のシステム。
【請求項２３】
前記少なくとも１つの構成可能アプリケーションは、データフローグラフを備え、
前記少なくとも一つのプロセッサは、
前記データフローグラフに関連するそれぞれのパラメータの最終パラメータ値を決定することと、
前記最終パラメータ値を用いて前記データフローグラフを実行することと、
を実行するように構成されている、請求項１７に記載のシステム。
【請求項２４】
前記少なくとも１つの構成可能アプリケーションに関連する１つ以上のパラメータのセットは、ソーティングコンポーネントがデータをどのようにソートするのかを特定するパラメータ、ディスク上のデータソース又はデータシンクの位置を特定するパラメータ、記憶フォーマットを特定するパラメータ、ロールアップコンポーネントがどのように動作するのかを特定するパラメータ、及びファイルネームを特定するパラメータのグループから選択される少なくとも１つのパラメータを備える、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本記載は、プロセスを構成するためのアプリケーション構築に関する。
【背景技術】
【０００２】
多くの場合、複雑な計算（ｃｏｍｐｕｔａｔｉｏｎ）は、有向グラフ（「データフローグラフ」と呼ばれる）を介したデータフローとして表現することができる。計算のコンポーネントはグラフの頂点に関連付けられ、コンポーネント間のデータフローはグラフのリンク（アーク、エッジ）に対応する。コンポーネントには、１つ以上の入力ポートでデータを受信し、データを処理し、１つ以上の出力ポートからデータを供給するデータ処理コンポーネントと、データフローのソース又はシンクとして機能するデータセットコンポーネントと、が含まれ得る。データフローグラフは、パラメータを用いて構成することができる。このようなグラフベースの計算を実施するシステムが、「ＥＸＥＣＵＴＩＮＧ  ＣＯＭＰＵＴＡＴＩＯＮＳ  ＥＸＰＲＥＳＳＥＤ  ＡＳ  ＧＲＡＰＨＳ」と題する米国特許第５，９６６，０７２号に記載されている。
【発明の概要】
【０００３】
１つの態様において、概して、方法は、少なくとも１つの構成可能アプリケーションの識別を受信することを含み、各構成可能アプリケーションが１つ以上のパラメータによって構成可能である。方法は、少なくとも１つの構成可能アプリケーションに関連付けられたパラメータセットを識別することを含む。方法は、第２のユーザインタフェースにグラフィック表示要素を表示することを含み、グラフィック表示要素は複数のプロパティを有すると共に、第１のユーザインタフェースに対する位置に関連付けられている。方法は、第２のユーザインタフェースにパラメータセットの１つ以上のグラフィック表現を表示することを含む。方法は、グラフィック表示要素の１つのプロパティとパラメータセットの１つのパラメータとのマッピングを受信することを含む。また、方法は、マッピング及び位置の表現を記憶することを含む。
【０００４】
この態様の他の実施形態は、この方法のアクションを実行するように構成された、対応するコンピュータシステム、装置、及び１つ以上のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含む。１つ以上のコンピュータのシステムは、動作時にこのシステムに特定のアクションを実行させるソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせをシステムにインストールすることによって、それらのアクションを実行するように構成することができる。１つ以上のコンピュータプログラムは、データ処理装置によって実行された場合にこの装置に特定のアクションを実行させる命令を含むことによって、それらのアクションを実行するように構成することができる。
【０００５】
前述の実施形態及びその他の実施形態は、各々、以下の特徴の１つ以上を任意に単独で又は組み合わせて含むことができる。マッピングは、プロパティの値に適用される少なくとも１つの計算を含むことができる。この方法は、プロパティに関連付けられた第１のデータタイプがパラメータに関連付けられた第２のデータタイプと適合しているか否かを試験することを含むことができる。方法は、グラフィック表示要素を第１のユーザインタフェースのユーザに表示するために満足しなければならない少なくとも１つの条件を受信することを含むことができる。方法は、変数とグラフィック表示要素のプロパティとのマッピングを受信することを含むことができる。方法は、グラフィック表示要素及びパラメータの選択を受信したことに応答して、グラフィック表示要素の所定のプロパティとパラメータとのマッピングを発生することを含むことができる。構成可能アプリケーションは、複数のコンポーネントとこれらのコンポーネントを接続する複数のリンクとを用いてデータフローを処理することができ、方法は、複数のリンクのうち１つのリンクを識別することと、第２のグラフィック表示要素のプロパティとリンクとのマッピングを受信することと、グラフィック表示要素がリンクにおけるデータフローを第１のユーザインタフェースのユーザに表示するようにマッピングを記憶することと、を含むことができる。
【０００６】
態様は、以下の利点の１つ以上を含むことができる。見たままが得られる（ＷＹＳＩＷＹＧ：ｗｈａｔ  ｙｏｕ  ｓｅｅ  ｉｓ  ｗｈａｔ  ｙｏｕ  ｇｅｔ）ビューを提示することで、構成プロセスの理解を向上させることができる。多数のデータフローグラフを中央位置で構成することも可能である。開発者は多数のメタデータソースを用いて作業することができる（例えばグラフ／プラン上のパラメータ、内部／一時記憶装置に用いる変数、外部ファイル、データベース等）。ユーザがデータフローアプリケーションの頂点又はエッジを選択する必要がある等のいくつかの場合（グラフを用いて作業している場合等）、開発者はそのような頂点／エッジを識別するための明示的なグラフィックによるサポートを与える。グラフィカルユーザインタフェースを用いてテンプレートを検索することができる。エラーを識別して強調表示することができる。構成インタフェースの内部記憶の詳細は隠すことができる。ビルダインタフェース（ｂｕｉｌｄｅｒ  ｉｎｔｅｒｆａｃｅ）の開発者は、構成インタフェースのユーザが構成の選択を行う際に役立つ追加情報を示すために１つ以上のデータフローグラフの部分的な実行を命令することを可能とする。
【０００７】
本発明のその他の特徴及び利点は、以下の記載から及び特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【０００８】
【図１】データフローグラフを構成するアプリケーションを構築するための例示的なデータ処理システムを示す。
【図２】一般データフローグラフ（ｇｅｎｅｒｉｃ  ｄａｔａｆｌｏｗ  ｇｒａｐｈ）及び関連するパラメータを示す。
【図３】例示的な構成インタフェースを示す。
【図４】グラフィカルユーザインタフェース制御に焦点を当てて、構成インタフェースを生成するためのビルダインタフェースの一例を示す。
【図５Ａ】パラメータデータに焦点を当てて、構成インタフェースを生成するためのビルダインタフェースの一例を示す。
【図５Ｂ】変数データに焦点を当てて、構成インタフェースを生成するためのビルダインタフェースの一例を示す。
【図５Ｃ】変数の自動割り当ての一例を示す。
【図６】ビルダインタフェースにおける検索機能を示す。
【図７】ビルダインタフェースにおけるエラー処理を示す。
【図８】プロセスを構成するためのアプリケーションを構築するプロセスのフローチャートである。
【発明を実施するための形態】
【０００９】
データフローグラフ及びその他の構成可能アプリケーションは、パラメータのセットに基づいて異なるシナリオのためにカスタム化することができる。構成インタフェースと称されるユーザインタフェースは、データフローグラフのためのパラメータを設定することができる。構成インタフェースによって、非専門家がデータフローグラフを構成することが可能となる。構成インタフェースの生成を容易にするため、ビルダインタフェースと称されるユーザインタフェースが、一般データフローグラフに関連付けられたパラメータを識別し、それらのパラメータにグラフィカルユーザインタフェース（ＧＵＩ）制御をマッピングすることで、開発者による構成インタフェースの生成を可能とする。
【００１０】
図１は、データフローグラフを構成するアプリケーションを構築するための例示的なデータ処理システム１００を示す。システム１００に含まれるデータソース１０２は、記憶デバイス又はオンラインデータストリームに対する接続のような１つ以上のデータソースを含むことができ、それらの各々が多種多様な記憶フォーマットのいずれかで（例えばデータベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームにより用いられるネイティブフォーマット）データを記憶することができる。実行環境１０４は、グラフ構成モジュール１０６及びユーザインタフェースモジュール１１２を含む。実行環境１０４は、ＵＮＩＸオペレーティングシステム等の適切なオペレーティングシステムの制御のもとで、１つ以上の汎用コンピュータをホストとして動作することができる。例えば実行環境１０４は、多数の中央処理ユニット（ＣＰＵ）を用いた複数のコンピュータシステムの構成を含む多ノード並列コンピューティング環境を含むことができ、これらは、ローカルである（例えばＳＭＰコンピュータ等のマルチプロセッサシステム）か、又はローカルに分散されている（例えばクラスタ又はＭＰＰとして結合された多数のプロセッサ）か、又はリモートであるか、又はリモートに分散されている（例えばローカルエリアネットワーク（ＬＡＮ）及び／又はワイドエリアネットワーク（ＷＡＮ）を介して結合された多数のプロセッサ）か、又はそれらのいずれかの組み合わせであり得る。
【００１１】
グラフ構成モジュール１０６は、データフローグラフの構成を変更する。これについては以下で詳述する。ユーザインタフェースモジュール１１２は、構成情報をユーザ１２０に表示し、構成アクションをユーザ１２０から受信する。また、ユーザインタフェースモジュール１１２はグラフ構成モジュール１０６と通信を行い、モジュール１０６はユーザ１２０のアクションに基づいてデータフローグラフを構成する。例えばデータフローグラフはデータソース１０２に記憶することができる。データソース１０２を提供する記憶デバイスは、例えば実行環境１０４を動作させるコンピュータに接続された記憶媒体（例えばハードドライブ１０８）上に記憶することで、実行環境１０４に対してローカルとすることができ、又は、例えば実行環境１０４を動作させるコンピュータとローカルエリア又はワイドエリアデータネットワークを介して通信するリモートシステム（例えばメインフレーム１１０）をホストとして動作することで、実行環境１０４に対してリモートとすることができる。
【００１２】
実行環境１０４はデータ記憶システム１１６と通信状態にある。データ記憶システム１１６は、ユーザインタフェースモジュール１１２がユーザインタフェースを表示するために用いる情報を含んでいる。また、データ記憶システム１１６は、開発者１２０がユーザインタフェースを開発することができる開発環境１１８にアクセス可能である。それらのユーザインタフェースはデータ記憶システム１１６に記憶され、ユーザインタフェースモジュール１１２によってユーザインタフェースを表示するために用いられる。
【００１３】
データソース１０２は、いくつかの実施において、データフローグラフとしてアプリケーションを開発するためのシステムである。データフローグラフは、頂点（コンポーネント又はデータセット）を含み、頂点は、それらの間の有向リンク（ワーク要素のフローを表す）によって接続されている。例えばそのような環境は、「ＭＡＮＡＧＩＮＧ  ＰＡＲＡＭＥＴＥＲＳ  ＦＯＲ  ＧＲＡＰＨ−ＢＡＳＥＤ  ＡＰＰＬＩＣＡＴＩＯＮＳ」と題する米国公報第２００７／００１１６６８号に、より詳細に記載されている。この出願は引用により本願にも含まれるものとする。
【００１４】
データフローグラフは、１つ以上のデータソースからのデータを処理するデータフローグラフ実行環境内で実行されるコンピュータプログラムと見なすことができる。データソースからのデータは、データフローグラフに従って操作及び処理され、１つ以上のデータシンクにエクスポートされる。データソース及びデータシンクは、例えばファイル、データベース、データストリーム、又はキューを含むことができる。データフローグラフは、データ処理コンポーネントを表すノードを含んだ有向グラフとして表される。それらのコンポーネントの各々は、少なくとも１つのデータ入力からのデータを処理してデータを少なくとも１つのデータ出力に提供するためのコードを含み、ノードは、データソース及び／又はデータシンクにアクセスするためのデータセットオブジェクトを表す。ノードは、コンポーネント間のデータフローを表す有向リンクによって接続され、これらはデータソースから発してデータシンクで終端する。上流コンポーネントのデータ出力ポートは、下流コンポーネントのデータ入力ポートに接続されている。データフローグラフは、データセットオブジェクトによって表される異なるデータソース及び異なるデータシンクのために再使用され得る。データフローグラフを実施するために用いられるデータ構造及びプログラムコードは、例えば異なるソース及びシンクを容易に置換できるようにパラメータ化することで、多数の異なる構成をサポートすることができる。更に、いくつかの機構では、パラメータの使用によりデータフローグラフのフローを変更して、１つのコンポーネント又は一連のコンポーネントをバイパスすることも可能である。一般に、１つのパラメータは、構成又は変更することができるデータフローグラフのプロパティを表す。プロパティの一例として「入力ファイル」が挙げられる。入力ファイルの値は、データフローグラフのデータソースとして機能するデータファイルを識別する。プロパティは、データフローグラフの使用と使用との間に変更することができ、データフローグラフは、この変更の結果として異なる方法で動作を実行し得る。
【００１５】
例えば図２を参照すると、データフローグラフ２０２は、データソース２０６ａ、２０６ｂ、コンポーネント２０８ａ〜２０８ｃ、２１０、及びデータシンク２１２を含むことができる。ソース、コンポーネント、及びシンクの各々に、パラメータセット２０４ａ〜２０４ｇを関連付けることができる。１つのソース、コンポーネント、又はシンクのパラメータを用いて、異なるソース、コンポーネント、又はシンクのパラメータを評価することができる。この例では、ソース２０６ａ、２０６ｂはコンポーネント２０８ａ、２０８ｃの入力ポートに接続されている。コンポーネント２０８ａの出力ポートはコンポーネント２０８ｂの入力ポートに接続され、コンポーネント２１０の出力ポートはデータシンク２１２の入力ポートに接続されている。ソース、コンポーネント、及びシンク間の接続が、データフローを定義する。
【００１６】
データソース、コンポーネント、又はシンクのいくつかは、グラフの挙動の一部を定義し得る入力パラメータ２０４ａ〜２０４ｇを有することがある。例えば、１つのパラメータが物理ディスク上のデータソース又はデータシンクの位置を定義する場合がある。また、１つのパラメータがコンポーネントの挙動を定義することがある。例えば１つのパラメータが、どのようにソーティング（ｓｏｒｔｉｎｇ）コンポーネントが入力をソートするかを定義し得る。いくつかの機構において、１つのパラメータの値は別のパラメータの値に依存することがある。例えば、ソース２０６ａは特定のディレクトリ内のファイルに記憶されている場合がある。パラメータセット２０４ａは、「ディレクトリ」と称するパラメータ及び「ファイル名」と称する別のパラメータを含むことができる。この場合、ファイル名パラメータはディレクトリパラメータに依存する（例えばディレクトリは「／ｕｓｒ／ｌｏｃａｌ／」であり、ファイル名は「／ｕｓｒ／ｌｏｃａｌ／ｉｎｐｕｔ．ｄａｔ」であり得る）。また、パラメータは、他のコンポーネントのためのパラメータに依存する場合がある。例えば、シンク２１２の物理的な位置はソース２０６ａの物理的な位置に依存し得る。この例では、シンク２１２が含むパラメータセット２０４ｇは、ソース２０６ａのディレクトリパラメータに依存するファイル名パラメータを含む。（例えば、セット２０４ｇのファイル名パラメータは「／ｕｓｒ／ｌｏｃａｌ／ｏｕｔｐｕｔ．ｄａｔ」であり得る。「／ｕｓｒ／ｌｏｃａｌ／」の値はセット２０４ａのディレクトリパラメータから取得される。）
【００１７】
いくつかの実施では、パラメータセット２０４ａ〜２０４ｇを結合して、例えばパラメータセット２１４のようにデータフローグラフ全体のためのパラメータを含む単一のパラメータセットとすることも可能である。このパラメータセットは、例えば図１の開発環境１１８のような開発環境で使用するため、公表するか又は他の方法で使用可能とすることができる。公表されたパラメータセットは、データフローグラフのアプリケーションプログラミングインタフェース（ＡＰＩ）の一部と見なすことができる。
【００１８】
クライアントデバイス上の構成インタフェース内で、パラメータセット２０４ａ〜２０４ｇ又はパラメータセット２１４のパラメータを再編成して、ユーザとの相互作用のために異なるグループに組み換え、技術的な検討要素でなくビジネス上の検討要素を反映させることができる。ユーザ入力に基づくパラメータの値を受信するための構成インタフェースは、サーバ上の開発環境の態様により必ずしも制約されない柔軟な方法で、パラメータ間の関係に従って異なるパラメータを表示することができる。
【００１９】
場合によっては、データフローグラフの構築は事実上、高度に専門的であり得る。グラフは特定のビジネス上の目標を達成するために書かれるが、その基礎にある構造及び構築は技術的な検討要素に基づいて決定される。例えばグラフコンポーネントの選択は、再利用性を最大限にするように、又は並列処理をサポートするように行うことができる。その一方で、グラフをいつ、どのように用いるかは、主としてビジネス上の決定事項であり得る。パラメータ化データフローグラフに関連付けたパラメータのいくつかを用いることで、ビジネスユーザが、実施の背後にある技術的な複雑さを理解する必要なく、データフローグラフをカスタム化することができる。パラメータ化データフローグラフによって、カスタム化が簡単になり、再利用が容易となる。データフローグラフを構築するためのパラメータ値を識別する構成インタフェースを、クライアントマシンに提示することができる。例えばそのような環境は、「ＳＰＥＣＩＦＹＩＮＧ  ＵＳＥＲ  ＩＮＴＥＲＦＡＣＥ  ＥＬＥＭＥＮＴＳ」と題する米国公報第２０１１／０１４５７４８号に、より詳細に記載されている。この出願は引用により本願にも含まれるものとする。
【００２０】
構成インタフェースは、実行フローグラフを構成するためにも使用可能である。実行フローグラフは、外部プロセスを実行する順序を記述した有向グラフである。例えば実行フローグラフは、データフローグラフのシーケンスを実行する順序を指定することができる。
【００２１】
場合によっては、データフローグラフを構築するためのパラメータ値を識別する構成インタフェースの開発も事実上、高度に専門的であり得る。上述のように、基礎にあるグラフは技術的な検討要素に基づいて構築されることが多いが、構成インタフェースはたいていビジネス上の検討要素に基づいて開発される。このため、構成インタフェースは１つ以上のデータフローグラフにパラメータを提供する場合がある。各データフローグラフは、ＡＰＩによって提供される別個のパラメータセットを有する。更に、構成インタフェースの開発には、基礎にあるデータフローグラフの開発からの異なるスキルが含まれる。従って、構成インタフェースの開発には、技術、ビジネス、及び有用性についての検討要素を組み合わせることが必要とされる。
【００２２】
構成インタフェースの生成を容易にするため、ビルダインタフェースをクライアントマシンのユーザに提示することができる。ビルダインタフェースは開発環境１１８の一部であり得る。
【００２３】
図３は例示的な構成インタフェースを示す。この例において、インタフェース３００に示す２つのデータフローグラフ３０２、３０６は構成インタフェース３２０に関連付けられている。データフローグラフ３０２はパラメータ３０４を用いて構成することができる。同様に、データフローグラフ３０６はパラメータ３０８、３１０、３１２を用いて構成することができる。
【００２４】
例えばデータフローグラフにより処理されるデータのビジネス知識を有するユーザ等のユーザは、構成インタフェース３２０によってパラメータに値を割り当てることができ、これにより単一の構成インタフェースを用いて双方のデータフローグラフを構成することが可能となる。この例では、構成インタフェース３２０はパラメータ１フィールド３２２を含む。パラメータ１フィールドは、インタフェース３００に表示されたパラメータ３１２に値を割り当てるために用いられる。同様に、パラメータ２フィールド３２４は、パラメータ３１０に値を割り当てるために用いられる。パラメータ３フィールドは、パラメータ３０４に値を割り当てるために用いられる。パラメータ４フィールド３２８は、パラメータ３０８に値を割り当てるために用いられる。
【００２５】
パラメータフィールドは、入力するデータのタイプに基づいて選択することができる。例えばパラメータ１フィールド３２２は、ユーザがいかなる値でも（例えば整数、浮動小数点値等）入力することができるテキストボックスである。パラメータ２フィールド３２４は、ユーザがリストから値を選択することを可能とするリストボックスである。パラメータ３フィールド３２６は、ユーザが少数のオプション（この例では２つのオプション値）から値を選択することを可能とするラジオボタンボックスである。パラメータ４フィールド３２８は、ユーザが大量のテキストを入力することを可能とする大きいテキストボックスである。
【００２６】
他のＧＵＩ制御も選択可能である。例えばユーザは、ファイルセレクタを開いて特定の入力ファイルを選択したり、又はネットワークを介してファイルをダウンロードする位置を選択したりすることができる。
【００２７】
図４は、ＧＵＩ制御に焦点を当てて、構成インタフェースを生成するためのビルダインタフェース４００の一例を示す。ビルダインタフェース４００はテンプレート名４０２を含む。テンプレート名４０２は、生成されている構成インタフェースを識別する。ビルダインタフェース４００のユーザインタフェースタブ４０４は表示領域４３０を含む。表示領域は、構成インタフェースを構築するための「見たままが得られる」（ＷＹＳＩＷＹＧ）インタフェースを提示する。表示領域４３０は、開発者がＧＵＩ制御を配置するキャンバスと考えればよい。開発者は、コンポーネントセクション４２２からＧＵＩ制御を選択し、それを表示領域４３０に追加して構成インタフェースを生成することができる。この例では、表示領域４３０はボックス制御４０６を含み、これは、ソースファイルに対応するテキスト入力制御４１０と、ターゲットファイルに対応するテキスト入力制御４１２とを含む。表示領域４３０は、ファイルセレクタ制御４１８を含むボックス制御４１４も含む。表示領域は、仕切り４１６等の仕切りを用いて、ＧＵＩを複数のセクションに分割することができる。
【００２８】
コンポーネントセクション４２２は、表示領域４２０に追加することができる様々な制御を含む。利用可能なＧＵＩ制御には、ユーザ入力を受け入れてパラメータに値を割り当てる入力制御が含まれる。利用可能なＧＵＩ制御には、１つ以上の制御をグループ化する視覚輪郭線を生成するボックス等のグループ化制御も含まれる。また、開発者は、フィールド間の依存性を開発者が生成することを可能とするルールに基づいた制御も選択することができる。例えばビジネスルール制御によって、開発者は、ビジネスルール制御の出力と一般アプリケーションの構成に用いられるパラメータとのマッピングを提供するパラメータを構成することができる。また、開発者は、構成インタフェースのユーザがグラフにより生成されたデータを見ることを可能とするデータに基づいた制御も選択することができる。例えば図２を参照すると、リンク２１６は、コンポーネント２０８ｂからコンポーネント２１０へのデータフローに関連付けられている。再び図４を参照すると、リンク２１６を、ビルダインタフェース４００に提示し、データ閲覧制御（図示せず）に結合することができる。データ閲覧制御によって、構成インタフェースのユーザはリンク２１６のデータを見ることができる。このため構成インタフェースのユーザは、パラメータ変更の影響を迅速に確認することができる。
【００２９】
各制御は１つ以上の属性を有することができる。これらの属性は制御属性領域４２６に表示すればよい。この例では、制御属性領域４２６はテキスト入力制御４１０の属性を表示している。制御属性領域４２６によってユーザは、制御のプロパティ値のいずれかにパラメータ値を割り当てることができる。例えば、選択値のプロパティ４２８は、ＳＯＵＲＣＥ＿ＵＲＬパラメータ４３０の値を与える。
【００３０】
また、開発者は、構成インタフェースの他のグラフィック特性を決定するルールを確立することができる。例えば開発者は、既定の基準セットが満足されない限り特定のＧＵＩ制御を非表示に指定することができる。例えば、ソースファイル制御４１０がポピュレートされない限り、ターゲットファイル制御４１２は非表示とすることができる。
【００３１】
図５Ａは、メタデータに焦点を当てて、構成インタフェースを生成するためのビルダインタフェース４００の一例を示す。メタデータセクション５０２は例えば、構成インタフェースが用いる変数、グラフ又はプランのパラメータ、及びデータフローグラフのコンポーネント間のデータフローを記述するリンクのリストを含むことができる。メタデータ表示領域５０４は、例えばルールに基づいた制御によって中間値を計算するために使用可能な変数リスト５０８を含む。メタデータ表示領域５０４は、基礎にある一般グラフに関連付けられたパラメータリスト５０６も含む。この例では、開発者が構成インタフェースに含ませる一般グラフを選択すると、パラメータリスト５０６にその一般グラフのパラメータがポピュレートされる。この例では、パラメータリスト５０６は、ＭＡＰＰＩＮＧ＿ＸＦＲ、ＳＯＵＲＣＥ＿ＤＭＬ、ＳＯＵＲＣＥ＿ＦＩＬＴＥＲ、ＳＯＵＲＣＥ＿ＵＲＬ、ＴＡＲＧＥＴ＿ＤＢＣ＿ＦＩＬＥ、ＴＡＲＧＥＴ＿ＤＭＬ、ＴＡＲＧＥＴ＿ＦＩＬＴＥＲ、ＴＡＲＧＥＴ＿ＲＰＡＴＨ、及びＴＡＲＧＥＴ＿ＴＡＢＬＥパラメータを含む。
【００３２】
開発者は、例えばパラメータを選択し、制御属性領域４２６に表示されたＧＵＩ制御内にパラメータをドラッグすることによって、ＧＵＩ制御のプロパティをパラメータに関連付けることができる。いくつかの実施では、パラメータを選択し、表示領域４３０に表示されたＧＵＩ制御上にパラメータをドラッグすることによって、ＧＵＩ制御のデフォルトプロパティをパラメータに関連付けることができる。
【００３３】
いくつかの実施では、ＧＵＩ制御のプロパティをパラメータと比較して、プロパティ及びパラメータが適合していることを検証することができる。例えばビルダインタフェースは、ＧＵＩ制御のプロパティがパラメータと同一のデータタイプのものであるかチェックすることができる。ビルダインタフェースは、適合しないデータタイプの割り当てを警告するか又は防止することができる。例えばビルダインタフェースは、開発者が日付フィールドをファイルダウンロード制御に関連付けるのを防止することができる。
【００３４】
パラメータを計算値に関連付けることも可能である。計算値は、ＧＵＩ制御のプロパティ又は他の値に基づいて決定すればよい。
【００３５】
上述のようにメタデータ表示領域２０４は、データフローグラフのコンポーネント間のデータフローを表すリンクも含むことができる。また、ビルダインタフェース４００は、異なるソースからのメタデータをサポートすることも可能である。例えばメタデータは、データベース、外部ファイル等に対する論理参照を含み得る。また、メタデータは一時変数を含むこともある。一時変数は、パラメータが用いられるのと同じ方法で、ＵＩオブジェクトプロパティに対する同じ種類のマッピングによって使用可能である。
【００３６】
図５Ｂは、変数データに焦点を当てて、構成インタフェースを生成するためのビルダインタフェース４００の一例を示す。上述のように、メタデータセクション５０２は変数リスト５０８を含むことができる。この例では変数リストは、ＳＯＵＲＣＥ＿ＶＡＬＩＤ変数５０２、ＳＯＵＲＣＥ＿ＡＮＤ＿ＴＡＲＧＥＴ＿ＶＡＬＩＤ変数、ＭＡＰＰＩＮＧ＿ＲＵＬＥＳＥＴ変数、及びＴＡＲＧＥＴ変数を含む。
【００３７】
開発者は、ＧＵＩ制御の属性を変数に関連付けることができる。この例では、テキスト入力制御４１２のイネーブル属性５２２は、イネーブル属性がＳＯＵＲＣＥ＿ＶＡＬＩＤ変数５２０に関連付けられていることを示している（５２４）。この例では、ＳＯＵＲＣＥ＿ＶＡＬＩＤ変数が「真」にセットされるまで、テキスト入力制御４１２は非表示である。
【００３８】
変数の値は自動割り当てを用いて確立することができる。図５Ｃは変数の自動割り当ての一例を示す。ビルダインタフェース４００は、開発者が変数に動的な値を割り当てることを可能とする宣言セクション５５０を含む。ユーザインタフェースは、新しい動的割り当てを追加する追加５５４、既存の動的割り当てを変更する編集５５６、及び既存の動的割り当てを削除する削除５５８等の動作５５２に対するアクセスを与える。
【００３９】
動的割り当ては、動的割り当て表示領域５６０に表示することができる。例えば、コマンド値「ｎｏｔ  ｉｓ＿ｂｌａｎｋ（ｐｒｏｊ．ｓｉｍｐｌｅ＿ｌｏａｄ．ＳＯＵＲＣＥ＿ＵＲＬ」を、ｓｏｕｒｃｅ＿ｖａｌｉｄ変数のプロパティ値５６４に割り当てる。
【００４０】
図６は、ビルダインタフェース４００における検索機能を示す。構成インタフェースは、パラメータ及びメタデータプロパティにユーザインタフェース制御を結合するためのルールを定義する複雑なスキームである。パラメータ及び変数に対する参照の位置を探し出すことが難しい場合がある。例えば開発者は、ＳＯＵＲＣＥ＿ＵＲＬパラメータが参照される全ての場所を見つけたい場合がある。参照点は、様々な位置に存在する可能性がある（例えば自動割り当ての一部、ＧＵＩ制御ビジブル（Ｖｉｓｉｂｌｅ）プロパティ上の表現内、ファイルブラウザ制御のソースターゲット値プロパティ等）。
【００４１】
開発者は、ビルダインタフェース４００の検索タブ６００で検索フィールド６０２に検索語を入力すればよい。検索結果が識別され、検索結果領域６０６に提示される。この例では、開発者は「ＳＯＵＲＣＥ＿ＵＲＬ」を検索し、２つの検索結果６０８、６１２が開発者に提示されている。いくつかの実施では、グリッド内の１つの検索結果をダブルクリックすると、ユーザは自動的にその検索結果に関連付けられた構成テンプレートの特定位置に移動する。
【００４２】
いくつかの実施においては、他の視覚インジケータを用いて、検索結果に関連付けられたコンポーネントを識別することができる。例えば、検索結果に関連付けられていないビルダインタフェースのセクションを暗くするか又はぼかすことができる。アイコンを用いて、検索結果をどこに位置付けるかについての指示を与えてもよい。
【００４３】
図７は、ビルダインタフェースにおけるエラー処理を示す。エラーを識別して開発者に表示することができる。この例において、ＧＵＩウィンドウ７００は、パラメータに値を割り当てる式を含む。ここでは、フィールド７０８に関連付けられたＴＡＲＧＥＴ＿ＴＡＢＬＥパラメータを、ＴＡＲＧＥＴ＿ＵＲＬストリングのサブストリングに割り当てる。
【００４４】
エラータブ７０２は、いかなるエラー７０４も開発者に提示することができる。例えばエラータブ７０２は、計算された式におけるシンタックスエラー及びタイプミスマッチエラーを識別することができる。
【００４５】
いくつかの実施では、エラータブ７０２上で例えばエラー７０４等のエラーを選択すると、エラーが発生したアプリケーションのセクションを強調表示することができる。この例では、エラー７０４を選択するとＧＵＩウィンドウ７００が開く。他の実施では、エラー７０４を選択するとビルダインタフェースはフィールド７０８及び／又はボックス制御４０６を強調表示することができる。
【００４６】
エラーの位置は、検索結果について述べた方法で識別することができる。例えば、エラーに関連付けられたコンポーネントを強調表示することができ、又はエラーに関連付けられていないコンポーネントを暗くすることができる。例えばダブルクリックを用いてエラーを選択すると、ビルドインタフェースはエラーのソースを表示することができる。
【００４７】
いったんビルダインタフェースにおいて構成インタフェースを定義したら、構成インタフェースを記憶し、一般グラフを構成するために用いることができる。構成インタフェースは例えば、別のアプリケーションにおいて読み取ってレンダリングすることができる拡張マークアップ言語（ＸＭＬ）ファイルに記憶すればよい。
【００４８】
図８は、プロセスを構成するためのアプリケーションを構築するプロセス８００のフローチャートである。プロセスは、図１の開発環境１１８の一部とすることができるコンピュータシステムによって実行可能である。便宜上、プロセスを実行するシステムに関連付けてプロセスを説明する。
【００４９】
少なくとも１つの構成可能アプリケーションの選択を受信する（８０２）。各構成可能アプリケーションは、１つ以上のパラメータによって構成することができる。構成可能アプリケーションは、例えばデータフローグラフとすればよい。例えば開発者は、ビルダインタフェース内から構成可能アプリケーションを選択することができる。
【００５０】
少なくとも１つの構成可能アプリケーションに関連付けられたパラメータセットを識別する（８０４）。パラメータは、構成可能アプリケーションに関連付けられた公開アプリケーションプログラミングインタフェースの一部として提供することができる。また、パラメータはデータファイルにおいて提供することも可能である。
【００５１】
グラフィック表示要素及びパラメータセットの１つ以上のグラフィック表現をユーザインタフェースに提示する（８０６）。グラフィック表示要素は、例えばテキストボックス、ラジオボックス、又はリストボックス等のＧＵＩ制御を含むことができる。グラフィック表示要素は、ファイルダウンロード制御等のカスタム化制御も含むことができる。グラフィック表示要素は、構成インタフェース上の位置に関連付けられている。
【００５２】
パラメータセットの１つのパラメータに対する１つのグラフィック表示要素のプロパティのマッピングを受信する（８０８）。マッピングは、ビルダインタフェースを用いた開発者のアクションに基づいて決定することができる。１つの実施において、パラメータはビルダインタフェースのある領域に表示され、ＧＵＩ制御はビルダインタフェースの別の領域に表示され得る。開発者は、ＧＵＩ制御を選択し、この制御をビルダインタフェースの表示領域又はキャンバス内に配置することができる。次いで開発者は、このＧＵＩ制御のプロパティに関連付けられるパラメータを識別することができる。例えば開発者は、パラメータを選択し、ＧＵＩ制御上に又はＧＵＩ制御のプロパティ上にパラメータを配置することができる。
【００５３】
マッピング及び位置の表現を記憶する（８１０）。この表現は、例えばＸＭＬファイルで記憶すればよい。
【００５４】
上述のアプリケーション構築手法は、コンピュータ上で実行するソフトウェアを用いて実施可能である。例えばこのソフトウェアは、１つ以上のプログラムされたか又はプログラム可能なコンピュータシステム（これは、分散型、クライアント／サーバ、又はグリッド等の様々なアーキテクチャのものであり得る）上で実行する１つ以上のコンピュータプログラムにおける手順を含むことができる。これらのコンピュータシステムの各々は、少なくとも１つのプロセッサ、少なくとも１つのデータ記憶システム（揮発性及び／又は不揮発性のメモリ及び／又は記憶要素を含む）、少なくとも１つのユーザインタフェース（少なくとも１つの入力デバイス又はポートを用いて入力を受信するため、及び少なくとも１つの出力デバイス又はポートを用いて出力を与えるため）を含む。ソフトウェアは、例えばデータフローグラフの設計、構成、及び実行に関連した他のサービスを提供するもっと大きいプログラムの１つ以上のモジュールを含むことも可能である。プログラムのモジュール（例えばデータフローグラフの要素）は、データリポジトリに記憶されたデータモデルに従ったデータ構造又は他の組織化されたデータとして、実施することができる。
【００５５】
ソフトウェアは、（例えば汎用もしくは特殊用途のコンピューティングシステム又はデバイスにより読み取り可能な）ＣＤ−ＲＯＭ又は他のコンピュータ読み取り可能媒体等の有形の非一時的な媒体上に提供するか、又は実行時にネットワークの通信媒体を介してコンピューティングシステムの有形の非一時的な媒体に（例えば伝搬信号で符号化して）送出することができる。処理の一部又は全ては、特殊用途コンピュータ上で、又はコプロセッサもしくはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは専用の特定用途向け集積回路（ＡＳＩＣ）等の特殊用途ハードウェアを用いて、実行可能である。処理は、このソフトウェアにより規定される計算の異なる部分が異なるコンピューティング要素によって実行される分散型で実施することができる。そのようなコンピュータプログラムは各々、汎用又は特殊用途プログラム可能コンピュータによってアクセス可能な記憶デバイスのコンピュータ読み取り可能記憶媒体（例えば固体メモリもしくは媒体、又は磁気もしくは光媒体）上に記憶するか、又はそれにダウンロードすることが好ましい。これにより、本明細書に記載した処理を実行するためにこの記憶デバイス媒体がコンピュータによって読み取られた場合、コンピュータを構成し動作させる。また、本発明のシステムは、コンピュータプログラムによって構成された有形の非一時的な媒体として実施されると見なすことができ、そのように構成された媒体によって、コンピュータは、本明細書に記載した処理ステップの１つ以上を実行するために特定かつ既定の方法で動作する。
【００５６】
本発明の多数の実施形態について記載した。しかしながら、前述の記載は例示を意図し、添付の特許請求の範囲の範囲により規定される本発明の範囲を限定することは意図していないことは理解されよう。従って、他の実施形態も以下の特許請求項の範囲内である。例えば、本発明の精神及び範囲から逸脱することなく様々な変形を行い得る。加えて、上述のステップのいくつかは順序に依存しない場合があり、従って記載したものとは異なる順序で実行可能である。
【００５７】
他の実施形態も以下の特許請求の範囲の範囲内である。
【図１】
0006449173.tif 000002
【図２】
0006449173.tif 000003
【図３】
0006449173.tif 000004
【図４】
0006449173.tif 000005
【図５Ａ】
0006449173.tif 000006
【図５Ｂ】
0006449173.tif 000007
【図５Ｃ】
0006449173.tif 000008
【図６】
0006449173.tif 000009
【図７】
0006449173.tif 000010
【図８】
0006449173.tif 000011