JP2019518275A - 静的および動的要素を有するデータフロー設計 - Google Patents
静的および動的要素を有するデータフロー設計 Download PDFInfo
- Publication number
- JP2019518275A JP2019518275A JP2018558682A JP2018558682A JP2019518275A JP 2019518275 A JP2019518275 A JP 2019518275A JP 2018558682 A JP2018558682 A JP 2018558682A JP 2018558682 A JP2018558682 A JP 2018558682A JP 2019518275 A JP2019518275 A JP 2019518275A
- Authority
- JP
- Japan
- Prior art keywords
- mapping
- data
- port
- fragment
- mapping fragment
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- 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/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
静的要素および動的要素の両方に対するサポートを含むデータフロー設計システムが提示される。データフロー設計システムは、静的要素の再現性および動的要素の適応性の両方を活用するデータフローを設計するための設計環境グラフィカルツールをユーザに提供する。静的要素は一般に時間とともに変化しないデータを処理するが、動的要素は変化するデータを処理する。例えば、新しいデータフィールドは、データフローの入力データソースに追加される。動的要素は、新しいデータフィールドをデータフローのフラグメントのマッピングに自動的にリンクする。フラグメントのマッピングは、式およびフィルタ規則を含む構成パラメータに基づいてデータを処理する。ユーザは、設計環境のユーザインタフェースを使用して、マッピングフラグメント、静的リンク、および動的リンクを、データフローに表示および追加する。【選択図】図1
Description
関連出願データ
本出願は2016年5月11日に出願された米国非仮出願第15/152,502号の優先権を主張し、その開示は、その全体が参照により本明細書に組み込まれる。
本出願は2016年5月11日に出願された米国非仮出願第15/152,502号の優先権を主張し、その開示は、その全体が参照により本明細書に組み込まれる。
本開示は一般に、データモデリング、スキーマ、概念レイアウト、および物理的レイアウトを含む、データベースおよび/またはデータベース管理システムの実装に関し、より詳細には、静的および動的要素を有するデータベース、スキーマ、またはデータベース構造におけるデータフロー設計を生成または修正するためのグラフィカルユーザインタフェースに関する。
企業は大量のデジタルデータを収集し、多くの場合、様々なソースからのデータを統合し、データを分析することを望む。デジタルデータは、データベース、スプレッドシート、テキスト文書、オンラインウェブサイト、または他の形態の電子記録に格納され得る。これらのソースからのデータを統合することは、典型的にはデータを標準化されたフォーマットに処理することを必要とする。各企業は、それらの特定の使用のためにカスタマイズを必要とする好ましい標準化されたフォーマットを有することがある。データフロー設計システムは、それらのデータを統合し分析するためのカスタムデータフローを設計するための企業ツールを提供する。例えば、ビジネスにおいて、データフローを使用して生の販売データを処理し、経営判断をするために販売レポートを生成する。
既存のデータフロー設計システムは、経時的なデータフローの変化に対して柔軟でない場合がある。入力データソースは、例えば、企業が新しいデータコレクションまたはデータベース管理ソフトウェアを使用するか、あるいは企業が新しいタイプのデータを分析することを望むなど、様々な要因によって変化することが多い。既存の設計システムのユーザは、これらの変更に適応するために、以前に設計されたデータフローを手動で更新する必要があるが、これは時間がかかり、面倒であり、エラーを起こしやすい。
データベース管理システムにおけるデータ統合は、様々なソースからのデータを統合することによって、ユーザに価値ある洞察を提供する。例えば、ビジネスは、複数のデータベースからの情報を組み合わせ、経営判断を推進する分析を決定するためにデータ統合を使用する。データベース管理システムにおけるデータフロー設計システムは、複数のマッピングフラグメントを有するデータフローの作成および修正の両方を行うグラフィカルユーザインタフェースツールを含み、マッピングフラグメントの基礎となるデータ変換を可能にする。データフローは複数のオンラインデータベースからデータを取り出し、ユーザによって作成されたカスタマイズされた手順を実行することによって、取り出されたデータを統合する。
ユーザは、グラフィカルユーザインタフェースツールを使用してデータフローを設計する。データフローはデータを処理し、例えば、スプレッドシートの数の行の合計を決定する。グラフィカルユーザインタフェースツールは、データフローを示す表示領域と、ユーザがデータフローにマッピングフラグメントを追加するために選択するアイコンとを含む。パーツは、異なるタイプのマッピングフラグメント、またはマッピングの部分、およびフラグメントを互いに接続するリンクを含む。ユーザは、1つのフラグメントのセクションを別のフラグメントにドラッグアンドドロップして、2つのフラグメント間のリンクを作成することができる。ユーザは、異なるルールを使用してフラグメントをカスタマイズすることもできる。ユーザは入力データを処理して出力データを作成するデータフローを実行し、例えば、販売注文記録をマスタ販売注文データベースに処理する。
データフロー設計システムはマッピングフラグメント(すなわち、マッピングの部分)、静的要素、および動的要素(すなわち、静的および動的「ポート」)を有するデータフローを設計するための設計環境をユーザに提供する。マッピングフラグメントは、データフローの入力データに適用される変換を含む再利用可能なオブジェクトである。静的要素は、一般に時間とともに変化しないデータを処理するが、動的要素は変化するデータを処理する。例えば、新しいデータフィールドは、データフローのソースオンラインデータベースに追加される。動的要素は、新しいデータフィールドを、データフローのフラグメントのマッピングに自動的にリンクする。さらに、マッピングフラグメントは、静的ポートおよび動的ポートを含む。静的ポートは1つのデータフィールドに対応し、動的ポートはゼロまたはそれ以上のデータフィールドに対応する。静的リンクは、上流マッピングフラグメントの静的ポートを、下流マッピングフラグメントの入力ポートにマッピングする。動的リンクは、上流マッピングフラグメントのデータフィールドグループまたは動的ポートを、下流マッピングフラグメントの入力ポートにマッピングし、その結果、上流マッピングフラグメントのデータフィールドグループまたは動的ポートの全てのデータフィールドは、下流マッピングフラグメントの入力ポートに流れ、任意選択で包含および排除ルールに従う。
一実施形態によれば、方法は、データ統合開発環境において、データマッピングをモデル化するデータフローの定義を受信することから始まる。この定義は以下のように、マッピングフラグメントと、マッピングフラグメント間の動的リンクおよび静的リンクと、構成パラメータとを含む。最初に、データフローに含めるために複数のマッピングフラグメントが受信される。各マッピングフラグメントは複数のポートを含む。複数のポートは、少なくとも1つの動的ポートまたは1つの静的ポート、複数のポートのゼロまたは複数のポートに対応する動的ポート、複数のポートの1つのポートに対応する静的ポートを含み、各ポートは少なくとも1つのデータフィールドに対応する。次に、複数のマッピングフラグメントの上流マッピングフラグメントの動的ポートと複数のマッピングフラグメントの下流マッピングフラグメントの動的ポートとの間に少なくとも1つの動的リンクを作成する入力が受信される。動的リンクは、動的ポートの全てのデータフィールドを動的ポートに提供する。複数のマッピングフラグメントの上流マッピングフラグメントの静的ポートと、複数のマッピングフラグメントの下流マッピングフラグメントの静的ポートとの間に少なくとも1つの静的リンクを生成する入力も受信される。静的リンクは、静的ポートのデータフィールドを静的ポートに提供する。複数のマッピングフラグメントのうちの少なくとも1つのマッピングフラグメントに適用するために、1つまたは複数の構成パラメータが受信される。各構成パラメータは、少なくとも1つの構成パラメータ値を含む。次に、1つまたは複数の構成パラメータの各構成パラメータ値を、対応するランタイム値で置き換えることによって、構成パラメータが少なくとも1つのマッピングフラグメントに適用され、実行可能ランタイム定義が、データフローおよびランタイム値の定義に少なくとも部分的に基づいてコンパイルされる。
一実施形態によれば、プロセッサによって実行可能なコンピュータプログラムを記憶する非一時的なコンピュータ可読メモリは、データフローを表示するためのデータフロー表示領域と、データフロー表示領域に隣接し、マッピングフラグメントをデータフローに追加するための複数のアイコンを備えるデータフローアイコン選択領域とを有するユーザインタフェースを生成する。ユーザインタフェースは、データフロー表示エリアに新しいマッピングフラグメントを表示するようにコンピュータプログラムによって構成され、マッピングフラグメントはデータフローアイコン選択における複数のアイコンのうちの1つのアイコンを選択する入力の受信に応答して、少なくとも1つのデータフィールドグループを含み、動的ポートはゼロ以上のデータフィールドのグループに対応し、静的ポートは1つのデータフィールドに対応する。ユーザインタフェースは、また、データフロー表示エリア内の上流マッピングフラグメントのデータフィールドグループまたは動的ポートをデータフロー表示エリア内の下流マッピングフラグメントにドラッグする入力の受信に応答して、動的リンクを示す上流マッピングフラグメントと下流マッピングフラグメントとの間の視覚的接続を表示し、上流マッピングフラグメントのデータフィールドグループまたは動的ポートのデータフィールドを、下流マッピングフラグメント内の新たに生成された動的ポートに追加するように構成される。
図面は、例示のみを目的として、本発明の様々な実施形態を示す。当業者は、本願に記載の本発明の原理から逸脱することなく、本願に示される構造および方法の代替実施形態が採用され得ることを本議論から容易に理解されるのであろう。
詳細な説明
本明細書で説明する特定の実施形態は、静的要素および動的要素の両方を使用するデータフロー設計環境に関する。図1および図2は入力データを処理し、オンラインデータベースから出力データを生成するためにマッピングフラグメントを使用するデータフロー設計システムの概要を示す。図3A〜3Bは、フラグメント、静的リンク、および動的リンクをマッピングする例を示す。図4A〜4Bは、入力データを処理するための構成パラメータを有するフラグメントのマッピングを示す。図5は、設計環境を使用してデータフローを設計するプロセスを示す。図6A〜6Gおよび図7は、設計環境の例示的なユーザインタフェースを示す。図8、図9、および図10A〜10Bは、マッピングフラグメントおよびコンパイルされたデータフローを表すXMLコードのスニペットを示す。
本明細書で説明する特定の実施形態は、静的要素および動的要素の両方を使用するデータフロー設計環境に関する。図1および図2は入力データを処理し、オンラインデータベースから出力データを生成するためにマッピングフラグメントを使用するデータフロー設計システムの概要を示す。図3A〜3Bは、フラグメント、静的リンク、および動的リンクをマッピングする例を示す。図4A〜4Bは、入力データを処理するための構成パラメータを有するフラグメントのマッピングを示す。図5は、設計環境を使用してデータフローを設計するプロセスを示す。図6A〜6Gおよび図7は、設計環境の例示的なユーザインタフェースを示す。図8、図9、および図10A〜10Bは、マッピングフラグメントおよびコンパイルされたデータフローを表すXMLコードのスニペットを示す。
システム概要
図1は、一実施形態によるデータフロー設計システム100のシステムアーキテクチャの図である。システムアーキテクチャは、ネットワーク140を介して互いに接続されたデータフロー設計システム100、クライアント装置110、1つ以上のデータベース105、およびデータベース管理システム150を含む。他の実施形態では、異なるエンティティおよび/または追加のエンティティをシステムアーキテクチャに含めることができる。
図1は、一実施形態によるデータフロー設計システム100のシステムアーキテクチャの図である。システムアーキテクチャは、ネットワーク140を介して互いに接続されたデータフロー設計システム100、クライアント装置110、1つ以上のデータベース105、およびデータベース管理システム150を含む。他の実施形態では、異なるエンティティおよび/または追加のエンティティをシステムアーキテクチャに含めることができる。
データフロー設計システム100はデータフロー情報を管理するシステムであり、図2を参照して以下にさらに説明する。一般に、データフロー設計システム100はユーザがデータフローを設計するためのグラフィカルユーザインタフェースを提供し、基礎となるデータフローをイネーブルし、グラフィカルユーザインタフェースを介してユーザから入力を受け取る。グラフィカルユーザインタフェースは、ユーザのクライアント装置110に表示される設計環境115とも呼ばれる。データフロー設計システム100は、ユーザから受信した入力に基づいて、ユーザが設計したデータフローを表す情報を記憶する。データフロー設計システム100は、図2に関連して以下により詳細に説明する種々の構成要素を含む。
データベース管理システム150は、DBMSとも呼ばれ、ネットワーク140を介してクライアント装置110をデータベース105にインタフェースするアプリケーションである。データベース105は例えば、データテーブル、スプレッドシート、レポート、及び他のタイプのドキュメントのようなデータの編成されたコレクションである。クライアントデバイス110(またはデータフロー設計システム100)はDBMS150を使用して、データベース(例えば、データベース105またはオンラインサーバ)から情報を取り出すか、またはデータベース(例えば、データベース105またはオンラインサーバ)に情報を書き込むことができる。いくつかの実施形態では、データフロー設計システム100および/またはクライアントデバイス110は、ローカルデータベースを含む。
クライアント装置110は、クライアント装置110のユーザから入力を受け取り、ネットワーク140を介してデータを送受信することができるコンピューティング装置である。例えば、クライアントデバイス110は、デスクトップコンピュータ、ラップトップコンピュータ、スマートフォン、タブレット、またはコンピューティング機能およびデータ通信機能を含む任意の他のデバイスとすることができる。クライアントデバイス110は、有線通信システムと無線通信システムの両方を使用して、ローカルエリアネットワークまたはワイドエリアネットワークの任意の組合せを含むことができるネットワーク140を介して通信するように構成される。
ネットワーク140は、クライアント装置110とデータフロー設計システム100との間の通信を可能にする。一実施形態では、ネットワーク140が標準的な通信技術および/またはプロトコルを使用する。ネットワーク140上で交換されるデータは、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)などを含む技術および/またはフォーマットを使用して表すことができる。さらに、リンクのすべてまたはいくつかは、セキュア・ソケット・レイヤ(SSL)、トランスポート・レイヤ・セキュリティ(TLS)、仮想プライベート・ネットワーク(VPN)、インターネット・プロトコル・セキュリティ(IPsec)などの従来の暗号化技術を使用して暗号化することができる。別の実施形態では、エンティティが、上述のものの代わりに、または上述のものに加えて、カスタムおよび/または専用のデータ通信技術を使用することができる。
設計環境115は、データフローシステム100を使用してデータフローを設計するためのグラフィカルユーザインタフェースである。ユーザは例えば、データフローの要素を追加、編集、または除去するために、クライアントデバイス110を使用して設計環境115と対話する。設計環境115は、データフロー125、入力データ120、および出力データ135のグラフィカル表現を表示する。データフロー125は、DBMS150を使用して、ソースデータベース、例えばデータベース105の1つから入力データ120を受信する。データフロー125は、1セットの1つまたは複数の変換を含む再使用可能なオブジェクトである1組のマッピングフラグメント130を使用して入力データ120を処理する。マッピングフラグメントは、マッピングフラグメントを流れるデータに変換を適用する。フラグメントのマッピングについては、図3A〜Bおよび図4Aを参照してさらに説明する。参照のために、マッピングフラグメントのXMLコード表現の例示的なスニペットを、図8および図9に示す。変換の適用に基づいて、データフロー125は出力データ135を生成する。データフロー125はDBMS150を使用して、出力データ135を、ターゲットデータベース、例えば、データベース105の1つに書き込むことができる。ユースケースの一例では、入力データ120が企業の顧客に関する情報(例えば、企業から製品を購入した顧客のファーストネームおよびラストネーム)を含み、データのソースとしてデータベース105のうちの1つを有することができる。データフロー125はマッピングフラグメント130を使用して、顧客情報をフォーマットし、レポートに表示する(例えば、最新の月の製品購入を示す)。出力データ135はレポート(例えば、スプレッドシートまたはテキスト文書)の提示であり、最終的には、データベース105のうちの1つなどのターゲットデータベースに格納され得る。
データフロー設計システム
図2は、一実施形態による、図1のシステム環境内のデータフロー設計システム100のシステムアーキテクチャ200の図である。データフロー設計システム100は、ユーザインタフェースマネージャ210、データフローモジュール220、ルールエンジン230、コンパイルモジュール240、実行モジュール250、データフローストア270、およびルールセットストア280を備える。他の実施形態では、データフロー設計システム100が追加の、より少ない、および/または異なるモジュールおよびストアを含むことができる。
図2は、一実施形態による、図1のシステム環境内のデータフロー設計システム100のシステムアーキテクチャ200の図である。データフロー設計システム100は、ユーザインタフェースマネージャ210、データフローモジュール220、ルールエンジン230、コンパイルモジュール240、実行モジュール250、データフローストア270、およびルールセットストア280を備える。他の実施形態では、データフロー設計システム100が追加の、より少ない、および/または異なるモジュールおよびストアを含むことができる。
ユーザインタフェースマネージャ210は、データフロー設計システム100からのコンテンツおよび変換情報を含む、設計環境115、例えば、図6A〜Fに示されるようなグラフィカルユーザインタフェース600を生成する。設計環境115に含まれる内容は、マッピングフラグメントなどのデータフローの要素のグラフィック表現を含み、それらは図3A〜Bおよび図4を参照してより詳細に説明される。さらに、図6A〜図6Fを参照して、例示的なユーザインタフェース600をさらに説明する。ユーザインタフェースマネージャ210はデータフローの異なるビューを生成し、切り替えることができる。例えば、データフローの縮小されたビューは規則的な(すなわち、縮小されていない)ビューにおける対応するグラフィック要素に対してサイズがより小さいアイコン(図7を参照してさらに説明される)を使用して、フラグメントをマッピングすることを表す。
ユーザインタフェースモジュール210によって生成される設計環境115は、データフロー設計システム100のユーザがデータフロー設計システム100に情報を通信することを可能にすることもできる。ユーザインタフェースは、ユーザがデータフロー情報を入力すること、またはデータフロー設計システム100にアクションを実行する要求を入力することを可能にする対話型要素(例えば、異なる設計制御のグラフィカルメニュー)を含むことができる。例えば、ユーザはデータフローの要素(例えば、マッピングフラグメント)を追加、編集、または除去するために設計制御を使用する。さらなる例として、ユーザは、データフローを実行するために「実行(run)」制御を選択する。ユーザインタフェースモジュール210が設計環境115を生成すると、ユーザインタフェースモジュール210は、設計環境115を、例えばクライアント装置110の表示領域においてユーザに提示する。
データフローモジュール220は、データフロー設計システム100のユーザによって入力されたデータフロー情報を処理する。特に、データフローモジュール220は、ユーザインタフェースモジュール210からデータフロー情報を受信し、データフローストア270にデータフロー情報を格納する。例えば、データフロー情報は、ユーザが設計したいデータフローのマッピングフラグメントを記述する。データフローモジュール220は対応するマッピングフラグメントを生成し、マッピングフラグメントをデータフローに関連付け、マッピングフラグメントをデータストア270に格納する。
ルールエンジン230は、構成パラメータをデータフローのフラグメントのマッピングに適用する。構成パラメータは、データを変換する手順、例えば、数学的演算、ストリング演算、またはフィルタを記述する。さらに、構成パラメータは、例えば、特定の条件(例えば、マッピングフラグメントを通って流れるデータが目標値に等しい)が満たされる場合、手順と共にロジックを実行し得る(例えば数学的演算を実行する)。構成パラメータは、図4Aを参照してさらに説明されるルールおよび/またはマクロを含む。構成パラメータは構成パラメータ値を含み、マッピングフラグメントのマークアップ言語、例えばXML表現で表される。ルールエンジン230は、構成パラメータ値をマークアップ言語の対応するランタイム値で置き換えることによって、構成パラメータをマッピングフラグメントに適用する。例えば、構成パラメータ規則は、XML、<Rule patternText="ABC123"/>によって表され、ここで、"patternText"は識別子を指し、"ABC123"は構成パラメータ値、すなわち、マッピングフラグメントのXMLにおいて定義される異なる値"test"に対する別の識別子を指す。ルールエンジン230は、構成パラメータ値を、識別子に対応するランタイム値に置き換える。したがって、構成パラメータルールが適用された後、対応するXMLは<Rule patternText="test"/>となる。ルールエンジン230はデータフローをトポロジー順にトラバースし、データフロー内のフラグメントをマッピングする任意の構成パラメータを実行して、結果セットを生成する。ルールエンジン230は、結果セットを、結果セットを実行することができる下流マッピングフラグメントに提供する。ルールエンジン230はデータフローストア270に格納されたデータフローとは別に、結果セットをルールセットストア280に格納する。
コンパイルモジュール240は、データフローの実行可能ランタイム定義をコンパイルする。データフローの実行可能ランタイム定義の一例について、図6Gを参照してさらに説明する。参考のために、データフローのコンパイルされた実行可能ランタイム定義のXMLコード表現のスニペット例を図10A〜Bに示す。コンパイルモジュール240は、データフローストア270からデータフローに関する情報を受け取る。コンパイルモジュール240は、マッピングフラグメント、静的ポート、動的ポート、およびランタイムリンクなどのデータフローの要素に基づいて、実行可能ランタイム定義をコンパイルする。いくつかの実施形態では、コンパイルモジュール240が独自開発のエンジンを実行して、実行可能ランタイム定義をコンパイルする。データフローの入力データソースまたは出力データソースおよび/またはシステムが変化する場合、コンパイルモジュール240は、必ずしも実行可能ランタイム定義を再コンパイルする必要はない。
再コンパイルは、データソースおよび/またはシステムが一般に時間とともに発展するので、回避される。したがって、非データフロー関連変更によるデータフローの再コンパイルの必要性を排除することにより、時間が節約される。さらに、データフローはよりコンパクトであり、読み取りがより容易であり、より保守可能であり、例えば、データフローは、データソースおよび/またはシステムに対する変更に動的に適応する。一実施形態では、コンパイルモジュール240が、ユーザインタフェースマネージャ200を介してクライアント装置110から実行可能ランタイム定義をコンパイルすることを要求する入力を受信することに応答して、実行可能ランタイム定義をコンパイルする(例えば、図6Aを参照してさらに説明される「run」設計制御に対応する要求)。コンパイルモジュール240は、実行可能ランタイム定義を、実行のために実行モジュール250に提供する。
実行モジュール250は、データフローの実行可能ランタイム定義を実行する。実行モジュール250は、コンパイルモジュール240から実行可能ランタイム定義を受け取る。一実施形態では、実行モジュール250がユーザインタフェースマネージャ200を介して、クライアント装置110からデータフローの実行を要求する入力を受信することに応答して、実行可能ランタイム定義を実行する。ユースケースの例では、実行モジュール250が実行可能ランタイム定義を実行することによって、入力データを読み取り、出力データ(例えば、図1の入力データ120および出力データ135)をそれぞれ書き込む。
本明細書で説明されるデータフローは、静的要素および/または動的要素を含む。静的要素は静的ポートおよび静的リンクを含み、動的要素は、動的ポートおよび動的リンクを含む。静的要素と比較して、動的要素は、設計環境115における機能及び視覚的外観の両方において異なる。データフロー設計システム100のユーザは、設計環境115と対話して、マッピングフラグメント、静的要素、および動的要素を追加、除去、および/または編集して、データフローを設計する。
マッピングスニペット
図3Aは、一実施形態による、静的リンク310でフラグメントをマッピングする例を示す。マッピングフラグメントは名前を有し、データフィールド名およびタイプに関連付けられたデータフィールドを含む。データフィールドは、データフロー内のマッピングフラグメントを流れるデータを格納する。例えば、マッピングフラグメント300は「Read_Customer_Data」と名付けられ、データフィールド305を含む。特に、データフィールド305は顧客のディーラシップ識別子(すなわち、データフィールド名「dealership_ID」)、領域(すなわち、データフィールド名「region」)、顧客識別子(すなわち、データフィールド名「customer」)、ファーストネーム(すなわち、データフィールド名「firstname」)、ラストネーム(すなわち、データフィールド名「lastname」)、および性別(すなわち、データフィールド名「gender」)に対応するデータフィールドを含む。データフィールド「dealership_ID」は、文字(char)タイプのデータフィールドである。データフィールド「customer」は、整数型データフィールドである。データフィールド「region」、「firstname」、「lastname」、「gender」は、文字列(string)タイプのデータフィールドである。いくつかの実施形態では、データフィールド305が他のデータフィールドグループ、データフィールド名、および/またはデータフィールドタイプ(例えば、10進数、日付/時間、フロート(float)、ブーリアン(Boolean)、文字、ヌル(null)など)を含む。データフィールドグループは、あるデータフィールドグループ名の下に編成された1つまたは複数のデータフィールドを含む。マッピングフラグメントは少なくとも1つのデータフィールドグループ、すなわち、マッピングフラグメントの全てのデータフィールドを含むデータフィールドグループを含む。ユーザは、設計環境115を使用して、追加のデータフィールドグループを作成することができる。
図3Aは、一実施形態による、静的リンク310でフラグメントをマッピングする例を示す。マッピングフラグメントは名前を有し、データフィールド名およびタイプに関連付けられたデータフィールドを含む。データフィールドは、データフロー内のマッピングフラグメントを流れるデータを格納する。例えば、マッピングフラグメント300は「Read_Customer_Data」と名付けられ、データフィールド305を含む。特に、データフィールド305は顧客のディーラシップ識別子(すなわち、データフィールド名「dealership_ID」)、領域(すなわち、データフィールド名「region」)、顧客識別子(すなわち、データフィールド名「customer」)、ファーストネーム(すなわち、データフィールド名「firstname」)、ラストネーム(すなわち、データフィールド名「lastname」)、および性別(すなわち、データフィールド名「gender」)に対応するデータフィールドを含む。データフィールド「dealership_ID」は、文字(char)タイプのデータフィールドである。データフィールド「customer」は、整数型データフィールドである。データフィールド「region」、「firstname」、「lastname」、「gender」は、文字列(string)タイプのデータフィールドである。いくつかの実施形態では、データフィールド305が他のデータフィールドグループ、データフィールド名、および/またはデータフィールドタイプ(例えば、10進数、日付/時間、フロート(float)、ブーリアン(Boolean)、文字、ヌル(null)など)を含む。データフィールドグループは、あるデータフィールドグループ名の下に編成された1つまたは複数のデータフィールドを含む。マッピングフラグメントは少なくとも1つのデータフィールドグループ、すなわち、マッピングフラグメントの全てのデータフィールドを含むデータフィールドグループを含む。ユーザは、設計環境115を使用して、追加のデータフィールドグループを作成することができる。
マッピングフラグメントは、1つ以上のデータフィールドに対応するポートを含む。静的ポートは、1つのデータフィールドを表す従来のポートである。動的ポートは複数のデータフィールドがリンクを介してマッピングフラグメントに流れることを可能にするが、これについては以下でさらに説明する。例えば、マッピングフラグメント300は、データフィールド「dialership_ID」、「region」、「customer」、「firstname」、「lastname」、および「gender」の各々を表す静的ポートを含む。さらに、マッピングフラグメント300は、マッピングフラグメント300のすべての、例えば6つのデータフィールドがマッピングフラグメント300のリンクを通って流れることを可能にする動的ポートも含むことができる。
データフローは、それぞれが異なるタイプの変換に対応する異なるタイプのマッピングフラグメントを含むことができる。例えば、マッピングフラグメントのタイプは、とりわけ、「read data」、「target」、「expression」、「aggregator」、「joiner」、および「filter」を含む。「read data」タイプのマッピングフラグメントは、DBMS150を介してソースデータベース、例えばデータベース105の1つから情報を取り出す。検索された情報は、データフローの他のマッピングフラグメントによってさらに処理されてもよい。「target」タイプのマッピングフラグメントは、DBMS150を介して、ターゲットデータベース、例えばデータベース105の1つに情報を書き込む。情報は、データフローのフラグメントをマッピングすることによって処理されるデータに基づく。「expression」マッピングフラグメントはデータフィールドからのデータに対して式を実行し、例えば、式を行ごとに実行する。例えば、この式は数値型データに対して実行される数学的演算(例えば、整数にスケーリングファクタを乗算すること、または10進数の絶対値を決定すること)である。別の例では、式は文字列タイプデータに対して実行される文字列演算(例えば、文字列の連結、文字列からの空間文字のトリミング、または部分文字列の決定)である。「aggregator」タイプのマッピングフラグメントは、データフィールドからのデータのグループに対して式を実行する。例えば、式は、複数のデータフィールドから整数タイプのデータの合計を決定するか、または複数のデータフィールドから文字列タイプのデータを連結する。「joiner」タイプのマッピングフラグメントは複数のソースデータベース(例えば、データベース105)からの複数の異種(または同種)入力データからのデータを結合する。異種入力データは、異なるフォーマットまたはタイプのデータフィールドを有する入力データを含む。例えば、1つの入力データは整数のテーブルであり、第2の入力データは文字および/または文字列のテキスト文書である。「filter」タイプのマッピングフラグメントは、データフィールド値または別の条件に基づいて、マッピングフラグメントを流れるデータを選択する。例えば、マッピングフラグメントは「country=USA」(すなわち、「country」の文字列値が文字列「USA」に等しい)であるレコードのみを、マッピングフラグメントを通って流れるレコードとして選択する。異なるタイプのマッピングフラグメントは、マッピングフラグメントを互いに視覚的に区別するための異なるタイプのアイコンを含み、これらについては図4Aを参照してさらに説明する。
図8は、一実施形態によるマッピングフラグメントのXMLコードのスニペットを示す。特に、マッピングフラグメントは変換のインスタンス、例えば、"<Instance transformation="U: 7PeivxI0..."を含む。変換のインスタンスは、必ずしも変換を適用するための命令を含まないので、プログラムの関数呼び出しに類似している。むしろ、例えば、インスタンスは、コードの他の部分への参照を含むことができる。インスタンスは複数のポート、例えば"<TransformationFieldPort imx:id="ID_6"..."と、フィールド、例えば、"transformationField="U:7PeiwR..."とを含み、これらは変換の入力パラメータとして使用される。いくつかの実施形態では、入力パラメータは設計中には知られていないが、データフローの実行時に決定される。
図9はまた、一実施形態によるマッピングフラグメントのXMLコードのスニペットを示す。特に、マッピングフラグメントは、マッピングフラグメントを通って流れるデータに対してストリング演算を実行する表現型マッピングフラグメントである。
静的リンク
データフローでは、静的リンクが上流マッピングフラグメントの静的ポートを下流マッピングフラグメントの入力ポートにマッピングする。上流マッピングフラグメントは、データフロー内の下流マッピングフラグメントに先行するマッピングフラグメントである。例えば、図3Aに示す静的リンク310は、それぞれが上流マッピングフラグメント300のデータフィールド305の1つに対応する6つの静的リンクを含む。各静的リンクは「mapping fragment 1(マッピングフラグメント1)」と呼ばれる下流マッピングフラグメント320のデータフィールド325のうちの1つに対応する入力ポートにマッピングされるので、上流マッピングフラグメント300のデータフィールド305からのデータは静的リンク310を通って下流マッピングフラグメント320のデータフィールド325に流れる。
データフローでは、静的リンクが上流マッピングフラグメントの静的ポートを下流マッピングフラグメントの入力ポートにマッピングする。上流マッピングフラグメントは、データフロー内の下流マッピングフラグメントに先行するマッピングフラグメントである。例えば、図3Aに示す静的リンク310は、それぞれが上流マッピングフラグメント300のデータフィールド305の1つに対応する6つの静的リンクを含む。各静的リンクは「mapping fragment 1(マッピングフラグメント1)」と呼ばれる下流マッピングフラグメント320のデータフィールド325のうちの1つに対応する入力ポートにマッピングされるので、上流マッピングフラグメント300のデータフィールド305からのデータは静的リンク310を通って下流マッピングフラグメント320のデータフィールド325に流れる。
動的リンク
図3Bは、一実施形態による、動的リンク330を用いてフラグメントをマッピングする例を示す。マッピングフラグメント340は「Fields(6)」と名付けられたデータフィールドグループを含み、これは、データフィールド345のすべて、例えば、6つからのデータが動的ポートを通って動的リンク330に流れることを可能にする。動的リンク330は「Fields(6)」データフィールドグループを、下流マッピングフラグメント350「From_Read_Customer_Data」(例えば、上流マッピングフラグメント340の名前に基づいて)と名付けられた入力ポートにマッピングする。動的リンク330により、マッピングフラグメント350は、「From_Read_Customer_Data」入力ポート、すなわち動的ポートの下に編成された生成されたポートを生成する。生成されたポートは、静的ポートと同様にマッピングフラグメントで使用される。しかし、生成されたポートは、データフローの上流マッピングフラグメントへの変更の結果として、実行時にマッピングフラグメントに削除または追加することができる。具体的には、マッピングフラグメント350がデータフィールド355のそれぞれに対応する6つの生成されたポート、すなわち、「dealership_ID」という名前の文字タイプデータフィールド、「customer」という名前の整数タイプデータフィールド、ならびに「region」、「firstname」、「lastname」、および「gender」という名前の文字タイプデータフィールドを含む。データフィールド345からのデータは、動的リンク330を通ってデータフィールド355に流れる。データフロー設計システム100のユーザは、動的ポート「From_Read_Customer_Data」のエクスパンダコントロール360を選択することによって、生成されたポートの表示と非表示を切り替えることができる。他の実施形態では、動的リンクが上流マッピングフラグメントの動的ポートを下流マッピングフラグメントのポートにマッピングする。
図3Bは、一実施形態による、動的リンク330を用いてフラグメントをマッピングする例を示す。マッピングフラグメント340は「Fields(6)」と名付けられたデータフィールドグループを含み、これは、データフィールド345のすべて、例えば、6つからのデータが動的ポートを通って動的リンク330に流れることを可能にする。動的リンク330は「Fields(6)」データフィールドグループを、下流マッピングフラグメント350「From_Read_Customer_Data」(例えば、上流マッピングフラグメント340の名前に基づいて)と名付けられた入力ポートにマッピングする。動的リンク330により、マッピングフラグメント350は、「From_Read_Customer_Data」入力ポート、すなわち動的ポートの下に編成された生成されたポートを生成する。生成されたポートは、静的ポートと同様にマッピングフラグメントで使用される。しかし、生成されたポートは、データフローの上流マッピングフラグメントへの変更の結果として、実行時にマッピングフラグメントに削除または追加することができる。具体的には、マッピングフラグメント350がデータフィールド355のそれぞれに対応する6つの生成されたポート、すなわち、「dealership_ID」という名前の文字タイプデータフィールド、「customer」という名前の整数タイプデータフィールド、ならびに「region」、「firstname」、「lastname」、および「gender」という名前の文字タイプデータフィールドを含む。データフィールド345からのデータは、動的リンク330を通ってデータフィールド355に流れる。データフロー設計システム100のユーザは、動的ポート「From_Read_Customer_Data」のエクスパンダコントロール360を選択することによって、生成されたポートの表示と非表示を切り替えることができる。他の実施形態では、動的リンクが上流マッピングフラグメントの動的ポートを下流マッピングフラグメントのポートにマッピングする。
静的要素および動的要素はそれぞれ、異なる特徴を有する。特に、静的要素は動的要素よりも多くの再現性を提供し、これは、主に固定データ構造を有するデータフローを設計するのに有用である。例えば、固定データ構造は、時間にわたって同じ数およびタイプのデータフィールドを維持するか、またはデータフィールドに対する最小量の変更を経験するマッピングフラグメントである。一方、動的要素は、静的要素よりも多くのデータフロー設計の柔軟性を提供する。すなわち、動的ポートおよび動的リンクなどの動的要素は、データフローにおける変化により適応可能である。
データフロー
図4Aは、一実施形態による、マッピングフラグメント、静的要素、および動的要素を含むデータフロー400の図である。データフロー400は、「Read_Customer_Data」と名付けられたマッピングフラグメント402と、「Expression」と名付けられたマッピングフラグメント412と、「Filter」と名付けられたマッピングフラグメント422と、「Target」と名付けられたマッピングフラグメント432とを含む。マッピングフラグメント402は「read data」タイプのマッピングフラグメントであり、したがって「read data」タイプのアイコン404を有する。マッピングフラグメント422は「filter」タイプのマッピングフラグメントであり、したがって「filter」タイプのアイコン424を有する。マッピングフラグメント412は「expression」タイプのマッピングフラグメントであり、したがって「expression」タイプのアイコン414を有する。マッピングフラグメント432は「target」タイプのマッピングフラグメントであり、したがって「target」タイプのアイコン434を有する。
図4Aは、一実施形態による、マッピングフラグメント、静的要素、および動的要素を含むデータフロー400の図である。データフロー400は、「Read_Customer_Data」と名付けられたマッピングフラグメント402と、「Expression」と名付けられたマッピングフラグメント412と、「Filter」と名付けられたマッピングフラグメント422と、「Target」と名付けられたマッピングフラグメント432とを含む。マッピングフラグメント402は「read data」タイプのマッピングフラグメントであり、したがって「read data」タイプのアイコン404を有する。マッピングフラグメント422は「filter」タイプのマッピングフラグメントであり、したがって「filter」タイプのアイコン424を有する。マッピングフラグメント412は「expression」タイプのマッピングフラグメントであり、したがって「expression」タイプのアイコン414を有する。マッピングフラグメント432は「target」タイプのマッピングフラグメントであり、したがって「target」タイプのアイコン434を有する。
動的リンク408は、上流マッピングフラグメント402のデータフィールドグループを、下流マッピングフラグメント412の入力動的ポート「From_Read_Customer_data」にマッピングする。入力動的ポートは、「string-only(文字列のみ)」包含ルール、すなわちルール438を有する。したがって、上流マッピングフラグメント402からの4つの文字列タイプデータフィールド、たとえば「region」、「firstname」、「lastname」、および「gender」からのデータのみが、動的リンク408を通って、入力動的ポート「From_Read_Customer_Data」に流れる。したがって、マッピングフラグメント412は、データフィールドグループの各データフィールドに対して生成されたポート416を生成する。
マッピングフラグメント412はまた、その値がストリング演算を実行する式に依存する「fullname」出力静的ポートを有する。この式は、マッピングフラグメント412「firstname」および「lastname」データフィールドに対してストリング演算を実行する。特に、「lastname」の文字列データを「firstname」の文字列データの末尾に連結して、「fullname」動的ポートに格納されたデータ値を生成することにより、この式が適用される。例えば、「Marie」の末尾に連結された「Curie」は、「fullname」データ値「Marie Curie」をもたらす。この例では式は「firstname」と「lastname」の間にスペース文字も挿入する。
静的リンク410は、上流マッピングフラグメント402の「customer」データフィールドを表す静的ポートを、下流マッピングフラグメント422「customer」データフィールドを表す入力静的ポートにマッピングする。したがって、データフィールド406の「customer」データフィールドからのデータは、静的リンク410を通ってデータフィールド426「customer」データフィールドに流れる。静的リンク460は、データフィールド426「customer」データフィールドの静的ポートを、下流マッピングフラグメント432の入力静的ポートにマッピングする。マッピングフラグメント422は「フィルタ」タイプのマッピングフラグメントであるため、構成パラメータ規則を適用して、それらのデータフィールド値に基づいて特定のデータフィールドを除外または含めることができる。例えば、マッピングフラグメント422は「customer>50000」、すなわち、50000より大きい「customer」値のみを含む構成パラメータルールを有することができる。
ランタイムリンクは上流のマッピングフラグメントが動的要素を有するが、対応する下流のマッピングフラグメントが動的要素をサポートしない状況を処理する。具体的には、ランタイムリンクが上流マッピングフラグメント内の生成されたポートと下流マッピングフラグメント内の静的ポートとの間のランタイムでリンクを生成するための情報を含む。ランタイムリンク430により生成されたリンクの例は、図4Bを参照して以下でさらに説明される。ランタイムリンク430は、上流マッピングフラグメント412の「Fields」データフィールドグループ435を下流マッピングフラグメント432「Fields」データフィールドグループ462にマッピングする。設計環境115のユーザインタフェースでは、ランタイムリンクが静的リンクおよび動的リンクとはグラフィカルに区別される。例えば、ランタイムリンク430は動的リンク408よりも太い線によって表され、例えば、ランタイムリンク430は7ピクセル幅であり、動的リンク408は1ピクセル幅である。いくつかの実施形態では、ランタイムリンクが静的リンクおよび/または動的リンクとは異なる色または透明度レベルで表される。ランタイムリンクは、データフローの特定の入力または構成がランタイム(データフローの実行)まで知られていない可能性があるので、データフロー設計の柔軟性を提供する。したがって、ランタイムリンクは対照的に、ランタイム前に知られている入力および構成を使用して動作する静的リンクを補足する。
データフロー400は静的リンク410および460、動的リンク408、およびランタイムリンク430を含むので、データフロー400は静的要素と動的要素の両方を結合する。したがって、設計環境115を使用してデータフロー400を設計するユーザは、異なるタイプのデータソースおよび/またはデータ処理手順に基づいてデータフロー400をカスタマイズすることができる。静的要素と動的要素の組み合わせは、例えば、ある入力データが静的要素をサポートするだけであり、動的要素をサポートしない可能性があるため、様々なソースデータベースからの入力データを統合するのに役立つ。さらに、別の入力データは異なる入力データのフォーマットと一致するように、マッピングフラグメントによって再フォーマットされる必要があり得る。ユーザはまた、マッピングフラグメントに適用するために、構成パラメータ(例えば、フィルタ、数学的演算、またはストリング演算を記述するルール)を作成することによって、データフローをカスタマイズする。ユーザはより再現性を必要とし、変化しにくいデータフロー400のセクションに対して静的要素を使用する。ユーザは「customer」データフィールドが経時的に同じままであるため、例えば、顧客が「customer」データフィールドのデータ値によって表される同じ顧客識別子を保持するため、静的リンク410および460を使用する。さらに、ストリングタイプデータフィールドは時間とともに変化する可能性があるので、ユーザは動的リンク408を使用する。例えば、ユーザは、顧客の「middlename」、「city」、または「state」に関する追加の文字列タイプデータフィールドをマッピングフラグメント402に追加する。動的リンク408は、追加のストリングタイプデータフィールドに対応するマッピングされた下流マッピングフラグメント内に新しい生成されたポートを自動的に生成することによって、変更に適応する。
図4Bは、一実施形態による、図4Aに示すデータフロー400のコンパイル済み実行可能ランタイム定義470を示す。特に、コンパイルモジュール240は、任意の動的リンクまたはランタイムリンクに基づいて、データフロー400のリンクを生成する。例えば、コンパイルモジュール240は、動的リンク408を、それぞれが上流マッピングフラグメント402の静的ポートを下流マッピングフラグメント412の静的ポートにマッピングする一組の4つの静的リンク472に置き換える。さらに、コンパイルモジュール240は、ランタイムリンク430を、それぞれが上流マッピングフラグメント412の静的ポートを下流マッピングフラグメント432の静的ポートにマッピングする1組の5つの静的リンク474で置き換える。コンパイルモジュール240は、データフロー400のマッピングフラグメントから動的ポートおよびデータフィールドグループを除去する。静的リンク410および460は変更されないことに留意されたい。いくつかの実施形態では、コンパイルモジュール240がデータフローの実行可能ランタイム定義をコンパイルするときに、テキストタイプデータフィールドを文字列タイプデータフィールドに変換するか、または他のタイプのデータフィールドタイプ変換を実行する。
図10Aは、一実施形態による、データフローのコンパイルされた実行可能ランタイム定義のXMLコードのスニペットを示す。コンパイルされた実行可能ランタイム定義コードは例えば、特徴、入力バインディング、能力、および関係フィールドをそれぞれ表すタグ「<Characteristic>」「<inputBinding>」「<Capability>」「<Relational Field>」を含む。特性、例えば、「<Characteristic imx:id="ID_2" xsi:type="optimizer:OptimizerCharacteristic">」はマッピングフラグメントの機能、例えば、マッピングフラグメントが特定の環境(例えば、クラウドデータベースまたはローカルエンジン)で実行されるように設計されているかどうかをさらに記述することができる。入力バインディング、例えば<InputBinding imx:id="ID_5"..."は、ランタイム値がマッピングフラグメントにどのように提供されるかを示すことができる。
図10Bはまた、一実施形態による、データフローのコンパイルされた実行可能ランタイム定義のXMLコードのスニペットを示す。例えば、"<Capability imx:id = "ID_61" xsi:type = "datasourceoperation1":ReadCapability"..., "は、例えば「read data」または「target」タイプのマッピングフラグメントに対する、データソースのシグネチャ(署名)を示すことができる。シグネチャの例には、読み取り(read)、書き込み(write)、およびルックアップ(look up)が含まれる。リレーショナルフィールド、例えば、「<RelationalField imx:id="ID_64"…,"」は、ケイパビリティのシグネチャ内の要素を記述することができる。リレーショナルフィールドはケイパビリティに関連付けられるので、マッピングフラグメントは、様々なデータソースタイプと互換性があり得る。
プロセスフロー
図5は、一実施形態によるデータフローを設計するプロセス500のフローチャートである。いくつかの実施形態では、プロセス500がデータフロー設計システム100(例えば、図2を参照して説明したデータフロー設計システム100のモジュール)によって、図1のシステム環境内で使用される。プロセス500は、いくつかの実施形態において、図5に関連して記載されたものとは異なるまたは追加のステップを含んでもよく、または図5に関連して記載された順序とは異なる順序でステップを実行してもよい。プロセス500は、データフロー設計システム100のユーザが自動車ディーラシップ事業の所有者である例示的な使用事例の文脈で説明される。ユーザは毎月の終わりに販売レポートを生成して、今後の月の販売に関する予測を行い、顧客の行動を研究し、ビジネスの全体的なパフォーマンスの評価を支援することを望む。したがって、ユーザは販売レポートを生成するデータフローを設計するために、データ統合開発環境、例えば、図6A〜Fに示されるユーザインタフェース600を使用する。
図5は、一実施形態によるデータフローを設計するプロセス500のフローチャートである。いくつかの実施形態では、プロセス500がデータフロー設計システム100(例えば、図2を参照して説明したデータフロー設計システム100のモジュール)によって、図1のシステム環境内で使用される。プロセス500は、いくつかの実施形態において、図5に関連して記載されたものとは異なるまたは追加のステップを含んでもよく、または図5に関連して記載された順序とは異なる順序でステップを実行してもよい。プロセス500は、データフロー設計システム100のユーザが自動車ディーラシップ事業の所有者である例示的な使用事例の文脈で説明される。ユーザは毎月の終わりに販売レポートを生成して、今後の月の販売に関する予測を行い、顧客の行動を研究し、ビジネスの全体的なパフォーマンスの評価を支援することを望む。したがって、ユーザは販売レポートを生成するデータフローを設計するために、データ統合開発環境、例えば、図6A〜Fに示されるユーザインタフェース600を使用する。
データフロー設計システム100は、データ統合開発環境において、図2で説明したユーザインタフェースマネージャ210を介してクライアント装置110からデータフローの定義を受信する(510)。データフローの定義は動的ポートおよび静的ポートに対応するデータフィールドを有するマッピングフラグメント、例えば、図6Dに示すマッピングフラグメント620、628、634および640を含む。マッピングフラグメント620は、DBMS150を介して、スプレッドシート、データベース、またはユーザによって記録された顧客データの任意の他のデジタル記録などのソースから、企業の顧客に関するデータを取り出す。データフロー設計システム100は、ユーザインタフェースマネージャ210を介して、上流マッピングフラグメントのデータフィールドグループと下流マッピングフラグメントのデータフィールドグループとの間の動的リンクを作成する入力を受信する(520)。例えば、図6Eにおいて、動的リンク648は、上流マッピングフラグメント628の動的ポート「From_Read_Customers」を、下流マッピングフラグメント640の動的ポート「From_Expression」にマッピングする。データフロー設計システム100は、ユーザインタフェースマネージャ210を介して、上流マッピングフラグメントの静的ポートと下流マッピングフラグメントの静的ポートとの間に静的リンクを作成する入力を受信する(530)。例えば、図6Fにおいて、静的リンク658の1つは、上流マッピングフラグメント634「price」データフィールドに対応する静的ポートを、下流マッピングフラグメント640の対応する「price」データフィールドの静的ポートにマッピングする。ユーザインタフェースマネージャ210は設計環境においてユーザに表示するために、クライアント装置110にデータフローを提供する。いくつかの実施形態では、データフローが例えば、図7に示されるアイコンを含む、縮小アイコンビューによって表される。
データフロー設計システム100は、マッピングフラグメントに関連付けられた構成パラメータを、ユーザインタフェースマネージャ210を介してクライアント装置110から受信する(540)。例えば、再び図4Aを参照すると、構成パラメータルール438は、マッピングフラグメント412「From_Read_Customer_Data」動的ポートに関連付けられる。構成パラメータは構成パラメータ値を含み、例えば、構成パラメータルール438は、ストリングデータタイプフィルタに対応する構成パラメータ値を有する。ルールエンジン230は、構成パラメータ値を対応するランタイム値で置き換えることによって、構成パラメータをマッピングフラグメントに適用する(550)。コンパイルモジュール240はデータフローの実行可能ランタイム定義(例えば、図4Bまたは図6Gに示される実行可能ランタイム定義)をコンパイルする(560)。
一実施形態によれば、実行モジュール250は実行可能ランタイム定義を実行して(570)、例えば、DBMS150を介して、ターゲットデータベース(例えば、データベース105の1つ)に格納された出力販売レポートデータを生成する。他の実施形態では、実行がデータフロー設計システム100の外部のエンティティから開始することができる。例えば、販売レポートは、年齢、性別、または民族などの人口統計情報に基づいて顧客を編成する。この編成を達成するために、ユーザは人口統計情報を表すデータフィールド、例えば、図4Aに示す「gender」データフィールドのデータ値に基づいてデータをフィルタリングする構成パラメータ規則を使用することができる。販売レポートに基づいて、ユーザは、大部分の顧客が18〜25歳の年齢範囲にあると判断することができる。さらに、ユーザは、数式に対応する構成パラメータを使用して、年齢範囲の顧客から得られる総収入を決定する。したがって、ユーザは、翌月に18〜25歳に人気のある自動車を広告することに集中することができる。ユーザがDBMS150を介してデータフローシステム100によってアクセス可能な新しいオンラインサーバ上に新しい顧客データを格納する場合、データフローは、実行前に再コンパイルされる必要はない。実行モジュール250は実行可能ランタイム定義を実行するときに、任意のランタイムリンク、例えば、図4Aに示すランタイムリンク430を解決する。
設計環境ユーザーインタフェース
例示的なデータフローユーザインタフェース600を図6A〜図6Fに示す。データフロー設計システム100のユーザは、ユーザインタフェース600を使用して、マッピングフラグメント、静的要素、および動的要素を用いてデータフローを設計する。
例示的なデータフローユーザインタフェース600を図6A〜図6Fに示す。データフロー設計システム100のユーザは、ユーザインタフェース600を使用して、マッピングフラグメント、静的要素、および動的要素を用いてデータフローを設計する。
図6Aは、一実施形態によるデータフロー設計環境ユーザインタフェース600を示す。ユーザインタフェース600は図1に示す設計環境115の一実施形態であり、「My_Flow」と名付けられたデータフロー602、データフロー602を表示するための表示領域608、およびメニュー606のユーザインタフェースを含む。表示領域608は、データフロー602「Read_Customers」と名付けられた「read data」タイプのマッピングフラグメント620を含む。
メニュー606は、ユーザによって選択可能な異なるタイプの設計制御アイコンを含む。図6Aはメニュー606内の7つの設計制御アイコンを示すが、他の実施形態ではメニューが追加の、異なる、および/またはより少ない設計制御アイコンを含むことができる。ユーザインタフェースマネージャ210はデータフロー602を設計するユーザから、クライアント装置110を介して、設計制御アイコンの選択を示す入力を受信する。選択に基づいて、データフロー設計システム100は、対応する機能を実行する。例えば、選択が「run」設計制御アイコン604に対応する場合、コンパイルモジュール240はデータフロー602の実行可能ランタイム定義をコンパイルし、実行モジュール250は、実行可能ランタイム定義を実行する。ユーザは、「read data」設計制御アイコン404または「target」設計制御アイコン434を選択して、「read data」タイプのマッピングスニペットまたは「target」タイプのマッピングスニペットをそれぞれデータフロー602に追加する。同様に、ユーザは、「expression」設計制御アイコン414、「aggregator」設計制御アイコン612、「joiner」設計制御アイコン614、または「filter」設計制御アイコン424を選択して、「expression」タイプのマッピングスニペット、「aggregator」タイプのマッピングスニペット、「joiner」タイプのマッピングスニペット、または「filter」タイプのマッピングスニペットをそれぞれデータフロー602に追加する。
図6Bは、一実施形態によるドラッグアンドドロップ機能を示すデータフローユーザインタフェース600を示す。図6Aに示すデータフロー602と比較して、図6Bに示すデータフロー602は例えば、ユーザが図6Aの「expression」設計制御アイコン414を選択した結果として、「expression」と名付けられた追加の「expression」タイプマッピングフラグメント628を含む。ユーザインタフェースマネージャ210は、クライアント装置110を介してユーザから「drag and drop」動作を示す入力を受け取る。例えば、ユーザは、マッピングフラグメント620のすべてのデータフィールド622のグループ、すなわち「firstname」および「lastname」データフィールドを表すマッピングフラグメント620「fields」データフィールドグループに対応する領域624を選択する。ユーザは領域624の選択をマッピングフラグメント628に「drag」し、選択をマッピングフラグメント622内の領域626に「drop」する。したがって、ユーザインタフェースマネージャ210は「drag and drop」アクションを記録し、入力情報をデータフローモジュール220に提供する。入力情報に基づいて、データフローモジュール220は上流マッピングフラグメント620と下流マッピングフラグメント628との間の動的リンクを生成し、これについては、図6Cを参照して以下でさらに説明する。
図6Cは、一実施形態による動的リンク630を示すデータフローユーザインタフェース600を示す。図6Bに示すデータフロー602と比較して、図6Bに示すデータフロー602は例えば、図6Bに示すユーザからの「drag and drop」動作の結果として、追加の動的リンク630を含む。動的リンク630は、上流マッピングフラグメント620「Fields」動的ポートを、下流マッピングフラグメント628の入力「From_Read_Customers」動的ポートにマッピングする。「From_Read_Customers」動的ポートは、「Fields」動的ポートのデータフィールドにそれぞれ対応する2つの生成されたポート632を含む。
ここで、マッピングフラグメント628「Fields」データフィールドグループは、ユーザによって追加された「Trimmed_Strings」動的ポートを含む。「Trimmed_Strings」動的ポートは、マクロとも呼ばれるマクロ構成パラメータを有する。一般に、マクロを有する動的ポートは新しい生成されたポートを生成するために、1つまたは複数の他の動的ポートにプロシージャを適用する。例えば、「Trimmed_Strings」動的ポートのマクロは「From_Read_Customers」動的ポートの各文字列タイプデータフィールドに左トリミング文字列操作を適用する(すなわち、文字列の左側の先頭スペース文字を除去する)。さらに、「Trimmed_Strings」の下の生成されたポートは、「From_Read_Customers」動的ポートの各文字列タイプデータフィールドに対して生成される。したがって、「Trimmed_Strings」動的ポートは2つの生成されたポート672、「firstnameT」および「lastnameT」を含み、これらは、それぞれ、「From_Read_Customers」の「firstname」および「lastname」データフィールドの左トリム値を格納する。
図6Dはまた、一実施形態によるデータフローユーザインタフェース600を示す。図6Cに示すデータフロー602と比較して、図6Dに示すデータフローは例えば、ユーザが「read data」設計制御アイコン404および「joiner」設計制御アイコン614をそれぞれ選択した結果として、「Read_Sales」という名前の追加の「データ読み取り」タイプマッピングフラグメント634および「Joiner」という名前の追加の「joiner」タイプマッピングフラグメント640を含む。ユーザインタフェースモジュール210は、クライアント装置110を介してユーザから別の「drag and drop」動作を示す入力を受信する。例えば、ユーザは、マッピングフラグメント628の生成されたポート672を表すマッピングフラグメント628「Trimmed_Strings」動的ポートに対応する領域642を選択する。ユーザは領域642の選択をマッピングフラグメント640に「drag」し、「Master」データフィールドグループ646に対応するマッピングフラグメント640内の領域644に「drop」する。したがって、データフローモジュール220は上流マッピングフラグメント628と下流マッピングフラグメント640との間に動的リンクを生成し、これについては、図6Eを参照して以下でさらに説明する。
図6Eはまた、一実施形態によるドラッグアンドドロップ機能を示すデータフローユーザインタフェース600を示す。図6Dに示すデータフロー602と比較して、図6Eに示すデータフローは例えば、図6Dに示すユーザからの「drag and drop」動作の結果として、追加の動的リンク648を含む。動的リンク648は、上流マッピングフラグメント628「Trimmed_Strings」動的ポートを、「Master」データフィールドグループ646の下の入力動的ポート「From_Expression」にマッピングする。「From_Expression」動的ポートは、「Trimmed_Strings」動的ポートの生成ポートにそれぞれ対応する2つの生成ポート650を含む。
ユーザインタフェースモジュール210は、クライアント装置110を介してユーザからさらに別の「drag and drop」動作を示す入力を受け取る。例えば、ユーザは、「price」、「quantity」、および「Buyer_lname」データフィールド636を表すマッピングフラグメント634の静的ポートに対応する複数のデータフィールド652を選択する。ユーザは複数のデータフィールド652の選択をマッピングフラグメント640に「drag」し、「Detail」データフィールドグループ656に対応するマッピングフラグメント640内の領域654に選択を「drop」する。したがって、データフローモジュール220は上流マッピングフラグメント634と下流マッピングフラグメント640との間に静的リンクを生成し、これについては、図6Fを参照して以下でさらに説明する。
図6Fは、一実施形態による静的リンクを示すデータフローユーザインタフェース600を示す。図6Dに示されるデータフロー602と比較して、図6Fに示されるデータフローは例えば、図6Eに示されるユーザからの「drag and drop」アクションの結果として、追加の静的リンク658を含む。静的リンク658の各々は、上流マッピングフラグメント634のデータフィールド636の静的ポートを、下流マッピングフラグメント640「Detail」データフィールドグループ656の下のデータフィールド660の静的ポートにマッピングする。データフローモジュール220は動的リンクの代わりに静的リンク658を生成するが、これは例えば、ユーザが動的ポートまたはデータフィールドグループではなく、複数の静的ポートを選択して、下流のマッピングフラグメントをドロップしたためである。
いくつかの実施形態では、「drag and drop」アクションの下流マッピングフラグメントが新しいポートの作成を可能にしないか、または動的要素をサポートしない。この場合、ユーザが領域の選択を「drop」すると、ユーザインタフェース600は、ユーザが上流マッピングフラグメントを下流マッピングフラグメントにマッピングするためのランタイムリンクを設計することを可能にするダイアログユーザインタフェースを表示する。ランタイムリンクは例えば、その値がランタイムで供給されるデータフィールドのセットを表す構成パラメータ、データフィールド名に基づく手順、またはDBMS150を介したデータベーステーブルルックアップの組み合わせであってもよい。
いくつかの実施形態では、マッピングフラグメント640が「joiner」タイプのマッピングフラグメントであるため、マッピングフラグメント640は「lastname」データフィールドに関連するテーブルの列と、「buyer_lname」(すなわち、買い手のラストネーム)データフィールドに関連するテーブルの別の列とを結合する。これら2つのデータフィールドは類似の情報、例えば、買い手の名前を表し、従って、マッチングのために使用することができる。一般に、「joiner」タイプのマッピングフラグメントは複数のテーブルを(例えば、ソースデータベースから)1つのテーブルにマージし、各マージされたテーブルの全ての列の結合を含む。特に、「joiner」タイプのマッピングフラグメントは、各マージされたテーブルの少なくとも1つの列と一致する。一致した列は「joiner」タイプのマッピングフラグメントの出力データフィールドグループ、例えば、「output」データフィールドグループ670(例えば、明瞭にするために折り畳まれた図で図6Fに示される)に示される。
図6Gは、一実施形態による、図6Fに示されるデータフロー602のコンパイルされた実行可能ランタイム定義を示す。コンパイルモジュール240は、動的リンク630を、それぞれが上流マッピングフラグメント620の静的ポートを下流マッピングフラグメント628の静的ポートにマッピングする一組の2つの静的リンク662で置き換える。さらに、コンパイルモジュール240は、動的リンク648を、それぞれが上流マッピングフラグメント628の静的ポートを下流マッピングフラグメント640の静的ポートにマッピングする一組の2つの静的リンク664で置き換える。コンパイルモジュール240は動的ポートおよび対応するデータフィールドグループを除去し、例えば、動的ポート「From_Read_Customers」および「Trimmed_Strings」は、マッピングフラグメント628から除去される。さらに、動的ポート「From_Expression」およびデータフィールドグループ「Output」、「Master」および「Detail」は、マッピングフラグメント640から除去される。他のマッピングフラグメントからの「Fields」データフィールドグループも同様に除去される。静的リンク658は変更されないことに留意されたい。
図7は、一実施形態によるユーザインタフェース600内のリンクされたアイコンを示す。ユーザインタフェース600は、図6Cに示すデータフロー602のアイコンビューを含む。アイコンビューはデータフロー602の各マッピングフラグメントのアイコンを表示するが、マッピングフラグメントのデータフィールドは表示しない。特に、マッピングフラグメント620およびマッピングフラグメント628は、動的リンク630によってリンクされる「read data」アイコン700および「expression」アイコン710によって表される。アイコンビューは、データフロー602の縮小ビューをユーザに提示する。多数のマッピングフラグメントおよびデータフィールドを含むデータフローの場合、縮小ビューは、データフローの詳細によって混乱しないユーザフレンドリなユーザインタフェース600を提供する。
一実施形態では、データフロー設計システム100がデフォルトでユーザインタフェース600内のアイコンビューにデータフローを表示する。したがって、データフローに追加されたマッピングフラグメントは、対応するアイコンによって表される。ユーザインタフェース600はユーザがアイコンビュー(すなわち、図7に示されるような)とレギュラービュー(すなわち、図6Cに示されるような)との間で切り替えることを可能にするユーザプリファレンスを含む。
まとめ
本発明の実施形態の上述の説明は例示の目的で提示されたものであり、網羅的であること、または本発明を開示された厳密な形態に限定することを意図するものではない。当業者は、上記の開示に照らして多くの修正および変形が可能であることを理解することができる。
本発明の実施形態の上述の説明は例示の目的で提示されたものであり、網羅的であること、または本発明を開示された厳密な形態に限定することを意図するものではない。当業者は、上記の開示に照らして多くの修正および変形が可能であることを理解することができる。
この説明のいくつかの部分は、情報に対する動作のアルゴリズムおよび記号表現に関して本発明の実施形態を説明する。これらのアルゴリズムの説明および表現は、データ処理技術の当業者によって一般的に使用され、彼らの作業の内容を他の当業者に効果的に伝える。これらの動作は機能的に、計算的に、または論理的に説明されているが、コンピュータプログラムまたは等価の電気回路、マイクロコードなどによって実施されると理解される。さらに、一般性を失うことなく、これらの動作の配置をモジュールと呼ぶことが便利な場合もある。説明された動作およびそれらの関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せで具現化されてもよい。
本明細書で説明されるステップ、動作、またはプロセスのいずれも、単独で、または他のデバイスと組み合わせて、1つまたは複数のハードウェアまたはソフトウェアモジュールで実行または実装することができる。一実施形態では、ソフトウェアモジュールが、コンピュータプログラムコードを記録したコンピュータ可読非一時的媒体を含むコンピュータプログラム製品で実装され、コンピュータプログラムコードは説明されたステップ、動作、またはプロセスのいずれかまたはすべてを実行するためにコンピュータプロセッサによって実行することができる。
本発明の実施形態は、本明細書で説明する計算プロセスによって生成される製品にも関する。そのような製品はコンピューティングプロセスから生じる情報を含むことができ、その情報は、非一時的で有形のコンピュータ可読記憶媒体に格納され、本明細書で説明されるコンピュータプログラム製品または他のデータ組合せの任意の実施形態を含むことができる。
最後に、本明細書で使用される言語は主に、読みやすさおよび説明の目的のために選択されており、本発明の主題を描写または限定するために選択されていない場合がある。したがって、本発明の範囲は、この詳細な説明によってではなく、むしろ、本明細書に基づく出願に基づいて発行される任意の特許請求の範囲によって制限されることが意図される。したがって、本発明の実施形態の開示は以下の特許請求の範囲に記載される本発明の範囲を例示することを意図するものであり、限定するものではない。
Claims (21)
- データ統合開発環境において、データマッピングをモデル化するデータフローの定義を受信する工程であって、
1)データフローに包含するための複数のマッピングフラグメントを受信するステップであって、各マッピングフラグメントは複数のポートを備え、前記複数のポートは少なくとも1つの動的ポートまたは1つの静的ポートを含み、動的ポートは前記複数のポートの任意の数のポートに対応し、静的ポートは前記複数のポートの1つのポートに対応し、各ポートは少なくとも1つのデータフィールドに対応する、ステップと、
2)前記複数のマッピングフラグメントの上流マッピングフラグメントの動的ポートと前記複数のマッピングフラグメントの下流マッピングフラグメントの動的ポートとの間に、少なくとも1つの動的リンクを生成する入力を受信するステップであって、前記動的リンクは動的ポートの全てのデータフィールドを動的ポートに提供する、ステップと、
3)前記複数のマッピングフラグメントの上流マッピングフラグメントの静的ポートと前記複数のマッピングフラグメントの下流マッピングフラグメントの静的ポートとの間に、少なくとも1つの静的リンクを生成する入力を受信するステップであって、前記静的リンクは静的ポートの全てのデータフィールドを静的ポートに提供する、ステップと、
を含む工程と、
前記複数のマッピングフラグメントの少なくとも1つのマッピングフラグメントに適用するために、1つ以上の構成パラメータを受信する工程であって、各構成パラメータは少なくとも1つの構成パラメータ値を含む、工程と、
1つ以上の構成パラメータの各構成パラメータ値を、対応するランタイム値で置き換えることにより、1つ以上の構成パラメータを前記少なくとも1つのマッピングフラグメントに適用する工程と、
前記データフローの定義と前記ランタイム値とに少なくとも部分的に基づいて、実行可能ランタイム定義をコンパイルする工程と、を含む方法。 - 実行可能ランタイム定義を実行する工程と、
前記実行の結果とデータベースからの入力データとに少なくとも部分的に基づいてレポートを生成する工程とをさらに含む、請求項1に記載の方法。 - 前記データフローの定義を受信する工程が、さらに、
前記複数のマッピングフラグメントの参照上流マッピングフラグメントと、前記複数のマッピングフラグメントの参照下流マッピングフラグメントとの間のランタイムリンクを受信するステップを含み、
前記実行可能ランタイム定義を実行する工程が、前記参照上流マッピングフラグメントの1つ以上のポートのすべてのデータフィールドを、前記参照下流マッピングフラグメントの1つ以上のポートに提供することによって、前記ランタイムリンクを解決することを含む、請求項2に記載の方法。 - 前記複数のマッピングフラグメントの各マッピングフラグメントは、入力データソース、出力データソース、または変換に対応する、請求項2に記載の方法。
- 前記複数のマッピングフラグメントのうち、入力データソースまたは出力データソースに対応するマッピングフラグメントを修正することをさらに含み、
前記実行可能ランタイム定義の実行は、当該実行可能ランタイム定義の再コンパイルを必要としない、請求項4に記載の方法。 - 前記1つ以上の構成パラメータの少なくとも1つの構成パラメータは、排他的または包含的フィルタを記述する規則であり、
前記1つ以上の構成パラメータを前記少なくとも1つのマッピングフラグメントに適用する工程は、前記排他フィルタによって示されるデータフィールドのタイプに基づいて、前記少なくとも1つの構成パラメータの構成パラメータ値を、対応するランタイム値に置き換えることをさらに含む、請求項1に記載の方法。 - 前記1つ以上の構成パラメータの少なくとも1つの構成パラメータは、前記複数のマッピングフラグメントのうちの1つのマッピングフラグメントの参照動的ポートを示すプロキシであり、
前記1つ以上の構成パラメータを前記少なくとも1つのマッピングフラグメントに適用する工程は、前記少なくとも1つの構成パラメータ値の構成パラメータ値を、前記参照動的ポートに基づき、対応するランタイム値に置き換えることをさらに含む、請求項1に記載の方法。 - 前記1つ以上の構成パラメータのうちの少なくとも1つの構成パラメータは、変換に対応するマクロであり、
前記1つ以上の構成パラメータを前記少なくとも1つのマッピングフラグメントに適用する工程は、前記少なくとも1つのマッピングフラグメントの複数のポートの各ポートに前記変換を適用することによって、少なくとも1つの構成パラメータの構成パラメータ値を、対応するランタイム値に置き換えることをさらに含む、請求項1に記載の方法。 - 前記複数のマッピングフラグメントの上流マッピングフラグメントの動的ポートと、前記複数のマッピングフラグメントの下流マッピングフラグメントの動的ポートとの間に少なくとも1つの動的リンクを生成する入力を受信するステップは、前記動的ポートの全てのデータフィールドに対応して、前記下流マッピングフラグメントの前記動的ポートについて、複数の生成ポートを生成することをさらに含む、請求項1に記載の方法。
- プロセッサによって実行可能なコンピュータプログラムであって、ユーザインタフェースを生成するコンピュータプログラムを記憶する非一時的なコンピュータ可読メモリであって、
前記ユーザインタフェースは、
データフローを表示するためのデータフロー表示領域と、
前記データフローにマッピングフラグメントを追加するための複数のアイコンを含むデータフロー表示領域に隣接するデータフローアイコン選択領域とを有し、
前記ユーザインタフェースは、前記コンピュータプログラムによって、
データフローアイコン選択における複数のアイコンのうちの1つのアイコンを選択する入力を受信すると、少なくとも1つの動的ポートまたは1つの静的ポートを含む新しいマッピングフラグメントをデータフロー表示エリアに表示する工程であって、動的ポートは2つ以上のデータフィールドのグループに対応し、静的ポートは1つのデータフィールドに対応する、工程と、
前記データフロー表示領域内の上流マッピングフラグメントの2つ以上のデータフィールドのグループを、前記データフロー表示領域内の下流マッピングフラグメントにドラッグする入力を受信すると、前記上流マッピングフラグメントと前記下流マッピングフラグメントとの間の動的リンクを表す視覚的接続を表示し、前記上流マッピングフラグメントの動的ポートにおいてドラッグされた前記2つ以上のフィールドのグループを、前記下流マッピングフラグメントに新たに生成されたポートに追加する工程とを実行する、コンピュータ可読メモリ。 - 前記ユーザインタフェースは、前記コンピュータプログラムによって、さらに、
前記データフロー表示領域内の上流マッピングフラグメントの2つ以上のデータフィールドのグループを、前記データフロー表示領域内の下流マッピングフラグメントにドラッグする入力を受信すると、前記上流マッピングフラグメントと前記下流マッピングフラグメントとの間の静的リンクを表す視覚的接続を表示し、前記上流マッピングフラグメントの静的ポートにおいてドラッグされた前記2つ以上のフィールドのグループを、前記下流マッピングフラグメントに新たに生成されたポートに追加する工程とを実行する、請求項10に記載のコンピュータプログラム。 - 前記ユーザインタフェースは、前記データフローの上流マッピングフラグメントと前記データフローの下流マッピングフラグメントとの間のランタイムリンクを示すランタイム視覚的接続をさらに含み、前記ランタイム視覚的接続は、動的リンクを示す前記視覚的接続とは視覚的に異なる、請求項10に記載のコンピュータプログラム。
- エンコードされた命令を格納した非一時的なコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、プロセッサによって実行されたとき、当該プロセッサに、
データ統合開発環境において、データマッピングをモデル化するデータフローの定義を受信する工程であって、
1)データフローに包含するための複数のマッピングフラグメントを受信するステップであって、各マッピングフラグメントは複数のポートを備え、前記複数のポートは少なくとも1つの動的ポートまたは1つの静的ポートを含み、動的ポートは前記複数のポートの任意の数のポートに対応し、静的ポートは前記複数のポートの1つのポートに対応し、各ポートは少なくとも1つのデータフィールドに対応する、ステップと、
2)前記複数のマッピングフラグメントの上流マッピングフラグメントの動的ポートと前記複数のマッピングフラグメントの下流マッピングフラグメントの動的ポートとの間に、少なくとも1つの動的リンクを生成する入力を受信するステップであって、前記動的リンクは動的ポートの全てのデータフィールドを動的ポートに提供する、ステップと、
3)前記複数のマッピングフラグメントの上流マッピングフラグメントの静的ポートと前記複数のマッピングフラグメントの下流マッピングフラグメントの静的ポートとの間に、少なくとも1つの静的リンクを生成する入力を受信するステップであって、前記静的リンクは静的ポートの全てのデータフィールドを静的ポートに提供する、ステップと、
を含む工程と、
前記複数のマッピングフラグメントの少なくとも1つのマッピングフラグメントに適用するために、1つ以上の構成パラメータを受信する工程であって、各構成パラメータは少なくとも1つの構成パラメータ値を含む、工程と、
1つ以上の構成パラメータの各構成パラメータ値を、対応するランタイム値で置き換えることにより、1つ以上の構成パラメータを前記少なくとも1つのマッピングフラグメントに適用する工程と、
前記データフローの定義と前記ランタイム値とに少なくとも部分的に基づいて、実行可能ランタイム定義をコンパイルする工程と、
を実行させる、コンピュータプログラム。 - 前記プロセッサによって実行されると、前記プロセッサに、前記実行可能ランタイム定義を実行させる命令をさらに含む、請求項13に記載のコンピュータプログラム製品。
- 前記データフローの定義を受信する工程が、さらに、
前記複数のマッピングフラグメントの参照上流マッピングフラグメントと、前記複数のマッピングフラグメントの参照下流マッピングフラグメントとの間のランタイムリンクを受信するステップを含み、
前記実行可能ランタイム定義を実行する工程が、前記参照上流マッピングフラグメントの1つ以上のポートのすべてのデータフィールドを、前記参照下流マッピングフラグメントの1つ以上のポートに提供することによって、前記ランタイムリンクを解決することを含む、請求項14に記載のコンピュータプログラム製品。 - 前記複数のマッピングフラグメントの各マッピングフラグメントは、入力データソース、出力データソース、または変換に対応する、請求項14に記載のコンピュータプログラム製品。。
- 前記複数のマッピングフラグメントのうち、入力データソースまたは出力データソースに対応するマッピングフラグメントを修正することをさらに含み、
前記実行可能ランタイム定義の実行は、当該実行可能ランタイム定義の再コンパイルを必要としない、請求項16に記載のコンピュータプログラム製品。 - 前記1つ以上の構成パラメータの少なくとも1つの構成パラメータは、排他的または包含的フィルタを記述する規則であり、
前記1つ以上の構成パラメータを前記少なくとも1つのマッピングフラグメントに適用する工程は、前記排他フィルタによって示されるデータフィールドのタイプに基づいて、前記少なくとも1つの構成パラメータの構成パラメータ値を、対応するランタイム値に置き換えることをさらに含む、請求項13に記載のコンピュータプログラム製品。 - 前記1つ以上の構成パラメータの少なくとも1つの構成パラメータは、前記複数のマッピングフラグメントのうちの1つのマッピングフラグメントの参照動的ポートを示すプロキシであり、
前記1つ以上の構成パラメータを前記少なくとも1つのマッピングフラグメントに適用する工程は、前記少なくとも1つの構成パラメータ値の構成パラメータ値を、前記参照動的ポートに基づき、対応するランタイム値に置き換えることをさらに含む、請求項13に記載のコンピュータプログラム製品。 - 前記1つ以上の構成パラメータのうちの少なくとも1つの構成パラメータは、変換に対応するマクロであり、
前記1つ以上の構成パラメータを前記少なくとも1つのマッピングフラグメントに適用する工程は、前記少なくとも1つのマッピングフラグメントの複数のポートの各ポートに前記変換を適用することによって、少なくとも1つの構成パラメータの構成パラメータ値を、対応するランタイム値に置き換えることをさらに含む、請求項13に記載のコンピュータプログラム製品。 - 前記複数のマッピングフラグメントの上流マッピングフラグメントの動的ポートと、前記複数のマッピングフラグメントの下流マッピングフラグメントの動的ポートとの間に少なくとも1つの動的リンクを生成する入力を受信するステップは、前記動的ポートの全てのデータフィールドに対応して、前記下流マッピングフラグメントの前記動的ポートについて、複数の生成ポートを生成することをさらに含む、請求項13に記載のコンピュータプログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/152,502 US10509798B2 (en) | 2016-05-11 | 2016-05-11 | Data flow design with static and dynamic elements |
US15/152,502 | 2016-05-11 | ||
PCT/US2017/032075 WO2017197068A1 (en) | 2016-05-11 | 2017-05-11 | Data flow design with static and dynamic elements |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019518275A true JP2019518275A (ja) | 2019-06-27 |
Family
ID=60268047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018558682A Pending JP2019518275A (ja) | 2016-05-11 | 2017-05-11 | 静的および動的要素を有するデータフロー設計 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10509798B2 (ja) |
EP (1) | EP3455713A1 (ja) |
JP (1) | JP2019518275A (ja) |
AU (1) | AU2017264845A1 (ja) |
CA (1) | CA3023661A1 (ja) |
WO (1) | WO2017197068A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11645046B2 (en) * | 2017-07-03 | 2023-05-09 | Unqork, Inc. | Systems and methods for development and deployment of software platforms having advanced workflow and event processing components |
US11126411B2 (en) * | 2018-12-13 | 2021-09-21 | Sap Se | Dashboard user interface for data driven applications |
USD886143S1 (en) | 2018-12-14 | 2020-06-02 | Nutanix, Inc. | Display screen or portion thereof with a user interface for database time-machine |
US10817157B2 (en) | 2018-12-20 | 2020-10-27 | Nutanix, Inc. | User interface for database management services |
US11816066B2 (en) | 2018-12-27 | 2023-11-14 | Nutanix, Inc. | System and method for protecting databases in a hyperconverged infrastructure system |
US11010336B2 (en) | 2018-12-27 | 2021-05-18 | Nutanix, Inc. | System and method for provisioning databases in a hyperconverged infrastructure system |
US11461333B2 (en) * | 2019-01-15 | 2022-10-04 | Business Objects Software Ltd. | Vertical union of feature-based datasets |
US11165846B2 (en) * | 2019-06-21 | 2021-11-02 | International Business Machines Corporation | Dynamically converting static and dynamic connections in a streaming application |
US11222012B2 (en) * | 2019-06-28 | 2022-01-11 | Informatica Llc | Method, apparatus, and computer-readable medium for dynamic hierarchical data flow mapping |
US11989741B2 (en) * | 2019-07-02 | 2024-05-21 | Bsi Business Systems Integration Ag | Campaign management system—multiple instances |
US11087333B2 (en) * | 2019-07-30 | 2021-08-10 | Salesforce.Com, Inc. | Facilitating session-based read/write of context variables to share information across multiple microservices |
CN111651155B (zh) * | 2020-06-03 | 2020-12-11 | 北京智趣工场教育科技有限公司 | 一种编程学习操作系统及外接交互系统 |
US11604705B2 (en) | 2020-08-14 | 2023-03-14 | Nutanix, Inc. | System and method for cloning as SQL server AG databases in a hyperconverged system |
US11907167B2 (en) | 2020-08-28 | 2024-02-20 | Nutanix, Inc. | Multi-cluster database management services |
US11640340B2 (en) | 2020-10-20 | 2023-05-02 | Nutanix, Inc. | System and method for backing up highly available source databases in a hyperconverged system |
US11604806B2 (en) | 2020-12-28 | 2023-03-14 | Nutanix, Inc. | System and method for highly available database service |
US11892918B2 (en) | 2021-03-22 | 2024-02-06 | Nutanix, Inc. | System and method for availability group database patching |
US11803368B2 (en) | 2021-10-01 | 2023-10-31 | Nutanix, Inc. | Network learning to control delivery of updates |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002232830A1 (en) * | 2000-12-19 | 2002-07-01 | Mediagate, Inc. | Software architecture for interaction with dynamic data sources and role based access control |
US7523288B2 (en) * | 2006-09-06 | 2009-04-21 | Microsoft Corporation | Dynamic fragment mapping |
US8769242B2 (en) * | 2012-02-14 | 2014-07-01 | International Business Machines Corporation | Translation map simplification |
-
2016
- 2016-05-11 US US15/152,502 patent/US10509798B2/en active Active
-
2017
- 2017-05-11 JP JP2018558682A patent/JP2019518275A/ja active Pending
- 2017-05-11 CA CA3023661A patent/CA3023661A1/en not_active Abandoned
- 2017-05-11 AU AU2017264845A patent/AU2017264845A1/en not_active Abandoned
- 2017-05-11 EP EP17796820.3A patent/EP3455713A1/en not_active Withdrawn
- 2017-05-11 WO PCT/US2017/032075 patent/WO2017197068A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
US20170329786A1 (en) | 2017-11-16 |
US10509798B2 (en) | 2019-12-17 |
AU2017264845A1 (en) | 2019-01-03 |
CA3023661A1 (en) | 2017-11-16 |
EP3455713A1 (en) | 2019-03-20 |
WO2017197068A1 (en) | 2017-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10509798B2 (en) | Data flow design with static and dynamic elements | |
CN111177231B (zh) | 报表生成方法和报表生成装置 | |
AU2010337218B2 (en) | Specifying user interface elements | |
CN107111639B (zh) | 构建报表 | |
US8769242B2 (en) | Translation map simplification | |
US7562340B2 (en) | Method for graphically building business rule conditions | |
US8963922B2 (en) | Automatic presentational level compositions of data visualizations | |
US20150220572A1 (en) | Generating analytics application using reusable application modules | |
US20080109283A1 (en) | Apparatus and method for mixing business intelligence and business process workflows | |
Powell | Microsoft Power BI cookbook: Creating business intelligence solutions of analytical data models, reports, and dashboards | |
AU2017216247B2 (en) | Systems and methods for using entity/relationship model data to enhance user interface engine | |
US9990348B2 (en) | System and method for managing data using a spreadsheet model | |
US8489561B1 (en) | Learning enterprise portal content meta-model | |
GB2509090A (en) | An extract-transform-load (ETL) processor controller indicates a degree of preferredness of a proposed placement of data | |
KR100581687B1 (ko) | 이기종의 데이타베이스 관리시스템 통합방법 및 그 방법을실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는기록매체 | |
US10942732B1 (en) | Integration test framework | |
US8510343B2 (en) | Cogeneration of database applications and their databases | |
US10162877B1 (en) | Automated compilation of content | |
US9721041B2 (en) | Configurable data analysis using a configuration model | |
Leung et al. | Setting Up Your Data | |
Latino et al. | Pentaho Analytics for MongoDB Cookbook | |
Sinay | Microsoft Dynamics CRM 2011 Reporting | |
WO2008057947A1 (en) | Apparatus and method for creating business process workflows within business intelligence systems |