(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-17
(45)【発行日】2022-11-28
(54)【発明の名称】複合コントロール
(51)【国際特許分類】
G06F 3/0481 20220101AFI20221118BHJP
G06F 3/0484 20220101ALI20221118BHJP
G06F 8/34 20180101ALI20221118BHJP
【FI】
G06F3/0481
G06F3/0484
G06F8/34
【外国語出願】
(21)【出願番号】P 2019187583
(22)【出願日】2019-10-11
(62)【分割の表示】P 2016553310の分割
【原出願日】2015-02-24
【審査請求日】2019-10-25
【審判番号】
【審判請求日】2020-10-22
(32)【優先日】2014-02-27
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】509123208
【氏名又は名称】アビニシオ テクノロジー エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ヨースト,グレッグ
(72)【発明者】
【氏名】ゴールドシュラグ,ジョシュア
【合議体】
【審判長】須田 勝巳
【審判官】篠原 功一
【審判官】山崎 慎一
(56)【参考文献】
【文献】米国特許出願公開第2003/0035005(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/07
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実行される方法であって、
前記コンピュータによりデータソースから第1の構成可能なデータフローグラフにアクセスすることであって、前記第1の構成可能なデータフローグラフは、第1のコンピュータ実行可能なプログラムであり、前記第1の構成可能なデータフローグラフは、前記第1の構成可能なデータフローグラフの一つ以上の構成可能なプロパティを示す一つ以上の第1のパラメータによって構成されている、ことと、
前記第1の構成可能なデータフローグラフの視覚的な表現である第1の表示オブジェクトをユーザインタフェースに表示することであって、前記第1の表示オブジェクトは、第1のインタラクティブグラフィカルコントロールを含み、前記ユーザインタフェースは、前記第1のインタラクティブグラフィカルコントロールについての第1の値の入力用に構成されている、ことと、
前記コンピュータにより前記データソースから第2の構成可能なデータフローグラフにアクセスすることであって、前記第2の構成可能なデータフローグラフは、第2のコンピュータ実行可能なプログラムであり、前記第2の構成可能なデータフローグラフは、前記第2の構成可能なデータフローグラフの一つ以上の構成可能なプロパティを示す一つ以上の第2のパラメータによって構成されている、ことと、
前記第2の構成可能なデータフローグラフの視覚的な表現である第2の表示オブジェクトを前記ユーザインタフェースに表示することであって、前記第2の表示オブジェクトは、第2の値の入力用に構成されている第2のインタラクティブグラフィカルコントロールを含む、ことと、
複合表示要素を前記ユーザインタフェースに表示することと、
前記第1の表示オブジェクト及び前記第2の表示オブジェクトが前記複合表示要素に含まれているという提示を前記ユーザインタフェースにおいて受け取ることと、
前記提示を検出することに応答して、前記複合表示要素の実行可能なロジックを特定するルールに基づいて前記第2の構成可能なデータフローグラフを実行させるために前記第1の構成可能なデータフローグラフを構成することであって、前記ルールは、前記第1の構成可能なデータフローグラフの実行に基づいて、前記第2の構成可能なデータフローグラフの実行を制御し、前記ルールの前記実行可能なロジックは、前記第1の表示オブジェクトの前記第1のインタラクティブグラフィカルコントロールの前記第1の値に適用されるべき一つ以上の基準を特定し、ユーザ入力により前記一つ以上の基準が満たされると、前記第2のインタラクティブグラフィカルコントロールを含む前記第2の表示オブジェクトを表示する、ことと、
前記ルールの前記実行可能なロジックを適用することに基づいて、特定のユーザ入力により前記一つ以上の基準が満たされたと決定することと、
前記一つ以上の基準が満たされたと決定することに応答して、前記複合表示要素に、前記第1のインタラクティブグラフィカルコントロールを含む前記第1の表示オブジェクトとともに、前記第2のインタラクティブグラフィカルコントロールを含む前記第2の表示オブジェクトを表示することと、
を含む、方法。
【請求項2】
ファイルから前記第2の表示オブジェクトを読み取ることをさらに含む、請求項1に記載の方法。
【請求項3】
前記ユーザインターフェースを使用して前記第1の構成可能なデータフローグラフおよび前記第2の構成可能なデータフローグラフを構成するための第3の構成可能なデータフローグラフを生成することをさらに含む、請求項1に記載の方法。
【請求項4】
前記第1の表示オブジェクトに関連付けられている第1の値を変えると、前記第2の表示オブジェクトに関連付けられている第2の値が変わる、請求項3に記載の方法。
【請求項5】
前記第1の値の入力は、前記ユーザインターフェースにおける前記第1の値の選択を含む、請求項1に記載の方法。
【請求項6】
前記ユーザインタフェースに、前記複合表示要素を表示することは、
前記第1の表示オブジェクト及び前記第2の表示オブジェクトを第3の表示オブジェクトとしてセーブすることと、
前記セーブに続くある時点で、別のグラフィカルユーザインターフェースに前記第3の表示オブジェクトを表示することと、
を含む、請求項1に記載の方法。
【請求項7】
前記第1の表示オブジェクトに関連付けられている第1の値を変えることを更に含み、
前記第1の表示オブジェクトに関連付けられている第1の値を変えると、前記第2の表示オブジェクトに関連付けられている第2の値が変わる、請求項1に記載の方法。
【請求項8】
前記第1の表示オブジェクトに関連付けられている第1の値を変えることを更に含み、
前記第1の表示オブジェクトに関連付けられている第1の値を変えると、前記第2の構成可能なデータフローグラフの識別が変わる、請求項1に記載の方法。
【請求項9】
コンピュータプログラム命令で符号化されている非一時的なコンピュータストレージメディアであって、前記コンピュータプログラム命令が、1つまたは複数のコンピュータによって実行されたときに、
前記コンピュータによりデータソースから第1の構成可能なデータフローグラフにアクセスすることであって、前記第1の構成可能なデータフローグラフは、第1のコンピュータ実行可能なプログラムであり、前記第1の構成可能なデータフローグラフは、前記第1の構成可能なデータフローグラフの一つ以上の構成可能なプロパティを示す一つ以上の第1のパラメータによって構成されている、ことと、
前記第1の構成可能なデータフローグラフの視覚的な表現である第1の表示オブジェクトをユーザインタフェースに表示することであって、前記第1の表示オブジェクトは、第1のインタラクティブグラフィカルコントロールを含み、前記ユーザインタフェースは、前記第1のインタラクティブグラフィカルコントロールについての第1の値の入力用に構成されている、ことと、
前記コンピュータにより前記データソースから第2の構成可能なデータフローグラフにアクセスすることであって、前記第2の構成可能なデータフローグラフは、第2のコンピュータ実行可能なプログラムであり、前記第2の構成可能なデータフローグラフは、前記第2の構成可能なデータフローグラフの一つ以上の構成可能なプロパティを示す一つ以上の第2のパラメータによって構成されている、ことと、
前記第2の構成可能なデータフローグラフの視覚的な表現である第2の表示オブジェクトを前記ユーザインタフェースに表示することであって、前記第2の表示オブジェクトは、第2の値の入力用に構成されている第2のインタラクティブグラフィカルコントロールを含む、ことと、
複合表示要素を前記ユーザインタフェースに表示することと、
前記第1の表示オブジェクト及び前記第2の表示オブジェクトが前記複合表示要素に含まれているという提示を前記ユーザインタフェースにおいて受け取ることと、
前記提示を検出することに応答して、前記複合表示要素の実行可能なロジックを特定するルールに基づいて前記第2の構成可能なデータフローグラフを実行させるために前記第1の構成可能なデータフローグラフを構成することであって、前記ルールは、前記第1の構成可能なデータフローグラフの実行に基づいて、前記第2の構成可能なデータフローグラフの実行を制御し、前記ルールの前記実行可能なロジックは、前記第1の表示オブジェクトの前記第1のインタラクティブグラフィカルコントロールの前記第1の値に適用されるべき一つ以上の基準を特定し、ユーザ入力により前記一つ以上の基準が満たされると、前記第2のインタラクティブグラフィカルコントロールを含む前記第2の表示オブジェクトを表示する、ことと、
前記ルールの前記実行可能なロジックを適用することに基づいて、特定のユーザ入力により前記一つ以上の基準が満たされたと決定することと、
前記一つ以上の基準が満たされたと決定することに応答して、前記複合表示要素に、前記第1のインタラクティブグラフィカルコントロールを含む前記第1の表示オブジェクトとともに、前記第2のインタラクティブグラフィカルコントロールを含む前記第2の表示オブジェクトを表示することと、
を含むオペレーションを前記1つまたは複数のコンピュータに実行させる、非一時的なコンピュータストレージメディア。
【請求項10】
前記オペレーションが、ファイルから前記第2の表示オブジェクトを読み取ることをさらに含む、請求項9に記載のコンピュータストレージメディア。
【請求項11】
前記オペレーションが、前記ユーザインターフェースを使用して前記第1の構成可能なデータフローグラフおよび前記第2の構成可能なデータフローグラフを構成するための第3の構成可能なデータフローグラフを生成することをさらに含む、請求項9に記載のコンピュータストレージメディア。
【請求項12】
前記第1の表示オブジェクトに関連付けられている第1の値を変えると、前記第2の表示オブジェクトに関連付けられている第2の値が変わる、請求項11に記載のコンピュータストレージメディア。
【請求項13】
前記第1の値の入力は、前記ユーザインターフェースにおける前記第1の値の選択を含む、請求項9に記載のコンピュータストレージメディア。
【請求項14】
前記ユーザインタフェースに、前記複合表示要素を表示することは、
前記第1の表示オブジェクト及び前記第2の表示オブジェクトを第3の表示オブジェクトとしてセーブすることと、
前記セーブに続くある時点で、別のグラフィカルユーザインターフェースに前記第3の表示オブジェクトを表示することと、
を含む、請求項9に記載のコンピュータストレージメディア。
【請求項15】
前記第1の表示オブジェクトに関連付けられている第1の値を変えることを更に含み、
前記第1の表示オブジェクトに関連付けられている第1の値を変えると、前記第2の表示オブジェクトに関連付けられている第2の値が変わる、請求項9に記載のコンピュータストレージメディア。
【請求項16】
前記第1の表示オブジェクトに関連付けられている第1の値を変えることを更に含み、
前記第1の表示オブジェクトに関連付けられている第1の値を変えると、前記第2の構成可能なデータフローグラフの識別が変わる、請求項9に記載のコンピュータストレージメディア。
【請求項17】
1つまたは複数のコンピュータと、実行可能な命令を格納している1つまたは複数のストレージデバイスとを含むシステムであって、前記命令が、前記1つまたは複数のコンピュータによって実行されたときに、
前記コンピュータによりデータソースから第1の構成可能なデータフローグラフにアクセスすることであって、前記第1の構成可能なデータフローグラフは、第1のコンピュータ実行可能なプログラムであり、前記第1の構成可能なデータフローグラフは、前記第1の構成可能なデータフローグラフの一つ以上の構成可能なプロパティを示す一つ以上の第1のパラメータによって構成されている、ことと、
前記第1の構成可能なデータフローグラフの視覚的な表現である第1の表示オブジェクトをユーザインタフェースに表示することであって、前記第1の表示オブジェクトは、第1のインタラクティブグラフィカルコントロールを含み、前記ユーザインタフェースは、前記第1のインタラクティブグラフィカルコントロールについての第1の値の入力用に構成されている、ことと、
前記コンピュータにより前記データソースから第2の構成可能なデータフローグラフにアクセスすることであって、前記第2の構成可能なデータフローグラフは、第2のコンピュータ実行可能なプログラムであり、前記第2の構成可能なデータフローグラフは、前記第2の構成可能なデータフローグラフの一つ以上の構成可能なプロパティを示す一つ以上の第2のパラメータによって構成されている、ことと、
前記第2の構成可能なデータフローグラフの視覚的な表現である第2の表示オブジェクトを前記ユーザインタフェースに表示することであって、前記第2の表示オブジェクトは、第2の値の入力用に構成されている第2のインタラクティブグラフィカルコントロールを含む、ことと、
複合表示要素を前記ユーザインタフェースに表示することと、
前記第1の表示オブジェクト及び前記第2の表示オブジェクトが前記複合表示要素に含まれているという提示を前記ユーザインタフェースにおいて受け取ることと、
前記提示を検出することに応答して、前記複合表示要素の実行可能なロジックを特定するルールに基づいて前記第2の構成可能なデータフローグラフを実行させるために前記第1の構成可能なデータフローグラフを構成することであって、前記ルールは、前記第1の構成可能なデータフローグラフの実行に基づいて、前記第2の構成可能なデータフローグラフの実行を制御し、前記ルールの前記実行可能なロジックは、前記第1の表示オブジェクトの前記第1のインタラクティブグラフィカルコントロールの前記第1の値に適用されるべき一つ以上の基準を特定し、ユーザ入力により前記一つ以上の基準が満たされると、前記第2のインタラクティブグラフィカルコントロールを含む前記第2の表示オブジェクトを表示する、ことと、
前記ルールの前記実行可能なロジックを適用することに基づいて、特定のユーザ入力により前記一つ以上の基準が満たされたと決定することと、
前記一つ以上の基準が満たされたと決定することに応答して、前記複合表示要素に、前記第1のインタラクティブグラフィカルコントロールを含む前記第1の表示オブジェクトとともに、前記第2のインタラクティブグラフィカルコントロールを含む前記第2の表示オブジェクトを表示することと、
を含むオペレーションを前記1つまたは複数のコンピュータに実行させる、システム。
【請求項18】
前記オペレーションが、ファイルから前記第2の表示オブジェクトを読み取ることをさらに含む、請求項17に記載のシステム。
【請求項19】
前記オペレーションが、前記ユーザインターフェースを使用して前記第1の構成可能なデータフローグラフおよび前記第2の構成可能なデータフローグラフを構成するための第3の構成可能なデータフローグラフを生成することをさらに含む、請求項17に記載のシステム。
【請求項20】
前記第1の表示オブジェクトに関連付けられている第1の値を変えると、前記第2の表示オブジェクトに関連付けられている第2の値が変わる、請求項19に記載のシステム。
【請求項21】
前記第1の値の入力は、前記ユーザインターフェースにおける前記第1の値の選択を含む、請求項17に記載のシステム。
【請求項22】
前記ユーザインタフェースに、前記複合表示要素を表示することは、
前記第1の表示オブジェクト及び前記第2の表示オブジェクトを第3の表示オブジェクトとしてセーブすることと、
前記セーブに続くある時点で、別のグラフィカルユーザインターフェースに前記第3の表示オブジェクトを表示することとを含む、請求項17に記載のシステム。
【請求項23】
前記第1の表示オブジェクトに関連付けられている第1の値を変えることを更に含み、
前記第1の表示オブジェクトに関連付けられている第1の値を変えると、前記第2の表示オブジェクトに関連付けられている第2の値が変わる、請求項17に記載のシステム。
【請求項24】
前記第1の表示オブジェクトに関連付けられている第1の値を変えることを更に含み、
前記第1の表示オブジェクトに関連付けられている第1の値を変えると、前記第2の構成可能なデータフローグラフの識別が変わる、請求項17に記載のシステム。
【請求項25】
コンピュータによりデータソースから第1の構成可能なデータフローグラフにアクセスする手段であって、前記第1の構成可能なデータフローグラフは、第1のコンピュータ実行可能なプログラムであり、前記第1の構成可能なデータフローグラフは、前記第1の構成可能なデータフローグラフの一つ以上の構成可能なプロパティを示す一つ以上の第1のパラメータによって構成されている、手段と、
前記第1の構成可能なデータフローグラフの視覚的な表現である第1の表示オブジェクトをユーザインタフェースに表示する手段であって、前記第1の表示オブジェクトは、第1のインタラクティブグラフィカルコントロールを含み、前記ユーザインタフェースは、前記第1のインタラクティブグラフィカルコントロールについての第1の値の入力用に構成されている、手段と、
前記コンピュータにより前記データソースから第2の構成可能なデータフローグラフにアクセスする手段であって、前記第2の構成可能なデータフローグラフは、第2のコンピュータ実行可能なプログラムであり、前記第2の構成可能なデータフローグラフは、前記第2の構成可能なデータフローグラフの一つ以上の構成可能なプロパティを示す一つ以上の第2のパラメータによって構成されている、手段と、
前記第2の構成可能なデータフローグラフの視覚的な表現である第2の表示オブジェクトを前記ユーザインタフェースに表示する手段であって、前記第2の表示オブジェクトは、第2の値の入力用に構成されている第2のインタラクティブグラフィカルコントロールを含む、手段と、
複合表示要素を前記ユーザインタフェースに表示する手段と、
前記第1の表示オブジェクト及び前記第2の表示オブジェクトが前記複合表示要素に含まれているという提示を前記ユーザインタフェースにおいて受け取る手段と、
前記提示を検出することに応答して、前記複合表示要素の実行可能なロジックを特定するルールに基づいて前記第2の構成可能なデータフローグラフを実行させるために前記第1の構成可能なデータフローグラフを構成する手段であって、前記ルールは、前記第1の構成可能なデータフローグラフの実行に基づいて、前記第2の構成可能なデータフローグラフの実行を制御し、前記ルールの前記実行可能なロジックは、前記第1の表示オブジェクトの前記第1のインタラクティブグラフィカルコントロールの前記第1の値に適用されるべき一つ以上の基準を特定し、ユーザ入力により前記一つ以上の基準が満たされると、前記第2のインタラクティブグラフィカルコントロールを含む前記第2の表示オブジェクトを表示する、手段と、
前記ルールの前記実行可能なロジックを適用することに基づいて、特定のユーザ入力により前記一つ以上の基準が満たされたと決定する手段と、
前記一つ以上の基準が満たされたと決定することに応答して、前記複合表示要素に、前記第1のインタラクティブグラフィカルコントロールを含む前記第1の表示オブジェクトとともに、前記第2のインタラクティブグラフィカルコントロールを含む前記第2の表示オブジェクトを表示する手段と、
を含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
この説明は、グラフィカルユーザインターフェースに関する。
【背景技術】
【0002】
グラフィカルユーザインターフェース(GUI)は、ユーザがグラフィカルなアイコンおよび視覚的なインジケータを通じてコンピュータまたは類似のデバイスと対話することを可能にする。ユーザは、ディスプレイ上に提示されるグラフィカルなアイコンと対話することによって、GUIと対話することができる。GUIは、ユーザがデータ値をデータ処理システムに提供することを可能にするために使用することができる。
【0003】
複雑な計算はしばしば、有向グラフ(「データフローグラフ」と呼ばれる)を通じたデータフローとして表すことができ、計算のコンポーネントは、そのグラフの頂点に関連付けられ、それらのコンポーネントの間におけるデータフローは、そのグラフのリンク(弧、エッジ)に対応する。それらのコンポーネントは、1つまたは複数の入力ポートにおいてデータを受け取って、それらのデータを処理し、1つまたは複数の出力ポートからデータを提供するデータ処理コンポーネントと、データフローのソースまたはシンクとして機能するデータセットコンポーネントとを含むことができる。データフローグラフは、パラメータを使用して構成することができる。そのようなグラフベースの計算を実施するシステムは、米国特許第5,966,072号、「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」において説明されている。
【発明の概要】
【0004】
一般には、本明細書において説明されている主題の1つの革新的な態様は、第1のアプリケーションを識別するアクションであって、その第1のアプリケーションがコンピュータ実行可能プログラムである、アクションを含む方法において具体化することができる。これらの方法は、1つまたは複数の表示オブジェクトを表示するためのキャンバスをユーザインターフェースにおいて表示するアクションを含む。これらの方法は、第1のアプリケーションに関連付けられている第1の表示オブジェクトをキャンバスにおいて表示するアクションであって、第1の表示オブジェクトが、セレクタオブジェクトの第1のセットを含み、セレクタオブジェクトの第1のセットと、第1のアプリケーションの1つまたは複数のパラメータとの間におけるマッピングを含む、アクションを含む。この方法は、第2のアプリケーションを識別するアクションであって、その第2のアプリケーションがコンピュータ実行可能プログラムである、アクションを含む。この方法は、第2のアプリケーションに関連付けられている第2の表示オブジェクトをユーザインターフェースにおいて表示するアクションであって、第2の表示オブジェクトが、セレクタオブジェクトの第2のセットを含み、セレクタオブジェクトの第2のセットと、第2のアプリケーションの1つまたは複数のパラメータとの間におけるマッピングを含む、アクションを含む。これらの方法は、第2の表示オブジェクトを第1の表示オブジェクトに関連付けるユーザアクションに応答して、第1のアプリケーションを、第2のアプリケーションを呼び出すように構成するアクションを含む。これらの方法は、セレクタオブジェクトの第1のセットと、セレクタオブジェクトの第2のセットとを含む第3の表示オブジェクトを作成するアクションを含む。
【0005】
この態様のその他の実施形態は、対応するコンピュータシステム、装置、および、1つまたは複数のコンピュータストレージデバイス上に記録されているコンピュータプログラムを含み、それらはそれぞれ、本方法のアクションを実行するように構成されている。1つまたは複数のコンピュータのシステムは、オペレーション中にアクションをそのシステムに実行させる、そのシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せによって特定のアクションを実行するように構成されてもよい。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されたときに特定のアクションをその装置に実行させる命令を含めることによってそれらのアクションを実行するように構成されてもよい。
【0006】
前述およびその他の実施形態はそれぞれ、任意選択により、下記の特徴のうちの1つまたは複数を、単独でまたは組み合わせて含むことができる。これらの方法は、ファイルから第2の表示オブジェクトを読み取るアクションを含むことができる。この方法は、ユーザインターフェースを使用して第1のアプリケーションおよび第2のアプリケーションを構成するための第3のアプリケーションを生成するアクションを含むことができる。第3のアプリケーションは、第1の表示オブジェクトおよび第2の表示オブジェクトを含むことができる。第1の表示オブジェクトに関連付けられている値を変えると、第2の表示オブジェクトに関連付けられている値を変えることができる。第1のアプリケーションは、第1のデータフローグラフであることが可能であり、第2の構成可能なアプリケーションは、第2のデータフローグラフであることが可能である。第2のアプリケーションを第1のアプリケーションに関連付ける工程は、第1のデータフローグラフを、第2のデータフローグラフを実行するように構成する工程を含むことができる。
【0007】
複数の態様が、下記の利点のうちの1つまたは複数を含むことができる。従来の方法と比較すると、グラフィカルユーザインターフェースをより容易に設計および維持することができる。データフローグラフを、その他のデータフローグラフを呼び出して実行するように容易に構成することができる。複合コントロールに対する変更を、その他のコントロールまたはユーザインターフェースに対する変更から分離することができる。標準的なコントロールを作成して、パフォーマンスを高めるように最適化することができる。コントロールは、組み込みロジックを含むことができる。異なるインターフェースにおいてコントロールを再利用することは、組み込みロジックの再利用を可能にすることができる。
【0008】
本発明のその他の特徴および利点は、以降の説明から、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0009】
【
図2】複合コントロールを作成して使用するための例示的なデータ処理システムを示す図である。
【
図3A】データフローグラフおよびパラメータの一例を示す図である。
【
図3B】構成可能なデータフローグラフなど、構成可能なアプリケーション上でパラメータを設定するための例示的な構成インターフェースを示す図である。
【
図4】GUIコントロールに焦点を合わせた構成インターフェースを作成するためのビルダーインターフェース400の一例を示す図である。
【
図5】複合コントロールを使用してデータフローグラフを別のデータフローグラフに関連付けることを示す図である。
【
図6】複合表示要素を使用してアプリケーションを構成するための例示的なプロセスを示すフローチャートである。
【発明を実施するための形態】
【0010】
図1は、複合コントロールの一例を示している。グラフィカルユーザインターフェース(GUI)開発環境100が、コントロールのパレット102を含むことができる。パレット102は、1つまたは複数のコントロールを含み、それらのコントロールは、パレットから選択してインターフェースに加えることが可能である。たとえば、パレット102は、テキストボックス表示104、ドロップダウンリストボックス表示106、リストボックス表示108、および複合コントロール表示110を含む。
【0011】
パレット102から表示を選択すると、GUI設計者は、対応するコントロールをキャンバス130上に配置することができる。本明細書において使用される際には、キャンバスとは、さまざまな描画要素(ライン、形、テキスト、その他の要素を含むフレーム、コントロール、ラベルなど)を保持するコンテナである。いくつかの実施態様はまた、空間的な表示を定義し、ユーザがグラフィカルユーザインターフェースを介して要素と対話することを可能にする。このGUI開発環境は、ユーザがアクセス可能なアプリケーション、ウェブページ、または類似の提示メカニズムを作成することができ、それによって、設計および編集プロセス中にキャンバス上に表示されるコントロールどうしは、アプリケーションが実行される際の、またはウェブページがアクセスされる際のそれらのコントロールの提示にとって非常に類似した外観となる。
【0012】
この例においては、テキストボックス表示104が、パレット102から選択されてキャンバス130上に配置されて、住所テキストボックス114が作成された。同様に、テキストボックス表示104が、パレット102から選択されてキャンバス130上に配置されて、都市テキストボックス116が作成された。
【0013】
複合コントロール表示110を選択してキャンバス130上に配置すると、複合コントロール118が生成される。一般には、複合コントロールは、1つまたは複数の基本コントロールを含む。たとえば、複合コントロール118は、国ドロップダウンリストボックス120、および州ドロップダウンリストボックス122を含む。複合コントロールは、1つまたは複数のその他の複合コントロールを含むこともできる。
【0014】
複合コントロールは、実行可能なロジックを含むこともできる。そのロジックは、基本コントロールどうしの間における対話に関連させることができる。たとえば、国ドロップダウンリストボックス120は、さまざまな国のリストを含むことができる。複合コントロール118は、プログラミングロジックを含むことができ、そのプログラミングロジックは、ユーザが国ドロップダウンリストボックス120から値を選択したときに州(state)/州(province)の適切なリストが州ドロップダウンリストボックス122に投入されるようにする。たとえば、国ドロップダウンリストボックス122において「アメリカ合衆国」を選択すると、州ドロップダウンリストボックスに米国の州のリストが投入される。同様に、国ドロップダウンリストボックス120において「カナダ」を選択すると、州ドロップダウンリストボックスにカナダの州および準州のリストが投入される。その他の変化が生じることも可能である。たとえば、ラベル124が「州:」から「州/準州」に変わることも可能である。
【0015】
いくつかの実施態様においては、複合コントロールは、パラメータを受け取ることもできる。それらのパラメータは、たとえば、複合コントロールの基本コントロールに関連付けられているパラメータであることが可能である。それらのパラメータは、全体としての複合コントロールに固有のものであることも可能である。たとえば、GUI設計者は、国ドロップダウンリストボックスおよび州ドロップダウンリストボックスに関するルックアップテーブルまたはその他のデータソースを識別するためのパラメータを設定できることが可能である。あるいは、GUI設計者は、要求される値を供給するデータ構造、たとえば、辞書データタイプまたはハッシュテーブルを提供することができる。
【0016】
いくつかの実施態様においては、複合コントロールは、そのコントロールを使用することができるコンテキストに関する制限を含むことができる。たとえば、いくつかの複合コントロールは、ポップアップウィンドウにおいてのみ可能にされるように、またはメインディスプレイウィンドウにおいて提示されるだけであるように構成することができる。
【0017】
いくつかの実装態様においては、複合コントロールは、GUI開発環境において作成することができる。たとえば、GUI設計者は、キャンバス上のアイテムを複合コントロールとして保存することを選ぶことができる。複合コントロールは、GUI開発環境によってアクセス可能な別個のファイルとして保存することができる。
【0018】
図2は、複合コントロールを作成して使用するための例示的なデータ処理システム200を示している。システム200は、データソース202を含み、データソース202は、データの1つまたは複数のソース、たとえば、ストレージデバイス、またはオンラインデータストリームへの接続を含むことができ、それらのそれぞれは、さまざまなストレージフォーマット(たとえば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、または、メインフレームによって使用されるネイティブフォーマット)のうちの任意のフォーマットでデータを格納することができる。実行環境204は、グラフ構成モジュール206およびユーザインターフェースモジュール212を含む。実行環境204は、UNIXオペレーティングシステムなどの適切なオペレーティングシステムのコントロールのもとで1つまたは複数の汎用コンピュータ上でホストすることが可能である。たとえば、実行環境204は、ローカルの(たとえば、SMPコンピュータなどのマルチプロセッサシステム)、またはローカルに分散されている(たとえば、クラスタもしくはMPPとして結合されている複数のプロセッサ)、またはリモートの、またはリモートに分散されている(たとえば、ローカルエリアネットワーク(LAN)および/もしくはワイドエリアネットワーク(WAN)を介して結合されている複数のプロセッサ)、またはそれらの任意の組合せである、複数の中央処理装置(CPU)を使用するコンピュータシステムの構成を含む複数ノード並列コンピューティング環境を含むことができる。
【0019】
グラフ構成モジュール206は、以降でより詳細に説明されているように、データフローグラフの構成を変更する。ユーザインターフェースモジュール212は、ユーザ220に構成情報を表示し、ユーザ220から構成アクションを受け取る。ユーザインターフェースモジュール212はまた、グラフ構成モジュール206と通信し、グラフ構成モジュール206は、ユーザ220のアクションに基づいてデータフローグラフを構成する。たとえば、データフローグラフは、データソース202内に格納することができる。データソース202を提供するストレージデバイスは、実行環境204にとってローカルにあること、たとえば、実行環境204を稼働させているコンピュータに接続されているストレージメディア(たとえば、ハードドライブ208)上に格納されていることが可能であり、または実行環境204にとってリモートにあること、たとえば、ローカルエリアデータネットワークもしくはワイドエリアデータネットワークを介して、実行環境204を稼働させているコンピュータと通信状態にあるリモートシステム(たとえば、メインフレーム210)上にホストされていることも可能である。
【0020】
実行環境204は、データストレージシステム216と通信状態にあり、データストレージシステム216は、ユーザインターフェースを表示するためにユーザインターフェースモジュール212によって使用される情報を含む。データストレージシステム216はまた、開発環境218にアクセス可能であり、開発環境218においては、開発者220がユーザインターフェースを開発することができ、それらのユーザインターフェースは、データストレージシステム216内に格納され、ユーザインターフェースを表示するためにユーザインターフェースモジュール212によって使用される。
【0021】
データソース202は、いくつかの実施態様においては、頂点どうしの間における(機能要素のフローを表す)有向リンクによって接続されている頂点(コンポーネントまたはデータセット)を含むデータフローグラフとしてアプリケーションを開発するためのシステムである。たとえば、そのような環境は、参照によって本明細書に組み込まれている「MANAGING PARAMETERS FOR GRAPH-BASED APPLICATIONS」という名称の米国特許出願公開第2007/0011668号においてより詳細に説明されている。
【0022】
データフローグラフは、1つまたは複数のデータソースからのデータを処理するデータフローグラフ実行環境内で実行されるコンピュータプログラムとみなすことができる。データソースからのデータは、データフローグラフに従って操作および処理され、1つまたは複数のデータシンクへエクスポートされる。データソースおよびデータシンクは、たとえば、ファイル、データベース、データストリーム、またはキューを含むことができる。データフローグラフは、データ処理コンポーネントを表すノードを含む有向グラフとして表され、それらのデータ処理コンポーネントはそれぞれ、少なくとも1つのデータ入力からのデータを処理して少なくとも1つのデータ出力にデータを提供するためのコードを含み、ノードは、データソースおよび/またはデータシンクにアクセスするためのデータセットオブジェクトを表している。ノードどうしは、有向リンクによって接続されており、それらの有向リンクは、データソースにおいて始まってデータシンクにおいて終わる、コンポーネントどうしの間におけるデータのフローを表している。アップストリームコンポーネントのデータ出力ポートは、ダウンストリームコンポーネントのデータ入力ポートへ接続されている。データフローグラフは、データセットオブジェクトによって表される異なるデータソースおよび異なるデータシンクに関して再利用することができる。たとえば、データフローグラフを実装するために使用されるデータ構造およびプログラムコードは、異なるソースおよびシンクが容易に代用されることを可能にするためにパラメータ化されることによって複数の異なる構成をサポートすることができる。さらに、いくつかのアレンジにおいては、データフローグラフのフローは、1つのコンポーネントまたは一連のコンポーネントを迂回することができるようにパラメータの使用によって変更することができる。一般には、パラメータは、構成または変更することができるデータフローグラフのプロパティーを表す。プロパティーの一例が、「入力ファイル」であり、その値は、データフローグラフに関するデータソースとして機能するデータファイルを識別する。プロパティーは、データフローグラフの使用のたびに変更することができ、データフローグラフは、その変更の結果として別々のオペレーションを実行することができる。データフローグラフは、特定のアクションを実行するようにグラフの事前コンパイルを変更することによってコンパイル時に、またはパラメータを設定すること、もしくはデータフローグラフによって使用されている構成ファイルを変更することによってランタイムに構成することができる。
【0023】
たとえば、
図3Aを参照すると、データフローグラフ302は、データソース306a、306b、コンポーネント308a~c、グラフインターフェースコンポーネント310、およびデータシンク312を含むことができる。ソース、コンポーネント、およびシンクのそれぞれは、パラメータ304a~fのセットに関連付けることができる。1つのソース、コンポーネント、またはシンクに関するパラメータは、異なるソース、コンポーネント、またはシンクに関するパラメータを評価するために使用することができる。この例においては、ソース306a、306bは、コンポーネント308a、308cの入力ポートに接続されている。コンポーネント308aの出力ポートは、コンポーネント308bの入力ポートに接続されており、グラフインターフェースコンポーネント310の出力ポートは、データシンク312に接続されている。ソース、コンポーネント、およびシンクの間における接続は、データフローを定義する。
【0024】
グラフインターフェースコンポーネント310は、グラフのコンポーネントであり、実行時にグラフが別のグラフを動的に実行することを可能にする。たとえば、データフローグラフ302が実行されるときに、グラフインターフェースコンポーネント310は、データフローグラフ316またはデータフローグラフ318を動的にロードして実行することができる。いくつかの実装態様においては、グラフインターフェースコンポーネント310は、データの入力フローを受け取ってデータの出力フローを生み出すインターフェースを定義することができる。ロードされて実行されるデータフローグラフは、パラメータ、データ要素からのデータ値、またはその他の任意の値に基づいて特定することができる。
【0025】
データソース、コンポーネント、またはシンクのうちのいくつかは、グラフの挙動のうちのいくらかを定義することができる入力パラメータ304a~fを有することができる。たとえば、パラメータは、物理的なディスク上のデータソースまたはデータシンクのロケーションを定義することができる。パラメータは、コンポーネントの挙動を定義することもでき、たとえば、パラメータは、ソーティングコンポーネントが入力をどのようにソートするかを定義することができる。いくつかのアレンジにおいては、1つのパラメータの値が別のパラメータの値に依存する場合がある。たとえば、ソース306aは、特定のディレクトリにおけるファイル内に格納することができる。パラメータセット304aは、「DIRECTORY」と呼ばれるパラメータと、「FILENAME」と呼ばれる別のパラメータとを含むことができる。このケースにおいては、FILENAMEパラメータは、DIRECTORYパラメータに依存することになる(たとえば、DIRECTORYは「/usr/local/」である場合があり、FILENAMEは「/usr/local/input.dat」である場合がある)。パラメータは、その他のコンポーネントに関するパラメータに依存する場合もある。たとえば、シンク312の物理的なロケーションは、ソース306aの物理的なロケーションに依存する場合がある。この例においては、シンク312は、パラメータのセット304fを含み、このセット304fは、FILENAMEパラメータを含み、このFILENAMEパラメータは、ソース306aのDIRECTORYパラメータに依存し、たとえば、セット304f内のFILENAMEパラメータは、「/usr/local/output.dat」である場合があり、「/usr/local/」という値は、セット304a内のDIRECTORYパラメータから得られる。
【0026】
同様に、データフローグラフ316および318は、それぞれパラメータセット304gおよび304hを有することができる。
【0027】
いくつかの実施態様においては、パラメータセット304a~fを、データフローグラフ全体に関するパラメータを含む単一のパラメータセット、たとえば、パラメータセット314へと結合することができる。しかしながら、グラフインターフェースコンポーネント310は、ランタイムにデータフローグラフを動的にロードして実行するので、パラメータリスト全体は知られていない場合がある。たとえば、グラフインターフェースコンポーネント310が、データフローグラフ316をロードおよび実行させるならば、パラメータセット304gを投入することが必要となる場合がある。
【0028】
パラメータセット、たとえばパラメータセット314は、開発環境、たとえば
図2の開発環境218において使用するために発行することまたはその他の形で利用可能にすることができる。発行されたパラメータセットは、データフローグラフのアプリケーションプログラミングインターフェース(API)の一部として参照することができる。
【0029】
構成インターフェースが、クライアントデバイス上に提示されて、ユーザ220が
図2のグラフ構成モジュール206にアクセスすることを可能にする。
図3を再び参照すると、構成インターフェース内で、パラメータセット304a~304fまたはパラメータセット314のパラメータを、ユーザと対話するためのさまざまなグループへと再編成することができ、それは、技術的な考慮事項よりもむしろビジネス上の考慮事項を反映する。ユーザ入力に基づいてパラメータに関する値を受け取るための構成インターフェースは、さまざまなパラメータを、それらのパラメータどうしの間における関係に従って、サーバ上の開発環境の態様によって必ずしも制限されないフレキシブルな方法で表示することができる。
【0030】
データフローグラフの構築は、いくつかのケースにおいては高度に技術的な性質を有することがある。特定のビジネスの目的を達成するために書かれる一方で、グラフの基礎をなす構造および構築は、技術的な考慮事項に基づいて特定される。たとえば、グラフのコンポーネントは、再利用性を最大化するように、または並列処理をサポートするように選択することができる。その一方で、グラフがどこでどのように使用されるかは、大部分がビジネス上の決定事項である場合がある。パラメータ化されたデータフローグラフに関連付けられているパラメータのうちのいくつかを使用して、ビジネスユーザが、データフローグラフの実施の背後にある技術的な複雑さを理解する必要なくそれらのデータフローグラフをカスタマイズすることを可能にすることができる。パラメータ化されたデータフローグラフは、カスタマイゼーションを簡単にし、再利用を容易にする。データフローグラフを構築するためのパラメータ値の識別のための構成インターフェースをクライアントマシン上に提示することができる。たとえば、そのような環境は、参照によって本明細書に組み込まれている「SPECIFYING USER INTERFACE ELEMENTS」という名称の米国特許出願公開第20011/0145748号においてさらに詳細に説明されている。
【0031】
構成インターフェースは、実行フローグラフを構成するために使用することもできる。実行フローグラフは、外部プロセスが実行されることになる順序を記述する有向グラフである。たとえば、実行フローグラフは、一連のデータフローグラフが実行されることになる順序を指定することができる。
【0032】
データフローグラフを構築するためのパラメータ値の識別のための構成インターフェースの開発は、いくつかのケースにおいては高度に技術的な性質を有することもある。上述のように、基礎をなすグラフは、しばしば技術的な考慮事項に基づいて構築され、その一方で構成インターフェースは、しばしばビジネス上の考慮事項に基づいて開発される。結果として、構成インターフェースは、1つまたは複数のデータフローグラフに関するパラメータを提供することができる。それぞれのデータフローグラフは、APIによって提供された別個のパラメータセットを有する。さらに、構成インターフェースの開発は、基礎をなすデータフローグラフの開発とは異なるスキルを含む。したがって、構成インターフェースの開発は、技術的な考慮事項、ビジネス上の考慮事項、および使いやすさに関する考慮事項の組合せを必要とする。
【0033】
構成インターフェースの生成を容易にするために、ビルダーインターフェースをクライアントマシンのユーザに提示することができる。ビルダーインターフェースは、開発環境218の一部であることが可能である。
【0034】
図3Bは、構成可能なデータフローグラフなど、構成可能なアプリケーション上でパラメータを設定するための例示的な構成インターフェースを示している。この例においては、2つのデータフローグラフ302および306が、インターフェース320内に示されており、構成インターフェース320に関連付けられている。この例においては、パラメータ304を使用して、構成可能なデータフローグラフ302を構成することができる。同様に、パラメータ308、310、312を使用して、データフローグラフ306を構成することができる。
【0035】
たとえば、構成インターフェース320は、それらのデータフローグラフによって処理されることになるデータのビジネス知識を有するユーザが、パラメータに値を割り振ること、およびそれによって単一の構成インターフェースを使用して両方のデータフローグラフを構成することを可能にする。この例においては、構成インターフェース320は、パラメータ1フィールド322を含む。パラメータ1フィールドは、インターフェース320において表されているパラメータ312に値を割り振るために使用される。同様に、パラメータ2フィールド324は、パラメータ310に値を割り振るために使用される。パラメータ3フィールドは、パラメータ304に値を割り振るために使用される。パラメータ4フィールド328は、パラメータ308に値を割り振るために使用される。
【0036】
パラメータフィールドは、入力されることになるデータのタイプに基づいて選択することができる。たとえば、パラメータ1フィールド322は、ユーザが任意の値(たとえば、整数、浮動小数点値など)を入力することを可能にするテキストボックスである。パラメータ2フィールド324は、ユーザがリストから値を選択することを可能にするリストボックスである。パラメータ3フィールド326は、ユーザが、少ない数のオプション(この例においては、2つのオプション値)から値を選択することを可能にするラジオボタンボックスである。パラメータ4フィールド328は、ユーザが、大量のテキストを入力することを可能にするさらに大きなテキストボックスである。
【0037】
その他のGUIコントロールを選択することもできる。たとえば、ユーザは、特定の入力ファイル、またはそのファイルがネットワークを介してダウンロードされる元になるロケーションを選択するためにファイルセレクタを開くことができる場合がある。
【0038】
図4は、GUIコントロールに焦点を合わせた構成インターフェースを作成するためのビルダーインターフェース400の一例を示している。ビルダーインターフェース400は、テンプレート名402を含む。テンプレート名402は、作成されている構成インターフェースを識別する。ビルダーインターフェース400のユーザインターフェースタブ404は、表示エリア430を含む。この表示エリアは、構成インターフェースの構築のための「WYSIWYG」(what you see is what you get)インターフェースを提示する。表示エリア430は、開発者がGUIコントロールを配置するキャンバスと考えることができる。開発者は、コンポーネントセクション422からGUIコントロールを選択し、そのGUIコントロールを表示エリア430に加えて構成インターフェースを作成することができる。この例においては、表示エリア430は、ソースファイルに対応するテキスト入力コントロール410と、ターゲットファイルに対応するテキスト入力コントロール412とを含むボックスコントロール406を含む。表示エリア430はまた、ファイルセレクタコントロール418を含むボックスコントロール414を含む。表示エリアは、仕切り416などの仕切りを使用して、GUIを複数のセクションへと区分することができる。それらの区分は、基本的な構造をユーザに提供することによって、インターフェースの作成を簡単にするために使用することができる。
【0039】
コンポーネントセクション422は、表示エリア430に加えることができるさまざまなコントロールを含む。利用可能なGUIコントロールは、ユーザ入力を受け取ってパラメータに値を割り振る入力コントロールを含む。利用可能なGUIコントロールはまた、1つまたは複数のコントロールをグループ化する視覚的なアウトラインを作成するボックスなどのグルーピングコントロールを含む。開発者は、ルールに基づくコントロールを選択することもでき、これは、フィールド間の依存関係を開発者が作成することを可能にする。たとえば、ビジネスルールコントロールは、そのビジネスルールコントロールの出力と、構成可能なアプリケーションを構成するために使用されるパラメータとの間におけるマッピングを提供するパラメータを開発者が構成することを可能にする。開発者は、データに基づくコントロールを選択することもでき、これは、グラフによって生み出されたデータを構成インターフェースのユーザが見ることを可能にする。
【0040】
コンポーネントセクション422は、複合コントロールを含むこともできる。たとえば、フィルタグラフ構成432は、フィルタグラフを構成するのに十分なプリミティブコントロールおよび実行可能な命令を含む複合コントロールであることが可能である。一般には、プリミティブコントロールは、ウィンドウまたはテキストボックスなど、ユーザによって変更可能な情報アレンジを表示するグラフィカルユーザインターフェース(GUI)の要素である。プリミティブコントロールは、基本的な視覚的なビルディングブロックであり、アプリケーションにおいて組み合わされると、そのアプリケーションによって処理されるすべてのデータと、このデータ上での利用可能な対話とを保持する。
【0041】
それぞれのコントロールは、1つまたは複数の属性を有することができる。これらの属性は、コントロール属性エリア426において表示することができる。この例においては、コントロール属性エリア426は、テキスト入力コントロール410に関する属性を表示している。コントロール属性エリア426は、ユーザが、コントロールに関するプロパティー値のうちの任意の値にパラメータ値を割り振ることを可能にする。たとえば、選択された値のプロパティー428は、SOURCE_URLパラメータ430に関する値を提供する。
【0042】
開発者は、構成インターフェースのその他のグラフィカルな特徴を規定するルールを確立することもできる。たとえば、開発者は、事前に定義された一式の基準が満たされない限り特定のGUIコントロールが表示されないように指定することができ、たとえば、ターゲットファイルコントロール412は、ソースファイルコントロール410が投入を受けない限り表示を行うことができない。
【0043】
いくつかの実装態様においては、複合コントロール内でルールを指定することもできる。たとえば、複合コントロールは、事前に定義された一式の基準が満たされない限り複合コントロール内の特定のプリミティブコントロールが表示されないように指定することができる。別の例においては、上述のように、複合コントロール内のプリミティブコントロールは、別のプリミティブコントロールにおいて提供された値に基づいて投入を受けることができる。
【0044】
図5を参照すると、データフローグラフに関連付けられているパラメータを設定するために複合コントロールを作成することができる。上で論じたように、ユーザインターフェースを使用して、データフローグラフのパラメータを構成することができる。この例においては、複合コントロール502は、データフローグラフ504に関連付けられているパラメータをユーザが設定することを可能にするフィールドを含む。上で論じたように、複合コントロールは、複合コントロールおよびその他のロジックを構成する基本コントロールどうしの間における対話をコントロールするプログラミング命令を含むことができる。この例においては、複合コントロール502は、データフローグラフ504に関するパラメータを設定するプログラミング命令を含む。ユーザインターフェース506は、ビルダーインターフェースの表示エリアに相当し、たとえば、ユーザインターフェース506は、
図4のビルダーインターフェース400の表示エリア430であることが可能である。
【0045】
ユーザインターフェース506は、複合コントロールを配置することができるエリア510を含む。いくつかの実施態様においては、ユーザインターフェース506は、コントロールをどのように配置することができるかを指示および制限するテンプレートを含むことができる。たとえば、ユーザインターフェース506は、コントロールの配置を表形式に制限することができる。あるいは、ユーザインターフェース506は、ユーザインターフェース506を別々のセクションへと仕切ることができ、それぞれのセクションは、1つまたは複数のコントロールを保持することができる。その他の実装態様においては、ユーザインターフェース506は、ユーザがユーザインターフェース506上の任意の場所でコントロールを構成することを可能にすることができる。
【0046】
この例においては、ユーザインターフェース506は、データフローグラフ508に関するパラメータを設定するように設計されている。データフローグラフ506の一部分は、コンポーネント516を含む。コンポーネント516は、グラフインターフェースコンポーネント512に接続されている。上で論じたように、グラフインターフェースコンポーネント512は、いくつかの異なる潜在的なデータフローグラフを実行するように構成されている。グラフインターフェースコンポーネント512は、データシンク514に接続されている。
【0047】
データフローグラフ508を構成するためのGUIを作成する際に、ユーザは、グラフインターフェースコンポーネント512によって実行されることになるデータフローグラフを選択することができる。この例においては、ユーザは、データフローグラフ504がグラフインターフェースコンポーネント512によって実行されるべきであるということを特定する。
【0048】
ユーザは、データフローグラフ504に関連付けられている複合コントロール502を選択して、その複合コントロール502をエリア510内に配置することによって、データフローグラフ504をグラフインターフェースコンポーネント512に関連付けることができる。複合コントロール502を加えると、ユーザインターフェース内にエリアが作成され、そこでは、ビジネスユーザが、データフローグラフ508およびデータフローグラフ504を構成することができる。たとえば、ユーザインターフェース506は、ビジネスユーザによって保存またはエクスポートして後でアクセスすることが可能である。ビジネスユーザは、完成されたユーザインターフェースを提示される。ユーザインターフェース506のフィールドに値を供給することによって、ビジネスユーザは、データフローグラフ504を含むデータフローグラフ508を構成する。
【0049】
いくつかの実施態様においては、エリア510は、グラフインターフェースコンポーネント512に関連付けられる。別の実施態様においては、このシステムは、データフローグラフに関連付けるための適切なグラフインターフェースコンポーネントを、そのグラフインターフェースコンポーネントおよびそのデータフローグラフの両方に関連付けられているインターフェースに基づいて特定する。たとえば、データフローグラフ504は、入力データの2つのフローを必要とし、出力データの1つのフローを生成する。エリア510は、その基準を満たすデータフローグラフに関連付けられている任意の複合コントロールで満たすことができる。
【0050】
いくつかの実施態様においては、複合コントロールを、その複合コントロールをサブグラフに関連付けたグラフパラメータに結び付けることができる。
【0051】
いくつかの実施態様においては、複合コントロールを複数のデータフローグラフに関連付けることができる。たとえば、複合コントロールは、どのデータフローグラフがグラフインターフェースコンポーネント512によって実行されるべきであるかをビジネスユーザが選択することを可能にする選択フィールド(たとえば、リストボックス、ドロップダウンリストボックスなど)を含むことができる。ビジネスユーザが選択フィールドからデータフローグラフを選択すると、複合コントロールは、選択されたデータフローグラフを構成するのに適している一式のフィールドを提示することができる。
【0052】
図6は、複合表示要素を使用してアプリケーションを構成するための例示的なプロセスのフローチャートである。たとえば、このプロセスは、コンピュータシステムなどのデータ処理装置によって実行することができる。説明を簡単にするために、このプロセスについては、このプロセスを実行するシステムに関連して説明する。
【0053】
アプリケーションを構成するためのユーザインターフェースを受け取ることができる(602)。このユーザインターフェースは、ビルダーインターフェースを使用して作成することができる。ビルダーインターフェースは、数ある中でも、ユーザインターフェースに加えることができるコントロールおよび表示要素の提示のためのパレットを含むことができる。
【0054】
第2のアプリケーションに関連付けられている複合表示要素を表示することができる(604)。この複合表示要素は、パレットにおいてユーザに提示することができる。この複合表示要素は、第2のアプリケーションを構成するために使用することができる1つまたは複数の表示要素を含むことができる。
【0055】
複合表示要素とユーザインターフェースとの間における関連付けを受け取ることができる(606)。この関連付けは、ユーザのアクションに起因して生じることがある。たとえば、ユーザは、複合コントロールを表すアイコンをパレットから選択して、その複合コントロールをユーザインターフェース上にドラッグアンドドロップすることができる。
【0056】
第2のアプリケーションをそのアプリケーションに関連付けることができる(608)。複合コントロールとユーザインターフェースとの関連付けを受け取ったことに応答して、このシステムは、第2のアプリケーションをそのアプリケーションに関連付けることができる。
【0057】
上述の複合コントロールアプローチを使用するグラフィカルユーザインターフェースは、適切なソフトウェアを実行するコンピューティングシステムを使用して実装することができる。たとえば、そのソフトウェアは、少なくとも1つのプロセッサと、(揮発性および/または不揮発性のメモリ要素および/またはストレージ要素を含む)少なくとも1つのデータストレージシステムと、(少なくとも1つの入力デバイスまたはポートを使用して入力を受け取るための、および少なくとも1つの出力デバイスまたはポートを使用して出力を提供するための)少なくとも1つのユーザインターフェースとをそれぞれが含む(分散型、クライアント/サーバ、またはグリッドなど、さまざまなアーキテクチャーのものであることが可能である)1つまたは複数のプログラムされたまたはプログラム可能なコンピューティングシステム上で実行される1つまたは複数のコンピュータプログラムにおける手順を含むことができる。そのソフトウェアは、たとえば、データフローグラフの設計、構成、および実行に関連したサービスを提供するさらに大きなプログラムの1つまたは複数のモジュールを含むことができる。そのプログラムのモジュール(たとえば、データフローグラフの要素)は、データリポジトリ内に格納されているデータモデルに準拠するデータ構造またはその他の編成されたデータとして実装することができる。
【0058】
そのソフトウェアは、(たとえば、汎用もしくは専用のコンピューティングシステムもしくはデバイスによって読み取り可能な)CD-ROMもしくはその他のコンピュータ可読メディアなどの有形の非一時的なメディア上で提供すること、またはネットワークの通信メディアを介して、そのソフトウェアが実行されるコンピューティングシステムの有形の非一時的なメディアへ配信すること(たとえば、伝搬される信号内に含めて符号化すること)が可能である。処理のうちのいくつかまたはすべては、専用のコンピュータ上で、または専用のハードウェア、たとえば、コプロセッサもしくはフィールドプログラマブルゲートアレイ(FPGA)もしくは専用の特定用途向け集積回路(ASIC)を使用して実行することができる。処理は、分散された様式で実装することができ、その様式においては、ソフトウェアによって指定された計算の別々の部分が、別々のコンピューティング要素によって実行される。それぞれのそのようなコンピュータプログラムは、好ましくは、汎用または専用のプログラム可能なコンピュータによってアクセス可能なストレージデバイスのコンピュータ可読ストレージメディア(たとえば、ソリッドステートメモリもしくはソリッドステートメディア、または磁気メディアもしくは光メディア)がそのコンピュータによって読み取られたときに、本明細書において説明されている処理を実行するようにそのコンピュータを構成して動作させるために、そのストレージデバイスメディア上に格納されるか、またはそのストレージデバイスメディアへダウンロードされる。本発明のシステムは、コンピュータプログラムを伴って構成されている有形の非一時的なメディアとして実装されるものとみなすこともでき、そのように構成されているメディアは、本明細書において説明されている処理工程のうちの1つまたは複数を実行するために特定の事前に定義された様式でコンピュータを動作させる。
【0059】
本発明のいくつかの実施形態について説明してきた。それでもなお、前述の説明は、本発明の範囲を例示することを意図されており、本発明の範囲を限定することを意図されているものではなく、本発明の範囲は、添付の特許請求の範囲の範疇によって定義されているということを理解されたい。したがって、その他の実施形態も、添付の特許請求の範囲の範疇内にある。たとえば、本発明の範囲から逸脱することなく、さまざまな修正を行うことができる。加えて、上述の工程のうちのいくつかは、順序の点で独立していることが可能であり、したがって、説明されている順序とは異なる順序で実行することができる。