(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6084037
(24)【登録日】2017年2月3日
(45)【発行日】2017年2月22日
(54)【発明の名称】ユーザ・インターフェース要素の指定
(51)【国際特許分類】
G06F 9/44 20060101AFI20170213BHJP
【FI】
G06F9/06 620B
【請求項の数】110
【全頁数】25
(21)【出願番号】特願2012-543166(P2012-543166)
(86)(22)【出願日】2010年12月3日
(65)【公表番号】特表2013-513864(P2013-513864A)
(43)【公表日】2013年4月22日
(86)【国際出願番号】US2010058875
(87)【国際公開番号】WO2011081776
(87)【国際公開日】20110707
【審査請求日】2013年11月28日
(31)【優先権主張番号】61/286,293
(32)【優先日】2009年12月14日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】509123208
【氏名又は名称】アビニシオ テクノロジー エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ファーバー,ジェニファー,エム.
(72)【発明者】
【氏名】ゴールドシュラグ,ジョシュア
(72)【発明者】
【氏名】パーメンター,デイビッド,ダブリュー.
(72)【発明者】
【氏名】ウェイクリング,ティム
【審査官】
長谷川 篤男
(56)【参考文献】
【文献】
特表2004−516529(JP,A)
【文献】
特開2007−011809(JP,A)
【文献】
特開2004−349355(JP,A)
【文献】
特開平10−222355(JP,A)
【文献】
特開平06−230953(JP,A)
【文献】
特開平07−152544(JP,A)
【文献】
特開2004−172695(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/44
(57)【特許請求の範囲】
【請求項1】
コンピュータ実行可能アプリケーションを構成するためにユーザ・インターフェースを提供するための方法であって、
ユーザ・インターフェース要素間の関係であって、データフロー・グラフの構成要素を表す複数のノードを含むデータフロー・グラフの構成要素間の依存性、及び、前記構成要素間のデータフローを表す前記ノード間のリンクに基づく、関係と、
前記データフロー・グラフの構成要素のそれぞれの特徴を定義するパラメータと、
前記ユーザ・インターフェース要素のそれぞれの特徴を定義する変数と、
を定義する、仕様を受信すること、及び、
ユーザ・インターフェースの動作中に、前記仕様内に定義された前記関係に基づいてユーザ・インターフェース要素を表示することであって、前記変数の少なくとも1つは、前記ユーザ・インターフェースの少なくとも1つのユーザ・インターフェース要素に影響を与え、前記少なくとも1つのユーザ・インターフェース要素は、前記データフロー・グラフをパラメータ化する際に用いられる少なくとも1つのパラメータの値に影響を与えるように構成されていること、
前記パラメータの少なくとも1つの値に基づいて、前記データフロー・グラフの少なくとも一部のパラメータ化されたインスタンスを生成すること、
前記パラメータ化されたインスタンスを実行し、少なくとも1つのデータ・ソースから受信されたインプットデータを処理し、中間データ又はアウトプットデータになり得る処理されたデータを生成すること、及び
前記処理されたデータの少なくともいくつかに基づいて表示データを表示すること
を含む、方法。
【請求項2】
前記ユーザ・インターフェース要素間の前記関係のうちの少なくともいくつかが、データベース、データ・ファイル、メタデータ・リポジトリ、及びウェブ・サービスからなるグループのうちの少なくとも1つから受信されたデータ要素間の依存性に基づくものである、請求項1に記載の方法。
【請求項3】
前記仕様が、前記ユーザ・インターフェースの前記動作中に受信されたデータを示すソース値を定義し、前記ユーザ・インターフェースの前記動作中に更新されたデータを示すターゲット値を定義する、請求項1に記載の方法。
【請求項4】
前記ユーザ・インターフェースの動作中に、前記ユーザ・インターフェース要素とのユーザの対話に基づいてデータを更新することをさらに含む、請求項1に記載の方法。
【請求項5】
前記パラメータのうちの少なくともいくつかが前記更新されたデータを含む、請求項4に記載の方法。
【請求項6】
前記更新されたデータのうちの少なくともいくつかが、データ・ファイル、データベース、及びメタデータ・エンジン、及びウェブ・サービスに関連付けられたデータ・ソースのうちの1つに含まれる、請求項4に記載の方法。
【請求項7】
前記パラメータに関連付けられたデータを外部ソースから受信することをさらに含む、請求項1に記載の方法。
【請求項8】
前記外部ソースが、データ・ファイル、データベース、メタデータ・エンジン、及びウェブ・サービスのうちの1つである、請求項7に記載の方法。
【請求項9】
前記データフロー・グラフのリンクによって表されたデータの少なくとも1つの流れに関連付けられた構成要素出力データを表示することをさらに含む、請求項1に記載の方法。
【請求項10】
少なくとも1つのパラメータが前記データフロー・グラフの前記構成要素のうちの少なくとも1つのプロパティを定義し、前記プロパティは前記ユーザ・インターフェース要素のうちの1つに関連付けられる、請求項1に記載の方法。
【請求項11】
前記ユーザ・インターフェース要素が前記プロパティにデータを提供するように定義される、請求項10に記載の方法。
【請求項12】
前記ユーザ・インターフェース要素が前記プロパティからデータを受信するように定義される、請求項10に記載の方法。
【請求項13】
ユーザ・インターフェースの前記動作中に、前記変数のうちの少なくとも1つに基づいて少なくとも1つのユーザ・インターフェース要素が表示される、請求項1に記載の方法。
【請求項14】
前記ユーザ・インターフェース要素が前記変数のうちの1つにおける変更に応答して表示される、請求項13に記載の方法。
【請求項15】
前記仕様が拡張マークアップ言語で定義される、請求項1に記載の方法。
【請求項16】
前記仕様が、データベース管理システム本来の言語で定義された表現を含む、請求項1に記載の方法。
【請求項17】
前記データフロー・グラフから少なくとも1つのパラメータを自動的に獲得することを含む、請求項1に記載の方法。
【請求項18】
少なくとも1つの変数が、データベース・システムに記憶されたオブジェクトへの参照を定義する、請求項1に記載の方法。
【請求項19】
前記仕様が、前記仕様外部のデータ・ファイルへの参照を定義する、請求項1に記載の方法。
【請求項20】
前記参照が、前記データ・ファイルに記憶された値へのポインタを含む、請求項19に記載の方法。
【請求項21】
少なくとも1つの変数が前記参照を定義する、請求項19に記載の方法。
【請求項22】
少なくとも1つのパラメータが前記参照を定義する、請求項19に記載の方法。
【請求項23】
前記仕様が、データベース・システムに記憶されたデータにアクセスするためのクエリー文字列を含む、請求項1に記載の方法。
【請求項24】
前記クエリー文字列が、前記ユーザ・インターフェースの前記動作中にユーザによって指定された引数を含む、請求項23に記載の方法。
【請求項25】
前記クエリー文字列が、前記ユーザ・インターフェースの前記動作中に実行可能である、請求項23に記載の方法。
【請求項26】
少なくとも1つのパラメータが前記クエリー文字列を含む、請求項23に記載の方法。
【請求項27】
少なくとも1つの変数が前記クエリー文字列を含む、請求項23に記載の方法。
【請求項28】
コンピュータ実行可能アプリケーションを構成するためにユーザ・インターフェースを提供するためのコンピュータ・プログラムを記憶するコンピュータ読み取り可能媒体であって、前記コンピュータ・プログラムは、
ユーザ・インターフェース要素間の関係であって、データフロー・グラフの構成要素を表す複数のノードを含むデータフロー・グラフの構成要素間の依存性、及び、前記構成要素間の前記データフローを表すノード間のリンクに基づく、関係と、
前記データフロー・グラフの前記構成要素のそれぞれの特徴を定義するパラメータと、
前記ユーザ・インターフェース要素のそれぞれの特徴を定義する変数と、
を定義する、仕様を受信すること、及び、
ユーザ・インターフェースの動作中に、前記仕様内に定義された前記関係に基づいてユーザ・インターフェース要素を表示することであって、前記変数の少なくとも1つは、前記ユーザ・インターフェースの少なくとも1つのユーザ・インターフェース要素に影響を与え、前記少なくとも1つのユーザ・インターフェース要素は、前記データフロー・グラフをパラメータ化する際に用いられる少なくとも1つのパラメータの値に影響を与えるように構成されていること、
前記パラメータの少なくとも1つの値に基づいて、前記データフロー・グラフの少なくとも一部のパラメータ化されたインスタンスを生成すること、
前記パラメータ化されたインスタンスを実行し、少なくとも1つのデータ・ソースから受信されたインプットデータを処理し、中間データ又はアウトプットデータになり得る処理されたデータを生成すること、及び
前記処理されたデータの少なくともいくつかに基づいて表示データを表示すること
を、コンピュータに実行させるための命令を含む、コンピュータ読み取り可能媒体。
【請求項29】
コンピュータ実行可能アプリケーションを構成するためのシステムであって、
ユーザ・インターフェース要素間の関係であって、データフロー・グラフの構成要素を表す複数のノードを含むデータフロー・グラフの構成要素間の依存性、及び、構成要素間のデータフローを表すノード間のリンクに基づく、関係と、
前記データフロー・グラフの前記構成要素のそれぞれの特徴を定義するパラメータと、
前記ユーザ・インターフェース要素のそれぞれの特徴を定義する変数と、
を定義する、仕様を受信するための手段と、
ユーザ・インターフェースの動作中に、前記仕様内に定義された関係に基づいてユーザ・インターフェース要素を表示するための手段であって、前記変数の少なくとも1つは、前記ユーザ・インターフェースの少なくとも1つのユーザ・インターフェース要素に影響を与え、前記少なくとも1つのユーザ・インターフェース要素は、前記データフロー・グラフをパラメータ化する際に用いられる少なくとも1つのパラメータの値に影響を与えるように構成され、前記パラメータの少なくとも1つの値に基づいて、前記データフロー・グラフの少なくとも一部のパラメータ化されたインスタンスを生成すること、前記パラメータ化されたインスタンスを実行し、少なくとも1つのデータ・ソースから受信されたインプットデータを処理し、中間データ又はアウトプットデータになり得る処理されたデータを生成すること、及び前記処理されたデータの少なくともいくつかに基づいて表示データを表示することを含む、手段と、
を含む、システム。
【請求項30】
コンピュータ実行可能アプリケーションを構成するためにユーザ・インターフェースを提供するシステムであって、
ユーザ・インターフェース要素間の関係であって、データフロー・グラフの構成要素を表す複数のノードを含むデータフロー・グラフの構成要素間の依存性、及び、構成要素間のデータフローを表すノード間のリンクに基づく、関係と、
前記データフロー・グラフの前記構成要素のそれぞれの特徴を定義するパラメータと、
前記ユーザ・インターフェース要素のそれぞれの特徴を定義する変数と、
を定義する、仕様を受信するように構成されるコンピュータシステムを含み、
前記コンピュータシステムは、ユーザ・インターフェースの動作中に、前記仕様内に定義された関係に基づいてユーザ・インターフェース要素を表示し、ここで、前記変数の少なくとも1つは、前記ユーザ・インターフェースの少なくとも1つのユーザ・インターフェース要素に影響を与え、前記少なくとも1つのユーザ・インターフェース要素は、前記データフロー・グラフをパラメータ化する際に用いられる少なくとも1つのパラメータの値に影響を与えるように構成され、
前記パラメータの少なくとも1つの値に基づいて、前記データフロー・グラフの少なくとも一部のパラメータ化されたインスタンスを生成し、
前記パラメータ化されたインスタンスを実行し、少なくとも1つのデータ・ソースから受信されたインプットデータを処理し、中間データ又はアウトプットデータになり得る処理されたデータを生成し、及び
前記処理されたデータの少なくともいくつかに基づいて表示データを表示するようにさらに構成される、システム。
【請求項31】
前記ユーザ・インターフェース要素間の前記関係のうちの少なくともいくつかが、データベース、データ・ファイル、メタデータ・リポジトリ、及びウェブ・サービスからなるグループのうちの少なくとも1つから受信されたデータ要素間の依存性に基づくものである、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項32】
前記仕様が、前記ユーザ・インターフェースの前記動作中に受信されたデータを示すソース値を定義し、前記ユーザ・インターフェースの前記動作中に更新されたデータを示すターゲット値を定義する、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項33】
前記ユーザ・インターフェースの動作中に、前記ユーザ・インターフェース要素とのユーザの対話に基づいてデータを更新するための命令をさらに含む、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項34】
前記パラメータのうちの少なくともいくつかが前記更新されたデータを含む、請求項33に記載のコンピュータ読み取り可能媒体。
【請求項35】
前記更新されたデータのうちの少なくともいくつかが、データ・ファイル、データベース、及びメタデータ・エンジン、及びウェブ・サービスに関連付けられたデータ・ソースのうちの1つに含まれる、請求項33に記載のコンピュータ読み取り可能媒体。
【請求項36】
前記パラメータに関連付けられたデータを外部ソースから受信するための命令をさらに含む、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項37】
前記外部ソースが、データ・ファイル、データベース、メタデータ・エンジン、及びウェブ・サービスのうちの1つである、請求項36に記載のコンピュータ読み取り可能媒体。
【請求項38】
前記データフロー・グラフのリンクによって表されたデータの少なくとも1つの流れに関連付けられた構成要素出力データを表示するための命令をさらに含む、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項39】
少なくとも1つのパラメータが前記データフロー・グラフの前記構成要素のうちの少なくとも1つのプロパティを定義し、前記プロパティは前記ユーザ・インターフェース要素のうちの1つに関連付けられる、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項40】
前記ユーザ・インターフェース要素が前記プロパティにデータを提供するように定義される、請求項39に記載のコンピュータ読み取り可能媒体。
【請求項41】
前記ユーザ・インターフェース要素が前記プロパティからデータを受信するように定義される、請求項39に記載のコンピュータ読み取り可能媒体。
【請求項42】
ユーザ・インターフェースの前記動作中に、前記変数のうちの少なくとも1つに基づいて少なくとも1つのユーザ・インターフェース要素が表示される、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項43】
前記ユーザ・インターフェース要素が前記変数のうちの1つにおける変更に応答して表示される、請求項42に記載のコンピュータ読み取り可能媒体。
【請求項44】
前記仕様が拡張マークアップ言語で定義される、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項45】
前記仕様が、データベース管理システム本来の言語で定義された表現を含む、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項46】
前記データフロー・グラフから少なくとも1つのパラメータを自動的に獲得するための命令をさらに含む、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項47】
少なくとも1つの変数が、データベース・システムに記憶されたオブジェクトへの参照を定義する、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項48】
前記仕様が、前記仕様外部のデータ・ファイルへの参照を定義する、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項49】
前記参照が、前記データ・ファイルに記憶された値へのポインタを含む、請求項48に記載のコンピュータ読み取り可能媒体。
【請求項50】
少なくとも1つの変数が前記参照を定義する、請求項48に記載のコンピュータ読み取り可能媒体。
【請求項51】
少なくとも1つのパラメータが前記参照を定義する、請求項48に記載のコンピュータ読み取り可能媒体。
【請求項52】
前記仕様が、データベース・システムに記憶されたデータにアクセスするためのクエリー文字列を含む、請求項28に記載のコンピュータ読み取り可能媒体。
【請求項53】
前記クエリー文字列が、前記ユーザ・インターフェースの前記動作中にユーザによって指定された引数を含む、請求項52に記載のコンピュータ読み取り可能媒体。
【請求項54】
前記クエリー文字列が、前記ユーザ・インターフェースの前記動作中に実行可能である、請求項52に記載のコンピュータ読み取り可能媒体。
【請求項55】
少なくとも1つのパラメータが前記クエリー文字列を含む、請求項52に記載のコンピュータ読み取り可能媒体。
【請求項56】
少なくとも1つの変数が前記クエリー文字列を含む、請求項52に記載のコンピュータ読み取り可能媒体。
【請求項57】
前記ユーザ・インターフェース要素間の前記関係のうちの少なくともいくつかが、データベース、データ・ファイル、メタデータ・リポジトリ、及びウェブ・サービスからなるグループのうちの少なくとも1つから受信されたデータ要素間の依存性に基づくものである、請求項29に記載のシステム。
【請求項58】
前記仕様が、前記ユーザ・インターフェースの前記動作中に受信されたデータを示すソース値を定義し、前記ユーザ・インターフェースの前記動作中に更新されたデータを示すターゲット値を定義する、請求項29に記載のシステム。
【請求項59】
前記ユーザ・インターフェースの動作中に、前記ユーザ・インターフェース要素とのユーザの対話に基づいてデータを更新するための手段をさらに含む、請求項29に記載のシステム。
【請求項60】
前記パラメータのうちの少なくともいくつかが前記更新されたデータを含む、請求項59に記載のシステム。
【請求項61】
前記更新されたデータのうちの少なくともいくつかが、データ・ファイル、データベース、及びメタデータ・エンジン、及びウェブ・サービスに関連付けられたデータ・ソースからなるグループのうちの少なくとも1つに含まれる、請求項59に記載のシステム。
【請求項62】
前記パラメータに関連付けられたデータを外部ソースから受信するための手段をさらに含む、請求項29に記載のシステム。
【請求項63】
前記外部ソースが、データ・ファイル、データベース、メタデータ・エンジン、及びウェブ・サービスからなるグループのうちの少なくとも1つである、請求項62に記載のシステム。
【請求項64】
前記データフロー・グラフのリンクによって表されたデータの少なくとも1つの流れに関連付けられた構成要素出力データを表示するための手段をさらに含む、請求項29に記載のシステム。
【請求項65】
少なくとも1つのパラメータが前記データフロー・グラフの前記構成要素のうちの少なくとも1つのプロパティを定義し、前記プロパティは前記ユーザ・インターフェース要素のうちの1つに関連付けられる、請求項29に記載のシステム。
【請求項66】
前記ユーザ・インターフェース要素が前記プロパティにデータを提供するように定義される、請求項65に記載のシステム。
【請求項67】
前記ユーザ・インターフェース要素が前記プロパティからデータを受信するように定義される、請求項65に記載のシステム。
【請求項68】
ユーザ・インターフェースの前記動作中に、前記変数のうちの少なくとも1つに基づいて少なくとも1つのユーザ・インターフェース要素が表示される、請求項29に記載のシステム。
【請求項69】
前記ユーザ・インターフェース要素が前記変数のうちの1つにおける変更に応答して表示される、請求項68に記載のシステム。
【請求項70】
前記仕様が拡張マークアップ言語で定義される、請求項29に記載のシステム。
【請求項71】
前記仕様が、データベース管理システム本来の言語で定義された表現を含む、請求項29に記載のシステム。
【請求項72】
前記データフロー・グラフから少なくとも1つのパラメータを自動的に獲得するための手段をさらに含む、請求項29に記載のシステム。
【請求項73】
少なくとも1つの変数が、データベース・システムに記憶されたオブジェクトへの参照を定義する、請求項29に記載のシステム。
【請求項74】
前記仕様が、前記仕様外部のデータ・ファイルへの参照を定義する、請求項29に記載のシステム。
【請求項75】
前記参照が、前記データ・ファイルに記憶された値へのポインタを含む、請求項74に記載のシステム。
【請求項76】
少なくとも1つの変数が前記参照を定義する、請求項74に記載のシステム。
【請求項77】
少なくとも1つのパラメータが前記参照を定義する、請求項74に記載のシステム。
【請求項78】
前記仕様が、データベース・システムに記憶されたデータにアクセスするためのクエリー文字列を含む、請求項29に記載のシステム。
【請求項79】
前記クエリー文字列が、前記ユーザ・インターフェースの前記動作中にユーザによって指定された引数を含む、請求項78に記載のシステム。
【請求項80】
前記クエリー文字列が、前記ユーザ・インターフェースの前記動作中に実行可能である、請求項78に記載のシステム。
【請求項81】
少なくとも1つのパラメータが前記クエリー文字列を含む、請求項78に記載のシステム。
【請求項82】
少なくとも1つの変数が前記クエリー文字列を含む、請求項78に記載のシステム。
【請求項83】
前記ユーザ・インターフェース要素間の前記関係のうちの少なくともいくつかが、データベース、データ・ファイル、メタデータ・リポジトリ、及びウェブ・サービスからなるグループのうちの少なくとも1つから受信されたデータ要素間の依存性に基づくものである、請求項30に記載のシステム。
【請求項84】
前記仕様が、前記ユーザ・インターフェースの前記動作中に受信されたデータを示すソース値を定義し、前記ユーザ・インターフェースの前記動作中に更新されたデータを示すターゲット値を定義する、請求項30に記載のシステム。
【請求項85】
前記コンピュータシステムは、前記ユーザ・インターフェースの動作中に、前記ユーザ・インターフェース要素とのユーザの対話に基づいてデータを更新するためにさらに構成される、請求項30に記載のシステム。
【請求項86】
前記パラメータのうちの少なくともいくつかが前記更新されたデータを含む、請求項85に記載のシステム。
【請求項87】
前記更新されたデータのうちの少なくともいくつかが、データ・ファイル、データベース、及びメタデータ・エンジン、及びウェブ・サービスに関連付けられたデータ・ソースのうちの1つに含まれる、請求項85に記載のシステム。
【請求項88】
前記コンピュータシステムは、前記パラメータに関連付けられたデータを外部ソースから受信するためにさらに構成される、請求項30に記載のシステム。
【請求項89】
前記外部ソースが、データ・ファイル、データベース、メタデータ・エンジン、及びウェブ・サービスのうちの1つである、請求項88に記載のシステム。
【請求項90】
前記コンピュータシステムは、前記データフロー・グラフのリンクによって表されたデータの少なくとも1つの流れに関連付けられた構成要素出力データを表示するためにさらに構成される、請求項30に記載のシステム。
【請求項91】
少なくとも1つのパラメータが前記データフロー・グラフの前記構成要素のうちの少なくとも1つのプロパティを定義し、前記プロパティは前記ユーザ・インターフェース要素のうちの1つに関連付けられる、請求項30に記載のシステム。
【請求項92】
前記ユーザ・インターフェース要素が前記プロパティにデータを提供するように定義される、請求項91に記載のシステム。
【請求項93】
前記ユーザ・インターフェース要素が前記プロパティからデータを受信するように定義される、請求項91に記載のシステム。
【請求項94】
ユーザ・インターフェースの前記動作中に、前記変数のうちの少なくとも1つに基づいて少なくとも1つのユーザ・インターフェース要素が表示される、請求項30に記載のシステム。
【請求項95】
前記ユーザ・インターフェース要素が前記変数のうちの1つにおける変更に応答して表示される、請求項94に記載のシステム。
【請求項96】
前記仕様が拡張マークアップ言語で定義される、請求項30に記載のシステム。
【請求項97】
前記仕様が、データベース管理システム本来の言語で定義された表現を含む、請求項30に記載のシステム。
【請求項98】
前記コンピュータシステムは、前記データフロー・グラフから少なくとも1つのパラメータを自動的に獲得するためにさらに構成される、請求項30に記載のシステム。
【請求項99】
少なくとも1つの変数が、データベース・システムに記憶されたオブジェクトへの参照を定義する、請求項30に記載のシステム。
【請求項100】
前記仕様が、前記仕様外部のデータ・ファイルへの参照を定義する、請求項30に記載のシステム。
【請求項101】
前記参照が、前記データ・ファイルに記憶された値へのポインタを含む、請求項100に記載のシステム。
【請求項102】
少なくとも1つの変数が前記参照を定義する、請求項100に記載のシステム。
【請求項103】
少なくとも1つのパラメータが前記参照を定義する、請求項100に記載のシステム。
【請求項104】
前記仕様が、データベース・システムに記憶されたデータにアクセスするためのクエリー文字列を含む、請求項30に記載のシステム。
【請求項105】
前記クエリー文字列が、前記ユーザ・インターフェースの前記動作中にユーザによって指定された引数を含む、請求項104に記載のシステム。
【請求項106】
前記クエリー文字列が、前記ユーザ・インターフェースの前記動作中に実行可能である、請求項104に記載のシステム。
【請求項107】
少なくとも1つのパラメータが前記クエリー文字列を含む、請求項104に記載のシステム。
【請求項108】
少なくとも1つの変数が前記クエリー文字列を含む、請求項104に記載のシステム。
【請求項109】
前記仕様が、前記データフロー・グラフの識別子を含む、請求項1に記載の方法。
【請求項110】
前記仕様が、少なくとも1つの前記パラメータの識別子と、前記データフロー・グラフの前記識別子との間の関連を表すデータを含む、請求項109に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、参照により本明細書に組み込まれた、2009年12月14日出願の米国特許出願第61/286293号に対する優先権を主張するものである。
【0002】
本明細書は、ユーザ・インターフェース要素を指定することに関する。
【背景技術】
【0003】
ユーザ・インターフェースは、計算システムによって処理されるデータとユーザが対話できるようにするために生成され、ユーザに表示されうる。いくつかのユーザ・インターフェースはアプリケーション・プログラムの静的構成要素であり、ユーザ・インターフェースは複数の問題についてのユーザに対して同様に動作する。ユーザ・インターフェースは特定の目的に合わせて顧客向けに作成されるため、いくつかのユーザ・インターフェースはアプリケーション・プログラムのユーザによって定義されうる。例えば、アプリケーション・プログラムは、複数のユーザ・インターフェースの仕様(specification)を許容し、ユーザは複数のユーザ・インターフェースの中から選択することができる。
【発明の概要】
【課題を解決するための手段】
【0004】
一態様では、コンピュータ実行可能アプリケーションを構成するためにユーザ・インターフェースを提供するための方法は、ユーザ・インターフェース要素間の関係であって、データフロー・グラフの構成要素を表す複数のノードを含むデータフロー・グラフの構成要素間の依存性、及び、構成要素間のデータフローを表すノード間のリンクに基づく、関係と、データフロー・グラフの構成要素のそれぞれの特徴を定義するパラメータと、ユーザ・インターフェース要素のそれぞれの特徴を定義する変数と、を定義する、仕様を受信すること、並びに、ユーザ・インターフェースの動作中に、仕様内に定義された関係に基づいてユーザ・インターフェース要素を表示することを含む。
【0005】
一態様では、一般に、コンピュータ実行可能アプリケーションを構成するためにユーザ・インターフェースを提供するためのコンピュータ・プログラムを記憶するコンピュータ読み取り可能媒体であって、コンピュータ・プログラムは、ユーザ・インターフェース要素間の関係であって、データフロー・グラフの構成要素を表す複数のノードを含むデータフロー・グラフの構成要素間の依存性、及び、構成要素間のデータフローを表すノード間のリンクに基づく、関係と、データフロー・グラフの構成要素のそれぞれの特徴を定義するパラメータと、ユーザ・インターフェース要素のそれぞれの特徴を定義する変数と、を定義する、仕様を受信すること、並びに、ユーザ・インターフェースの動作中に、仕様内に定義された関係に基づいてユーザ・インターフェース要素を表示することを、コンピュータに実行させるための命令を含む。
【0006】
一態様では、一般に、コンピュータ実行可能アプリケーションを構成するためのシステムは、ユーザ・インターフェース要素間の関係であって、データフロー・グラフの構成要素を表す複数のノードを含むデータフロー・グラフの構成要素間の依存性、及び、構成要素間のデータフローを表すノード間のリンクに基づく、関係と、データフロー・グラフの構成要素のそれぞれの特徴を定義するパラメータと、ユーザ・インターフェース要素のそれぞれの特徴を定義する変数と、を定義する、仕様を受信するための手段と、ユーザ・インターフェースの動作中に、仕様内に定義された関係に基づいてユーザ・インターフェース要素を表示するための手段と、を含む。
【0007】
諸態様は、以下の特徴のうちの1つ又は複数を含むことができる。ユーザ・インターフェース要素間の関係のうちの少なくともいくつかは、データベース、データ・ファイル、メタデータ・リポジトリ、及びウェブ・サービスのうちの少なくとも1つから受信したデータ要素間の依存性に基づく。仕様は、ユーザ・インターフェースの動作中に受信されたデータを示すソース値を定義し、ユーザ・インターフェースの動作中に更新されたデータを示すターゲット値を定義する。態様は、ユーザ・インターフェースの動作中の、ユーザ・インターフェース要素とのユーザの対話に基づく更新を含む。パラメータの少なくともいくつかは、更新されたデータを含む。更新されたデータの少なくともいくつかは、データ・ファイル、データベース、及びメタデータ・エンジン、並びにウェブ・サービスに関連付けられたデータ・ソースのうちの、少なくとも1つに含められる。態様は、外部ソースからのパラメータに関連付けられたデータの受信を含む。外部ソースは、データ・ファイル、データベース、メタデータ・エンジン、及びウェブ・サービスのうちの少なくとも1つである。態様は、データフロー・グラフのリンクによって表されるデータの少なくとも1つの流れに関連付けられた構成要素出力データの表示を含む。少なくとも1つのパラメータは、データフロー・グラフの構成要素のうちの少なくとも1つのプロパティを定義し、このプロパティはユーザ・インターフェース要素のうちの1つに関連付けられる。ユーザ・インターフェース要素は、プロパティにデータを提供するように定義される。ユーザ・インターフェース要素は、プロパティからデータを受信するように定義される。ユーザ・インターフェースの動作中、少なくとも1つのユーザ・インターフェース要素は、変数のうちの少なくとも1つに基づいて表示される。ユーザ・インターフェース要素は、変数のうちの1つにおける変化に応答して表示される。仕様は、拡張マークアップ言語で定義される。仕様は、データベース管理システム本来の言語で定義された表現を含む。態様は、データフロー・グラフから少なくとも1つのパラメータを自動的に獲得することを含む。少なくとも1つの変数は、データベース・システムに記憶されたオブジェクトへの参照を定義する。仕様は、仕様外部のデータ・ファイルへの参照を定義する。参照は、データ・ファイルに記憶された値へのポインタを含む。少なくとも1つの変数は参照を定義する。少なくとも1つのパラメータは参照を定義する。仕様は、データベース・システムに記憶されたデータにアクセスするためのクエリー文字列を含む。クエリー文字列は、ユーザ・インターフェースの動作中にユーザによって指定された引数を含む。クエリー文字列は、ユーザ・インターフェースの動作中に実行可能である。少なくとも1つのパラメータはクエリー文字列を含む。少なくとも1つの変数はクエリー文字列を含む。
【発明の効果】
【0008】
諸態様は、以下の利点のうちの1つ又は複数を含むことができる。データフロー・グラフを可視様式で構成できるようにする仕様が、定義可能である。複数の仕様を1つのデータフロー・グラフが使用可能である。
【0009】
本発明の他の特徴及び利点については、以下の説明及び特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0010】
【
図1】データベース管理システムを示す概略図である。
【
図2A】例示的データフロー・グラフを示す図である。
【
図2B】データフロー・グラフをカスタマイズするためのインターフェースの一部を示す図である。
【
図2C】データフロー・グラフをカスタマイズするためのインターフェースの一部を示す図である。
【
図3】ユーザ・インターフェース仕様の受信及びユーザ・インターフェースの表示を示す、プロセス図である。
【
図4A】ユーザ・インターフェースとのユーザの対話を示す図である。
【
図4B】ユーザ・インターフェースとのユーザの対話を示す図である。
【
図5】ユーザ・インターフェース及びデータベースとのユーザの対話を示す図である。
【
図7】インターフェース内での結果の例示的表示を示す図である。
【
図8】ブリッジ付き(bridged)クライアント・サーバ・システムを示す概略図である。
【発明を実施するための形態】
【0011】
図1を参照すると、データフロー・グラフを構成するためのシステム10は、それぞれが様々なストレージ・フォーマット(例えば、データベース・テーブル、スプレッドシート・ファイル、フラット・テキスト・ファイル、又はメインフレームによって使用される固有のフォーマット)のいずれかでデータを記憶しうる、ストレージ・デバイス又はオンライン・データ・ストリームへの接続などの1つ又は複数のデータのソースを含みうる、データ・ソース12を含む。実行環境14は、グラフ構成モジュール16及びユーザ・インターフェース・モジュール22を含む。実行環境14は、UNIX(登録商標)オペレーティング・システムなどの好適なオペレーティング・システムの制御の下で、1つ又は複数の汎用コンピュータ上にホストされうる。例えば、実行環境14は、ローカルな(例えばSMPコンピュータなどのマルチプロセッサ・システム)、又はローカルに分散された(例えばクラスタ又はMPPとして結合された複数プロセッサ)、又はリモートに、又はリモートに分散された(例えばLAN又はWANネットワークを介して結合された複数のプロセッサ)、又はそれらの任意の組み合わせで、複数の中央処理ユニット(CPU)を使用するコンピュータ・システムの構成を含む、マルチノード並列コンピューティング環境を含むことができる。
【0012】
グラフ構成モジュール16は、以下でより詳細に説明するように、データフロー・グラフの構成を変更する。ユーザ・インターフェース・モジュール22は、ユーザ30に構成情報を表示し、ユーザ30から構成動作を受信する。ユーザ・インターフェース・モジュール22は、ユーザの動作に基づいてデータフロー・グラフを構成するグラフ構成モジュール16とも通信する。例えば、データフロー・グラフは、データ・ソース12内に記憶することもできる。データ・ソース12を提供するストレージ・デバイスは、例えば、実行環境14を実行するコンピュータに接続されたストレージ媒体(例えばハード・ドライブ18)上に記憶されるなど、実行環境14に対してローカルとすることができるか、或いは、例えば、ローカル又はワイド・エリア・データ・ネットワークを介して実行環境14を実行するコンピュータと通信するリモート・システム(例えばメインフレーム20)上でホストされるなど、実行環境14に対してリモートとすることができる。
【0013】
実行環境は、ユーザ・インターフェースを表示するためにユーザ・インターフェース・モジュール22によって使用される情報を含む、データ・ストレージ・システム26と通信する。データ・ストレージ・システム26は、データ・ストレージ・システム26内に記憶され、ユーザ・インターフェースを表示するためにユーザ・インターフェース・モジュール22によって使用される、開発者30が開発可能な開発環境28に対してもアクセス可能である。
【0014】
データ・ソース12は、いくつかの実装では、頂点間の有向リンク(作業要素の流れを表す)によって接続された頂点(構成要素又はデータセット)を含むデータフロー・グラフとして、アプリケーションを開発するためのシステムである。例えば、こうした環境については、参照により本明細書に組み込まれた、「Managing Parameters for Graph-Based Applications」という名称の米国特許第2007/0011668号で、より詳細に説明されている。
【0015】
データフロー・グラフは、1つ又は複数のデータ・ソースからのデータを処理するデータフロー・グラフ実行環境内で実行される、コンピュータ・プログラムである。データ・ソースからのデータは、データフロー・グラフに従って操作及び処理され、1つ又は複数のデータ・シンク(data sinks)へとエクスポートされる。データ・ソース及びシンクは、例えば、ファイル、データベース、データ・ストリーム、又はキューを含むことができる。データフロー・グラフは、それぞれが、少なくとも1つのデータ入力からのデータを処理するため、及び少なくとも1つのデータ出力へデータを提供するためのコードを含む、データ処理構成要素を表すノードと、データ・ソース及び/又はシンクにアクセスするためのデータセット・オブジェクトを表すノードとを含む、有向グラフとして表される。ノードは、データ・ソースから送出され、データ・シンクで終端する、構成要素間のデータの流れを表す有向リンクによって接続される。アップストリーム構成要素のデータ出力ポートは、ダウンストリーム構成要素のデータ入力ポートに接続される。データフロー・グラフは、データセット・オブジェクトによって表される、異なるデータ・ソース及び異なるデータ・シンクに再使用しうる。データフロー・グラフを実装するために使用されるデータ構造及びプログラム・コードは、複数の異なる構成を、例えば、異なるソース及びシンクを容易に置換可能にするためにパラメータ化することによって、サポートすることができる。さらに、いくつかの配置構成では、データフロー・グラフの流れはパラメータの使用によって変更可能であるため、結果として構成要素又は一連の構成要素を迂回することができる。一般に、パラメータは、構成又は変更可能なデータフロー・グラフのプロパティを表す。例えば、プロパティはデータフロー・グラフの使用間で変更可能であり、データフロー・グラフは変更の結果として様々に動作を実行することができる。
【0016】
データフロー・グラフの構成は、いくつかのケースでは本来非常に技術的なものとすることができる。特定のビジネス・エンドを達成するために作成される一方で、グラフの基礎となる構造及び構成は技術的な考察に基づいて決定される。例えば、グラフ構成要素は、再使用可能性を最大にするため、又は並行処理をサポートするために、選択されうる。他方で、グラフがどのようにどこで使用されるかは、主として業務上の決定となりうる。パラメータ化されたデータフロー・グラフに関連付けられたパラメータのいくつかは、ビジネス・ユーザが、その実装の背後にある技術的な複雑性を理解する必要なしに、データフロー・グラフをカスタマイズできるようにするために、使用することができる。パラメータ化されたデータフロー・グラフは、カスタマイズ化を簡略化し、再使用を容易にする。
【0017】
データフロー・グラフを構成するためのパラメータ値の識別に関するインターフェースを、クライアント・マシン上に提示することができる。いくつかの実装では、クライアントは、パラメータ・インターフェースを提供するクライアント上のウェブ・ブラウザを使用して、サーバ上で実行する開発環境にアクセスすること、及び、クライアント側での処理のためにいくつかの機能を提供するスクリプト言語を使用することが、できうる。スクリプト言語は、パラメータを更新し、他の必要な動作を実行するために、サーバと通信しうる。この通信は、構成されているグラフに関するオブジェクト及び関連付けられたパラメータ値を記憶する開発環境を実行するクライアントとサーバとの間の通信を橋渡しする(translate)ブリッジ・マシンを介して、生じうる。
【0018】
インターフェースは、たとえデータフロー・グラフ及びデータフロー・グラフ構成に関する技術的知識をユーザが持たない場合であっても、パラメータ化されたデータフロー・グラフのパラメータをユーザが構成できるようにする。例えば、
図2Aを参照すると、データフロー・グラフ202は、データ・ソース206a、206b、構成要素208a〜c、210、及びデータ・シンク212を含むことができる。ソース、構成要素、及びシンクのそれぞれは、パラメータのセット204a〜gに関連付けられうる。1つのソース、構成要素、又はシンクに関するパラメータは、異なるソース、構成要素、又はシンクに関するパラメータを評価するために使用されうる。ソース206a、206bは、構成要素208a、208cの入力ポートに接続される。構成要素208aの出力ポートは、構成要素208bの入力ポートに接続される。構成要素210の出力ポートは、データ・シンク212に接続される。ソース、構成要素、及びシンク間の接続は、データフローを定義する。
【0019】
データ・ソース、構成要素、又はシンクのいくつかは、グラフの挙動のいくつかを定義することが可能な入力パラメータ204a〜gを有することができる。例えば、パラメータは、物理ディスク上でのデータ・ソース又はシンクの位置を定義することができる。パラメータは構成要素の挙動も定義可能であり、例えばパラメータは、分類構成要素がどのように入力を分類するかを定義することができる。いくつかの構成(arrangement)では、1つのパラメータの値は他のパラメータの値に依存する可能性がある。例えば、ソース206aは、特定のディレクトリ内のファイルに記憶されうる。パラメータ・セット204aは、「DIRECTORY」と呼ばれるパラメータ及び「FILENAME」と呼ばれる他のパラメータを含みうる。この場合、FILENAMEパラメータはDIRECTORYパラメータに依存することになる。(例えば、DIRECTORYは「/usr/local/」とすることが可能であり、FILENAMEは「/usr/local/input.dat」とすることが可能である。)パラメータは、他の構成要素に関するパラメータに依存するかも知れない。例えば、シンク212の物理位置は、ソース206aの物理位置に依存するかも知れない。この例では、シンク212は、ソース206aのDIRECTORYパラメータに依存するFILENAMEパラメータを含む、パラメータ204gのセットを含む。(例えば、セット204g内のFILENAMEパラメータは「/usr/local/output.dat」とすることができ、ここで値「/usr/local/」はセット204a内のDIRECTORYパラメータから取得される。)
【0020】
クライアント上のユーザ・インターフェース内では、ユーザと対話するために、パラメータ・セット204a〜204gのパラメータを組み合わせ、技術的な考察ではなくビジネス的な考察を反映する異なるグループに再編成することができる。ユーザ入力に基づいてパラメータに関する値を受信するためのユーザ・インターフェースは、サーバ上の開発環境の諸態様によって制限される必要のない柔軟な方法で、パラメータ間の関係に従って、異なるパラメータを表示することができる。例えば、
図2Bを参照すると、パラメータ間の依存性を表す関係と共にアイコンが内部に表示される、ユーザ・インターフェースを提示することができる。この例では、パラメータは、第1のソース・データセットに対するパラメータを表す第1のソース・アイコン224と、第2のソース・データセットに対するパラメータを表す第2のソース・アイコン226と、シンク・データセットに対するパラメータを表すシンク・アイコン230と、構成中のデータフロー・グラフの1つ又は複数の構成要素に対するパラメータを表し、ソース・データセット及びシンク・データセットに対してそれらの関係を示す変換アイコン228とによって表される、パラメータの第1のグループに分割される。このパラメータのグループ分けは、ユーザがクライアント上のユーザ・インターフェース内のデータフロー・グラフからのパラメータとどのように対話することになるか、及び、アイコン224、226、228、230などのユーザ・インターフェース要素が、どのように互いに関連し合い、ユーザ・インターフェース内に提示するために配置構成されることになるかを定義する、記憶された仕様222に基づいてなされうる。いくつかの実装では、仕様はXML文書である。以下でより詳細に説明されるように、仕様は、データフロー・グラフ構成要素を識別すること、及び、サンプル・データの表示などの、ユーザがグラフを構成している間にある機能が実行可能な対象である、特定の構成要素を識別することも可能である。
【0021】
いくつかのケースでは、仕様は、パラメータがどのように表示されるかに関する命令を含みうる。例えば、
図2B及び2Cを参照すると、仕様222は、ユーザに表示されるユーザ・インターフェース250を定義しうる。さらに、仕様222は、ソース・データセット・アイコン224との対話に応答して、1つのパラメータは、ユーザが記入可能なテキスト・ボックス252としてユーザ・インターフェース250内に表示されるべきであり、他のパラメータは、事前に値が入れられたドロップ・ダウン・リスト254としてユーザ・インターフェース250内に表示されるべきであること、さらに他のパラメータは、ラジオ・ボタン256としてユーザ・インターフェース250内に表示可能であることなどを、示しうる。したがって仕様は、ビジネス・ユーザ及び/又は非技術的ユーザに合わせることが可能なようにデータフロー・グラフをカスタマイズするために、パラメータがユーザに対してどのように提示されるかにおける柔軟性を提供する。
【0022】
いくつかのケースでは、仕様は、ビジネス・ユーザがパラメータ値を投入する(populate)順序を制約することができる。破線によって表された、シンク230に関連付けられたパラメータは、ユーザが何らかの事前に定義された条件を満たすまで、ユーザに対して不可視とすることができる。例えば、ユーザは、データ・シンク・パラメータ・セットが表示される前に、特定のパラメータ値を提供するか、又はパラメータのセットを記入しなければならない場合がある。
【0023】
いくつかの実装では、仕様は、(データフロー・グラフの構成要素の特徴を定義するパラメータとは対照的に)ユーザ・インターフェース要素の特徴を定義する変数を含むこともできる。変数は、例えばビジネス・ユーザによってユーザ・インターフェース要素が使用される順序を制御するために使用されうる。変数は少なくとも1つのデータ値を参照する。いくつかの例では、変数は複数のデータ値を参照し、それぞれのデータ値は変数のプロパティとして定義される。したがって、単一の変数が、それぞれがデータ値に関連付けられた複数のプロパティを有することができる。
【0024】
仕様によって定義されるユーザ・インターフェース250は、ユーザ・インターフェース要素(例えば、テキスト・ボックス252、ドロップ・ダウン・リスト254、ラジオ・ボタン256)が、データフロー・グラフをカスタマイズするために使用されるパラメータに直接対応しないように、提示されうる。これに代わって、いくつかのユーザ・インターフェース要素は、例えば、パラメータの知識のない可能性のあるビジネス・ユーザ及び/又は非技術的ユーザなどの、ユーザに関連する構成オプションに対応することができる。
【0025】
これらの例では、ユーザ・インターフェース250を、データフロー・グラフの特定の構成要素224に関連付ける必要がない。さらに、ユーザ・インターフェース250は、複数のデータフロー・グラフ及び他のデータ処理及びデータ・ストレージ構造に関連付けることができる。
【0026】
例えば、ユーザ・インターフェース要素は、技術的な意味ではなく、ビジネス的な意味を有する構成オプションを、ユーザに変更可能にすることができる。構成オプションは、商取引で現在使用されているタイプ間の変換に関するオプション、又は、製品在庫の特定のカテゴリに関連付けられた情報を更新するためのオプション、又は、単一のパラメータの構成と相関しない他のタイプのオプションとすることができる。仕様222は、ビジネス・ユーザ/非技術的ユーザが自分が理解する用語で表した構成オプションへの変更を実行できるように、並びに、パラメータへの変更が仕様222内に定義された関連付け及び依存性を通じて実行されるように、定義されうる。
【0027】
仕様222は、構成オプションがデータフロー・グラフのパラメータ並びにユーザ・インターフェース250を介して構成可能な他のデータ要素の構成に、どのように対応するかを定義することができる。例えば、ユーザとユーザ・インターフェース要素との間の対話は、複数のデータフロー・グラフ内のパラメータへの変更、並びにデータベース、データ・ファイル、メタデータ・リポジトリ、又は他の種類のデータ・ストレージに記憶されたデータへの変更を、トリガすることができる。仕様222は、ユーザ・インターフェース250の動作中、ユーザ・インターフェース要素と、ユーザ・インターフェース要素に対する変更に関連して変化するデータとの間の関係を、定義することができる。
【0028】
仕様222はまた、データベース、データ・ファイル、メタデータ・リポジトリ、又は他の種類のデータ・ストレージ、又はウェブ・サービスなどの他の種類のデータ・ソースから受信されたデータに基づいて、ユーザ・インターフェース要素を定義することもできる。ユーザ・インターフェース250が表示された場合、受信されたデータを使用して、ユーザ・インターフェース要素を表示する様式が決定される。いくつかの実装では、ユーザ・インターフェース250の動作中、データは、データベース、データ・ファイル、メタデータ・リポジトリ、又は他の種類のデータ・ストレージ、又はウェブ・サービスなどの他の種類のデータ・ソースなどの、外部ソースから受信され、外部ソースから受信されるデータは、仕様222内で、パラメータに関連付けられるように定義される(例えば、パラメータは外部ソースから受信されたデータを含むように更新される)。
【0029】
ユーザ・インターフェースはまた、データフロー・グラフのリンクによって表されるデータの少なくとも1つの流れに関連付けられた、構成要素出力データを表示することもできる。例えば、
図2Cを参照すると、データは、1つの構成要素224から他の構成要素228へと流れる。構成要素間のこのデータの流れは、ユーザ・インターフェース250内に表示することができる。いくつかの例では、構成要素224によってデータがどのように処理されるかを決定するために、サンプル・データ(例えば、処理又は変換の目的ではなく、テストの目的で取り出されたデータ)が1つの構成要素224に提供される。
【0030】
図3に示されるように、仕様302は、パラメータ、変数、及びユーザ・インターフェース要素の間の関係を定義する。仕様302は、パラメータの定義をデータフロー・グラフに含めるために記述可能であり、ユーザ・インターフェース要素は、データフロー・グラフ308からパラメータを読み取り、データフロー・グラフ308にパラメータを書き込むために使用されうる。ユーザ・インターフェース・モジュール22が仕様302に基づいてユーザ・インターフェース304を生成した場合、ユーザ・インターフェース304はパラメータを含むユーザ・インターフェース要素312を表示する。例えば、ユーザ・インターフェース304は、ユーザによって編集可能なパラメータに関連付けられた値を表示しうるか、又はその他の方法で、ユーザ310がパラメータに関連付けられたデータフロー・グラフ308を構成できるようにしうる。ユーザ・インターフェースの動作中、パラメータに対するユーザの変更は、例えばグラフ構成モジュール16によって、対応するデータフロー・グラフ308のパラメータ・セット306に書き込まれうる。他のタイプのデータは、ユーザ・インターフェース304の動作中に更新することができる。例えばユーザ・インターフェース304は、データベース、データ・ファイル、メタデータ・リポジトリ、又は他の種類のデータ・ストレージに、更新されたデータを提供するか、或いは、ウェブ・サービス又は他のネットワーク・サービスによってアクセス可能なリモート・データ・ソースにデータを提供することができる。
【0031】
いくつかの実装では、仕様は、ユーザ・インターフェース要素を制御するために使用可能な変数を定義する。パラメータ及び変数の使用は、ここでは例を挙げて実証される。
図4Aは、現行データ・ファイル・オプション414及びデフォルト・データ・ファイル・オプション416などの、内部でユーザが複数のファイル(例えばデータフロー・グラフに関する入力データを含むファイル)の中から選択可能な仕様400によって定義されたユーザ・インターフェース要素402を示す。仕様400は、ユーザ・インターフェースの動作中に変更可能な、現行ファイルの経路を示す変数を定義することができる。さらに仕様は、パラメータがデータフロー・グラフの構成に関連付けられたデータとしてアクセス可能なように、デフォルト・ファイルの経路を示すパラメータを定義することができる。
【0032】
以下のXMLコードは、ユーザ・インターフェース要素402を表示するために使用可能な仕様400の一部を表す。例えば、ユーザ・インターフェース・モジュール22は、仕様を受信し、ユーザ・インターフェース要素402をユーザ404に表示することができる。「current_file」412と呼ばれる変数が定義され、ユーザ404によってユーザ・インターフェース内で以前に選択されたファイル経路を表す。「action_file」410と呼ばれる他の変数が定義され、例えば読み取り及び書き込みなどの、着信するデータフロー・グラフの動作において使用するためのファイルを表す。仕様400は、選択ボックスとして表されたユーザ・インターフェース要素402も定義する。選択ボックスはテキスト「Current data file」をリスト表示し、このテキストは変数「current_file」412にリンクされる。選択ボックスはテキスト「Default data file」もリスト表示し、このテキストは、「my_graph」406と呼ばれるデータフロー・グラフに関連付けられた構成データとしてアクセス可能な、パラメータ「pdl_default_datpath」408にリンクされる。
<Variables name=“vars”>
<Variable name=“current_file”type=“string”/>
<Variable name=“action_file”type=“string”/>
</Variables>
...
<List>
<Label>Choose file to use(current or default)</Label>
<ChoiceDisplayNames>
<Constant>Current data file</Constant>
<Constant>Default data file</Constant>
</ChoiceDisplayNames>
<Choices>
<SourceValue reference=“vars.current_file”/>
<SourceValue reference=“pset.my_graph.pdl_default_datpath”/>
</Choices>
<SourceValue reference=“vars.current_file”/>
<TargetValue reference=“vars.action_file”/>
</List>
<TextLabel>
<Label>
<Expression>“Actual path of file to use:”+vars.action_file</Expression>
</Label>
</TextLabel>
【0033】
仕様に基づくユーザ・インターフェースが動作中である場合、ユーザは2つのオプション、「Current data file」及び「Default data file」から選択することができる。ユーザが「Current data file」を選択した場合、ユーザ・インターフェースは変数「current_file」412のコンテンツを変数「action_file」410に割り当てる。ユーザが「Default data file」を選択した場合、ユーザ・インターフェースはパラメータ「pdl_default_datpath」408のコンテンツを変数「action_file」410に割り当てる。したがって、インターフェースは、データフロー・グラフに関連付けられたパラメータ又はユーザ・インターフェース要素に関連付けられた変数のいずれかに基づいて、構成動作を実行するオプションをユーザに提供する。
【0034】
ユーザ・インターフェースの動作中に1つのユーザ・インターフェース要素で実行された変更は、他のユーザ・インターフェース要素での他の変更を引き起こしうる。
図4Aに示された例では、vars.action_file変数のコンテンツ422は、ユーザ・インターフェース要素402内に表示される。vars.action_file変数は、示されたユーザ・インターフェース要素402とは異なる他のユーザ・インターフェース要素によって変更することが可能であり、これに応答して、変数のコンテンツ422の表示がなされる。
【0035】
また、変数「action_file」410は、データフロー・グラフを構成するために使用されうる。
図4Bに示されるように、ユーザ・インターフェース・モジュール22は、変数「action_file」410のコンテンツをデータフロー・グラフ406のパラメータ「pdl_file_path」418に割り当てるために、ユーザ404から動作を受信することが可能であり、これによってデータフロー・グラフ406は、「action_file」ファイル経路によって表されたファイル420へ読み出すか、又はここから書き取ることができる。
【0036】
ここに示された例では、SourceValue及びTargetValueのタグによって識別されるデータ要素が変数及びパラメータを表す。SourceValue及びTargetValueのタグによって識別されるデータ要素はまた、データ・ファイルに記憶されたデータ要素、データベースに記憶されたデータ要素(例えば、データベース記録又はデータベース記録の一部)、メタデータ・リポジトリに記憶されたデータ要素、他のタイプのデータ・ストレージに記憶されたデータ要素、又はウェブ・サービス又は他のネットワーク・サービスを使用してアクセス可能なデータ要素でありうる。
【0037】
図5に示されるように、仕様500はまた、仕様の本来の言語以外の言語で定義された用語を組み込むこともできる。例えば、仕様はXMLで定義可能であり、構造化問い合わせ言語(SQL)で作成されたデータベースクエリー506を含むこともできる。以下の例は、SQLデータベースクエリー506を定義する仕様500の一部である。仕様500はクエリーを識別する「Query」タグを含む。クエリー自体は、仕様内に定義された変数「db_query」に関連付けられる。
<Metadata>
<Variables name=“vars”>
<Variable name=“source”type=“databeseObject”/>
<Variable name=“income”type=“integer”value=10000/>
...
</Variables>
<Database name=“mrkt_db”dbcPath=“$AI_DB/mrkt.dbc”>
<Query name=“db_query”>
select*from PROSPECT where income>vars.income
</Query>
<Database>...
</Metadata>
<UserInterface>
<TextInput>
<Label>Enter income</Label>
<TargetValue reference=“vars.income”/>
</TextInput>
...
<DatabaseBrowser>
<Database reference=“mrkt_db”/>
...
<SourceValue reference=“mrkt_db.db_query”property=“lname_array”/>
<SourceTargetValue reference=“vars.source”/>
</DatabaseBrowser>
【0038】
仕様500は、仕様500によって定義されたような、ユーザ・インターフェース・モジュール22によって表示されたユーザ・インターフェースからアクセス可能なデータベース510を識別する、「Database」タグも含む。仕様500は、ユーザ・インターフェースが動作中である場合、データベース情報にアクセスするためにユーザ・インターフェース要素を確立する、「DatabaseBrowser」タグも含む。
【0039】
この例では、データベースクエリー506は、仕様内に定義された変数「vars.income」508を含む。ユーザ・インターフェースの動作中、ユーザは「vars.income」508に関する値を入力することができる。データベース510にアクセスされた場合、クエリー506は実行のためにデータベースに送信され、「vars.income」508によって表されたユーザによって入力された値を組み込む。いくつかの例では、クエリー506は、データフロー・グラフに関連付けられたパラメータ516を組み込むことができる。いくつかの例では、パラメータ516に関連付けられたデータ値を、データベースクエリーを使用してデータベース510から獲得されたデータの要素に変更することによって、データフロー・グラフ512のパラメータ516を変更するために、ユーザ・インターフェースはまた、グラフ構成モジュール16と共に使用されうる。
【0040】
他の言語が仕様に組み込まれることも可能である。以下の例は、仕様の一部へのデータベース管理言語表現の組み込みを示す。この表現は、仕様内の「Expression」タグで識別される。データベース管理言語表現を使用して、データフロー・グラフにとって本来の言語でデータフロー・グラフのパラメータにアクセスし及び処理することができる。この例では、表現は、パラメータがいずれかのデータに関連付けられているかどうかを決定するために、パラメータ「TARGET_TABLE」のコンテンツを評価する。データベース管理言語表現は、パラメータにデータ値を割り当てるためにも使用可能である。
<SourceValue>
<Expression>pset.complex_load.TARGET_TABLE!=“”</EXpression>
</SourceValue>
【0041】
仕様によって定義されたユーザ・インターフェースはまた、データ・ファイルなどの外部データ構造に記憶されたデータにアクセスするために使用されうる。例えば、データ・ファイルからのデータは、ユーザ・インターフェース要素と共に使用されうるか、又はデータフロー・グラフのパラメータを構成するために使用されうる。以下の仕様の一部分の例では、以下の仕様の一部分によって定義されたユーザ・インターフェースによって、ユーザはファイルの経路を入力することが可能であり、その後、変数「ctrl_file_01」を使用して、そのコンテンツにアクセスすることができる。例えば、変数は、テキストを表示するための例えばユーザ・インターフェース要素などの、ユーザ・インターフェースの要素内から、ファイルのコンテンツ全体にアクセスするために使用しうるプロパティ「contents」を有する。変数「ctrl_file_01」及びプロパティ「contents」によって表されるデータは、データフロー・グラフの他の変数に割り当てられ、又はパラメータに割り当てられうる。
<TextInput>
<Label>Edit path to control file 1</Label>
<SourceTargetValue reference=“ctrl_file_01”
sourceProperty=“path”targetProperty=“path”/>
</TextInput>
<TextArea>
<Label>Contents of control file 1</Label>
<SourceValue reference=“ctrl_file_01”property=“contents”/>
</TextArea>
【0042】
図6は、仕様604を表示し、作成し、及び編集するために使用可能な、構成マネージャ・インターフェース600を示す。例えば、構成マネージャ・インターフェース600は、
図1に示されるような、ユーザ32によって動作される開発環境28の一部でありうる。構成マネージャ・インターフェース600は仕様604のリストを提示し、そのそれぞれを使用して、アプリケーション602を構成するためのユーザ・インターフェースを生成することができる(例えばデータフロー・グラフ又はデータフロー・グラフの集合)。いくつかの実装では、複数の仕様604を同じアプリケーション602で使用することができる。例えば、1つの仕様は、アプリケーションに関連付けられたいくつかのパラメータを構成するためのユーザ・インターフェースを提供することが可能であり、他の仕様は、仕様に関連付けられた他のパラメータを構成するためのユーザ・インターフェースを提供することが可能である。いくつかの例では、1つの仕様は初心者又は非技術的ユーザに好適なユーザ・インターフェースを提供することが可能であり、他の仕様は、経験者又は技術的熟練者に好適なユーザ・インターフェースを提供することが可能である。
【0043】
いくつかの実装では、システムは、パラメータ値によって構成されるような、ユーザ・インターフェース内からサーバ上のグラフの実行を開始することによって、グラフを介してサンプル・データを実行すること、及び、
図7に示されるような、ユーザ・インターフェース内でサンプル実行の結果720を表示することを、ユーザに可能にさせうる。結果720は、どのタイプのデータが結果720に含まれるかに依存して、ユーザ・インターフェースの適切なブラウザ又はエディタ内に表示されうる。この例では、結果720は、サンプル・データ内の記録に対応する行と、異なるフィールドに関する記録内の値に対応する列とを含む。テスト・データを使用したサーバ上でのグラフの実行は、例えば、パラメータに関する値のユーザ供給に応答して、トリガ可能である。
【0044】
図8を参照すると、クライアント・システム802は、前述のユーザ・インターフェース804をユーザに表示しうる。ユーザ・インターフェース804を介したユーザとの対話に基づいて生成されたパラメータ・セット814は、サーバ808上に記憶されうる。したがって、ユーザ・インターフェース804によって実行された変更は、ブリッジ806を介してクライアント802からサーバ808へと送信される。矢印820によって表されるように、クライアント802は、メッセージを、例えばシンプル・オブジェクト・アクセス・プロトコル(SOAP)を使用して送信されるメッセージなどの、1つの形式で、ブリッジ806に送信する。ブリッジ806はメッセージを新しい形式に変換し(translate)、必要であれば、サーバ808でクライアント・セッションを開始する。矢印822によって表されるように、ブリッジ806はメッセージを、例えばCOM+メッセージなどの、サーバ808によって理解される形式で、サーバ808に送信する。サーバ808は、メッセージを受信し、パラメータ・セットを更新する。矢印824によって表されるように、サーバ808は、クライアント802が受信された入力によってパラメータ・セットに対して実行された任意の変更を含む回答を、ブリッジ806に送信する。ブリッジ806はメッセージを復号し、クライアント802に対する回答メッセージを作成する。矢印826によって表されるように、ブリッジ806は回答メッセージをクライアント802に送信する。クライアント802は、前述のような前提条件の不全によって、以前は非表示とされた任意の構成要素を表示することを含む、変更を反映するために、ユーザ・インターフェース804を更新する。
【0045】
ユーザは、完了しているか又は完了していない可能性のある、現行のパラメータ・セットに基づくサンプル・データを使用して、グラフの構成を実行することを希望する旨をクライアント802に示すこともできる。前述のように、クライアント802はブリッジ806を介してメッセージをサーバ808に送信する。サーバ808は任意の変更をパラメータ・セットに適用し、サーバ上で実行しているプロセス816はデータフロー・グラフをコンパイルする。コンパイルされたデータフロー・グラフは、サンプル・データベース810、812からデータを受け入れ、コンパイルされたデータフロー・グラフを実行する。データフロー・グラフは、要求された出力データセット818への出力を生成する。データフロー・グラフの出力は、クライアント802によって要求される中間データであり、必ずしも、データフロー・グラフの完全な実行によって生成されることになるデータではない。
【0046】
前述のように、結果として生じるデータは、ブリッジ806を介してサーバ808からクライアント802へと送信される。
【0047】
前述のグラフ構成手法は、コンピュータ上で実行するためにソフトウェアを使用して実装可能である。例えば、ソフトウェアは、それぞれが、少なくとも1つのプロセッサ、(揮発性及び不揮発性のメモリ及び/又はストレージ要素を含む)少なくとも1つのデータ・ストレージ・システム、少なくとも1つの入力デバイス又はポート、及び少なくとも1つの出力デバイス又はポートを含む、(分散型、クライアント/サーバ、又はグリッドなどの、様々なアーキテクチャとすることが可能な)1つ又は複数のプログラム済み又はプログラム可能なコンピュータ・システム上で実行する1つ又は複数のコンピュータ・プログラム内に手順を形成する。ソフトウェアは、例えば、計算グラフの設計及び構成に関する他のサービスを提供する、より大規模なプログラムの1つ又は複数のモジュールを形成することができる。グラフのノード及び要素は、コンピュータ読み取り可能媒体、又はデータ・リポジトリに記憶されたデータ・モデルに合致する他の編成データに記憶される、データ構造として実装されうる。
【0048】
ソフトウェアは、CD−ROMなどの、汎用又は特定用途向けプログラム可能コンピュータによって読み取り可能な、又はネットワークの通信媒体を介して実行されるコンピュータに配信される(伝搬信号内に符号化された)、ストレージ媒体上に提供することができる。すべての機能は、特定用途向けコンピュータ上で、又はコプロセッサなどの特定用途向けハードウェアを使用して、実行することができる。ソフトウェアは、ソフトウェアによって指定された計算の異なる部分が異なるコンピュータによって実行される、分散様式で実装可能である。好ましくは、こうしたコンピュータ・プログラムはそれぞれ、本明細書に記載された手順を実行するために、ストレージ媒体又はデバイスがコンピュータ・システムによって読み取られた場合、コンピュータを構成及び動作させるために、汎用又は特定用途向けプログラム可能コンピュータによって読み取り可能なストレージ媒体又はデバイス(例えばソリッド・ステート・メモリ又は媒体、或いは磁気又は光媒体)上に記憶されるか、又はこれらにダウンロードされる。本発明のシステムは、コンピュータ・プログラムを用いて構成された、コンピュータ読み取り可能ストレージ媒体として実装されるものとみなすことも可能であり、そのように構成されたストレージ媒体によって、コンピュータ・システムは、本明細書で説明された機能を実行するための特定及び事前に定義された様式で動作する。
【0049】
以上、本発明のいくつかの実施形態について説明してきた。しかしながら、本発明の趣旨及び範囲を逸脱することなく、様々な修正が実行可能であることを理解されよう。例えば、前述のステップのいくつかは、順序に依存しない可能性があるため、説明された順序とは異なる順序で実行可能である。
【0050】
前述の説明は、添付の特許請求の範囲によって画定された本発明の範囲を例示することを意図しており、これを限定するものではない。例えば、前述のいくつかの機能ステップは、処理全体にそれほど影響を与えることなく、異なる順序で実行することができる。他の実施形態は、以下の特許請求の範囲内に入る。