JP2020522790A - 異種にプログラムされたデータ処理システムの自動依存性アナライザ - Google Patents
異種にプログラムされたデータ処理システムの自動依存性アナライザ Download PDFInfo
- Publication number
- JP2020522790A JP2020522790A JP2019564843A JP2019564843A JP2020522790A JP 2020522790 A JP2020522790 A JP 2020522790A JP 2019564843 A JP2019564843 A JP 2019564843A JP 2019564843 A JP2019564843 A JP 2019564843A JP 2020522790 A JP2020522790 A JP 2020522790A
- Authority
- JP
- Japan
- Prior art keywords
- dependency
- data
- data structure
- programs
- program
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 201
- 238000000034 method Methods 0.000 claims description 130
- 230000008569 process Effects 0.000 claims description 52
- 238000003860 storage Methods 0.000 claims description 46
- 230000009471 action Effects 0.000 claims description 36
- 238000004590 computer program Methods 0.000 claims description 32
- 230000001419 dependent effect Effects 0.000 claims description 32
- 238000004458 analytical method Methods 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 54
- 230000006399 behavior Effects 0.000 description 20
- 238000000605 extraction Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 238000013500 data storage Methods 0.000 description 13
- 230000009466 transformation Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000000844 transformation Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000001902 propagating effect Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
幾つかの実施形態によれば、関数を表すコードの一部は、以下のように現れてもよい。
第2の実施例として、動作に影響する以下の依存性が、ソースコード内に現れてもよい。
リターンされる変数の値は、その関数の処理で使用される変数を含む、関数内の処理に依存し得るため、変数の値をリターンする関数はまた、依存性を作成する場合がある。
関数
は、以下の依存性構成要素によって表現され得る。
定数割り当てを含むコード内の依存性は、以下などである。
は、以下のように表現し得る。
関数へのコールを含むコード内の依存性は、以下のように定義される。
は、以下の依存性構成要素によって表わされ得る。
関数へのコールを含むコード内の依存性は、以下のように定義される。
は、以下の依存性構成要素によって表わされ得る。
要素的なデータ要素以外のデータエンティティに対する動作もまた、本明細書で説明するシステムによって取り扱うことができる。幾つかの実施形態では、データエンティティは階層的であってもよい。動作は、階層の任意のレベルにおいてデータエンティティに対して実行できる。従って、依存性構成要素は、階層の任意の適用可能なレベルにおけるデータエンティティの識別に対応できる。そのようなデータエンティティの1つは、例えば、データセットの例であるグローバルテーブルである。データセットは、その中に他のデータエンティティを含んでもよい。例えば、テーブルには行と列が含まれ、これらがデータエンティティと見なされ得る。
は、以下の依存性構成要素によって表現され得る。
関数のコールによって作成される依存性は、以下のように定義される。
は、以下の依存性構成要素によって表現され得る。
この実施例では、条件付き制御フローを作成するプログラミングステートメントが依存性分析のためにどのように表され得るかを示す。この実施例では、条件付きステートメントは、「if then…else」フォーマットである。この実施例は、以下のような条件付きステートメントを含む関数に関連する。
制御フロー依存性はまた、「while do」ループを実装するステートメントによって作成されてもよい。そのようなループでは、言及された式が真と評価されている間に、コードブロックが実行される。このシナリオでは、そのブロックと、その式の値に影響を与えるデータエンティティとの間に制御フロー依存性がある。そのようなステートメントを用いる関数の例は、以下のとおりである。
この実施例は、たとえ関数が他の関数をコールする場合でも、限られた数の構成要素によって依存性を表わし得ることを示している。この実施例では、3つの関数が定義され、第2の関数「g()」が第1の関数「h()」をコールしている。第3の関数「f()」は、次いで、以下のように第2の関数をコールする。
マルチレベルコールツリーと同様に、抽出された依存性情報でプログラムの再帰を表すために、追加の構成要素は必要ない。むしろ、再帰がより下位の解析ツリーの一部として保存され得ることを示す情報、及びバックエンド処理は、その再帰から生じ得る任意の追加の依存性を計算することができる。
は、以下の依存性構成要素によって、抽出された依存性情報で表現できる。
Claims (45)
- フィールドを含む複数のレコードにアクセスする複数のコンピュータプログラミング言語のうちのいずれかでプログラムを実行するように構成されたデータ処理システムで使用するための依存性アナライザであって、前記複数のコンピュータプログラミング言語におけるプログラムの依存性分析のために構成されており、前記依存性分析が、前記複数のコンピュータプログラミング言語におけるプログラムにわたってフィールドレベルリネージに関連する依存性情報を計算することを含み、前記依存性アナライザが、
前記データ処理システムを制御する複数のプログラムを処理するように構成されたフロントエンドであって、前記複数のプログラムが、前記複数のプログラミング言語のうちの複数のプログラミング言語で記述されており、前記フロントエンドが、各フロントエンドモジュールが、前記複数のプログラミング言語のうちのプログラミング言語で記述された前記複数のプログラムのコンピュータプログラムを入力として受信し、且つ、前記プログラム内で作成された前記複数のレコードのフィールドへの依存性を表す、言語に依存しないデータ構造を出力するように構成されている、複数のフロントエンドモジュールを備え、前記言語に依存しないデータ構造が、1つ以上の依存性構成要素から構成され、各依存性構成要素が、少なくとも1つのフィールドの指示と、前記少なくとも1つのフィールドに関連する依存性とを含む、フロントエンドと、
前記複数のフロントエンドモジュールから言語に依存しないデータ構造を受信し、且つ、前記複数のプログラム内で作成された依存性を表す前記データ処理システムの依存性情報を出力するように構成されたバックエンドであって、前記依存性情報が前記複数のプログラムにわたるフィールドレベルリネージを含むように、前記依存性情報が、前記複数のプログラムのうちの複数のプログラムに導入されたフィールドレベル依存性を含む、バックエンドと、備える、依存性アナライザ。 - 前記フロントエンドモジュールは、入力プログラムを解析することにより解析ツリーを生成し、且つ、依存性構成要素のセットからの構成要素を用いて依存性を作成する前記解析ツリー内の動作を表すことで前記解析ツリーを下位にすることによって、言語に依存しないデータ構造を生成するように構成された、請求項1に記載の依存性アナライザ。
- 前記依存性情報は、データフロー依存性を表す、請求項2に記載の依存性アナライザ。
- 前記依存性情報は、制御フロー依存性を表す、請求項2に記載の依存性アナライザ。
- 前記依存性情報をメタデータリポジトリにロードするように構成された第1のツールと、
前記データ処理システムによって使用されるフィールドの指示を入力として受信し、前記メタデータリポジトリにアクセスし、前記指示されたフィールドに影響を与える依存性を導入する前記複数のプログラムのうちのプログラムの指示を出力する、ように構成された第2のツールと、を更に備える、請求項1に記載の依存性アナライザ。 - 前記データ処理システムは、複数のデータソースを更に含み、
前記複数のプログラムは、前記複数のデータソース内のデータに変換を実行するように構成されており、
前記複数のデータソースは異種である、請求項1に記載の依存性アナライザ。 - 前記複数のデータソースは、ORACLEデータベース若しくはSAPデータベース、又はHADOOP分散ファイルシステムに保存されているデータセット、のうちの少なくとも1つであるデータソースを備える、請求項6に記載の依存性アナライザ。
- データ処理システムで使用するための依存性アナライザであって、
少なくとも1つのコンピュータハードウェアプロセッサと、
プロセッサ実行可能命令を保存する少なくとも1つの非一時的コンピュータ可読記憶媒体であって、前記少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、前記少なくとも1つのコンピュータハードウェアプロセッサに、
前記データ処理システムが実行するように構成された複数のプログラムのそれぞれに対して、前記プログラムの解析に基づいて、前記プログラム内の動作を反映する第1のデータ構造を構築させ、
複数の前記第1のデータ構造のそれぞれに対して、
依存性に影響を与えない動作が選択されないように、1つ以上のデータ要素への依存性に影響を与える前記第1のデータ構造に反映される動作を選択させ、
選択された各動作に対して、依存性構成要素のセットからの依存性構成要素を記録することによって、前記選択された動作の指示を第2のデータ構造に記録させ、前記複数のプログラムのそれぞれに対する前記依存性構成要素のセットが、前記プログラムが記述されている言語に依存しておらず、
前記複数の第2のデータ構造を処理させ、前記処理が、データ要素に対する制御フロー又はデータフロー依存性を識別することを含み、前記依存性が、前記複数のプログラムのうちのいずれかの実行中に生じ得る依存性であり、
前記識別された依存性を依存性データ構造に記録させ、前記依存性データ構造が、前記データ要素間の依存性を示すように構成された前記複数のプログラム内のデータ要素を示すデータを含む、依存性アナライザ。 - 前記依存性は、制御フロー依存性とデータフロー依存性とを含む、請求項8に記載の依存性アナライザ。
- 前記依存性は、データフロー依存性を含む、請求項8に記載の依存性アナライザ。
- 前記データ処理システムは、複数の、言語に依存するパーサを備え、
前記第1のデータ構造を構築することが、前記複数のプログラムのそれぞれに対して、前記プログラムが記述されている言語に基づいて言語に依存するパーサを選択することを含む、請求項8に記載の依存性アナライザ。 - 前記複数のプログラムは、複数のソース言語で記述されている、請求項11に記載の依存性アナライザ。
- 前記ソース言語にはSQLが含まれる、請求項12に記載の依存性アナライザ。
- 前記ソース言語には、データフローグラフを表すグラフィカルプログラミング言語が含まれる、請求項12に記載の依存性アナライザ。
- 前記ソース言語には、SQL、及びデータフローグラフを表すグラフィカルプログラミング言語が含まれる、請求項12に記載の依存性アナライザ。
- 前記データ処理システムは、制御フロー又はデータフロー依存性に影響を与える動作の指示を、前記第1のデータ構造から抽出するための複数の、言語に依存するツールを備え、
前記第1のデータ構造から抽出することが、前記複数の第1のデータ構造のそれぞれに対して、前記第1のデータ構造を構築するために解析されたプログラムが記述されている言語に基づいて、制御フロー又はデータフロー依存性に影響を与える動作の指示を抽出するために言語に依存するツールを選択することを含む、請求項11に記載の依存性アナライザ。 - 前記複数の構築された第1のデータ構造のそれぞれに対して、選択された動作の指示を前記第2のデータ構造に記録することは、構成要素のセットからの構成要素を記録することを含む、請求項8に記載の依存性アナライザ。
- 前記構成要素のセットは、割り当て、プロシージャ定義、プロシージャリターン、プロシージャコールサイト、「if…else」フォーマットの条件付き制御フロー、及び「while…do」フォーマットの条件付き制御フローを表す構成要素のうちの2つ以上で構成される、請求項17に記載の依存性アナライザ。
- 前記構成要素のセットは、割り当て、プロシージャ定義、プロシージャリターン、プロシージャコールサイト、「if…else」フォーマットの条件付き制御フロー、及び「while…do」フォーマットの条件付き制御フローを表す構成要素で本質的に構成される、請求項17に記載の依存性アナライザ。
- 前記依存性データ構造にアクセスし、ユーザインタフェースを介して、データ要素に依存するデータエンティティ又はコードブロックに関する情報を提示する、少なくとも1つのツールを更に備える、請求項9に記載の依存性アナライザ。
- 前記データ処理システムは、複数のデータソースを更に含み、
前記複数のプログラムは、前記複数のデータソース内のデータに変換を実行するように構成されており、
前記複数のデータソースは異種である、請求項9に記載の依存性アナライザ。 - 前記複数のデータソースは、ORACLEデータベース若しくはSAPデータベース、又はHADOOP分散ファイルシステムに保存されているデータセット、のうちの少なくとも1つであるデータソースを備える、請求項21に記載の依存性アナライザ。
- データ処理システムで使用するように構成された依存性アナライザの動作方法であって、
前記データ処理システム内で実行し、且つ、プログラミング言語でのデータ処理動作を指定するように構成された複数のプログラムを実行する少なくとも1つのコンピュータハードウェアプロセッサを使用することであって、前記複数のプログラムが複数のプログラミング言語を使用する、ことと、
前記プログラムを解析することによって、前記複数のプログラムのそれぞれの第1のデータ構造を構築することと、
複数の前記第1のデータ構造のそれぞれに対して、
1つ以上のデータ要素への依存性に影響を与える前記第1のデータ構造に反映される動作を選択することと、
選択された各動作に対して、前記選択された動作の指示を第2のデータ構造に記録することであって、前記指示が、全ての前記第2データ構造に共通する依存性構成要素のセットを使用して前記第2データ構造に記録される、ことと、
前記第2のデータ構造を処理することであって、前記処理が、前記複数のプログラムのうちのいずれかの実行中に生じ得るデータ要素に対する制御フロー又はデータフロー依存性を識別することを含む、ことと、
前記特定された依存性を依存性データ構造に記録することと、を含む、方法。 - 前記依存性は、データフローの依存性である、請求項23に記載の方法。
- 前記依存性は、制御フロー依存性とデータフロー依存性とを含む、請求項23に記載の方法。
- 前記複数のプログラムのそれぞれの第1のデータ構造を構築することは、前記複数のプログラムが記述されている言語に基づいて前記複数のプログラムのパーサを選択することを含む、請求項23に記載の方法。
- 前記複数のプログラムは、SQL、及びデータフローグラフを表すグラフィカルプログラミング言語を含む複数のソース言語で記述されており、
パーサを選択することは、前記複数のソース言語のそれぞれに対してパーサを選択することを含む、請求項23に記載の方法。 - 前記第2のデータ構造に記録することは、前記複数のソース言語のうちのそれぞれで記述されたプログラムの前記依存性構成要素のセットから第2のデータ構成要素を構築することを含む、請求項27に記載の方法。
- 前記第1のデータ構造は言語に依存し、
前記第2のデータ構造は言語に依存しない、請求項23に記載の方法。 - 前記選択された動作の指示を前記第2のデータ構造に記録することは、制御フロー又はデータフロー依存性に影響を与えない、前記第1データ構造内の動作に関する情報が前記第2データ構造から省略されるように、制御フロー又はデータフロー依存性に影響を与える動作の指示を前記第1のデータ構造から抽出することを含む、請求項23に記載の方法。
- 前記データ処理システムは、制御フロー又はデータフロー依存性に影響を与える動作の指示を前記第1のデータ構造から抽出するための複数の、言語に依存するツールを備え、
制御フロー又はデータフロー依存性に影響を与える動作の指示を前記第1のデータ構造から抽出することは、前記複数の第1のデータ構造のそれぞれに対して、前記第1のデータ構造を構築するために解析されたプログラムが記述されている言語に基づいて、制御フロー又はデータフロー依存性に影響を与える動作の指示を抽出するために言語に依存するツールを選択することを含む、請求項30に記載の方法。 - 前記依存性構成要素のセットは、割り当て、プロシージャ定義、プロシージャリターン、プロシージャコールサイト、「if…else」フォーマットの条件付き制御フロー、及び「while…do」フォーマットの条件付き制御フローを表す構成要素のうちの2つ以上で構成される、請求項23に記載の方法。
- データ処理システムと共に使用するための依存性アナライザの動作方法であって、
前記データ処理システム内でプログラミング言語でのデータ処理動作を指定する複数のプログラムを実行する少なくとも1つのコンピュータハードウェアプロセッサを使用することであって、前記複数のプログラムが複数のプログラミング言語を使用する、ことと、
前記プログラムを解析することによって、前記複数のプログラムのそれぞれの第1のデータ構造を構築することと、
複数の前記第1のデータ構造のそれぞれに対して、1つ以上のデータ要素への制御フロー依存性に影響を与える前記第1のデータ構造に反映される動作を選択することと、
選択された各動作に対して、前記選択された動作の指示を第2のデータ構造に記録することであって、前記指示が、全ての前記第2データ構造に共通する依存性構成要素のセットを使用して前記第2データ構造に記録される、ことと、
前記第2のデータ構造を処理することであって、前記処理が、前記複数のプログラムのうちのいずれかにおける処理の結果としてデータ要素への依存性を識別することを含む、ことと、
前記特定された依存性を依存性データ構造に記録することと、を含む、方法。 - 前記依存性構成要素のセットは、「if…else」フォーマットの条件付き制御フローで構成される、請求項33に記載の方法。
- 前記依存性構成要素のセットは、「while…do」フォーマットの条件付き制御フローで構成される、請求項33に記載の方法。
- 前記複数の前記構築された第1のデータ構造のそれぞれに対して、データフロー依存性を生成する前記第1のデータ構造内の動作の指示を前記第2のデータ構造に選択的に記録することであって、前記指示が、全ての前記第2のデータ構造に共通する依存性構成要素のセットを使用して前記第2のデータ構造に記録される、ことを更に含む、請求項33に記載の方法。
- プロセッサ実行可能命令を保存する少なくとも1つの非一時的コンピュータ可読記憶媒体であって、少なくとも1つのコンピュータハードウェアプロセッサによって実行されると、前記少なくとも1つのコンピュータハードウェアプロセッサに、それぞれのプログラミング言語でのデータ処理動作を指定する、複数のプログラミング言語を使用する複数のプログラムに対して、方法を実行させ、前記方法が、
前記プログラムを解析することによって、前記複数のプログラムのそれぞれの第1のデータ構造を構築することと、
前記構築された複数の第1のデータ構造のそれぞれに対して、
1つ以上のデータ要素に対する制御フロー又はデータフロー依存性に影響を与える、前記第1のデータ構造に反映される動作を前記第1のデータ構造から抽出することと、
前記抽出された動作の指示を第2のデータ構造に記録することであって、前記抽出された動作の前記指示が、全ての前記第2のデータ構造に共通する依存性構成要素のセットを使用して前記第2のデータ構造に記録される、ことと、
前記第2のデータ構造を処理することであって、前記処理が、前記複数のプログラムのうちのいずれかにおける処理の結果としてデータ要素への依存性を識別することを含む、ことと、
前記特定された依存性を依存性データ構造に記録することと、を含む、少なくとも1つの非一時的コンピュータ可読記憶媒体。 - 前記複数のプログラムのそれぞれの第1のデータ構造を構築することは、前記複数のプログラムが記述されている言語に基づいて前記複数のプログラムのパーサを選択することを含む、請求項37に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
- 前記複数のプログラムは、SQL、及びデータフローグラフを表すグラフィカルプログラミング言語を含む複数のソース言語で記述されており、
パーサを選択することは、前記複数のソース言語のそれぞれに対してパーサを選択することを含む、請求項38に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。 - 前記複数の前記構築された第1のデータ構造のそれぞれにおいて動作の指示を抽出することは、前記複数のソース言語のそれぞれで記述されたプログラムの前記依存性構成要素のセットから第2のデータ構造を構築することを含む、請求項39に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
- 前記第1のデータ構造は言語に依存し、
前記第2のデータ構造は言語に依存しない、請求項37に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。 - 前記第1のデータ構造において動作の指示を抽出することは、依存性に影響を与えない前記第1のデータ構造内の動作に関する情報が前記第2のデータ構造から省略されるように、依存性に影響を与える前記第1のデータ構造内の動作の指示を前記第2のデータ構造に選択的に記録することを含む、請求項37に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
- 前記データ処理システムは、前記第1のデータ構造を下位にするための複数の、言語に依存するツールを備え、
前記第1のデータ構造において動作の指示を抽出することは、前記複数の第1のデータ構造のそれぞれに対して、前記第1のデータ構造を構築するために解析されたプログラムが記述されている言語に基づいて、前記第1のデータ構造における動作の指示を抽出するための言語に依存するツールを選択することを含む、請求項37に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。 - 前記依存性構成要素のセットは、割り当て、プロシージャ定義、プロシージャリターン、プロシージャコールサイト、「if…else」フォーマットの条件付き制御フロー、及び「while…do」フォーマットの条件付き制御フローを表す構成要素のうちの2つ以上で構成される、請求項37に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
- データ処理システムで使用するための依存性アナライザであって、
複数のプログラムのそれぞれを表す第1のデータ構造を構築するための手段であって、前記第1のデータ構造が前記複数のプログラムのそれぞれのプログラムにおける動作を反映する、手段と、
依存性に影響を及ぼさない前記複数の前記構築された第1のデータ構造のそれぞれにおける動作に関する情報が前記第2のデータ構造から省略されるように、制御フロー又はデータフロー依存性に影響を与える前記第1のデータ構造における動作の指示を第2のデータ構造に記録するための手段と、
前記第2のデータ構造を処理して、前記複数のプログラムのうちのいずれかにおける動作の実行の結果としてデータ要素に対する制御フロー又はデータフロー依存性を識別するための手段と、
前記識別された依存性を依存性データ構造に記録するための手段と、を備える、依存性アナライザ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023170105A JP2023182708A (ja) | 2017-05-22 | 2023-09-29 | 異種にプログラムされたデータ処理システムの自動依存性アナライザ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/601,911 US10379825B2 (en) | 2017-05-22 | 2017-05-22 | Automated dependency analyzer for heterogeneously programmed data processing system |
US15/601,911 | 2017-05-22 | ||
PCT/US2018/033882 WO2018217745A1 (en) | 2017-05-22 | 2018-05-22 | Automated dependency analyzer for heterogeneously programmed data processing system |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023170105A Division JP2023182708A (ja) | 2017-05-22 | 2023-09-29 | 異種にプログラムされたデータ処理システムの自動依存性アナライザ |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020522790A true JP2020522790A (ja) | 2020-07-30 |
JP2020522790A5 JP2020522790A5 (ja) | 2021-07-26 |
JP7360328B2 JP7360328B2 (ja) | 2023-10-12 |
Family
ID=63592791
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019564843A Active JP7360328B2 (ja) | 2017-05-22 | 2018-05-22 | 異種にプログラムされたデータ処理システムの自動依存性アナライザ |
JP2023170105A Pending JP2023182708A (ja) | 2017-05-22 | 2023-09-29 | 異種にプログラムされたデータ処理システムの自動依存性アナライザ |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023170105A Pending JP2023182708A (ja) | 2017-05-22 | 2023-09-29 | 異種にプログラムされたデータ処理システムの自動依存性アナライザ |
Country Status (7)
Country | Link |
---|---|
US (2) | US10379825B2 (ja) |
EP (2) | EP4202644A1 (ja) |
JP (2) | JP7360328B2 (ja) |
CN (1) | CN110998516B (ja) |
AU (1) | AU2018272840B2 (ja) |
CA (1) | CA3064561A1 (ja) |
WO (1) | WO2018217745A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599340B2 (en) * | 2014-12-23 | 2023-03-07 | Micro Focus Llc | Load testing |
US10642896B2 (en) * | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US10650046B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
USD898059S1 (en) | 2017-02-06 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
US10379825B2 (en) | 2017-05-22 | 2019-08-13 | Ab Initio Technology Llc | Automated dependency analyzer for heterogeneously programmed data processing system |
USD898060S1 (en) | 2017-06-05 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
US10990364B2 (en) * | 2018-06-06 | 2021-04-27 | Ab Initio Technology Llc | Updating executable graphs |
US10877870B2 (en) * | 2018-06-11 | 2020-12-29 | Tata Consultancy Services Limited | Method and system for verifying properties of source code |
US10733075B2 (en) * | 2018-08-22 | 2020-08-04 | Fujitsu Limited | Data-driven synthesis of fix patterns |
WO2020057576A1 (en) * | 2018-09-20 | 2020-03-26 | Huawei Technologies Co., Ltd. | Systems and methods for graph-based query analysis |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US11029927B2 (en) | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US11294894B2 (en) | 2019-08-30 | 2022-04-05 | Oracle International Corporation | Dynamic resolution of dependencies for database guest languages |
US20210149734A1 (en) * | 2019-11-15 | 2021-05-20 | Nvidia Corporation | Techniques for modifying an executable graph to perform a workload associated with a new task graph |
LU101480B1 (en) | 2019-11-18 | 2021-05-18 | Luxembourg Inst Science & Tech List | Data preprocessing for a supervised machine learning process |
US11385889B2 (en) | 2019-12-04 | 2022-07-12 | Oracle International Corporation | Inferring intra package and module dependencies |
US11440190B1 (en) * | 2020-02-26 | 2022-09-13 | Trend Micro Incorporated | Detecting unsecure data flow in automation task programs |
US11360751B2 (en) * | 2020-03-19 | 2022-06-14 | Codelogic, Inc. | Systems and methods for dependency analysis |
US11366648B2 (en) * | 2020-05-28 | 2022-06-21 | Red Hat, Inc. | Compiling monoglot function compositions into a single entity |
CN112162776B (zh) * | 2020-09-04 | 2023-07-14 | 维沃移动通信有限公司 | 依赖关系获取方法及装置 |
CN114741993B (zh) * | 2022-04-18 | 2023-06-16 | 山东浪潮科学研究院有限公司 | 一种基于脚本的数据流图生成方法及装置 |
CN114611712B (zh) * | 2022-05-10 | 2022-08-26 | 富算科技(上海)有限公司 | 基于异构联邦学习的预测方法、模型生成方法及装置 |
CN114968364B (zh) * | 2022-07-12 | 2022-11-08 | 飞腾信息技术有限公司 | 一种条件语句的处理方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239787A (ja) * | 1994-03-01 | 1995-09-12 | Nippon Steel Corp | 構文解析木からの情報抽出装置 |
JP2005018114A (ja) * | 2003-06-23 | 2005-01-20 | Internatl Business Mach Corp <Ibm> | プログラム保守支援装置、プログラム保守支援方法、およびプログラム |
US20110302563A1 (en) * | 2010-06-08 | 2011-12-08 | Avaya Inc. | Program structure recovery using multiple languages |
JP2013156786A (ja) * | 2012-01-30 | 2013-08-15 | Hitachi Automotive Systems Ltd | ソフトウェアの構造可視化プログラムおよびシステム |
JP2017502385A (ja) * | 2013-12-06 | 2017-01-19 | アビニシオ テクノロジー エルエルシー | ソースコード変換 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4914585A (en) | 1988-05-23 | 1990-04-03 | Hewlett-Packard Company | Modular complier with a class independent parser and a plurality of class dependent parsers |
IL100989A (en) * | 1991-02-27 | 1995-10-31 | Digital Equipment Corp | Analysis of inductive expressions in multilingual mehadoptimization |
US5826256A (en) * | 1991-10-22 | 1998-10-20 | Lucent Technologies Inc. | Apparatus and methods for source code discovery |
CA2143145C (en) | 1994-04-18 | 1999-12-28 | Premkumar Thomas Devanbu | Determining dynamic properties of programs |
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
US6745384B1 (en) * | 1998-05-29 | 2004-06-01 | Microsoft Corporation | Anticipatory optimization with composite folding |
US6988183B1 (en) * | 1998-06-26 | 2006-01-17 | Derek Chi-Lan Wong | Methods for increasing instruction-level parallelism in microprocessors and digital system |
US7974875B1 (en) | 2000-03-21 | 2011-07-05 | Aol Inc. | System and method for using voice over a telephone to access, process, and carry out transactions over the internet |
US6681383B1 (en) * | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
JP2002099561A (ja) | 2000-09-21 | 2002-04-05 | Toshiba Corp | データ変換方法およびデータ変換システム並びに記憶媒体 |
US7174536B1 (en) * | 2001-02-12 | 2007-02-06 | Iowa State University Research Foundation, Inc. | Integrated interactive software visualization environment |
AU2003214975A1 (en) | 2002-02-01 | 2003-09-02 | John Fairweather | System and method for navigating data |
US20040010752A1 (en) | 2002-07-09 | 2004-01-15 | Lucent Technologies Inc. | System and method for filtering XML documents with XPath expressions |
CN1809812A (zh) | 2003-04-18 | 2006-07-26 | 盎司实验室股份有限公司 | 用于源代码检测源代码中弱点的方法和装置 |
US7707566B2 (en) * | 2003-06-26 | 2010-04-27 | Microsoft Corporation | Software development infrastructure |
US7788652B2 (en) * | 2003-06-27 | 2010-08-31 | Microsoft Corporation | Representing type information in a compiler and programming tools framework |
US7757212B2 (en) * | 2004-05-21 | 2010-07-13 | Bea Systems, Inc. | System and method for managing cross project dependencies at development time |
US7734619B2 (en) | 2005-05-27 | 2010-06-08 | International Business Machines Corporation | Method of presenting lineage diagrams representing query plans |
US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US7493570B2 (en) | 2005-09-12 | 2009-02-17 | International Business Machines Corporation | User interface options of a data lineage tool |
WO2007084780A2 (en) | 2006-01-20 | 2007-07-26 | Aptana, Inc. | Type inference system and method |
WO2008089362A1 (en) | 2007-01-17 | 2008-07-24 | Weidner David P | Point of reference directions |
US8181167B2 (en) | 2008-01-09 | 2012-05-15 | Kan Zhao | Method and system for presenting and analyzing software source code through intermediate representation |
CN101971165B (zh) | 2008-02-26 | 2013-07-17 | 起元技术有限责任公司 | 数据关系的图形表示 |
US8347272B2 (en) | 2008-07-23 | 2013-01-01 | International Business Machines Corporation | Call graph dependency extraction by static source code analysis |
US8458654B2 (en) | 2008-10-22 | 2013-06-04 | International Business Machines Corporation | Identifying impact of database changes on an application |
WO2010065623A1 (en) | 2008-12-02 | 2010-06-10 | Ab Initio Software Llc | Visualizing relationships between data elements and graphical representations of data element attributes |
US8819010B2 (en) | 2010-06-28 | 2014-08-26 | International Business Machines Corporation | Efficient representation of data lineage information |
DE112011103190T5 (de) * | 2010-09-23 | 2013-06-27 | Apple Inc. | Systeme und Verfahren zur compiler-basierten Vektorisierung von NON-LEAF Code |
WO2012092576A1 (en) | 2010-12-30 | 2012-07-05 | Coral Networks, Inc. | System and method for creating, deploying, integrating, and distributing nodes in a grid of distributed graph databases |
WO2012094496A1 (en) | 2011-01-07 | 2012-07-12 | Ab Initio Technology Llc | Flow analysis instrumentation |
US8782614B2 (en) | 2011-04-08 | 2014-07-15 | Ca, Inc. | Visualization of JVM and cross-JVM call stacks |
US9202185B2 (en) | 2011-04-08 | 2015-12-01 | Ca, Inc. | Transaction model with structural and behavioral description of complex transactions |
US8874525B2 (en) | 2011-04-19 | 2014-10-28 | Autodesk, Inc. | Hierarchical display and navigation of document revision histories |
US9430583B1 (en) | 2011-06-10 | 2016-08-30 | Salesforce.Com, Inc. | Extracting a portion of a document, such as a web page |
US8849824B2 (en) | 2011-10-07 | 2014-09-30 | Kabushiki Kaisha Square Enix | Database visualization system |
US20130283250A1 (en) | 2012-04-23 | 2013-10-24 | International Business Machines Corporation | Thread Specific Compiler Generated Customization of Runtime Support for Application Programming Interfaces |
US9753926B2 (en) | 2012-04-30 | 2017-09-05 | Salesforce.Com, Inc. | Extracting a portion of a document, such as a web page |
US9298453B2 (en) | 2012-07-03 | 2016-03-29 | Microsoft Technology Licensing, Llc | Source code analytics platform using program analysis and information retrieval |
US10089335B2 (en) | 2012-07-10 | 2018-10-02 | Microsoft Technology Licensing, Llc | Data lineage across multiple marketplaces |
US9182957B2 (en) | 2012-07-10 | 2015-11-10 | Loring Craymer | Method and system for automated improvement of parallelism in program compilation |
US9063998B2 (en) | 2012-10-18 | 2015-06-23 | Oracle International Corporation | Associated information propagation system |
US20150012477A1 (en) | 2013-07-02 | 2015-01-08 | Bank Of America Corporation | Data lineage notification tools |
US9256656B2 (en) | 2013-08-20 | 2016-02-09 | International Business Machines Corporation | Determining reliability of data reports |
EP3047371A4 (en) | 2013-09-16 | 2017-05-17 | Metanautix Inc. | Data flow exploration |
US9710243B2 (en) | 2013-11-07 | 2017-07-18 | Eagle Legacy Modernization, LLC | Parser that uses a reflection technique to build a program semantic tree |
SG11201700384WA (en) | 2014-07-18 | 2017-02-27 | Ab Initio Technology Llc | Managing parameter sets |
CN106716342B (zh) | 2014-07-24 | 2020-02-28 | 起元科技有限公司 | 管理数据沿袭信息的方法和系统及存储介质 |
US10025878B1 (en) | 2014-11-11 | 2018-07-17 | Google Llc | Data lineage analysis |
AU2016219421B2 (en) | 2015-02-11 | 2019-04-18 | Ab Initio Technology Llc | Filtering data lineage diagrams |
KR102054568B1 (ko) | 2015-02-11 | 2020-01-22 | 아브 이니티오 테크놀로지 엘엘시 | 필터링 데이터 계통 다이어그램 |
US9712554B2 (en) | 2015-04-09 | 2017-07-18 | Accenture Global Services Limited | Event correlation across heterogeneous operations |
US10382566B2 (en) | 2015-04-16 | 2019-08-13 | Entit Software Llc | Business service discovery |
US10120923B2 (en) | 2015-11-30 | 2018-11-06 | Bank Of America Corporation | Data discovery and analysis tool |
US10379825B2 (en) | 2017-05-22 | 2019-08-13 | Ab Initio Technology Llc | Automated dependency analyzer for heterogeneously programmed data processing system |
-
2017
- 2017-05-22 US US15/601,911 patent/US10379825B2/en active Active
-
2018
- 2018-05-22 AU AU2018272840A patent/AU2018272840B2/en active Active
- 2018-05-22 EP EP23156996.3A patent/EP4202644A1/en active Pending
- 2018-05-22 EP EP18770112.3A patent/EP3631618B1/en active Active
- 2018-05-22 CA CA3064561A patent/CA3064561A1/en active Pending
- 2018-05-22 JP JP2019564843A patent/JP7360328B2/ja active Active
- 2018-05-22 WO PCT/US2018/033882 patent/WO2018217745A1/en active Application Filing
- 2018-05-22 CN CN201880049296.2A patent/CN110998516B/zh active Active
-
2019
- 2019-07-15 US US16/512,160 patent/US10817271B2/en active Active
-
2023
- 2023-09-29 JP JP2023170105A patent/JP2023182708A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239787A (ja) * | 1994-03-01 | 1995-09-12 | Nippon Steel Corp | 構文解析木からの情報抽出装置 |
JP2005018114A (ja) * | 2003-06-23 | 2005-01-20 | Internatl Business Mach Corp <Ibm> | プログラム保守支援装置、プログラム保守支援方法、およびプログラム |
US20110302563A1 (en) * | 2010-06-08 | 2011-12-08 | Avaya Inc. | Program structure recovery using multiple languages |
JP2013156786A (ja) * | 2012-01-30 | 2013-08-15 | Hitachi Automotive Systems Ltd | ソフトウェアの構造可視化プログラムおよびシステム |
JP2017502385A (ja) * | 2013-12-06 | 2017-01-19 | アビニシオ テクノロジー エルエルシー | ソースコード変換 |
Also Published As
Publication number | Publication date |
---|---|
JP2023182708A (ja) | 2023-12-26 |
US10379825B2 (en) | 2019-08-13 |
US20190339952A1 (en) | 2019-11-07 |
AU2018272840A1 (en) | 2019-12-12 |
AU2018272840B2 (en) | 2023-02-16 |
EP4202644A1 (en) | 2023-06-28 |
CN110998516B (zh) | 2024-04-16 |
US20180336020A1 (en) | 2018-11-22 |
CN110998516A (zh) | 2020-04-10 |
CA3064561A1 (en) | 2018-11-29 |
WO2018217745A1 (en) | 2018-11-29 |
EP3631618B1 (en) | 2023-03-29 |
JP7360328B2 (ja) | 2023-10-12 |
EP3631618A1 (en) | 2020-04-08 |
US10817271B2 (en) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7360328B2 (ja) | 異種にプログラムされたデータ処理システムの自動依存性アナライザ | |
JP7090778B2 (ja) | 影響分析 | |
US11036614B1 (en) | Data control-oriented smart contract static analysis method and system | |
US10437573B2 (en) | General purpose distributed data parallel computing using a high level language | |
US10162612B2 (en) | Method and apparatus for inventory analysis | |
KR102432104B1 (ko) | 데이터 요소 간의 관계를 결정하기 위한 시스템 및 방법 | |
US8239847B2 (en) | General distributed reduction for data parallel computing | |
US8997070B2 (en) | Extension mechanism for scripting language compiler | |
US11341116B2 (en) | Techniques for automated data analysis | |
De Leoni et al. | A holistic approach for soundness verification of decision-aware process models | |
Syme et al. | Expert F♯ 3.0 | |
US9135591B1 (en) | Analysis and assessment of software library projects | |
Biswas et al. | Boa meets python: A boa dataset of data science software in python language | |
US11243958B2 (en) | Implementing contract-based polymorphic and parallelizable SQL user-defined scalar and aggregate functions | |
Yang et al. | Powerstation: Automatically detecting and fixing inefficiencies of database-backed web applications in ide | |
CA2980333A1 (en) | Field specialization systems and methods for improving program performance | |
Curty et al. | Design of blockchain-based applications using model-driven engineering and low-code/no-code platforms: a structured literature review | |
Shmeis et al. | A rewrite-based optimizer for spark | |
Guerriero et al. | StreamGen: Model-driven development of distributed streaming applications | |
US11900085B2 (en) | System and method for semantic aware data science | |
US20230359668A1 (en) | Dataflow graph datasets | |
Koitzsch | Pro Hadoop Data Analytics: Designing and Building Big Data Systems Using the Hadoop Ecosystem | |
Koitzsch | Pro Hadoop Data Analytics | |
CN116880891A (zh) | 代码变更信息展示方法、装置、计算机设备和存储介质 | |
Medicherla et al. | Static analysis of file-processing programs using file format specifications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210513 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210513 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220408 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220531 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220822 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230522 |
|
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: 20230802 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230901 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230929 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7360328 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |