(57)【要約】【課題】  オブジェクトモデルにおける影響分析を提供する。【解決手段】  影響分析が、特定のオブジェクトが依存する、または使用するオブジェクトを判定する能力、ならびに特定のオブジェクトに依存する、または特定のオブジェクトを使用するオブジェクトを判定する能力を提供する。オブジェクトという用語は、例えば、タスクおよび／またはオブジェクトの型を指すことが可能である。影響分析は、大量の複雑なドキュメントにおいてユーザの生産性を向上させるために望ましい。というのは、影響分析は、あるオブジェクトが、システム内の他のオブジェクト群によってどのように、どこで使用されているかを判定することを容易にし、多大な手作業を不要にする可能性があるからである。【選択図】  図５
2006012146.tif 000002
【特許請求の範囲】
【請求項１】
コンポーネントをリソースに関連付けるための方法であって、
前記コンポーネントと前記リソースとを含むパッケージを受け取るステップと、
前記コンポーネントと前記リソースの間の関係を判定するステップと、
追跡リストの中で前記リソースに関する追跡リストエントリを作成するステップと
を備えることを特徴とする方法。
【請求項２】
前記コンポーネントは、タスクであり、前記リソースは、オブジェクトの型であることを特徴とする請求項１に記載の方法。
【請求項３】
前記オブジェクトの型は、接続、読み取りアクセス変数、および読み取り／書き込みアクセス変数のいずれかであることを特徴とする請求項２に記載の方法。
【請求項４】
前記コンポーネントと前記リソースの間の前記関係を判定するステップは、リファレンストラッカにアクセスして、前記コンポーネントから前記リソースへのリファレンスを作成するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記コンポーネントと前記リソースの間の前記関係を判定するステップは、前記コンポーネントと前記リソースの間でリンクを作成するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記追跡リストは、前記リソースに影響を与えるオブジェクトのリストを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記追跡リストは、オブジェクト間の暗黙の関係を公開することを特徴とする請求項１に記載の方法。
【請求項８】
受け取るステップ、判定するステップ、および作成するステップは、オブジェクトモデル内で行われることを特徴とする請求項１に記載の方法。
【請求項９】
前記リソースに関してオブジェクトから依存関係データを受け取り、前記依存関係データに基づいて前記追跡リストを更新するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１０】
前記追跡リストに基づいて影響分析を判定し、前記影響分析をユーザまたはアプリケーションに提供するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１１】
影響分析を提供する方法であって、
リソースに影響を与えるオブジェクトのリストを含む追跡リストを生成するステップと、
前記リソースを変更するステートメントを受け取るステップと、
前記リソースを変更する前記ステートメントによって影響される前記追跡リストからのオブジェクトを含む影響分析を判定するステップと、
前記影響分析をユーザまたはアプリケーションに提供するステップと
を備えることを特徴とする方法。
【請求項１２】
生成するステップ、受け取るステップ、および判定するステップは、オブジェクトモデル内で行われることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記リソースは、オブジェクトの型であることを特徴とする請求項１１に記載の方法。
【請求項１４】
前記オブジェクトの型は、接続、読み取りアクセス変数、および読み取り／書き込みアクセス変数のいずれかであることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記追跡リストは、オブジェクト間の暗黙の関係を公開することを特徴とする請求項１１に記載の方法。
【請求項１６】
リソースに影響を与えるオブジェクトのリストを含む、オブジェクトモデル内の追跡リストを含むデータ構造を格納していることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１７】
前記追跡リストは、オブジェクト間の暗黙の関係を公開することを特徴とする請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記リソースは、オブジェクトの型であることを特徴とする請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記オブジェクトの型は、接続、読み取りアクセス変数、および読み取り／書き込みアクセス変数のいずれかであることを特徴とする請求項１８に記載のコンピュータ読み取り可能な記録媒体。
【請求項２０】
影響分析のためのシステムであって、
オブジェクトモデル内で動作してコンポーネントとリソースの間の関係を判定するリファレンストラッカと、
前記リソースに影響を与えるオブジェクトのリストを含む、前記リソースに関する追跡リストと
を備えた含むことを特徴とするシステム。
【請求項２１】
前記コンポーネントは、タスクであり、前記リソースは、オブジェクトの型であることを特徴とする請求項２０に記載のシステム。
【請求項２２】
前記オブジェクトの型は、接続、読み取りアクセス変数、および読み取り／書き込みアクセス変数のいずれかであることを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記追跡リストは、オブジェクト間の暗黙の関係を公開することを特徴とする請求項２０に記載のシステム。
【請求項２４】
前記リソースを変更するステートメントによって影響される前記追跡リストからのオブジェクトを含む影響分析を判定し、前記影響分析をユーザまたはアプリケーションに提供するためのプロセッサをさらに備えたことを特徴とする請求項２０に記載のシステム。
【請求項２５】
ソースからデータを受け取るデータ取得システムと、
データ変換パイプラインであって、
複数のコンポーネントオブジェクトと、
ユーザが、データ変換を、グラフ内の一連の互いに接続された、前記複数のコンポーネントオブジェクトのなかからのコンポーネントオブジェクトにそれぞれが対応するノードとして表現することができるグラフィカルユーザインタフェースと、
前記グラフを走査して、前記グラフをデータフロー実行プラン、および少なくとも１つの作業項目を含む少なくとも１つの作業リストに変換するインタプリタと、
前記データフロー実行プランに基づき、前記複数のコンポーネントオブジェクトからインスタンス化されたコンポーネントのセットを含むデータフロー実行を構築するパイプラインエンジンと
を含むデータ変換パイプラインと、
オブジェクトモデル内で動作してコンポーネントとリソースの間の関係を判定するリファレンストラッカと、
前記リソースに影響を与えるオブジェクトのリストを含む、前記リソースに関する追跡リストと、
データを格納する宛先データ記憶システムと
を備えたことを特徴とするデータ変換サービス。
【請求項２６】
前記コンポーネントは、タスクであり、前記リソースは、オブジェクトの型であることを特徴とする請求項２５に記載のデータ変換サービス。
【請求項２７】
前記オブジェクトの型は、接続、読み取りアクセス変数、および読み取り／書き込みアクセス変数のいずれかであることを特徴とする請求項２６に記載のデータ変換サービス。
【請求項２８】
前記追跡リストは、オブジェクト間の暗黙の関係を公開することを特徴とする請求項２５に記載のデータ変換サービス。
【請求項２９】
前記リソースを変更するステートメントによって影響される前記追跡リストからのオブジェクトを含む影響分析を判定するためのプロセッサをさらに備えたことを特徴とする請求項２５に記載のデータ変換サービス。
【請求項３０】
前記宛先データ記憶システムは、前記影響分析を格納することを特徴とする請求項２９に記載のデータ変換サービス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、オブジェクトモデルの分野に関し、より詳細には、データ構造内またはデータシステム内のオブジェクト間の関係を分析することに関する。
【背景技術】
【０００２】
ストレージシステムは、しばしば、オブジェクトをグラフなどの特定の構造に構成する。構造内のオブジェクト間に暗黙の依存関係が存在し、したがって、１つのオブジェクトに対する変更により、構造内の他のオブジェクト群、またはシステム全体が変更されるか、または別の形で影響を受ける可能性がある。オブジェクトに対する変更が構造に、またはシステム全体に与える影響を判定する際に、問題が存在する。変更の影響は、構造内のオブジェクト間の対話が、構造内のオブジェクトの位置に完全に基づく場合だけに明白である。これは、しばしば、該当せず、特に構造内のオブジェクトが実行可能コードから成り、このため、任意の形で動作する可能性がある場合にそうである。オブジェクト間の依存関係が直ちに明白でない環境において、変更の影響を知ることの困難を克服する、すなわち、影響分析の必要性が存在する。
【０００３】
１つのタイプのストレージシステムが、データベース管理システムである。コンピュータ内部のリレーショナルデータベース管理システム内のデータレコードは、同一の列をすべてが有する行の集合であるテーブルの中に保持される。各列は、行を構成するデータレコードに関して、特定のタイプのデータに関する情報を保持する。１つまたは複数のインデックスが、各テーブルに関連していることが可能である。インデックスは、テーブルの１つまたは複数の列の中のデータに基づく、テーブルの中のデータレコードに対する順序付きのポインタセットである。一部のケースでは、クエリによって必要とされるすべての情報がインデックスの中で見出されることが可能であり、実際のテーブルを探索することが不必要になる。インデックスは、インデックスエントリキーのキー列値を有するテーブル内のデータベースレコードに対するインデックスキーおよびポインタを含む、行、またはインデックスエントリから成る。インデックスキーは、テーブル内のレコードに順序を与えるキー列を含む。インデックスキー列は、テーブルの列を含み、その特定の列に関して可能な値のいずれを含むことも可能である。テーブルにアクセスするのに頻繁に使用される列をキー列として使用することができる。
【０００４】
データベーステーブル内の外部キーワードとも呼ばれる外部キーは、使用されているテーブル内の、特定のキー、普通は主キーを指す（または目標とする）別のテーブルからのキーである。主キーは、他のテーブル群からの複数の外部キーによって目標とされることが可能である。しかし、主キーは、必ずしも、いずれか外部キーの目標でなければならないということはない。ユーザの特定のニーズが変化した場合、テーブル内の主キーを変更することが可能である。例えば、市内の人々が、１つの用途では、その人々の運転免許書番号に従って一意的に識別されることが可能であるが、別の状況では、人々の電話番号に従って人々を識別する方が好都合である可能性がある。テーブル内の主キーが変更されると、その結果、関連する外部キーのセットが、存在する場合、しばしば、変更される。外部キーと主キーの間の関係は、判定するのが容易であり、外部キーに対する変更が主キーにどのように影響を与えるかを理解することは容易であり、その逆も同様である。
【０００５】
ソフトウェアコンポーネント間で標準の相互接続機構を提供する様々なオブジェクトモデルが定義されている。それらのオブジェクトモデルの下で、ソフトウェアコンポーネントは、オブジェクト指向の意味において「オブジェクト」であり、ソフトウェアコンポーネントは、「インタフェース」を提供し、その「インタフェース」を介してコンポーネントの機能にアクセスすることができる。オブジェクトモデルに関して、オブジェクトモデル内のあるモデルに対する変更が、構造に、またはシステム全体に与える影響を判定することは、非常に困難である。
【０００６】
多くの組織は、共同（ｃｏｒｐｏｒａｔｅ）意思決定を改善するのにデータを集中化する必要がある。しかし、組織のデータは、様々なフォーマットで、異なる場所に格納されている可能性がある。ＤＴＳ（データ変換サービスシステム）は、異なるソースからのデータを抽出すること、変換すること、およびＤＴＳ接続によってサポートされる単一の宛先または複数の宛先に集約することを可能にするツールセットを提供することにより、この必要性に対処する。ＤＴＳツールを使用してＤＴＳパッケージをグラフィックで（ｇｒａｐｈｉｃａｌｌｙ）構築すること、またはＤＴＳオブジェクトモデルを使用してパッケージをプログラミングすることにより、カスタムデータ移動ソリューションを所望に合わせて仕立てることができる。
【０００７】
ＤＴＳパッケージは、ＤＴＳツールで、またはプログラミングにより様々な協働するコンピューティングアプリケーションに、または構造化されたストレージファイルにアセンブルされた、接続、ＤＴＳタスク、ＤＴＳ変換、変数、およびワークフロー制約の編成された集合である。一般に、各パッケージは、パッケージが実行されると、順次に、または並行に実行される１つまたは複数のステップを含む。実行されると、パッケージは、正しいデータソースに接続し、データおよびデータベースオブジェクトをコピーし、データを変換し、他のユーザまたはプロセスにイベントについて通知する。パッケージは、例えば、編集されること、パスワード保護されること、実行がスケジュールされること、およびバージョン別に取り出されることが可能である。
【０００８】
ユーザは、通常、様々なコンポーネントを１つずつ追加した後、変更を試験することにより、パッケージを少しずつ構築する、または編集することができる。そのようなパッケージは、任意の複雑さであることが可能であり、プログラムを実際に実行することなしに、第１のオブジェクトに対する変更または更新が第２のオブジェクトに与える影響を判定することは、可能であったとしても困難である。これにより、所望の動作を得るのに、試行錯誤のサイクルがもたらされる。
【０００９】
いくつかの文献に上述のような従来の技術に関連した技術内容が開示されている（例えば、特許文献１参照）。
【００１０】
【特許文献１】米国特許第６、３９７、２０４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１１】
以上のことから、従来の技術を克服するシステムおよび方法の必要性が存在することが認識されよう。
【００１２】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、オブジェクトモデルにおける影響分析を可能とする、影響分析のためのシステムおよび方法を提供することにある。
【課題を解決するための手段】
【００１３】
以下の概要は、本発明の様々な態様の概観を提供する。以下の概要は、本発明の重要な態様のすべての網羅的な説明を提供することも、本発明の範囲を定義することも意図していない。むしろ、この概要は、その後の詳細な説明、および図の概説の役割をすることを目的とする。
【００１４】
本発明は、特定のオブジェクトが依存する、または使用するオブジェクトを判定する能力、ならびに特定のオブジェクトに依存する、または特定のオブジェクトを使用するオブジェクトを判定する能力を提供する影響分析に関する。オブジェクトという用語は、例えば、タスクおよび／またはオブジェクトの型を指すことが可能である。影響分析は、大量の複雑なドキュメントにおいてユーザの生産性を向上させるために望ましい。というのは、影響分析は、あるオブジェクトが、システム内の他のオブジェクト群によってどのように、どこで使用されているかを判定することを容易にし、多大な手作業を不要にする可能性があるからである。
【００１５】
典型的な実施形態は、リソースを使用するコンポーネント（タスク）が、自らが使用するリソース（オブジェクトの型）を宣言することを可能にするリファレンストラッカ（ｔｒａｃｋｅｒ）を使用する。つまり、リファレンストラッカは、リソースを使用するコンポーネントから、使用されるリソースに対するリファレンスを作成することにより、タスクおよびオブジェクトの型の間の関係を記録する。次に、接続とタスクの間、および変数とタスクの間でリンクが作成される。リファレンストラッカは、影響分析のために追跡されるそれぞれのオブジェクトの型に関して提供される追跡リストをポピュレートする。あるオブジェクトが別のオブジェクトに対する依存関係を前提とする（ａｓｓｕｍｅ）（または使用する）場合、そのオブジェクトは、その依存関係をリファレンストラッカに登録し、リファレンストラッカは、新たなエントリを追跡リストに追加する。その使用が変更された、または別の形で終了された場合、リファレンストラッカは、再び通知を受け、追跡リストから対応するエントリが削除される。
【００１６】
本発明の諸態様によれば、追跡リストが生成された後、あるオブジェクトの型に対する変更が受け取られることが可能である。そのオブジェクトに対して変更を行うことの影響は、追跡リストを参照して、オブジェクトモデル内の他のいずれのオブジェクトの型が、そのオブジェクトを使用するものとして登録されているかを判定することにより、判定することができる。次に、その情報が、ユーザまたはアプリケーションに戻される。
【００１７】
本発明の他の特徴および利点は、本発明の以下の詳細な説明、および添付の図面から明白となる可能性がある。
【００１８】
以上の概要、ならびに好ましい実施形態の以下の詳細な説明は、添付の図面と併せて読むことで、よりよく理解される。本発明を例示する目的で、図面では、本発明の典型的な構成を示すが、本発明は、開示する特定の方法および手段（ｉｎｓｔｒｕｍｅｎｔａｌｉｔｉｅｓ）に限定されない。
【発明の効果】
【００１９】
本発明によれば、オブジェクトモデルにおける影響分析を可能とすることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。
【００２１】
本件を法的要件を満たすように具体的に説明する。ただし、説明自体は、本特許の範囲を制限するものではない。むしろ、本発明者らは、請求する本件が、他の現在の技術または将来の技術と関連して、異なるステップ、または本明細書で説明するステップに類似したステップの組み合わせを含むように、他の形で実施することも可能であることを企図している。さらに、使用する方法の異なる諸要素を表すのに「ステップ」という用語を本明細書で使用する可能性があるが、この用語は、個々のステップの順序が明示的に説明されない限り、また説明される場合を除き、本明細書で開示する様々なステップの間で特定の順序を暗示するものと解釈してはならない。
【００２２】
（典型的なコンピューティング環境）
本発明の多数の実施形態をコンピュータ上で実行することができる。図１および以下の説明は、本発明を実施することができる適切なコンピューティング環境の簡単な一般的説明を提供することを目的とする。必須ではないが、本発明は、クライアントワークステーションまたはサーバなどのコンピュータによって実行されている、プログラムモジュール群などのコンピュータ実行可能命令の一般的な状況で説明する。一般に、プログラムモジュール群には、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。「オブジェクト」とは、ハードウェア／ソフトウェアインタフェースシステムシェルによってエンドユーザに公開されたすべてのオブジェクトにわたって共通でサポートされる基本プロパティセットを有するハードウェア／ソフトウェアインタフェースシステムがアクセスすることができる格納可能な情報の単位である。オブジェクトは、新たなプロパティおよび関係が導入されることを可能にする機能を含め、すべての型（ｔｙｐｅ）にわたって共通でサポートされるプロパティおよび関係も有する。
【００２３】
さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含め、他のコンピュータシステム構成を使用して実施してもよいことが、当業者には認識されよう。また、本発明は、通信ネットワークを介してリンクされたリモート処理装置群によってタスクが実行される、分散コンピューティング環境において実施してもよい。分散コンピューティング環境では、プログラムモジュール群は、ローカルメモリ記憶装置とリモートメモリ記憶装置の両方の中に配置することができる。
【００２４】
図１に示すとおり、典型的な汎用コンピューティングシステムは、プロセッサ２１、システムメモリ２２、ならびにシステムメモリからプロセッサ２１までを含む様々なシステムコンポーネントを結合するシステムバス２３を含む、従来のパーソナルコンピュータ２０などを含む。システムバス２３は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含め、いくつかのタイプのバス構造のいずれであることも可能である。システムメモリは、読み取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む。起動中などに、パーソナルコンピュータ２０内部の要素間で情報を転送するのを助ける基本ルーチンを含むＢＩＯＳ（Basic Input/Output System）２６が、ＲＯＭ２４の中に格納される。
【００２５】
パーソナルコンピュータ２０は、図示していないハードディスクに対して読み取りおよび書き込みを行うためのハードディスクドライブ２７、リムーバブルな磁気ディスク２９に対して読み取りまたは書き込みを行うための磁気ディスクドライブ２８、およびＣＤ−ＲＯＭまたは他の光媒体などのリムーバブルな光ディスク３１に対して読み取りまたは書き込みを行うための光ディスクドライブ３０をさらに含むことが可能である。ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、それぞれ、ハードディスクドライブインタフェース３２、磁気ディスクドライブインタフェース３３、および光ディスクドライブインタフェース３４でシステムバス２３に接続される。ドライブ群、および関連するコンピュータ可読媒体により、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストレージがパーソナルコンピュータ２０に提供される。
【００２６】
本明細書で説明する典型的な環境は、ハードディスク、リムーバブルな磁気ディスク２９、およびリムーバブルな光ディスク３１を使用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）などの、データを格納することができ、コンピュータがアクセスすることができる他のタイプのコンピュータ可読媒体も、典型的な動作環境において使用することができることが、当業者には認識されよう。
【００２７】
オペレーティングシステム３５、１つまたは複数のアプリケーションプログラム３６、その他のプログラムモジュール群３７、およびプログラムデータ３８を含め、いくつかのプログラムモジュールが、ハードディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に格納されることが可能である。ユーザは、キーボード４０やポインティングデバイス４２などの入力デバイス群を介して、コマンドおよび情報をパーソナルコンピュータ２０に入力することができる。その他の入力デバイス群（図示せず）には、マイク、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれることが可能である。以上の入力デバイス、およびその他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインタフェース４６を介してプロセッサ２１に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの、他のインタフェース群で接続してもよい。モニタ４７、または他のタイプのディスプレイデバイスも、ビデオアダプタ４８などのインタフェースを介してシステムバス２３に接続される。モニタ４７に加え、パーソナルコンピュータは、通常、スピーカやプリンタなどの他の周辺出力デバイス群（図示せず）も含む。図１の典型的なシステムは、ホストアダプタ５５、スモールコンピュータシステムインタフェース（ＳＣＳＩ）バス５６、およびＳＣＳＩバス５６に接続された外部記憶装置６２も含む。
【００２８】
パーソナルコンピュータ２０は、リモートコンピュータ４９のような１つまたは複数のリモートコンピュータに対する論理接続を使用するネットワーク化された環境において動作することができる。リモートコンピュータ４９は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードであることが可能であり、通常、パーソナルコンピュータ２０に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶装置５０だけを図１に例示している。図１に示した論理接続は、ローカルエリアネットワーク（ＬＡＮ）５１およびワイドエリアネットワーク（ＷＡＮ）５２を含む。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的である。
【００２９】
ＬＡＮネットワーキング環境で使用される場合、パーソナルコンピュータ２０は、ネットワークインタフェースまたはネットワークアダプタ５３を介してＬＡＮ５１に接続される。ＷＡＮネットワーキング環境で使用される場合、パーソナルコンピュータ２０は、通常、インターネットなどのワイドエリアネットワーク５２を介して通信を確立するためのモデム５４、または他の手段を含む。内部にあることも、外部にあることも可能なモデム５４は、シリアルポートインタフェース４６を介してシステムバス２３に接続される。ネットワーク化された環境では、パーソナルコンピュータ２０に関連して示したプログラムモジュール群、またはプログラムモジュール群の諸部分は、リモートメモリ記憶装置の中に格納することができる。図示したネットワーク接続は、典型的であり、コンピュータ間で通信リンクを確立する他の手段も使用できることが認識されよう。
【００３０】
本発明の多数の実施形態は、コンピュータ化されたシステムに特によく適するものと想定されているが、本発明をそのような実施形態に限定することを意図するものは本明細書には全く存在しない。反対に、本明細書で使用する「コンピュータシステム」という用語は、押しボタンを含む、あるいはボタンの押し下げ、またはボタンの押し下げと均等の諸動作（ｅｑｕｉｖａｌｅｎｔｓ）を判定することができるあらゆるデバイスを、そのようなデバイスの性質が電気的であるか、機械的であるか、論理的であるか、または仮想であるかに関わらず、包含するものとする。
【００３１】
（ネットワーク環境）
図２は、本発明を使用することができる典型的なネットワーク環境を示す。もちろん、実際のネットワーク環境およびデータベース環境は、様々な構成で配備することができるが、図２に示した典型的な環境は、本発明が動作することができる環境のタイプを理解するための枠組みを提供する。他の環境も企図されている。
【００３２】
ネットワークは、クライアントコンピュータ群２０ａ、サーバコンピュータ２０ｂ、データソースコンピュータ群２０ｃ、ならびにデータベース７０、７２ａ、および７２ｂを含むことが可能である。クライアントコンピュータ群２０ａおよびデータソースコンピュータ群２０ｃは、通信ネットワーク８０、例えば、イントラネットを介して、サーバコンピュータ２０ｂと電子通信している。クライアントコンピュータ群２０ａおよびデータソースコンピュータ群２０ｃは、通信インタフェース群８２を介して通信ネットワークに接続される。通信インタフェース群８２は、イーサネット（登録商標）接続、モデム接続などの周知の通信インタフェースのいずれか１つであることが可能である。
【００３３】
サーバコンピュータ２０ｂは、データベースサーバシステムソフトウェアを介してデータベース７０の管理を提供する。このため、サーバ２０ｂは、様々なデータソースからのデータの格納庫として作用し、そのデータを様々なデータコンシューマ（ｃｏｎｓｕｍｅｒ）に提供する。
【００３４】
図２の例では、データソース群は、データソースコンピュータ群２０ｃによって提供される。データソースコンピュータ群２０ｃは、ＬＡＮ、ＷＡＮ、イントラネット、インターネットなどであることが可能な通信ネットワーク８０を介して、データをサーバコンピュータ２０ｂに通信する。データソースコンピュータ群２０ｃは、リレーショナルデータベースサーバ群、スプレッドシート、ファイルなどであることが可能なデータベース７２ａ、７２ｂの中にローカルでデータを格納する。例えば、データベース７２ａは、テーブル１５０、１５２、および１５４の中に格納されたデータを示す。データソース群２０ｃによって提供されるデータは、結合され、サーバ２０ｂによって保持されるデータウェアハウスなどの大型データベースの中に格納される。
【００３５】
サーバコンピュータ２０ｂによって格納されたデータを使用することを望むクライアントコンピュータ群２０ａは、通信ネットワーク８０を介してデータベース７０にアクセスすることができる。クライアントコンピュータ群２０ａは、データベース７０の中に格納されたデータに対するＳＱＬ（Structured Query Language）クエリ（例えば、更新、挿入、および削除）を介して、データを要求する。
【００３６】
（データベースアーキテクチャ）
データベースは、関連するデータの集合である。１つのタイプのデータベース、リレーショナルデータベースでは、データは、テーブルと呼ばれる２次元の列と行の形態に編成される。図２は、データベース７２ａの中に格納されたテーブル１５０、１５２、および１５４などのテーブルを示す。リレーショナルデータベースは、通常、複数のテーブルを含む。テーブルは、０または１つ以上のレコード、ならびに各レコード内に少なくとも１つのフィールドを含むことが可能である。レコードは、レコード識別子と呼ばれる固有の数値で識別されるテーブル内の行である。フィールドは、テーブル内のデータの列が、テーブル内の各レコードに関する同一のフィールドを表すという程度で、レコードの下位区分である。
【００３７】
データベースは、通常、関連（ａｓｓｏｃｉａｔｉｖｅ）構造群も含む。関連構造の例が、インデックスであり、インデックスは、通常、ただし、必ずではなく、Ｂツリーまたはハッシュインデックスの形態である。インデックスは、テーブルのサイズに関わらず、ほぼ一定のアクセス時間で、テーブル内の特定の行に対するシーク（ｓｅｅｋｉｎｇ）を可能にする。関連構造群は、望ましくは、データベースのユーザにはトランスペアレントであり、データベース管理システムの効率的な動作および制御を提供することに役立つ。データベース管理システム（ＤＢＭＳ）、特にリレーショナルデータベース管理システム（ＲＤＢＭＳ）は、メモリ媒体上にデータを格納すること、メモリ媒体からデータを取り出すこと、およびメモリ媒体上のデータを更新することを含むが、以上には限定されないデータベース機能をサポートする制御システムである。
【００３８】
一般に、リレーショナルデータベースの中に格納されたデータには、ＳＱＬなどのクエリ言語で構築されたユーザが定義したクエリを介してアクセスが行われる。通常、任意の所与のＳＱＬクエリに関して、ＳＱＬクエリの目的を実行するためにデータに対して実行される必要がある多数の手続き操作（ｐｒｏｃｅｄｕｒａｌ  ｏｐｅｒａｔｉｏｎ）が存在する。例えば、所望の目的を達するのに実行される必要がある多数の結合（ｊｏｉｎ）およびテーブルスキャンが存在する可能性がある。
【００３９】
（データ変換サービスおよびデータ変換パイプライン）  典型的なデータ変換サービスシステム（ＤＴＳ）は、データソースからデータを受け取る能力（ソースからデータを受け取るデータ取得システムなどの）と、変換されたデータおよび／または変換されていないデータを内部に格納する能力を有するデータ宛先（データを格納する宛先データ記憶システム）と、データが流れる際にデータを変換する（ただし、変換するという用語は、本明細書では、データに対して、データに伴って、データにより、またはデータ上で行うことができる対話の領域（ｕｎｉｖｅｒｓｅ）を広く表すのに使用する）ために、様々な互いに接続されたノード（インスタンス化された場合、パイプラインのコンポーネントになる）を介して１つまたは複数のソースから１つまたは複数の宛先に流れるデータをパイプライン処理することにより、複雑な終端間データ変換機能（データフロー実行、つまりＤＦＥ）を構築するデータ変換パイプライン（ＤＴＰ）とを含む。パイプライン内の各コンポーネントは、特定の事前定義されたデータ変換機能を有し、コンポーネント間の論理接続は、動作上の意味でデータフロー経路を定義する。
【００４０】
データ変換パイプライン（ＤＴＰ）は、ユーザが、グラフィカルユーザインタフェース（ＧＵＩ）を介して、様々な互いに接続されたノード（グラフ）を介して１つまたは複数のソースから１つまたは複数の宛先への所望のデータフローをグラフィックで記述し、表現することにより、複雑な終端間データ変換機能（ＤＦＥ）を開発することができるようにする。ユーザによって選択され、グラフに組み込まれたグラフ内の各ノードは、特定の事前定義されたデータ変換機能（それぞれ、コンポーネントである）を表し、ノード（コンポーネント）間の接続は、データフロー経路を定義する。
【００４１】
図３は、パッケージ３２０内のソース３５０と宛先３６０の間における典型的なデータフロー実行の図である。要素３２２、３２６、３２８、３３０は、データが操作される様々な動作を指す。ソース３５０が、例えば、ファイル、データベース、Ｗｅｂサイトなどから、データを受け取る。抽出コンポーネント３２２が、データソース３５０からデータを抽出する。変換コンポーネント３２６が、コンポーネント３２６の入出力機能に従ってデータを変換する。第２の変換コンポーネント３２８は、コンポーネント３２８の特定の機能に従ってデータをさらに操作する。次に、読み込みコンポーネント３３０が、あるデータをデータ宛先３６０上に読み込む。このようにして、複雑なデータ変換の開発が可能になる。
【００４２】
（典型的な実施形態）
ＤＴＳは、本発明の諸態様を実施することができる拡張可能なコンポーネントおよび通信を有する典型的なコンピューティング環境である。多くの組織は、共同意思決定を改善するのにデータを集中化する必要がある。しかし、組織のデータは、様々なフォーマットで、異なる場所に格納されている可能性がある。ＤＴＳは、異なるソースからのデータを抽出すること、変換すること、およびＤＴＳ接続によってサポートされる単一の宛先または複数の宛先に集約することを可能にするツールセットを提供することにより、これに対処する。ＤＴＳツールを使用してＤＴＳパッケージをグラフィックで構築すること、またはＤＴＳオブジェクトモデルを使用してパッケージをプログラミングすることにより、組織の特化されたビジネスニーズに合わせて仕立てられたカスタムデータ移動ソリューションを作成することができる。
【００４３】
ＤＴＳパッケージは、ＤＴＳツールで、またはプログラミングによりアセンブルされ、例えば、ＭＩＣＲＯＳＯＦＴ（登録商標）ＳＱＬサーバ（商標）またはＸＭＬ（Extensible Markup Language）に保存された接続、ＤＴＳタスク、ＤＴＳ変換、およびワークフロー制約の編成された集合である。一般に、各パッケージは、パッケージが実行されると、順次に、または並行に実行される１つまたは複数のステップを含む。実行されると、パッケージは、正しいデータソースに接続し、データおよびデータベースオブジェクトをコピーし、データを変換し、他のユーザまたはプロセスにイベントについて通知する。パッケージは、例えば、編集すること、パスワード保護すること、実行するためにスケジュールすること、およびバージョン別に取り出すことが可能である。
【００４４】
ＤＴＳパッケージとともに、ＤＴＳタスクが存在する。ＤＴＳタスクは、パッケージ内の単一のステップとして実行される、個別の機能セットである。各タスクは、データ移動およびデータ変換のプロセスの一環として、または実行されるべきジョブとして、実行されるべき作業項目を定義する。一般的に使用されるＤＴＳタスクの例には、１）データをインポートすること、およびエクスポートすること、２）データを変換すること、３）データベースオブジェクトをコピーすること、および４）他のユーザおよびパッケージにメッセージを送信すること、および他のユーザおよびパッケージからメッセージを受信することが含まれる。ＤＴＳコンポーネントおよびＤＴＳ動作を完了させることが、ＤＴＳ変換である。ＤＴＳ変換は、データが宛先に到達する前にデータに適用される１つまたは複数の機能または演算である。
【００４５】
影響分析は、特定のオブジェクトが依存する、または使用するオブジェクトを判定する能力、ならびに特定のオブジェクトに依存する、または特定のオブジェクトを使用するオブジェクトを判定する能力を提供する。本明細書で使用するオブジェクトという用語は、例えば、タスクおよび／またはオブジェクトの型を指すことが可能である。影響分析は、大量の複雑なドキュメントにおいてユーザの生産性を向上させるために望ましい。というのは、影響分析は、あるオブジェクトが、システム内の他のオブジェクト群によってどのように、どこで使用されているかを判定することを容易にし、多大な手作業を不要にする可能性があるからである。
【００４６】
典型的なオブジェクトの型には、接続、ならびに読み取りアクセス変数および読み取り／書き込みアクセス変数などの変数が含まれる。典型的な実施形態を本明細書では、接続および変数に関して説明するが、本発明に従って他のオブジェクトの型が使用され、追跡されることも可能であることが企図されている。そのようなオブジェクトの型は、望ましくは、そのようなオブジェクトの型がパッケージに影響を与える可能性があると判定された場合、追跡される。本発明は、望ましくは、データベースにおいてではなく、オブジェクトモデルにおいて実施される。したがって、本発明に従ってオブジェクト間の暗黙の関係が公開される、拡張可能なオブジェクトモデルが提供される。
【００４７】
パッケージ内で、前述したとおり、ソースがデータを受け取る。次に、データが、パッケージ内でデータの宛先に到達するのに先立って操作される。本発明によれば、どのようなパッケージ群が何に関連しているかを示す接続のリストが提供される。つまり、パッケージは、タスク（コンポーネントを有する）、およびオブジェクトの型を含む。パッケージを作成するため、例えば、ユーザが、ユーザインタフェースを介してタスクおよびオブジェクトの型を提供する。すると、システムは、図４に示したような、ツリー様の構造群を作成する。図４の典型的な構造では、コンポーネントを含むタスクを含むパッケージが示され、コンポーネントの１つは、タスク１および２を実行するソースである。接続１および２、ならびに変数１および２が、オブジェクトの型として示されている。そのようなツリー様の構造は、以下に説明するとおり、追跡リストを開発するために使用することができる。
【００４８】
図５は、本発明による典型的な方法の流れ図を示す。最初、ステップ５００で、リソースを使用するコンポーネント（例えば、タスク）、およびリソースを使用するコンポーネントに関する関連ソースを有するパッケージが作成される。使用されるリソース（例えば、接続または変数などのオブジェクトの型）も記述される。ステップ５１０で、リファレンストラッカにアクセスが行われ、リソースを使用するコンポーネント（タスク）が、いずれのリソース（オブジェクトの型）を自らが使用するかを宣言することができるようになる。つまり、リファレンストラッカは、リソースを使用するコンポーネントから使用されるリソースへのリファレンスを作成することにより、タスクとオブジェクトの型の間の関係を記録する。次に、ステップ５２０で、接続とタスクの間、および変数とタスクの間でリンクが作成される。
【００４９】
リファレンストラッカは、ステップ５３０で、追跡リストをポピュレートし、追跡リストは、影響分析のために追跡されるそれぞれのオブジェクトの型に関して提供される。あるオブジェクトが別のオブジェクトに対する依存関係を前提とする（または使用する）場合、そのオブジェクトは、その依存関係をリファレンストラッカに登録し、リファレンストラッカは、ステップ５４０で、新たなエントリを追跡リストに追加する。その使用が変更された、または別の形で終了された場合、ステップ５５０で、リファレンストラッカが、再び通知を受け、追跡リストから対応するエントリが削除される。
【００５０】
オブジェクトの型（例えば、ＴＡＳＫ１）に関する典型的な追跡リストを図６に示す。図６で、追跡リストは、ＴＡＳＫ１が依存する（または使用する）接続のリスト、およびＴＡＳＫ１が依存する（または使用する）変数のリストを提供する。各接続は、好ましくは、ソース識別子を介して識別され、各変数は、好ましくは、変数の名前、型、および／または説明を介して識別される。追跡リストは、望ましくは、変数および／または接続を使用するタスクまたはコンポーネントに応答して、あるいはどのようなものであれ、影響分析のために監視されているオブジェクトの型に応答して作成される。
【００５１】
追跡リストは、例えば、特定のオブジェクトによって使用されるオブジェクトに関して、特定のオブジェクトを使用するオブジェクトに関して、特定の型のすべてのオブジェクトに関して、特定の型のオブジェクトを使用するオブジェクトに関して、特定の型のオブジェクトによって使用されるオブジェクトに関してなど、様々な形で、クエリおよび報告が行われることが可能なリレーショナル構造である。オブジェクトに対する変更の履歴が、追跡リストによって保持されることが可能である。その情報からの概要レポートの生成も企図されている。
【００５２】
本発明による別の典型的な方法を図７の流れ図に示す。追跡リストが生成された（例えば図５に関連して述べられている典型的な方法を介して）後、ステップ７００で、オブジェクトの型に対する変更が受け取られることが可能である。ステップ７１０で、オブジェクトに対して変更を行うことの影響を、追跡リストを参照して、オブジェクトモデル内の他のどのようなオブジェクトの型がそのオブジェクトを使用しているものとして登録されているかを判定することにより、判定することができる。次に、ステップ７２０で、その情報が、ユーザまたはアプリケーションに戻される。
【００５３】
例えば、ＴＡＳＫ１（図６に示した典型的な追跡リストからの）が、例えば、データベース内部のオブジェクトモデル内で削除されている、または別の形で変更されているものと想定されたい。追跡リストにアクセスが行われて、何が影響を受けるかが判定され、その情報（ＴＡＳＫ１に関する追跡リスト内の接続および変数）が、ユーザまたはアプリケーションに提供される。このため、本発明によれば、オブジェクトの型に対するそのような変更の影響が検出され、報告されるか、または別の形で保持されることが可能である。望ましくは、変更の可能性が判定され、変更が行われるのに先立って伝えられる。
【００５４】
典型的な実施形態では、ＩＤＴＳＯｂｊｅｃｔＲｅｆｅｒｅｎｃｅＴｒａｃｋｅｒインタフェースが実装される。以下に説明するとおり、リファレンストラッカは、オブジェクトモデルにおける影響分析のための拡張可能な機構である。オブジェクトのユーザが、自らがどのようなオブジェクトをどこで使用しているかを登録する。次に、例えば、ユーザがあるオブジェクトを削除しようと試みた場合、システムは、そのオブジェクトが他の場所で使用されていないことを確認することができ、使用されている場合、その情報をユーザに表示することができる。ユーザは、オブジェクトモデル内の特定のオブジェクトの使用に関する情報を受け取るために、追跡リストに能動的に問い合わせを行うこともできる。
【００５５】
変数または接続を使用するランタイムタスクまたはパイプラインコンポーネントは、望ましくは、それらのオブジェクトの型の追跡リストを作成する。ランタイムタスクまたはパイプラインコンポーネントは、望ましくは、使用の場所および説明をリストに提供する。例えば、単一の変数を有するタスクは、その変数の名前を場所情報として使用し、その変数が何の目的で使用されているかについての説明を使用説明として使用することもできる。
【００５６】
変数または接続の複数の異なる使用を行うタスクまたはコンポーネントは、所望に応じて多数の別々の追跡リストを作成することができる。例えば、「条件付き分割」コンポーネントは、出力上の表現において変数を使用し、望ましくは、変数を使用する各出力表現に関して別々の追跡リストを作成する。コンポーネントは、コンポーネント名を使用場所として設定することができ、その表現、ならびにその表現がどこで見られるかを説明の中に含めることができる。このようにして、同一の変数が複数の表現において使用されている場合、各使用場所が、システムによって追跡される。
【００５７】
パイプラインコンポーネントは、望ましくは、ＧｅｔＲｅｆｅｒｅｎｃｅＴｒａｃｋｅｒ（）などの基本クラスアクセサ（ａｃｃｅｓｓｏｒ）を使用してインタフェースを取得する。インタフェースの設計は、システムを動的に拡張することを可能にする。つまり、他のプログラマが、独自のタスクまたはコンポーネントを作成し、同一のリファレンストラッカに登録することが可能であり、影響分析モデルへの完全な参加がそれらのタスクまたはコンポーネントに認められる。ここで、サードパーティＴａｓｋが、変数およびコレクションの使用を登録した場合、そのサードパーティＴａｓｋは、望ましくは、ユーザがそれらの変数およびコレクションを削除しようと試みた場合、通知を受ける。
【００５８】
追跡リストからのリファレンスは、そのオブジェクトが、もはや使用されていない場合、または破棄されている場合、削除されることが可能である。追跡リスト全体も、例えば、リストを所有するオブジェクトが破棄される場合、リファレンストラッカシステムから削除されることが可能である。追跡リストは、そのリストを所有するオブジェクトがリフレッシュされる場合、および新たなリストが作成される場合にも、削除されることが可能である。例えば、「条件付き分割」変換において、出力上で表現が変更された場合、その表現に関する追跡リストが破棄されることが可能であり、新たな表現が解析される際に新たなリストが作成されることが可能である。
【００５９】
追跡リストに関するメタデータが提供されることが可能である。例えば、使用場所は、そのリストを所有するタスクまたはコンポーネントの名前であることが可能である。使用説明が、リスト内のオブジェクトがどのように使用されるかについてのより詳細な説明を与えることができる。使用場所および使用説明が、所望されるだけ何回でも更新される、または変更されることが可能であることも企図されている。
【００６０】
（結論）
本明細書で説明した様々なシステム、方法、および技術は、ハードウェアまたはソフトウェアで、あるいは、適切な場合、ハードウェアとソフトウェアの組み合わせで実施することができる。このため、本発明の方法および装置、または方法および装置のいくつかの態様または部分は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意のマシン可読記憶媒体などの、実体のある媒体で実施されたプログラムコード（すなわち、命令）の形態をとることが可能であり、プログラムコードがコンピュータなどのマシンに読み込まれ、実行されると、そのマシンが、本発明を実施するための装置となる。プログラマブルコンピュータ上でプログラムコードが実行されるケースでは、コンピュータは、一般に、プロセッサ、そのプロセッサが読み取ることができる記憶媒体（揮発性のメモリおよび／または記憶要素、および不揮発性のメモリおよび／または記憶要素を含む）、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスを含む。好ましくは、１つまたは複数のプログラムが、高レベルの手続き型またはオブジェクト指向のプログラミング言語で実装されて、コンピュータシステムと通信する。ただし、プログラムは、所望される場合、アセンブリ言語または機械語で実装することもできる。いずれにしても、言語は、コンパイルされる言語、または解釈される言語であることが可能であり、ハードウェアインプリメンテーションと組み合わせられることが可能である。
【００６１】
本発明の方法および装置は、電気配線またはケーブル配線を介する、光ファイバを介する、または他の任意の形態の伝送を介するなど、何らかの伝送媒体を介して伝送されるプログラムコードの形態で実現されることも可能であり、プログラムコードが、ＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）、ゲートアレイ、プログラマブル論理デバイス（ＰＬＤ）、クライアントコンピュータ、ビデオレコーダなどのマシンによって受け取られ、読み込まれ、実行されると、そのマシンが、本発明を実施するための装置になる。汎用プロセッサ上で実行された場合、プログラムコードは、そのプロセッサと一緒になって、本発明の機能を実行するように動作する独特な装置を提供する。
【００６２】
本発明を様々な図の好ましい実施形態に関連して説明してきたが、本発明を逸脱することなく、本発明と同一の諸機能を実行するために、他の類似した実施形態を使用すること、または説明した諸実施形態に変更および追加を行うことも可能であることを理解されたい。したがって、本発明は、いずれの単一の実施形態にも限定されるべきではなく、むしろ、添付の特許請求の範囲に従う広がりと範囲で解釈されなければならない。
【図面の簡単な説明】
【００６３】
【図１】本発明の諸態様を組み込むことができるコンピュータシステムを示すブロック図である。
【図２】本発明の諸態様を組み込むことができるネットワークを示す概略図である。
【図３】本発明の諸態様を説明するのに役立つ典型的なデータフローの実行を示す図である。
【図４】本発明の諸態様を説明するのに役立つ典型的な構造を示す図である。
【図５】本発明による典型的な方法を示す流れ図である。
【図６】本発明による典型的な追跡リストを示す図である。
【図７】本発明による別の典型的な方法を示す流れ図である。
【符号の説明】
【００６４】
２０ａ  クライアントコンピュータ群
２０ｂ  サーバコンピュータ
２０ｃ  データソースコンピュータ群
７０  データベース
７２ａ  データベース
７２ｂ  データベース
８０  通信ネットワーク
８２  インタフェース群
３２０  パッケージ
３２２、３２６、３２８、３３０  要素
３５０  ソース
３６０  データ宛先
【図１】
2006012146.tif 000003
【図２】
2006012146.tif 000004
【図３】
2006012146.tif 000005
【図４】
2006012146.tif 000006
【図５】
2006012146.tif 000007
【図６】
2006012146.tif 000008
【図７】
2006012146.tif 000009