以下の説明全体を通して、特に示されない限り、同様の要素の数字は、同じ要素を指すことが意図される。
本明細書に開示される本発明は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態、又は、ハードウェア要素とソフトウェア要素の両方を含む実施形態の形式を取ることができる。好ましい実施形態においては、本発明は、これらに限定されるものではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むソフトウェアにおいて実施される。
さらに、本発明は、コンピュータ又はいずれかの命令実行システムによって、又はこれらと接続して、用いるためのプログラム・コードを提供するコンピュータ使用可能又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形態を取ることができる。この説明のために、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置によって、又はこれらと接続して、用いるためのプログラムを含み、格納し、通信し、伝搬し、又は転送することが可能ないずれかの装置とすることができる。
媒体は、電子システム、磁気システム、光システム、電磁システム、赤外線システム、若しくは半導体システム(又は装置)又は伝搬媒体とすることができる。コンピュータ可読媒体の例は、半導体メモリ又はソリッドステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、磁気ハードディスク及び光ディスクを含む。現時点における光ディスクの例は、コンパクト・ディスク−読み取り専用メモリ(CD−ROM)、コンパクト・ディスク−読み取り/書き込みメモリ(CD−R/W)及びDVDを含む。
プログラム・コードを格納及び/又は実行するのに適したデータ処理システムは、システム・バスを通してメモリ要素に直接的に又は間接的に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行時に使用されるローカル・メモリと、大容量記憶装置と、実行時に大容量記憶装置からコードを取得しなければならない回数を減少させるように少なくとも幾つかのプログラム・コードの一時的な記憶場所を提供するキャッシュ・メモリとを含むことができる。
入力/出力装置すなわちI/O装置(これらに限定されるものではないが、キーボード、ディスプレイ、ポインティング・デバイス等を含む)は、直接的に、又は介在するI/Oコントローラを通して、システムに結合することができる。
介在するプライベート・ネットワーク又は公衆ネットワークを通して、データ処理システムを他のデータ処理システム又は遠隔プリンタ若しくはストレージ・デバイスに結合できるように、ネットワーク・アダプタをシステムに結合することもできる。モデム、ケーブル・モデム及びイーサネット・カードは、現時点で利用可能なタイプのネットワーク・アダプタのうちのほんの幾つかである。
図1は、企業の様々なデータの統合を容易にするためのプラットフォーム100を表す。プラットフォームは、各々が複数の異なるコンピュータ・アプリケーション及びデータ・ソースを含むことができる複数のビジネス・プロセスを含む。プラットフォームは、上述のようなデータ・ソースとすることができる幾つかのデータ・ソース102を含むことができる。これらのデータ・ソースは、様々な物理的場所からの様々なデータ・タイプを含むことができる。例えば、データ・ソースは、Sybase、Microsoft、Informix、Oracle、Inlomover、EMC、Trillium、First Logic、Siebel、PeopleSoft、IBM、Apache、又はNetscapeなどのプロバイダからのシステムを含むことができる。データ・ソース102は、IMS、DB2、ADABAS、VSAM、MD Series、UDB、XML、複合フラット・ファイル、又はFTPファイルなどのデータベース製品又は標準を用いるシステムを含むことができる。データ・ソース102は、Microsoft Outlook、Microsoft Word、Microsoft Excel、Microsoft Accessのようなアプリケーションによって作成又は使用されるファイル、並びに、ASCII、CSV、GIF、TIF、PNG等のような標準フォーマットのファイルを含むことができる。データ・ソース102は、様々な場所からのものとするか、又は集中的に配置することもできる。データ・ソース102から供給されるデータは、様々な形式のものとすることができ、互いに互換性があるもの又は互換性のないものとすることができる異なるフォーマットを有することができる。
データ・ターゲットは、本明細書の後半で説明される。一般に、これらのデータ・ターゲットは、上述のデータ・ソース102のいずれかとすることができる。こうした用語の使い方の違いは、一般的には、データ統合プロセスにおいてデータ・システムがデータを提供するのか、又はデータを受け取るのかを示すものである。しかしながら、従来のデータ統合システムにおいては、データ・ソースがデータを受け取り、データ・ターゲットがデータを提供することができるため、この区別は、(特に他に記述がない限り)データ・ソースとデータ・ターゲットとの間の能力に関して違いを与えることを意図するものではないことを理解すべきである。
図1に示されたプラットフォームはまた、データ統合システム104も含む。データ統合システムは、例えば、データ統合システム104が受信するクエリ又は検索コマンドの結果として、データ・ソース102からのデータの収集を容易なものとすることができる。データ統合システム104は、データ・ソースがデータをデータ統合システム104に与えるように、データ・ソース102の単数又は複数に対してコマンドを送信することができる。受信されたデータは、様々なメタデータを含む多数のフォーマットのものとすることができるため、データ統合システムは、統合処理のために後に結合することができるように、受信したデータを再構成することができる。データ統合システム104によって行うことができる機能は、以下により詳細に説明される。
プラットフォーム100はまた、幾つかの検索システム108も含む。検索システム108は、データ統合システム104から送信されるデータをさらに操作するのに用いられるデータベース又は処理プラットフォームを含むことができる。例えば、データ統合システム104は、検索システム108が、処理されたデータを用いてビジネスに有用なレポート110を生成することができるように、データ・ソース102から受信するデータを浄化し、結合し、変換し、又は、他の方法で操作することができる。レポート110を用いて、データの関連性を報告し、複雑なクエリに回答し、単純なクエリに回答し、又は、ビジネス若しくはユーザに有用な他の報告を作成することができ、生データ、テーブル、チャート、グラフ、及び検索システム108からのデータの他のいずれかの表現を含むことができる。
プラットフォーム100はまた、データベース又はデータベース管理システム112を含むこともできる。データベース112を用いて、時間的に、一時的に、又は永続的若しくは長期的な記憶として、情報を格納することができる。例えば、データ統合システム104は、単数又は複数のデータ・ソース102からデータを収集し、そのデータを、互いに互換性がある形式又は互いに結合することができる形式に変換することができる。データが変換されると、データ統合システム104は、後の検索のために、分解形式、結合形式、又は他の形式で、データをデータベース112に格納することができる。
図2は、企業の複数のエンティティ及びビジネス・プロセス間のデータ統合を示す概略図である。示される実施形態においては、データ統合システム104は、情報がユーザ・インターフェース・システム202とデータ・ソース102との間を流れるのを容易にする。データ統合システム104は、データ・ソース102の単数又は複数に存在するデータの抽出と、場合によっては変換とを必要とするクエリを、インターフェース・システム202から受信することができる。インターフェース・システム202は、ラップトップ・コンピュータ若しくはデスクトップ・コンピュータ、携帯電話、個人用情報端末(「PDA」)、ネットワーク化プラットフォーム、及びこれらに取り付けられる装置上で作動するウェブ・ブラウザといった、データ統合システム104と通信するためのいずれかの装置及びプログラム、又は、データ統合システム104とインターフェース接続される他のいずれかの装置又はシステムを含むことができる。
例えば、ユーザは、PDAを操作して、WiFi又はワイヤレス・アクセス・プロトコル/ワイヤレス・マークアップ言語(「WAP/WML」)インターフェースを介してデータ統合システム104に情報を要求することができる。データ統合システム104は、その要求を受信して、ウェブサイト又はFTPファイル・サイト等の他のデータ・ソース102から情報にアクセスするために、必要ないずれかのクエリを生成することができる。データ・ソース102からのデータは、抽出され、要求するインターフェース・システム202(この例ではPDA)と互換性のあるフォーマットに変換され、次いで、ユーザが見て操作するためのインターフェース・システム202に送信することができる。別の実施形態においては、データは、データ・ソースから予め抽出され、データ統合システム104によって用いられるデータ・ウェアハウス又は他のデータ機器とすることができる別個のデータベース112に格納しておくことができる。データは、変換された状態で、又はその元の状態で、データベース112に格納することができる。例えば、データは、多くのデータ・ソース102からのデータを別の変換プロセスで結合することができるように、変換された状態で格納することができる。例えば、PDAからのクエリをデータ統合システム104に送信することができ、データ統合システム104は、データベース112から情報を抽出することができる。抽出後に、データ統合システム104は、そのデータをPDAに返信する前にPDAと互換性のある結合フォーマットに変換することができる。
図3は、企業の複数のデータ・ソース102についてのデータ統合を提供するためのアーキテクチャを示す概略図である。データ統合システム104の実施形態は、場合によっては他の処理の間で、データ・ソースからのデータの抽出と、ソース・データについての列の値及びテーブル構造の分析とを実行するデータ発見段階302を含むことができる。データ発見段階302はまた、データ・ターゲットについてのテーブル構造、関係及びキーに関する推奨を生成することができる。より高度なプロファイリング及び監査機能は、日付範囲の検証、計算の精度、イフゼン(if-then)評価の精度等を含むことができる。データ発見段階302は、ソース・データの冗長依存性(redundantdependency)及び他の異常を排除することなどによって、データを正規化することができる。データ発見段階302は、さらなる分析のためにデータ・ソース102内部の例外を掘り下げること又はメインフレーム・データの直接プロファイリングを可能にすることなどの、付加的な機能を提供することができる。データ発見段階302の市販形態の限定されない例は、IBM社のWebsphere ProfileStage製品に見出すことができる。
データ統合システム104はまた、後に変換されることになる品質データ(quality data)を生成するために、データを準備し、標準化し、照合し、又は他の方法で操作する、データ準備段階304を含むこともできる。データ準備段階304は、データ内の不整合を調整すること、又は(1対1の照合、1対多数の照合及び重複排除(duduplication)を含む)正確な照合を行うことといった、一般的なデータ品質機能を実行することができる。データ準備段階304はまた、特定のデータ拡張機能を提供することもできる。例えば、データ準備段階304は、国際通信の改善のために、住所が多国間の郵便基準(multinational postal reference)に適合することを確実なものにすることができる。データ準備段階304は、空間情報の管理のために、位置データを多国間ジオコーディング標準(multinational geocoding standard)に適合させることができる。データ準備段階304は、住所情報が、Government Certified U.S.Address Correctionの下でU.S.Postal Serviceの郵便料金割引を受ける資格があるものであることを保証するために、住所を変更又は追加することができる。同様の分析及びデータ改訂を、適切に住所が記載された郵便について割引料金を提供する、カナダ及びオーストラリアの郵便システムに導入することができる。データ準備段階304の市販形態の限定されない例は、IBM社のWebsphere QualityStage製品に見出すことができる。
データ統合システムはまた、変換されたデータを変換し、質を高めて配信するデータ変換段階308を含むこともできる。データ変換段階308は、データの再構成及び再フォーマットのような移行サービスを実行し、システム・ユーザのビジネス規則及びアルゴリズムに基づいて計算を実行することもできる。データ変換段階308はまた、特定の分析コンテキストにおけるデータのより高度な調整処理のために、ターゲット・データをデータマート又はキューブとして知られるサブセットに編成することもできる。データ変換段階308は、データ統合システム104によって使用される様々なデータ・ソース及びデータ・ターゲットの様々なソフトウェア・アーキテクチャ及びハードウェア・アーキテクチャの橋渡しをする、(以下に一般的に説明されるような)ブリッジ、トランスレータ、又は他のインターフェースを用いることができる。データ変換段階308は、プラットフォーム100全体にわたるデータ統合ジョブを設計するために、グラフィカル・ユーザ・インターフェース、コマンドライン・インターフェース、又はこれらの何らかの組み合わせを含むことができる。データ変換段階308の市販形態の限定されない例は、IBM社のWebsphere DataStage製品に見出すことができる。
データ統合システム104の段階302、304、308は、該システム104の性能を最適化するために、並列実行システム310を連続的に又は組み合わせて用いて実行することができる。
データ統合システム104はまた、データ・ソース102と関連するメタデータを管理するためのメタデータ管理システム312を含むこともできる。一般に、メタデータ管理システム312は、データ統合環境におけるツールの全てにわたって、メタデータの交換、統合、管理及び分析を提供することができる。例えば、メタデータ管理システム312は、IBMのWebsphere ODBC MetaBroker、CA ERwin、IBM Websphere ProfileStage、IBM Websphere DataStage、IBM Websphere QualityStage、IBM DB2 Cube Views及びCognos Impromptuのような、異なるソースにおけるデータの、広くアクセス可能な共通のビューを提供することができる。メタデータ管理システム312はまた、データ系統及び影響分析のための分析ツールを提供することもできる。さらに、メタデータ管理システム312を用いて、データ統合システム104内のデータについてのデータ定義、アルゴリズム及びビジネル・コンテキストのビジネス・データ用語集を作成することができ、この用語集は、企業全体で用いられるように公開することができる。メタデータ管理システム312の市販形態の限定されない例は、IBMのWebsphere MetaStage製品に見出すことができる。
特に示されるか又は文脈によって必要とされない限り、「マッピング」という用語は、ビュー、モデル、又はモデル・インスタンスの間の関連するメタデータ及びメタ・メタデータの設計時の活動を指し、「変換」は、対応するリアルタイムの活動を指す。以下の説明は、実際には、アトミック・データ項目をモデル化するデータ・ソースについてのメタデータである、メタデータ管理システムに関するものであることにも留意すべきである。同様に、メタデータ管理システム内のメタデータは、実際には、メタ・メタデータとしても知られる、このメタデータを記述するメタデータである。メタ・メタデータをさらに抽象化し、メタ・メタ・メタデータにすることも可能であり、妥当である。混乱を避けるために、下記の名称は、一般的に、データ、メタデータ、メタ・メタデータの階層に従っており、ここでデータは、単数又は複数のデータ・ソース/ターゲットについての基礎データを表す。しかしながら、場合によっては、メタデータを単にデータ(メタデータ管理システムによって管理されるデータである)と呼ぶこともでき、メタ・メタデータは、これに対応して単にメタデータ、すなわちメタデータ管理システム内のモデルの立場からのメタデータと呼ぶこともできることを理解すべきである。より一般的には、使用法は、コンテキストから明らかになるはずである。しかしながら、使用法が不明瞭な場合には、可能な限り幅広い意味で解釈すべきである。
図4は、例えば、上述のメタデータ管理システム又はメタデータ機器312のいずれかとすることができる、メタデータ管理システム5202のためのアーキテクチャを示す。メタデータ管理システム5202は、複数のビュー5208を通してハブ5206と通信する、ツール又はクライアントのような複数の外部ユーザ5204と、モデル5212の運用メタデータに関連する少なくとも1つの運用クラス5214及び/又はモデル5212の設計メタデータに関連する少なくとも1つの設計クラス5216を有する、少なくとも1つのモデル5212を含むリポジトリ5210とを含むことができる。リポジトリ5210内のモデル5212と対話するために、メタデータ・サービス5218を提供することができる。
ユーザ5204は、上述のインターフェース・システム202のいずれか、又は他の何らかのクライアント装置、ツール、或いはソフトウェア・インターフェースの他のプログラムとすることができ、これらを通じて、ユーザがクエリを実行するか又は他の方法でデータベース内のデータを調査することができる。ユーザ5204は、ユーザ5204が用いるデータ・モデルとハブ5206が用いるデータ・モデルとの間で通信するように適合されたビュー5208を用いて、クエリを実行することができる。ビュー5208は、例えば、フィールド、データ・タイプ、データ階層、データ関係、時間情報、ソース情報、或いは、データがユーザ5202によって表示又は使用される方法、及び、外部ユーザ5204に提供されるビュー5208内のデータ・モデルとハブ5206によって内部で用いられるデータ・モデルとの間の何らかの適切なマッピングに関連する何らかの他の情報を含むことができる。図4においては、2つのビュー5208だけが示されるが、任意の数のビュー5208を用いることができること、かつ、ビュー5208は、同じタイプの外部ユーザ5204が1つより多く存在する場合には同じビュー5208とすることができ、異なる外部ユーザ5204が存在する場合には異なるビュー5208とすることができ、或いはメタデータ管理システムの処理能力と矛盾がないこれらのビューの任意の数及び組み合わせとすることができることが理解されるであろう。
外部ユーザ5204は、ユーザ5204に特有のものであり、ハブ5206内に対応する要素を持たないデータ又はメタデータを使用できることも理解すべきである。例えば、Erwin設計ツールは、Erwinに特有のオブジェクト「座標」を使用し、図形「キャンバス」においてオブジェクトが現れる場所を記述する。ハブ5206は、ユーザ5204にトランスペアレントな方法でハブ・モデルへの拡張をサポートすることによって、特例を処理するように設計することができる。随意的には、ビュー5208はまた、或いは代わりに、ハブ5206への接続に加えて、適切な外部データへの直接的マッピングを提供することもできる。
ハブ5206は、一般に、データの主題又はそのビジネス・コンテキストによって定められるデータ・モデル5212を用いることができる。したがって、一般に、データについてのハブ・モデルは、単一のアプリケーション内で頻繁に変更されないと予想される。ハブ・モデルに変更がなされる場合には、単数又は複数のビュー5208に対して、対応する更新を必要とすることがある。ハブ5206は、リポジトリ5210内に格納された単数又は複数のモデル5212を用いて、基礎データ(例えば、エンタープライズ・データについてのメタデータ)と対話することができる。リポジトリ5210の設計クラス5216に対してハブを使用することは、広範な適用可能性を有する1つの有用なアーキテクチャであるが、運用クラス5214は、一般に、こうしたハブ5206を必要としないことを理解すべきである。より一般的には、ここに説明されるメタデータ管理システム5202は、如何なるハブ5206も有さずに設計することができる。このアーキテクチャは、例えば、種々のビューの設計モデルの間に共通性が殆どないか又は全くない場合に有用である。そのような場合、メタデータ管理システム5202における種々のビュー間の通信のために、中央コネクタのような非持続性の論理ハブを動的に生成するといった、他の技術を用いることができる。メタデータ管理システム5202において中央ハブ5206が用いられるかどうかにかかわらず、ここで説明されるシステムの他の原理を適用することができる。
モデル5212は、オブジェクト指向技術を用いて、Eclipse及びEclipse Modeling Framework(「EMF」)のようなプラットフォーム内に格納し、操作することができる。モデル5212は、メタデータ、及びデータ・ソース及/又はターゲット内の関連構造へのマッピング、並びにいずれかの他の有用でより抽象的なメタデータのモデリングを含むことができる。モデルのこれらの側面は、リポジトリ5210内に永続的に格納されるリポジトリ・オブジェクト内に含ませることができる。
リポジトリ5210は、運用クラス5214及び設計クラス5216を含む単数又は複数のモデル5212を格納することができる。モデルは、メタデータ、メタ・メタデータ、或いは何らかの他の有用なデータの記述的又は機能的特徴を含むことができる。一例として、モデル5212は、オンスのような重量の単位の値を含むことができる。システム・ユーザが、新しいデータ・ソースを実装することを望むか、又は重量をポンドで指定する既存のデータ・ソースを統合することを望む場合には、データに異なる観点(又は同じ観点)を提供できる単数又は複数のビュー5208を通して、これらの異なるソースに対応するメタデータをハブ5206内で一貫して処理し、外部ユーザ5204に提示できるように、この情報をモデル5212内に含ませることができる。より一般的には、モデル5212は、メタデータ管理システムによって考えられる統合及びいずれかの他の使用に有用な基礎データ及びメタデータに関する何らかの情報を含むことができる。モデル5210は、データに関する情報、並びに、企業にわたって又は企業間で、データ使用の一貫した処理及び拡張可能性を可能にするためのデータ変更方法に関する情報を有効に捕捉することができる。
モデル5212がリポジトリ5210内に作成されるとき、まとめて及び/又は均一に照会される間、モデル5212を、独立して管理することができる設計コンポーネント及び運用コンポーネントに自動的に区分化することができる。オブジェクト指向技術を用いて、モデル5212についての運用クラス5214を格納することができ、任意の適切なプロパティ、方法等をクラス間で継承することができる。運用クラス5214は、特に、外部プロセスのモデル運用側面を含むか、又はリアルタイム結果の持続的ストレージを提供することができる。運用クラス5214にタイム・スタンプを押すことができ、又は他の方法で固有の参照のためにラベル付けすることができる。Eclipseプラットフォームは、ここで説明されるモデルを構築し、保持するための1つの有用なツールであるが、任意のオブジェクト指向ツール又は技術を同様に用い得ることも理解されるであろう。以下の説明において、「プロパティ」という用語は、一般に、オブジェクト指向記述、或いは、クラス、サブ・クラス、パッケージ、パッケージ構造、プロパティ、属性、方法、関係、継承等を含む、Universal Markup Language(「UML」)クラス・モデルの要素のような他の類似した記述の種々の特徴を指すように用いられる。したがって、この用語がここで用いられるとき、運用クラス、パッケージ構造等は、運用プロパティとすることができる。
モデル5212から設計クラス5216をインスタンス化し、あらゆるプロパティ、方法等を継承することもできる。これらの設計クラス5216内の情報は、バージョン化情報を含むこともできるので、多数のオブジェクト・インスタンスを、連続的に又は分岐して、或いはそれらの組み合わせの形で保持することができる。エンタープライズ・コンピュータ・システムの要求及び設計目的に従って、バージョン化されたメタデータ・オブジェクトは、ユーザによって操作し、編集し、更新し、或いは他の方法で制御し、管理することができる。バージョン制御又は同様の技術を用いて、設計クラス5216のメタデータ・オブジェクトを共有するか、又は個々のユーザ又はチームにチェックアウトすることができる。一般に、異なる設計が試みられるとき又は基礎データの変更があるとき、異なるバージョンを用いることができる。リアルタイムの実行可能ファイルを作成する前に、種々の設計を調整し、分岐を併合させ得ることが理解されるであろう。EMFは、上述のようなリポジトリ5210内のクラスをモデル化するための有用なプラットフォームとすることができるが、Object Management Group,Inc.社のMeta−Object Facilityのような、何らかの類似したモデル化フレームワークを用い得ることも理解されるであろう。
エンタープライズ・コンピュータ・システムは、データ統合システム104を含むことができる。エンタープライズ・コンピュータ・システムは、単数又は複数のローカル・エリア・ネットワークを通して局所的に接続された、及び/又は、例えば、インターネット上の仮想プライベート・ネットワークを用いる単数又は複数の広域ネットワーク又は公衆ネットワークを通して遠隔接続された、コンピュータ、メインフレーム、携帯機器、データ・ソース及び他の装置の任意の組み合わせを含むことができる。エンタープライズ・コンピュータ・システム内の装置を相互接続して単一の企業とし、データ、リソース、通信及び情報技術管理を共有することができる。一般的に、エンタープライズ・コンピュータ・システム内のリソースは、会社、協会、又は行政体、或いは大学のような共通エンティティによって使用される。しかしながら、特定のビジネス・モデルにおいて、アプリケーション・サービス・プロバイダが遠隔の実行アプリケーションへのオンデマンド式アクセスを提供する場合など、多数の異なるエンティティによって、エンタープライズ・コンピュータ・システムのリソースを所有(又はリース)し、使用することができる。エンタープライズ・コンピュータ・システムはまた、それぞれの変換エンジン(ブリッジ・ベースのシステムにおいては、ブリッジとすることができる)を通して、ここではリポジトリ情報マネージャ(「repository information manager、RIM」)と呼ばれる(下記では「ハブ」とも呼ばれる)共通のデータ構造にアクセスする複数のツールを含むこともできる。RIMは、上述されたデータ・ソース102のいずれかを含むことができる。一般に、ツールは、例えば、様々なタイプのデータベース管理システム及びRIM内に格納される共有データにアクセスできる他のアプリケーション・プログラムを含む。ツール、RIM、及び変換エンジンは、単一のコンピュータ・システム上で処理し、保持することができ、或いは、それらは、例えば、データ・アクセス要求、変換されたデータ・アクセス要求及び異なるコンポーネント間の応答を転送するネットワークによって相互接続することができる多数のコンピュータ・システム上で処理し、保持することができる。
実行中、ツールは、データ・アクセス動作、すなわちRIMからのデータの検索又はRIMへのデータの格納を開始するデータ・アクセス要求を生成することができる。データは、下記に説明されるアトミック・データ・モデル及びフォーマットの形でRIMに格納することができる。一般に、下記に説明されるように、ツールは、様々な特徴的データ・モデル及びフォーマットの形でRIMに格納されたデータを閲覧し、各々の変換エンジンは、データ・アクセス要求の受信時に、必要に応じて、それぞれのツールの特徴的モデル、フォーマット、RIMのアトミック・モデル・フォーマットの間でデータを変換する。例えば、データ項目がRIMから検索される検索タイプのアクセス操作の際に、変換エンジンは、アクセス要求に応答して検索されるデータ項目を協働して含むRIM内の単数又は複数のアトミック・データ項目を識別し、RIMが、アトミック・データ項目を変換エンジンの1つに提供することを可能にする。次に、変換エンジンは、RIMから受け取るアトミック・データ項目を集約して、ツールの特徴的モデル及びフォーマットによって要求されるような単数又は複数のデータ項目すなわちデータの「ビュー」にし、集約されたデータ項目を、アクセス要求を発行したツールに提供する。RIM内のデータが更新されるデータ格納の際、変換エンジンは、ツールの1つについての、特徴的モデル及びフォーマットの形で格納されたデータを受け取ることができる。変換エンジンは、データを、RIMのためのアトミック・モデル及びフォーマットに変換し、変換されたデータをRIMに提供し、格納することができる。データ格納アクセス要求がデータの更新を可能にする場合には、RIMは、変換エンジンから新しく与えられたデータを現在のデータと置き換えることができる。他方、データ格納アクセス要求が新しいデータを表す場合には、RIMは、そのデータを、変換エンジンによって提供されるようなアトミック・フォーマットの形で、RIM内の現在のデータに付加することができる。
メタデータ・サービス5218を用いて、リポジトリ5210内のオブジェクト、クラス5214、5216及びモデル5212を作成し、編集し、削除し、又は他の方法で操作し、或いはモデル5212及び内部に含まれる任意の他のデータを照会し、これを調査することができる。ユーザ・インターフェース、コマンドライン・インターフェース、プログラミング・インターフェース、又は他のインターフェースを通して、サービス5218をユーザに提示することができる。サービス5218は、バージョン化、分岐、併合及びリポジトリ5210内でサポートされるいずれかの他の操作のような機能を提供することができる。これらの操作の一部が、下記により詳細に説明される。メタデータ・サービス5218はまた、例えば、インパクト分析(或るモデル・タイプのインスタンスの変更が、そのモデルにおける他のタイプのインスタンスにどのような影響を与えるか)、操作上の分析(イベント・メタデータによる実行可能なオブジェクトの履歴)、データ・系統(ウェアハウス内の又はエンタープライズ・コンピュータ・システムにわたるデータ移動の履歴)、バージョン・ドリルダウン(メタデータ・オブジェクトについてのバージョン履歴の調査)、オブジェクト区別付け(メタデータ・オブジェクト間の差異の調査)及びオブジェクト併合(指定された規則に従って同じクラスの2つのオブジェクトを組み合わせる)といったデータ分析サービスを含むこともできる。メタデータ・サービス5218はまた、例えば、リポジトリ5210内に及び/又はリポジトリ5210から移動されるとき、メタデータを変換するためのインポート及びエクスポート・サービスを含むこともできる。メタデータ・サービス5218は、例えば、J2EEプラットフォームを用いて実現することができ、SOAのようなサービス指向アーキテクチャを通してユーザに提供することができる。同様に、リポジトリ5210内のトランザクションは、例えば、J2EEアプリケーション・サーバ内のビーン・コンテナを用いて管理することができる。サービス5218はまた、ユーザ・インターフェース内の単数又は複数のツールとしてエンドユーザに提供できることも理解されるであろう。
上述した機能(例えば、バージョン化、分岐、ドリルダウン等)は、主として、メタデータ・オブジェクト内の詳細及びそれらの間の詳細、又は別個のメタデータ・インスタンスに向けられるが、メタモデル管理、すなわちメタ・メタデータ管理、又はメタデータ・モデルのモデルの管理に対処するために、メタデータ管理に対するこの一般的な手法を容易に抽象化できることに留意すべきである。
したがって、ここでは、メタモデル間のマッピングの定義を提供し、メタモデルのためのインターフェースを生成し、メタデータ・モデルの実装及び変換を容易にするメタモデリング・ツールが説明される。メタモデリング・ツールは、多数の関連機能へのアクセスを提供するグラフィカル・ユーザ・インターフェースを通して提供することができる。例えば、インターフェースは、メタモデル及びマッピング、並びにメタデータ・モデルの出力を定義し、検証し、試験し、分析するためのツールを提供することができる。インターフェースはまた、メタモデルの文書化、メタモデル・マッピング及びメタモデリング・ツールによって生成されたメタデータ・モデルの任意のインスタンスのためのツールを提供することができる。メタモデリング・ツールは、例えば、新しいバージョンのエンタープライズ・モデルを導入するために有効に用いることができる。ダイアグラミング、モデリング及びマッピングは、例えば、IBM Rational XDEのようなサービスによってサポートすることができる。
メタモデリング・ツールは、例えば、サービス指向のサービスとして導入することができる。メタモデリング・ツールは、同期化、バージョン化、履歴の追跡及び上述のメタデータ・ツールと矛盾のない他の適切な能力を用いて、メタデータ・モデルのための中央管理マッピング仕様を提供することができる。したがって、マッピング・モデルは、ハブとビュー(又は他のモデル)との間のオブジェクト変換を表すことができるが、このメタモデリングの観点からのマッピング・モデルはさらに、又は代わりに、異なるメタデータ・モデル間のマッピングを表すことができ、このマッピング・モデルは、より新しいバージョンのメタデータ・モデルに更新するときのように、最終的にモデル自体の間の変換に用いることができる。メタモデリング・ツールは、例えば、モデル定義とは別個の又はこれに緩やかに結合された独立した仕様言語を提供することができ、開発の制御及び実装の柔軟性を可能にする。メタモデリング・ツールは、有利に、開発環境内にマッピング仕様の動的走査検索を提供することができ、様々な詳細のレベルで文書を自動生成するためのツールを提供することができる。統合スイートのメタモデリング・ツールを用いる場合には、試験メタデータを生成し、マッピングを動的に実行するように、開発を行うことができるので、直ちに効果を獲得し、これを進行中の開発に組み込むことができる。
モデルの運用属性と設計属性との間の概念的区別を保持するために、設計クラス5216及びプロパティの持続的格納のための共有リポジトリ(図示せず)、並びに、運用クラス5214及びプロパティの持続的格納のための運用リポジトリ(図示せず)といった2つ又はそれ以上のリポジトリに、リポジトリ5210を論理的及び/又は物理的に分離させることができる。したがって、モデル5212がリポジトリ5210に登録されるとき、運用クラス5214は運用リポジトリ内で持続され、設計クラス5216は共有リポジトリ内で持続されることが可能である。それらの関連を定めるために、クラス内の注釈を用いて、ある物理的又は論理的リポジトリ内で運用クラス及び設計クラスを区別することができる。他の技術が周知であり、他の技術を用いてモデルのクラスを運用側面と設計側面に分離させるか、或いは、別個の運用リポジトリ及び設計リポジトリを物理的又は論理的に提供できることが理解されるであろう。例えば、共通/運用の分離は、モデルのクラス構造内に暗黙的に設計してもよく、或いは、マニフェスト又は他のリスト若しくはプログラミング装置が、モデルを伴い、各々のクラス又はプロパティとその適切なリポジトリとの関連を列挙してもよい。どのように実装されようと、有利なことに、この構成により、モデル5212の設計及び運用要素のための異なる持続性の処理が可能になる。例えば、設計クラス5216は、プログラマのチームによって開発し、改訂することができ、よって、堅固なバージョン化能力及び調整が必要とされる。対照的に、運用クラス5214は、タイム・スタンプ又は他の固有識別子を用いるなど、異なるジョブについて固有の識別を必要とすることがある。したがって、ユーザによって照会し、変換し、又は他の方法で操作することができる単一のモデルを保持しながら、クラスのグループの各々についての適切なサービスを定めることができる。
図5は、単数又は複数のビュー又はモデルを介する(メタデータの)データベースとの通信を示す。サービス5302、ユーザ・インターフェース5303、又は任意の他のインターフェースは、データベース5312にクエリを実行依頼するためなどといった、上述のデータ・ソース102のいずれかとすることができるデータベース5312と通信することができる。上述のリポジトリ5210のようなリポジトリ5304によって提供される、ビュー5308及びハブ5310のようなメタデータ・モデルを通して、通信を行うことができる。これらのメタデータ・モデルは、フィールド、フィールド名、フィールド属性、データ・タイプ、データ階層、データ関係、時間情報、ソース情報のようなデータに関する情報、或いはデータの構造、位置、又は使用に関連する任意の他の情報、或いはこうしたデータに関するメタデータ(すなわち、メタ・メタデータ)を含むことができる。
サービス5302は、そのサービス5302に固有の、すなわちサービス5302によって定められる構造及びフォーマットを有するデータ・ビューを用いて、クエリを生成することができる。このクエリは、データベース5312内のデータ構造に関する如何なる情報も用いずに、サービス5302によって構成することができる。クエリを受信するビュー5308を含む複数の異なるビューに矛盾のないメタデータ表現のためのモデルを提供するハブ5310に、リポジトリ5304が要求中のサービス5302に提供するビュー5308をマッピングすることができる。次いで、ハブ5310を、データベース5312によって内部で用いられる構造にマッピングすることができる。ビュー5308、ハブ5310及びデータベース5312の間のマッピング情報を利用することによって、このクエリは、有利に、データベース5312に固有のデータ・モデル又は構文を用いるクエリに変換することができる。クエリはデータベース5312のいずれかの最適化又は調整から利益を得ることができるので、このことは著しい性能上の利点をもたらし得る。さらなる利点として、特定のクエリ5302についての可能な最適化を探索するために、独立してマッピング情報を照会することができる。
対照的に、実行ファイルを作成するとき、他の既存の技術はメタデータ・モデルを「平坦化する」ので、クエリは、データベース全体に対して実行する必要があり、結果は、サービス5302に提示されたビュー5308を用いて構文解析される。実際上、データベース5312からの関連する可能性が高いオブジェクトの全てをハブ5310においてインスタンス化し、クエリの実行のためにメモリ内で操作することができるビュー5308に変換しなければならない。このことは、メモリに著しい負荷を与え、データベース5312内に設計される何らかの性能上の利点を喪失させることになる。介在するモデルについてのマッピング情報を用いてクエリ自体をデータベース5312の固有の構文に変換することによって、クエリ結果だけをインスタンス化し、外部のサービス5302への提示のために変換することが必要になる。
同様に、ユーザ・インターフェース5303は、リポジトリ5304が提供する多数のモデルを通して、データベース5312と通信することができる。ユーザは、ユーザ・インターフェース5303におけるデータの提示に対応する構造及びフォーマットを有するフィールドを用いて、クエリをユーザ・インターフェース5303内に作成することができる。クエリは、ビュー5308によって受信され、いずれかの利用可能なマッピング情報を用いてハブ5310に関するクエリに変換され、次いで、いずれかの利用可能なマッピング情報を用いてデータベース5312に関するクエリに変換され、クエリ全体をデータベース5312に固有の構文で提示することが可能になる。
ユーザ・インターフェース5303及びサービス5302の両方について、単一のビュー5308が示されるが、各々が、データを閲覧するそれぞれの外部モデルを有することができ、リポジトリ5304によって、これらのモデルを保持し、提供できることが理解されるであろう。クエリは、データベース5312に対して実行され、ユーザ・インターフェース5303によって容易に使用可能な形式で、ハブ5310及びビュー5308を通して戻すことができる結果を生成することができる。より一般的には、データ統合システムのハブ・アンド・スポーク型アーキテクチャと整合性がある二層構造が図5に示されるが、種々のモデル内のメタデータ間の関係に関するマッピング情報が利用可能である場合には、互いに対して何らかの相対的な関係にある如何なる数のメタデータ・モデルも、データベースにアクセスするためのここで記載された技術から利益を得ることができる。
図6は、ビュー5308とハブ5310との間でメタデータ変換サービスを提供する変換エンジンを含むリポジトリ・サービス5304を示す。変換エンジンは、異なるモデルによって用いられる様々な固有のメタデータ構造とデータベース5312との間で、上述のようなクエリの変換と、モデル間のオブジェクト変換とを提供することができる。図6に全体的に示されるように、変換エンジン又は複数の変換エンジンをリポジトリ5304内のサービスとして提供し、そこで変換エンジンを登録し、及び/又は格納することができる。リポジトリ・サービス5304は、変換エンジンにアクセスし、クエリをハブ5310のためのフォーマットに変換することができる。図示されていないが、ハブ5310とデータベース5312との間で類似した変換を提供することができる。より一般的には、変換エンジンは、クエリを、外部モデルから多数のクエリ言語又はプログラミング言語の形で受信し、それぞれのモデル及びデータベース5312に利用可能なマッピング情報を使用し、該クエリをデータベース5312のために最適化された構造のクエリに変換することができる。したがって、クエリは、一般に、ビュー5308(又は他のモデル)に固有の用語で表現することができ、データベース5312に固有の用語でデータベース5312に提示することができる。
変換エンジンは、上述のようにクエリを変換する1つの概念的手法であるが、他の手法を考え、ここで説明されるシステムと共に有効に用い得ることが理解されるであろう。一般に、これらの手法は、システムによって用いられるメタデータ・モデル間のマッピング情報と、データベース5312への任意のマッピングとを別個に格納することから利益を得る。実行時にマッピング情報を変換エンジン又はいずれかの他のツール若しくはサービスにアクセス可能な形で保持することによって、メタデータ管理システムは、著しい性能を達成することができる。
図7は、複数の外部サービス5302のために変換エンジンを提供するリポジトリ・サービスを示す。サービス5302は、例えば、データ変換段階308、データ準備段階304、RTIサービス2704、ユーザ・インターフェース、或いはデータベース5312内のメタデータにおいてクエリを実行できるいずれかの他のサービス又は外部クライアントとすることができる。サービス5302は、クエリを、ビュー5308に固有の構文の形でビュー5308に与えることができる。変換エンジンは、クエリをハブ5310に固有の構文に変換することができ、次いで、これをデータベース5312に固有の構文を用いるクエリに変換することができる。変換エンジンにアクセスし、クエリ結果を再びサービス5302に固有の構文に変換することによって、クエリ結果をサービス5302に戻すことができる。このように、サービス5302は、それぞれの固有の構文を用いて、データベース5312と効率的に通信することができる。クエリを説明するためにここで用いられる「構文」という用語は、任意の構文、構造、フォーマット、プログラミング言語、及び/又は、サービス又はデータベースなどの外部から、又はメタデータ・モデル間のような内部で、クエリを表すために用いることができるインターフェースを指すことを理解すべきである。
図8−図10は、持続的ストレージのために、メタデータ・モデルを関係データベース内のスキーマにどのようにマッピングできるかを示す。一般に、メタデータ・モデルは、オブジェクト指向関係管理ツールを用いて記述することができる。こうしたメタデータ・モデルが、共有リポジトリ及び運用リポジトリのようなリポジトリに登録されたとき、下記に説明される種々の技術を用いて、イン・メモリ・モデルを関係データベース内のスキーマにマッピングすることができる。この戦略は、Apache Object/Relational Bridge(「OJB」)のようなツールを用いてJavaツールを関係データベースに対して持続させる管理に特に適している。重要な利点として、この手法は、市販の関係データベースの高い性能を利用しながら、実質的な設計の柔軟性を可能にする。メタデータ・モデルを格納するのに有効に用いることができる多数の特定のマッピングが、以下の図8−図10を参照して説明される。
図8は、メタデータ・モデルと関係データベースとの間の対応関係を示す。メタデータ・モデル5602は、フィールド、フィールド名、フィールド属性、データ・タイプ、データ階層、データ関係、時間情報、ソース情報を含むメタデータに関する情報、或いはデータの構造、位置、又は使用に関連する任意の他の情報といった、モデル5602の種々のプロパティを定める複数のオブジェクト指向クラス5604を含むことができる。データベース5608は、モデル5602を物理的に格納するのに用いられる関係スキーマを表す複数のテーブル5610を含むことができる。図の垂直方向の矢印によって全体的に示されるように、モデル5602とデータベース5608との間のマッピングは、モデル5602内のクラス5604の、データベース5608内のテーブル5610に対する1対1のマッピングとすることができる。このように、クラス5602のあらゆる側面が、テーブル5608の1つの中に対応する側面を有するので、モデル5602の構造が、文字通りデータベース5608内に再生される。このように、モデル5602とデータベース5608との間の概念的な線形変換を保持することができる。このような表現は、一般に、より高い性能をもたらすことができ、リアルタイムに直接コンパイルすることができ、又は容易にプリコンパイルすることができるが、モデル5602の変更には、データベース5608の全体の再構成及び対応するコンパイルされたバージョンへの変更が必要となることがある。
図9は、関係データベースへのメタデータ・モデルの代替的なマッピングを示す。メタデータ・モデル5702は、例えば、上述のメタデータ・モデル5602とすることができる。図の垂直方向の矢印によって全体的に示されるように、モデル5702とデータベース5704との間のマッピングは、モデル5702内のクラスのプロパティから、データベース5704内のテーブル5706のエントリへのものとすることができる。モデル5702によって用いられるオブジェクト指向構造に関係なく、別個の物理的テーブル内のバージョン・データ又はリアルタイムアーチファクトを構成すること等によって特定の使用を最適化するように、テーブル5706を構成することができる。この手法は、任意のモデルを有利に一般的なテーブル構造内で完全に特徴付けることを可能にする。モデル5702に対する如何なる変更も、1行又は2行の更新といった、データベース5704内の影響を受けた任意のエントリに対する更新を必要とするだけなので、この手法は、テーブル5706内に格納された記述に他の方法で影響を及ぼすことなく、拡張性を強化することができる。一般に、このことは、持続性のために用いられるデータベース5704の相対的に高い性能と、モデル5702と持続的な形態との間のマッピングの相対的な拡張性との間の設計トレードオフを表している。
図10は、上記の図8及び図9に説明されたモデル・マッピングの組み合わせを示す。メタデータ・モデル5802は、例えば、上述のメタデータ・モデル5602とすることができる。図の垂直方向の矢印によって全体的に示されるように、モデル5802とデータベース5808との間のマッピングは、部分的にモデル5802内のクラス5804から、直接、図8を参照して上述されたような対応する構造を有するデータベース5808内のテーブル5810へのものとすることができる。モデル5802は、プロパティ5806をクラス5804に付加すること等によって、ユーザによって修正することができる。図9を参照して上述されたような一般的テーブル5814内に記述的エントリ5812を記録すること等によって、対応する変更をデータベース5808内に格納されたモデルに行うことができる。したがって、モデルの静的部分を、より実行可能な固定されたスキーマにマッピングすることができ、モデルの非静的部分すなわちユーザ構成可能部分を、拡張可能な記述的スキーマにマッピングすることができる。このように、モデル5802を格納するための関係スキーマは、モデルの相対的固定部分の性能をモデルのユーザ構成可能部分の拡張性と有利に組み合わせるハイブリッドとすることができる。
登録されたモデルの各々は、持続性のものにすることができる。ビューのような第1のモデルを登録するとき、ハブのような第2のモデル及び第1のモデルの第2のモデルへのマッピングと共に、モデルを登録プロセスに送ることができる。第1のモデルのプロパティを第2のモデルにマッピングできる場合には、マッピング自体を超えた付加的な持続機構は必要とされない。しかしながら、第1のモデルのプロパティを第2のモデルにマッピングできない場合には、マッピングされないプロパティを持続させるための機構を提供することができる。如何なる特定のモデルも、別のモデルへのマッピング、部分的なマッピング、又は完全なマッピングを有することができないことが理解されるであろう。プロパティが持続性を必要とする例、すなわちプロパティが既存のモデルにマッピングされない例においては、図8−図10を参照して上述された拡張可能なモデルのための技術のいずれかを用いて、モデルの持続性のためのストレージ機構を提供することができる。特定的には、最も一般的なテーブル形態は、多数の設計サイクルを通して望ましい持続機構を提供できるが、モデルのマッピングされない部分のクラス構造を複製することによって、ランタイム・モデルを有利に導入することができる。
上述の一般的な構造は、拡張可能なモデルのための反射型ストレージ機構を提供できることがさらに理解されるであろう。このストレージ機構はその環境を「理解する」ことができ、モデル記述を見て、任意のオブジェクトの関連するクラス、属性、マッピング等を決定することができる。こうした反射型能力を用いて、上述の一般的なテーブル・フォーマットのようなスキーマは、拡張を適合させる方法でモデルのプロパティを持続させることができる高レベルの設計環境を提供することができる。
図11は、複数の内部サービスを外部のメタデータに露出するアーキテクチャを示す。場合によっては、データが別個の企業又はエンタープライズ・アプリケーション間で共有される場合など、メタデータが、ここで説明されるメタデータ管理システムによって管理されるメタデータ・モデルの外部に常駐することがある。こうした外部のメタデータにアクセスするためのアーキテクチャは、第1のビュー5904を有する外部メタデータ5902、ハブ5906、及び複数の内部サービス5910への第2のビュー5908を含むことができる。
メタデータ管理システムは、外部メタデータ5902の第1のビュー5904を提供することができ、次いで、これをハブ5906に接続して、外部メタデータ5902についての共通の内部モデルを提供することができる。メタデータのそれぞれのビュー、第2のビュー5908を通して、内部サービス5910をハブ5906に同様にマッピングすることができる。これらの相互接続されたモデル5904、5906、5908を通して、内部サービス5910は、内部サービス5910に固有の形態で、外部メタデータ5902にアクセスすることができる。次に、内部サービス5910をサービス指向アーキテクチャ内に導入して、メタデータ管理システム内のサービスとして、又はより一般的には企業全体にわたるサービスとして、外部メタデータ5902へのアクセスを提供することができる。
図12は、ビュー及びハブといったメタデータ・モデル間の変換のために解釈されたマッピングを用いる、メタデータのマッピング・モデル駆動型変換を示す。メタデータ管理システム6000は、ハブ6002、単数又は複数の変換エンジン6004及び単数又は複数のビュー6006、6008を含むことができる。変換エンジン6004は、ハブ6002とビュー6006、6008の間の単数又は複数のマッピングを特徴付けるマッピング・モデル6010を含むことができる。要求を受信したとき、こうしたモデルを解釈し、マッピング・モデル6010を用いて、オブジェクトのインスタンスを要求者にどのように表現すべきかを決定することができる。マッピング・モデル6010は、より大きな設計の柔軟性をもたらすことができるモデル(例えば、Javaクラス又はEMFオブジェクト又はインスタンスのようなデータ構造)として、又は変換エンジン6004により大きい実行効率を提供できるコンパイルされたコードとして、或いは解釈されたコードとしてなど、多数の形態で表現することができる。より一般的には、任意の数の異なる変換エンジン6004において、単一のモデル対モデル・マッピング又はマッピング・モデル6010をインスタンス化することができる。同時に、抽象的なモデルからコンパイルされたコードまでの範囲に及ぶ任意の数の形態で、異なる変換エンジン6004をインスタンス化することができる。マッピング・モデル6010は、共通のアクセス及び整合性を提供するように、変換エンジン6004のための変換レジストリ(図示せず)内に登録することができる。
既存のシステムにおいて、ビュー対ハブのマッピングは、一般に、導入されると変わらない静的マッピングとして生成される。ビュー6006、6008及びビューからハブへのマッピング6010をモデルとして処理することによって、メタデータのインスタンスがビューからハブに移動されたとき、又はハブからビューに移動されたとき、マッピングを直接解釈することができる。ビューは、例えば、Javaクラス、Javaコード、又は基礎モデルの何らかの解釈として内部で表すことができる。同様に、Javaコード、Jython(Javaベースのスクリプティング)等のような種々の形態でマッピングを解釈することができる。要求が受信されると、ビュー・モデル、マッピング・モデル及びハブ・モデルによって、要求をパラメータ化することができる。モデル駆動型変換エンジンは、モデルの1つにおいて表現されたオブジェクトを受け取り、別のモデルの1つにおいて表現されたオブジェクトを戻すことができる。
例えば、ハブは、解釈されたJavaコードを用いてアクセスされるオブジェクト指向構成とすることができる。同様に、Java又は何らかの他のプログラミング言語を用いて、ビュー6006、6008を解釈することができる。変換エンジン6004は、ハブ6002とビュー6006、6008との間のメタデータ・モデル・マッピングを用いて、要求及びオブジェクト・インスタンスを、ハブとビュー6006、6008との間で移動させることができる。変換エンジン6004は、メタデータ・モデル又はオブジェクトの単数又は複数の変更に応答して、手動操作で又は自動的に(又は手動で)ユーザによって動的に修正することができる。
解釈されようと、コンパイルされようと、又は他の方法で実行されようと、モデルを解釈/実行するソフトウェア又はソフトウェア・エンジンは、同期式であっても、又は非同期式であってもよいことを理解すべきである。非同期式環境においては、モデルへのアクセスは、メッセージング・サービス又は他の非同期式技術によるものである。同期式環境においては、アプリケーション・プログラミング・インターフェース又はエンジンへの他の同期式インターフェースを通して、エンジンへの呼び出しを直接行うことができる。
図13は、メタデータ環境との対話を示す。モデル6102は、バージョン化されていないクラス6104(運用リポジトリ内に格納される)及びバージョン化されたクラス6106(共有リポジトリ内に格納される)として表すことができる。ユーザ6110がモデルと対話するために、ユーザ・メタデータ環境6108を提供することができる。以下の説明に用いられる「環境」は、基礎モデル・データと、1又は複数のユーザ6110が、揮発性メモリ又は不揮発性メモリ、或いはその両方であっても、モデル及びメタデータの格納されたインスタンスを含み、上記のいずれかの任意のバージョンと共に運用プロパティ及び設計プロパティを含む、モデル及びモデル・データを閲覧し、照会し、操作するために、いずれかの適切なグラフィカル・ユーザ・インターフェース、コマンドライン・インターフェース、或いは他のプログラマチック・インターフェースを通して、閲覧し、操作することができる、モデル又はメタデータについての他のコンテキスト情報とを指すように意図されている。一般的な「環境」(又は「ユーザ環境」)という用語は、総称的に、1又は複数のユーザがメタデータと対話することができる任意のモデル・コンテキストを指すように意図されるが、幾つかの環境が、以下に説明されるように具体的に考えられる。以下の例は、ここで説明されるシステムと共に有効に用いることができるユーザ環境の数及び種類に限定されるものでない。
モデル6102は、例えば、上述のビュー及びハブのいずれか、或いはいずれかの他のメタデータ・モデルとすることができる。モデルは、運用クラス及び属性、並びに設計クラス及び属性を含むことができる。上記のように、モデル6102は、種々のモデル・クラスの目的に従って、2つの異なるリポジトリ内に格納することができる。したがって、運用リポジトリは、モデルを用いて実行されるジョブについてのメタデータ結果を格納するように構成することができ、共有リポジトリは、コラボレーション及び反復的設計プロセスをサポートするように構成することができる。運用リポジトリ及び共有リポジトリは、物理的及び/又は論理的に分離させることができること、及び、各々の一部は内部に格納されるモデル・クラスのサブセットによって定められ、一部は各々にアクセスするために用いられるサービス又は方法によって定められることを理解すべきである。
作業空間又はチーム空間といった多数の異なるモードにおいて、ユーザ6110は、メタデータ環境6108と対話することができる。サンドボックスとも呼ばれる作業空間は、例えば、メタデータの設計プロパティの変更が、新しいモデルとして保存されるか又は既存のモデルに上書きされるかのいずれかである、バージョン化されていない環境において、ライブ編集をモデルに提供することができる。作業空間は、ユーザのコンピュータ上に局所的に、又はユーザがメタデータと対話できるサーバ上に遠隔的に存在することができる。一般に、モデルを作業空間内に置くことにより、他の潜在的なユーザのためのモデルがロックされることになる。しかしながら、作業空間は、共有使用をもたらすことができるので、1より多いユーザが変更を編集し、作業空間に保存できるようになる。チーム空間は、バージョン化を提供することができるので、多数のバージョンのチェックアウト、チェックイン、分岐等が可能になる。
より一般的には、チーム空間は、上述の全てのメタデータ・バージョン化能力についてのメタデータ環境を提供することができる。例えば、バージョン化されたメタデータ環境は、個々のユーザによって作成又は編集されたメタデータのバージョン化をサポートすることができる。したがって、バージョン化されたメタデータ環境のユーザは、モデルをチェックアウトし、そのモデルを新しいバージョンとして再びチェックインすることができる。このように、作業空間は、協働的な編集を可能にするが、チーム空間は、バージョン制御を有するメタデータの協働的な編集及び/又は連続的な編集を可能にすることができる。
ユーザ・インターフェースはまた、上述の運用プロパティ及び/又は運用リポジトリと関連付けられたメタデータ環境6108であるイベント空間へのアクセスを提供することもできる。
ユーザ環境6108はまた、企業全体にわたって多数のリポジトリのための集中型グローバル環境を提供する連合ユーザ環境とすることもでき、又はこれを含むことができる。連合ユーザ環境は、異なるリポジトリの共通のビューを提供することができ、又は各々のリポジトリを別個に表すこともできる。
ユーザ6110は、例えば、グラフィカル・インターフェース又はコマンドライン・インターフェース、或いは上述のデータ発見段階302、データ準備段階304、又はデータ変換段階308のようなリポジトリ内のメタデータ・モデルにアクセスするプログラム又はサービスを通してメタデータ環境6108と対話する人間のユーザとすることができる。
図14は、複数のバージョンのメタデータ6204を格納する共有リポジトリ6202を示す。メタデータ6204は、例えば、上述のビュー及びハブについてのメタデータとすることができる。メタデータ・データベース6206は、上述のデータ・ソース102のいずれかにすることができる。メタデータ6204の各バージョンは、メタデータ・データベース6206内に格納された、異なるものではあるが関連したメタデータのバージョンを提供することができる。メタデータ6204のバージョンは、例えば、データ統合プロジェクトに従事している開発者チームによって作成し、特にデータベース6206内に格納されたインスタンスを用いて比較することができる。
図15は、全てが一般的に上述されたような、メタデータ・データベース6306内に格納されたメタデータを特徴付ける複数のオブジェクト・バージョン6304を含む共有リポジトリ6302を示す。クライアント6308は、直接、又は上述のユーザ環境の1つにおいて、オブジェクト・バージョン6304と対話することができ、一般的に上述された設計操作のいずれかを実行することができる。これは、例えば、メタデータ・モデルの動的比較、ドリルダウン、編集、試験、又は他のいずれかの適切な機能を含むことができる。クライアントはまた、共有リポジトリ6302及びオブジェクト・バージョン6304を用いて、メタデータ・データベース6306内の基礎メタデータを調査することもできる。
図16は、バージョン化されたメタデータ・オブジェクトの調整を示す。共有リポジトリ6402及びバージョン化されたオブジェクト6404は、上述の共有リポジトリ6302及びバージョン化されたオブジェクト6304とすることができる。バージョンの調整は、設計サイクルの様々な時点で所望することができ、一般に、実行可能モデルのリリースのために必要とされる。単一のインスタンス6408に対するバージョン化されたオブジェクト6404の調整は、調整プロセス6406を通して制御することができる。多数の技術が周知であり、それらを自動調整、半自動調整及び手動調整のために用いることもできる。一般に、ここで説明されるシステムと共に何らかのこうした技術を用いることができる。調整プロセス6406は、有利に、完全なバージョン履歴と、調整された単一のインスタンス6408についての調整系統とを保持し、調整プロセス6404への修正を可能にし、いずれかの以前の調整されていない状態に戻し、又はソース・メタデータ及び調整系統を調査することができる。併合などにおける調整の際にメタデータ内の直接競合が解決される場合には、以前の属性値を呼び戻し、分岐及び様々なバージョンの代替的な調整と共に用いることができる。
図17は、調整区域にわたる段階的調整を示す。複雑な調整プロセスを管理し、メタデータ・インスタンスのための正確な調整系統を維持するために、調整区域を設けることができる。図17の調整区域を説明する前に、メタデータ・インスタンスの幾つかの有用なプロパティに言及する。
エンタープライズ内の各メタデータ・インスタンスは、インスタンスと調整区域との関連を定義する関連付けられた調整区域プロパティを有することができる。調整区域は、例えば、人的資源、経理、財務、在庫、製造、給与、エンジニアリング等のようなデータの制度上の分離を反映するように、調整プロセスの設計者によって選択することができる。調整区域は、国、地方、州、町、建物、設備等のような、データ及び企業に適した任意の粒度の地理的なものとすることができる。調整区域は、例えば、新しいシステムからレガシー・システムを分離する、メインフレームから従業員のデスクトップを分離する、従業員から顧問を分離するといったように、履歴上又は構造上のものにすることができる。調整区域は、消費者製品、相手先商標製品製造、製品、店舗業務、電子商取引業務等、又はより一般的には製造及び小売のような部門又は他のサブグループへのビジネスの組織を反映させることができる。同様に、調整区域は、会社が獲得した又は会社から分離独立した新しいビジネス単位に対して、調整区域を設けることができる。
各々の調整区域について、優先順位、例外、組み合わせ等に関する任意の数の調整規則を定めることができる。調整のための技術は公知であり、調整規則に従って、調整区域内のメタデータ・インスタンスを調整するために、こうした技術の全てを有効に用いることができる。調整区域は、一致なし(複製が削除される)、ビューが一致する(バージョンは、ビュー・レベルに保持される)、及び/又はビュー以外の一致がある(バージョンは、ハブ・レベルに保持される)のように、インスタンスを参照するモデルにおいて、調整結果がどのように伝搬されるかを定める一致タイプをさらに定めることができる。
オブジェクトの各インスタンスはまた、調整区域内のオブジェクトを一意的に識別する識別子を有することもできる。項目の意味文脈を捕捉するためなどに、様々な文脈又は階層に関して各項目を記述することができる。項目は、オブジェクト、クラス、属性、データ項目、データ・モデル、メタデータ・モデル、モデル、定義、識別、構造、言語、マッピング、関係、インスタンス、又は別の意味識別子を含む他の項目又は概念とすることができる。意味識別子は、項目の属性、項目の物理的位置、階層等における項目と単数又は複数の他の項目との関係等に基づいて、項目を識別することができる。場合によっては、関係は、何らかの特定関係の不存在として定義することができる。関係は、意味に基づくことができる。関係は、関係階層における項目の位置と関係させることができる。例えば、項目は、該項目が関係する他の項目との関係に基づいて識別することができ、別の項目に直接関係していても、別の項目に間接的に関係していても、及び/又は単数又は複数の他の項目を通して別の項目に間接的に関係していてもよい。静的識別子に加えて動的識別子を可能にするために、関係を連結させるか又は再帰的に定義することができる。例えば、2つの項目間の関係が変更する場合には、2つの項目の一方を組み込む別の項目についての意味識別子も、2つの項目間の変更された関係を組み込む。
より具体的な例として、項目Jimは、米国某州、某町、某通り111に居住し、電話番号555−555−5555及び社会保障番号012−34−5678を有するJimとして特定することかできる。代替的に、Jimは、他者との関係の観点から特定することができる。Jimは、Bettyの息子、LarryとJeffの兄弟、Jessicaの父親及びFrankの甥として特定することができる。
意味識別子は、1つの項目についての固有識別子とすることができる。上記の例においては、Bettyの息子、LarryとJeffの兄弟、Jessicaの父親及びFrankの甥であるJimが世界に一人しかいない場合には、この意味識別子は、Jimについての固有識別子となる。項目への固有の意味識別子が、その項目と他の項目との関係の全ての関係より少ない数である場合を考えることも可能である。Bettyの息子、Larryの兄弟、Jessicaの父親であるJimが世界に一人しかいない場合には、固有の意味識別子を作成するのに、これらの関係の存在だけで十分である。JimとJeff及びFrankとの関係を考慮する必要はない。一意性を保証する最小の数の関係に基づいた意味識別子を作成することが有利である。例えば、意味識別子がデータベース112内に格納されるか、又はデータ統合システム104によって処理される場合、より複雑でない意味識別子は、必要とする空間が少なく、より高速な処理が可能になる。
項目についての固有の意味識別子を作成するのに必要とされる関係の数は、コンテキストに基づいて異なり得る。例えば、第1の項目すなわち項目1は、該項目1と2つの付加的な項目すなわち項目3及び項目4との関係によって、コンテキストすなわちコンテキストA内の第2の項目すなわち項目2と区別することができる。すなわち、コンテキストAにおいては、項目1について固有の意味識別子は、項目3及び4に直接関連し、項目3及び4を通して任意の数の他の項目と間接的に関連するもとすることができる。異なるコンテキストすなわちコンテキストBにおいては、項目1は、該項目1と項目3(恐らく、項目4ではないが)との関係によって、並びに、該項目1と別の項目すなわち項目5との関係及び項目6との関係の不存在によって、一意的に特定することができる。したがって、ここで説明されるデータ統合方法及びシステムの実施形態においては、データ統合ジョブ又はデータ統合プラッフォームに関連した項目のような項目についての意味識別子に、その項目についてのコンテキスト依存識別子を与えることができる。実施形態において、こうしたコンテキスト依存識別子は、データ・リポジトリ等の中に、アトミック・フォーマットの形で格納することができる。
コンテキストA及びコンテキストBは、2つの異なるインポート、マッピング、実行バージョン、モデル、メタブローカ・モデル、インスタンス、ツール、ビュー、オブジェクト、クラス、項目、関係、属性、又は上記のいずれかの任意の組み合わせとすることができる。調整又は比較機器は、異なるインポート、実行バージョン、モデル、メタブローカ・モデル、インスタンス、ツール、及び/又は項目における項目の識別の値及び/又は構文を比較し、その比較に基づいてどの動作を取るべきか又は動作を取るのを控えるべきかについての判断を決定する又は助けることができる。例えば、調整エンジンは、インポート・インスタンスAによって用いられるモデルを、メタブローカBによって用いられるモデルと比較することができる。この比較に基づいて、メタブローカBは、変換又は修正なしで、インポート・インスタンスAのデータ及びメタデータにアクセスでき、比較機器が、メタブローカBの続行を命令できることを決定することができる。別の例においては、ツールAをツールBと比較することができ、各々のツールが他のツールのオブジェクトにアクセスすることができる、ツール間のオブジェクト併合の実行を決定することができる。実施形態においては、調整機器は、変換機器をトリガし、それぞれのツールの各々における特定の項目の識別の処理についての異なる構文に基づいた変換、又は比較によって判断されるようなツール間の他の差異に基づいた変換などの変換を必要とする任意のオブジェクトを変換するために、ブリッジ、メタブローカ、ハブ等の確立といった、ツール間のオブジェクト併合を助けることができる。
実施形態においては、文字列構造又はフォーマットで格納し、維持し、記録し、処理し、及び/又は解釈することができる構文の形で、意味識別子を格納し、維持し、記録し、処理し、及び/又は解釈することができる。例えば、構文は、列名::テーブル名::データベース名とすることができる。この構文は、例えば、データベース内のテーブルの列を特定する意味識別子と関連付けることができる。この構文内に構成された文字列は、年齢::従業員::従業員データベースとすることができる。この文字列は、例えば、特定の従業員データベース内の従業員の年齢を特定する意味識別子と関連付けることができる。コンテキストA内の項目1(上記の例)についての意味識別子に対応する文字列は、項目3との直接的な関係::項目4との直接的な関係とすることができる。意味識別子及び対応する文字列はまた、上記のコンテキストBにおいて行われるように、項目1と項目5との間の直接的な関係の欠如を組み込むこともできる。
構文文字列を構文解析することができる。構文及び/又は文字列を切り捨て、修正することができ、及び/又は、構文及び/又は文字列の要素を再配列することができる。変換エンジンは、切り捨て、修正、及び/又は再配列を行うことができる。意味識別子の一意性のために、構文及び/又は文字列内に含まれる関係の全てを必要としないとき、構文及び/又は文字列を切り捨てることは有用である。構文文字列の所定のコンテキストにおいて、全ての項目が項目3に直接関連していた、すなわち、例えば、項目3が全ての項目を格納するデータベースであったと想定する。項目3を含む関係を省略する文字列を作成するといったように、構文文字列を切り捨て、依然として固有の意味識別子を残すことができる。構文及び/又は文字列を切り捨てることにより、ストレージ要件を減らし、処理の効率を増大させることができる。例えば、データ統合プロセスのための処理時間を減少させるために、構文及び/又は文字列における関係の順序を変えることも有用である。あまり共通性がない関係が先に処理された場合、システムは、項目を特定するために、項目との関連がより少ない関係にアクセスし、処理することが必要になる可能性が高い。例えば、項目3に関連する項目が殆どなく、項目4に関連するものはさらに少なく、多くの項目が項目2に関連する場合には、コンテキストによって、1つの構文文字列は、別の構文文字列より短い時間で項目9を特定することができる。あるコンテキストにおいて1つの項目を一意的に特定するために、構文文字列の特定の要素だけを必要とするが、別の文脈においては、構文文字列の全ての要素を必要とするということもある。
調整エンジンは、メタデータ・インスタンスの特定、並びに、調整のための規則を定める調整区域及び任意の一致タイプの仕様を用いて、メタデータのインスタンスにおける調整を実行することができる。調整操作は、調整区域内のインスタンスを一意的に特定するための意味識別子を用いることができ、或いは別の調整区域内の調整されたインスタンスの意味識別子のフォーマット、言語、及び/又はデータ・モデルを変換するか、又は他の方法で修正することができる。調整操作は、単数又は複数のデータ・ツール、言語、フォーマット及び/又はデータ・モデルとの間の調整又はマッピング、少なくとも1つの他のデータ・ツール、言語、フォーマット、及び/又はデータ・モデルとの間の調整又はマッピングを含むことができる。例えば、調整操作は、IBMからのWebSphere DataStage7、IBMからのWebSphere QualityStage、Business Objectツール、IBM−DB2 Cube Views、UML1.1、UML1.3、ERStudio、IBMのWebSphere ProfileStage、PowerDesigner(Packages及びExtended Attributesのためのサポートが付加された)、及び/又はMicroStrategyツールのような、周知のデータ統合ツールへの、周知のデータ統合ツールからの、又はそれらの間のマッピングを含むことができる。調整エンジン及び/又は調整操作は、随意的に、メタブローカにおいて実現することができる。調整操作は、バッチで、リアルタイムに、又は連続的ベースで行い、実行し、及び/又は実施することができる。調整操作は、例えば、サービス指向アーキテクチャの一部としてといったサービスとして提供すること、又は利用可能にすることができる。
意味識別子、データベース112、単数又は複数の意味識別子を含むデータベース112、情報システム、単数又は複数の意味識別子若しくは他の項目を含む情報システムについての調整操作が行われると、この調整操作を、いずれかの他の意味識別子、データベース112、単数又は複数の意味識別子を含むデータベース112、情報システム、単数又は複数の意味識別子を含む情報システム、或いは少なくとも1つの調整操作を共有する他の項目との間で調整し、これにマッピングし、これに結合し、これと共に使用し、又はこれと関連付けることが可能になる。変換操作のために、ハブのようなアトミック・データ・リポジトリを用いるような実施形態においては、調整操作のマッピングは、とりわけ、元の意味コンテキストと変換された意味コンテキストとの間で、前後方向の操作の実行による調整を追跡することができる。コンテキストによって、構文及び/又は文字列を変えるか又は切り捨て、より効率的な格納又はより高速な処理を可能することによって、或いは、意味コンテキストが異なる固有識別子を形成するのに用いられる関係を変えることなどによって、データ項目の適切な識別子は異なり得る。したがって、動的な識別子は、再トレース可能な調整の利点を、データ項目が用いられる種々のコンテキストにおける高速処理、効率的なデータ処理及び効率的な操作の利点と結び付けることができる。
図17は、調整区域を示す。一般に、メタデータ・オブジェクト又は項目は、それぞれのデータ・コンステレーション内で一意的に識別されるが、調整プロセスはまた、異なるソースからのオブジェクトの異なるインスタンスを組み合わせることができる調整プロセスを通して識別を管理しなければならない。多数のソースからのメタデータについて、多数の調整区域6450−6458を定めることができる。例えば、図17の左側にある調整区域6450−6454は、会社内の部門又は別個のデータベースのような、企業の様々な要素からのソース・データとすることができる。上述の技術を用いて、これらのソース調整区域6450−6454内の各々における各メタデータ・インスタンスについて、調整区域、規則、一致タイプ及び識別子を定めることができる。調整規則に従って、調整エンジンは、2つの調整区域(例えば、区域6450及び区域6452)からのデータを調整して、各項目が一意的に識別される新しい調整区域6456にし、ソース調整区域からのメタデータ・インスタンスの調整されたバージョンを表すことができる。この新しい調整区域6456は、次に、単数又は複数の他の調整区域(例えば、区域6454)と調整され、エンタープライズ内のメタデータ・インスタンスの完全な調整を表す別の調整区域6458を提供することができる。同時に、いずれの調整区域も、これを特定の調整区域に導入する前に単数又は複数のソースからのメタデータをより細かく調整するために、それ自体とデータ・ソースとの間に単数又は複数の調整区域を有することができる。したがって、図17のパターンは、メタデータ・インスタンスの調整のための何らかの恣意的なパターン又はフローを達成するための何らかの方法で、繰り返し、変更し、及び/又は拡張することができる。
具体例として、第1の調整区域6450は、全ての新しい雇用に対する初任給を含むことができる、人的資源に関するメタデータを表すことができる。第2の調整区域6452は、全ての従業員に対する週給の情報を含む給与データを表すことができる。会社の経理部にいる人物のようなユーザによって、これらの調整区域を調整して、新しい調整区域6456とし、給与情報を追跡することができる。正確を期し、整合性を保つために、この調整区域6456内のメタデータを分析することができ、満足な調整が得られるまでこれを修正することができる。別の調整区域6454は、企業の財務データベースについてのメタデータを表すことができる。財務データベースは、企業の給与コストについてのメタデータを含む、企業に関する完全な財務データを含むことができる。このデータは、高品質を有するものと特徴付けすることができ、これを監査し、企業の他の領域において他の方法で用いることもできる。1つのデータ・ソースは、品質保証基準が低いことが知られている外部の請負業者によって準備されたコンパイルを表し、別のデータ・ソースは、社内の良く訓練され、監督された従業員からのデータ入力を表す場合などの、データ品質についてのあらゆる情報を考慮して調整規則を設計することができる。企業内の従業員給与の完全に統合されたビューを表すメタデータを含む別の調整区域6458において、この調整区域6454からのメタデータを別の調整区域6454からの給与メタデータと調整することができる。この例をさらに拡張するために、図17の調整区域6450−6458の全てを、会社分割に特有のものとすることができ、これらを、他の企業分割又は企業買収からの統合された調整区域とさらに統合すこともできる。同様に、上述の段階的調整を用いて、異なる企業の部門、地理上の位置、子会社、機能上のビジネス単位等からのデータを漸進的に統合させることができる。
上述の段階的調整プロセスから多くの重要な利点がもたらされることが理解されるであろう。1つの利点は、調整系統の保持である。複雑なデータ統合環境においては、階層ファイル、フラット・ファイル、連合データ・ソース等を含む多数のメタデータ・ソースが存在する可能性が高い。このような環境においては、統合及び調整のプロセスを追跡すること、及び、途中で調整ステップを逆にする能力を維持することの両方が重要である。上述の技術によって提供される調整系統は、調整系統の完全な監査、検査及び修正を可能にし、完全に調整されたモデル内の各メタデータ・インスタンスについて、元のデータ・ソースへの明確な経路を提供する。
別の利点として、段階的調整は、統合されたモデル内のデータ・ソースへの可視性をもたらす。例えば、図17の完全に統合された調整区域6458は、ビジネス分析ツールのためのメタデータ・モデルとして、分析者又は管理者が用いることができる。分析ツールに基づいたビジネス決定を行う前に、データ・ソース及び品質を調査することは有用であり、又はより不可欠である。別の例として、ビジネス決定に、データの特定のビューを必要とすることがある。住所の通り名は、対面式マーケティング・キャンペーンにとって重要であり、郵便番号は、メーリング・キャンペーンにとって重要である。異なるデータ・ソースは、異なる詳細のレベル及び異なる正確さのレベルで、関連情報を伝えることができる。マーケティング・キャンペーンを設計するための分析ツールで所望のメタデータの最良のビューを表現するように、調整プロセスを検査し、必要に応じて修正することができる。この例を続けると、あるデータ・ソースは、非常に詳細かつ正確に住所を定めることができるが、例えば、年に二度、又は情報の受信時に断続的にといったように、まれにしか更新されないことがある。別のデータ・ソースは、所在地住所含むが郵便番号は含まない極めて最新の情報(例えば、電話リストのような)を含むことができる。統合されたエンタープライズ・データ・モデルについての調整系統を調査することによって、管理者は、郵便番号のインスタンスのデータだけがない可能性があることを認識し、所在地住所から最新の郵便番号を合成するように調整プロセス(又は随意的に、統合されたメタデータ・モデル自体)を再設計することができる。
更に別の利点として、段階的調整は、統合されたビューからデータ・ソースに向けて調整及び修正を上流に伝搬する能力をもたらす。このことは、最終的に、エンタープライズ内の元のデータ・ソースからのメタデータ及びデータのデータ構造と品質を改善する。
上記の一般的な手法は、極めて異種のデータ環境において特定のユーティリティを有することができる。例えば、複雑な会社環境において、製造、経理、人的資源及びエンジニアリングのような多数の個々のグループは、各々そのグループに特有の多岐にわたるデータベースを用いて、別個のデータ・サイロを維持することができる。この環境においては、データ統合を有効に用いて、改善されたビジネス・インテリジェンスを可能にする方法で別個のデータベースを統合することができる。データベースを統合してグループについての包括的なメタデータ・モデルを形成すること等によって、統合をグループ内での垂直方向のものにしてもよく、或いは、各々のグループからの給与を統合して包括的な給与メタデータ・モデルを形成すること等によって、統合をグループにまたがる水平方向のものにしてもよい。会社全体にわたる完全なデータ統合は、グループ内での統合ステップとグループにまたがる統合ステップを交互に行うことを含むことができる。
図18は、バージョン化されたメタデータ・オブジェクトの調整を示す。共有リポジトリ6502、バージョン化されたオブジェクト6504、調整プロセス6506及び調整された単一のオブジェクト・インスタンス6508の全ては、図面に関連して上述されたものとすることができる。さらに、各オブジェクト・バージョン6504及び単一のオブジェクト・インスタンス6508は、メタデータ・データベース6510内に格納されたメタデータを指す。モデルに無関係な変更(例えば、会社が新しい付加的な特徴の在庫を追跡したいと望む場合、又は何らかのデータ統合ジョブの影響下の)、或いはメタデータの変更(例えば、ビジネス分析のために、いずれかの数の5日移動平均がモデルに付加される)のために、メタデータ・データベース6510内のメタデータが変わることがあることが理解されるであろう。したがって、メタデータ・オブジェクトのバージョンと共にメタデータ・データベース6510を区分化するか、又は他の方法でメタデータの変更履歴を保持することが望ましい。この付加的な情報を用いる場合、ユーザは、メタデータの改定を通して前後に移動する際に完全な柔軟性を有する。
図19は、メタデータ・プロセスにおける同時処理の使用の一例を示す。この例では、調整プロセス6604において、複数のメタデータ・インスタンス6602が調整される。調整の際、調整されたバージョンのメタデータ・モデルを作成するために、相当量のメタデータを併合するか又は上書きする必要がある。独立した実行又はパイプライン化された実行のために個々のプロセッサ6606にストリームすることができる独立したプロセス・オブジェクトとして、調整プロセス6604を構成することによって、プロセスを改善することができる。独立したプロセス・オブジェクトは、複数のプロセッサ6606を含む単一のハードウェア装置6608にストリームすることができ、又は異なるハードウェア装置6610、6608にストリームすることができ、或いはネットワークを通じて利用可能ないずれかの他のプロセッサ又はプロセッサのグループにストリームすることができる。
同時処理及び関連した並列処理の概念は、当該分野において公知のものであり、ここで詳細に説明する必要はない。一般に、同時処理及び並列処理は、独立して又はパイプライン内で処理することができるサブ・グラフ(オブジェクトについての依存関係の有向グラフを指す)としても知られる、主としてオブジェクトの自己参照クラスタの「塊」にプロセスを分割できる場合に適している。調整プロセスは、同時実行のためのパイプラインとして容易にモデル化することができる。例えば、プロセスは、識別を新しいメタデータ・ソースからのオブジェクト・ストリームに割り当てるためのタスク、前のメタデータ・ソースから可能な競合候補を取り出すためのタスク、調整のためのタスク、調整結果をメタデータ・オブジェクトの出力のセットに併合するためのタスク及び併合されたメタデータ・オブジェクトを格納するためのタスクを含むことができる。メタデータ・インポートのような他のメタデータ・プロセスも、同時処理に適している。
以下の図面は、メタデータ管理に関連した幾つかの方法を説明する。これらのプロセスは、ハードウェア、ソフトウェア、又はこれらの何らかの組み合わせにおいて実現できることが理解されるであろう。プロセスは、プログラム命令、プログラム・データ及びプログラム出力、或いは他の中間又は最終結果を格納するための内部及び/又は外部メモリと共に、単数又は複数のマイクロプロセッサ、マイクロコントローラ、内蔵マイクロコントローラ、プログラム可能デジタル信号プロセッサ、或いは他のプログラム可能な装置において実現することができる。これらのプロセスは、Cのような構造化されたプログラミング言語、C++又はJavaのようなオブジェクト指向プログラミング言語、或いは、コンピュータ、コンピュータのネットワーク及びそれらの組み合わせを含む、いずれかの均一のグループ又は異種のグループのハードウェア・プラットフォーム及びソフトウェア・プラットフォーム上で実行するようにコンパイル又は解釈することが可能ないずれかの他の高レベル又は低レベルのプログラミング言語を用いて作成される、コンピュータ実行可能コードとして実現できることがさらに理解されるであろう。プロセスはまた、各種のツール、プラットフォーム及びアーキテクチャを用いて、拡張可能なエンタープライズ・メタデータ管理システムを達成することもできる。ソフトウェア・プラットフォームの特定の例が上記に与えられるが、他のプラットフォーム及び技術も存在しており、ここで説明されるシステムと共にそれらを有効に用いることができる。
図20は、ユーザ・インターフェース6702からメタデータ・データベース6712への照会プロセスに関与するエンティティの図である。クエリは、ユーザがユーザ・インターフェースの固有構文の形でクエリを準備する、ユーザ・インターフェース6702で開始することができる。クエリは、ビューのようなメタデータ・モデル6704に送ることができる。次に、変換エンジン6708によって、又はビューのような第1のメタデータ・モデル6704とハブのような第2のメタデータ・モデル6710との間のマッピングを記述するマッピング情報を適用することによって、クエリを変換することができる。ハブ6710は、付加的な変換又はマッピング・ステップを用いて、変換されたクエリをデータベース6712に送り、ハブ・ベースのクエリをデータベース6712の固有の構文のクエリに変換することができる。結果は、様々なエンティティ及び任意の適切な変換を通して、最初にそのクエリを発行したユーザ・インターフェース6702に送ることができる。
図21は、メタデータ・モデルからメタデータ・データベースを拡張するプロセスに関与するエンティティを示す。ユーザは、適切な編集インターフェースを用いて、属性等をビュー6802に付加することができる。ビュー・モデル6802とハブ6804との間でメタデータを変換するように、変換エンジンを更新することができる。ハブ・アンド・スポーク・モデルのハブ6804は、通常、整合性がある形で維持されるが、ビュー6802の変更の性質及びその理由によって、ハブ6804を更新することもできる。付加的に、ハブとデータベース6808との間で変換するように、変換エンジンを更新することもできる。データ・モデル6804及び/又は変換エンジンはまた、データベース6808内の新しいビュー6802を反映させるのに適するように、適切なデータベース特有コマンドを用いて、適切な行、列、又はテーブルをデータベース6808に付加することもできる。データベース6808に変更がなされた場合、これらの変更は、モデル・チェーンを通してビュー6802まで押し戻すことができる。
図22は、ツール6902からリポジトリ6910にアクセスするためのプロセスに関与するエンティティを示す。ツール6902は、ビュー6904に関して通信するサードパーティのツールとすることができる。ツール6902は、ビュー6904を通してマッピングされたメタデータを要求することができ、このマッピングされたメタデータを、変換エンジンによってハブ6908のための形態に変換することができる。リポジトリ6910内のマッピングされたメタデータに物理的にアクセスするために、ハブは、別の変換エンジンを通して、要求をさらに変換することができる。このように、要求は、一連のクエリ変換を通してリポジトリに到達することができる。次に、結果すなわち単数又は複数のメタデータ・オブジェクトは、リポジトリ6910からハブ6908、ビュー6904及び最終的に要求側のツール6902に移動する際に、多数の変換又は変換エンジンを通過することができる。したがって、1つの態様においては、単数又は複数のモデルを介してリポジトリに対するクエリを変換し、単数又は複数のオブジェクト変換を介してマッピングされたメタデータのような単数又は複数のオブジェクトをリポジトリ6910からツール6902に提供するステップを含むことができる、外部ツールからリポジトリにアクセスする方法が存在する。有利なことに、本方法は、リポジトリのための固有の構文の形でクエリをリポジトリ6910に提示し、ツール6902のための固有の構文の形で結果を外部ツール6902に提示する。
図23は、ツールが、バージョン化されたメタデータ・モデル及びバージョン化されていないメタデータ・モデルにアクセスするプロセスに関与するエンティティを示す。ツール7002は、例えば、上述のようなイベント・ユーザ環境、チーム・ユーザ環境、又は作業ユーザ環境とすることができるユーザ環境7004と通信することができる。ユーザ環境7004は、Java空間、或いはメタデータ・ツールと共に用いるのに適したいずれかの他のフレームワーク又はプラットフォームとして実装することができる。ユーザ環境7004のタイプ及びツール7002の性質並びにユーザ環境7004において実行される操作によって、ユーザ環境は、バージョン化されていないモデル7008すなわち運用リポジトリ内の運用クラス及び属性、或いはバージョン化されたモデル7010すなわち共有リポジトリ内の設計クラス及び属性のいずれかと通信することができる。ユーザ環境において見ることができるメタデータ・モデルを編集し、メタデータ・モデルの既存のバージョンに置き換わるものとして又は新しいバージョンとして、バージョン化されたモデル7010に再び書き込むことができる。メタデータ7010が既に別のツール又はユーザにチェックアウトされている場合、ツール7002が、共有リポジトリ内のバージョン化されたメタデータ7010をチェックアウトするのを防止できることが理解されるであろう。
図24は、ユーザ・インターフェースが共有リポジトリ内のメタデータの多数バージョンにアクセスするプロセスに関与するエンティティを示す。ユーザ・インターフェース7102は、メタデータの単数又は複数のバージョン7108にアクセスする要求を共有リポジトリ7104に発行することができ、メタデータの他のバージョン及び性質並びに種々のバージョン間の変更の性質及び時間順序について、共有リポジトリ7104にさらに照会することができる。
図25は、メタデータのバージョンのための調整プロセスに関与するエンティティを示す。バージョン7202は、調整プロセス7212を通して別のバージョン7204と調整することができる。付加的な調整プロセス7214、7218を用いて、2つ又はそれ以上の付加的なバージョン7208、7210について類似した調整を行うことができる。各々の調整後又は全ての調整後、調整されたバージョンを、前のバージョンからの変更を反映する、メタデータの新しいバージョンに併合することができる。この調整は、段階的に又は一度に全てを実行することができ、競合の調整、調整の順序等にわたって、ユーザ制御を随意的に実行することができる。
図26は、同時処理を用いる調整プロセスに関与するエンティティを示す。この調整プロセスは、別個の調整の各々を、クラスタ7302内にあるものにも又は物理的に互いに離れたものにもすることができる、複数のプロセッサ7304に別個に渡すことが可能であり、かつ、各調整フェーズ間の依存関係の性質によって、パイプライン式又は並列式に実行できる点を除いて、上述されたような調整プロセスとすることができる。
本発明は、特定の好ましい実施形態に関連して説明されたが、他の実施形態が、当業者によって認識され、本開示の範囲内に含まれるように意図されることを理解すべきである。