IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アビニシオ テクノロジー エルエルシーの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023033306
(43)【公開日】2023-03-10
(54)【発明の名称】実行可能グラフの更新
(51)【国際特許分類】
   G06F 8/71 20180101AFI20230303BHJP
【FI】
G06F8/71
【審査請求】有
【請求項の数】23
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022203622
(22)【出願日】2022-12-20
(62)【分割の表示】P 2020567769の分割
【原出願日】2019-06-04
(31)【優先権主張番号】62/681,395
(32)【優先日】2018-06-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/153,320
(32)【優先日】2018-10-05
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】509123208
【氏名又は名称】アビニシオ テクノロジー エルエルシー
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】エドワード・アラン・バッチ
(72)【発明者】
【氏名】リチャード・エー・シャピロ
(57)【要約】
【課題】ベースグラフに基づいて更新されたグラフを生成する方法を提供する。
【解決手段】ベースグラフ、各ソースグラフ、及びターゲットグラフ間の差を識別することを含む。各グラフの仕様は、データを処理する演算を定義するデータ処理コンポーネントを表すノードと、データのフローを表すリンクとを定義する。識別することは、ベースグラフ及びソースグラフの仕様を比較することであって、それにより、ベースグラフとソースグラフとの間の第1の組の差分を識別する、比較することと、ベースグラフとターゲットグラフとの仕様を比較することであって、それにより、ベースグラフとターゲットグラフとの間の第2の組の差分を識別する、比較することとを含む。方法は、第1の組における差分と第2の組における差分との間の対応性を特徴付けることと、対応性及び第1の組の差分及び第2の組の差分に基づいて1組の結合差分を特定することと、ベースグラフ及び1組の結合差分に基づいて更新されたグラフを生成することとを含む。
【選択図】図3
【特許請求の範囲】
【請求項1】
ベースグラフに基づいて更新データフローグラフを生成する方法であって、
第1のデータフローグラフと第2のデータフローグラフ及び第3のデータフローグラフのそれぞれとの間の差分を識別することであって、
前記第1のデータフローグラフは前記ベースグラフを含み、前記第2のデータフローグラフはソースグラフを含み、前記第3のデータフローグラフはターゲットグラフを含み、前記データフローグラフのそれぞれの仕様はノードを定義し、前記ノードの少なくとも1つは、データ処理コンポーネントに提供されるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、1つ又は複数のリンクは前記ノードを接続し、それぞれがデータのフローを表し、
前記識別することは、
前記ベースグラフの仕様と前記ソースグラフの仕様とを比較することであって、それにより、前記ベースグラフと前記ソースグラフとの間の第1の組の差分を識別し、前記第1の組の差分は、第1の削除ノード、第1の削除リンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、又は第1の変更リンクの1つ又は複数を示す情報を含む、比較すること、及び
前記ベースグラフの仕様と前記ターゲットグラフの仕様とを比較することであって、それにより、前記ベースグラフと前記ターゲットグラフとの間の第2の組の差分を識別し、前記第2の組の差分は、第2の削除ノード、第2の削除リンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、又は第2の変更リンクの1つ又は複数を示す情報を含む、比較すること
を含む、識別することと、
前記第1の組の差分における差分と前記第2の組の差分における差分との間の対応性を特徴付けることであって、(i)前記第2の組の差分において識別されるノード若しくはリンクに対応する前記第1の組の差分において識別されるノード若しくはリンク、(ii)前記第2の組の差分において識別されるいずれのノード若しくはリンクにも対応しない前記第1の組の差分において識別されるノード若しくはリンク、又は(iii)前記第1の組の差分において識別されるいかなるノード若しくはリンクにも対応しない前記第2の組の差分において識別されるノード若しくはリンクの1つ又は複数を識別することを含む、特徴付けることと、
前記特徴付けられた対応性、前記ベースグラフと前記ソースグラフとの間の前記第1の組の差分、及び前記ベースグラフと前記ターゲットグラフとの間の前記第2の組の差分に基づいて1組の結合差分を特定することと、
前記ベースグラフ及び前記1組の結合差分に基づいて前記更新データフローグラフを生成することと、
を含む方法。
【請求項2】
前記ソースグラフ、前記ベースグラフ、前記ターゲットグラフ、及び前記更新データフローグラフは、実行可能データフローグラフである、請求項1に記載の方法。
【請求項3】
前記ソースグラフは、前記ベースグラフの第1の変更バージョンであり、前記ターゲットグラフは、前記ベースグラフの第2の変更バージョンである、請求項1又は2に記載の方法。
【請求項4】
前記第1の組の差分及び前記第2の組の差分を生成することを含み、各組の差分は、組中の各差分について、
前記差分のタイプを識別する情報及び
(i)前記差分に関連する1つ又は複数のノードを示す情報又は(ii)前記差分に関連する1つ又は複数のリンクを示す情報の1つ又は複数
を含む、請求項1~3の何れか1項に記載の方法。
【請求項5】
前記差分の前記タイプは、削除、追加、又は変更の1つ又は複数を含む、請求項4に記載の方法。
【請求項6】
前記差分に関連する1つ又は複数のノードを示す情報は、(i)削除、追加、又は変更されたノードを識別する情報と、(ii)前記削除、追加、又は変更されたノードの上流にあるノードを識別する情報及び(iii)前記削除、追加、又は変更されたノードの下流にあるノードを識別する情報の1つ又は複数とを含む、請求項4又は5に記載の方法。
【請求項7】
前記差分に関連する1つ又は複数のリンクを示す情報は、(i)追加されたリンクを識別する情報及び(ii)削除されたリンクを識別する情報の1つ又は複数を含む、請求項4~6の何れか1項に記載の方法。
【請求項8】
前記1組の結合差分を生成することは、前記1組の結合差分に、前記第2の組の差分において識別されるいかなるノード又はリンクにも対応しない前記第1の組の差分において識別されるノード又はリンクを示す情報を含むことを含む、請求項1~7の何れか1項に記載の方法。
【請求項9】
前記1組の結合差分を生成することは、前記1組の結合差分に、前記第1の組の差分において識別されるいかなるノード又はリンクにも対応しない前記第2の組の差分において識別されるノード又はリンクを示す情報を含むことを含む、請求項1~8の何れか1項に記載の方法。
【請求項10】
前記第1の組の差分において識別されるノード又はリンクと前記第2の組の差分において識別される対応するノード又はリンクとの互換性を特定することを含む、請求項1~9の何れか1項に記載の方法。
【請求項11】
前記第1の組の差分において識別されるノード又はリンクは、第1の変更ノード又はリンクを含み、前記第2の組の差分において識別されるノード又はリンクは、第2の変更ノード又はリンクを含み、
互換性を特定することは、
前記第1の変更ノード又はリンクに関連する変更が前記第2の変更ノード又はリンクに関連する変更と互換性を有すると判断することと、
前記1組の結合差分に、前記第1の組の差分において識別される前記ノード又はリンク及び前記第2の組の差分において識別される前記ノード又はリンクの両方を示す情報を含むことと、
を含む、請求項10に記載の方法。
【請求項12】
前記第1の組の差分において識別されるノード又はリンクは、第1の変更ノード又はリンクを含み、前記第2の組の差分において識別されるノード又はリンクは、第2の変更ノード又はリンクを含み、
互換性を特定することは、
前記第1の変更ノード又はリンクに関連する変更が前記第2の変更ノード又はリンクに関連する変更と互換性を有すると判断することと、
前記第1の変更ノード若しくはリンク、前記第2の変更ノード若しくはリンクを選択するか、又はいずれも選択しないことと、
前記1組の結合差分に前記選択されたノード又はリンクを示す情報を含めることと、
を含む、請求項10又は11に記載の方法。
【請求項13】
前記1組の結合差分を特定することは、
対応すると判断された差分対について、前記差分が互換性を有すると判断することと、
前記1組の結合差分に前記対の両方の差分を示す情報を含めることと、
を含む、請求項1~12の何れか1項に記載の方法。
【請求項14】
前記1組の結合差分を特定することは、
対応すると判断された差分対について、前記差分が競合すると判断することと、
前記対の前記差分の一方を選択することと、
前記1組の結合差分に前記選択された差分を示す情報を含めることと、
を含む、請求項1~13の何れか1項に記載の方法。
【請求項15】
選択基準に基づいて前記差分の一方を選択することを含む、請求項14に記載の方法。
【請求項16】
前記対の前記両方の差分を示す情報をユーザインターフェースに提示することと、
ユーザ入力に基づいて前記差分の一方を選択することと、
を含む、請求項14又は15に記載の方法。
【請求項17】
前記更新データフローグラフを生成することは、
前記ベースグラフのコピーを生成することと、
前記1組の結合差分における各差分を前記コピーに適用することと、
を含む、請求項1~16の何れか1項に記載の方法。
【請求項18】
前記ベースグラフの仕様と前記ソースグラフの仕様とを比較することは、前記ベースグラフと前記ソースグラフとの間の対応性を特定することを含む、請求項1~17の何れか1項に記載の方法。
【請求項19】
前記ベースグラフと前記ソースグラフとの間の対応性を特定することは、(1)前記ソースグラフのノード又はリンクに対応する前記ベースグラフの第1のノード又はリンクを識別すること、(2)前記ソースグラフのいずれのノードにも対応しない前記ベースグラフの第2のノード又はリンクを識別すること、及び(3)前記ベースグラフのいずれのノード又はリンクにも対応しない前記ソースグラフの第3のノード又はリンクを識別することの1つ又は複数を含む、請求項18に記載の方法。
【請求項20】
前記ベースグラフと前記ソースグラフとの間の第1の組の差分を識別することは、前記ベースグラフの前記第1のノード又はリンクと前記ソースグラフの前記対応するノード又はリンクとの間の差分を識別することを含む、請求項19に記載の方法。
【請求項21】
前記第1のノード又はリンクと前記ソースグラフの前記対応するノード又はリンクとの間の差分を識別することは、前記第1のノード又はリンクのパラメータ及びパラメータの表現の1つ又は複数と前記対応する第1のノード又はリンクのパラメータ又はパラメータの表現との間の差分を識別することを含む、請求項20に記載の方法。
【請求項22】
前記ベースグラフはベースサブグラフを含み、前記ソースグラフは第1のサブグラフを含み、前記方法は、
前記ベースサブグラフの仕様と前記第1のサブグラフの仕様とを比較して、前記ベースサブグラフと前記第1のサブグラフとの間の1つ又は複数の差分を識別すること
を含む、請求項1~21の何れか1項に記載の方法。
【請求項23】
前記第1のデータフローグラフは前記ベースグラフであり、前記第2のデータフローグラフは前記ソースグラフであり、前記第3のデータフローグラフは前記ターゲットグラフである、請求項1~22の何れか1項に記載の方法。
【請求項24】
前記リンクはノード間のデータのフローを表す、請求項1~23の何れか1項に記載の方法。
【請求項25】
前記リンクは、ノード間の制御信号のフローを表す、請求項1~24の何れか1項に記載の方法。
【請求項26】
前記ベースグラフ、前記ソースグラフ、及び前記ターゲットグラフはデータ処理グラフを含む、請求項1~25の何れか1項に記載の方法。
【請求項27】
前記ベースグラフ、前記ソースグラフ、及び前記ターゲットグラフは制御グラフを含む、請求項1~26の何れか1項に記載の方法。
【請求項28】
前記ベースグラフ、前記ソースグラフ、及び前記ターゲットグラフはプランを含む、請求項1~27の何れか1項に記載の方法。
【請求項29】
前記差分間の前記対応性を特定することは、
(1)前記第1の組の差分及び前記第2の組の差分の一方のみで識別されるノード又はリンクが関わる差分及び(2)前記第1の組の差分及び前記第2の組の差分の両方において識別されるノード又はリンクが関わる差分を識別することを含む、請求項1~28の何れか1項に記載の方法。
【請求項30】
前記1組の結合差分を特定することは、
前記第1の組の差分及び前記第2の組の差分の一方のみで識別されるノード又はリンクが関わる差分の前記第1の組の差分及び前記第2の組の差分のそれぞれについて、その差分を示す情報が前記1組の結合差分に追加されることと、
前記第1の組の差分及び前記第2の組の差分の両方において識別されるノード又はリンクが関わる差分の前記第1の組の差分及び前記第2の組の差分のそれぞれについて、互換性分析が実行されることと、
を含む、請求項1~29の何れか1項に記載の方法。
【請求項31】
前記互換性分析を実行することは、
第1の差分が第2の差分と競合するか否かを判断することであって、競合する差分対は、前記競合する差分対の一方の前記ベース実行可能グラフへの適用が、前記競合する差分対の他方の前記ベース実行可能グラフへの適用を妨げる場合、競合する、判断することを含む、請求項30に記載の方法。
【請求項32】
任意の競合する差分対の場合、選択基準に従って前記競合する差分対の一方を選択することにより、前記競合する差分対の競合を解決することと、
前記選択された差分を示す情報を前記1組の結合差分追加することと、
を含む、請求項31に記載の方法。
【請求項33】
グラフィカルユーザインターフェースを提供することと、
前記グラフィカルユーザインターフェースを介して、前記競合する差分対を視覚的に表す情報を表示することと、
を含む、請求項31又は32に記載の方法。
【請求項34】
前記グラフィカルユーザインターフェースを介して、前記競合する差分対から選択された1つ又は複数の差分の1つ又は複数の視覚的表現及びそれぞれの前記選択から生じる前記更新データフローグラフのそれぞれの視覚的表現を表示することを含む、請求項33に記載の方法。
【請求項35】
ユーザから前記グラフィカルユーザインターフェースを介して、前記視覚的表現の1つの選択、示唆される1つ又は複数の選択を含む入力を受信することであって、前記選択基準は前記入力により定義される、受信することを含む、請求項34に記載の方法。
【請求項36】
計算システムに、ベースグラフに基づいて更新データフローグラフを生成させる命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は前記計算システムに、
第1のデータフローグラフと第2のデータフローグラフ及び第3のデータフローグラフのそれぞれとの間の差分を識別することであって、前記第1のデータフローグラフは前記ベースグラフを含み、前記第2のデータフローグラフはソースグラフを含み、前記第3のデータフローグラフはターゲットグラフを含み、
前記データフローグラフのそれぞれの仕様はノードを定義し、前記ノードの少なくとも1つは、提供されるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、1つ又は複数のリンクは前記ノードを接続し、各リンクはデータのフローを表し、
前記識別することは、
前記ベースグラフの仕様と前記ソースグラフの仕様とを比較することであって、それにより、前記ベースグラフと前記ソースグラフとの間の第1の組の差分を識別し、前記第1の組の差分は、プラン第1の削除されたノード、第1の削除されたリンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、又は第1の変更リンクの1つ又は複数を示す情報を含む、比較すること、及び
前記ベースグラフの仕様と前記ターゲットグラフの仕様とを比較することであって、それにより、前記ベースグラフと前記ターゲットグラフとの間の第2の組の差分を識別し、前記第2の組の差分は、第2の削除されたノード、第2の削除されたリンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、又は第2の変更リンクの1つ又は複数を示す情報を含む、比較すること
を含む、識別することと、
前記第1の組の差分における差分と前記第2の組の差分における差分との間の対応性を特徴付けることであって、(i)前記第2の組の差分において識別されるノード若しくはリンクに対応する前記第1の組の差分において識別されるノード若しくはリンク、(ii)前記第2の組の差分において識別されるいずれのノード若しくはリンクにも対応しない前記第1の組の差分において識別されるノード若しくはリンク、又は(iii)前記第1の組の差分において識別されるいかなるノード若しくはリンクにも対応しない前記第2の組の差分において識別されるノード若しくはリンクの1つ又は複数を識別することを含む、特徴付けることと、
前記特徴付けられた対応性、前記ベースグラフと前記ソースグラフとの間の前記第1の組の差分、及び前記ベースグラフと前記ターゲットグラフとの間の前記第2の組の差分に基づいて1組の結合差分を特定することと、
前記ベースグラフ及び前記1組の結合差分に基づいて前記更新データフローグラフを生成することと、
を行わせる命令を含む、非一時的コンピュータ可読媒体。
【請求項37】
ベースグラフに基づいて更新データフローグラフを生成する計算システムであって、
メモリに結合される1つ又は複数のプロセッサ
を含み、前記1つ又は複数のプロセッサ及び前記メモリは、
第1のデータフローグラフと第2のデータフローグラフ及び第3のデータフローグラフのそれぞれとの間の差分を識別することであって、前記第1のデータフローグラフは前記ベースグラフを含み、前記第2のデータフローグラフはソースグラフを含み、前記第3のデータフローグラフはターゲットグラフを含み、
前記データフローグラフのそれぞれの仕様はノードを定義し、前記ノードの少なくとも1つは、提供されるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、1つ又は複数のリンクは前記ノードを接続し、データのフローを表し、
前記識別することは、
前記ベースグラフの仕様と前記ソースグラフの仕様とを比較することであって、それにより、前記ベースグラフと前記ソースグラフとの間の第1の組の差分を識別し、前記第1の組の差分は、プラン第1の削除されたノード、第1の削除されたリンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、又は第1の変更リンクの1つ又は複数を示す情報を含む、比較すること、及び
前記ベースグラフの仕様と前記ターゲットグラフの仕様とを比較することであって、それにより、前記ベースグラフと前記ターゲットグラフとの間の第2の組の差分を識別し、前記第2の組の差分は、第2の削除されたノード、第2の削除されたリンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、又は第2の変更リンクの1つ又は複数を示す情報を含む、比較すること
を含む、識別することと、
前記第1の組の差分における差分と前記第2の組の差分における差分との間の対応性を特徴付けることであって、(i)前記第2の組の差分において識別されるノード若しくはリンクに対応する前記第1の組の差分において識別されるノード若しくはリンク、(ii)前記第2の組の差分において識別されるいずれのノード若しくはリンクにも対応しない前記第1の組の差分において識別されるノード若しくはリンク、又は(iii)前記第1の組の差分において識別されるいかなるノード若しくはリンクにも対応しない前記第2の組の差分において識別されるノード若しくはリンクの1つ又は複数を識別することを含む、特徴付けることと、
前記特徴付けられた対応性、前記ベースグラフと前記ソースグラフとの間の前記第1の組の差分、及び前記ベースグラフと前記ターゲットグラフとの間の前記第2の組の差分に基づいて1組の結合差分を特定することと、
前記ベースグラフ及び前記1組の結合差分に基づいて前記更新データフローグラフを生成することと、
を行うように構成される、計算システム。
【請求項38】
ベースグラフに基づいて更新データフローグラフを生成する計算システムであって、
第1のデータフローグラフと第2のデータフローグラフ及び第3のデータフローグラフのそれぞれとの間の差分を識別する手段であって、前記第1のデータフローグラフは前記ベースグラフを含み、前記第2のデータフローグラフはソースグラフを含み、前記第3のデータフローグラフはターゲットグラフを含み、
前記データフローグラフのそれぞれの仕様はノードを定義し、前記ノードの少なくとも1つは、提供されるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、1つ又は複数のリンクは前記ノードを接続し、データのフローを表し、
前記識別することは、
前記ベースグラフの仕様と前記ソースグラフの仕様とを比較することであって、それにより、前記ベースグラフと前記ソースグラフとの間の第1の組の差分を識別し、前記第1の組の差分は、プラン第1の削除されたノード、第1の削除されたリンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、又は第1の変更リンクの1つ又は複数を示す情報を含む、比較すること、及び
前記ベースグラフの仕様と前記ターゲットグラフの仕様とを比較することであって、それにより、前記ベースグラフと前記ターゲットグラフとの間の第2の組の差分を識別し、前記第2の組の差分は、第2の削除されたノード、第2の削除されたリンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、又は第2の変更リンクの1つ又は複数を示す情報を含む、比較すること
を含む、識別する手段と、
前記第1の組の差分における差分と前記第2の組の差分における差分との間の対応性を特徴付ける手段であって、(i)前記第2の組の差分において識別されるノード若しくはリンクに対応する前記第1の組の差分において識別されるノード若しくはリンク、(ii)前記第2の組の差分において識別されるいずれのノード若しくはリンクにも対応しない前記第1の組の差分において識別されるノード若しくはリンク、又は(iii)前記第1の組の差分において識別されるいかなるノード若しくはリンクにも対応しない前記第2の組の差分において識別されるノード若しくはリンクの1つ又は複数を識別することを含む、特徴付ける手段と、
前記特徴付けられた対応性、前記ベースグラフと前記ソースグラフとの間の前記第1の組の差分、及び前記ベースグラフと前記ターゲットグラフとの間の前記第2の組の差分に基づいて1組の結合差分を特定する手段と、
前記ベースグラフ及び前記1組の結合差分に基づいて前記更新データフローグラフを生成する手段と、
を含む、計算システム。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
本願は、2018年6月6日付けで出願された米国特許出願第62/681,395号明細書及び2018年10月5日付けで出願された米国特許出願第16/153,320号明細書の優先権を主張するものであり、これら両特許出願の内容は全体的に、参照により本明細書に援用される。
【背景技術】
【0002】
コンピュータプログラムの開発又は実行中、コンピュータプログラムに変更を行うことができる。時に、ある開発者又はある開発者チームが、別の開発者又は別の開発者チームによって行われた変更から独立してコンピュータプログラムに変更を行うことがある。
【発明の概要】
【課題を解決するための手段】
【0003】
一態様では、ベースグラフに基づいて更新データフローグラフを生成する方法は、第1のデータフローグラフと第2のデータフローグラフ及び第3のデータフローグラフのそれぞれとの間の差分を識別することを含む。第1のデータフローグラフはベースグラフを含み、第2のデータフローグラフはソースグラフを含み、第3のデータフローグラフはターゲットグラフを含む。データフローグラフのそれぞれの仕様はノードを定義し、ノードの少なくとも1つは、提供されるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、1つ又は複数のリンクはノードを接続し、各リンクはデータのフローを表す。識別することは、ベースグラフの仕様とソースグラフの仕様とを比較することであって、それにより、ベースグラフとソースグラフとの間の第1の組の差分を識別し、第1の組の差分は、第1の削除ノード、第1の削除リンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、又は第1の変更リンクの1つ又は複数を示す情報を含む、比較することと、ベースグラフの仕様とターゲットグラフの仕様とを比較することであって、それにより、ベースグラフとターゲットグラフとの間の第2の組の差分を識別し、第2の組の差分は、第2の削除ノード、第2の削除リンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、又は第2の変更リンクの1つ又は複数を示す情報を含む、比較することを含む。本方法は、第1の組の差分における差分と第2の組の差分における差分との間の対応性を特徴付けることであって、(i)第2の組の差分において識別されるノード若しくはリンクに対応する第1の組の差分において識別されるノード若しくはリンク、(ii)第2の組の差分において識別されるいずれのノード若しくはリンクにも対応しない第1の組の差分において識別されるノード若しくはリンク、又は(iii)第1の組の差分において識別されるいかなるノード若しくはリンクにも対応しない第2の組の差分において識別されるノード若しくはリンクの1つ又は複数を識別することを含む、特徴付けることを含む。本方法は、特徴付けられた対応性、ベースグラフとソースグラフとの間の第1の組の差分、及びベースグラフとターゲットグラフとの間の第2の組の差分に基づいて1組の結合差分を特定することを含む。本方法は、ベースグラフ及び1組の結合差分に基づいて更新データフローグラフを生成することを含む。
【0004】
実施形態は以下の特徴の1つ又は複数を含むことができる。
【0005】
第1の特徴において、先の特徴の任意の1つ又は複数と組み合わせて、ソースグラフ、ベースグラフ、ターゲットグラフ、及び更新データフローグラフは、実行可能データフローグラフである。
【0006】
第2の特徴において、先の特徴の任意の1つ又は複数と組み合わせて、ソースグラフは、ベースグラフの第1の変更バージョンであり、ターゲットグラフは、ベースグラフの第2の変更バージョンである。
【0007】
第3の特徴において、先の特徴の任意の1つ又は複数と組み合わせて、本方法は、第1の組の差分及び第2の組の差分を生成することを含む。各組の差分は、組中の各差分について、差分のタイプを識別する情報及び(i)差分に関連する1つ又は複数のノードを示す情報又は(ii)差分に関連する1つ又は複数のリンクを示す情報の1つ又は複数を含む。
【0008】
第4の特徴において、先の特徴の任意の1つ又は複数と組み合わせて、差分のタイプは、削除、追加、又は変更の1つ又は複数を含む。
【0009】
第5の特徴において、第3又は第4の特徴と組み合わせて、差分に関連する1つ又は複数のノードを示す情報は、(i)削除、追加、又は変更されたノードを識別する情報と、(ii)削除、追加、又は変更されたノードの上流にあるノードを識別する情報及び(iii)削除、追加、又は変更されたノードの下流にあるノードを識別する情報の1つ又は複数とを含む。
【0010】
第6の特徴において、第3~第6の特徴の何れか1つと組み合わせて、差分に関連する1つ又は複数のノードを示す情報は、(i)追加されたリンクを識別する情報及び(ii)削除されたリンクを識別する情報の1つ又は複数を含む。
【0011】
第7の特徴において、先の特徴の任意の1つ又は複数と組み合わせて、1組の結合差分を生成することは、1組の結合差分に、第2の組の差分において識別されるいかなるノード又はリンクにも対応しない第1の組の差分において識別されるノード又はリンクを示す情報を含むことを含む。
【0012】
第8の特徴において、先の特徴の任意の1つ又は複数と組み合わせて、本方法は含む1組の結合差分を生成することは、1組の結合差分に、第1の組の差分において識別されるいかなるノード又はリンクにも対応しない第2の組の差分において識別されるノード又はリンクを示す情報を含むことを含む。
【0013】
第9の特徴において、先の特徴の任意の1つ又は複数と組み合わせて、本方法は、第1の組の差分において識別されるノード又はリンクと第2の組の差分において識別される対応するノード又はリンクとの互換性を特定することを含む。
【0014】
第10の特徴において、第9の特徴と組み合わせて、第1の組の差分において識別されるノード又はリンクは、第1の変更ノード又はリンクを含み、第2の組の差分において識別されるノード又はリンクは、第2の変更ノード又はリンクを含む。互換性を特定することは、第1の変更ノード又はリンクに関連する変更が第2の変更ノード又はリンクに関連する変更と互換性を有すると判断することと、1組の結合差分に、第1の組の差分において識別されるノード又はリンク及び第2の組の差分において識別されるノード又はリンクの両方を示す情報を含むこととを含む。
【0015】
第11の特徴において、第9又は第10の特徴と組み合わせて、第1の組において識別されるノード又はリンクは、第1の変更ノード又はリンクを含み、第2の組の差分において識別されるノード又はリンクは、第2の変更ノード又はリンクを含む。互換性を特定することは、第1の変更ノード又はリンクに関連する変更が第2の変更ノード又はリンクに関連する変更と互換性を有すると判断することと、第1の変更ノード若しくはリンク、第2の変更ノード若しくはリンクを選択するか、又はいずれも選択しないことと、1組の結合差分に選択されたノード又はリンクを示す情報を含めることとを含む。
【0016】
第12の特徴において、先の任意の特徴と組み合わせて、1組の結合差分を特定することは、対応すると判断された差分対について、差分が互換性を有すると判断することと、1組の結合差分に対の両方の差分を示す情報を含めることとを含む。
【0017】
第13の特徴において、先の任意の特徴と組み合わせて、1組の結合差分を特定することは、対応すると判断された差分対について、差分が競合すると判断することと、対の差分の一方を選択することと、1組の結合差分に選択された差分を示す情報を含めることとを含む。
【0018】
第14の特徴において、第13の特徴と組み合わせて、本方法は、選択基準に基づいて差分の一方を選択することを含む。
【0019】
第15の特徴において、先の任意の特徴と組み合わせて、本方法は、対の両方の差分を示す情報をユーザインターフェースに提示することと、ユーザ入力に基づいて差分の一方を選択することとを含む。
【0020】
第16の特徴において、先の任意の特徴と組み合わせて、更新データフローグラフを生成することは、ベースグラフのコピーを生成することと、1組の結合差分における各差分をコピーに適用することとを含む。
【0021】
第17の特徴において、先の任意の特徴と組み合わせて、ベースグラフの仕様とソースグラフの仕様とを比較することは、ベースグラフとソースグラフとの間の対応性を特定することを含む。
【0022】
第18の特徴において、第17の特徴と組み合わせて、ベースグラフとソースグラフとの間の対応性を特定することは、(1)ソースグラフのノード又はリンクに対応するベースグラフの第1のノード又はリンクを識別すること、(2)ソースグラフのいずれのノードにも対応しないベースグラフの第2のノード又はリンクを識別すること、及び(3)ベースグラフのいずれのノード又はリンクにも対応しないソースグラフの第3のノード又はリンクを識別することの1つ又は複数を含む。
【0023】
第19の特徴において、第18の特徴と組み合わせて、ベースグラフとソースグラフとの間の第1の組の差分を識別することは、ベースグラフの第1のノード又はリンクとソースグラフの対応するノード又はリンクとの間の差分を識別することを含む。
【0024】
第20の特徴において、第19の特徴と組み合わせて、第1のノード又はリンクとソースグラフの対応するノード又はリンクとの間の差分を識別することは、第1のノード又はリンクのパラメータ及びパラメータの表現の1つ又は複数と対応する第1のノード又はリンクのパラメータ又はパラメータの表現との間の差分を識別することを含む。
【0025】
第21の特徴において、先の任意の特徴と組み合わせて、ベースグラフはベースサブグラフを含み、ソースグラフは第1のサブグラフを含む。本方法は、ベースサブグラフの仕様と第1のサブグラフの仕様とを比較して、ベースサブグラフと第1のサブグラフとの間の1つ又は複数の差分を識別することを含む。
【0026】
第22の特徴において、先の任意の特徴と組み合わせて、第1のデータフローグラフはベースグラフであり、第2のデータフローグラフはソースグラフであり、第3のデータフローグラフはターゲットグラフである。
【0027】
第23の特徴において、先の任意の特徴と組み合わせて、リンクはノード間のデータのフローを表す。
【0028】
第24の特徴において、先の任意の特徴と組み合わせて、リンクは、ノード間の制御信号のフローを表す。
【0029】
第25の特徴において、先の任意の特徴と組み合わせて、ベースグラフ、ソースグラフ、及びターゲットグラフはデータ処理グラフを含む。
【0030】
第26の特徴において、先の任意の特徴と組み合わせて、ベースグラフ、ソースグラフ、及びターゲットグラフは制御グラフを含む。
【0031】
第27の特徴において、先の任意の特徴と組み合わせて、ベースグラフ、ソースグラフ、及びターゲットグラフはプランを含む。
【0032】
第28の特徴において、先の任意の特徴と組み合わせて、差分間の対応性を特定することは、(1)第1の組の差分及び第2の組の差分の一方のみで識別されるノード又はリンクが関わる差分及び(2)第1の組の差分及び第2の組の差分の両方において識別されるノード又はリンクが関わる差分を識別することを含む。
【0033】
第29の特徴において、先の任意の特徴と組み合わせて、1組の結合差分を特定することは、第1の組の差分及び第2の組の差分の一方のみで識別されるノード又はリンクが関わる差分の第1の組の差分及び第2の組の差分のそれぞれについて、その差分が1組の結合差分に追加されることを示す情報と、第1の組の差分及び第2の組の差分の両方において識別されるノード又はリンクが関わる差分の第1の組の差分及び第2の組の差分のそれぞれについて、互換性分析が実行されることとを含む。
【0034】
第30の特徴において、第29の特徴と組み合わせて、互換性分析を実行することは、第1の差分が第2の差分と競合するか否かを判断することであって、競合する差分対は、競合する差分対の一方のベース実行可能グラフへの適用が、競合する差分対の他方のベース実行可能グラフへの適用を妨げる場合、競合する、判断することを含む。
【0035】
第31の特徴において、第30の特徴と組み合わせて、本方法は、任意の競合する差分対の場合、選択基準に従って競合する差分対の一方を選択することにより、競合する差分対の競合を解決することと、選択された差分を示す情報を1組の結合差分追加することとを含む。
【0036】
第32の特徴において、第30又は第31の特徴と組み合わせて、本方法は、グラフィカルユーザインターフェースを提供することと、グラフィカルユーザインターフェースを介して、競合する差分対を視覚的に表す情報を表示することとを含む。
【0037】
第33の特徴において、第32の特徴と組み合わせて、本方法は、グラフィカルユーザインターフェースを介して、競合する差分対から選択された1つ又は複数の差分の1つ又は複数の視覚的表現及び選択から生じる更新データフローグラフのそれぞれの視覚的表現を表示することを含む。
【0038】
第34の特徴において、第33の特徴と組み合わせて、本方法は、ユーザからグラフィカルユーザインターフェースを介して、視覚的表現の1つの選択、示唆される1つ又は複数の選択を含む入力を受信することであって、選択基準は入力により定義される、受信することを含む。
【0039】
一態様では、非一時的コンピュータ可読媒体は、計算システムに、ベースグラフに基づいて更新データフローグラフを生成させる命令を記憶する。命令は、第1のデータフローグラフと第2のデータフローグラフ及び第3のデータフローグラフのそれぞれとの間の差分を計算システムに識別させる命令を含み、第1のデータフローグラフはベースグラフを含み、第2のデータフローグラフはソースグラフを含み、第3のデータフローグラフはターゲットグラフを含む。データフローグラフのそれぞれの仕様はノードを定義し、ノードの少なくとも1つは、提供されるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、1つ又は複数のリンクはノードを接続し、各リンクはデータのフローを表す。識別することは、ベースグラフの仕様とソースグラフの仕様とを比較することであって、それにより、ベースグラフとソースグラフとの間の第1の組の差分を識別し、第1の組の差分は、プラン第1の削除されたノード、第1の削除されたリンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、又は第1の変更リンクの1つ又は複数を示す情報を含む、比較することと、ベースグラフの仕様とターゲットグラフの仕様とを比較することであって、それにより、ベースグラフとターゲットグラフとの間の第2の組の差分を識別し、第2の組の差分は、第2の削除されたノード、第2の削除されたリンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、又は第2の変更リンクの1つ又は複数を示す情報を含む、比較することを含む。命令は、計算システムに、第1の組の差分における差分と第2の組の差分における差分との間の対応性を特徴付けさせる命令であって、(i)第2の組の差分において識別されるノード若しくはリンクに対応する第1の組の差分において識別されるノード若しくはリンク、(ii)第2の組の差分において識別されるいずれのノード若しくはリンクにも対応しない第1の組の差分において識別されるノード若しくはリンク、又は(iii)第1の組の差分において識別されるいかなるノード若しくはリンクにも対応しない第2の組の差分において識別されるノード若しくはリンクの1つ又は複数を識別することを含む、計算システムに特徴付けさせる命令を含む。命令は、特徴付けられた対応性、ベースグラフとソースグラフとの間の第1の組の差分、及びベースグラフとターゲットグラフとの間の第2の組の差分に基づいて1組の結合差分を計算システムに特定させる命令と、ベースグラフ及び1組の結合差分に基づいて更新データフローグラフを計算システムに生成させる命令とを含む。
【0040】
一態様では、ベースグラフに基づいて更新データフローグラフを生成する計算システムは、メモリに結合される1つ又は複数のプロセッサを含む。1つ又は複数のプロセッサ及びメモリは、第1のデータフローグラフと第2のデータフローグラフ及び第3のデータフローグラフのそれぞれとの間の差分を識別するように構成され、第1のデータフローグラフはベースグラフを含み、第2のデータフローグラフはソースグラフを含み、第3のデータフローグラフはターゲットグラフを含む。データフローグラフのそれぞれの仕様はノードを定義し、ノードの少なくとも1つは、提供されるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、1つ又は複数のリンクはノードを接続し、データのフローを表す。識別することは、ベースグラフの仕様とソースグラフの仕様とを比較することであって、それにより、ベースグラフとソースグラフとの間の第1の組の差分を識別し、第1の組の差分は、プラン第1の削除されたノード、第1の削除されたリンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、又は第1の変更リンクの1つ又は複数を示す情報を含む、比較することと、ベースグラフの仕様とターゲットグラフの仕様とを比較することであって、それにより、ベースグラフとターゲットグラフとの間の第2の組の差分を識別し、第2の組の差分は、第2の削除されたノード、第2の削除されたリンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、又は第2の変更リンクの1つ又は複数を示す情報を含む、比較することを含む。1つ又は複数のプロセッサ及びメモリは、第1の組の差分における差分と第2の組の差分における差分との間の対応性を特徴付けるように構成され、特徴付けることは、(i)第2の組の差分において識別されるノード若しくはリンクに対応する第1の組の差分において識別されるノード若しくはリンク、(ii)第2の組の差分において識別されるいずれのノード若しくはリンクにも対応しない第1の組の差分において識別されるノード若しくはリンク、又は(iii)第1の組の差分において識別されるいかなるノード若しくはリンクにも対応しない第2の組の差分において識別されるノード若しくはリンクの1つ又は複数を識別することを含む。1つ又は複数のプロセッサ及びメモリは、特徴付けられた対応性、ベースグラフとソースグラフとの間の第1の組の差分、及びベースグラフとターゲットグラフとの間の第2の組の差分に基づいて1組の結合差分を特定することと、ベースグラフ及び1組の結合差分に基づいて更新データフローグラフを生成することとを行うように構成される。
【0041】
一態様では、ベースグラフに基づいて更新データフローグラフを生成する計算システムは、第1のデータフローグラフと第2のデータフローグラフ及び第3のデータフローグラフのそれぞれとの間の差分を識別する手段を含み、第1のデータフローグラフはベースグラフを含み、第2のデータフローグラフはソースグラフを含み、第3のデータフローグラフはターゲットグラフを含む。データフローグラフのそれぞれの仕様はノードを定義し、ノードの少なくとも1つは、提供されるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、1つ又は複数のリンクはノードを接続し、データのフローを表す。識別することは、ベースグラフの仕様とソースグラフの仕様とを比較することであって、それにより、ベースグラフとソースグラフとの間の第1の組の差分を識別し、第1の組の差分は、プラン第1の削除されたノード、第1の削除されたリンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、又は第1の変更リンクの1つ又は複数を示す情報を含む、比較することと、ベースグラフの仕様とターゲットグラフの仕様とを比較することであって、それにより、ベースグラフとターゲットグラフとの間の第2の組の差分を識別し、第2の組の差分は、第2の削除されたノード、第2の削除されたリンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、又は第2の変更リンクの1つ又は複数を示す情報を含む、比較することを含む。本計算システムは、第1の組の差分における差分と第2の組の差分における差分との間の対応性を特徴付ける手段を含み、特徴付けることは、(i)第2の組の差分において識別されるノード若しくはリンクに対応する第1の組の差分において識別されるノード若しくはリンク、(ii)第2の組の差分において識別されるいずれのノード若しくはリンクにも対応しない第1の組の差分において識別されるノード若しくはリンク、又は(iii)第1の組の差分において識別されるいかなるノード若しくはリンクにも対応しない第2の組の差分において識別されるノード若しくはリンクの1つ又は複数を識別することを含む。本計算システムは、特徴付けられた対応性、ベースグラフとソースグラフとの間の第1の組の差分、及びベースグラフとターゲットグラフとの間の第2の組の差分に基づいて1組の結合差分を特定する手段を含む。本計算システムは、ベースグラフ及び1組の結合差分に基づいて更新データフローグラフを生成する手段を含む。
【0042】
本明細書に記載される手法は、データフローグラフ(すなわち、コンピュータプログラム)の複数のバージョンを、各バージョンでの変更を反映した1つの更新データフローグラフに効率的且つ高信頼的に自動的に併合できるようにする。この自動化された併合は、例えば、複数のチームのそれぞれにより独立して実行されたコンピュータプログラムへの開発作業又はデバッグ作業を1つの更新されたコンピュータプログラムに効率的且つ高信頼的に結合するのに使用することができる。この効率的で高信頼的なバージョン管理は、ソフトウェア開発プロセス中、プログラム開発者を助け、したがって、この開発プロセスをもより効率的且つ精密にする。
【図面の簡単な説明】
【0043】
図1】データフローグラフの図表現である。
図2A】データフローグラフの図表現である。
図2B】データフローグラフの図表現である。
図2C】データフローグラフの図表現である。
図3】システム図である。
図4A】データフローグラフの図表現である。
図4B】データフローグラフの図表現である。
図4C】データフローグラフの図表現である。
図4D】データフローグラフの図表現である。
図5A】フローチャートである。
図5B】フローチャートである。
図6】スクリーンショットである。
図7】スクリーンショットである。
図8】スクリーンショットである。
図9】スクリーンショットである。
図10】フローチャートである。
図11】データフローグラフを開発するデータ処理システムの図である。
【発明を実施するための形態】
【0044】
本明細書において、コンピュータプログラムの複数のバージョンを1つの更新されたプログラムに結合する手法について説明する。例えば、データフローグラフ等のコンピュータプログラム、例えばデータ処理グラフ、制御グラフ、又はプランを開発又はデバッグする場合、複数の開発者又は複数の組の開発者はそれぞれ、独立してコンピュータプログラムに対して作業し得る。その結果として、コンピュータプログラムの複数の変更されたバージョンが生成され得る。ベースコンピュータプログラムと、ベースコンピュータプログラムのこれらの変更された各バージョンとの間の差分を識別し、全ての差分の完全な組をベースコンピュータプログラムに適用して、ベースコンピュータプログラムの変更された各バージョンで行われた変更を反映した1つの更新されたコンピュータプログラムを生成することができる。
【0045】
データフローグラフは、データソース及びデータシンク等のデータ処理コンポーネント及びデータセットを示すノードを含むことができるコンピュータプログラムのグラフ表現である。データセットは、例えば、ファイル、データベーステーブル、又はグラフによる処理若しくはグラフによる処理されたデータの受信のためにデータ(例えば、データレコード)を提供することができる他のタイプのデータソース若しくはシンクであることができる。データ処理コンポーネント及びデータセットは時にまとめてグラフのノードと呼ばれる。グラフの2つのノードを結ぶリンクは、第1のノードと第2のノードとの間のデータ又は制御信号等の情報のフローを表す。そのようなデータフローグラフ(時にグラフと呼ばれる)は、データ処理グラフ、制御グラフ、又はプランであることができる。幾つかの例では、データフローグラフは、情報の処理を実行するために実行することが可能であることができる。幾つかの例では、データフローグラフは実行可能ではなく、例えばなお開発中又はデバッグ中であるコンピュータプログラムの表現であるデータフローグラフである。図1は、データを処理するように構成され、各リンク14、20により第1のノード16にそれぞれ接続されたデータソース12、18を含むデータフローグラフ10を示す。フィルタノード16は、リンク24、28によりデータシンク22、26にそれぞれ接続される。
【0046】
グラフのノードは、リンクを接続することができる入力ポート及び/又は出力ポートを有することができる。図1の例では、リンク14、20の上流端部は、対応するデータソース12、18の出力ポートに接続される。リンク24の上流端部はフィルタノード16の出力ポートに接続される。リンク14、20の下流端部は、フィルタノード16の入力ポートに接続される。リンク24、28の下流端部は、対応するデータシンク22、26の入力ポートに接続される。
【0047】
データ処理コンポーネントは、演算を実行して、データを処理又は操作する。ノードは、実行されると、データ処理コンポーネントの演算を実施するプログラミングコードにより定義されるオブジェクトであるデータ処理コンポーネント(例えば、ソフトウェアとハードウェアトの組合せ)の図表現である。データ処理コンポーネントの例には、マッピングコンポーネント、フィルタコンポーネント、重複排除コンポーネント、集計コンポーネント、複製コンポーネント、正規化コンポーネント、パーテーション及びソートコンポーネント、結合コンポーネント、又は他のタイプのデータ処理コンポーネントがある。幾つかの例では、データソースコンポーネント及びデータシンクコンポーネントはデータ処理コンポーネントと見なすことができる。データ処理コンポーネントの演算は、1つ又は複数のパラメータに関して定義することができる。パラメータは、データ処理コンポーネントのコードにより参照されるファイル(例えば、.dmlファイル)において定義することができる。例えば、ファイルは、データ処理コンポーネントに関連するパラメータの値又は式を含むことができる。グラフがインスタンス化される(例えば、実行時に)場合、パラメータの式は評価されて、時にパラメータの解決と呼ばれることもあるパラメータの値を取得する。パラメータの値又は式は、例えば、ユーザインターフェースを介してユーザにより(例えば、プロンプトに応答して)定義、ファイルから定義、又は同じコンテキスト若しくは異なるコンテキストでの別のパラメータに関して定義することができる。例えば、パラメータは、別のパラメータと「同じ」関係を有するようにパラメータを指定することにより、異なるコンテキスト(例えば、異なるコンポーネントのコンテキストで評価されるパラメータ)からエクスポートすることができる。図1の例では、フィルタノード16及びその対応するコンポーネントは、関連するパラメータセット15を有する。
【0048】
初期の変更されていないデータフローグラフをベース実行可能グラフ又はベースグラフと呼ぶ。ベースグラフと比較して変更されたグラフの第1の変更バージョンをソース実行可能グラフ又はソースグラフと呼ぶ。ベースグラフと比較して変更されたグラフの第2の変更バージョンをターゲット実行可能グラフ又はターゲットグラフと呼ぶ。ソース実行可能グラフ及びターゲット実行可能グラフの両方からの変更を組み込んだグラフを更新データフローグラフと呼ぶ。
【0049】
差分分析をソースグラフ及びターゲットグラフのそれぞれに実行されて、ベースグラフとソースグラフ及びターゲットグラフのそれぞれとの間の対応する1組の差分を識別する。差分分析の結果は複数の組の差分であり、各組の差分はベースグラフトソースグラフ及びターゲットグラフの一方との間の差分を示す。複数の組の差分は1つの組の結合差分に併合される。1組の結合差分はベースグラフに適用されて、更新グラフを生成する。これは、上述した効率的で高信頼的なバージョン管理の提供に寄与する。
【0050】
一例では、図1のデータフローグラフ10はベースグラフである。図2A及び図2Bはソースグラフ30及びターゲットグラフ40をそれぞれ示す。差分分析をソースグラフ30及びターゲットグラフ40のそれぞれに実行して、ベースグラフ10と各グラフ30、40との間の差分を識別する。第1のグラフ及び第2のグラフ(例えば、ベースグラフ10及びソースグラフ30)の差分分析は、ソースグラフ30には存在するが、ベースグラフ10には存在しないノード(追加ノードと呼ばれる)、ベースグラフ10には存在するが、ソースグラフ30には存在しない1つ又は複数のノード(削除ノードと呼ばれる)、及びベースグラフ10及びソースグラフ30の両方に存在するが、変更された1つ又は複数のノード(変更ノードと呼ばれる)を識別する。変更ノードは一般に、第1のグラフと第2のグラフとで同様であることができるが、更に後述するように、パラメータ、属性、又はノードに関連する他の特徴が変更されている。差分分析はまた、第1のグラフの1つ又は複数のリンクと第2のグラフの1つ又は複数のリンクとの間の差分を識別することもできる。差分分析の更なる説明を以下に提供する。
【0051】
図2A及び図2Bの例では、ソースグラフ30への差分分析の結果、追加ノード32、追加フロー34、35、36、及び削除フロー14、20を識別する第1の組の差分が生成される。ターゲットグラフ40への差分分析の結果、変更されたパラメータセット15’を有する変更ノード16、削除ノード26、及び削除リンク28を識別する第2の組の差分が生成される。
【0052】
複数の組の差分は、より詳細に後述する1つの組の結合差分に結合される。図2A及び図2Bの例では、1組の結合差分は、追加ノード32、削除ノード26、変更ノード16、並びに追加フロー及び削除フローを識別する。図2Cも参照すると、1組の結合差分をベースグラフ10(又はそのコピー)に適用して、更新グラフ50を生成する。更新グラフ50は、1組の結合差分に従って変更されたベースグラフ10のノード及びリンクを含む。すなわち、ベースグラフと比較してソースグラフ及びターゲットグラフの何れか一方において追加されたノード及びリンクは、更新グラフにおいてベースグラフと比較して追加される(すなわち、生成される)。ベースグラフと比較してソースグラフ及びターゲットグラフの何れか一方において削除されたノード及びリンクは、更新グラフにおいてベースグラフと比較して削除される(すなわち、生成されない)。
【0053】
図3を参照すると、グラフ更新システム300は、ベースグラフ302とソースグラフ304及びターゲットグラフ306のそれぞれとの間の差分を識別し、ベースグラフ302と比較して両グラフ304、306において行われた変更を反映した1つの更新グラフ350を生成する。グラフ更新システム300は、差分分析をソースグラフ304及びターゲットグラフ306のそれぞれに対して実行し、各グラフ304、306に対応する1組の差分312、314を出力する差分エンジン310を含む。各組の差分はベースグラフ302と対応するグラフ304、306との間の差分を識別する。グラフ更新システム300はまた、複数の組の差分312、314を併合して1つの組の結合差分322にする併合エンジン320も含む。グラフ更新エンジン330は、ベースグラフ302及び1組の結合差分322に基づいて更新グラフ350を生成する。
【0054】
差分分析は、所与のグラフ(例えば、ソースグラフ又はターゲットグラフ)に対して、ソース又はターゲットグラフで削除されたベースグラフ302内のノード、ソース又はターゲットグラフに追加されたノード、及びソース又はターゲットグラフで変更されたノードを識別する。幾つかの例では、差分分析はリンクも分析して、削除されたリンク、追加されたリンク、及び変更されたリンクを識別する。差分エンジン310は、ベースグラフ302の仕様をソースグラフ及びターゲットグラフのそれぞれの仕様と比較して、ベースグラフ302内のどのノード(例えば、データ処理コンポーネント、入力データセット、又は出力データセットに対応するノード)がソースグラフ及びターゲットグラフのそれぞれ内のノードに対応するかを特定する。グラフの仕様は、グラフとは別個であり、グラフのノード及びリンク等のグラフの要素を定義するファイルである。
【0055】
対応するノードは、データグラフ及びソース又はターゲットグラフの両方に何らかの形で関わるが、必ずしも同一である必要はなく、ベースグラフとソース又はターゲットグラフとの間で差分を有することができるが、一般に、両グラフにおいて同じノードとみなすのに十分、類似するノード(関連するパラメータセットが異なるが、他の点は同一のノード等)である。幾つかの例では、差分エンジン310は、ノードのタイプ(例えば、データ処理コンポーネント又はデータセット)、ノードの名称、ノードの一意の識別子、又はノードに関連する他のメタデータの1つ又は複数等のノードに関連するメタデータに基づいて、対応するノードを識別する。幾つかの例では、差分エンジン310は、ポートの名称若しくは番号、ノードへのデータフローの名称若しくはソース、ノード若しくはコンポーネントからのデータフローの名称若しくは宛先、又はノード若しくはコンポーネント内若しくは外へのデータフローに関連する他の情報等のノード又はコンポーネント内又は外へのデータフローに関連する情報に基づいて、対応するノードを識別する。幾つかの例では、差分エンジン310は、特定のノードが他のノードと比較してグラフのどこに位置するか(例えば、1つ又は複数のどのノードが特定のノードの真上又は真下にあるか)等のトポロジ情報に基づいて、対応するノードを識別する。幾つかの例では、差分エンジン310は、カンバス上のグラフの図表現におけるノードのロケーション(例えば、x-y座標)に基づいて、対応するノードを識別する。幾つかの例では、例えば、カンバス上のノードのロケーションがノード又はノードを含むグラフの機能に何の影響も有さないため、差分エンジン310は、対応するノードを識別するに当たり、ロケーション情報を無視する。
【0056】
所与のグラフ(例えば、ソースグラフ304又はターゲットグラフ306)の差分分析において、ソースグラフ304又はターゲットグラフ306に対応するノードがないベースグラフ302内の任意のノードは、そのグラフの1組の差分における削除ノードとして差分エンジン310により識別される。ベースグラフ302に対応するノードがないソースグラフ304又はターゲットグラフ306内の任意のノードは、そのグラフの1組の差分において追加ノードとして差分エンジン310により識別される。
【0057】
対応するノードの対は、差分エンジン310により更に分析されて、ソースグラフ304又はターゲットグラフ306内のノードが、ベースグラフ302内の対応するノードと比較して任意の差分を有するか否かを判断する。差分が識別される場合、ノードは差分エンジン310により変更ノードとして識別される。幾つかの例では、差分エンジン310は、グラフの実行に影響することができるノードの特徴及びグラフの実行に影響しないノードの特徴の両方を分析することができる。グラフの実行に影響する特徴は、例えば、パラメータ式又はパラメータ値等のパラメータを含むことができる。グラフの実行に影響しない特徴は、例えば、属性値(例えば、オーサー属性、名称属性、バージョン属性、若しくは他の属性)、コメント、レジェンド、フォーマット(例えば、フォント)、カンバス上のノードのロケーション、又は他の特徴を含むことができる。幾つかの例では、差分エンジン310は、グラフの実行に影響することができる特徴のみを分析することができ、グラフの実行に影響しない特徴を無視することができる。
【0058】
対応するノード対のパラメータの分析は、任意のパラメータが追加されたか(例えばソース又はターゲットグラフのノードに存在するが、ベースグラフの対応するノードに存在しないパラメータ)、それとも削除されたか(例えば、ベースグラフのノードに存在するが、ソース又はターゲットグラフの対応するノードに存在しないパラメータ)を識別することができる。パラメータの分析は、パラメータを定義する式、パラメータの値、又は両方の分析を含むことができる。パラメータの式を分析するために、パラメータ分析を各ノードに対応するソースコードに対して実行することができる。
【0059】
幾つかの例では、差分分析はまた、ベースグラフ及びソース又はターゲットグラフにより参照される外部ファイルの分析を含むこともできる。幾つかの例では、レコードフォーマットファイル(例えば.dmlファイル)、変換ファイル(例えば.xfrファイル)、又は内容がグラフの実行に影響することができる他のタイプのファイル等の特定のタイプのファイルのみが差分エンジン310により分析される。
【0060】
ベースグラフとソース又はターゲットグラフとの間の差分分析の結果は、各差分(ノード削除、ノード追加、及びノード変更のそれぞれ)を示す情報を含む1組の差分(例えば、組312、314)である。削除ノードを示す情報は、以下の1つ、複数、又は全てを含むことができる:
・ベースグラフにおけるノードを識別し(例えば、ノードの一意の識別子)、ノードの削除を示す情報、
・ベースグラフにおけるノードの上流にあるノードを識別する情報、
・ベースグラフにおけるノードの下流にあるノードを識別する情報、
・上流ノードからベースグラフにおけるノードへの入力フローを識別し、入力リンクの削除を示す情報、
・ベースグラフにおけるノードから下流ノードへの出力を識別し、リンクの削除を示す情報、及び
・上流ノードをソース又はターゲットグラフにおける下流ノードに接続するフローを識別し、リンクの追加を示す情報。
【0061】
追加ノードを示す情報は、以下の1つ、複数、又は全てを含むことができる:
・ノードの機能を示す情報(例えば、ノードの仕様、ノードのパラメータセット、又はノード機能を示す他の情報)、
・ソース又はターゲットグラフにおける追加ノードの上流にあるノードを識別する情報、
・ソース又はターゲットグラフにおける追加ノードの下流にあるノードを識別する情報、
・上流ノードからソース又はターゲットグラフにおける追加ノードへのリンクを識別し、リンクの追加を示す情報、
・追加ノードからソース又はターゲットグラフにおける下流ノードへのリンクを識別し、リンクの追加を示す情報、及び
・上流ノードからベースグラフにおける下流ノードへのリンクを識別し、リンクの削除を示す情報。
【0062】
変更ノードを示す情報は、以下の1つ、複数、又は全てを含むことができる:
・ノードを識別する情報及び
・ノードへの変更を示す情報(例えば、更新パラメータリスト)。
【0063】
差分分析の更なる説明は、2017年5月5日付けで出願された米国特許出願第15/587,987号明細書において提供され、この特許出願の内容は全体的に、参照により本明細書に援用される。
【0064】
併合エンジン320は、複数の組の差分312、314を併合して1組の結合差分322にする。そうするために、併合エンジン320は、差分対312、314間の対応性を特定して、(1)差分対の1つのみで識別されるノードが関わる差分及び(2)複数の組の差分の2つ以上で識別されるノードが関わる差分を識別する。特定のノードが関わる差分とは、情報が特定のノードを例えば削除ノード、追加ノード、変更ノード、上流ノード、又は下流ノードとして識別する差分を示す差分を意味する。差分対の1つのみで識別されるノードが関わる各差分について、その差分を示す情報は1組の結合差分322に追加される。2つ以上の組の差分で識別されるノードが関わる各差分について、併合エンジン320は互換性分析を実行する。
【0065】
互換性分析とは、第1の差分が第2の差分と競合するか、それとも互換性を有するかを判断する分析である。差分対は、ベースグラフのコピーへの差分の1つの適用が、差分の他の1つのコピーへの適用を妨げる場合、競合対と呼ばれる。競合対の一例は、フィルタコンポーネントの削除及びその同じフィルタコンポーネントのパラメータへの変更である。競合対の別の例は、リフォーマットコンポーネントの削除及びフローによるそのリフォーマットコンポーネントに接続されたデータソースの追加である。競合対の別の例は、コンポーネントのパラメータへの第1の変更及びコンポーネントのその同じパラメータへの第2の異なる変更である。
【0066】
併合エンジン320は、差分対を選択することにより各競合対を解決する。選択された差分を示す情報は1組の結合差分322に追加される。幾つかの例では、併合エンジン320は、選択基準324、例えば競合の解決の仕方についてユーザにより提供される指示を参照して各差分対を解決する。例えば、選択基準は、複数の差分対の優先順位を指定し、併合エンジン320がより高優先度の差分対から差分を選択すべきことを示し得る。幾つかの例では、併合エンジン320は、ユーザが各競合対から差分を手動で選択することができるように、競合対をユーザインターフェース340に表示させる。
【0067】
幾つかの例では、競合対は、テキスト情報として、例えばリストとしてユーザに提示することができる。幾つかの例では、競合対は、例えば、2017年5月5日付けで出願された米国特許出願第15/587,987号明細書に記載されるように、各差分の図表現を使用してユーザに提示することができ、この米国特許出願の内容は全体的に、参照により本明細書に援用される。
【0068】
グラフ更新エンジン330は、1組の結合差分322における差分に基づいて更新グラフ350を生成する。例えば、グラフ更新エンジン330は、ベースグラフ302のコピーを生成し、1組の結合差分における差分をコピーに適用することができる。各差分について、1組の結合差分322は、リンクの追加又は削除及びノードの追加、削除、又は変更を含め、行うべき1つ又は複数の変更を識別する。グラフ更新エンジン330はこれらの各変更をコピーに適用する。全ての変更が適用されたコピーが更新グラフ350である。
【0069】
幾つかの例では、1組の結合差は互換性がある差分のみを含むことができ、したがって、更新グラフ350は互換性のある差分のみを反映する。差分の競合対が解決されると、解決された差分も更新グラフに適用することができる。
【0070】
図4A図4Dを参照して、差分を併合する一例を示す。図4Aは、銀行取引レコードを処理するベースグラフ400を示す。ベースグラフ400は、データソース402、リフォーマットノード404、フィルタノード406、及びデータシンク408を有する。フィルタノード406には、transaction_amountフィールドを識別するfilter_byパラメータを含むパラメータセット405が関連付けられる。ノードは、図4Aに示されるように、リンク410、412、416により接続される。
【0071】
図4B及び図4Cはそれぞれソースグラフ420及びターゲットグラフ440である。差分分析は、ソースグラフ420において、フィルタノード406が削除され、追加のデータソース422が追加されたことを識別する。ターゲットグラフ440では、フィルタノード406には、filter_byパラメータがtransaction_dateフィールドである変更パラメータセット405’が関連付けられ、追加のソートノード442が追加された。
【0072】
ソースグラフ420の1組の差分は以下の情報を含む:
・削除されたフィルタノード406を示す情報:
・フィルタノード406の識別子、
・ベースグラフ400においてフィルタノード406の上流にあるリフォーマットノード404の識別子、
・ベースグラフにおいてフィルタノード406の下流にあるデータシンクノード408の識別子、
・ベースグラフにおいてリフォーマットノード404とフィルタノード406との間のリンク412及びリンク412の削除の指示、
・ベースグラフにおけるフィルタノード406とデータシンクノード408との間のリンク416及びリンク416の削除の指示、並びに
・ソースグラフ420におけるリフォーマットノード404とデータシンクノード408との間の新しいリンク424の識別子、
・新しいデータソースノード422を示す情報:
・データソースノード422の仕様、
・ソースグラフ420におけるデータソースノード422の下流にあるリフォーマットノード404の識別子、
・ソースグラフ420におけるデータソースノード422とリフォーマットノード404との間の新しいリンク426の識別子。
【0073】
ターゲットグラフ440の1組の差分は以下の情報を含む:
・フィルタノード406の変更を示す情報:
・フィルタノード406の識別子、
・ターゲットグラフ440においてフィルタノード406の上流にあるリフォーマットノードの識別子、
・ターゲットグラフ440においてフィルタノード406の下流にあるソートノードの識別子、
・フィルタノード402に接続された各リンク412、444の識別子、及び
・変更パラメータセット405’の仕様、
・ソートノード442の追加を示す情報:
・ソートノード442の仕様、
・ソートノードのパラメータセットの仕様、
・ターゲットグラフ440におけるソートノード442の上流にあるフィルタノード406の識別子、
・ターゲットグラフ440におけるソートノード442の下流にあるデータシンクノード408の識別子、
・ターゲットグラフ440におけるフィルタノード406とソートノード442との間の新しいリンク444の識別子、
・ターゲットグラフにおけるソートノード442とデータシンク408との間の新しいリンク446の識別子、及び
・ベースグラフにおけるフィルタノード406とデータシンク408との間のリンク416の識別子及びリンク416の削除の指示。
【0074】
互換性分析は、ソースグラフ420におけるデータソース422の追加がターゲットグラフ440における全ての差分と互換性があり、ターゲットグラフ440におけるソートノード442の追加がソースグラフ420における全ての差分と互換性があると判断する。データソース422の追加及びソートコンポーネント442の追加を示す上記列挙した情報は、1組の結合差分に追加される。
【0075】
互換性分析は、ターゲットグラフ440におけるフィルタノード406に関連するパラメータセット15の変更と競合するものとして、ソースグラフ420におけるフィルタノード406の削除を識別する。この例では、この競合はユーザインターフェースでユーザに提示され、ユーザは、例えば、パラメータセット変更の選択で応答し得る。代替的には、選択基準が自動的にシステム300により適用し得、同じ選択に繋がり得る。パラメータセットの変更を示す上記列挙した情報は、2組の結合差分に追加される。フィルタノード406の削除を示す情報は1組の結合差分に追加されない。
【0076】
図4Dを参照すると、1組の結合差分における差分はベースグラフ400のコピーに適用されて、更新グラフ450を生成する。特に、上記指定したノード及びリンクの追加、削除、及び変更は、ベースグラフ400のコピーに適用される。例えば、ソートノードの追加をベースグラフのコピーに適用するために、リンク416は削除され、ソートノード442は追加され、ソートノードを上流ノード及び下流ノードに接続する新しいリンク446、448が追加される。グラフ450における各ノードは対応するコンポーネントを表し、グラフ450における各リンクは、コンポーネント間の対応するデータフローを表す。
【0077】
図5Aは、ベースグラフ、ソースグラフ、及びターゲットグラフに基づいて更新グラフを生成するプロセスの一例を示す。第1の組の差分が、ベースグラフとソースグラフとの間で特定される(500)。図5Bを参照すると、第1の組の差分を特定するために、ベースノードグラフにおける各ノード又はリンクとソースグラフにおけるノード又はリンクとの間の対応性が特定される(550)。ソースグラフにおける第2のノード又はリンクに対応するベースグラフにおける第1のノード又はリンクのそれぞれは、対応する第2のノード又はリンクと比較され(552)、第1のノード又はリンクと第2のノード又はリンクとの間の任意の差分が識別される(554)。第1のノード又はリンクと第2のノード又はリンクとの間に差分がない場合、第2のノード又はリンクは第1の組の差分に含まれない(558)。第1のノード又はリンクと第2のノード又はリンクとの間に差分がある場合(560)、第2のノード又はリンクは、第1の組の差分において変更ノード又はリンクとして示される(562)。ソースグラフにおけるノード又はリンクに対応しないベースグラフにおけるノード又はリンクは、第1の組の差分において削除ノード又はリンクとして示される(564)。ベースグラフにおけるノード又はリンクに対応しないソースグラフにおけるノード又はリンクは、第1の組の差分において追加ノード又はリンクとして示される(566)。
【0078】
第2の組の差分が、ベースグラフとターゲットグラフとの間で特定される(502)。第2の組の差分を特定するために、ベースノードグラフにおける各ノード又はリンクとターゲットグラフにおけるノード又はリンクとの間の対応性が特定される。ターゲットグラフにおける第2のノード又はリンクに対応するベースグラフにおける第1のノード又はリンクのそれぞれは、対応する第2のノード又はリンクと比較され、第1のノード又はリンクと第2のノード又はリンクとの間の任意の差分が識別される。第1のノード又はリンクと第2のノード又はリンクとの間に差分がない場合、第2のノード又はリンクは第2の組の差分に含まれない。第1のノード又はリンクと第2のノード又はリンクとの間に差分がある場合、第2のノード又はリンクは、第2の組の差分において変更ノード又はリンクとして示される。ターゲットグラフにおけるノード又はリンクに対応しないベースグラフにおけるノード又はリンクは、第2の組の差分において削除ノード又はリンクとして示される。
【0079】
第1の組の差分における特定の差分は評価されて、特定の差分と第2の組の差分との間の対応性を特定する(504)。第1の組の差分における特定の差分に対応する第2の組の差分における差分がない場合(506)、第1の組の差分における特定の差分は、1組の結合差分に追加され(508)、対処済みとして示される。第1の組の差分における特定の差分に対応する第2の組の差分における差分がある場合(510)、第2の組の差分における対応する差分との特定の差分の互換性が特定される(512)。差分が互換性を有すると特定される場合(514)、第1の組の差分における特定の差分は1組の結合差分に追加され(508)、両差分は対処済みとして示される。差分が互換性を有すると特定される場合(516)、各差分の相対優先度が、予め定義されたルールに従って又はユーザ入力に基づいて特定される(518)。高優先度の差分は1組の結合差分に追加され(520)、両差分は対処済みとして示される。
【0080】
第1の組の差分はレビューされて、全ての差分が対処されたか否かを判断する(522)。対処されていない差分が第1の組の差分に残っている場合(524)、第1の組の差分における別の差分が評価される(504)。第1の組の差分における全ての差分が対処された場合(526)、第2の組の差分における任意の未対処差分が1組の結合差分に追加される(528)。1組の結合差分はベースグラフに適用されて、更新グラフを生成する(530)。
【0081】
図6図9は、ソースグラフ及びターゲットグラフから更新グラフを生成するユーザインターフェースの一例のスクリーンショットである。
【0082】
特に図6を参照して、グラフィカルユーザインターフェース600は、ベースグラフとソースグラフ及びターゲットグラフとの間の差分を併合することにより作成された更新グラフのリストを示す。アイコンは、例えば、更新グラフが互換性問題を有さない(例えば、calculate_interest_dailyグラフに示されるように)こと又は差分の1つ若しくは複数の競合対を有する(例えば、apply_interest_monthlyグラフに示されるように)ことを示す、各更新グラフのステータスを示すことができる。ユーザは、グラフの1つを選択して、グラフについての情報を表示することができる。例えば、差分の1つ又は複数の競合対を有するグラフの場合、ユーザは、ベースグラフとソースグラフ及びターゲットグラフの1つ又は複数との間の差分のグラフ表現を見ることができる。差分の図表現の一例を図7に示す。
【0083】
図8を参照すると、幾つかの例では、競合はテキストフォーマットで表現することができる。例えば、図8の例では、ソースグラフは「+400.00」値を含み、ターゲットグラフは「+200.0」値を含む。競合がテキストで表される場合、ユーザはテキストを編集して、所望の内容を残すことができる(例えば、所与の競合でソースグラフ又はターゲットグラフに対応するテキストを削除する)。幾つかの例では、全ての差分がテキストに含まれ、競合する差分は、「<<<<<<<<」マーカと「>>>>>>>>>」マーカとの間に挟まれる等のマーカにより示されて、ユーザが全ての競合を容易に見つけられるようにする。
【0084】
図9を参照すると、幾つかの例では、競合は図で表すことができる。競合に対処するために、ユーザは各競合を選択(例えば、クリック又はタップ)して、競合のテキスト表現にアクセスことができる。幾つかの例では、競合は、図表現を通して直接対処することができる。
【0085】
図10は、ベースグラフに基づいて更新グラフを生成する一般的なプロセスを示す。第1のデータフローグラフと第2のデータフローグラフ及び第3のデータフローグラフのそれぞれとの間の差分が識別される(50)。第1のデータフローグラフはベースグラフを含み、第2のデータフローグラフはソースグラフを含み、第3のデータフローグラフはターゲットグラフを含む。各データフローグラフの仕様は、1つ又は複数のノード及びノードを接続する1つ又は複数のリンクを定義する。ノードの少なくとも1つは、データ処理コンポーネントに提供されるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表す。差分を識別すること(50)は、ベースグラフの仕様とソースグラフの仕様とを比較することであって、それにより、ベースグラフとソースグラフとの間の第1の組の差分を識別すること、例えば、第1の削除ノード、第1の削除フロー、第1の追加ノード、第1の追加フロー、第1の変更ノード、又は第1の変更フローの1つ又は複数を識別することを含む。差分を識別すること(50)は、ベースグラフの仕様とターゲットグラフの仕様とを比較することであって、それにより、ベースグラフとターゲットグラフとの間の第2の組の差分を識別すること(54)、例えば、第2の削除ノード、第2の削除フロー、第2の追加ノード、第2の追加フロー、第2の変更ノード、又は第2の変更フローの1つ又は複数を識別することも含む。
【0086】
第1の組の差分における差分と第2の組の差分における差分との間の対応性が特徴付けられる(56)。特徴付けることは、(i)第2の組の差分において識別されるノード若しくはリンクに対応する第1の組の差分において識別されるノード若しくはリンク、(ii)第2の組の差分において識別されるいずれのノード若しくはリンクにも対応しない第1の組の差分において識別されるノード若しくはリンク、又は(iii)第1の組の差分において識別されるいかなるノード若しくはリンクにも対応しない第2の組の差分において識別されるノード若しくはリンクの1つ又は複数を識別することを含む。第1の組の差分において識別されたノード又はリンクと第2の組の差分において識別された対応するノード又はリンクとの間の互換性が特定される(58)。
【0087】
1組の結合差分が、特徴付けられた対応性、ベースグラフとソースグラフとの間の第1の組の差分、及びベースグラフとターゲットグラフとの間の第2の組の差分に基づいて特定される(60)。1組の結合差は、第1の組の差分において識別されたノード若しくはリンクと第2の組の差分において識別された対応するノード若しくはリンクとの間の互換性に基づいて特定することができる。1組の結合差分には、第2の組の差分において識別されたいかなるノード若しくはリンクにも対応しない第1の組の差分において識別されたノード若しくはリンクを示す情報又は第1の組の差分において識別されたいかなるノード若しくはリンクにも対応しない第2の組の差分において識別されたノード若しくはリンクを示す情報を含めることができる。
【0088】
更新データフローグラフは、ベースグラフ及び1組の結合差分に基づいて生成される(62)。
【0089】
幾つかの例では、グラフのコンポーネントは、それら自体がフローと相互接続される1組の他のコンポーネントを使用して実施することができる。グラフのコンポーネントが実施されるこの1組のコンポーネントは、サブグラフと呼ばれ、グラフのノードである。本明細書に記載される手法は、サブグラフを含むグラフ間の差分の併合に使用することができる。
【0090】
プランとは、複数のグラフの実行が関わるプロセスの視覚的表現である。プランでは、個々のグラフはノードであり、プランのグラフ間のデータフローを示すフローにより相互接続される。
【0091】
図11は、開発のためのデータ処理システム1000及び本明細書に記載される技法を使用することができるデータフローグラフの一例を示す。幾つかの場合、データ処理システム1000はまた、実行可能データフローグラフを実行するためのものであることもできる。システム1000は、記憶装置又はオンラインデータストリームへの接続等の1つ又は複数のデータソースを含み得るデータソース1002を含み、各データソースは、任意の種々のフォーマット(例えば、データベーステーブル、スプレッドシートファイル、平文ファイル、又はメインフレームコンピュータにより使用されるネイティブフォーマット)のデータを記憶又は提供し得る。データは、物流データ、分析データ、又は産業機械データであり得る。実行環境又は実行時環境1004は、前処理モジュール1006及び実行モジュール1012を含む。実行環境1004は、例えば、あるバージョンのUNIX(登録商標)オペレーティングシステム等の適したオペレーティングシステムの制御下で1つ又は複数の汎用コンピュータでホストし得る。例えば、実行環境1004は、ローカル(例えば、対称マルチ処理(SMP)コンピュータ等のマルチプロセッサシステム)、ローカルに分散(例えば、クラスタとして結合される複数のプロセッサ又は超並列処理(MPP)システム、リモート、リモートに分散(例えば、ローカルエリアネットワーク(LAN)及び/又は広域ネットワーク(WAN)を介して結合される複数のプロセッサ)、又はそれらの任意の組合せのいずれかである、複数の処理ユニット(中央演算処理装置、CPU等)又はプロセッサコアを使用するコンピュータシステムの構成を含む複数のノード並列計算環境を含むことができる。
【0092】
データソース1002を提供する記憶装置は、実行環境1004に対してローカル、例えば、実行環境1004をホストするコンピュータに接続された記憶媒体(例えば、ハードドライブ1008)に記憶されてもよく、実行環境1004に対してリモート、例えば、リモート接続(例えば、クラウド計算基盤により提供される)を介して実行環境1004をホストするコンピュータと通信するリモートシステム(例えば、メインフレームコンピュータ1010)でホストされてもよい。
【0093】
前処理モジュール1006は、データソース1002からデータを読み取り、実行に向けてデータ処理アプリケーション(例えば、実行可能データフローグラフ)を準備する。例えば、前処理モジュール1006は、データ処理アプリケーションをコンパイルし、実行環境1004がアクセス可能なデータ記憶システム1016にコンパイルされたデータ処理アプリケーションを記憶且つ/又は実行環境1004がアクセス可能なデータ記憶システム1016からコンパイルされたデータ処理アプリケーションをロードし、実行に向けてデータ処理アプリケーションを準備する他のタスクを実行する。
【0094】
実行モジュール1012は、前処理モジュール1006により準備されたデータ処理アプリケーションを実行して、1組のデータを処理し、処理から生じた出力データ1014を生成する。出力データ1014は、データソース1002に記憶されてもよく、実行環境1004がアクセス可能なデータ記憶システム1016に記憶されてもよく、又は他の方法で使用されてもよい。データ記憶システム1016には、開発者1020が実行モジュール1012により実行されるデータ処理アプリケーションを設計、編集することが可能な、任意選択的な開発環境1018もアクセス可能である。開発環境1018は、幾つかの実施態様では、頂点間の有向リンク(作業要素、すなわちデータのフローを表す)により接続される頂点(データ処理コンポーネント又はデータセットを表す)を含むデータフローグラフとしてアプリケーションを開発するシステムである。例えば、そのような環境は「Managing Parameters for Graph-Based Applications」と題する米国特許出願公開第2007/0011668号明細書により詳細に説明されており、この特許出願は参照により本明細書に援用される。そのようなグラフベースの計算を実行するシステムは、「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」と題する米国特許第5,966,072号明細書に記載されており、この米国特許の内容は全体的に、参照により本明細書に援用される。このシステムにより作成されたデータフローグラフは、グラフコンポーネントにより表される個々のプロセス内へ及び個々のプロセスから情報を取得し、情報をプロセス間で移動させ、プロセスの実行順序を定義する方法を提供する。このシステムは、任意の利用可能な方法からプロセス間通信方法を選ぶ(例えば、グラフのリンクに従った通信パスは、TCP/IP若しくはUNIXドメインソケットを使用することができ、又は共有メモリを使用して、プロセス間でデータを渡すことができる)アルゴリズムを含む。
【0095】
前処理モジュール1006は、異なる形態のデータベースシステムを含め、データソース1002を実施し得る種々のタイプのシステムからデータを受信することができる。データは、可能な場合にはヌル値を含む、各フィールド(「属性」又は「カラム」とも呼ばれる)に値を有するレコードとして編成し得る。データソースからデータを最初に読み取る際、前処理モジュール1006は通常、そのデータソースにおけるレコードについての何らかの初期フォーマット情報で開始する。幾つかの状況では、データソースのレコード構造は最初、知られていないことがあり、代わりに、データソース又はデータの分析後に特定し得る。レコードについての初期情報は、例えば、別個の値を表すビット数、レコード内のフィールドの順序、及びビットにより表される値の対応タイプ(例えば、文字列、符号付き/符号なし整数)を含むことができる。
【0096】
換言すれば、本明細書に記載される実行可能データフローグラフに一般に適用可能なように、実行可能データフローグラフは、データソース1002の1つ又は複数の入力データセットからデータ処理コンポーネントを通して1つ又は複数の出力データセットに流れるデータに対して実行されるグラフベースの計算を実施し、データフローグラフはデータ記憶装置1014内のデータ構造により指定され、データフローグラフは、データ構造により指定され、1つ又は複数のリンクにより接続されるデータ処理コンポーネントを表すノードを有し、リンクはデータ構造により指定され、データ処理コンポーネント間のデータフローを表す。実行環境又は実行時環境1004はデータ記憶装置1014に結合され、1つ又は複数のコンピュータでホストされ、実行時環境1004は、データフローグラフを指定する、記憶されたデータ構造を読み取り、前処理モジュール1006によりデータフローグラフに割り当てられたデータ処理コンポーネントの計算の実行に向けて計算リソース(例えば、要素、メモリ、CPU等)を割り振り構成するように構成された前処理モジュール1006を含み、実行時環境1004は、データ処理コンポーネントの計算の実行をスケジュールし制御する実行モジュール1012を含む。換言すれば、1つ又は複数のコンピュータでホストされる実行時又は実行環境1004は、データソース1002からデータを読み取り、データフローグラフの形態で表される実行可能コンピュータプログラムを使用してデータを処理するように構成される。
【0097】
上述した手法は、適したソフトウェアを実行する計算システムを使用して実施することができる。例えば、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、少なくとも1つのデータ記憶システム(揮発性及び/又は不揮発性メモリ及び/又は記憶要素を含む)、少なくとも1つのユーザインターフェース(少なくとも1つの入力デバイス又はポートを使用して入力を受信し、少なくとも1つの出力デバイス又はポートを使用して出力を提供する)を含む1つ又は複数のプログラムされた又はプログラム可能な計算システム(分散、クライアント/サーバ、又はグリッド等の種々のアーキテクチャであり得る)で実行される1つ又は複数のコンピュータプログラム内にプロシージャを含み得る。ソフトウェアは、例えば、グラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1つ又は複数のモジュールを含み得る。プログラムのモジュール(例えば、グラフの要素)は、データリポジトリに記憶されたデータモデルに準拠したデータ構造又は他の編成データとして実施することができる。
【0098】
ソフトウェアは、CD-ROM若しくは他のコンピュータ可読媒体(例えば、汎用若しくは専用計算システム若しくはデバイスにより可読)等の有形非一時的媒体で提供されてもよく、又はネットワークの通信媒体を介して、実行される計算システムの有形非一時的媒体に送出(例えば、伝播信号に符号化)してもよい。処理の幾つか又は全ては、コプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、又は専用特定用途向け集積回路(ASIC)等の専用コンピュータで実行されてもよく、専用ハードウェアを使用して実行されてもよい。処理は、ソフトウェアにより指定される計算の異なる部分が異なる計算要素により実行される分散様式で実施し得る。そのような各コンピュータプログラムは、好ましくは、汎用又は専用プログラマブルコンピュータがアクセス可能な記憶装置のコンピュータ可読記憶媒体(例えば、固体状態メモリ、固体状態媒体、磁気媒体、又は光学媒体)に記憶又はダウンロードされて、記憶装置媒体がコンピュータにより読み取られると、本明細書に記載された処理を実行するようにコンピュータを構成し動作させる。本発明によるシステムはまた、コンピュータプログラムが構成された有形非一時的媒体として実施されると見なすこともでき、そうして構成された媒体は、特定の予め定義された様式でコンピュータを動作させて、本明細書に記載された処理ステップの1つ又は複数を実行させる。
【0099】
本発明の幾つかの実施形態について説明した。それにも関わらず、上記説明が例示を意図し、本発明の範囲の限定を意図せず、本発明の範囲が以下の特許請求の範囲により規定されることを理解されたい。したがって、他の実施形態も以下の特許請求の範囲内にある。例えば、本発明の範囲から逸脱せずに種々の変更を行い得る。さらに、上述したステップの幾つかは順序から独立し得、したがって、説明された順序とは異なる順序で実行することができる。
図1
図2A
図2B
図2C
図3
図4A
図4B
図4C
図4D
図5A
図5B
図6
図7
図8
図9
図10
図11
【手続補正書】
【提出日】2023-01-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
第1のデータフローグラフに基づいて更新データフローグラフを生成する方法であって、前記第1のデータフローグラフおよび前記更新データフローグラフのそれぞれがレコードフォーマットを有するデータレコードの1つまたは複数のフィールドにおけるデータを処理するように構成され、
(i)第1のデータフローグラフと第2のデータフローグラフとの間の差分の第1の組および(ii)前記第1のデータフローグラフと第3のデータフローグラフの間の差分の第2の組を識別することであって
前記データフローグラフのそれぞれの仕様がノードを定義し、前記ノードの少なくとも1つが、レコードフォーマットを有するデータレコードの1つまたは複数のフィールドにおけるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、前記データレコードが前記データ処理コンポーネントに提供され、1つまたは複数のリンクが前記ノードを接続し、それぞれがデータレコードのフローを表し、
前記識別することが、
前記第1のデータフローグラフの仕様と前記第2のデータフローグラフの仕様とを比較することであって、それにより、前記第1のデータフローグラフと前記第2のデータフローグラフとの間の第1の組の差分を識別し、前記第1の組の差分が、第1の削除ノード、第1の削除リンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、または第1の変更リンクの1つまたは複数を示す情報を含む、比較すること、および
前記第1のデータフローグラフの仕様と前記第3のデータフローグラフの仕様とを比較することであって、それにより、前記第1のデータフローグラフと前記第3のデータフローグラフとの間の第2の組の差分を識別し、前記第2の組の差分が、第2の削除ノード、第2の削除リンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、または第2の変更リンクの1つまたは複数を示す情報を含む、比較すること
を含む、識別することと、
前記第1の組の差分および前記第2の組の差分に基づいて1組の結合差分を特定することと、
前記第1のデータフローグラフおよび前記1組の結合差分に基づいて前記更新データフローグラフを生成することであって、ノードを定義する前記更新データフローグラフの仕様を生成することを含み、前記ノードの少なくとも1つが、レコードフォーマットを有するデータレコードの1つまたは複数のフィールドにおけるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、前記データレコードが前記データ処理コンポーネントに提供され、前記ノードを接続する1つまたは複数のリンクを定義し、それぞれがデータレコードのフローを表す、生成することと、
データソースから前記更新データフローグラフの外部へと受信される入力データレコードの1つまたは複数のフィールドにおけるデータを処理するために前記更新データフローグラフを実行することであって、
前記更新データフローグラフの第1のノードの入力ポート内へ入力データレコードを受信することであって、前記第1のノードが第1の演算を定義する第1のデータ処理コンポーネントを表す、受信することと、
前記第1のデータ処理コンポーネントによって定義された前記第1の演算に従って前記入力データレコードの前記1つまたは複数のフィールドにおける前記データを処理することと、
前記処理することに基づいて出力データレコードを出力することであって、前記出力データレコードが出力データを含む1つまたは複数のフィールドを含み、前記第1のノードの出力ポートに接続されたリンク上に前記出力データレコードを出力することを含み、前記リンクが、前記更新データフローグラフの第2のノードの入力ポートまたは前記更新データフローグラフの外部のデータ宛先のいずれかに接続される、出力することと
を含む、実行することと
を含む、方法。
【請求項2】
前記第1の組の差分と前記第2の組の差分との間の対応性に基づいて前記1組の結合差分を特定することを含む、請求項1に記載の方法。
【請求項3】
ユーザ入力に基づいて前記1組の結合差分を特定することを含む、請求項1に記載の方法。
【請求項4】
前記1組の結合差分を生成することが、前記1組の結合差分に、前記第2の組の差分において識別されるいかなるノードまたはリンクにも対応しない前記第1の組の差分において識別されるノードまたはリンクを示す情報、前記第1の組の差分において識別されるいかなるノードまたはリンクにも対応しない前記第2の組の差分において識別されるノードまたはリンクを示す情報、またはその両方を含むことを含む、請求項1に記載の方法。
【請求項5】
前記1組の結合差分を特定することが、前記第1の組の差分において識別される前記ノードまたはリンクと、前記第2の組の差分において識別される対応するノードまたはリンクとの互換性を特定することを含む、請求項1に記載の方法。
【請求項6】
前記1組の結合差分を特定することが、
前記第1の組の差分における第1の差分前記第2の組の差分における第2の差分と競合すると判断することと、
前記第1の差分または前記第2の差分の一方を選択することと、
前記1組の結合差分に前記選択された差分を示す情報を含めることと
を含む、請求項1に記載の方法。
【請求項7】
選択基準に基づいて前記差分の一方を選択することを含む、請求項に記載の方法。
【請求項8】
前記第1の組における差分、前記第2の組における差分、またはその両方が競合することを示す情報をユーザインターフェースに提示することと、
ユーザ入力に基づいて前記差分の一方を選択することと
を含む、請求項に記載の方法。
【請求項9】
前記更新データフローグラフを生成することが、
前記ベースグラフのコピーを生成することと、
前記1組の結合差分における各差分を前記コピーに適用することと
を含む、請求項1に記載の方法。
【請求項10】
前記ベースグラフの仕様と前記ソースグラフの仕様とを比較することが、前記ベースグラフと前記ソースグラフとの間の対応性を特定することを含む、請求項1に記載の方法。
【請求項11】
前記ベースグラフがベースサブグラフを含み、前記ソースグラフが第1のサブグラフを含み、前記方法が、
前記ベースサブグラフの仕様と前記第1のサブグラフの仕様とを比較して、前記ベースサブグラフと前記第1のサブグラフとの間の1つまたは複数の差分を識別すること
を含む、請求項1に記載の方法。
【請求項12】
計算システムに、第1のデータフローグラフに基づいて更新データフローグラフを生成させる命令を記憶する非一時的コンピュータ可読媒体であって、前記第1のデータフローグラフおよび前記更新データフローグラフのそれぞれがレコードフォーマットを有するデータレコードの1つまたは複数のフィールドにおけるデータを処理するように構成され、前記命令が前記計算システムに、
(i)第1のデータフローグラフと第2のデータフローグラフとの間の差分の第1の組および(ii)前記第1のデータフローグラフと第3のデータフローグラフとの間の差分の第2の組を識別することであって、
前記データフローグラフのそれぞれの仕様がノードを定義し、前記ノードの少なくとも1つが、レコードフォーマットを有するデータレコードの1つまたは複数のフィールドにおけるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、前記データレコードが前記データ処理コンポーネントに提供され、1つまたは複数のリンクが前記ノードを接続し、それぞれがデータレコードのフローを表し、
前記識別することが、
前記第1のデータフローグラフの仕様と前記第2のデータフローグラフの仕様とを比較することであって、それにより、前記第1のデータフローグラフと前記第2のデータフローグラフとの間の第1の組の差分を識別し、前記第1の組の差分が、第1の削除ノード、第1の削除リンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、または第1の変更リンクの1つまたは複数を示す情報を含む、比較すること、および
前記第1のデータフローグラフの仕様と前記第3のデータフローグラフの仕様とを比較することであって、それにより、前記第1のデータフローグラフと前記第3のデータフローグラフとの間の第2の組の差分を識別し、前記第2の組の差分が、第2の削除ノード、第2の削除リンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、または第2の変更リンクの1つまたは複数を示す情報を含む、比較すること
を含む、識別することと、
前記第1の組の差分および前記第2の組の差分に基づいて1組の結合差分を特定することと、
前記第1のデータフローグラフおよび前記1組の結合差分に基づいて前記更新データフローグラフを生成することであって、ノードを定義する前記更新データフローグラフの仕様を生成することを含み、前記ノードの少なくとも1つが、レコードフォーマットを有するデータレコードの1つまたは複数のフィールドにおけるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、前記データレコードが前記データ処理コンポーネントに提供され、前記ノードを接続する1つまたは複数のリンクを定義し、それぞれがデータレコードのフローを表す、生成することと、
データソースから前記更新データフローグラフの外部へと受信される入力データレコードの1つまたは複数のフィールドにおけるデータを処理するために前記更新データフローグラフを実行することであって、
前記更新データフローグラフの第1のノードの入力ポート内へ入力データレコードを受信することであって、前記第1のノードが第1の演算を定義する第1のデータ処理コンポーネントを表す、受信することと、
前記第1のデータ処理コンポーネントによって定義された前記第1の演算に従って前記入力データレコードの前記1つまたは複数のフィールドにおける前記データを処理することと、
前記処理することに基づいて出力データレコードを出力することであって、前記出力データレコードが出力データを含む1つまたは複数のフィールドを含み、前記第1のノードの出力ポートに接続されたリンク上に前記出力データレコードを出力することを含み、前記リンクが、前記更新データフローグラフの第2のノードの入力ポートまたは前記更新データフローグラフの外部のデータ宛先のいずれかに接続される、出力することと
を含む、実行することと
を行わせる命令を含む、非一時的コンピュータ可読媒体。
【請求項13】
前記命令が、前記計算システムに、前記第1の組の差分と前記第2の組の差分との間の対応性に基づいて前記1組の結合差分を特定することを行わせる、請求項12に記載の非一時的コンピュータ可読媒体。
【請求項14】
前記命令が、前記計算システムに、ユーザ入力に基づいて前記1組の結合差分を特定することを行わせる、請求項12に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記1組の結合差分を生成することが、前記1組の結合差分に、前記第2の組の差分において識別されるいかなるノードまたはリンクにも対応しない前記第1の組の差分において識別されるノードまたはリンクを示す情報、前記第1の組の差分において識別されるいかなるノードまたはリンクにも対応しない前記第2の組の差分において識別されるノードまたはリンクを示す情報、またはその両方を含むことを含む、請求項12に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記1組の結合差分を特定することが、前記第1の組の差分において識別される前記ノードまたはリンクと、前記第2の組の差分において識別される対応するノードまたはリンクとの互換性を特定することを含む、請求項12に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記1組の結合差分を特定することが、
前記第1の組の差分における第1の差分が前記第2の組の差分における第2の差分と競合すると判断することと、
前記第1の差分または前記第2の差分の一方を選択することと、
前記1組の結合差分に前記選択された差分を示す情報を含めることと
を含む、請求項12に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記命令が、前記計算システムに、選択基準に基づいて前記差分の一方を選択することを行わせる、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記命令が、前記計算システムに、
前記第1の組における差分、前記第2の組における差分、またはその両方が競合することを示す情報をユーザインターフェースに提示することと、
ユーザ入力に基づいて前記差分の一方を選択することと
を行わせる、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記更新データフローグラフを生成することが、
前記ベースグラフのコピーを生成することと、
前記1組の結合差分における各差分を前記コピーに適用することと
を含む、請求項12に記載の非一時的コンピュータ可読媒体。
【請求項21】
前記ベースグラフの仕様と前記ソースグラフの仕様とを比較することが、前記ベースグラフと前記ソースグラフとの間の対応性を特定することを含む、請求項12に記載の非一時的コンピュータ可読媒体。
【請求項22】
前記ベースグラフはベースサブグラフを含み、前記ソースグラフは第1のサブグラフを含み、前記方法が、
前記ベースサブグラフの仕様と前記第1のサブグラフの仕様とを比較して、前記ベースサブグラフと前記第1のサブグラフとの間の1つまたは複数の差分を識別すること
を含む、請求項12に記載の非一時的コンピュータ可読媒体。
【請求項23】
第1のデータフローグラフに基づいて更新データフローグラフを生成する計算システムであって、前記第1のデータフローグラフおよび前記更新データフローグラフのそれぞれがレコードフォーマットを有するデータレコードの1つまたは複数のフィールドにおけるデータを処理するように構成され、
メモリに結合される1つまたは複数のプロセッサを含み、前記1つまたは複数のプロセッサおよび前記メモリが、
(i)第1のデータフローグラフと第2のデータフローグラフとの間の差分の第1の組および(ii)前記第1のデータフローグラフと第3のデータフローグラフとの間の差分の第2の組を識別することであって、
前記データフローグラフのそれぞれの仕様がノードを定義し、前記ノードの少なくとも1つが、レコードフォーマットを有するデータレコードの1つまたは複数のフィールドにおけるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、前記データレコードが前記データ処理コンポーネントに提供され、1つまたは複数のリンクが前記ノードを接続し、それぞれがデータレコードのフローを表し、
前記識別することが、
前記第1のデータフローグラフの仕様と前記第2のデータフローグラフの仕様とを比較することであって、それにより、前記第1のデータフローグラフと前記第2のデータフローグラフとの間の第1の組の差分を識別し、前記第1の組の差分が、第1の削除ノード、第1の削除リンク、第1の追加ノード、第1の追加リンク、第1の変更ノード、または第1の変更リンクの1つまたは複数を示す情報を含む、比較すること、および
前記第1のデータフローグラフの仕様と前記第3のデータフローグラフの仕様とを比較することであって、それにより、前記第1のデータフローグラフと前記第3のデータフローグラフとの間の第2の組の差分を識別し、前記第2の組の差分が、第2の削除ノード、第2の削除リンク、第2の追加ノード、第2の追加リンク、第2の変更ノード、または第2の変更リンクの1つまたは複数を示す情報を含む、比較すること
を含む、識別することと、
前記第1の組の差分および前記第2の組の差分に基づいて1組の結合差分を特定することと、
前記第1のデータフローグラフおよび前記1組の結合差分に基づいて前記更新データフローグラフを生成することであって、ノードを定義する前記更新データフローグラフの仕様を生成することを含み、前記ノードの少なくとも1つが、レコードフォーマットを有するデータレコードの1つまたは複数のフィールドにおけるデータを処理するために実行すべき演算を定義するデータ処理コンポーネントを表し、前記データレコードが前記データ処理コンポーネントに提供され、前記ノードを接続する1つまたは複数のリンクを定義し、それぞれがデータレコードのフローを表す、生成することと、
データソースから前記更新データフローグラフの外部へと受信される入力データレコードの1つまたは複数のフィールドにおけるデータを処理するために前記更新データフローグラフを実行することであって、
前記更新データフローグラフの第1のノードの入力ポート内へ入力データレコードを受信することであって、前記第1のノードが第1の演算を定義する第1のデータ処理コンポーネントを表す、受信することと、
前記第1のデータ処理コンポーネントによって定義された前記第1の演算に従って前記入力データレコードの前記1つまたは複数のフィールドにおける前記データを処理することと、
前記処理することに基づいて出力データレコードを出力することであって、前記出力データレコードが出力データを含む1つまたは複数のフィールドを含み、前記第1のノードの出力ポートに接続されたリンク上に前記出力データレコードを出力することを含み、前記リンクが、前記更新データフローグラフの第2のノードの入力ポートまたは前記更新データフローグラフの外部のデータ宛先のいずれかに接続される、出力することと
を含む、実行することと
を行うように構成される、計算システム。
【外国語明細書】