JP6913168B2 - 実行可能データフローグラフの差分 - Google Patents

実行可能データフローグラフの差分 Download PDF

Info

Publication number
JP6913168B2
JP6913168B2 JP2019528545A JP2019528545A JP6913168B2 JP 6913168 B2 JP6913168 B2 JP 6913168B2 JP 2019528545 A JP2019528545 A JP 2019528545A JP 2019528545 A JP2019528545 A JP 2019528545A JP 6913168 B2 JP6913168 B2 JP 6913168B2
Authority
JP
Japan
Prior art keywords
data flow
node
link
flow graph
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019528545A
Other languages
English (en)
Other versions
JP2020504862A (ja
JP2020504862A5 (ja
Inventor
ローゼンベルグ,イリア
ウェイス,アダム
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2020504862A publication Critical patent/JP2020504862A/ja
Publication of JP2020504862A5 publication Critical patent/JP2020504862A5/ja
Priority to JP2021113911A priority Critical patent/JP7535014B2/ja
Application granted granted Critical
Publication of JP6913168B2 publication Critical patent/JP6913168B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)

Description

優先権の主張
本出願は、参照のためその内容を本明細書に援用する2016年12月7日出願の米国特許出願第62/431,195号と2017年5月5日出願の米国特許出願第15/587,987号からの優先権を主張する。
背景
コンピュータプログラムの開発又は実行中、変更がコンピュータプログラムに対して行われ得る。変更に関する情報は、例えば開発者が変更の影響を理解するのを支援するために、何故、更新されたコンピュータプログラムが最早正しく機能しないのかを判断するために、又は複数の人々からの編集を追跡し続けるために開発者にとって有用であり得る。
概要
一態様では、方法は第1の実行可能データフローグラフと第2の実行可能データフローグラフとの間の差異を表示するためのものであり、各データフローグラフは、データフローグラフにより受信されたデータを処理するように実行可能であり、各データフローグラフは、データ処理部品を表す1つ又は複数のノードと部品間のデータの流れを表す1つ又は複数のリンクとを含む。本方法は、第1のデータフローグラフと第2のデータフローグラフとの間の1つ又は複数の差異を特定するために第1の実行可能データフローグラフの仕様と第2の実行可能データフローグラフの仕様とをコンピュータにより比較することを含む。所与の実行可能データフローグラフの仕様は、データフローグラフにより処理されるデータのソースをそれぞれが表す1つ又は複数のノードと、データソースからのデータを処理するために行われる操作を規定するデータ処理部品をそれぞれが表す1つ又は複数のノードと、データフローグラフにより処理されるデータの送信先をそれぞれが表す1つ又は複数のノードとを規定する。第1のデータフローグラフと第2のデータフローグラフとを比較することは、(1)第2のデータフローグラフのいかなるノード又はリンクにも対応しない第1のデータフローグラフの特定ノード又はリンクを特定することと、(2)第2のデータフローグラフの第2のノード又はリンクに対応する第1のデータフローグラフの第1のノード又はリンクを特定し、第1のノード又はリンクと第2のノード又はリンクとの間の差異を特定することとのうちの少なくとも1つを含む。本方法は、第1のデータフローグラフ又は第2のデータフローグラフのノード又はリンクの少なくとも一部のグラフィック表現を定式化することであって、グラフィック表現は(1)特定された特定ノード又はリンク、又は(1)第1のノード又はリンクと第2のノード又はリンクとの間の特定された差異のうちの少なくとも1つのグラフィック指標を含む、定式化することと、グラフィック表現をグラフ編集インターフェース内に表示することと、を含む。
いくつかの実施形態は以下の特徴の1つ又は複数を含み得る。
第1のデータフローグラフは特定データフローグラフの第1のバージョンであり、第2のデータフローグラフは特定データフローグラフの第2のバージョンである。
第1のノード又はリンクと第2のノード又はリンクとの間の差異を特定することは、第1のノード又はリンクの解決されたパラメータと第2のノード又はリンクの解決されたパラメータとの間の差異を特定することを含む。
第1のノード又はリンクと第2のノード又はリンクとの間の差異を特定することは、第1のノード又はリンクのパラメータの表現と第2のノード又はリンクのパラメータの表現との間の差異を特定することを含む。
グラフィック指標はグラフィック表現内の第1、第2、又は特定ノード又はリンクの色である。
グラフィック指標の色は第1のノード又はリンクと第2のノード又はリンクとの間の特定された差異のタイプを示す。
グラフィック指標はグラフィック表現内の第1、第2、又は特定ノード又はリンクの陰影付け(以下、シェーディング)又は塗りつぶし(以下、フィル)である。
グラフィック指標は第1、第2、又は特定ノード又はリンク近傍に位置するシンボルを含む。
グラフィック指標はユーザ相互作用に応答する。本方法は、グラフィック指標とのユーザ相互作用に応答する特定された差異を示す情報へのアクセスを可能にすることを含む。
第1のデータフローグラフは第1のデータフローサブグラフを含み、第2のデータフローグラフは第2のデータフローサブグラフを含む。本方法は、第1のデータフローサブグラフの仕様と第2のデータフローサブグラフの仕様とを比較することと;この比較に基づき、第1のデータフローサブグラフと第2のデータフローサブグラフとの間の1つ又は複数の差異を特定することとを含む。
グラフィック表現は第1のデータフローサブグラフの少なくとも一部分又は第2のデータフローサブグラフの少なくとも一部分のグラフィック表現を含み、グラフィック表現は第1のデータフローサブグラフと第2のデータフローサブグラフとの間の特定された差異のうちの少なくとも1つのグラフィック指標を含む。
グラフィック表現は、第1のデータフローグラフと第2のデータフローグラフとの間の特定された差異のうちの少なくとも1つの差異と、第1のデータフローサブグラフと第2のデータフローサブグラフとの間の特定された差異のうちの少なくとも1つ差異との階層的表示を含む。
第1のデータフローグラフの仕様と第2のデータフローグラフの仕様とを比較することは、第1のデータフローグラフにより参照される第1のファイルと第2のデータフローグラフにより参照される第2のファイルとを比較することを含む。グラフィック表現は、第1のファイルと第2のファイルとの間の1つ又は複数の差異のグラフィック表現を含む。
第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、(1)第1のノード又はリンク及び第2のノード又はリンクの名前と、(2)第1のノード又はリンク及び第2のノード又はリンクの識別子とのうちの1つ又は複数に基づき第1のノードを特定することを含む。
第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、第1のノード及び第2のノード内への又はそこからのデータフローと関連する情報に基づき第1のノードを特定することを含む。
第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、第1のノード又はリンク及び第2のノード又はリンクの上流側又は下流側にあるノード又はリンクに基づき第1のノード又はリンクを特定することを含む。
本方法は、実行のための第1のデータフローグラフ及び第2のデータフローグラフを準備することと;準備された第1及び第2のデータフローグラフの仕様を比較することとを含む。
一態様では、非一時的コンピュータ可読媒体は、コンピュータに第1の実行可能データフローグラフと第2の実行可能データフローグラフとの間の差異を表示させるための命令を格納し、各データフローグラフはデータフローグラフにより受信されたデータを処理するように実行可能であり、各データフローグラフはデータ処理部品を表す1つ又は複数のノードと部品間のデータの流れを表す1つ又は複数のリンクとを含む。命令は、コンピュータに、第1のデータフローグラフと第2のデータフローグラフとの間の1つ又は複数の差異を特定するために第1の実行可能データフローグラフの仕様と第2の実行可能データフローグラフの仕様とを比較させる。所与の実行可能データフローグラフの仕様は、データフローグラフにより処理されるデータのソースをそれぞれが表す1つ又は複数のノードと、データソースからのデータを処理するために行われる操作を規定するデータ処理部品をそれぞれが表す1つ又は複数のノードと、データフローグラフにより処理されるデータの送信先をそれぞれが表す1つ又は複数のノードとを規定する。第1のデータフローグラフと第2のデータフローグラフとを比較することは、(1)第2のデータフローグラフのいかなるノード又はリンクにも対応しない第1のデータフローグラフの特定ノード又はリンクを特定することと、(2)第2のデータフローグラフの第2のノード又はリンクに対応する第1のデータフローグラフの第1のノード又はリンクを特定し、第1のノード又はリンクと第2のノード又はリンクとの間の差異を特定することとのうちの少なくとも1つを含む。命令は、コンピュータに、第1のデータフローグラフ又は第2のデータフローグラフのノード又はリンクの少なくとも一部のグラフィック表現を定式化させ、グラフィック表現は、(1)特定された特定ノード又はリンク、又は(1)第1のノード又はリンクと第2のノード又はリンクとの間の特定された差異のうちの少なくとも1つのグラフィック指標を含み、そしてコンピュータにグラフィック表現をグラフ編集インターフェース内に表示させる。
一態様では、システムは、第1の実行可能データフローグラフと第2の実行可能データフローグラフとの間の差異を表示するためのものであり、各データフローグラフはデータフローグラフにより受信されたデータを処理するように実行可能であり、各データフローグラフはデータ処理部品を表す1つ又は複数のノードと部品間のデータの流れを表す1つ又は複数のリンクとを含む。システムは、第1のデータフローグラフと第2のデータフローグラフとの間の1つ又は複数の差異を特定するために第1の実行可能データフローグラフの仕様と第2の実行可能データフローグラフの仕様とを比較するように構成されたプロセッサ及びメモリを含む。所与の実行可能データフローグラフの仕様は、データフローグラフにより処理されるデータのソースをそれぞれが表す1つ又は複数のノードと、データソースからのデータを処理するために行われる操作を規定するデータ処理部品をそれぞれが表す1つ又は複数のノードと、データフローグラフにより処理されるデータの送信先をそれぞれが表す1つ又は複数のノードとを規定する。第1のデータフローグラフと第2のデータフローグラフとを比較することは、(1)第2のデータフローグラフのいかなるノード又はリンクにも対応しない第1のデータフローグラフの特定ノード又はリンクを特定することと、(2)第2のデータフローグラフの第2のノード又はリンクに対応する第1のデータフローグラフの第1のノード又はリンクを特定し、第1のノード又はリンクと第2のノード又はリンクとの間の差異を特定することとのうちの少なくとも1つを含む。プロセッサ及びメモリは、第1のデータフローグラフ又は第2のデータフローグラフのノード又はリンクの少なくとも一部のグラフィック表現を定式化するように構成され、グラフィック表現は(1)特定された特定ノード又はリンク、又は(1)第1のノード又はリンクと第2のノード又はリンクとの間の特定された差異のうちの少なくとも1つのグラフィック指標を含み、プロセッサ及びメモリはさらに、グラフィック表現をグラフ編集インターフェース内に表示するように構成される。
一態様では、システムは、第1の実行可能データフローグラフと第2の実行可能データフローグラフとの間の差異を表示するためのものであり、各データフローグラフはデータフローグラフにより受信されたデータを処理するように実行可能であり、各データフローグラフはデータ処理部品を表す1つ又は複数のノードと部品間のデータの流れを表す1つ又は複数のリンクとを含む。本システムは、第1のデータフローグラフと第2のデータフローグラフとの間の1つ又は複数の差異を特定するために第1の実行可能データフローグラフの仕様と第2の実行可能データフローグラフの仕様とを比較する手段を含む。所与の実行可能データフローグラフの仕様は、データフローグラフにより処理されるデータのソースをそれぞれが表す1つ又は複数のノードと、データソースからのデータを処理するために行われる操作を規定するデータ処理部品をそれぞれが表す1つ又は複数のノードと、データフローグラフにより処理されるデータの送信先をそれぞれが表す1つ又は複数のノードとを規定する。第1のデータフローグラフと第2のデータフローグラフとを比較することは、(1)第2のデータフローグラフのいかなるノード又はリンクにも対応しない第1のデータフローグラフの特定ノード又はリンクを特定することと、(2)第2のデータフローグラフの第2のノード又はリンクに対応する第1のデータフローグラフの第1のノード又はリンクを特定し、第1のノード又はリンクと第2のノード又はリンクとの間の差異を特定することとのうちの少なくとも1つを含む。本システムは、第1のデータフローグラフ又は第2のデータフローグラフのノード又はリンクの少なくとも一部のグラフィック表現を定式化する手段であって、グラフィック表現は(1)特定された特定ノード又はリンク又は(1)第1のノード又はリンクと第2のノード又はリンクとの間の特定された差異のうちの少なくとも1つのグラフィック指標を含む、手段と、グラフィック表現をグラフ編集インターフェース内に表示する手段とを含む。
一態様では、方法は、実行可能データフローグラフの第1のバージョンと実行可能データフローグラフの第2のバージョンとの間の差異を表示するためのものであり、データフローグラフはデータフローグラフにより受信されたデータを処理するように実行可能であり、データフローグラフの各バージョンはデータ処理部品を表す1つ又は複数のノードと部品間のデータの流れを表す1つ又は複数のリンクとを含む。本方法は、データを処理するために実行され得る1つ又は複数の操作を含むジョブの状態を統合コントロールシステムにより監視することであって、ジョブは実行可能データフローグラフの第1のバージョンに関連付けられる、監視することを含む。本方法は、ジョブの状態を示す情報の出力を可能にすることと;統合コントロールシステム又は出力された情報とのユーザ相互作用に応答して、実行可能データフローグラフの第2のバージョンを特定することと;データフローグラフの第1のバージョンとデータフローグラフの第2のバージョンとの間の1つ又は複数の差異を特定するためにデータフローグラフの第1のバージョンの仕様とデータフローグラフの第2のバージョンの仕様とを比較することと、を含む。所与の実行可能データフローグラフの仕様は、データフローグラフにより処理されるデータのソースをそれぞれが表す1つ又は複数のノードと、データソースからのデータを処理するために行われる操作を規定するデータ処理部品をそれぞれが表す1つ又は複数のノードと、データフローグラフにより処理されるデータの送信先をそれぞれが表す1つ又は複数のノードとを規定する。データフローグラフの第1のバージョンとデータフローグラフの第2のバージョンとを比較することは、(1)データフローグラフの第2のバージョンのいかなるノード又はリンクにも対応しないデータフローグラフの第1のバージョンの第1のノード又はリンクを特定することと、(2)データフローグラフの第1のバージョンのいかなるノード又はリンクにも対応しないデータフローグラフの第2のバージョンの第2のノード又はリンクを特定することと、(1)データフローグラフの第2のバージョンの第4のノード又はリンクに対応するデータフローグラフの第1のバージョンの第3のノード又はリンクを特定し、第3のノード又はリンクと第4のノード又はリンクとの間の差異を特定することとうちの少なくとも1つを含む。本方法は、データフローグラフの第1のバージョン又はデータフローグラフの第2のバージョンのノード又はリンクの少なくとも一部のグラフィック表現を定式化することであって、グラフィック表現は、(1)特定された第1のノード又はリンク、(2)特定された第2のノード又はリンク、及び(3)第3のノード又はリンクと第4のノード又はリンクとの間の特定された差異のうちの少なくとも1つのノード又はリンクのグラフィック指標を含む、定式化することを含む。
いくつかの実施形態は以下の特徴の1つ又は複数を含み得る。
既に実行されたジョブがデータフローグラフの第2のバージョンと関連付けられる。
グラフィック表現は特定された差異のうちの1つ又は複数の差異の階層的表示を含む。
本方法は、統合コントロールシステムのユーザインターフェース内の表示のためにグラフィック表現を定式化することを含む。
データフローグラフの第1のバージョンとデータフローグラフの第2のバージョンとの間の差異を特定することは、データフローグラフの第1のバージョンの解決されたパラメータとデータフローグラフの第2のバージョンの解決されたパラメータとの間の差異を特定することを含む。
データフローグラフの第1のバージョンとデータフローグラフの第2のバージョンとの間の差異を特定することは、データフローグラフの第1のバージョンのパラメータの表現とデータフローグラフの第2のバージョンのパラメータの表現との間の差異を特定することを含む。
データフローグラフの第1のバージョンとデータフローグラフの第2のバージョンとの間の差異を特定することは、データフローグラフの第1のバージョンにより参照される第1のファイルとデータフローグラフの第2のバージョンにより参照される第2のファイルとの間の差異を特定することを含む。
ジョブの状態を監視することは、ジョブの活動、ジョブの実際の開始時間、ジョブの推定開始時間、ジョブに関連する処理期間、及びジョブのサイズのうちの1つ又は複数を監視することを含む。
ジョブの状態を監視することはジョブが成功裡に完了したかどうかを判断することを含む。
本方法はアプリケーションの状態を監視することを含み、ジョブはアプリケーションに関連付けられる。
本方法はコンピュータ装置の状態を監視することを含み、アプリケーションはコンピュータ装置によりホストされる。
本明細書で説明する手法は、コンピュータプログラム(例えばデータフローグラフ)などの実行可能アプリケーション間の差異のグラフィック表現の提示を可能にし、したがってアプリケーション間の差異の高位視覚的概要を提供する。例えば、第1のデータフローグラフ(例えばデータフローグラフの初期バージョン)と第2のデータフローグラフ(例えばデータフローグラフの後編集されたバージョン)との間の差異のグラフィック表現は、編集処理中に追加、除去、又は修正された部品の高位ビューを描写し得る。実行可能アプリケーション間の差異のグラフィック表現は双方向的であり得る。例えば、ユーザは、部品に対してなされた修正に関する情報などの当該部品に関する詳細情報を見るためにグラフィック表現内の部品を掘り下げ得る。
データフローグラフ間の差異に関する提示された情報は、グラフ生成又は編集中に開発者へ貴重な技術支援を提供し得る。例えば、開発者は、ソースコード管理システム内の様々なブランチ上に発生した展開を仲裁するために可視化を使用し得る。開発者は、ソースコード管理下のバージョンに対してなした最新変更に関し自身のメモリをリフレッシュするために可視化を使用し得る。開発者は、他の人のグラフへの最新変更を評価するために(例えば、別の開発者が、期待されていた変更を行ったがいかなる他の変更も行っていないということを確認するために、又はいくつかの品質規格が満たされたということを保証するために)、可視化を使用し得る。開発者又は品質管理チームは、何故グラフの振る舞いが連続バージョン間で変わったか(例えば、何故グラフの新バージョンが、クラッシュする、より遅い、誤った答を出す、より多くのCPU時間を消費する、又はそうでなければ異なるやり方で振る舞うか)を理解したいかもしれない。開発者は、例えば複数バージョンを単一バージョンにマージする又はグラフへの変更を取り消すために差異可視化を通してグラフを編集したいかもしれない。
グラフ間の差異の可視化は、グラフが生成された後に技術的に貴重であり得る。例えば、開発チームにより生成される新特徴は製造部門からのマイナーバグ修正と一体化され得る。品質管理チームは、コードの特定バグの出る行がグラフに対して行われた一連の変更内のどこかに導入されたということを気付くようになり得、可視化は、影響を受けた顧客が通知され得るようにどのバージョンが当該コードを有する第1のバージョンかを発見するために使用され得る。
図面の簡単な説明
グラフのダイアグラムである。 グラフ間の差異のグラフィック表現のダイアグラムである。 ナビゲーションツリーのダイアグラムである。 ノードレベルビューのダイアグラムである。 グラフ間の差異のグラフィック表現のダイアグラムである。 ナビゲーションツリーのダイアグラムである。 異なるビューアインターフェースのダイアグラムである。 グラフ解析システムのダイアグラムである。 処理環境のダイアグラムである。 コントロールセンタインターフェースのダイアグラムである。 フローチャートである。 データ処理システムのダイアグラムである。
詳細な説明
我々は、ここでは、コンピュータプログラム(例えばデータフローグラフ)などの実行可能アプリケーション間の差異をグラフィック的に表し、したがってアプリケーション間の差異の高位視覚的概要を提供する手法を説明する。例えば、第1のデータフローグラフ(例えばデータフローグラフの初期バージョン)と第2のデータフローグラフ(例えばデータフローグラフの後編集されたバージョン)との間の差異のグラフィック表現は、編集処理中に追加、除去、又は修正された部品を描写し得る。実行可能アプリケーション間の差異のグラフィック表現は双方向的であり得る。例えば、ユーザは、部品に対してなされた修正に関する情報などの当該部品に関する詳細情報を見るためにグラフィック表現内の部品を掘り下げ得る。いくつかのケースでは、実行可能アプリケーション間の差異のうちの1つ又は複数の差異は、実行可能アプリケーション間の差異のグラフィック表現とのユーザ相互作用を介し1つの実行可能アプリケーションから他のアプリケーションへ手動で又は自動的に移行され得る。
データフローグラフ(時にグラフとも呼ぶ)は、データソース及びデータシンクなどのデータ処理部品及びデータセットを表すノードを含み得るコンピュータプログラムの視覚的表示である。データセットは、例えばファイル、データベース表、又はグラフにより処理するためのデータ(例えばデータレコード)を提供し得る又はグラフにより処理されるデータを受信し得る他のタイプのデータソース又はシンクであり得る。データ処理部品及びデータセットは時にグラフのノードと総称される。グラフの2つのノードを接続するリンクは第1のノードと第2のノードとの間のデータの流れを表す。図1は、フロー14によりフィルタ部品16へ接続されたデータソース12を含む単純なデータフローグラフ10を示す。フィルタ部品16はフロー18によりデータシンク20へ接続される。
グラフのノードは、フローが接続され得る入力ポート及び/又は出力ポートを有し得る。図1の例では、フロー14、18の上流端はデータソース12の出力ポートとフィルタ部品14の出力ポートとへそれぞれ接続される。フロー14、18の下流端はフィルタ部品14の入力ポートとデータシンク20の入力ポートとへそれぞれ接続される。
データ処理部品はデータを処理するための操作を実行する。データ処理部品は、実行されるとデータ処理部品の操作を実施するコードにより規定されたオブジェクトのグラフィック表現である。データ処理部品の操作は1つ又は複数のパラメータに関して規定され得る。パラメータは、データ処理部品のコードにより参照されるファイル(例えば.dmlファイル)内に規定され得る。例えば、ファイルは、データ処理部品に関連するパラメータの値又は表現を含み得る。グラフがインスタンス化される(例えば実行時に)と、パラメータの表現がパラメータの値を得るために評価される(時にパラメータを解決すると呼ばれる)。パラメータ値又は表現は、例えばユーザインターフェース上で(例えばプロンプトに応じて)ユーザにより規定され得る、ファイルから規定され得る、又は同じ文脈における又は異なる文脈における別のパラメータの観点で規定され得る。例えば、パラメータ(例えば異なる部品の文脈で評価されるパラメータ)は、別のパラメータに対する関係と「同じ」関係を有するようにパラメータを指定することにより異なる文脈からエクスポートされ得る。
いくつかの例では、グラフ内の部品は、自身がフローと相互接続される一組の他の部品を使用することにより実装され得る。これによりグラフ内の部品が実装されるこの一組の部品は、サブグラフと呼ばれ、グラフのノードである。
第1のグラフと第2のグラフ(例えばグラフの第1のバージョンとグラフの第2の編集されたバージョン)との間の差異を特定する解析(時に差分解析と呼ばれる)が、第1のグラフ内に存在するが第2のグラフ内には存在しないノード(削除ノード又は除去ノードと呼ばれる)、第2のグラフ内に存在するが第1のグラフ内には存在しないノード(追加ノードと呼ばれる)、又は修正されたノードを特定し得る。修正されたノードは、以下にさらに論述されるように第1のグラフと第2のグラフ間でほぼ同様であり得るが、ノードに関連するパラメータ、属性、又は他の特徴への変更を伴う。差分解析はまた、第1のグラフのフローと第2のグラフのフローとの間の差異を特定し得る。
プランは複数のグラフの実行に関与する過程の視覚的表示である。プランでは、個々のグラフは、ノードであり、プランのグラフの間のデータのフローを示すフローにより相互接続される。本明細書で説明する手法はプラン間の差異をグラフィック的に表すために使用され得る。例えば、第1のプラン及び第2のプランに対し行われる差分解析は、第1のプラン内には存在するが第2のプラン内には存在しないノード(例えばグラフ)、第2のプラン内には存在するが第1のプラン内には存在しないノード、又は修正されたノードを特定し得る。
いくつかの例では、プラン間の差異、プラン内の対応するグラフ間の差異、グラフ内の対応するサブグラフ間の差異、及び/又はグラフ内のノードにより参照される対応パラメータファイル間の差異を特定する入れ子式差分解析(nested differencing analysis)が行われ得る。入れ子式差分解析の結果のグラフィック表現は、プラン、グラフ、及びサブグラフの階層的性質とそれに伴う関連差異とを示し得る。
我々はグラフ間の差異の解析及びグラフィック表現について以下の論述では概して言及するが、本手法はまた、プラン、サブグラフ、パラメータファイル、及び/又はグラフにより参照される他のファイルの解析及びグラフィック表現へ一般的に適用され得る。
グラフ間の差異の可視化はグラフ生成又は編集中に開発者にとって貴重であり得る。例えば、開発者は、ソースコード管理システム内の様々なブランチ上に発生した展開を仲裁するために可視化を使用し得る。開発者は、ソースコード管理下のバージョンに対してなした最新変更に関する自身のメモリをリフレッシュするために可視化を使用し得る。開発者は、誰か他の人のグラフへの最新変更を評価するために(例えば、別の開発者が、期待されていた変更を行ったがいかなる他の変更も行っていないということを確認するために、又はいくつかの品質規格が満たされたということを保証するために)、可視化を使用し得る。開発者又は品質管理チームは、何故グラフの振る舞いが連続バージョン間で変わったか(例えば、何故グラフの新バージョンが、クラッシュする、又はより遅い、又は誤った答を出す、又はより多くのCPU時間を消費するか)を理解したいかもしれない。開発者は、例えば複数バージョンを単一バージョンにマージする又はグラフへの変更を取消すために異なる可視化を通してグラフを編集したいかもしれない。
グラフ間の差異の可視化は、グラフに対する更新を見たいが自分でグラフを編集する意図が必ずしも無いプロジェクト管理者などの監督役割の人にとって貴重であり得る。
グラフ間の差異の可視化はグラフが生成された後に貴重であり得る。例えば、開発チームにより生成される新特徴は製造部門からのマイナーバグ修正と一体化され得る。品質管理チームは、コードの特定バグの出る行がグラフに対して行われた一連の変更内のどこかに導入されたということを気付くようになり得、可視化は、影響を受けた顧客が通知され得るようにどのバージョンが当該コードを有する第1のバージョンかを発見するために使用され得る。
図2A、2Bを参照すると、一例では、グラフの2つのバージョン(第1のバージョン200(時に、単に第1バージョン200と呼ばれる)の表現及び第2のバージョン202(時に、単に第2バージョン202と呼ばれる)の表現)のグラフィック表現がキャンバス上に示される。例えば、グラフはその発展過程にあり得、第1のバージョン200はグラフの初期バージョンであり得、第2のバージョン202はグラフのより最近のバージョンであり得る。グラフの第1及び第2のバージョン200、202間の差異は、例えばグラフの第1及び第2のバージョン200、202間の差異を表す指標によりグラフィック的に表示される。指標は、例えば色、シェーディング、フィル、アイコン、シンボル、テキスト注釈、又は他のタイプの指標であり得る。一例では、削除されたノード(グラフの第1のバージョン200内に存在するがグラフの第2のバージョン202内に存在しないノード)は赤で示される。追加されたノード(グラフの第2のバージョン202内に存在するがグラフの第1のバージョン200内に存在しないノード)は緑で示される。修正されたノード(グラフの両方のバージョン200、202内に存在するが同一でないノード)は青で示される。
図2A、2Bの例では、出力ファイル204は、グラフの第1のバージョン200内に存在するが第2のバージョン202内に存在しない削除されたノードである。出力ファイル204は赤でキャンバス上に示される。フィルタ部品206及びトラッシュ部品208は、グラフの第2のバージョン202内に存在するが第1のバージョン200内に存在しない追加されたノードである。フィルタ部品206及びトラッシュ部品208は緑でキャンバス20上に示される。再フォーマット部品210はグラフの両方のバージョン200、202内に存在するが修正されている。例えば、再フォーマット部品210のパラメータ又は属性の表現又値はグラフの2つのバージョン200、202間で異なり得る。再フォーマット部品210は青でキャンバス上に示される。
いくつかの例では、グラフの第1及び/又は第2のバージョン200、202のノードは、クリック、タップ、ホバーなどのユーザ相互作用又は他の相互作用に対し応答し得る。例えば、ユーザは、グラフの第1及び第2のバージョン200、202間で異なる再フォーマット部品210のパラメータ又は属性のリストなど修正に関する追加情報を見るためにポインタを再フォーマット部品210の上にホバーし得る。いくつかの例では、追加情報がキャンバス上に(例えばノード近傍に又はキャンバスのブランクスペース内に)表示され得る。いくつかの例では、情報を表示するために新しいウィンドウ又は情報バブルが開かれる(例えばキャンバスの前に)。
図3を参照すると、いくつかの例では、グラフの第1及び第2のバージョン200、202間の差異のグラフィック表現はナビゲーションツリー220内の階層的リストの形式を取り得る。ナビゲーションツリー220は、論理構造に似たツリー構造のノードをグラフ200、202へ列挙し得る。いくつかの例では、ナビゲーションツリー220はグラフ200、202のノードのすべてを列挙し得る。いくつかの例では、ナビゲーションツリー220はグラフのバージョン200、202間で異なるノードだけ(例えば追加されたノード、削除されたノード、及び修正されたノードだけ)を列挙し得る。
ナビゲーションツリーはプラン間の差異の階層的リストを描写するために使用され得る。プランのナビゲーションツリーは、タスクのリスト、方法のリスト、又は他の態様などのプランの他の態様に加えてノード(例えばグラフ)のリストを含み得る。
追加されたノード、削除されたノード、及び修正されたノードのそれぞれは、ナビゲーションツリー220の階層的リスト内のエントリにより表される。ノードが、追加されたノード、削除されたノード、又は修正されたノードかどうかを示すリスト上の各ノードに付随するアイコンは、例えばアイコンの色、シェーディング、フィル、形状、又は別の特徴によるものである。図3の例では、削除されたノードのアイコンは緑色正方形であり、追加されたノードのアイコンは緑色正方形であり、修正されたノードのアイコンは青色正方形である。
ナビゲーションツリー220内のエントリのうちの1つ又は複数は、ノードに関する追加情報を提供するために例えばサブエントリを含み得る。例えば、ノードが、修正されたノードであれば、グラフの第1及び第2のバージョン200、202間で異なるノードの各特徴は、修正されたノードのエントリ下の対応するサブエントリ内に列挙され得る。例えば、再フォーマット部品210(修正された部品)に関し、サブエントリは、第1及び第2のバージョン200、202間で異なる各特徴(例えばパラメータ、又は属性、又は他の特徴)のナビゲーションツリー220内に含まれ得る。サブエントリは、例えば特徴(例えばパラメータ、属性、又は別のタイプの特徴)のタイプ、特徴の名前、グラフの第1のバージョン200内の特徴の値、グラフの第2のバージョン202内の特徴の値、又は他の情報などの特徴に関する情報を含み得る。
図4を参照すると、いくつかの例では、グラフの第1及び第2のバージョン200、202の修正されたノード(例えば再フォーマット部品210)間の差異は、ノードレベルビュー250内の表フォーマットで表示され得る。ノードレベルビュー250は、ノードの記述、パラメータ、属性、レイアウト、ポート、又は他の特徴などのノードの特徴を列挙する1つ又は複数の表を含む。
図4の例では、パラメータ及び属性表は、ノードのパラメータ及び属性を列挙する。パラメータ及び属性表は、グラフの第1のバージョンと第2のバージョンとの間で異なる値又は表現を有するそれらのパラメータ及び属性だけを含んでもよいし、ノードのすべてのパラメータ及び属性を含んでもよい。各行は、パラメータ又は属性を表し、グラフの第1のバージョン200内のパラメータ又は属性の値又は表現(「古い値」と呼ばれる)及び/又はグラフの第2のバージョン202内のパラメータ又は属性の値(「新しい値」と呼ばれる)を含む。グラフの第1及び第2のバージョン200、202間で異なる値は、ハイライト、アイコン、又は別のタイプの指標などの指標によりマーキングされ得る。例えば、図4の例では、変換部品の古い及び新しい値がハイライトされ、これらの値がグラフの第1及び第2のバージョン200、202間で異なるということを示す。
ノードレベルビュー250内の表の名前列はパラメータ又は属性の名前を表示する。いくつかの例では、名前列は、名前がパラメータ又は属性の名前であるかどうかの指標(例えばアイコン、文字、又は別の指標)を含み得る。例えば、パラメータ名は菱形によりマーキングされ得、属性名は等号によりマーキングされ得る。いくつかの例では、名前列は、パラメータが入力パラメータであるか又はローカルパラメータであるかの指標を含み得る。
図5を参照すると、いくつかの例では、ノードレベルビューのパラメータ及び属性表260は、タイプ列、必要列、エクスポート列、又は別の列などの追加の列を含み得る。タイプ列は妥当な場合dmlタイプのパラメータを表示し得る。タイプ列は部品属性へ適用しない。プランに関し、タイプ列は、グラフ、ストリング、選択、又は別のタスクタイプなどのタスクタイプを表示し得る。必要列は、パラメータが必要とされるかどうかと、パラメータの必要とされる状態がバージョン間で変化したかどうかとを示す指標を含み得る。エクスポート列は、パラメータがエクスポートされるかどうかと、パラメータのエクスポート状態がバージョン間で変化したかどうかとの指標を含み得る。
図6を参照すると、ノードレベルビューは、ノードのポートのリストを含むポート表270を含み得る。ポートのリストは、グラフの第1及び第2のバージョン間で変化したポートだけを含んでもよいし、すべてのポートを含んでもよい。各行はポートを表し、ポートの名前及び差異のタイプ(例えば追加、削除、又は修正)を含む。差異のタイプは指標により描写され得る。いくつかの例では、ユーザは、ポートのパラメータのリスト又は表へアクセスするためにポートの名前と相互作用し得る(例えば名前をクリック又はタップすることにより)。
図7を参照すると、プラン間の差異を特徴付ける際に、ノードレベルビューはプランの方法のリストを含む方法表280を含み得る。方法のリストは、プランの第1及び第2のバージョン間で変化した方法だけを含んでもよいし、すべての方法を含んでもよい。各行は、方法を表し、方法の名前及び差異のタイプ(例えば削除、追加、又は修正)を含む。差異のタイプは指標により描写され得る。いくつかの例では、ユーザは、方法のパラメータのリスト又は表へアクセスするために方法の名前と相互作用し得る(例えば名前をクリック又はタップすることにより)。
いくつかの例では、テキスト差分ビュー(図示せず)が、グラフの第1及び第2のバージョンのそれぞれのバージョン内のノードのコード間の差異の指標によりノード(例えば修正されたノード)のコードを表示し得る。差異は、例えばフォーマット化(例えば下線、取り消し線、太字、イタリック体、又は他のフォーマット化)、ハイライト、又は他の手法により示され得る。いくつかの例では、グラフのバージョンのうちのただ1つのバージョン内のノードのコードが、提示されたコードとグラフの他のバージョン内のノードのコードとの間の差異の指標により提示される。いくつかの例では、グラフの両方のバージョンのノードのコードが提示され、コードの各バージョンは、コードの他のバージョンに対する差異の指標を有し得る。
グラフの第1及び第2のバージョン200、202間の差異のこれらの様々なビューのそれぞれは利点をユーザへ提示し得る。グラフの第1のバージョン200と第2のバージョン202間の差異のキャンバス20上のグラフィック表示は、大量の詳細無しにユーザが高レベルで差異を迅速に把握することを可能にする。例えば、キャンバス上の第1及び第2のバージョン200、202の表示は、どのノードが追加又は削除されそしてどのノードが修正されたかをユーザが迅速に可視化することを可能にする。ナビゲーションツリー220の階層的リストは、ユーザがグラフの残りの文脈の外で個々のノードに焦点を合わせることを可能にする。ノードレベルビュー250は、例えばユーザがグラフの各バージョン200、202のノードの特徴の詳細な理解を掘り下げ得るようにノードに対する変更に関する固有情報へのアクセスをユーザに提供する。
いくつかの例では、グラフはサブグラフを含み得、2つのグラフ間の差異のグラフィック表現はグラフにより参照されるサブグラフ間の差異に関する情報を提供し得る。図8A、8Bを参照すると、サブグラフ904を含むグラフの第1のバージョン900及び第2のバージョン902の表現がキャンバス上に示される。第1及び第2のバージョン900、902間の差異は指標により示される。差異がサブグラフ内に存在すれば、サブグラフ上の指標が差異の高位指標を提供し得る。いくつかの例では、サブグラフ904内の差異のリスト又は記述などの追加情報が、サブグラフ904とのユーザ相互作用に応答して提供され得る。いくつかの例では、サブグラフ904を形成する部品がサブグラフ904とのユーザ相互作用に応答して表示され得る(必要に応じ差異の指標により)。
図8A、8Bの例では、出力ファイル906が削除され、フィルタ部品908及びトラッシュ部品910が追加された。加えて、サブグラフ904内のノードが修正されており、これはサブグラフ904上の指標により描写される。
図9を参照すると、ナビゲーションツリー920が、グラフの第1及び第2のバージョン900、902の追加されたノード、削除されたノード、及び修正されたノードを列挙し得る。サブグラフ904のノードが追加又は削除又は修正されれば、サブグラフ904はリスト内に含まれ、ノード(例えば再フォーマット部品)がサブグラフ904のエントリ下のサブエントリ内に列挙される。サブグラフ904の列挙されたノードが修正されたノードであれば、当該ノード(例えば再フォーマット部品)のサブエントリ自身は、グラフの第1及び第2のバージョン900、902間で異なる各特徴(例えばパラメータ、又は属性、又は他の特徴)のサブエントリを有し得る。
図10を参照すると、いくつかの例では、複数のビューが差異ビューアインターフェース(時に、差異ビューアとも呼ばれる)60に一体化され得る。図10の例示的差異ビューア60は、グラフの第1のバージョン600及びグラフの第2のバージョン602のグラフィック表現を示すキャンバス62を含む。図10の差異ビューア60では、キャンバス62はグラフの第1及び第2のバージョン600、602を並列配向で示し;いくつかの例では、キャンバスは第1及び第2のバージョン600、602を上下配向で示し得る。キャンバス62は、グラフの第1又は第2のバージョン600、602の関心領域内にユーザが焦点を合わせることを可能にするためにスケーラブルかつスライド可能であり得る。差異ビューア60はまた、ナビゲーションツリー620及びノードレベルビュー650を含む。差異ビューア60では、様々なビューにより提示される様々なレベルの情報はすべて、単一かつコンパクトなユーザインターフェース内でユーザへアクセス可能である。
図10の例では、指標はノード近傍に位置するアイコンであり、アイコンの形状及び色は併せて差異のタイプを示す。例えば、赤色「X」は削除されたノードを示し、緑色プラス記号は追加されたノードを示し、黄色アスタリスクは修正されたノードを示す。ナビゲーションツリー620内のエントリは、追加、削除、又は修正などの変更のタイプによりグループ化され得る。
差異ビューア60は双方向性であり得る。例えば、ユーザは、差異に関する情報を取得するために当該差異を選択し得る。差異に関する情報は、ユーザが差異を選択したビュー内にだけ、又は1つ又は複数の追加ビュー内(例えばすべてのビュー内)に表示され得る。例えば、ユーザがキャンバス上のノードと相互作用する(例えば、「Preprocess Old」部品604をクリックすることにより)と、当該ノードのサブエントリがナビゲーションツリー上に表示され得、当該ノードの特徴の表がノードレベルビュー内に表示され得る。キャンバス、ナビゲーションツリー、及びノードレベルビューはすべて差異ビューア600内で同時に可視であり得、これにより、ユーザが選択ノードの差異に関する高位差異と詳細との両方の完全な理解を得ることを可能にする。
いくつかの例では、ユーザがノードと行う相互作用のタイプが、当該ノードに関して表示される情報を制御する。例えば、ノードの単一クリックが、当該ノードの特徴(例えばパラメータ又は属性)をノードレベルビュー650内に表示させ得る。サブグラフの2度クリックは、キャンバス内のサブグラフを拡張し得、サブグラフの属性及びパラメータをノードレベルビュー650内に表示させ、ナビゲーションツリー620内のサブグラフのエントリを拡張させ得る。様々なタイプのユーザ相互作用に応答して表示される情報の他の例も提供され得る。
いくつかの例では、ユーザは、第1及び第2のバージョン600、602間のあらゆる差異に関する情報を見るために、各差異を連続的に辿り得る。いくつかの例では、ユーザは、パラメータ値に対する変更又はノードの追加又は削除などのグラフの実行に影響を与え得る差異だけを表示することを選択し得る。いくつかの例では、ユーザは、グラフ実行に影響を与え得る差異とグラフ実行に影響を与えない差異との両方を含むすべての差異(例えばコメントと凡例に対する差異、著者及びバージョン属性などの属性の属性値に対する変更、ノードの配置のxy座標に対する変更、フォント変更、又は他の差異)を表示することを選択し得る。
図11を参照すると、第1のグラフ800と第2のグラフ802間の差異を解析するグラフ解析システム80は、各グラフ800、802の仕様を解析するグラフ解析器エンジン804を含む。グラフ解析器エンジン804は、第1のグラフ800内のどのノード(例えば部品又はデータセット)が第2のグラフ802内のノードに対応するかを判断する。対応ノード同士は、必ずしも同一ではなく、グラフ間で修正され得るが、通常、両方のグラフ内の同じノードと見なされるには十分に似ている。
いくつかの例では、グラフ解析器エンジン804は、ノードのタイプ(例えばデータ処理部品対データセット、又はデータ処理部品又はデータセットの特定タイプ)、ノードの名前、ノードの一意的識別子、又はノードに関連する他のメタデータのうちの1つ又は複数などノードに関連するメタデータに基づき対応ノードを特定する。いくつかの例では、グラフ解析器エンジン804は、ノード内への又はそこからのデータフローに関連する情報(例えば、ポートの名前又は数、ノード内へのデータフローの名前又はソース、ノードからのデータフローの名前又は送信先、又はノード内への又はそこからのデータフローに関連する他の情報など)に基づき対応ノードを特定する。いくつかの例では、グラフ解析器エンジン804は、特定ノードが他のノードに対しグラフ内のどこに位置するか(例えば、どのノードが特定ノードの上流又は下流側に存在するか)などのトポロジー情報に基づき対応ノードを特定する。いくつかの例では、グラフ解析器804は、キャンバス上のグラフのグラフィック表現内のノードの位置(例えばxy座標)に基づき対応ノードを特定する。しかし、いくつかの例では、グラフ解析器804は対応ノードを特定する際に位置情報を使用しない(例えば、キャンバス上のノードの位置はノードの機能又はノードを含むグラフに影響しないので)。
第2のグラフ802内に対応ノードが存在しない第1のグラフ800内のいかなるノードも、削除されたノードとしてグラフ解析器エンジン804により特定される。第1のグラフ800内に対応ノードが存在しない第2のグラフ802内のいかなるノードも、追加されたノードとしてグラフ解析器エンジン804により特定される。第1及び第2のグラフ800、802間で対応するノードは、ノードが修正されたかどうかを判断するためにグラフ解析器エンジン804により解析される。可視化エンジン810は、第1及び第2のグラフ800、802間の差異のグラフィック表現のレンダリングを可能にするデータを生成する。
いくつかの例では、グラフ解析器エンジン804は、グラフの実行に影響を与え得る特徴とグラフの実行に影響を与えない特徴との両方を解析し得る。グラフの実行に影響を与える特徴は、例えばパラメータ表現又はパラメータ値などのパラメータを含み得る。グラフの実行に影響を与えない特徴は、例えば属性値(例えば著者属性、名前属性、バージョン属性、又は他の属性)、コメント、凡例、フォーマット(例えばフォント)、キャンバス上の部品の位置、又は他の特徴を含み得る。いくつかの例では、グラフ解析器エンジン804は、グラフの実行に影響を与え得る特徴だけを解析し得、グラフの実行に影響を与えない特徴を無視し得る。
2つの対応ノードのそれぞれに関連するパラメータの解析は、パラメータ(例えば第2のグラフのノード内に存在するが第1のグラフの対応ノード内に存在しないパラメータ)が追加されたか、又はパラメータ(例えば第1のグラフのノード内に存在するが第2のグラフの対応ノード内に存在しないパラメータ)が除去されたかを特定し得る。パラメータの解析は、パラメータを規定する表現の解析、パラメータの値の解析、又はその両方を含み得る。
いくつかの例では、2つの対応ノードのそれぞれに関連するパラメータの解析は、対応パラメータの表現が修正されたかどうかを判断し得る。パラメータの表現を解析するために、パラメータ解析は各ノードに対応するソースコードに対し行われ得る。いくつかの例では、パラメータ解析は、グラフ800、802がインスタンス化されそしてすべてのパラメータが解決された後(例えば、各グラフがノードの仕様を参照してパラメータファイルを呼び出した後)に行われ得る。パラメータ解析がグラフインスタンス化後に行われると、グラフ解析器エンジン804はパラメータ値同士を比較する。
いくつかの例では、2つの対応ノードのそれぞれに関連するパラメータの順序がグラフ解析器エンジン804により解析され得;いくつかの例では、パラメータの順序はグラフ解析器エンジンにより無視される。いくつかの例では、依存性解析のためにだけ使用されるパラメータの表現又は値がグラフ解析器エンジン804により解析され得;いくつかの例では、これらのパラメータの表現又は値はグラフ解析器エンジンにより無視される。
いくつかの例では、グラフ解析器エンジン804は、グラフにより参照される外部ファイルを解析し得る、又はグラフ800、802により参照されるファイル間のいかなる差異も特定することを計画する。いくつかの例では、レコードフォーマットファイル(例えば、.dmlファイル)、変換ファイル(例えば、.xfrファイル)、又はそのコンテンツがグラフの実行に影響を与え得る他のタイプのファイルなどのいくつかのタイプのファイルだけがグラフ解析器エンジン804により解析される。グラフ又はプランによる処理のためのデータを提供するファイルなどの他のファイルは考慮されない。
いくつかの例では、解析されるグラフ又はプランは解析に先立って共通ファイルフォーマットへアップグレードされ得る。例えば、グラフ又はプランは、グラフ又はプランの現ファイルフォーマットへ又は最新のファイルフォーマットへアップグレードされ得る。いくつかの例では、グラフ又はプランはそれ自身のオリジナルファイルフォーマットで解析され得る。比較のために(例えばファイルフォーマット変更により生じた又はそうでなければそれに関係する差異を特定するために)オリジナルファイルフォーマットを保持することが有用であり得る。
いくつかの例では、グラフ解析器エンジン804による行われる解析の範囲はデフォルトで設定され得る、例えば、グラフ解析器エンジン804はグラフ実行に影響を与える差異だけを考慮するためにデフォルトで設定され得る。いくつかの例では、ユーザが、グラフ実行エンジンによる行われる解析の範囲を規定し得る。
いくつかの例では、グラフ間の差異のグラフィック表現はソフトウェア開発プラットフォームに一体化され得る。ソフトウェア開発プラットフォームは、例えばグラフなどのソフトウェアを開発又は維持するソフトウェア開発者により使用され得る。開発者は、例えば自身に最新変更について気付かせ、別の開発者の最新変更を精査するために、又は何故グラフに対する修正が成功しなかったのかの潜在的理由を特定するために、又は他の目的のために、グラフの旧バージョンとグラフの更新バージョンとの間の差異のグラフィック表現を活用し得る。
いくつかの例では、グラフ間の差異のグラフィック表現はソフトウェア管理プラットフォームに一体化され得る。ソフトウェア管理プラットフォームは、例えばグラフなどのソフトウェアの開発又は維持を監督する管理者により使用され得る。管理者は、例えばソフトウェア開発進捗を観察する、追加開発を必要とするグラフの部分を特定する、トラブルシュートを支援する、又は他の目的のために、グラフの旧バージョンとグラフの更新バージョンとの間の差異のグラフィック表現を活用し得る。
いくつかの例では、グラフ間の差異のグラフィック表現は、処理環境の様々な部品の統合管理を容易にする運用コントロールセンタに統合され得る。コントロールセンタは、コンピュータ装置、アプリケーション、又はジョブなどの処理環境の部品の状態を監視及び表示し得、オペレータが処理環境の部品を能動的に管理することを可能にし得る。例示的コントロールセンタの説明は参照によりその全体を本明細書に援用する米国特許出願第14/690,114号に見出され得る。
図12を参照すると、処理環境900は、データを処理するためにユーザ902により又はその代わりに操作され得るハードウェア及びソフトウェア部品を含む。ハードウェア部品は、時に「ホスト」と呼ぶサーバなどのハードウェアコンピュータ装置904を含み得る。サーバのそれぞれは、1つ又は複数のデータ処理装置と、1つ又は複数のデータ処理装置により実行される命令を格納するための1つ又は複数の格納装置とを含み得る。処理環境900のソフトウェア部品はアプリケーション906、ジョブ908、又はサービス910を含み得る。ソフトウェア部品はそれぞれ、1つ又は複数のホスト904上で実行する、又はそれらに影響を与える。
アプリケーション906は、例えばデータ処理のためにフレームワークを設定すること、データ処理フレームワークを実行すること、又は処理されたデータを解析することを含む様々なデータ処理機能を行うために使用され得るソフトウェア製品などのコンピュータプログラムである。アプリケーションは、文書処理などの特定ドメイン内のタスクを実行すること又はユーザが実行するのを助けることを標的とするプログラムであり得る。1つ又は複数のジョブ908は、処理環境900の1つ又は複数のホスト904、1つ又は複数のアプリケーション906、又はその両方を使用して行われ得る。ジョブ908はデータを処理するために実行される一組の1つ又は複数の操作である。ジョブの例はグラフベース処理環境内のグラフ又はプランである。
いくつかの例では、アプリケーション906又はジョブ908は1つ又は複数のサービス910を利用し得る。サービス910は、アプリケーション又はユーザの代わりに行われる特定組のタスク(サービス)を標的とする長期アプリケーション(例えばホスト又はサーバが実行している限り実行されることが期待されるアプリケーション)などのアプリケーションの特別なケースである。サービス910により行われ得る例示的タスクは、例えば事象をログ記録すること又はユーザインターフェースを介し事象を可視化することを含む。例示的サービス910は、例えばデータベース912、キュー914、ファイル916、アプリケーションサーバ918、又は別のタイプのサービスを含む。
統合コントロールセンタ950は、処理環境900のハードウェア及びソフトウェア部品のリアルタイム状態を監視する。いくつかの例では、コントロールセンタ950はホスト904のうちの1つの上で実行し得;いくつかの例では、コントロールセンタ950は別個のコンピュータ装置952上で実行する。例えば、コントロールセンタ950は、ユーザ902がアクセスしジョブ908がユーザ902の代わりに実行されるホスト904及びアプリケーション906の状態を監視し得る。処理環境900の部品に関するリアルタイム状態情報954がユーザインターフェース956上に表示され得る。状態情報954は、ホスト904、アプリケーション906、ジョブ908、サービス910、又は他の部品などの処理環境900の個々の部品間の関係をハイライトするように統合されたやり方で表示され得る。状態情報954は、1つ又は複数の部品の状態又は処理環境の個々の部品の状態間の関係を表示するように表示され得る。リアルタイム状態情報及び歴史的状態メトリック及びデータ処理メトリック(例えば、処理されたレコードの数、処理時間、処理期間に関係するメトリック、又は他のメトリック)がコントロールセンタを介し利用可能かもしれない。ユーザインターフェース956を介し、ユーザ902は、処理環境の1つ又は複数の部品に関係する行動を取ってもよいし、処理環境の1つ又は複数の部品に関係する所定発生に応答して自動的に実行される行為を規定してもよい。
ホスト904のために監視及び表示され得るリアルタイム状態メトリックの例は、例えば以下のものを含む:
●ホストの運転状態:例えば、ホストは、オンラインか、エラー又は警告状態によりオンラインか、オフラインか。いくつかのケースでは、コントロールセンタ950は、ホストの運転状態に関係する詳細(ホストが計画保守のためにオフラインか、又は障害(例えばディスク故障))によりオフラインかなど)を監視し得る。
●ホストの全中央処理ユニット(CPU)使用率。
●ホストの全利用可能メモリ又は使用されたメモリ。
●ホストに関連するファイルシステムの数。
●ファイルシステムの全利用可能ディスクスペース又は使用されたディスクスペース。
●ホスト上で実行しているジョブの数。
●ホスト上で実行しているジョブのそれぞれの識別子。
●ホスト上で実行しているジョブのそれぞれによるCPU使用率、メモリ使用率、又はその両方。
●ホスト上で実行しているアプリケーションの数。
●ホスト上で実行しているアプリケーションのそれぞれの識別子。
●ホスト上で実行しているアプリケーションのそれぞれによるCPU使用率、メモリ使用率、又はその両方。
●ユーザによりライセンスされたCPU又はメモリの最大量に対する特定ユーザ902のCPU使用率、メモリ使用率、又はその両方。
●ホスト上に格納されたライセンスキーの状態(例えば有効期限)及び当該ライセンスキーに関連するアプリケーションの識別子。
●オペレーティングシステムのパラメータ
●CPUの数
●CPUクラス
●CPU速度
他のリアルタイム状態メトリックも監視され得る。いくつかの例では、ユーザ902は、コントロールセンタ950により監視されるカスタム状態メトリックを規定し得る。
コントロールセンタ950はまた、ホスト904の歴史的状態メトリックの追跡を可能にする情報を維持し得る。例えば、コントロールセンタ950は、ホスト904が所定期間にわたってオフラインだった時間の割合、ホスト904が所定期間にわたって経験したエラー又は警告状態の数、又は歴史的運転状態の他の指標などのホストの歴史的運転状態の追跡を可能にする情報を維持し得る。コントロールセンタ950は、ホスト904上で行われるジョブ908の平均又は総数、ホスト904上で動作するアプリケーション906の平均又は総数、ホスト904の平均又は最大CPU負荷、ホスト904の平均又は最小利用可能メモリ、又はホスト904の歴史的状態の他の指標の追跡を可能にする情報を維持し得る。このタイプの情報の一部はホスト904の1つ又は複数のログファイル内に見出され得るが、コントロールセンタ950により提供される統合表示は情報をより容易にアクセス可能にし、そしてより容易に理解されるようにし、したがって、特定技術知識の少ない人がホスト904の歴史的状態メトリックへアクセスして解析することを可能にする。
製品又はサービスのための監視及び表示され得るリアルタイム状態メトリックの例は、例えば以下のものを含む:
●製品又はサービスのライセンスキーの状態:例えば有効である、有効であるが期限切れに近づいている、又は期限切れである。
●製品又はサービスのライセンスキーが発行されるキーサーバの識別子。
●製品又はサービスが動作しているホストの識別子。
●製品又はサービスを利用するジョブの数。
●製品又はサービスを利用するジョブの識別子。
●製品又はサービスの構成ファイルの位置。
●製品又はサービスのログファイルの位置。
●製品又はサービスにより利用される任意のサービスの識別子。
●製品又はサービスにより利用されるサービスのそれぞれの状態(例えば、オンラインか、エラー又は警告状態によりオンラインか、オフラインか)。
●製品又はサービスに関係する任意の部品の識別子及び状態。
他のリアルタイム状態メトリックも監視され得る。いくつかの例では、ユーザ902は、コントロールセンタ950により監視されるカスタム状態メトリックを規定し得る。
ジョブ908のための監視及び表示され得るリアルタイム状態メトリックの例は例えば以下のものを含む:
●ジョブのリアルタイム運転状態:例えば、ジョブが実行されているか、停止又は休止されたか、実行を待っているか、完了したか。
●ジョブの開始時間、経過時間(進行中であれば)、又は終了時間(完成していれば)。
●ジョブの合計経過時間がジョブの標的処理時間(例えばサービスレベルアグリーメント(SLA:service level agreement))を満たすかどうか。
●ジョブが実行されているホストの識別子。
●ジョブによるCPU使用率。
●ジョブにより利用される任意の製品又はサービスの識別子。
●ジョブによるデータ出力のタイプ。
●ジョブによるデータ出力の位置。
●ジョブの実行中に処理されるレコードの数。
●ジョブの実行中に拒絶されるレコードの数。
●ジョブにより利用されるサービスのそれぞれの状態。
他のリアルタイム状態メトリックも監視され得る。いくつかの例では、ユーザ902は、コントロールセンタ950により監視されるカスタム状態メトリックを規定し得る。
コントロールセンタ950はまた、ジョブ908の歴史的状態メトリックの追跡を可能にする情報を維持し得る。例えば、コントロールセンタ950は、平均実行時間、平均CPU使用率、拒絶されたレコードの平均数、又は所与のタイプのジョブの他の歴史的メトリックの追跡を可能にする情報を維持し得る。
ジョブに関係し採用され得る行動の例は例えば以下のものである:
●ジョブを開始又は停止する。
●ジョブをスケジューリングする。
●ジョブを再実行する。
●実行されないようにジョブを使用不能にする。
●実行されるようにジョブを使用可能にする。
●ジョブを保留にする。
●ジョブを保留から解放する。
●ジョブに関する問題を調査し解決する。
●失敗したジョブを、それに依存するジョブがとにかく実行されるように無視する。
●任意の先行又は後行ジョブを見てそれへナビゲートする。
●ジョブの任意のこれまでの実行を見てそれへナビゲートする。
●親ジョブ又は任意の子ジョブを見てそれへナビゲートする。
●ジョブにより使用されているキューを見る。
●ジョブにより使用されているファイルを見る。
●ジョブにより使用されている資源を見る。
●ジョブにより使用されている製品及びサービスを見る。
コントロールセンタはまた、上に挙げたもの以外の行為を可能し得る。
コントロールセンタはジョブにより使用されるキュー914を監視し得る。いくつかの実施形態では、ジョブは、データ処理部品間で渡されるデータに依存するので、キュー状態を知ることでユーザにジョブの全体性能への洞察を与える。
コントロールセンタはジョブにより使用される資源を監視し得る。資源はプランにより使用される処理環境のいくつかの態様を表す。例えば、ハードウェア部品、手段、又はプログラムオブジェクは資源として規定され得る。CPU時間、プロセッサユニット、FTP(ファイル転送プロトコル:file transfer protocol)ポート、ディスク容量、ファイルカウント、入力ストリーム、及び事象トリガ、及びJVM(Java仮想マシン:Java virtual machine)プールは資源の例である。資源を規定する目的は処理環境内の要求と容量とをバランスすることである。具体的には、資源は、システムにかかる負荷に最大限度及び順序を課すために使用され得る。
ユーザインターフェース956は、コントロールセンタ950により監視される状態情報の一部又はすべてを表示し、ユーザに処理環境900の1つ又は複数の部品に関係する行動を取らせる。一般的に、状態情報は、処理環境900の様々な部品間の関係をハイライトするコヒーレントでかつ統合されたやり方でユーザインターフェース956上に表示されリンクされる。処理環境の各個々の部品に関する情報を孤立して表示するのではなく、この表示パラダイムは、処理環境の部品間のオーバラップの可視でかつアクセス可能な洞察を行う。この表示パラダイムにより、特定部品に関する性能問題の潜在的要因と他の部品に関する性能問題の潜在的影響との両方が理解され対処され得る。
例えば、コントロールセンタ950のユーザインターフェース956上に提供される情報の統合表示により、ユーザ902は、特定ホスト904が維持のためにオフラインで採用されれば影響を受けるジョブ908を特定し得る。逆に、ユーザ902は、いくつかのジョブ908が期待より遅いことに気付き得る。ユーザインターフェース956を介し、ユーザ902は、これらのジョブ908がすべて同じホスト904上で実行しているということと、当該ホスト904はCPU制約又はI/O(入出力)制約であるということとを判断することができるかもしれない。いずれの場合も、ユーザ902は、いかなる潜在的性能問題も軽減するための又は実際の性能問題を解決するための行動を取り得る。例えば、ユーザインターフェース956を介し、そしてホスト904が計画保守のためにオフラインにされるという通知に応答して、ユーザ902は、影響を受けたジョブ908、又はこれらジョブ908により利用されるアプリケーション906、又はその両方ともを異なるホスト908上に一時的に移行し得る。CPU制約又はI/O制約ホスト904の例では、ユーザは当該ホスト904に関する潜在容量問題についてシステム管理者に警告し得る。
いくつかの例では、グラフに関連するジョブが行われると、運用コントロールセンタはグラフのソースコードのバージョンを記録する。ジョブが成功裡に終了しなければ、当該ジョブに関連するグラフが実行され、グラフ(例えば、前に正常に完了したジョブに関連するグラフ)の別のバージョンと比較され得る。グラフの2つのバージョン間の差異のグラフィック表現は、ジョブを失敗させたかもしれない変化したものをオペレータが容易に理解するのを支援し得る。
いくつかの例では、グラフの2つのバージョン間の比較は、ユーザ入力(失敗したジョブに関するより多くの情報を取得するためのユーザによる要求などの)に応答して行われ得る。例えば、ユーザはユーザインターフェース956を介し又はジョブの失敗した状態を示す警報又は通信を介し比較機能へアクセスし得る。
図13を参照すると、運用コントロールセンタインターフェース350の例では、ジョブウィンドウ352が、完了ジョブ、現在実行中のジョブ、又は将来実行するようにスケジュールされたジョブなどのジョブに関する詳細へのアクセスを提供する。ジョブウィンドウ352から、比較行為354は、それを元にジョブが実行されたグラフのバージョンと現バージョン又は旧バージョンなどのグラフの別のバージョンとが比較されることを可能にする。図12の例では、ジョブウィンドウ352は、特定グラフに基づき成功裡に実行された最新ジョブに関する詳細を提供し、比較行為354はグラフの当該バージョンとグラフの現バージョンとを比較する。このような比較は、例えば何故グラフの現バージョンに基づき実行されているジョブが最早正常に完了することができないのかを理解するために有用であり得る。このような比較はまた、例えばグラフが初期バージョンに対して修正されたかどうかを判断するために有用であり得る。
図14を参照すると、差異をグラフィック的に表す例示的手法では、第1のコンピュータプログラム(例えば第1のグラフ)の仕様と第2のコンピュータプログラム(例えば第2のグラフ)の仕様とが比較される(300)。比較に基づき、第1のコンピュータプログラムと第2のコンピュータプログラムとの間の1つ又は複数の差異が特定される(302)。1つ又は複数の差異は、第1のグラフ内に存在するが第2のグラフ内に存在しないノードを含み得る。1つ又は複数の差異は、第2のグラフ内の第2のノードに対応する第1のグラフ内の第1のノードであって第2のノードの対応する特徴とは異なる特徴(パラメータ値又はパラメータの表現など)を有する第1のノードを含み得る。特定された差異のグラフィック表現はレンダリングされる(304)。グラフィック表現はユーザ相互作用に応答する。
図15は、差異のグラフィック表現の技術が使用され得るデータ処理システム1000の例を示す。システム1000は、格納装置又はオンラインデータストリームへの接続などのデータの1つ又は複数のソース(複数のソースのそれぞれは、データを様々なフォーマット(例えばデータベース表、スプレッドシートファイル、フラットテキストファイル、又はメインフレームコンピュータにより使用される固有フォーマット)のうちの任意のフォーマットで格納又は提供し得る)を含み得るデータソース1002を含む。データは記号論理学データ、解析データ、又は機械データであり得る。実行環境1004は前処理モジュール1006及び実行モジュール1012を含む。実行環境1004は、例えばUNIXオペレーティングシステムの一バージョンなどの好適なオペレーティングシステムの制御下で1つ又は複数の汎用コンピュータ上でホストされ得る。例えば、実行環境1004は、複数の中央処理ユニット(CPU)又はプロセッサコアを使用するコンピュータシステムの構成を含むマルチプルノードパラレルコンピュータ環境を含み得、これは、ローカル(例えば、対称型マルチ処理(SMP:symmetric multi-processing)コンピュータ等のマルチプロセッサシステム)、又はローカル分散型(例えば、クラスタ又は超並列処理(MPP:massively parallel processing)として結合される複数プロセッサ)システム、又はリモート又はリモート分散型(例えば、ローカルエリアネットワーク(LAN:local area network)及び/又は広域ネットワーク(WAN:wide-area network)を介し結合される複数プロセッサ)、又はその任意の組み合せのいずれかである。
データソース1002を提供する格納装置は、例えば、実行環境1004をホストするコンピュータへ接続された格納媒体(例えば、ハードドライブ1008)上に格納された実行環境1004に対してローカルであってもよいし、例えばリモート接続(例えばクラウドコンピュータインフラストラクチャにより提供される)上で実行環境1004をホストするコンピュータと通信するリモートシステム(例えば、メインフレームコンピュータ1010)上でホストされる実行環境1004に対してリモートであってもよい。
前処理モジュール1006は、データソース1002からデータを読み出し、実行のためのデータ処理アプリケーションを準備する。例えば、前処理モジュール1006は、データ処理アプリケーションをコンパイルし、コンパイルされたデータ処理アプリケーションを、実行環境1004へアクセス可能なデータ格納システム1016から及び/又はそれへ格納及び/又はロードし、実行のためのデータ処理アプリケーションを準備するために他のタスクを実行し得る。
実行モジュール1012は、一組のデータを処理しこの処理から生じた出力データ1014を生成するために前処理モジュール1006により準備されるデータ処理アプリケーションを実行する。出力データ1014は、データソース1002内又は実行環境1004へアクセス可能なデータ格納システム1016内に戻され格納されてもよいし、そうでなければ使用されてもよい。データ格納システム1016もまた、開発環境1018へアクセス可能であり、ここで、開発者1020は、実行モジュール1012により実行されるデータ処理アプリケーションを設計及び編集することができる。開発環境1018は、いくつかの実施形態では、頂点間で方向付けられたリンク(作業要素(すなわちデータ)の流れを表す)により接続された頂点(データ処理部品又はデータセットを表す)を含むデータフローグラフとしてアプリケーションを開発するためのシステムである。例えば、このような環境は参照により本明細書に援用する米国特許出願第2007/0011668号:題名「Managing Parameters for Graph-Based Applications」に詳細に説明されている。このようなグラフベース計算を実行するためのシステムは参照により本明細書に援用する米国特許第5,966,072号:題名「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」に説明されている。このシステムに従って作製されるデータフローグラフは、グラフ成分により表される個別処理内に情報を入れる及びそこから情報を得、処理間で情報を移動し、そして処理の実行順序を規定するための方法を提供する。本システムは、任意の利用可能方法からプロセス間通信方法を選択するアルゴリズムを含む(例えば、グラフのリンクに従う通信経路は、TCP/IP又はUNIXドメインソケットを使用してもよいし、処理間でデータ渡すために共有メモリを使用してもよい)。
前処理モジュール1006は、データソース1002を具現化し得る多様なタイプのシステム(様々な形式のデータベースシステムを含む)からデータを受信し得る。データは、恐らく空値を含むそれぞれのフィールド(「属性」又は「列」とも呼ばれる)の値を有するレコードとして編成され得る。データソースからデータを最初に読み出す際、前処理モジュール1006は通常、当該データソース内のレコードに関するいくつかの初期フォーマット情報により開始する。いくつかの状況では、データソースのレコード構造は当初知られていないかもしれなく、その代わりにデータソース又はデータの解析後に判断され得る。レコードに関する初期情報は、例えば別個の値を表すビットの数、レコード内のフィールドの順序、及びビットにより表される値のタイプ(例えばストリング、符号付き/符号無し整数)を含み得る。
上述の差異のグラフィック表現の手法は好適なソフトウェアを実行するコンピュータシステムを使用して実施され得る。例えば、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、少なくとも1つのデータ格納システム(揮発性及び/又は不揮発性メモリ及び/又は格納要素を含む)、少なくとも1つのユーザインターフェース(少なくとも1つの入力装置又はポートを使用することにより入力を受信するための、そして少なくとも1つの出力装置又はポートを使用することにより出力を提供するための)を含む1つ又は複数のプログラムされた又はプログラム可能なコンピュータシステム(分散クライアント/サーバ又はグリッドなどの様々なアーキテクチャのものであり得る)上で実行する1つ又は複数のコンピュータプログラム内に手順を含み得る。ソフトウェアは、例えばグラフの設計、構成、及び実行に関係するサービスを提供するより大きなプログラムの1つ又は複数のモジュールを含み得る。プログラムのモジュール(例えばグラフの要素)は、データレポジトリ内に格納されたデータモデルに準拠するデータ構造又は他の編成されたデータとして実装され得る。
ソフトウェアは、CD−ROM又は他のコンピュータ可読媒体(例えば、汎用又は特殊用途コンピュータシステム又は装置により可読な)などの有形な非一時的な媒体上で提供されてもよいし、ネットワークの通信媒体上で、それが実行されるコンピュータシステムの有形な非一時的媒体へ配送されてもよい(例えば、伝播信号内に符号化されてもよい)。処理の一部又はすべては、特殊用途コンピュータ上で、又はコプロセサ又はフィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)又は特定用途向け集積回路(ASIC:application-specific integrated circuit)などの専用ハードウェアを使用することにより行われ得る。処理は、分散されたやり方で実施され得、ここでは、ソフトウェアにより規定された計算の様々な部分が様々なコンピュータ要素により行われる。このような各コンピュータプログラムは好適には、本明細書で説明された処理を行うために格納装置媒体がコンピュータにより読み出されると、コンピュータを構成及び操作するための汎用又は特殊用途プログラム可能コンピュータによりアクセス可能な格納装置のコンピュータ可読格納媒体(例えば固体メモリ又は媒体、又は磁気又は光学媒体)上に格納される又はそれへダウンロードされる。本発明システムはまた、コンピュータプログラムにより構成される有形な非一時的媒体として実現されると考えられ得、ここでは、そのように構成された媒体は、コンピュータシステムを、本明細書に記載の処理のうちの1つ又は複数を実行するように特定及び所定やり方で動作させる。
本発明の多くの実施形態が説明された。それにもかかわらず、これまでの説明は、例示することを意図しているが、添付の請求の範囲により規定される本発明の範囲を制限しないように意図されているということを理解すべきである。したがって、他の実施形態もまた以下の特許請求の範囲に含まれる。例えば、様々な修正が本発明の範囲から逸脱することなく行われ得る。加えて、上に記載されたことのいくつかは、順序に無関係であってもよく、したがって記載されたものと異なる順序で実行され得る。

Claims (55)

  1. 第1の実行可能データフローグラフと第2の実行可能データフローグラフとの間の差異を表示する方法であって、各データフローグラフは前記データフローグラフにより受信されるデータレコードを処理するように実行可能であり、各データフローグラフはデータ処理部品を表す1つ又は複数のノードと部品間のデータレコードの流れを表す1つ又は複数のリンクとを含み、前記方法は、
    前記第1のデータフローグラフと前記第2のデータフローグラフとの間の1つ又は複数の差異を特定するために前記第1の実行可能データフローグラフの仕様と前記第2の実行可能データフローグラフの仕様とをコンピュータにより比較することであって、
    所与の実行可能データフローグラフの前記仕様は、前記データフローグラフにより処理されるデータレコードのソースをそれぞれが表す1つ又は複数のノードと、前記データレコードのソースからの前記データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品をそれぞれが表す1つ又は複数のノードと、前記データフローグラフにより処理されるデータレコードの送信先をそれぞれが表す1つ又は複数のノードと、を規定し、前記データフローグラフは、実行されたとき、(1)前記データレコードのソースによって示されるデータソースからのデータレコードを受信及び処理し、及び(2)処理されたデータレコードを前記送信先によって示されるデータシンクに提供するように構成され、
    前記第1のデータフローグラフと前記第2のデータフローグラフとの前記仕様の前記比較することは、
    (1)前記第2のデータフローグラフのいかなるノードにも対応しない前記第1のデータフローグラフの特定ノードを特定することであって、前記特定された特定ノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定することと、
    (2)前記第2のデータフローグラフのいかなるリンクにも対応しない前記第1のデータフローグラフの特定リンクを特定することであって、前記特定された特定リンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定することと、
    (3)前記第2のデータフローグラフの第2のノードに対応する前記第1のデータフローグラフの第1のノードを特定することであって、前記特定された第1のノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定すること、及び前記第1のノードと前記第2のノードとの間の差異を特定することと、
    (4)前記第2のデータフローグラフの第2のリンクに対応する前記第1のデータフローグラフの第1のリンクを特定することであって、前記特定された第1のリンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定すること、及び前記第1のリンクと前記第2のリンクとの間の差異を特定することと、のうちの少なくとも1つを含む、前記比較することと、さらに前記コンピュータにより、
    前記第1のデータフローグラフ又は前記第2のデータフローグラフの前記ノード又はリンクの少なくとも一部のグラフィック表現を定式化することであって、前記グラフィック表現は、(1)前記特定された特定ノード又はリンク、又は(2)前記第1のノード又はリンクと前記第2のノード又はリンクとの間の前記特定された差異のうちの少なくとも1つのグラフィック指標を含む、定式化することと、
    前記グラフィック表現をグラフ編集インターフェース内に表示することと、を含む方法。
  2. 前記第1のデータフローグラフは特定データフローグラフの第1のバージョンであり、前記第2のデータフローグラフは前記特定データフローグラフの第2のバージョンである、請求項1に記載の方法。
  3. 前記第1のノード又はリンクと前記第2のノード又はリンクとの間の差異を特定することは、前記第1のノード又はリンクの解決されたパラメータと前記第2のノード又はリンクの解決されたパラメータとの間の差異を特定することを含む、請求項1に記載の方法。
  4. 前記第1のノード又はリンクと前記第2のノード又はリンクとの間の差異を特定することは、前記第1のノード又はリンクのパラメータの表現と前記第2のノード又はリンクのパラメータの表現との間の差異を特定することを含む、請求項1に記載の方法。
  5. 前記グラフィック指標は前記グラフィック表現内の前記第1、第2、又は特定ノード又はリンクの色である、請求項1に記載の方法。
  6. 前記グラフィック指標の前記色は前記第1のノード又はリンクと前記第2のノード又はリンクとの前記特定された差異のタイプを示す、請求項5に記載の方法。
  7. 前記グラフィック指標は前記グラフィック表現内の前記第1、第2、又は特定ノード又はリンクのシェーディング又はフィルである、請求項1に記載の方法。
  8. 前記グラフィック指標は前記第1、第2、又は特定ノード又はリンク近傍に位置するシンボルを含む、請求項1に記載の方法。
  9. 前記グラフィック指標は前記グラフ編集インターフェースとのユーザ相互作用に応答する、請求項1に記載の方法。
  10. 前記グラフィック指標とのユーザ相互作用に応答する前記特定された差異を示す情報へのアクセスを可能にすることを含む、請求項9に記載の方法。
  11. 前記第1のデータフローグラフは第1のデータフローサブグラフを含み、前記第2のデータフローグラフは第2のデータフローサブグラフを含む、請求項1に記載の方法であって、
    前記第1のデータフローサブグラフの仕様と前記第2のデータフローサブグラフの仕様とを比較することと、
    この比較に基づき、前記第1のデータフローサブグラフと前記第2のデータフローサブグラフとの間の1つ又は複数の差異を特定することと、を含む方法。
  12. 前記グラフィック表現は前記第1のデータフローサブグラフの少なくとも一部分又は前記第2のデータフローサブグラフの少なくとも一部分のグラフィック表現を含み、前記グラフィック表現は前記第1のデータフローサブグラフと前記第2のデータフローサブグラフとの間の前記特定された差異のうちの少なくとも1つのグラフィック指標を含む、請求項11に記載の方法。
  13. 前記グラフィック表現は、前記第1のデータフローグラフと前記第2のデータフローグラフとの間の前記特定された差異のうちの少なくとも1つと前記第1のデータフローサブグラフと前記第2のデータフローサブグラフとの間の前記特定された差異のうちの少なくとも1つとの階層的表示を含む、請求項11に記載の方法。
  14. 前記第1のデータフローグラフの前記仕様と前記第2のデータフローグラフの前記仕様とを比較することは、前記第1のデータフローグラフにより参照される第1のファイルと前記第2のデータフローグラフにより参照される第2のファイルとを比較することを含む、請求項1に記載の方法。
  15. 前記グラフィック表現は前記第1のファイルと前記第2のファイルとの間の1つ又は複数の差異のグラフィック表現を含む、請求項14に記載の方法。
  16. 第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、(1)前記第1のノード又はリンク及び前記第2のノード又はリンクの名前と、(2)前記第1のノード又はリンク及び前記第2のノード又はリンクの識別子とのうちの1つ又は複数に基づき前記第1のノードを特定することを含む、請求項1に記載の方法。
  17. 第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、前記第1のノード及び前記第2のノード内への又はそこからのデータレコードの流れと関連する情報に基づき前記第1のノードを特定することを含む、請求項1に記載の方法。
  18. 第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、前記第1のノード又はリンク及び前記第2のノード又はリンクの上流側又は下流側にあるノード又はリンクに基づき前記第1のノード又はリンクを特定することを含む、請求項1に記載の方法。
  19. 実行のための前記第1のデータフローグラフ及び前記第2のデータフローグラフを準備することと、
    前記準備された第1及び第2のデータフローグラフの前記仕様を比較することと、を含む請求項1に記載の方法。
  20. コンピュータに第1の実行可能データフローグラフと第2の実行可能データフローグラフとの間の差異を表示させるための命令を格納する非一時的コンピュータ可読媒体であって、各データフローグラフは前記データフローグラフにより受信されるデータレコードを処理するように実行可能であり、各データフローグラフはデータ処理部品を表す1つ又は複数のノードと部品間のデータレコードの流れを表す1つ又は複数のリンクとを含む、非一時的コンピュータ可読媒体において、
    前記命令は、前記コンピュータに、前記第1のデータフローグラフと前記第2のデータフローグラフとの間の1つ又は複数の差異を特定するために前記第1の実行可能データフローグラフの仕様と前記第2の実行可能データフローグラフの仕様とを比較させ、
    所与の実行可能データフローグラフの前記仕様は、前記データフローグラフにより処理されるデータレコードのソースをそれぞれが表す1つ又は複数のノードと、前記データレコードのソースからの前記データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品をそれぞれが表す1つ又は複数のノードと、前記データフローグラフにより処理されるデータレコードの送信先をそれぞれが表す1つ又は複数のノードと、を規定し、前記データフローグラフは、実行されたとき、(1)前記データレコードのソースによって示されるデータソースからのデータレコードを受信及び処理し、及び(2)処理されたデータレコードを前記送信先によって示されるデータシンクに提供するように構成され、
    前記第1のデータフローグラフと前記第2のデータフローグラフとの前記仕様の前記比較することは、
    (1)前記第2のデータフローグラフのいかなるノードにも対応しない前記第1のデータフローグラフの特定ノードを特定することであって、前記特定されたノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定することと、
    (2)前記第2のデータフローグラフのいかなるリンクにも対応しない前記第1のデータフローグラフの特定リンクを特定することであって、前記特定されたリンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定することと、
    (3)前記第2のデータフローグラフの第2のノードに対応する前記第1のデータフローグラフの第1のノードを特定することであって、前記特定された第1のノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定すること、及び、前記第1のノードと前記第2のノードとの間の差異を特定することと、
    (4)前記第2のデータフローグラフの第2のリンクに対応する前記第1のデータフローグラフの第1のリンクを特定することであって、前記特定された第1のリンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定すること、及び前記第1のリンクと前記第2のリンクとの間の差異を特定することと、のうちの少なくとも1つを含み、前記命令はさらに前記コンピュータに、
    前記第1のデータフローグラフ又は前記第2のデータフローグラフの前記ノード又はリンクの少なくとも一部のグラフィック表現を定式化させ、前記グラフィック表現は、(1)前記特定された特定ノード又はリンク、又は(2)前記第1のノード又はリンクと前記第2のノード又はリンクとの間の前記特定された差異のうちの少なくとも1つのグラフィック指標を含み、
    前記命令はさらに前記コンピュータに、前記グラフィック表現をグラフ編集インターフェース内に表示させる、非一時的コンピュータ可読媒体。
  21. 第1の実行可能データフローグラフと第2の実行可能データフローグラフとの間の差異を表示するためのシステムであって、各データフローグラフは前記データフローグラフにより受信されるデータレコードを処理するように実行可能であり、各データフローグラフはデータ処理部品を表す1つ又は複数のノードと部品間のデータレコードの流れを表す1つ又は複数のリンクとを含む、システムにおいて、前記システムは、
    前記第1のデータフローグラフと前記第2のデータフローグラフとの間の1つ又は複数の差異を特定するために前記第1の実行可能データフローグラフの仕様と前記第2の実行可能データフローグラフの仕様とを比較するように構成された1つ又は複数のプロセッサ及びメモリを含み:
    所与の実行可能データフローグラフの前記仕様は、前記データフローグラフにより処理されるデータレコードのソースをそれぞれが表す1つ又は複数のノードと、前記データレコードのソースからの前記データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品をそれぞれが表す1つ又は複数のノードと、前記データフローグラフにより処理されるデータレコードの送信先をそれぞれが表す1つ又は複数のノードと、を規定し、前記データフローグラフは、実行されたとき、(1)前記データレコードのソースによって示されるデータソースからのデータレコードを受信及び処理し、及び(2)処理されたデータレコードを前記送信先によって示されるデータシンクに提供するように構成され、
    前記第1のデータフローグラフと前記第2のデータフローグラフとの前記仕様の前記比較することは、
    (1)前記第2のデータフローグラフのいかなるノードにも対応しない前記第1のデータフローグラフの特定ノードを特定することであって、前記特定されたノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定することと、
    (2)前記第2のデータフローグラフのいかなるリンクにも対応しない前記第1のデータフローグラフの特定リンクを特定することであって、前記特定されたリンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定することと、
    (3)前記第2のデータフローグラフの第2のノードに対応する前記第1のデータフローグラフの第1のノードを特定することであって、前記特定された第1のノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定すること、及び、前記第1のノードと前記第2のノードとの間の差異を特定することと、
    (4)前記第2のデータフローグラフの第2のリンクに対応する前記第1のデータフローグラフの第1のリンクを特定することであって、前記特定された第1のリンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定すること、及び前記第1のリンクと前記第2のリンクとの間の差異を特定することと、のうちの少なくとも1つを含み、前記プロセッサ及びメモリはさらに、
    前記第1のデータフローグラフ又は前記第2のデータフローグラフの前記ノード又はリンクの少なくとも一部のグラフィック表現を定式化するように構成され、前記グラフィック表現は、(1)前記特定された特定ノード又はリンク、又は(2)前記第1のノード又はリンクと前記第2のノード又はリンクとの間の前記特定された差異のうちの少なくとも1つのグラフィック指標を含み、
    前記プロセッサ及びメモリはさらに、前記グラフィック表現をグラフ編集インターフェース内に表示するように構成される、システム。
  22. 第1の実行可能データフローグラフと第2の実行可能データフローグラフとの間の差異を表示するための、1つ又は複数のプロセッサ及びメモリを含むシステムであって、各データフローグラフは前記データフローグラフにより受信されるデータレコードを処理するように実行可能であり、各データフローグラフはデータ処理部品を表す1つ又は複数のノードと部品間のデータレコードの流れを表す1つ又は複数のリンクとを含む、システムにおいて、前記システムは、
    前記第1のデータフローグラフと前記第2のデータフローグラフとの間の1つ又は複数の差異を特定するために前記第1の実行可能データフローグラフの仕様と前記第2の実行可能データフローグラフの仕様とを比較する手段を含み、
    所与の実行可能データフローグラフの前記仕様は、前記データフローグラフにより処理されるデータレコードのソースをそれぞれが表す1つ又は複数のノードと、前記データレコードのソースからの前記データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品をそれぞれが表す1つ又は複数のノードと、前記データフローグラフにより処理されるデータレコードの送信先をそれぞれが表す1つ又は複数のノードと、を規定し、前記データフローグラフは、実行されたとき、(1)前記データレコードのソースによって示されるデータソースからのデータレコードを受信及び処理し、及び(2)処理されたデータレコードを前記送信先によって示されるデータシンクに提供するように構成され、
    前記第1のデータフローグラフと前記第2のデータフローグラフとの前記仕様の前記比較することは、
    (1)前記第2のデータフローグラフのいかなるノードにも対応しない前記第1のデータフローグラフの特定ノードを特定することであって、前記特定されたノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定することと、
    (2)前記第2のデータフローグラフのいかなるリンクにも対応しない前記第1のデータフローグラフの特定リンクを特定することであって、前記特定されたリンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定することと、
    (3)前記第2のデータフローグラフの第2のノードに対応する前記第1のデータフローグラフの第1のノードを特定することであって、前記特定された第1のノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定すること、及び、前記第1のノードと前記第2のノードとの間の差異を特定することと、
    (4)前記第2のデータフローグラフの第2のリンクに対応する前記第1のデータフローグラフの第1のリンクを特定することであって、前記特定された第1のリンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定すること、及び前記第1のリンクと前記第2のリンクとの間の差異を特定することと、のうちの少なくとも1つを含み、前記システムはさらに、
    前記第1のデータフローグラフ又は前記第2のデータフローグラフの前記ノード又はリンクの少なくとも一部のグラフィック表現を定式化する手段であって、前記グラフィック表現は、(1)前記特定された特定ノード又はリンク、又は(2)前記第1のノード又はリンクと前記第2のノード又はリンクとの間の前記特定された差異のうちの少なくとも1つのグラフィック指標を含む、手段と、
    前記グラフィック表現をグラフ編集インターフェース内に表示する手段とを含む、システム。
  23. 実行可能データフローグラフの第1のバージョンと実行可能データフローグラフの第2のバージョンとの間の差異を表示する方法であって、前記データフローグラフは前記データフローグラフにより受信されたデータレコードを処理するように実行可能であり、前記データフローグラフの各バージョンはデータ処理部品を表す1つ又は複数のノードと部品間のデータレコードの流れを表す1つ又は複数のリンクとを含む、方法において、前記方法は、
    データレコードを処理するために実行され得る1つ又は複数の操作を含むジョブの状態を統合コントロールシステムにより監視することであって、前記ジョブは前記実行可能データフローグラフの前記第1のバージョンに関連付けられる、監視することと、
    前記ジョブの前記状態を示す情報の出力を可能にすることと、
    前記統合コントロールシステム又は前記出力された情報とのユーザ相互作用に応答して、
    前記実行可能データフローグラフの前記第2のバージョンを特定することと、
    前記データフローグラフの前記第1のバージョンと前記データフローグラフの前記第2のバージョンとの間の1つ又は複数の差異を特定するために前記データフローグラフの前記第1のバージョンの仕様と前記データフローグラフの前記第2のバージョンの仕様とを比較することとを含む方法において、
    所与の実行可能データフローグラフの前記仕様は、前記データフローグラフにより処理されるデータレコードのソースをそれぞれが表す1つ又は複数のノードと、前記データレコードのソースからの前記データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品をそれぞれが表す1つ又は複数のノードと、前記データフローグラフにより処理されるデータレコードの送信先をそれぞれが表す1つ又は複数のノードと、を規定し、前記データフローグラフは、実行されたとき、(1)前記データレコードのソースによって示されるデータソースからのデータレコードを受信及び処理し、及び(2)処理されたデータレコードを前記送信先によって示されるデータシンクに提供するように構成され、
    前記データフローグラフの前記第1のバージョンと前記データフローグラフの前記第2のバージョンとの前記仕様の前記比較することは、
    (1)前記データフローグラフの前記第2のバージョンのいかなるノードにも対応しない前記データフローグラフの前記第1のバージョンの第1のノードを特定することであって、前記特定された第1のノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定することと、
    (2)前記データフローグラフの前記第2のバージョンのいかなるリンクにも対応しない前記データフローグラフの前記第1のバージョンの第1のリンクを特定することであって、前記特定された第1のリンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定することと、
    (3)前記データフローグラフの前記第1のバージョンのいかなるノードにも対応しない前記データフローグラフの前記第2のバージョンの第2のノードを特定することであって、前記特定された第2のノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定することと、
    (4)前記データフローグラフの前記第1のバージョンのいかなるリンクにも対応しない前記データフローグラフの前記第2のバージョンの第2のリンクを特定することであって、前記特定された第2のリンクは、前記第2のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定することと、
    (5)前記データフローグラフの前記第2のバージョンの第4のノードに対応する前記データフローグラフの前記第1のバージョンの第3のノードを特定することであって、前記特定された第3のノードは、データレコードを処理するために行われる操作を規定するように構成可能なデータ処理部品を表す、特定すること、及び、前記第3のノードと前記第4のノードとの間の差異を特定することと、
    (6)前記データフローグラフの前記第2のバージョンの第4のリンクに対応する前記データフローグラフの前記第1のバージョンの第3のリンクを特定することであって、前記特定された第3のリンクは、前記第1のデータフローグラフのノードによって表される部品間のデータレコードの流れを表す、特定すること、及び、前記第3のリンクと前記第4のリンクとの間の差異を特定することと、のうちの少なくとも1つを含み、前記方法はさらに、
    前記データフローグラフの前記第1のバージョンの前記ノード又はリンク又は前記データフローグラフの前記第2のバージョンの少なくとも一部のグラフィック表現を定式化することであって、前記グラフィック表現は、(1)前記特定された第1のノード又はリンク、(2)前記特定された第2のノード又はリンク、(3)前記第3のノード又はリンクと前記第4のノード又はリンクとの間の前記特定された差異のうちの少なくとも1つのグラフィック指標を含む、定式化すること、を含む方法。
  24. 既に実行されたジョブは前記データフローグラフの前記第2のバージョンに関連付けられる、請求項23に記載の方法。
  25. 前記グラフ表示は前記特定された差異のうちの1つ又は複数の差異の階層的表示を含む、請求項23に記載の方法。
  26. 前記統合コントロールシステムのユーザインターフェース内の表示のための前記グラフィック表現を定式化することを含む請求項23に記載の方法。
  27. 前記データフローグラフの前記第1のバージョンと前記データフローグラフの前記第2のバージョンとの間の差異を特定することは、前記データフローグラフの前記第1のバージョンの解決されたパラメータと前記データフローグラフの前記第2のバージョンの解決されたパラメータとの間の差異を特定することを含む、請求項23に記載の方法。
  28. 前記データフローグラフの前記第1のバージョンと前記データフローグラフの前記第2のバージョンとの間の差異を特定することは、前記データフローグラフの前記第1のバージョンのパラメータの表現と前記データフローグラフの前記第2のバージョンのパラメータの表現との間の差異を特定することを含む、請求項23に記載の方法。
  29. 前記データフローグラフの前記第1のバージョンと前記データフローグラフの前記第2のバージョンとの間の差異を特定することは、前記データフローグラフの前記第1のバージョンにより参照される第1のファイルと前記データフローグラフの前記第2のバージョンにより参照される第2のファイルとの間の差異を特定することを含む、請求項23に記載の方法。
  30. 前記ジョブの前記状態を監視することは、前記ジョブの活動、前記ジョブの実際の開始時間、前記ジョブの推定開始時間、前記ジョブに関連する処理期間、及び前記ジョブのサイズのうちの1つ又は複数を監視することを含む、請求項23に記載の方法。
  31. 前記ジョブの前記状態を監視することは前記ジョブが成功裡に完了したかどうかを判断することを含む、請求項23に記載の方法。
  32. アプリケーションの状態を監視することを含む請求項23に記載の方法であって、前記ジョブは前記アプリケーションに関連付けられる、方法。
  33. コンピュータ装置の状態を監視することを含む請求項23に記載の方法であって、前記アプリケーションは前記コンピュータ装置によりホストされる、方法。
  34. 前記第1のノード又はリンクと前記第2のノード又はリンクとの間の差異を特定することは、前記第1のノード又はリンクの解決されたパラメータと前記第2のノード又はリンクの解決されたパラメータとの間の差異を特定することを含む、請求項20に記載の非一時的コンピュータ可読媒体。
  35. 前記第1のノード又はリンクと前記第2のノード又はリンクとの間の差異を特定することは、前記第1のノード又はリンクのパラメータの表現と前記第2のノード又はリンクのパラメータの表現との間の差異を特定することを含む、請求項20に記載の非一時的コンピュータ可読媒体。
  36. 前記グラフィック指標は前記グラフ編集インターフェースとのユーザ相互作用に応答する、請求項20に記載の非一時的コンピュータ可読媒体。
  37. 前記命令は、前記コンピュータに前記グラフィック指標とのユーザ相互作用に応答する前記特定された差異を示す情報へのアクセスを可能にさせる、請求項36に記載の非一時的コンピュータ可読媒体。
  38. 前記第1のデータフローグラフは第1のデータフローサブグラフを含み、前記第2のデータフローグラフは第2のデータフローサブグラフを含む、請求項20に記載の非一時的コンピュータ可読媒体において、
    前記命令は、前記コンピュータに、前記第1のデータフローサブグラフの仕様と前記第2のデータフローサブグラフの仕様とを比較させ、
    この比較に基づき、前記第1のデータフローサブグラフと前記第2のデータフローサブグラフとの間の1つ又は複数の差異を特定させる、非一時的コンピュータ可読媒体。
  39. 前記グラフィック表現は前記第1のデータフローサブグラフの少なくとも一部分又は前記第2のデータフローサブグラフの少なくとも一部分のグラフィック表現を含み、前記グラフィック表現は前記第1のデータフローサブグラフと前記第2のデータフローサブグラフとの間の前記特定された差異のうちの少なくとも1つのグラフィック指標を含む、請求項38に記載の非一時的コンピュータ可読媒体。
  40. 前記グラフィック表現は、前記第1のデータフローグラフと前記第2のデータフローグラフとの間の前記特定された差異のうちの少なくとも1つと前記第1のデータフローサブグラフと前記第2のデータフローサブグラフとの間の前記特定された差異のうちの少なくとも1つとの階層的表示を含む、請求項38に記載の非一時的コンピュータ可読媒体。
  41. 第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、(1)前記第1のノード又はリンク及び前記第2のノード又はリンクの名前と、(2)前記第1のノード又はリンク及び前記第2のノード又はリンクの識別子とのうちの1つ又は複数に基づき前記第1のノードを特定することを含む、請求項20に記載の非一時的コンピュータ可読媒体。
  42. 第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、前記第1のノード及び前記第2のノード内への又はそこからのデータレコードの流れと関連する情報に基づき前記第1のノードを特定することを含む、請求項20に記載の非一時的コンピュータ可読媒体。
  43. 第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、前記第1のノード又はリンク及び前記第2のノード又はリンクの上流側又は下流側にあるノード又はリンクに基づき前記第1のノード又はリンクを特定することを含む、請求項20に記載の非一時的コンピュータ可読媒体。
  44. 前記命令は、前記コンピュータに、実行のための前記第1のデータフローグラフ及び前記第2のデータフローグラフを準備させ、
    前記準備された第1及び第2のデータフローグラフの前記仕様を比較させる、請求項20に記載の非一時的コンピュータ可読媒体。
  45. 前記第1のノード又はリンクと前記第2のノード又はリンクとの間の差異を特定することは、前記第1のノード又はリンクの解決されたパラメータと前記第2のノード又はリンクの解決されたパラメータとの間の差異を特定することを含む、請求項21に記載のシステム。
  46. 前記第1のノード又はリンクと前記第2のノード又はリンクとの間の差異を特定することは、前記第1のノード又はリンクのパラメータの表現と前記第2のノード又はリンクのパラメータの表現との間の差異を特定することを含む、請求項21に記載のシステム。
  47. 前記グラフィック指標は前記グラフ編集インターフェースとのユーザ相互作用に応答する、請求項21に記載のシステム。
  48. 前記1つ又は複数のプロセッサ及びメモリは、前記グラフィック指標とのユーザ相互作用に応答する前記特定された差異を示す情報へのアクセスを可能にするように構成される、請求項47に記載のシステム
  49. 前記第1のデータフローグラフは第1のデータフローサブグラフを含み、前記第2のデータフローグラフは第2のデータフローサブグラフを含む、請求項21に記載のシステムであって、
    前記1つ又は複数のプロセッサ及びメモリは、前記第1のデータフローサブグラフの仕様と前記第2のデータフローサブグラフの仕様とを比較し、
    この比較に基づき、前記第1のデータフローサブグラフと前記第2のデータフローサブグラフとの間の1つ又は複数の差異を特定するように構成される、システム。
  50. 前記グラフィック表現は前記第1のデータフローサブグラフの少なくとも一部分又は前記第2のデータフローサブグラフの少なくとも一部分のグラフィック表現を含み、前記グラフィック表現は前記第1のデータフローサブグラフと前記第2のデータフローサブグラフとの間の前記特定された差異のうちの少なくとも1つのグラフィック指標を含む、請求項49に記載のシステム。
  51. 前記グラフィック表現は、前記第1のデータフローグラフと前記第2のデータフローグラフとの間の前記特定された差異のうちの少なくとも1つと前記第1のデータフローサブグラフと前記第2のデータフローサブグラフとの間の前記特定された差異のうちの少なくとも1つとの階層的表示を含む、請求項49に記載のシステム。
  52. 第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、(1)前記第1のノード又はリンク及び前記第2のノード又はリンクの名前と、(2)前記第1のノード又はリンク及び前記第2のノード又はリンクの識別子とのうちの1つ又は複数に基づき前記第1のノードを特定することを含む、請求項21に記載のシステム。
  53. 第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、前記第1のノード及び前記第2のノード内への又はそこからのデータレコードの流れと関連する情報に基づき前記第1のノードを特定することを含む、請求項21に記載のシステム。
  54. 第2のノード又はリンクに対応する第1のノード又はリンクを特定することは、前記第1のノード又はリンク及び前記第2のノード又はリンクの上流側又は下流側にあるノード又はリンクに基づき前記第1のノード又はリンクを特定することを含む、請求項21に記載のシステム。
  55. 前記1つ又は複数のプロセッサ及びメモリは、実行のための前記第1のデータフローグラフ及び前記第2のデータフローグラフを準備し、
    前記準備された第1及び第2のデータフローグラフの前記仕様を比較するように構成される、請求項21に記載のシステム。
JP2019528545A 2016-12-07 2017-12-04 実行可能データフローグラフの差分 Active JP6913168B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021113911A JP7535014B2 (ja) 2016-12-07 2021-07-09 実行可能データフローグラフの差分

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662431195P 2016-12-07 2016-12-07
US62/431,195 2016-12-07
US15/587,987 US10802945B2 (en) 2016-12-07 2017-05-05 Differencing of executable dataflow graphs
US15/587,987 2017-05-05
PCT/US2017/064493 WO2018106589A1 (en) 2016-12-07 2017-12-04 Differencing of executable dataflow graphs

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021113911A Division JP7535014B2 (ja) 2016-12-07 2021-07-09 実行可能データフローグラフの差分

Publications (3)

Publication Number Publication Date
JP2020504862A JP2020504862A (ja) 2020-02-13
JP2020504862A5 JP2020504862A5 (ja) 2021-01-21
JP6913168B2 true JP6913168B2 (ja) 2021-08-04

Family

ID=62240131

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019528545A Active JP6913168B2 (ja) 2016-12-07 2017-12-04 実行可能データフローグラフの差分
JP2021113911A Active JP7535014B2 (ja) 2016-12-07 2021-07-09 実行可能データフローグラフの差分

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021113911A Active JP7535014B2 (ja) 2016-12-07 2021-07-09 実行可能データフローグラフの差分

Country Status (8)

Country Link
US (2) US10802945B2 (ja)
EP (1) EP3552092B1 (ja)
JP (2) JP6913168B2 (ja)
CN (1) CN110050257B (ja)
AU (1) AU2017370567B2 (ja)
CA (1) CA3046071A1 (ja)
DE (1) DE112017006164T5 (ja)
WO (1) WO2018106589A1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
UA124734C2 (uk) 2016-06-14 2021-11-10 Рідженерон Фармасьютікалз, Інк. Антитіло проти с5 і його застосування
US11853529B2 (en) 2016-11-07 2023-12-26 Tableau Software, Inc. User interface to prepare and curate data for subsequent analysis
US10242079B2 (en) 2016-11-07 2019-03-26 Tableau Software, Inc. Optimizing execution of data transformation flows
US10885057B2 (en) 2016-11-07 2021-01-05 Tableau Software, Inc. Correlated incremental loading of multiple data sets for an interactive data prep application
US10802945B2 (en) 2016-12-07 2020-10-13 Ab Initio Technology Llc Differencing of executable dataflow graphs
US10802698B1 (en) * 2017-02-06 2020-10-13 Lucid Software, Inc. Diagrams for structured data
EP3404535A1 (en) * 2017-05-15 2018-11-21 Ecole Nationale de l'Aviation Civile Method and apparatus for processing code
US11010273B2 (en) * 2017-06-28 2021-05-18 Intel Corporation Software condition evaluation apparatus and methods
US10394691B1 (en) 2017-10-05 2019-08-27 Tableau Software, Inc. Resolution of data flow errors using the lineage of detected error conditions
EP3724226A1 (en) 2017-12-13 2020-10-21 Regeneron Pharmaceuticals, Inc. Anti-c5 antibody combinations and uses thereof
US10990364B2 (en) * 2018-06-06 2021-04-27 Ab Initio Technology Llc Updating executable graphs
US11250032B1 (en) 2018-10-22 2022-02-15 Tableau Software, Inc. Data preparation user interface with conditional remapping of data values
US10691304B1 (en) 2018-10-22 2020-06-23 Tableau Software, Inc. Data preparation user interface with conglomerate heterogeneous process flow elements
US11126411B2 (en) * 2018-12-13 2021-09-21 Sap Se Dashboard user interface for data driven applications
JP2020160854A (ja) * 2019-03-27 2020-10-01 株式会社日立製作所 コード管理システム、及びコード管理方法
CN110928765B (zh) * 2019-10-11 2021-08-03 京东数字科技控股有限公司 一种链路测试方法及装置
US11100097B1 (en) 2019-11-12 2021-08-24 Tableau Software, Inc. Visually defining multi-row table calculations in a data preparation application
EP3822770A1 (en) * 2019-11-15 2021-05-19 Nvidia Corporation Techniques for modifying an executable graph to perform a workload associated with a new task graph
US11487641B1 (en) * 2019-11-25 2022-11-01 EMC IP Holding Company LLC Micro services recommendation system for identifying code areas at risk
US11698847B2 (en) 2020-01-15 2023-07-11 Microsoft Technology Licensing, Llc Diffing a subject replayable execution trace against a comparison replayable execution trace
US11698848B2 (en) 2020-01-15 2023-07-11 Microsoft Technology Licensing, Llc Diffing a subject replayable execution trace against a plurality of comparison replayable execution traces
US11243869B2 (en) * 2020-01-15 2022-02-08 Microsoft Technologly Licensing, LLC Diffing of replayable execution traces
CN112015397B (zh) * 2020-09-07 2023-09-26 深圳职业技术学院 环路检测方法及系统
CN112187579B (zh) * 2020-09-28 2021-11-23 中国建设银行股份有限公司 数据传输异常辅助处理方法、装置、设备及可读存储介质
CN113761419A (zh) * 2021-01-22 2021-12-07 北京沃东天骏信息技术有限公司 拓扑信息的显示方法、装置、电子设备及存储介质
US11567998B2 (en) * 2021-03-25 2023-01-31 Databricks, Inc. Dataflow graph processing
CN113419739B (zh) * 2021-06-22 2022-12-06 网易(杭州)网络有限公司 节点图差异检测方法、装置、电子设备及存储介质
US12032994B1 (en) 2021-10-18 2024-07-09 Tableau Software, LLC Linking outputs for automatic execution of tasks
US11656744B1 (en) * 2022-03-14 2023-05-23 Wolters Kluwer Technology BV Interactive tool for efficiently developing task flows
US11989537B2 (en) * 2022-06-09 2024-05-21 Xilinx, Inc. Dataflow-based computer program visualization and refactoring

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
JPH10177477A (ja) 1996-10-18 1998-06-30 Nippon Steel Corp 業務設計支援システム
US5974254A (en) 1997-06-06 1999-10-26 National Instruments Corporation Method for detecting differences between graphical programs
US7139837B1 (en) * 2002-10-04 2006-11-21 Ipolicy Networks, Inc. Rule engine
US7594227B2 (en) * 2004-03-08 2009-09-22 Ab Initio Technology Llc Dependency graph parameter scoping
EP1817694A2 (en) * 2004-09-16 2007-08-15 Telenor ASA A method, system, and computer program product for searching for, navigating among, and ranking of documents in a personal web
US7703027B2 (en) * 2005-01-13 2010-04-20 National Instruments Corporation Merging graphical programs
US7716630B2 (en) 2005-06-27 2010-05-11 Ab Initio Technology Llc Managing parameters for graph-based computations
US9110706B2 (en) * 2009-02-09 2015-08-18 Microsoft Technology Licensing, Llc General purpose distributed data parallel computing using a high level language
US8205113B2 (en) * 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
CA2782414C (en) * 2009-12-14 2021-08-03 Ab Initio Technology Llc Specifying user interface elements
US9811233B2 (en) * 2013-02-12 2017-11-07 Ab Initio Technology Llc Building applications for configuring processes
JP6061273B2 (ja) * 2013-03-29 2017-01-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 表示装置、表示方法、及びプログラム
JP6176587B2 (ja) * 2013-03-29 2017-08-09 日本電気株式会社 移動車両位置検知システム、サーバ、車両端末、移動車両位置検知方法、プログラム、および記録媒体
US10338543B2 (en) * 2014-04-04 2019-07-02 Schneider Electric Software, Llc Integrated model predictive control and advanced process control
US10152406B2 (en) * 2015-08-25 2018-12-11 Fujistu Limited Software program repair
US10802945B2 (en) 2016-12-07 2020-10-13 Ab Initio Technology Llc Differencing of executable dataflow graphs

Also Published As

Publication number Publication date
US10802945B2 (en) 2020-10-13
AU2017370567B2 (en) 2022-03-10
JP7535014B2 (ja) 2024-08-15
WO2018106589A1 (en) 2018-06-14
US11455229B2 (en) 2022-09-27
DE112017006164T5 (de) 2019-08-29
US20210208999A1 (en) 2021-07-08
CA3046071A1 (en) 2018-06-14
JP2021180013A (ja) 2021-11-18
US20180157579A1 (en) 2018-06-07
EP3552092A1 (en) 2019-10-16
AU2017370567A1 (en) 2019-06-06
EP3552092B1 (en) 2022-08-17
JP2020504862A (ja) 2020-02-13
CN110050257B (zh) 2023-06-30
CN110050257A (zh) 2019-07-23

Similar Documents

Publication Publication Date Title
JP6913168B2 (ja) 実行可能データフローグラフの差分
US20200319932A1 (en) Workload automation and data lineage analysis
US8196047B2 (en) Flexible visualization for services
US7418453B2 (en) Updating a data warehouse schema based on changes in an observation model
JP2017530440A (ja) データ系統の要約
US11442837B2 (en) Monitoring long running workflows for robotic process automation
KR102025210B1 (ko) 큐 모니터링 및 시각화
US11531539B2 (en) Automated compliance and testing framework for software development
US10901699B2 (en) Data analysis process assistance device and data analysis process assistance method
US10228913B2 (en) Functional rule and component storage
US20130305223A1 (en) Dashboard for Architectural Governance
US9959288B2 (en) Declarative cluster management
Herden et al. Declarative application deployment and change management
Silva et al. μ Viz: Visualization of Microservices
Fernandes Development of REST APIs for SOAP integration

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201203

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201203

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201203

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210615

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210709

R150 Certificate of patent or registration of utility model

Ref document number: 6913168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250