(57)【要約】      （修正有）【課題】複合コントロールを指定するための、ストレージメディア上に符号化されているプログラムを含む方法を提供する。【解決手段】方法は、第１のアプリケーションを識別することと、キャンバスを表示することを含む。第１のアプリケーションに関連付けられている第１の表示オブジェクトをキャンバスにおいて表示することと、プログラムである第２のアプリケーションを識別することと、を含む。第２のアプリケーションに関連付けられている第２の表示オブジェクトをユーザインターフェースにおいて表示することと、第２の表示オブジェクトを第１の表示オブジェクトに関連付けるユーザアクションに応答して、第１のアプリケーションを、第２のアプリケーションを呼び出すように構成することと、さらに含み、セレクタオブジェクトの第１のセットと、セレクタオブジェクトの第２のセットとを含む第３の表示オブジェクトを作成する。【選択図】なし【特許請求の範囲】
【請求項１】
第１のアプリケーションを識別することであって、前記第１のアプリケーションがコンピュータ実行可能プログラムである、ことと、
１つまたは複数の表示オブジェクトを表示するためのキャンバスをユーザインターフェースにおいて表示することと、
前記第１のアプリケーションに関連付けられている第１の表示オブジェクトを前記キャンバスにおいて表示することであって、前記第１の表示オブジェクトが、セレクタオブジェクトの第１のセットを含み、セレクタオブジェクトの第１のセットと、前記第１のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、ことと、
第２のアプリケーションを識別することであって、前記第２のアプリケーションがコンピュータ実行可能プログラムである、ことと、
第２のアプリケーションに関連付けられている第２の表示オブジェクトを前記ユーザインターフェースにおいて表示することであって、前記第２の表示オブジェクトが、セレクタオブジェクトの第２のセットを含み、セレクタオブジェクトの前記第２のセットと、前記第２のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、ことと、
前記第２の表示オブジェクトを前記第１の表示オブジェクトに関連付けるユーザアクションの指示を受け取ったことに応答して、前記第１のアプリケーションを、前記第２のアプリケーションを呼び出すように構成することと、
セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第２のセットとを含む第３の表示オブジェクトを作成することと
を含むコンピュータ実施方法。
【請求項２】
ファイルから前記第２の表示オブジェクトを読み取ることをさらに含む、請求項１に記載の方法。
【請求項３】
前記ユーザインターフェースを使用して前記第１のアプリケーションおよび前記第２のアプリケーションを構成するための第３のアプリケーションを生成することをさらに含む、請求項１に記載の方法。
【請求項４】
前記第３のアプリケーションが、第１の表示オブジェクトおよび第２の表示オブジェクトを含み、
前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２の表示オブジェクトに関連付けられている値が変わる、請求項３に記載の方法。
【請求項５】
前記第１のアプリケーションが第１のデータフローグラフであり、前記第２の構成可能なアプリケーションが第２のデータフローグラフである、請求項１に記載の方法。
【請求項６】
前記第２のアプリケーションを前記第１のアプリケーションに関連付けることが、前記第１のデータフローグラフを、前記第２のデータフローグラフを実行するように構成することを含む、請求項６に記載の方法。
【請求項７】
コンピュータプログラム命令で符号化されている非一時的なコンピュータストレージメディアであって、前記コンピュータプログラム命令が、１つまたは複数のコンピュータによって実行されたときに、
第１のアプリケーションを識別することであって、前記第１のアプリケーションがコンピュータ実行可能プログラムである、ことと、
１つまたは複数の表示オブジェクトを表示するためのキャンバスをユーザインターフェースにおいて表示することと、
前記第１のアプリケーションに関連付けられている第１の表示オブジェクトを前記キャンバスにおいて表示することであって、前記第１の表示オブジェクトが、セレクタオブジェクトの第１のセットを含み、セレクタオブジェクトの第１のセットと、前記第１のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、ことと、
第２のアプリケーションを識別することであって、前記第２のアプリケーションがコンピュータ実行可能プログラムである、ことと、
第２のアプリケーションに関連付けられている第２の表示オブジェクトを前記ユーザインターフェースにおいて表示することであって、前記第２の表示オブジェクトが、セレクタオブジェクトの第２のセットを含み、セレクタオブジェクトの前記第２のセットと、前記第２のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、ことと、
前記第２の表示オブジェクトを前記第１の表示オブジェクトに関連付けるユーザアクションの表示を受け取ったことに応答して、前記第１のアプリケーションを、前記第２のアプリケーションを呼び出すように構成することと、
セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第２のセットとを含む第３の表示オブジェクトを作成することとを含むオペレーションを前記１つまたは複数のコンピュータに実行させる、非一時的なコンピュータストレージメディア。
【請求項８】
前記オペレーションが、ファイルから前記第２の表示オブジェクトを読み取ることをさらに含む、請求項７に記載のメディア。
【請求項９】
前記オペレーションが、前記ユーザインターフェースを使用して前記第１のアプリケーションおよび前記第２のアプリケーションを構成するための第３のアプリケーションを生成することをさらに含む、請求項７に記載のメディア。
【請求項１０】
前記第３のアプリケーションが、第１の表示オブジェクトおよび第２の表示オブジェクトを含み、前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２の表示オブジェクトに関連付けられている値が変わる、請求項９に記載のメディア。
【請求項１１】
前記第１のアプリケーションが第１のデータフローグラフであり、前記第２の構成可能なアプリケーションが第２のデータフローグラフである、請求項７に記載のメディア。
【請求項１２】
前記第２のアプリケーションを前記第１のアプリケーションに関連付けることが、前記第１のデータフローグラフを、前記第２のデータフローグラフを実行するように構成することを含む、請求項１１に記載のメディア。
【請求項１３】
１つまたは複数のコンピュータと、命令を格納している１つまたは複数のストレージデバイスと
を含むシステムであって、前記命令が、前記１つまたは複数のコンピュータによって実行されたときに、
第１のアプリケーションを識別することであって、前記第１のアプリケーションがコンピュータ実行可能プログラムである、ことと、
１つまたは複数の表示オブジェクトを表示するためのキャンバスをユーザインターフェースにおいて表示することと、
前記第１のアプリケーションに関連付けられている第１の表示オブジェクトを前記キャンバスにおいて表示することであって、前記第１の表示オブジェクトが、セレクタオブジェクトの第１のセットを含み、セレクタオブジェクトの第１のセットと、前記第１のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、ことと、
第２のアプリケーションを識別することであって、前記第２のアプリケーションがコンピュータ実行可能プログラムである、ことと、
第２のアプリケーションに関連付けられている第２の表示オブジェクトを前記ユーザインターフェースにおいて表示することであって、前記第２の表示オブジェクトが、セレクタオブジェクトの第２のセットを含み、セレクタオブジェクトの前記第２のセットと、前記第２のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、ことと、
前記第２の表示オブジェクトを前記第１の表示オブジェクトに関連付けるユーザアクションの表示を受け取ったことに応答して、前記第１のアプリケーションを、前記第２のアプリケーションを呼び出すように構成することと、
セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第２のセットとを含む第３の表示オブジェクトを作成することと
を含むオペレーションを前記１つまたは複数のコンピュータに実行させるように動作することができる、システム。
【請求項１４】
前記オペレーションが、ファイルから前記第２の表示オブジェクトを読み取ることをさらに含む、請求項１３に記載のシステム。
【請求項１５】
前記オペレーションが、前記ユーザインターフェースを使用して前記第１のアプリケーションおよび前記第２のアプリケーションを構成するための第３のアプリケーションを生成することをさらに含む、請求項１３に記載のシステム。
【請求項１６】
前記第３のアプリケーションが、第１の表示オブジェクトおよび第２の表示オブジェクトを含み、前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２の表示オブジェクトに関連付けられている値が変わる、請求項１５に記載のシステム。
【請求項１７】
前記第１のアプリケーションが第１のデータフローグラフであり、前記第２の構成可能なアプリケーションが第２のデータフローグラフである、請求項１３に記載のシステム。
【請求項１８】
前記第２のアプリケーションを前記第１のアプリケーションに関連付けることが、前記第１のデータフローグラフを、前記第２のデータフローグラフを実行するように構成することを含む、請求項１７に記載のシステム。
【請求項１９】
第１のアプリケーションを識別するための手段であって、前記第１のアプリケーションがコンピュータ実行可能プログラムである、手段と、
１つまたは複数の表示オブジェクトを表示するためのキャンバスを表示する手段と、
前記第１のアプリケーションに関連付けられている第１の表示オブジェクトを前記キャンバスにおいて表示するための手段であって、前記第１の表示オブジェクトが、セレクタオブジェクトの第１のセットを含み、セレクタオブジェクトの第１のセットと、前記第１のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、手段と、
第２のアプリケーションを識別するための手段であって、前記第２のアプリケーションがコンピュータ実行可能プログラムである、手段と、
第２のアプリケーションに関連付けられている第２の表示オブジェクトを表示するための手段であって、前記第２の表示オブジェクトが、セレクタオブジェクトの第２のセットを含み、セレクタオブジェクトの前記第２のセットと、前記第２のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、手段と、
前記第２の表示オブジェクトを前記第１の表示オブジェクトに関連付けるユーザアクションに応答して、前記第１のアプリケーションを、前記第２のアプリケーションを呼び出すように構成するための手段と、
セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第２のセットとを含む第３の表示オブジェクトを作成するための手段と
を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この説明は、グラフィカルユーザインターフェースに関する。
【背景技術】
【０００２】
グラフィカルユーザインターフェース（GUI）は、ユーザがグラフィカルなアイコンおよび視覚的なインジケータを通じてコンピュータまたは類似のデバイスと対話することを可能にする。ユーザは、ディスプレイ上に提示されるグラフィカルなアイコンと対話することによって、ＧＵＩと対話することができる。ＧＵＩは、ユーザがデータ値をデータ処理システムに提供することを可能にするために使用することができる。
【０００３】
複雑な計算はしばしば、有向グラフ（「データフローグラフ」と呼ばれる）を通じたデータフローとして表すことができ、計算のコンポーネントは、そのグラフの頂点に関連付けられ、それらのコンポーネントの間におけるデータフローは、そのグラフのリンク（弧、エッジ）に対応する。それらのコンポーネントは、１つまたは複数の入力ポートにおいてデータを受け取って、それらのデータを処理し、１つまたは複数の出力ポートからデータを提供するデータ処理コンポーネントと、データフローのソースまたはシンクとして機能するデータセットコンポーネントとを含むことができる。データフローグラフは、パラメータを使用して構成することができる。そのようなグラフベースの計算を実施するシステムは、米国特許第５，９６６，０７２号、「ＥＸＥＣＵＴＩＮＧ  ＣＯＭＰＵＴＡＴＩＯＮＳ  ＥＸＰＲＥＳＳＥＤ  ＡＳ  ＧＲＡＰＨＳ」において説明されている。
【発明の概要】
【０００４】
一般には、本明細書において説明されている主題の１つの革新的な態様は、第１のアプリケーションを識別するアクションであって、その第１のアプリケーションがコンピュータ実行可能プログラムである、アクションを含む方法において具体化することができる。これらの方法は、１つまたは複数の表示オブジェクトを表示するためのキャンバスをユーザインターフェースにおいて表示するアクションを含む。これらの方法は、第１のアプリケーションに関連付けられている第１の表示オブジェクトをキャンバスにおいて表示するアクションであって、第１の表示オブジェクトが、セレクタオブジェクトの第１のセットを含み、セレクタオブジェクトの第１のセットと、第１のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、アクションを含む。この方法は、第２のアプリケーションを識別するアクションであって、その第２のアプリケーションがコンピュータ実行可能プログラムである、アクションを含む。この方法は、第２のアプリケーションに関連付けられている第２の表示オブジェクトをユーザインターフェースにおいて表示するアクションであって、第２の表示オブジェクトが、セレクタオブジェクトの第２のセットを含み、セレクタオブジェクトの第２のセットと、第２のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、アクションを含む。これらの方法は、第２の表示オブジェクトを第１の表示オブジェクトに関連付けるユーザアクションに応答して、第１のアプリケーションを、第２のアプリケーションを呼び出すように構成するアクションを含む。これらの方法は、セレクタオブジェクトの第１のセットと、セレクタオブジェクトの第２のセットとを含む第３の表示オブジェクトを作成するアクションを含む。
【０００５】
この態様のその他の実施形態は、対応するコンピュータシステム、装置、および、１つまたは複数のコンピュータストレージデバイス上に記録されているコンピュータプログラムを含み、それらはそれぞれ、本方法のアクションを実行するように構成されている。１つまたは複数のコンピュータのシステムは、オペレーション中にアクションをそのシステムに実行させる、そのシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せによって特定のアクションを実行するように構成されてもよい。１つまたは複数のコンピュータプログラムは、データ処理装置によって実行されたときに特定のアクションをその装置に実行させる命令を含めることによってそれらのアクションを実行するように構成されてもよい。
【０００６】
前述およびその他の実施形態はそれぞれ、任意選択により、下記の特徴のうちの１つまたは複数を、単独でまたは組み合わせて含むことができる。これらの方法は、ファイルから第２の表示オブジェクトを読み取るアクションを含むことができる。この方法は、ユーザインターフェースを使用して第１のアプリケーションおよび第２のアプリケーションを構成するための第３のアプリケーションを生成するアクションを含むことができる。第３のアプリケーションは、第１の表示オブジェクトおよび第２の表示オブジェクトを含むことができる。第１の表示オブジェクトに関連付けられている値を変えると、第２の表示オブジェクトに関連付けられている値を変えることができる。第１のアプリケーションは、第１のデータフローグラフであることが可能であり、第２の構成可能なアプリケーションは、第２のデータフローグラフであることが可能である。第２のアプリケーションを第１のアプリケーションに関連付ける工程は、第１のデータフローグラフを、第２のデータフローグラフを実行するように構成する工程を含むことができる。
【０００７】
複数の態様が、下記の利点のうちの１つまたは複数を含むことができる。従来の方法と比較すると、グラフィカルユーザインターフェースをより容易に設計および維持することができる。データフローグラフを、その他のデータフローグラフを呼び出して実行するように容易に構成することができる。複合コントロールに対する変更を、その他のコントロールまたはユーザインターフェースに対する変更から分離することができる。標準的なコントロールを作成して、パフォーマンスを高めるように最適化することができる。コントロールは、組み込みロジックを含むことができる。異なるインターフェースにおいてコントロールを再利用することは、組み込みロジックの再利用を可能にすることができる。
【０００８】
本発明のその他の特徴および利点は、以降の説明から、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】複合コントロールの一例を示す図である。
【図２】複合コントロールを作成して使用するための例示的なデータ処理システムを示す図である。
【図３Ａ】データフローグラフおよびパラメータの一例を示す図である。
【図３Ｂ】構成可能なデータフローグラフなど、構成可能なアプリケーション上でパラメータを設定するための例示的な構成インターフェースを示す図である。
【図４】ＧＵＩコントロールに焦点を合わせた構成インターフェースを作成するためのビルダーインターフェース４００の一例を示す図である。
【図５】複合コントロールを使用してデータフローグラフを別のデータフローグラフに関連付けることを示す図である。
【図６】複合表示要素を使用してアプリケーションを構成するための例示的なプロセスを示すフローチャートである。
【発明を実施するための形態】
【００１０】
図１は、複合コントロールの一例を示している。グラフィカルユーザインターフェース（GUI）開発環境１００が、コントロールのパレット１０２を含むことができる。パレット１０２は、１つまたは複数のコントロールを含み、それらのコントロールは、パレットから選択してインターフェースに加えることが可能である。たとえば、パレット１０２は、テキストボックス表示１０４、ドロップダウンリストボックス表示１０６、リストボックス表示１０８、および複合コントロール表示１１０を含む。
【００１１】
パレット１０２から表示を選択すると、ＧＵＩ設計者は、対応するコントロールをキャンバス１３０上に配置することができる。本明細書において使用される際には、キャンバスとは、さまざまな描画要素（ライン、形、テキスト、その他の要素を含むフレーム、コントロール、ラベルなど）を保持するコンテナである。いくつかの実施態様はまた、空間的な表示を定義し、ユーザがグラフィカルユーザインターフェースを介して要素と対話することを可能にする。このＧＵＩ開発環境は、ユーザがアクセス可能なアプリケーション、ウェブページ、または類似の提示メカニズムを作成することができ、それによって、設計および編集プロセス中にキャンバス上に表示されるコントロールどうしは、アプリケーションが実行される際の、またはウェブページがアクセスされる際のそれらのコントロールの提示にとって非常に類似した外観となる。
【００１２】
この例においては、テキストボックス表示１０４が、パレット１０２から選択されてキャンバス１３０上に配置されて、住所テキストボックス１１４が作成された。同様に、テキストボックス表示１０４が、パレット１０２から選択されてキャンバス１３０上に配置されて、都市テキストボックス１１６が作成された。
【００１３】
複合コントロール表示１１０を選択してキャンバス１３０上に配置すると、複合コントロール１１８が生成される。一般には、複合コントロールは、１つまたは複数の基本コントロールを含む。たとえば、複合コントロール１１８は、国ドロップダウンリストボックス１２０、および州ドロップダウンリストボックス１２２を含む。複合コントロールは、１つまたは複数のその他の複合コントロールを含むこともできる。
【００１４】
複合コントロールは、実行可能なロジックを含むこともできる。そのロジックは、基本コントロールどうしの間における対話に関連させることができる。たとえば、国ドロップダウンリストボックス１２０は、さまざまな国のリストを含むことができる。複合コントロール１１８は、プログラミングロジックを含むことができ、そのプログラミングロジックは、ユーザが国ドロップダウンリストボックス１２０から値を選択したときに州（state）／州（province）の適切なリストが州ドロップダウンリストボックス１２２に投入されるようにする。たとえば、国ドロップダウンリストボックス１２２において「アメリカ合衆国」を選択すると、州ドロップダウンリストボックスに米国の州のリストが投入される。同様に、国ドロップダウンリストボックス１２０において「カナダ」を選択すると、州ドロップダウンリストボックスにカナダの州および準州のリストが投入される。その他の変化が生じることも可能である。たとえば、ラベル１２４が「州：」から「州／準州」に変わることも可能である。
【００１５】
いくつかの実施態様においては、複合コントロールは、パラメータを受け取ることもできる。それらのパラメータは、たとえば、複合コントロールの基本コントロールに関連付けられているパラメータであることが可能である。それらのパラメータは、全体としての複合コントロールに固有のものであることも可能である。たとえば、ＧＵＩ設計者は、国ドロップダウンリストボックスおよび州ドロップダウンリストボックスに関するルックアップテーブルまたはその他のデータソースを識別するためのパラメータを設定できることが可能である。あるいは、ＧＵＩ設計者は、要求される値を供給するデータ構造、たとえば、辞書データタイプまたはハッシュテーブルを提供することができる。
【００１６】
いくつかの実施態様においては、複合コントロールは、そのコントロールを使用することができるコンテキストに関する制限を含むことができる。たとえば、いくつかの複合コントロールは、ポップアップウィンドウにおいてのみ可能にされるように、またはメインディスプレイウィンドウにおいて提示されるだけであるように構成することができる。
【００１７】
いくつかの実装態様においては、複合コントロールは、ＧＵＩ開発環境において作成することができる。たとえば、ＧＵＩ設計者は、キャンバス上のアイテムを複合コントロールとして保存することを選ぶことができる。複合コントロールは、ＧＵＩ開発環境によってアクセス可能な別個のファイルとして保存することができる。
【００１８】
図２は、複合コントロールを作成して使用するための例示的なデータ処理システム２００を示している。システム２００は、データソース２０２を含み、データソース２０２は、データの１つまたは複数のソース、たとえば、ストレージデバイス、またはオンラインデータストリームへの接続を含むことができ、それらのそれぞれは、さまざまなストレージフォーマット（たとえば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、または、メインフレームによって使用されるネイティブフォーマット）のうちの任意のフォーマットでデータを格納することができる。実行環境２０４は、グラフ構成モジュール２０６およびユーザインターフェースモジュール２１２を含む。実行環境２０４は、ＵＮＩＸオペレーティングシステムなどの適切なオペレーティングシステムのコントロールのもとで１つまたは複数の汎用コンピュータ上でホストすることが可能である。たとえば、実行環境２０４は、ローカルの（たとえば、ＳＭＰコンピュータなどのマルチプロセッサシステム）、またはローカルに分散されている（たとえば、クラスタもしくはＭＰＰとして結合されている複数のプロセッサ）、またはリモートの、またはリモートに分散されている（たとえば、ローカルエリアネットワーク（LAN）および／もしくはワイドエリアネットワーク（WAN）を介して結合されている複数のプロセッサ）、またはそれらの任意の組合せである、複数の中央処理装置（CPU）を使用するコンピュータシステムの構成を含む複数ノード並列コンピューティング環境を含むことができる。
【００１９】
グラフ構成モジュール２０６は、以降でより詳細に説明されているように、データフローグラフの構成を変更する。ユーザインターフェースモジュール２１２は、ユーザ２２０に構成情報を表示し、ユーザ２２０から構成アクションを受け取る。ユーザインターフェースモジュール２１２はまた、グラフ構成モジュール２０６と通信し、グラフ構成モジュール２０６は、ユーザ２２０のアクションに基づいてデータフローグラフを構成する。たとえば、データフローグラフは、データソース２０２内に格納することができる。データソース２０２を提供するストレージデバイスは、実行環境２０４にとってローカルにあること、たとえば、実行環境２０４を稼働させているコンピュータに接続されているストレージメディア（たとえば、ハードドライブ２０８）上に格納されていることが可能であり、または実行環境２０４にとってリモートにあること、たとえば、ローカルエリアデータネットワークもしくはワイドエリアデータネットワークを介して、実行環境２０４を稼働させているコンピュータと通信状態にあるリモートシステム（たとえば、メインフレーム２１０）上にホストされていることも可能である。
【００２０】
実行環境２０４は、データストレージシステム２１６と通信状態にあり、データストレージシステム２１６は、ユーザインターフェースを表示するためにユーザインターフェースモジュール２１２によって使用される情報を含む。データストレージシステム２１６はまた、開発環境２１８にアクセス可能であり、開発環境２１８においては、開発者２２０がユーザインターフェースを開発することができ、それらのユーザインターフェースは、データストレージシステム２１６内に格納され、ユーザインターフェースを表示するためにユーザインターフェースモジュール２１２によって使用される。
【００２１】
データソース２０２は、いくつかの実施態様においては、頂点どうしの間における（機能要素のフローを表す）有向リンクによって接続されている頂点（コンポーネントまたはデータセット）を含むデータフローグラフとしてアプリケーションを開発するためのシステムである。たとえば、そのような環境は、参照によって本明細書に組み込まれている「ＭＡＮＡＧＩＮＧ  ＰＡＲＡＭＥＴＥＲＳ  ＦＯＲ  ＧＲＡＰＨ−ＢＡＳＥＤ  ＡＰＰＬＩＣＡＴＩＯＮＳ」という名称の米国特許出願公開第２００７／００１１６６８号においてより詳細に説明されている。
【００２２】
データフローグラフは、１つまたは複数のデータソースからのデータを処理するデータフローグラフ実行環境内で実行されるコンピュータプログラムとみなすことができる。データソースからのデータは、データフローグラフに従って操作および処理され、１つまたは複数のデータシンクへエクスポートされる。データソースおよびデータシンクは、たとえば、ファイル、データベース、データストリーム、またはキューを含むことができる。データフローグラフは、データ処理コンポーネントを表すノードを含む有向グラフとして表され、それらのデータ処理コンポーネントはそれぞれ、少なくとも１つのデータ入力からのデータを処理して少なくとも１つのデータ出力にデータを提供するためのコードを含み、ノードは、データソースおよび／またはデータシンクにアクセスするためのデータセットオブジェクトを表している。ノードどうしは、有向リンクによって接続されており、それらの有向リンクは、データソースにおいて始まってデータシンクにおいて終わる、コンポーネントどうしの間におけるデータのフローを表している。アップストリームコンポーネントのデータ出力ポートは、ダウンストリームコンポーネントのデータ入力ポートへ接続されている。データフローグラフは、データセットオブジェクトによって表される異なるデータソースおよび異なるデータシンクに関して再利用することができる。たとえば、データフローグラフを実装するために使用されるデータ構造およびプログラムコードは、異なるソースおよびシンクが容易に代用されることを可能にするためにパラメータ化されることによって複数の異なる構成をサポートすることができる。さらに、いくつかのアレンジにおいては、データフローグラフのフローは、１つのコンポーネントまたは一連のコンポーネントを迂回することができるようにパラメータの使用によって変更することができる。一般には、パラメータは、構成または変更することができるデータフローグラフのプロパティーを表す。プロパティーの一例が、「入力ファイル」であり、その値は、データフローグラフに関するデータソースとして機能するデータファイルを識別する。プロパティーは、データフローグラフの使用のたびに変更することができ、データフローグラフは、その変更の結果として別々のオペレーションを実行することができる。データフローグラフは、特定のアクションを実行するようにグラフの事前コンパイルを変更することによってコンパイル時に、またはパラメータを設定すること、もしくはデータフローグラフによって使用されている構成ファイルを変更することによってランタイムに構成することができる。
【００２３】
たとえば、図３Ａを参照すると、データフローグラフ３０２は、データソース３０６ａ、３０６ｂ、コンポーネント３０８ａ〜ｃ、グラフインターフェースコンポーネント３１０、およびデータシンク３１２を含むことができる。ソース、コンポーネント、およびシンクのそれぞれは、パラメータ３０４ａ〜ｆのセットに関連付けることができる。１つのソース、コンポーネント、またはシンクに関するパラメータは、異なるソース、コンポーネント、またはシンクに関するパラメータを評価するために使用することができる。この例においては、ソース３０６ａ、３０６ｂは、コンポーネント３０８ａ、３０８ｃの入力ポートに接続されている。コンポーネント３０８ａの出力ポートは、コンポーネント３０８ｂの入力ポートに接続されており、グラフインターフェースコンポーネント３１０の出力ポートは、データシンク３１２に接続されている。ソース、コンポーネント、およびシンクの間における接続は、データフローを定義する。
【００２４】
グラフインターフェースコンポーネント３１０は、グラフのコンポーネントであり、実行時にグラフが別のグラフを動的に実行することを可能にする。たとえば、データフローグラフ３０２が実行されるときに、グラフインターフェースコンポーネント３１０は、データフローグラフ３１６またはデータフローグラフ３１８を動的にロードして実行することができる。いくつかの実装態様においては、グラフインターフェースコンポーネント３１０は、データの入力フローを受け取ってデータの出力フローを生み出すインターフェースを定義することができる。ロードされて実行されるデータフローグラフは、パラメータ、データ要素からのデータ値、またはその他の任意の値に基づいて特定することができる。
【００２５】
データソース、コンポーネント、またはシンクのうちのいくつかは、グラフの挙動のうちのいくらかを定義することができる入力パラメータ３０４ａ〜ｆを有することができる。たとえば、パラメータは、物理的なディスク上のデータソースまたはデータシンクのロケーションを定義することができる。パラメータは、コンポーネントの挙動を定義することもでき、たとえば、パラメータは、ソーティングコンポーネントが入力をどのようにソートするかを定義することができる。いくつかのアレンジにおいては、１つのパラメータの値が別のパラメータの値に依存する場合がある。たとえば、ソース３０６ａは、特定のディレクトリにおけるファイル内に格納することができる。パラメータセット３０４ａは、「ＤＩＲＥＣＴＯＲＹ」と呼ばれるパラメータと、「ＦＩＬＥＮＡＭＥ」と呼ばれる別のパラメータとを含むことができる。このケースにおいては、ＦＩＬＥＮＡＭＥパラメータは、ＤＩＲＥＣＴＯＲＹパラメータに依存することになる（たとえば、ＤＩＲＥＣＴＯＲＹは「／ｕｓｒ／ｌｏｃａｌ／」である場合があり、ＦＩＬＥＮＡＭＥは「／ｕｓｒ／ｌｏｃａｌ／ｉｎｐｕｔ．ｄａｔ」である場合がある）。パラメータは、その他のコンポーネントに関するパラメータに依存する場合もある。たとえば、シンク３１２の物理的なロケーションは、ソース３０６ａの物理的なロケーションに依存する場合がある。この例においては、シンク３１２は、パラメータのセット３０４ｆを含み、このセット３０４ｆは、ＦＩＬＥＮＡＭＥパラメータを含み、このＦＩＬＥＮＡＭＥパラメータは、ソース３０６ａのＤＩＲＥＣＴＯＲＹパラメータに依存し、たとえば、セット３０４ｆ内のＦＩＬＥＮＡＭＥパラメータは、「／ｕｓｒ／ｌｏｃａｌ／ｏｕｔｐｕｔ．ｄａｔ」である場合があり、「／ｕｓｒ／ｌｏｃａｌ／」という値は、セット３０４ａ内のＤＩＲＥＣＴＯＲＹパラメータから得られる。
【００２６】
同様に、データフローグラフ３１６および３１８は、それぞれパラメータセット３０４ｇおよび３０４ｈを有することができる。
【００２７】
いくつかの実施態様においては、パラメータセット３０４ａ〜ｆを、データフローグラフ全体に関するパラメータを含む単一のパラメータセット、たとえば、パラメータセット３１４へと結合することができる。しかしながら、グラフインターフェースコンポーネント３１０は、ランタイムにデータフローグラフを動的にロードして実行するので、パラメータリスト全体は知られていない場合がある。たとえば、グラフインターフェースコンポーネント３１０が、データフローグラフ３１６をロードおよび実行させるならば、パラメータセット３０４ｇを投入することが必要となる場合がある。
【００２８】
パラメータセット、たとえばパラメータセット３１４は、開発環境、たとえば図２の開発環境２１８において使用するために発行することまたはその他の形で利用可能にすることができる。発行されたパラメータセットは、データフローグラフのアプリケーションプログラミングインターフェース（API）の一部として参照することができる。
【００２９】
構成インターフェースが、クライアントデバイス上に提示されて、ユーザ２２０が図２のグラフ構成モジュール２０６にアクセスすることを可能にする。図３を再び参照すると、構成インターフェース内で、パラメータセット３０４ａ〜３０４ｆまたはパラメータセット３１４のパラメータを、ユーザと対話するためのさまざまなグループへと再編成することができ、それは、技術的な考慮事項よりもむしろビジネス上の考慮事項を反映する。ユーザ入力に基づいてパラメータに関する値を受け取るための構成インターフェースは、さまざまなパラメータを、それらのパラメータどうしの間における関係に従って、サーバ上の開発環境の態様によって必ずしも制限されないフレキシブルな方法で表示することができる。
【００３０】
データフローグラフの構築は、いくつかのケースにおいては高度に技術的な性質を有することがある。特定のビジネスの目的を達成するために書かれる一方で、グラフの基礎をなす構造および構築は、技術的な考慮事項に基づいて特定される。たとえば、グラフのコンポーネントは、再利用性を最大化するように、または並列処理をサポートするように選択することができる。その一方で、グラフがどこでどのように使用されるかは、大部分がビジネス上の決定事項である場合がある。パラメータ化されたデータフローグラフに関連付けられているパラメータのうちのいくつかを使用して、ビジネスユーザが、データフローグラフの実施の背後にある技術的な複雑さを理解する必要なくそれらのデータフローグラフをカスタマイズすることを可能にすることができる。パラメータ化されたデータフローグラフは、カスタマイゼーションを簡単にし、再利用を容易にする。データフローグラフを構築するためのパラメータ値の識別のための構成インターフェースをクライアントマシン上に提示することができる。たとえば、そのような環境は、参照によって本明細書に組み込まれている「ＳＰＥＣＩＦＹＩＮＧ  ＵＳＥＲ  ＩＮＴＥＲＦＡＣＥ  ＥＬＥＭＥＮＴＳ」という名称の米国特許出願公開第２００１１／０１４５７４８号においてさらに詳細に説明されている。
【００３１】
構成インターフェースは、実行フローグラフを構成するために使用することもできる。実行フローグラフは、外部プロセスが実行されることになる順序を記述する有向グラフである。たとえば、実行フローグラフは、一連のデータフローグラフが実行されることになる順序を指定することができる。
【００３２】
データフローグラフを構築するためのパラメータ値の識別のための構成インターフェースの開発は、いくつかのケースにおいては高度に技術的な性質を有することもある。上述のように、基礎をなすグラフは、しばしば技術的な考慮事項に基づいて構築され、その一方で構成インターフェースは、しばしばビジネス上の考慮事項に基づいて開発される。結果として、構成インターフェースは、１つまたは複数のデータフローグラフに関するパラメータを提供することができる。それぞれのデータフローグラフは、ＡＰＩによって提供された別個のパラメータセットを有する。さらに、構成インターフェースの開発は、基礎をなすデータフローグラフの開発とは異なるスキルを含む。したがって、構成インターフェースの開発は、技術的な考慮事項、ビジネス上の考慮事項、および使いやすさに関する考慮事項の組合せを必要とする。
【００３３】
構成インターフェースの生成を容易にするために、ビルダーインターフェースをクライアントマシンのユーザに提示することができる。ビルダーインターフェースは、開発環境２１８の一部であることが可能である。
【００３４】
図３Ｂは、構成可能なデータフローグラフなど、構成可能なアプリケーション上でパラメータを設定するための例示的な構成インターフェースを示している。この例においては、２つのデータフローグラフ３０２および３０６が、インターフェース３２０内に示されており、構成インターフェース３２０に関連付けられている。この例においては、パラメータ３０４を使用して、構成可能なデータフローグラフ３０２を構成することができる。同様に、パラメータ３０８、３１０、３１２を使用して、データフローグラフ３０６を構成することができる。
【００３５】
たとえば、構成インターフェース３２０は、それらのデータフローグラフによって処理されることになるデータのビジネス知識を有するユーザが、パラメータに値を割り振ること、およびそれによって単一の構成インターフェースを使用して両方のデータフローグラフを構成することを可能にする。この例においては、構成インターフェース３２０は、パラメータ１フィールド３２２を含む。パラメータ１フィールドは、インターフェース３２０において表されているパラメータ３１２に値を割り振るために使用される。同様に、パラメータ２フィールド３２４は、パラメータ３１０に値を割り振るために使用される。パラメータ３フィールドは、パラメータ３０４に値を割り振るために使用される。パラメータ４フィールド３２８は、パラメータ３０８に値を割り振るために使用される。
【００３６】
パラメータフィールドは、入力されることになるデータのタイプに基づいて選択することができる。たとえば、パラメータ１フィールド３２２は、ユーザが任意の値（たとえば、整数、浮動小数点値など）を入力することを可能にするテキストボックスである。パラメータ２フィールド３２４は、ユーザがリストから値を選択することを可能にするリストボックスである。パラメータ３フィールド３２６は、ユーザが、少ない数のオプション（この例においては、２つのオプション値）から値を選択することを可能にするラジオボタンボックスである。パラメータ４フィールド３２８は、ユーザが、大量のテキストを入力することを可能にするさらに大きなテキストボックスである。
【００３７】
その他のＧＵＩコントロールを選択することもできる。たとえば、ユーザは、特定の入力ファイル、またはそのファイルがネットワークを介してダウンロードされる元になるロケーションを選択するためにファイルセレクタを開くことができる場合がある。
【００３８】
図４は、ＧＵＩコントロールに焦点を合わせた構成インターフェースを作成するためのビルダーインターフェース４００の一例を示している。ビルダーインターフェース４００は、テンプレート名４０２を含む。テンプレート名４０２は、作成されている構成インターフェースを識別する。ビルダーインターフェース４００のユーザインターフェースタブ４０４は、表示エリア４３０を含む。この表示エリアは、構成インターフェースの構築のための「ＷＹＳＩＷＹＧ」（what you see is what you get）インターフェースを提示する。表示エリア４３０は、開発者がＧＵＩコントロールを配置するキャンバスと考えることができる。開発者は、コンポーネントセクション４２２からＧＵＩコントロールを選択し、そのＧＵＩコントロールを表示エリア４３０に加えて構成インターフェースを作成することができる。この例においては、表示エリア４３０は、ソースファイルに対応するテキスト入力コントロール４１０と、ターゲットファイルに対応するテキスト入力コントロール４１２とを含むボックスコントロール４０６を含む。表示エリア４３０はまた、ファイルセレクタコントロール４１８を含むボックスコントロール４１４を含む。表示エリアは、仕切り４１６などの仕切りを使用して、ＧＵＩを複数のセクションへと区分することができる。それらの区分は、基本的な構造をユーザに提供することによって、インターフェースの作成を簡単にするために使用することができる。
【００３９】
コンポーネントセクション４２２は、表示エリア４３０に加えることができるさまざまなコントロールを含む。利用可能なＧＵＩコントロールは、ユーザ入力を受け取ってパラメータに値を割り振る入力コントロールを含む。利用可能なＧＵＩコントロールはまた、１つまたは複数のコントロールをグループ化する視覚的なアウトラインを作成するボックスなどのグルーピングコントロールを含む。開発者は、ルールに基づくコントロールを選択することもでき、これは、フィールド間の依存関係を開発者が作成することを可能にする。たとえば、ビジネスルールコントロールは、そのビジネスルールコントロールの出力と、構成可能なアプリケーションを構成するために使用されるパラメータとの間におけるマッピングを提供するパラメータを開発者が構成することを可能にする。開発者は、データに基づくコントロールを選択することもでき、これは、グラフによって生み出されたデータを構成インターフェースのユーザが見ることを可能にする。
【００４０】
コンポーネントセクション４２２は、複合コントロールを含むこともできる。たとえば、フィルタグラフ構成４３２は、フィルタグラフを構成するのに十分なプリミティブコントロールおよび実行可能な命令を含む複合コントロールであることが可能である。一般には、プリミティブコントロールは、ウィンドウまたはテキストボックスなど、ユーザによって変更可能な情報アレンジを表示するグラフィカルユーザインターフェース（GUI）の要素である。プリミティブコントロールは、基本的な視覚的なビルディングブロックであり、アプリケーションにおいて組み合わされると、そのアプリケーションによって処理されるすべてのデータと、このデータ上での利用可能な対話とを保持する。
【００４１】
それぞれのコントロールは、１つまたは複数の属性を有することができる。これらの属性は、コントロール属性エリア４２６において表示することができる。この例においては、コントロール属性エリア４２６は、テキスト入力コントロール４１０に関する属性を表示している。コントロール属性エリア４２６は、ユーザが、コントロールに関するプロパティー値のうちの任意の値にパラメータ値を割り振ることを可能にする。たとえば、選択された値のプロパティー４２８は、ＳＯＵＲＣＥ＿ＵＲＬパラメータ４３０に関する値を提供する。
【００４２】
開発者は、構成インターフェースのその他のグラフィカルな特徴を規定するルールを確立することもできる。たとえば、開発者は、事前に定義された一式の基準が満たされない限り特定のＧＵＩコントロールが表示されないように指定することができ、たとえば、ターゲットファイルコントロール４１２は、ソースファイルコントロール４１０が投入を受けない限り表示を行うことができない。
【００４３】
いくつかの実装態様においては、複合コントロール内でルールを指定することもできる。たとえば、複合コントロールは、事前に定義された一式の基準が満たされない限り複合コントロール内の特定のプリミティブコントロールが表示されないように指定することができる。別の例においては、上述のように、複合コントロール内のプリミティブコントロールは、別のプリミティブコントロールにおいて提供された値に基づいて投入を受けることができる。
【００４４】
図５を参照すると、データフローグラフに関連付けられているパラメータを設定するために複合コントロールを作成することができる。上で論じたように、ユーザインターフェースを使用して、データフローグラフのパラメータを構成することができる。この例においては、複合コントロール５０２は、データフローグラフ５０４に関連付けられているパラメータをユーザが設定することを可能にするフィールドを含む。上で論じたように、複合コントロールは、複合コントロールおよびその他のロジックを構成する基本コントロールどうしの間における対話をコントロールするプログラミング命令を含むことができる。この例においては、複合コントロール５０２は、データフローグラフ５０４に関するパラメータを設定するプログラミング命令を含む。ユーザインターフェース５０６は、ビルダーインターフェースの表示エリアに相当し、たとえば、ユーザインターフェース５０６は、図４のビルダーインターフェース４００の表示エリア４３０であることが可能である。
【００４５】
ユーザインターフェース５０６は、複合コントロールを配置することができるエリア５１０を含む。いくつかの実施態様においては、ユーザインターフェース５０６は、コントロールをどのように配置することができるかを指示および制限するテンプレートを含むことができる。たとえば、ユーザインターフェース５０６は、コントロールの配置を表形式に制限することができる。あるいは、ユーザインターフェース５０６は、ユーザインターフェース５０６を別々のセクションへと仕切ることができ、それぞれのセクションは、１つまたは複数のコントロールを保持することができる。その他の実装態様においては、ユーザインターフェース５０６は、ユーザがユーザインターフェース５０６上の任意の場所でコントロールを構成することを可能にすることができる。
【００４６】
この例においては、ユーザインターフェース５０６は、データフローグラフ５０８に関するパラメータを設定するように設計されている。データフローグラフ５０６の一部分は、コンポーネント５１６を含む。コンポーネント５１６は、グラフインターフェースコンポーネント５１２に接続されている。上で論じたように、グラフインターフェースコンポーネント５１２は、いくつかの異なる潜在的なデータフローグラフを実行するように構成されている。グラフインターフェースコンポーネント５１２は、データシンク５１４に接続されている。
【００４７】
データフローグラフ５０８を構成するためのＧＵＩを作成する際に、ユーザは、グラフインターフェースコンポーネント５１２によって実行されることになるデータフローグラフを選択することができる。この例においては、ユーザは、データフローグラフ５０４がグラフインターフェースコンポーネント５１２によって実行されるべきであるということを特定する。
【００４８】
ユーザは、データフローグラフ５０４に関連付けられている複合コントロール５０２を選択して、その複合コントロール５０２をエリア５１０内に配置することによって、データフローグラフ５０４をグラフインターフェースコンポーネント５１２に関連付けることができる。複合コントロール５０２を加えると、ユーザインターフェース内にエリアが作成され、そこでは、ビジネスユーザが、データフローグラフ５０８およびデータフローグラフ５０４を構成することができる。たとえば、ユーザインターフェース５０６は、ビジネスユーザによって保存またはエクスポートして後でアクセスすることが可能である。ビジネスユーザは、完成されたユーザインターフェースを提示される。ユーザインターフェース５０６のフィールドに値を供給することによって、ビジネスユーザは、データフローグラフ５０４を含むデータフローグラフ５０８を構成する。
【００４９】
いくつかの実施態様においては、エリア５１０は、グラフインターフェースコンポーネント５１２に関連付けられる。別の実施態様においては、このシステムは、データフローグラフに関連付けるための適切なグラフインターフェースコンポーネントを、そのグラフインターフェースコンポーネントおよびそのデータフローグラフの両方に関連付けられているインターフェースに基づいて特定する。たとえば、データフローグラフ５０４は、入力データの２つのフローを必要とし、出力データの１つのフローを生成する。エリア５１０は、その基準を満たすデータフローグラフに関連付けられている任意の複合コントロールで満たすことができる。
【００５０】
いくつかの実施態様においては、複合コントロールを、その複合コントロールをサブグラフに関連付けたグラフパラメータに結び付けることができる。
【００５１】
いくつかの実施態様においては、複合コントロールを複数のデータフローグラフに関連付けることができる。たとえば、複合コントロールは、どのデータフローグラフがグラフインターフェースコンポーネント５１２によって実行されるべきであるかをビジネスユーザが選択することを可能にする選択フィールド（たとえば、リストボックス、ドロップダウンリストボックスなど）を含むことができる。ビジネスユーザが選択フィールドからデータフローグラフを選択すると、複合コントロールは、選択されたデータフローグラフを構成するのに適している一式のフィールドを提示することができる。
【００５２】
図６は、複合表示要素を使用してアプリケーションを構成するための例示的なプロセスのフローチャートである。たとえば、このプロセスは、コンピュータシステムなどのデータ処理装置によって実行することができる。説明を簡単にするために、このプロセスについては、このプロセスを実行するシステムに関連して説明する。
【００５３】
アプリケーションを構成するためのユーザインターフェースを受け取ることができる（６０２）。このユーザインターフェースは、ビルダーインターフェースを使用して作成することができる。ビルダーインターフェースは、数ある中でも、ユーザインターフェースに加えることができるコントロールおよび表示要素の提示のためのパレットを含むことができる。
【００５４】
第２のアプリケーションに関連付けられている複合表示要素を表示することができる（６０４）。この複合表示要素は、パレットにおいてユーザに提示することができる。この複合表示要素は、第２のアプリケーションを構成するために使用することができる１つまたは複数の表示要素を含むことができる。
【００５５】
複合表示要素とユーザインターフェースとの間における関連付けを受け取ることができる（６０６）。この関連付けは、ユーザのアクションに起因して生じることがある。たとえば、ユーザは、複合コントロールを表すアイコンをパレットから選択して、その複合コントロールをユーザインターフェース上にドラッグアンドドロップすることができる。
【００５６】
第２のアプリケーションをそのアプリケーションに関連付けることができる（６０８）。複合コントロールとユーザインターフェースとの関連付けを受け取ったことに応答して、このシステムは、第２のアプリケーションをそのアプリケーションに関連付けることができる。
【００５７】
上述の複合コントロールアプローチを使用するグラフィカルユーザインターフェースは、適切なソフトウェアを実行するコンピューティングシステムを使用して実装することができる。たとえば、そのソフトウェアは、少なくとも１つのプロセッサと、（揮発性および／または不揮発性のメモリ要素および／またはストレージ要素を含む）少なくとも１つのデータストレージシステムと、（少なくとも１つの入力デバイスまたはポートを使用して入力を受け取るための、および少なくとも１つの出力デバイスまたはポートを使用して出力を提供するための）少なくとも１つのユーザインターフェースとをそれぞれが含む（分散型、クライアント／サーバ、またはグリッドなど、さまざまなアーキテクチャーのものであることが可能である）１つまたは複数のプログラムされたまたはプログラム可能なコンピューティングシステム上で実行される１つまたは複数のコンピュータプログラムにおける手順を含むことができる。そのソフトウェアは、たとえば、データフローグラフの設計、構成、および実行に関連したサービスを提供するさらに大きなプログラムの１つまたは複数のモジュールを含むことができる。そのプログラムのモジュール（たとえば、データフローグラフの要素）は、データリポジトリ内に格納されているデータモデルに準拠するデータ構造またはその他の編成されたデータとして実装することができる。
【００５８】
そのソフトウェアは、（たとえば、汎用もしくは専用のコンピューティングシステムもしくはデバイスによって読み取り可能な）ＣＤ−ＲＯＭもしくはその他のコンピュータ可読メディアなどの有形の非一時的なメディア上で提供すること、またはネットワークの通信メディアを介して、そのソフトウェアが実行されるコンピューティングシステムの有形の非一時的なメディアへ配信すること（たとえば、伝搬される信号内に含めて符号化すること）が可能である。処理のうちのいくつかまたはすべては、専用のコンピュータ上で、または専用のハードウェア、たとえば、コプロセッサもしくはフィールドプログラマブルゲートアレイ（FPGA）もしくは専用の特定用途向け集積回路（ASIC）を使用して実行することができる。処理は、分散された様式で実装することができ、その様式においては、ソフトウェアによって指定された計算の別々の部分が、別々のコンピューティング要素によって実行される。それぞれのそのようなコンピュータプログラムは、好ましくは、汎用または専用のプログラム可能なコンピュータによってアクセス可能なストレージデバイスのコンピュータ可読ストレージメディア（たとえば、ソリッドステートメモリもしくはソリッドステートメディア、または磁気メディアもしくは光メディア）がそのコンピュータによって読み取られたときに、本明細書において説明されている処理を実行するようにそのコンピュータを構成して動作させるために、そのストレージデバイスメディア上に格納されるか、またはそのストレージデバイスメディアへダウンロードされる。本発明のシステムは、コンピュータプログラムを伴って構成されている有形の非一時的なメディアとして実装されるものとみなすこともでき、そのように構成されているメディアは、本明細書において説明されている処理工程のうちの１つまたは複数を実行するために特定の事前に定義された様式でコンピュータを動作させる。
【００５９】
本発明のいくつかの実施形態について説明してきた。それでもなお、前述の説明は、本発明の範囲を例示することを意図されており、本発明の範囲を限定することを意図されているものではなく、本発明の範囲は、添付の特許請求の範囲の範疇によって定義されているということを理解されたい。したがって、その他の実施形態も、添付の特許請求の範囲の範疇内にある。たとえば、本発明の範囲から逸脱することなく、さまざまな修正を行うことができる。加えて、上述の工程のうちのいくつかは、順序の点で独立していることが可能であり、したがって、説明されている順序とは異なる順序で実行することができる。
【図１】
2020042828.tif 000002
【図２】
2020042828.tif 000003
【図３Ａ】
2020042828.tif 000004
【図３Ｂ】
2020042828.tif 000005
【図４】
2020042828.tif 000006
【図５】
2020042828.tif 000007
【図６】
2020042828.tif 000008
【手続補正書】
【提出日】令和1年10月25日(2019.10.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のアプリケーションを識別することであって、前記第１のアプリケーションがコンピュータ実行可能プログラムである、ことと、
前記第１のアプリケーションに関連付けられている第１の表示オブジェクトをユーザインターフェースにおいて表示することであって、前記第１の表示オブジェクトが、前記第１の表示オブジェクトに表示されるセレクタオブジェクトの第１のセットを含み、セレクタオブジェクトの前記第１のセットと、前記第１のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含み、セレクタオブジェクトは、前記セレクタオブジェクトにマッピングされた前記１つまたは複数のパラメータの少なくとも一つの値の入力用に構成されている、ことと、
第２のアプリケーションを識別することであって、前記第２のアプリケーションがコンピュータ実行可能プログラムである、ことと、
第２のアプリケーションに関連付けられている第２の表示オブジェクトを前記ユーザインターフェースにおいて表示することであって、前記第２の表示オブジェクトが、セレクタオブジェクトの第２のセットを含み、セレクタオブジェクトの前記第２のセットと、前記第２のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、ことと、
前記第２の表示オブジェクトを前記第１の表示オブジェクトに関連付けるユーザアクションの指示を受け取ったことに応答して、前記第１のアプリケーションを、前記第２のアプリケーションを呼び出すように構成することと、
セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第２のセットとを含む第３の表示オブジェクトを作成することと、
を含み、
前記第１のアプリケーションの１つまたは複数のパラメータにマッピングされるセレクタオブジェクトの第１のセットを含む前記第１の表示オブジェクトは、前記第１の表示オブジェクトと、セレクタオブジェクトの前記第１のセットがマッピングされる前記第１のアプリケーションとの間の関係の指示とは無関係であり、セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第１のセットがマッピングされる前記第１のアプリケーションとの間の関係の指示とは無関係であり、且つ、前記第１のアプリケーションと前記第２のアプリケーションとの間の関係の指示とは無関係である、グラフィカルユーザインターフェースに表示される、コンピュータ実施方法。
【請求項２】
ファイルから前記第２の表示オブジェクトを読み取ることをさらに含む、請求項１に記載の方法。
【請求項３】
前記ユーザインターフェースを使用して前記第１のアプリケーションおよび前記第２のアプリケーションを構成するための第３のアプリケーションを生成することをさらに含む、請求項１に記載の方法。
【請求項４】
前記第３のアプリケーションが、第１の表示オブジェクトおよび第２の表示オブジェクトを含み、
前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２の表示オブジェクトに関連付けられている値が変わる、請求項３に記載の方法。
【請求項５】
前記第１のアプリケーションが第１のデータフローグラフであり、前記第２の構成可能なアプリケーションが第２のデータフローグラフである、請求項１に記載の方法。
【請求項６】
前記第１のデータフローグラフを、前記第２のデータフローグラフを実行するように構成することにより、前記第２のアプリケーションを前記第１のアプリケーションに関連付けることを含む、請求項５に記載の方法。
【請求項７】
前記値の入力は、前記値の選択を含む、請求項１に記載の方法。
【請求項８】
前記第３の表示オブジェクトを作成することは、前記第１の表示オブジェクトにおけるセレクタオブジェクトの前記第１のセット、及び前記第２の表示オブジェクトにおけるセレクタオブジェクトの前記第２のセットを、第３の表示オブジェクトとして、セーブすることを含み、
前記セーブに続くある時点で、別のグラフィカルユーザインターフェースに前記第３の表示オブジェクトを表示することを含む、請求項１に記載の方法。
【請求項９】
前記第１の表示オブジェクトに関連付けられている値を変えることを更に含み、
前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２の表示オブジェクトに関連付けられている値が変わる、請求項１に記載の方法。
【請求項１０】
前記第１の表示オブジェクトに関連付けられている値を変えることを更に含み、
前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２のアプリケーションの指示が変わる、請求項１に記載の方法。
【請求項１１】
コンピュータプログラム命令で符号化されている非一時的なコンピュータストレージメディアであって、前記コンピュータプログラム命令が、１つまたは複数のコンピュータによって実行されたときに、
第１のアプリケーションを識別することであって、前記第１のアプリケーションがコンピュータ実行可能プログラムである、ことと、
前記第１のアプリケーションに関連付けられている第１の表示オブジェクトをユーザインターフェースにおいて表示することであって、前記第１の表示オブジェクトが、前記第１の表示オブジェクトに表示されるセレクタオブジェクトの第１のセットを含み、セレクタオブジェクトの前記第１のセットと、前記第１のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含み、セレクタオブジェクトは、前記セレクタオブジェクトにマッピングされた前記１つまたは複数のパラメータの少なくとも一つの値の入力用に構成されている、ことと、
第２のアプリケーションを識別することであって、前記第２のアプリケーションがコンピュータ実行可能プログラムである、ことと、
第２のアプリケーションに関連付けられている第２の表示オブジェクトを前記ユーザインターフェースにおいて表示することであって、前記第２の表示オブジェクトが、セレクタオブジェクトの第２のセットを含み、セレクタオブジェクトの前記第２のセットと、前記第２のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、ことと、
前記第２の表示オブジェクトを前記第１の表示オブジェクトに関連付けるユーザアクションの指示を受け取ったことに応答して、前記第１のアプリケーションを、前記第２のアプリケーションを呼び出すように構成することと、
セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第２のセットとを含む第３の表示オブジェクトを作成することと、
を含むオペレーションを前記１つまたは複数のコンピュータに実行させ、
前記第１のアプリケーションの１つまたは複数のパラメータにマッピングされるセレクタオブジェクトの第１のセットを含む前記第１の表示オブジェクトは、前記第１の表示オブジェクトと、セレクタオブジェクトの前記第１のセットがマッピングされる前記第１のアプリケーションとの間の関係の指示とは無関係であり、セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第１のセットがマッピングされる前記第１のアプリケーションとの間の関係の指示とは無関係であり、且つ、前記第１のアプリケーションと前記第２のアプリケーションとの間の関係の指示とは無関係である、グラフィカルユーザインターフェースに表示される、非一時的なコンピュータストレージメディア。
【請求項１２】
前記オペレーションが、ファイルから前記第２の表示オブジェクトを読み取ることをさらに含む、請求項１１に記載のメディア。
【請求項１３】
前記オペレーションが、前記ユーザインターフェースを使用して前記第１のアプリケーションおよび前記第２のアプリケーションを構成するための第３のアプリケーションを生成することをさらに含む、請求項１１に記載のメディア。
【請求項１４】
前記第３のアプリケーションが、第１の表示オブジェクトおよび第２の表示オブジェクトを含み、前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２の表示オブジェクトに関連付けられている値が変わる、請求項１３に記載のメディア。
【請求項１５】
前記第１のアプリケーションが第１のデータフローグラフであり、前記第２の構成可能なアプリケーションが第２のデータフローグラフである、請求項１１に記載のメディア。
【請求項１６】
前記第２のアプリケーションを前記第１のアプリケーションに関連付けることが、前記第１のデータフローグラフを、前記第２のデータフローグラフを実行するように構成することを含む、請求項１５に記載のメディア。
【請求項１７】
前記オペレーションが、前記第１の表示オブジェクトに関連付けられている値を変えることを更に含み、
前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２の表示オブジェクトに関連付けられている値が変わる、請求項１１に記載のメディア。
【請求項１８】
前記オペレーションが、前記第１の表示オブジェクトに関連付けられている値を変えることを更に含み、
前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２のアプリケーションの指示が変わる、請求項１１に記載のメディア。
【請求項１９】
１つまたは複数のコンピュータと、実行可能な命令を格納している１つまたは複数のストレージデバイスとを含むシステムであって、前記命令が、前記１つまたは複数のコンピュータによって実行されたときに、
第１のアプリケーションを識別することであって、前記第１のアプリケーションがコンピュータ実行可能プログラムである、ことと、
前記第１のアプリケーションに関連付けられている第１の表示オブジェクトをユーザインターフェースにおいて表示することであって、前記第１の表示オブジェクトが、前記第１の表示オブジェクトに表示されるセレクタオブジェクトの第１のセットを含み、セレクタオブジェクトの前記第１のセットと、前記第１のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含み、セレクタオブジェクトは、前記セレクタオブジェクトにマッピングされた前記１つまたは複数のパラメータの少なくとも一つの値の入力用に構成されている、ことと、
第２のアプリケーションを識別することであって、前記第２のアプリケーションがコンピュータ実行可能プログラムである、ことと、
第２のアプリケーションに関連付けられている第２の表示オブジェクトを前記ユーザインターフェースにおいて表示することであって、前記第２の表示オブジェクトが、セレクタオブジェクトの第２のセットを含み、セレクタオブジェクトの前記第２のセットと、前記第２のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、ことと、
前記第２の表示オブジェクトを前記第１の表示オブジェクトに関連付けるユーザアクションの指示を受け取ったことに応答して、前記第１のアプリケーションを、前記第２のアプリケーションを呼び出すように構成することと、
セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第２のセットとを含む第３の表示オブジェクトを作成することと、
を含むオペレーションを前記１つまたは複数のコンピュータに実行させ、
前記第１のアプリケーションの１つまたは複数のパラメータにマッピングされるセレクタオブジェクトの第１のセットを含む前記第１の表示オブジェクトは、前記第１の表示オブジェクトと、セレクタオブジェクトの前記第１のセットがマッピングされる前記第１のアプリケーションとの間の関係の指示とは無関係であり、セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第１のセットがマッピングされる前記第１のアプリケーションとの間の関係の指示とは無関係であり、且つ、前記第１のアプリケーションと前記第２のアプリケーションとの間の関係の指示とは無関係である、グラフィカルユーザインターフェースに表示される、システム。
【請求項２０】
前記オペレーションが、ファイルから前記第２の表示オブジェクトを読み取ることをさらに含む、請求項１９に記載のシステム。
【請求項２１】
前記オペレーションが、前記ユーザインターフェースを使用して前記第１のアプリケーションおよび前記第２のアプリケーションを構成するための第３のアプリケーションを生成することをさらに含む、請求項１９に記載のシステム。
【請求項２２】
前記第３のアプリケーションが、第１の表示オブジェクトおよび第２の表示オブジェクトを含み、前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２の表示オブジェクトに関連付けられている値が変わる、請求項２１に記載のシステム。
【請求項２３】
前記第１のアプリケーションが第１のデータフローグラフであり、前記第２の構成可能なアプリケーションが第２のデータフローグラフである、請求項１９に記載のシステム。
【請求項２４】
前記第２のアプリケーションを前記第１のアプリケーションに関連付けることが、前記第１のデータフローグラフを、前記第２のデータフローグラフを実行するように構成することを含む、請求項２３に記載のシステム。
【請求項２５】
前記オペレーションが、前記第１の表示オブジェクトに関連付けられている値を変えることを更に含み、
前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２の表示オブジェクトに関連付けられている値が変わる、請求項１９に記載のシステム。
【請求項２６】
前記オペレーションが、前記第１の表示オブジェクトに関連付けられている値を変えることを更に含み、
前記第１の表示オブジェクトに関連付けられている値を変えると、前記第２のアプリケーションの指示が変わる、請求項１９に記載のシステム。
【請求項２７】
第１のアプリケーションを識別する手段であって、前記第１のアプリケーションがコンピュータ実行可能プログラムである、手段と、
前記第１のアプリケーションに関連付けられている第１の表示オブジェクトをユーザインターフェースにおいて表示する手段であって、前記第１の表示オブジェクトが、前記第１の表示オブジェクトに表示されるセレクタオブジェクトの第１のセットを含み、セレクタオブジェクトの前記第１のセットと、前記第１のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含み、セレクタオブジェクトは、前記セレクタオブジェクトにマッピングされた前記１つまたは複数のパラメータの少なくとも一つの値の入力用に構成されている、手段と、
第２のアプリケーションを識別する手段であって、前記第２のアプリケーションがコンピュータ実行可能プログラムである、手段と、
第２のアプリケーションに関連付けられている第２の表示オブジェクトを前記ユーザインターフェースにおいて表示する手段であって、前記第２の表示オブジェクトが、セレクタオブジェクトの第２のセットを含み、セレクタオブジェクトの前記第２のセットと、前記第２のアプリケーションの１つまたは複数のパラメータとの間におけるマッピングを含む、手段と、
前記第２の表示オブジェクトを前記第１の表示オブジェクトに関連付けるユーザアクションの指示を受け取ったことに応答して、前記第１のアプリケーションを、前記第２のアプリケーションを呼び出すように構成する手段と、
セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第２のセットとを含む第３の表示オブジェクトを作成する手段と、
を含み、
前記第１のアプリケーションの１つまたは複数のパラメータにマッピングされるセレクタオブジェクトの第１のセットを含む前記第１の表示オブジェクトは、前記第１の表示オブジェクトと、セレクタオブジェクトの前記第１のセットがマッピングされる前記第１のアプリケーションとの間の関係の指示とは無関係であり、セレクタオブジェクトの前記第１のセットと、セレクタオブジェクトの前記第１のセットがマッピングされる前記第１のアプリケーションとの間の関係の指示とは無関係であり、且つ、前記第１のアプリケーションと前記第２のアプリケーションとの間の関係の指示とは無関係である、グラフィカルユーザインターフェースに表示される、システム。
【外国語明細書】
2020042828000001.pdf