(57)【要約】  ここで開示されるのは、データ統合プロセスを構築し、管理するためのアーキテクチャである。このアーキテクチャは、ユーザ・インターフェース、プログラマチック・インターフェース、サービス、コンポーネント、ランタイム・エンジン及び外部コネクタを含む、統合設計プロセスの多くの態様に、モジュール性及び拡張性を与えることができる。このアーキテクチャは、データ統合プロセスの設計及び実装の種々のフェーズ間のシームレスな遷移を可能にする、設計プロセス全体にわたる一般的な統合メタデータ共有アプローチを用いることもできる。
2008511934.tif 000002
【特許請求の範囲】
【請求項１】
データ統合システムであって、
プロジェクトに関するワークフローの複数のフェーズに対応する複数のメニューを含む、複数のデータ統合タスクを実行するためのユーザ・インターフェースと、
１つ又は複数のサービスが前記ユーザ・インターフェースの前記データ統合タスクの各々と関連付けられるサービス・レジストリを含むサービス指向アーキテクチャと、
前記ユーザ・インターフェース及び前記サービス指向アーキテクチャの１つ又は複数のサービスに関連付けられ、前記プロジェクトに関するワークフローの複数のフェーズのための共通メタデータ・モデルを格納するリポジトリと、
前記プロジェクトを実行するための１つ又は複数のランタイム・エンジンと、
データ・スループットのためのモジュラ・コンポーネント及び構成を使用し、１つ又は複数の前記ランタイム・エンジンを１つ又は複数の外部リソースに接続するための、１つ又は複数のコネクタと、
を含むデータ統合システム。
【請求項２】
前記データ統合タスクのうちの選択されたタスクを前記メニューのうちの選択されたメニューと関連付けるタスク・マトリックスをさらに含む、請求項１に記載のデータ統合システム。
【請求項３】
前記ユーザ・インターフェースと前記サービス指向アーキテクチャとの間にあって、前記ユーザ・インターフェースのユーザにコンテクスト固有コンテンツを与える、インテリジェント・オートメーション層をさらに含む、請求項１に記載のデータ統合システム。
【請求項４】
前記ランタイム・エンジン間でプロセスを自律的に割り当てる、前記ランタイム・エンジンのためのランタイム最適化層をさらに含む、請求項１に記載のデータ統合システム。
【請求項５】
データ統合プロセスを管理するための方法であって、
プロジェクトに関するワークフローの複数のフェーズに対応する複数のメニューを含む、複数のデータ統合タスクを実行するためのユーザ・インターフェースを提供するステップと、
１つ又は複数のサービスを前記ユーザ・インターフェースのデータ統合タスクの各々と関連付ける、サービス・レジストリを含むサービス指向アーキテクチャを提供するステップと、
リポジトリを前記ユーザ・インターフェース及び前記サービス指向アーキテクチャの１つ又は複数のサービスと関連付けるステップと、
前記プロジェクトに関するワークフローの複数のフェーズに関する共通メタデータ・モデルを前記リポジトリに格納するステップと、
前記プロジェクトのデータ処理のためにモジュラ・コンポーネント及び構成を使用する１つ又は複数のランタイム・エンジンを用いて、プロジェクトを実行するステップと、
前記１つ又は複数のランタイム・エンジンを１つ又は複数の外部リソースに接続するステップと、
を含む方法。
【請求項６】
前記ユーザ・インターフェースと前記サービス指向アーキテクチャとの間にあって、コンテクスト固有コンテンツを前記ユーザ・インターフェースのユーザに提供する、インテリジェント・オートメーション層を提供するステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記ランタイム・エンジン間でプロセスを自律的に割り当てる、前記ランタイム・エンジンのためのランタイム最適化層を提供するステップをさらに含む、請求項５に記載の方法。
【請求項８】
タスク・マトリックスを用いて前記データ統合タスクのうちの選択されたタスクを前記メニューのうちの選択されたメニューと関連付けるステップをさらに含む、請求項５に記載の方法。
【請求項９】
コンピュータ可読プログラム・コードを収容するコンピュータで使用可能な媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読プログラム・コードが、１つ又は複数のコンピュータ上で実行されたときに、前記１つ又は複数のコンピュータに、
プロジェクトに関するワークフローの複数のフェーズに対応する複数のメニューを含む、複数のデータ統合タスクを実行するためのユーザ・インターフェースを提供するステップと、
１つ又は複数のサービスを前記ユーザ・インターフェースのデータ統合タスクの各々と関連付ける、サービス・レジストリを含むサービス指向アーキテクチャを提供するステップと、
リポジトリを前記ユーザ・インターフェース及び前記サービス指向アーキテクチャの１つ又は複数のサービスと関連付けるステップと、
前記プロジェクトに関するワークフローの複数のフェーズに関する共通メタデータ・モデルを前記リポジトリに格納するステップと、
前記プロジェクトのデータ処理のためにモジュラ・コンポーネント及び構成を使用する１つ又は複数のランタイム・エンジンを用いて、プロジェクトを実行するステップと、
前記１つ又は複数のランタイム・エンジンを１つ又は複数の外部リソースに接続するステップと、
を実行させる、コンピュータ・プログラム製品。
【請求項１０】
前記コンピュータ可読プログラム・コードがさらに、１つ又は複数のコンピュータ上で実行されたときに、前記１つ又は複数のコンピュータに、前記ユーザ・インターフェースと前記サービス指向アーキテクチャとの間にあって、前記ユーザ・インターフェースのユーザにコンテクスト固有コンテンツを与える、インテリジェント・オートメーション層を提供させる、請求項９に記載のコンピュータ・プログラム製品。
【請求項１１】
前記コンピュータ可読プログラム・コードがさらに、１つ又は複数のコンピュータ上で実行されたときに、前記１つ又は複数のコンピュータに、前記ランタイム・エンジン間でプロセスを自律的に割り当てる、前記ランタイム・エンジンのためのランタイム最適化層を提供させる、請求項９に記載のコンピュータ・プログラム製品。
【請求項１２】
前記コンピュータ可読プログラム・コードがさらに、１つ又は複数のコンピュータ上で実行されたときに、前記１つ又は複数のコンピュータに、タスク・マトリックスを用いて前記データ統合タスクのうちの選択されたタスクを前記メニューのうちの選択されたメニューと関連付けさせる、請求項９に記載のコンピュータ・プログラム製品。
【請求項１３】
データ統合システムにおいてサービスを提供するためのサービス指向アーキテクチャであって、
ツールに構成された複数の個別の再使用可能かつ共有可能なサービス、外部リソース・コネクタをサービスとして公開するコンポーネント・サービス、及びリポジトリに格納されたメタデータ・モデルにアクセスするための１つ又は複数のリポジトリ・サービス、を含むサービスを動的に配置しインスタンス化するためのサービス・ディレクトリと、
前記サービスを用いてデータ統合プロセスをユーザが設計するための分離されたユーザ・インターフェースと、
を含むアーキテクチャ。
【請求項１４】
１つ又は複数の前記サービスが内部サービスである、請求項１３に記載のアーキテクチャ。
【請求項１５】
１つ又は複数の前記サービスが外部サービスである、請求項１３に記載のアーキテクチャ。
【請求項１６】
前記サービスが異なる技術を使用する、請求項１３に記載のアーキテクチャ。
【請求項１７】
１つ又は複数の前記サービスが同期である、請求項１３に記載のアーキテクチャ。
【請求項１８】
１つ又は複数の前記サービスが非同期である、請求項１３に記載のアーキテクチャ。
【請求項１９】
前記サービスが、監査、ロギング、監視、管理及びアドミニストレーション、セキュリティ、ユーザ・プロファイル、セッション管理、並びに、報告、トランザクション、オーケストレーション、ユーザ・ディレクトリ、コンポーネント・サービス、構成、システム管理、ソース制御、ソース及びターゲット・メタデータのインポート／エクスポート、メタデータクエリ、アクセス、分析、報告、並びに、サブスクリプション、サンプル・データ、データ・プロファイリング、プロセス編集、プロセス・コンパイル、データ検証、設計デプロイ、設計実行、インストール及び更新、デモ・セットアップ、デプロイ、リリース管理、同期、データ・プロファイリング、データ・クレンジング、検査及び調整、テンプレートの適用、テスト、並びに、問題報告のうちの１つ又は複数を制御する複数の機能を含む、請求項１３に記載のアーキテクチャ。
【請求項２０】
データ統合システムにおけるサービス指向サービスを提供する方法であって、
ツールに構成された複数の別個の再使用可能かつ共有可能なサービス、外部リソース・コネクタをサービスとして公開するコンポーネント・サービス、及びリポジトリに格納されたメタデータ・モデルにアクセスするための１つ又は複数のリポジトリ・サービスを含む複数のサービスを、サービス・ディレクトリに登録するステップと、
前記複数のサービスのうちの１つを前記レジストリ内に動的に配置するステップと、
前記複数のサービスのうちの配置された１つをインスタンス化するステップと、
前記複数のサービスのうちの配置された１つを用いてデータ統合プロセスをユーザが設計するための分離されたユーザ・インターフェースを提供するステップと、
を含む方法。
【請求項２１】
１つ又は複数の前記サービスが内部サービスである、請求項２０に記載の方法。
【請求項２２】
１つ又は複数の前記サービスが外部サービスである、請求項２０に記載の方法。
【請求項２３】
前記サービスが異なる技術を使用する、請求項２０に記載の方法。
【請求項２４】
１つ又は複数の前記サービスが同期である、請求項２０に記載の方法。
【請求項２５】
１つ又は複数の前記サービスが非同期である、請求項２０に記載の方法。
【請求項２６】
前記サービスが、監査、ロギング、監視、管理及びアドミニストレーション、セキュリティ、ユーザ・プロファイル、セッション管理、並びに、報告、トランザクション、オーケストレーション、ユーザ・ディレクトリ、コンポーネント・サービス、構成、システム管理、ソース制御、ソース及びターゲット・メタデータのインポート／エクスポート、メタデータクエリ、アクセス、分析、報告、並びに、サブスクリプション、サンプル・データ、データ・プロファイリング、プロセス編集、プロセス・コンパイル、データ検証、設計デプロイ、設計実行、インストール及び更新、デモ・セットアップ、デプロイ、リリース管理、同期、データ・プロファイリング、データ・クレンジング、検査及び調整、テンプレートの適用、テスト、並びに、問題報告のうちの１つ又は複数を制御する複数の機能を含む、請求項２０に記載の方法。
【請求項２７】
データ統合システムを外部リソースに接続するための方法であって、
データ統合システムをサービス指向アーキテクチャにおける複数のサービスとしてデプロイするステップと、
各々が外部リソースに接続されるように構成された１つ又は複数のコネクタ・コンポーネントを、データ統合システムのサービス・ディレクトリ内のサービスとして登録するステップと、
前記コネクタ・コンポーネントの１つをサービスとして用いて、データ統合システム内から外部リソースへの接続を確立するステップと、
を含む方法。
【請求項２８】
前記コネクタ・コンポーネントが、外部リソース・ファイルへの全てのアクセスを提供する、請求項２７に記載の方法。
【請求項２９】
少なくとも１つの前記コネクタ・コンポーネントが翻訳プロセスを含む、請求項２７に記載の方法。
【請求項３０】
前記コネクタ・コンポーネントが、データ統合プロセスの設計の間、使用可能となる、請求項２７に記載の方法。
【請求項３１】
前記コネクタ・コンポーネントが、ランタイムの間、使用可能となる、請求項２７に記載の方法。
【請求項３２】
前記コネクタ・コンポーネントが、特定の外部リソースへのインターフェースを含む、請求項２７に記載の方法。
【請求項３３】
前記外部リソースへの接続が、イベント・リスニング及びリソース・アクセスを含む、請求項２７に記載の方法。
【請求項３４】
前記外部リソースへの接続が永続的である、請求項２７に記載の方法。
【請求項３５】
前記外部リソースが、少なくとも１つのデータ・ソース又は少なくとも１つのデータ・ターゲットを含む、請求項２７に記載の方法。
【請求項３６】
前記コネクタ・コンポーネントが、外部リソースのためのメタデータへのアクセスを提供する、請求項３５に記載の方法。
【請求項３７】
前記コネクタ・コンポーネントが、外部リソースのためのデータへのアクセスを提供する、請求項３５に記載の方法。
【請求項３８】
サービス・ディレクトリを含むサービス指向アーキテクチャと、
関連するコンピュータ・プログラム製品スイートの複数の機能であって、各々１つがサービス・ディレクトリ内のサービスとして登録された機能と、
１つ又は複数のサービスのうちの１つ又は複数のインスタンスを呼び出して、関連するコンピュータ製品スイートをサービス指向アーキテクチャにデプロイするためのインターフェースと、
を含むシステム。
【請求項３９】
前記関連するコンピュータ・プログラム製品スイートがデータ統合スイートを含む、請求項３８に記載のシステム。
【請求項４０】
前記機能が、監査、ロギング、監視、管理及びアドミニストレーション、セキュリティ、ユーザ・プロファイル、セッション管理、並びに、報告、トランザクション、オーケストレーション、ユーザ・ディレクトリ、コンポーネント・サービス、構成、システム管理、ソース制御、ソース及びターゲット・メタデータのインポート／エクスポート、メタデータクエリ、アクセス、分析、報告、並びに、サブスクリプション、サンプル・データ、データ・プロファイリング、プロセス編集、プロセス・コンパイル、データ検証、設計デプロイ、設計実行、インストール及び更新、デモ・セットアップ、デプロイ、リリース管理、同期、データ・プロファイリング、データ・クレンジング、検査及び調整、テンプレートの適用、テスト、並びに、問題報告のうちの１つ又は複数を含む、請求項３９に記載のシステム。
【請求項４１】
１つ又はそれ以上のパラメータが、１つ又はそれ以上の前記サービスの１つ又はそれ以上のインスタンスに渡される、請求項３８に記載のシステム。
【請求項４２】
１つ又はそれ以上の前記サービスが、前記関連するコンピュータ・プログラムの全てに共通の少なくとも１つの共通サービスを含む、請求項３８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報技術の分野に関し、より特定的には、データ統合システムの分野に関する。
【背景技術】
【０００２】
コンピュータ・アプリケーションは、多くのビジネス・プロセスを、より高速、かつ、より効率的なものにする。しかしながら、異なるデータ構造、通信プロトコル、言語及びプラットフォームを用いる異なるコンピュータ・アプリケーションの急増によって、典型的な企業の情報技術インフラストラクチャが極めて複雑になってきた。典型的な企業内部における異なるビジネス・プロセスは、企業全体ではなく特定のビジネス・プロセスのために各々が開発され最適化される、全く異なるコンピュータ・アプリケーションを用いる場合がある。例えば、ビジネスが、買掛金勘定を追跡するための特定のコンピュータ・アプリケーションと、顧客との接触の経過を追跡するための全く異なるコンピュータ・アプリケーションとを有する場合がある。企業は集中顧客接触データベースを保持するが、従業員は個人情報マネージャ等に彼ら自身の接触情報を保持するときなどに、同一のビジネス・プロセスでさえ、２つ以上のコンピュータ・アプリケーションを用いる場合がある。
【０００３】
専用のコンピュータ・アプリケーションの利点は、反復的な入力、冗長なデータ処理、又は、企業がそのデータから利益を得ることができる別のプロセスを実行するときに、企業がそのエンタープライズ・データセットの相関を認識して、或るプロセスに関連するデータを利用することができない等の、それらがもたらす非効率によって相殺される。例えば、買掛金勘定プロセスがサプライ・チェーン及び発注プロセスから分離される場合には、企業は、クレジット記録が注文を拒否する原因となっている顧客からの注文を受け付けて、応じることがある。様々なコンピュータ・アプリケーション全体にわたってデータのすべてに対する矛盾のないアクセスにより企業が利益を受けることになる他の多くの例を挙げることができる。
【０００４】
多くの会社が、企業における異なるアプリケーション間でデータを共有する必要性を認識し、これを処理してきた。従って、エンタープライズ・アプリケーション統合、すなわちＥＡＩが、異なるソースからのデータを処理するためのメッセージベースの戦略として登場した。コンピュータ・アプリケーションの複雑さと数が増加するにつれて、ＥＡＩの取り組みは、異なるプロトコルを扱う必要性、増え続けるデータ量及びトランザクション数を処理する必要性、並びに、データのより高速な統合に対する増え続ける要求にまで及ぶ、多くの課題に直面する。最小公分母アプローチ、アトミック・アプローチ及びブリッジ型アプローチを含む、ＥＡＩに対する様々なアプローチが行われた。しかしながら、ＥＡＩは、個々のアプリケーション間の通信に基づくものである。重大な欠点として、プラットフォーム及びアプリケーションの直線的な追加に応じて、ＥＡＩソリューションの複雑さは幾何学的に増大する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データ統合システムが企業の必要性に対処するための有用なツールをもたらしたが、こういったシステムは、典型的には、顧客ソリューションとして導入される。こういったシステムは、長期にわたる開発サイクルを有し、ビジネス構造及び情報要件の変化に対応するために高度な技術訓練を必要とすることがある。変化するビジネス環境での機能の使用、再使用及び変更を可能にするデータ統合システム・ツールに対する必要性、並びに、データ統合システムの設計及び使用をサポートする改善されたアーキテクチャに対する必要性が、依然として残っている。
【課題を解決するための手段】
【０００６】
データ統合プロセスを構築し、管理するためのアーキテクチャをここに開示する。このアーキテクチャは、ユーザ・インターフェース、プログラマチック・インターフェース、サービス、コンポーネント、ランタイム・エンジン及び外部コネクタを含む、統合設計プロセスの多くの態様へのモジュール性及び拡張性を与えることができる。このアーキテクチャはまた、データ統合プロセスの設計及び実装の種々のフェーズ間のシームレスな遷移を可能にする、設計プロセス全体にわたる共通の統合されたメタデータ共有アプローチを用いることもできる。
【０００７】
１つの態様において、本開示によるデータ統合システムは、プロジェクトに関するワークフローの複数のフェーズに対応する複数のメニューを含む、複数のデータ統合タスクを実行するためのユーザ・インターフェースと、データ統合タスクのうちの選択されたタスクをメニューのうちの選択されたメニューと関連付けるタスク・マトリックスと、１つ又は複数のサービスをユーザ・インターフェースのデータ統合タスクの各々と関連付ける、サービス・レジストリを含むサービス指向アーキテクチャと、ユーザ・インターフェース及びサービス指向アーキテクチャの１つ又は複数のサービスに関連付けられ、プロジェクトに関するワークフローの１つより多いフェーズのための共通メタデータ・モデルを格納するリポジトリと、プロジェクトを実行するための１つ又は複数のランタイム・エンジンと、データ・スループットのためにモジュラ・コンポーネント及び構成を使用し、１つ又は複数のランタイム・エンジンを１つ又は複数の外部リソースに接続するための１つ又は複数のコネクタと、を含む。
【０００８】
別の態様においては、データ統合プロセスを管理するための方法は、プロジェクトに関するワークフローの複数のフェーズに対応する複数のメニューを含む、複数のデータ統合タスクを実行するためのユーザ・インターフェースを提供するステップと、データ統合タスクのうちの選択されたタスクをメニューのうちの選択されたメニューと関連付けるステップと、サービス・レジストリを含むサービス指向アーキテクチャを提供するステップと、１つ又は複数のサービスをユーザ・インターフェースのデータ統合タスクの各々と関連付けるステップと、ユーザ・インターフェース及びサービス指向アーキテクチャの１つ又は複数のサービスにリポジトリを関連付けるステップと、プロジェクトに関するワークフローの１つより多いフェーズに関する共通メタデータ・モデルをリポジトリに格納するステップと、プロジェクトのデータ処理のためにモジュラ・コンポーネント及び構成を使用する１つ又は複数のランタイム・エンジンを用いてプロジェクトを実行するステップと、１つ又は複数のランタイム・エンジンを１つ又は複数の外部リソースに接続するステップと、を含むことができる。
【０００９】
データ統合システム又は方法はさらに、ユーザ・インターフェースとサービス指向アーキテクチャとの間にあって、コンテクスト固有コンテンツをユーザ・インターフェースのユーザに提供する、インテリジェント自動化層を含むことができる。データ統合システム又は方法はさらに、ランタイム・エンジン間でプロセスを自律的に割り当てる、ランタイム・エンジンのためのランタイム最適化層を含むことができる。
【００１０】
別の態様においては、データ統合システムへのユーザ・インターフェースを提供するための方法は、サービス指向アーキテクチャにおける複数のデータ統合サービスを提供するステップと、モジュラ制御により強く分離されたユーザ・インターフェースを提供するステップと、制御をサービス指向アーキテクチャの１つ又は複数のサービスと関連付けるステップと、１つ又は複数のサービスをユーザ・インターフェースの制御下のタスクとして提示するステップと、を含むことができる。データ統合プロセスのためのユーザ・インターフェース・システムは、サービス指向アーキテクチャにおける複数のデータ統合サービスと、１つ又は複数のデータ統合サービスをユーザ・インターフェースの制御下のタスクとして提示するように構成された、モジュラ制御により強く分離されたユーザ・インターフェースと、ユーザ・インターフェースの制御をサービス指向アーキテクチャの１つ又は複数のサービスと関連付けるタスク・マトリックスと、を含むことができる。
【００１１】
サービスは、共有メタデータとのライブ関係を含むことができる。共有メタデータへの変更は、共有メタデータの他のユーザに直ちに見えるようにすることができる。ユーザ・インターフェースは、コンテクスト依存ヘルプを含むことができる。サービスは、外部ソース−コード制御システムへのコネクタを含むことができる。サービスは、マッピング、データ・クレンジング、及びデータ強化のうちの少なくとも１つを含むことができる。ユーザ・インターフェースは、タスク指向とすることができる。ユーザ・インターフェースは、スキル・レベル依存又は役割依存とすることができる。役割は、監視、デプロイ及び／又は動作制御を含むことができる。ユーザ・インターフェースは、ユーザ・インターフェースを介してアクセス可能な全てのサービスにわたる統合されたセッション履歴を含むことができる。ユーザ・インターフェースは、ユーザ定義可能とすることができる。ユーザ・インターフェースは、モバイル・デバイス上での使用に適合させることができる。ユーザ・インターフェースは、下位レベル制御のライブラリにおいて提供することができる。この方法又はシステムは、再使用可能ダイアログのライブラリの提供を含むことができる。
【００１２】
データ統合システムにおけるサービスを提供するためのサービス指向アーキテクチャは、ツールに構成された複数の個別の再使用可能かつ共有可能なサービス、外部リソース・コネクタをサービスとして公開するコンポーネント・サービス、及びリポジトリに格納されたメタデータ・モデルにアクセスするための１つ又は複数のリポジトリ・サービス、を含むサービスを動的に配置しインスタンス化するためのサービス・ディレクトリと、該サービスを用いるデータ統合プロセスのユーザ設計のための分離されたユーザ・インターフェースと、を含むことができる。データ統合システムにおけるサービス指向サービスを提供するための方法は、ツールに構成された複数の別個の再使用可能かつ共有可能なサービス、外部リソース・コネクタをサービスとして公開するコンポーネント・サービス、及びリポジトリに格納されたメタデータ・モデルにアクセスするための１つ又は複数のリポジトリ・サービスを含む複数のサービスを、サービス・ディレクトリに登録するステップと、該複数のサービスのうちの１つをレジストリ内に動的に配置するステップと、該複数のサービスのうちの配置された１つをインスタンス化するステップと、該複数のサービスのうちの配置された１つを用いるデータ統合プロセスのユーザ設計のための分離されたユーザ・インターフェースを提供するステップと、を含むことができる。
【００１３】
１つ又は複数のサービスは、内部サービス及び／又は外部サービスとすることができる。サービスは、異なる技術を使用することができる。１つ又は複数のサービスは、同期及び／又は非同期とすることができる。サービスは、監査、ロギング、監視、管理及びアドミニストレーション、セキュリティ、ユーザ・プロファイル、セッション管理、並びに、報告、トランザクション、オーケストレーション、ユーザ・ディレクトリ、コンポーネント・サービス、構成、システム管理、ソース制御、ソース及びターゲット・メタデータのインポート／エクスポート、メタデータクエリ、アクセス、分析、報告、並びに、サブスクリプション、サンプル・データ、データ・プロファイリング、プロセス編集、プロセス・コンパイル、データ検証、設計デプロイ、設計実行、インストール及び更新、デモ・セットアップ、デプロイ、リリース管理、同期、データ・プロファイリング、データ・クレンジング、検査及び調整、テンプレートの適用、テスト、並びに、問題報告のうちの１つ又は複数を制御する複数の機能を含むことができる。
【００１４】
別の態様においては、リポジトリにおけるメタデータ・モデルを共有するための方法は、メタデータ・モデルをリポジトリに格納するステップと、１つ又は複数のリポジトリ・サービスを、リポジトリ・サービスを動的に配置しインスタンス化するように構成されたサービス・ディレクトリに登録するステップと、サービス指向アーキテクチャにおいてサービス・ディレクトリ及び１つ又は複数のリポジトリ・サービスをデプロイするステップと、１つ又は複数のリポジトリ・サービスのうちの少なくとも１つを介してメタデータ・モデルにアクセスするステップと、を含むことができる。メタデータ・モデルのリポジトリを共有するためのシステムは、少なくとも１つのメタデータ・モデルを格納するリポジトリと、１つ又は複数のリポジトリ・サービスをサービス指向アーキテクチャに動的に配置し、インスタンス化するように構成されたサービス・ディレクトリと、１つ又は複数のリポジトリ・サービスのうちの少なくとも１つを介して少なくとも１つのメタデータ・モデルに共有アクセスするためのインターフェースと、を含むことができる。
【００１５】
１つ又は複数のリポジトリ・サービスは、モデル登録、インポート／エクスポート、バージョン管理、ナビゲーション・アクセス、検索／クエリアクセス、永続性、及びチェック・イン／チェック・アウト・サービスのうちの１つ又は複数を含むことができる。リポジトリは、パーソナル・リポジトリ、チーム・リポジトリ、プロジェクト・リポジトリ、部課ベース・リポジトリ、エンタープライズ・リポジトリ、集中リポジトリ、及び非集中リポジトリのうちの１つ又は複数を含むことができる。
【００１６】
別の態様においては、データ統合システムを外部リソースに接続するための方法は、データ統合システムをサービス指向アーキテクチャにおける複数のサービスとしてデプロイするステップと、各々が外部リソースに接続されるように構成された１つ又は複数のコネクタ・コンポーネントを、データ統合システムのサービス・ディレクトリ内のサービスとして登録するステップと、コネクタ・コンポーネントの１つをデータ統合システム内からのサービスとして用いて、外部リソースへの接続を確立するステップと、を含むことができる。データ統合システムを外部リソースに接続するためのシステムは、サービス・ディレクトリ及び複数のサービスを含むサービス指向アーキテクチャと、各々が外部リソースに接続されるように構成され、サービス・ディレクトリ内のサービスとして登録された１つ又は複数のコネクタ・コンポーネントと、コネクタ・コンポーネントの１つをサービスとして用いて、データ統合システム内から外部リソースへの接続を確立する少なくとも１つのランタイム・エンジンと、を含むことができる。
【００１７】
コネクタ・コンポーネントは、外部リソース・ファイルへの全てのアクセスを提供することができる。少なくとも１つのコネクタ・コンポーネントは、翻訳プロセスを含むことができる。コネクタ・コンポーネントは、データ統合プロセスの設計の間及び／又はランタイムの間、使用可能となる。コネクタ・コンポーネントは、特定の外部リソースへのインターフェースを含むことができる。外部リソースへの接続は、イベント・リスニング及びリソース・アクセスを含むことができる。外部リソースへの接続は、永続的とすることができる。
【００１８】
別の態様においては、本明細書において説明されたデータ統合システムを外部リソースに接続するための方法は、データ統合システムをサービス指向アーキテクチャにおける複数のサービスとしてデプロイするステップと、各々が外部リソースに接続されるように構成された１つ又は複数のコネクタ・コンポーネントをデータ統合システムのサービス・ディレクトリ内のサービスとして登録するステップと、コネクタ・コンポーネントの１つをサービスとして用いて、データ統合システム内から外部リソースへの接続を確立するステップと、を含む。
【００１９】
コネクタ・コンポーネントは、外部リソース・ファイルへの全てのアクセスを提供することができる。少なくとも１つのコネクタ・コンポーネントは、翻訳プロセスを含むことができる。コネクタ・コンポーネントは、データ統合プロセスの設計の間使用可能とすることができる。コネクタ・コンポーネントは、ランタイムの間使用可能とすることができる。コネクタ・コンポーネントは、特定の外部リソースへのインターフェースを含むことができる。外部リソースへの接続は、イベント・リスニング及びリソース・アクセスを含むことができる。外部リソースへの接続は、永続的とすることができる。外部リソースは、少なくとも１つのデータ・ソース又は少なくとも１つのデータ・ターゲットを含むことができる。コネクタ・コンポーネントは、外部リソースのためのメタデータへのアクセスを提供することができる。コネクタ・コンポーネントは、外部リソースのためのデータへのアクセスを提供することができる。
【００２０】
別の態様においては、本明細書に開示されるシステムは、サービス・ディレクトリを含むサービス指向アーキテクチャと、各々１つがサービス・ディレクトリ内のサービスとして登録された、関連するコンピュータ・プログラム製品スイートの複数の機能と、１つ又は複数のサービスのうちの１つ又は複数のインスタンスを呼び出して、関連するコンピュータ・プログラム製品スイートをサービス指向アーキテクチャにデプロイするためのインターフェースと、を含む。
【００２１】
関連するコンピュータ・プログラム製品スイートは、データ統合スイートを含むことができる。機能は、監査、ロギング、監視、管理及びアドミニストレーション、セキュリティ、ユーザ・プロファイル、セッション管理、並びに、報告、トランザクション、オーケストレーション、ユーザ・ディレクトリ、コンポーネント・サービス、構成、システム管理、ソース制御、ソース及びターゲット・メタデータのインポート／エクスポート、メタデータクエリ、アクセス、分析、報告、並びに、サブスクリプション、サンプル・データ、データ・プロファイリング、プロセス編集、プロセス・コンパイル、データ検証、設計デプロイ、設計実行、インストール及び更新、デモ・セットアップ、デプロイ、リリース管理、同期、データ・プロファイリング、データ・クレンジング、検査及び調整、テンプレートの適用、テスト、並びに、問題報告のうちの１つ又は複数を含むことができる。１つ又は複数のパラメータは、１つ又は複数のサービスの１つ又は複数のインスタンスに渡すことができる。１つ又は複数のサービスは、関連するコンピュータ・プログラム製品の全てに共通の少なくとも１つの共通サービスを含むことができる。
【００２２】
他の態様においては、コンピュータ・プログラムは、コンピュータ可読プログラム・コードを収容するコンピュータで使用可能な媒体を含み、コンピュータ可読プログラム・コードは、１つ又は複数のコンピュータ上で実行されたときに、１つ又は複数のコンピュータに、上記の方法のうちのいずれか１つ又は複数を実行させる。
【００２３】
ここで用いられる「Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ」又は「ＩＢＭ」とは、ニューヨーク州、アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーションを指す。
【００２４】
ここで用いられる「データ・ソース」又は「データ・ターゲット」とは、これらの用語と整合性のある最も広範な意味をもつように意図されており、特定の意味が他に示されないか又は語句の文脈が他を要求しない限り、データベース、複数のデータベース、リポジトリ情報マネージャ、キュー、メッセージ・サービス、リポジトリ、データ機器、データ・ストレージ機器、データ・プロバイダ、ウェブサイト、サーバ、コンピュータ、コンピュータ・ストレージ機器、ＣＤ、ＤＶＤ、モバイル・ストレージ機器、中央ストレージ機器、ハード・ディスク、複数の調整データ・ストレージ機器、ＲＡＭ、ＲＯＭ、フラッシュ・メモリ、メモリ・カード、一時メモリ機器、永続メモリ機器、磁気テープ、ローカル接続コンピュータ機器、遠隔接続コンピュータ機器、無線機器、有線機器、モバイル機器、中央機器、ウェブ・ブラウザ、クライアント、ラップトップ、携帯情報端末（「ＰＤＡ」）、電話、携帯電話、移動電話、情報プラットフォーム、分析機器、処理機器、ビジネス・エンタープライズ・システム、又はデータが処理される他の機器、若しくは、データ又は他の情報、並びに上述のシステムのいずれかにおいて用いられる構造化データ若しくは非構造化データ又はいずれかのストリーミング、メッセージ・データ、イベント駆動データ、若しくは他の手法によるソース派生データを維持するためのいずれかのファイル若しくはファイル・タイプを格納するために提供される他の機器、並びに、これらのいずれかの組み合わせを含むものとする。ストレージ機構は、いずれかの物理装置又は論理装置、リソース、或いは、データ・ソース若しくはデータ・ターゲットとして役立つか、そうでなければデータを検索可能な形式で格納することができる機器である。
【００２５】
「Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  Ｂｅａｎ（ＥＪＢ）」は、Ｊ２ＥＥプラットフォームのためのサーバ側のコンポーネント・アーキテクチャを含む。ＥＪＢは、分散Ｊａｖａアプリケーション、トランザクションＪａｖａアプリケーション、セキュアＪａｖａアプリケーション及びポータブルＪａｖａアプリケーションの迅速かつ簡単化された開発をサポートする。ＥＪＢは、メッセージの並行処理を可能にするコンテナ・アーキテクチャをサポートし、分散トランザクションをサポートするため、Ｊ２ＥＥアーキテクチャを用いるデータベース更新、メッセージ処理、及びエンタープライズ・システムへの接続が、同一のトランザクション・コンテクストに関与することができる。
【００２６】
「ＪＭＳ」は、ＪａｖａベースのＪ２ＥＥエンタープライズ・アーキテクチャのためのエンタープライズ・メッセージ・サービスであるＪａｖａ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅを意味する。「ＪＣＡ」は、以下により具体的に説明されるＪ２ＥＥプラットフォームのＪ２ＥＥコネクタ・アーキテクチャを意味する。ＥＪＢ、ＪＭＳ及びＪＣＡは、最新の分散トランザクション環境において一般に用いられるソフトウェア・ツールであるが、同様の機能を提供するいずれかのプラットフォーム、システム又はアーキテクチャを、本明細書において説明されるデータ統合システムで利用できることを理解すべきである。
【００２７】
ここで用いられる「リアルタイム」とは、ビジネス・トランザクション又はビジネスの継続時間に近い時間の間隔を含み、夜間のバッチ処理運用などのオフラインで行われるものとは対照的に、企業活動又はビジネス・プロセスの間に行われるプロセス又はサービスを含むものとする。ビジネス・プロセスの継続時間によって、リアルタイムは、秒、一瞬、分、時間、又は日さえも含む場合がある。
【００２８】
ここで用いられる「ビジネス・プロセス」、「ビジネス論理」及び「ビジネス・トランザクション」とは、販売、マーケティング、フルフィルメント、在庫管理、値付け、製品設計、専門的サービス、金融サービス、管理、財務、引受業務、分析、契約、情報技術サービス、データ・ストレージ、データ・マイニング、情報の配信、商品の経路指定、スケジューリング、通信、投資、トランザクション、オファリング、販売促進、広告、売り出し、工学、製造、サプライ・チェーン管理、人事管理、データ処理、データ統合、ワークフロー管理、ソフトウェア生産、ハードウェア生産、新製品の開発、調査、開発、戦略機能、品質管理及び保証、パッケージ化、物流、顧客関係管理、リベート及び返品処理、顧客サポート、製品メンテナンス、電話勧誘、企業広報、投資家向け広報活動、及び、他の多くのものを含むが、これらに限定されるものではなく、企業によって行われる可能性のあるいずれかの方法、サービス、運用、プロセス又は取引を含むものとする。
【００２９】
ここで用いられる「サービス指向アーキテクチャ（ＳＯＡ）」とは、企業のインフラストラクチャの一部を形成するサービスを含む。ＳＯＡにおいては、サービスは、迅速なアプリケーション開発を可能にし、冗長なコードを避ける、アプリケーション開発及び導入のための構築単位となることがある。各々のサービスは、サービスについてのデータ入力のソース又はサービスのデータ出力のためのターゲットといった、周囲環境に結び付けることができるビジネス論理又はビジネス規則の組を具体化することができる。ＳＯＡの種々の例は、以下の記述において提供される。
【００３０】
ここで用いられる「メタデータ」とは、処理されているデータにコンテクストを導入するデータ、データに関するデータ、関連情報のコンテクストに関する情報、データの出所に関する情報、データの場所に関する情報、データの意味に関する情報、データの経過時間に関する情報、データの見出しに関する情報、データの単位に関する情報、データのフィールドに関する情報、データのコンテクストに関連する他のいずれかの情報に関する情報を含むものとする。
【００３１】
ここで用いられる「ＷＳＤＬ」、すなわち「ウェブ・サービス記述言語」とは、文書指向情報か又は手順指向情報のいずれかを含むメッセージ上で動作するエンドポイントの組としてネットワーク・サービス（多くの場合は、ウェブ・サービス）を記述するためのＸＭＬフォーマットを含む。動作及びメッセージは、抽象的に記述され、次いでエンドポイントを定めるために具体的なネットワーク・プロトコル及びメッセージ・フォーマットに結び付けられる。関連する具体的なエンドポイントは、抽象的なエンドポイント（サービス）に組み合わされる。ＷＳＤＬは、どのメッセージ・フォーマット又はネットワーク・プロトコルが通信に用いられるかにかかわらず、エンドポイント及びそれらのメッセージの記述を可能にするように拡張可能である。
【発明を実施するための最良の形態】
【００３２】
以下の説明全体を通して、特に他の表示がない限り、同じ要素符号は、同じ要素を指すことが意図される。
【００３３】
本明細書において開示される発明は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態、又は、ハードウェア要素とソフトウェア要素の両方を含む実施形態の形式を取ることができる。好ましい実施形態においては、本発明は、これらに限定されるものではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含むソフトウェアに実装される。
【００３４】
さらに、本発明は、コンピュータ又はいずれかの命令実行システムによって又はそれと関連させて使用されるプログラム・コードを提供する、コンピュータで使用可能の又はコンピュータで可読の媒体からアクセス可能なコンピュータ・プログラム製品の形を取ることができる。この記載の目的上、コンピュータで使用可能の又はコンピュータで可読の媒体は、命令実行システム、装置若しくはデバイスによって又はそれと関連させて使用されるプログラムを含み、格納し、通信し、伝搬し、又は転送することが可能ないずれかの装置とすることができる。
【００３５】
媒体は、電子システム、磁気システム、光学システム、電磁気システム、赤外線システム、若しくは半導体システム（又は装置若しくはデバイス）又は伝搬媒体とすることができる。コンピュータ可読媒体の例としては、半導体メモリ又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、磁気ハード・ディスク及び光ディスクを含む。光ディスクの現在の例としては、コンパクトディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−読み取り／書き込み（ＣＤ−Ｒ／Ｗ）及びＤＶＤが挙げられる。
【００３６】
プログラム・コードを格納し、又は実行し、或いはその両方を行うのに適したデータ処理システムは、システム・バスを通してメモリ要素に直接的に又は間接的に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に用いられるローカル・メモリと、大容量記憶装置と、実行時に大容量記憶装置からコードを取得しなければならない回数を減らすために少なくともある程度のプログラム・コードの一時的な記憶場所を提供するキャッシュ・メモリとを含む。
【００３７】
入力／出力装置、すなわちＩ／Ｏ装置（これらに限定されるものではないが、キーボード、ディスプレイ、ポインティング装置等を含む）は、直接的に、又は介在するＩ／Ｏコントローラを通して、システムに結合することができる。
【００３８】
介在するプライベート・ネットワーク又は公衆ネットワークを通して、データ処理システムを他のデータ処理システム又は遠隔プリンタ若しくはストレージ装置に結合できるように、ネットワーク・アダプタをシステムに結合することもできる。モデム、ケーブル・モデム及びイーサネット・カードは、ごくわずかな、現時点で利用可能なタイプのネットワーク・アダプタである。
【００３９】
図１は、企業の様々なデータの統合を容易にするためのプラットフォーム１００を表す。プラットフォームは、各々が複数の異なるコンピュータ・アプリケーション及びデータ・ソースを含むことができる複数のビジネス・プロセスを含む。プラットフォームは、上述のようなデータ・ソースとすることができるいくつかのデータ・ソース１０２を含むことができる。これらのデータ・ソースは、様々な物理位置からの様々なデータ・タイプを含むことができる。例えば、データ・ソースは、Ｓｙｂａｓｅ、Ｍｉｃｒｏｓｏｆｔ、Ｉｎｆｏｒｍｉｘ、Ｏｒａｃｌｅ、Ｉｎｌｏｍｏｖｅｒ、ＥＭＣ、Ｔｒｉｌｌｉｕｍ、Ｆｉｒｓｔ  Ｌｏｇｉｃ、Ｓｉｅｂｅｌ、ＰｅｏｐｌｅＳｏｆｔ、ＩＢＭ、Ａｐａｃｈｅ、又はＮｅｔｓｃａｐｅなどのプロバイダからのシステムを含むことができる。データ・ソース１０２は、ＩＭＳ、ＤＢ２、ＡＤＡＢＡＳ、ＶＳＡＭ、ＭＤ  Ｓｅｒｉｅｓ、ＵＤＢ、ＸＭＬ、複合フラット・ファイル、又はＦＴＰファイルなどのデータベース製品又は標準を用いるシステムを含むことができる。データ・ソース１０２は、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ、Ｍｉｃｒｏｓｏｆｔ  Ａｃｃｅｓｓなどのアプリケーションによって作成又は使用されるファイル、並びに、ＡＳＣＩＩ、ＣＳＶ、ＧＩＦ、ＴＩＦ、ＰＮＧ、ＰＤＦ等のような標準フォーマットのファイルを含むことができる。データ・ソース１０２は、様々な位置からもたらされるものとするか、又は集中的に配置することもできる。データ・ソース１０２から供給されるデータは、様々な形式のものとすることができ、互いに互換性のあるもの又は互換性のないものとすることができる異なるフォーマットを有する。
【００４０】
データ・ターゲットは、本明細書の後半で説明される。一般に、これらのデータ・ターゲットは、上述のデータ・ソース１０２のいずれかとすることができる。名称のこうした違いは、典型的には、データ統合プロセスにおいてデータ・システムがデータを提供するのか、又はデータを受け取るのかを示す。しかしながら、従来のデータ統合システムにおいてはデータ・ソースがデータを受け取り、データ・ターゲットがデータを提供することができるため、こうした区別は、（特に他の記載がない限り）データ・ソースとデータ・ターゲットとの間の能力に関して違いを与えることを意図するものではないことを理解すべきである。
【００４１】
図１に示されたプラットフォームはまた、データ統合システム１０４を含む。データ統合システムは、例えば、データ統合システム１０４が受信するクエリ又は検索コマンドの結果として、データ・ソース１０２からのデータの収集を容易なものとすることができる。データ統合システム１０４は、コマンドを１つ又は複数のデータ・ソース１０２に送信して、データ・ソース１０２がデータをデータ統合システム１０４に与えるようにすることができる。受信されたデータは、様々なメタデータを含む多数のフォーマットで存在する可能性があるため、データ統合システムは、受け取ったデータを、後で統合処理のために結合できるように再構成することができる。データ統合システム１０４によって実行できる機能は、より詳細に後述される。
【００４２】
プラットフォーム１００はまた、幾つかの検索システム１０８を含む。検索システム１０８は、データ統合システム１０４から送信されたデータをさらに操作するのに用いられるデータベース又は処理プラットフォームを含むことができる。例えば、データ統合システム１０４は、データ・ソース１０２から受け取ったデータをクレンジングし、結合し、変形し、又は他の方法で操作して、検索システム１０８が処理されたデータを用いてビジネスに有用なレポート１１０を生成できるようにすることができる。レポート１１０は、データの関連を報告し、複雑なクエリに回答し、単純なクエリに回答し、或いはビジネス又はユーザにとって有用な他のレポートを作成するために用いることができ、生データ、テーブル、チャート、グラフ、及び検索システム１０８からのデータの他のいずれかの表現を含むことができる。
【００４３】
プラットフォーム１００はまた、データベース又はデータベース管理システム１１２を含むことができる。データベース１１２は、情報を一時的に、仮に保存するために、又は永続的若しくは長期にわたって格納するために用いることができる。例えば、データ統合システム１０４は、データを１つ又は複数のデータ・ソース１０２から収集し、データを互いに互換性のある形式又は互いに結合することができる形式に変形することができる。データが変形されると、データ統合システム１０４は、後の検索のために、データを分解された形式、結合された形式、又は他の形式でデータベース１１２に格納することができる。
【００４４】
図２は、企業の複数のエンティティ及びビジネス・プロセス間のデータ統合を示す概略図である。示された実施形態においては、データ統合システム１０４は、ユーザ・インターフェース・システム２０２とデータ・ソース１０２との間の情報の流れを容易にする。データ統合システム１０４は、１つ又は複数のデータ・ソース１０２に存在するデータの抽出と場合によっては変形とを必要とするクエリを、インターフェース・システム２０２から受信することができる。インターフェース・システム２０２は、ラップトップ・コンピュータ若しくはデスクトップ・コンピュータ、携帯電話、携帯情報端末（「ＰＤＡ」）、ネットワーク・プラットフォーム、及びそれに取り付けられた装置上で動作するウェブ・ブラウザといった、データ統合システム１０４と通信するためのいずれかの装置又はプログラム、又は、データ統合システム１０４とインターフェース接続される他のいずれかの装置又はシステムを含むことができる。
【００４５】
例えば、ユーザは、ＰＤＡを操作して、ＷｉＦｉ又はワイヤレス・アクセス・プロトコル／ワイヤレス・マークアップ言語（ＷＡＰ／ＷＭＬ）インターフェースを介してデータ統合システム１０４に情報を要求することができる。データ統合システム１０４は、その要求を受信し、何らかの要求クエリを生成して、ウェブサイト又はＦＴＰファイル・サイト等の他のデータ・ソース１０２からの情報にアクセスすることができる。データ・ソース１０２からのデータは、抽出され、要求するインターフェース・システム２０２（この例におけるＰＤＡ）と互換性のあるフォーマットに変形され、次いで、ユーザが見て操作するためのインターフェース・システム２０２に送信することができる。別の実施形態においては、データは、データ・ソースから予め抽出され、データ統合システム１０４によって使用されるデータ・ウェアハウス又は他のデータ機器とすることができる別個のデータベース１１２に格納することができる。データは、変形された状態で又はその元の状態でデータベース１１２に格納することができる。例えば、データは、別の変形プロセスにおいて多数のデータ・ソース１０２からのデータを結合することができるように、変形された状態で格納することができる。例えば、ＰＤＡからのクエリをデータ統合システム１０４に送信することができ、データ統合システム１０４は、データベース１１２から情報を抽出することができる。抽出に続いて、データ統合システム１０４は、そのデータを、ＰＤＡに送信する前にＰＤＡと互換性のある結合フォーマットに変換することができる。
【００４６】
図３は、企業の複数のデータ・ソース１０２についてのデータ統合を提供するためのアーキテクチャを示す概略図である。データ統合システム１０４の実施形態は、場合によっては他の処理のなかでも、データ・ソースからのデータの抽出と、ソース・データについての列の値及びテーブル構造の分析とを実行するデータ発見ステージ３０２を含むことができる。データ発見ステージ３０２はまた、データ・ターゲットについてのテーブル構造、関係性及びキーに関する推奨を生成することができる。より高度なプロファイル作成機能及び監査機能は、日付範囲の検証、計算の精度、ＩＦ−ＴＨＥＮ評価の精度等を含むことができる。データ発見ステージ３０２は、ソース・データにおける冗長な依存及び他の異常を排除すること等によって、データを正常化することができる。データ発見ステージ３０２は、さらなる分析のためにデータ・ソース１０２内の例外まで掘り下げるか又はメインフレーム・データの直接プロファイル作成を可能にする等の、付加的な機能を提供することができる。データ発見ステージ３０２の商業的な実施形態の限定する意味ではない例は、ＡｓｃｅｎｔｉａｌのＰｒｏｆｉｌｅＳｔａｇｅ製品において見ることができる。
【００４７】
データ統合システム１０４はまた、後で変形されることになる品質データを生成するために、データを準備し、標準化し、適合させ、又は他の方法で操作する、データ準備ステージ３０４を含むことができる。データ準備ステージ３０４は、データ内の不整合を調整すること、又は（１対１の照合、１対多数の照合及び重複排除を含む）正確な照合を行うことといった、一般的なデータ品質機能を実行することができる。データ準備ステージ３０４はまた、特定のデータ拡張機能を提供することもできる。例えば、データ準備ステージ３０４は、国際間通信を改善させるために、住所が多国間の郵便基準に適合することを保証することができる。データ準備ステージ３０４は、空間的情報管理のために位置データを多国間ジオコーディング基準に適合させることができる。データ準備ステージは、住所情報が、Ｇｏｖｅｒｎｍｅｎｔ  Ｃｅｒｔｉｆｉｅｄ  Ｕ．Ｓ．  Ａｄｄｒｅｓｓ  Ｃｏｒｒｅｃｔｉｏｎの下でＵ．Ｓ．  Ｐｏｓｔａｌ  Ｓｅｒｖｉｃｅ郵便料金割引を受ける資格があるものであることを保証するために、住所を変更又は追加することができる。同様の分析及びデータ改訂を、正しく住所が書かれた郵便について割引するカナダ及びオーストラリアの郵便システムに導入することができる。データ準備ステージ３０４の商業的な実施形態についての限定する意味ではない例は、ＡｓｃｅｎｔｉａｌのＱｕａｌｉｔｙＳｔａｇｅ製品の中に見ることができる。
【００４８】
データ統合システムはまた、データを変形し、データの質を高め、変形されたデータを配信するために、データ変形ステージ３０８を含むことができる。データ変形ステージ３０８は、データの再編成及び再フォーマットのような移行サービスを実行し、システム・ユーザのビジネス規則及びアルゴリズムに基づいて計算を実行することができる。データ変形ステージ３０８はまた、特定の分析コンテクストにおけるデータのより高度な調整処理のために、ターゲット・データをデータマート又はキューブとして知られているサブセットに編成することもできる。データ変形ステージ３０８は、データ統合システム１０４によって使用される種々のデータ・ソース及びデータ・ターゲットの種々のソフトウェア・アーキテクチャ及びハードウェア・アーキテクチャの橋渡しをする、ブリッジ、トランスレータ、又は他のインターフェース（以下に一般的に説明される）を利用することができる。データ変形ステージ３０８は、プラットフォーム１００全体にわたるデータ統合ジョブを設計するために、グラフィカル・ユーザ・インターフェース、コマンド・ライン・インターフェース、又はこれらの何らかの組み合わせを含むことができる。データ変形ステージ３０８の商業的な実施形態についての限定する意味ではない例は、ＡｓｃｅｎｔｉａｌのＤａｔａＳｔａｇｅ製品の中に見ることができる。
【００４９】
データ統合システム１０４の段階３０２、３０４、３０８は、システム１０４の性能を最適化するために、並列実行システム３１０を連続的に又は組み合わせて用いて実行することができる。
【００５０】
データ統合システム１０４はまた、データ・ソース１０２と関連するメタデータを管理するためのメタデータ管理システム３１２を含むことができる。一般に、メタデータ管理システム３１２は、データ統合環境におけるツールの全てにわたって、メタデータの交換、統合、管理及び分析を提供することができる。例えば、メタデータ管理システム３１２は、ＡｓｃｅｎｔｉａｌのＯＤＢＣ  ＭｅｔａＢｒｏｋｅｒ、ＣＡ  ＥＲｗｉｎ、Ａｓｃｅｎｔｉａｌ  ＰｒｉｆｉｌｅＳｔａｇｅ、Ａｓｃｅｎｔｉａｌ  ＤａｔａＳｔａｇｅ、Ａｓｃｅｎｔｉａｌ  ＱｕａｌｉｔｙＳｔａｇｅ、ＩＢＭ  ＤＢ２  Ｃｕｂｅ  Ｖｉｅｗｓ及びＣｏｇｎｏｓ  Ｉｍｐｒｏｍｐｔｕのような、異なるソース内のデータの汎用アクセス可能な共通のビューを提供することができる。メタデータ管理システム３１２はまた、データ構造への変更についてのデータ系統及び影響分析のための分析ツールを提供することができる。メタデータ管理システム３１２はさらに、データ統合システム１０４内のデータについてのデータ定義、アルゴリズム及びビジネス・コンテクストのビジネス・データ用語集を準備するために用いることができ、この用語集は、企業全体で使用するために公開することができる。メタデータ管理システム３１２の商業的な実施形態についての限定する意味ではない例は、ＡｓｃｅｎｔｉａｌのＭｅｇａＳｔａｇｅ製品において見ることができる。
【００５１】
図４は、データ統合ジョブについてのデータ発見ステージ３０２を実行するファシリティの詳細を示す概略図である。この実施形態において、データ発見ステージ３０２は、データベース４０２内のデータのコンテンツ及び構造を判定するために、上述のデータ・ソース１０２のいずれかとすることができるデータベース４０２にクエリする。データベース４０２は、結果をデータ発見ステージ３０２に提供し、該データ発見ステージ３０２が、続いて抽出データをデータ統合システム１０４の他の部分に通信することを容易にする。１つの実施形態において、データ発見ステージ３０２は、多くのデータ・ソース１０２にクエリすることができ、その結果、データ統合システム１０４は、データをクレンジングし、データを中央データベース又はリポジトリ情報マネージャに整理統合することができる。
【００５２】
図５は、データ統合プロセス５００についての発見ステップを達成するためのステップを示すフロー図である。特定のデータ統合プロセス５００が以下に説明されるが、ここで用いられるデータ統合プロセス５００は、データ・ソース１０２及びデータ・ターゲット、データベース１１２、データ統合システム１０４、並びに、本明細書において説明される他のコンポーネントを用いる任意のプロセスを指すことができる。１つの実施形態において、例示的な発見ステップのプロセス・ステップは、上述のデータ発見ステージ３０２等の発見ファシリティがデータを１つ又は複数のデータ・ソース１０２から抽出するコマンドを受け取る第１のステップ５０２を含むことができる。抽出コマンドの受け取りに続いて、発見ファシリティは、ステップ５０４に示すように、抽出されることになるデータが存在する適切なデータ・ソース１０２を識別することができる。データ・ソース１０２は、コマンドにおいて識別されてもされなくてもよい。データ・ソース１０２が識別される場合には、発見ファシリティは、識別されたデータ・ソース１０２にクエリすることができる。データ・ソース１０２がコマンドにおいて識別されない場合には、発見ファシリティは、データ抽出コマンドから要求されたデータ・タイプから又はコマンド内の情報の別の部分から、或いは要求されている他のデータへの関連付けを決定した後で、データ・ソース１０２を決定することができる。例えば、クエリは、顧客の住所についてのものとすることができ、顧客の住所データの第１の部分が第１のデータ・ソース１０２に存在し、第２の部分が第２のデータ・ソース１０２に存在することがある。発見ファシリティは、抽出コマンドを処理し、コマンド内のさらなる命令なしにその抽出活動を２つのデータ・ソース１０２に指図することができる。データ・ソース１０２が識別されると、データ・ファシリティが、ステップ５０８に示すように、データを抽出するためのプロセスを実行することができる。データが抽出されると、発見ファシリティは、データをデータ統合システムの別の部分に通信することを容易にすることができる。
【００５３】
図６は、データ統合プロセス５００についての、上述のデータ準備ステージ３０４とすることができるクレンジング・ファシリティを示す概略図である。一般に、幾つかのデータ・ソース１０２から得られるデータは、誤りを有する場合があり、これらの誤りが、チェックされず、訂正されないままの場合には、データ統合システム１０４によって最終的に生成されるデータ解釈においてエラーを引き起こす可能性がある。会社の合併、買収、再編成、又はデータ・ソース１０２の他の整理統合は、新しいデータ・ラベル、頭字語、メトリックス、計算方法等を伴うことによって、データの品質問題をさらに複雑にすることがある。図６に示すように、クレンジング・ファシリティは、データ６０２をデータ・ソース１０２から受け取ることができる。データ６０２は、１つ又は複数のデータ・ソース１０２から得ることができ、不一致又は誤りを有する場合がある。クレンジング・ファシリティは、データ６０２の品質を選別し、訂正し、クリーニングし、又はその他に拡張する、自動、半自動、又は手動ファシリティを提供することができる。データ６０２がクレンジング・ファシリティを通過すると、それをデータ統合システム１０４の別の部分に通信することができる。
【００５４】
図７は、データ統合プロセス５００におけるクレンジング・プロセス７００のためのステップを示すフロー図である。実施形態において、クレンジング・プロセスは、データを１つ又は複数のデータ・ソース１０２（例えば、発見ファシリティを介して）から受け取るステップ７０２を含むことができる。クレンジング・プロセス７００は、データをクレンジングする１つ又は複数の方法を含むことができる。例えば、このプロセスは、データを自動的にクリーニングするステップ７０４を含むことができる。このプロセスは、データを半自動的にクリーニングするステップ７０８を含むことができる。このプロセスは、データを手動でクリーニングするステップ７１０を含むことができる。データ若しくはデータの一部を自動的に訂正する、すなわちクリーニングするステップ７０４は、自動スペル・チェック及び訂正、比較データ、データの比較適時性、データの状態、又はデータ品質及び一致を高めるための他の技術等の、幾つかの技術の適用を含むことができる。半自動的にデータをクレンジングするステップ７０８は、ユーザがプロセス・ステップの幾つかと相互作用し、このシステムが割り当てられたクレンジング・タスクを自動的に実行するファシリティを含むことができる。半自動システムは、データをクレンジングするプロセス７００を容易にするためにユーザがグラフィカル・ユーザ・インターフェースと相互作用する、グラフィカル・ユーザ・インターフェースのプロセス・ステップ７１２を含むことができる。プロセス７００は、データを手動で訂正するステップ７１０をさらに含むことができる。このステップは、データの手動訂正、整理統合及び／又はクレンジングを容易にするために、ユーザ・インターフェースの使用をさらに含むことができる。クレンジング・プロセス７００からのクレンジングされたデータは、データ変形ステージ３０８等の、データ統合システム１０４内の別のファシリティに伝送することができる。
【００５５】
図８は、データ統合プロセス５００についての、上述のデータ変形ステージ３０８とすることができる変形ファシリティを示す概略図である。変形ファシリティは、クレンジングされたデータ８０２をクレンジング・ファシリティから受け取り、変形プロセスを実行し、データの質を高め、データをデータ統合システム１０４の内部の又はデータ統合システム１０４の外部の別のプロセスへ供給することができ、そこで、統合されたデータを閲覧し、使用し、さらに変形し、又は他の方法で操作することができる。例えば、ユーザは、データ・マイニングによってデータを調査することもできるし、或いは、ユーザ又はビジネスに有用なレポートを生成することもできる。
【００５６】
図９は、データ統合プロセス５００の一部としてのデータ変形ステップを示すフロー図である。変形プロセス９００は、ステップ９０２に示すように、クレンジングされたデータ（例えば、上述のデータ準備ステージ３０８から）を受け取ることを含むことができる。ステップ９０４に示すように、プロセス９００は、所望の変形タイプの決定を下すことができる。変形プロセスを決定するステップ９０４に続いて、ステップ９０８に示すように、変形プロセスを実行することができる。次に、ステップ９１０に示すように、変形されたデータを別のファシリティに伝送することができる。
【００５７】
一般に、グラフィカル・ユーザ・インターフェースを用いて、データ統合システム１０４を制御し、特定のエンタープライズ・データに適用することができる。インターフェースは、データ・ソース、データ・ターゲット、及びデータに対して働く段階又はプロセスをモデル化するための視覚ツール、並びに、これらのデータ・エンティティ間の関係を確立して、所望のデータ統合タスクをモデル化するためのツールを含むことができる。グラフィカル・ユーザ・インターフェースは、以下により詳細に説明される。以下では、このような関係においてユーザ・インターフェースをどのように使用できるかを示すために一般的な例を提供する。
【００５８】
図１０は、グラフィカル・ユーザ・インターフェース１０１８を用いてモデル化されるモーゲージ・データのための変形プロセス１０００の例を示す。この例においては、ビジネス・エンタープライズは、特定のモーゲージに関するレポートを生成することを望む。モーゲージ残高情報は、上述のデータ・ソース１０２の１つとすることができるモーゲージ・データベースに常駐することができ、プロパティ情報のアドレスのような個人情報は、また、上述のデータ・ソース１０２の１つとすることができるプロパティ・データベースに常駐することができる。グラフィカル・ユーザ・インターフェース１０１８を設けて、変形プロセスを組織化することができる。例えば、ユーザは、モーゲージ・データベース１００２のグラフィカル表示及びプロパティ・データベース１０１２のグラフィカル表示を選択し、例えば、通常のドラッグ・アンド・ドロップ操作を用いて、これらの表示１００２、１０１２をインターフェース１０１８内の所定の位置にくるように操作することができる。次に、ユーザは、行変形プロセス１００４のグラフィカル表示を選択して、組み合わせのための行を作成することができる。ユーザは、矢印として図１０内で全体的に示されたプロセス・フローの方向をドラッグ・アンド・ドロップすることができ、その結果、データベースからのデータが、行変形プロセスに流入する。このモデルにおいては、ユーザは、如何なる不一致ファイルをも除去し、それらをストレージ・ファシリティに送るように選択することができる。これを達成するために、ユーザは、ストレージ・ファシリティ６１１４のグラフィカル表示をインターフェース１０１８内に配置することができる。ユーザが残りの一致ファイルをさらに処理することを望む場合には、ユーザは、例えば、２つのデータベースからのデータを組み合わせる別の変形及び集約プロセス１００８のグラフィカル表示を付加することができる。最終的に、ユーザは、データ・ウェアハウス１０１０のグラフィカル表示を付加することによって、集約データをストレージ・ファシリティに送ることに決めることができる。ユーザがグラフィカル・ユーザ・インターフェースを用いてこのプロセスを設定すると、ユーザは、変形プロセスを実行することができる。
【００５９】
図１１および図１２は、データ統合プロセス５００をビジネス・エンタープライズの他のプロセスに接続する複数の接続ファシリティを示す概略図である。実施形態において、データ統合システム１０４は、上述のデータ・ソース１０２の１つとすることができる統合ストレージ・ファシリティ１１０２と関連付けることができる。統合ストレージ・ファシリティ１１０２は、幾つかの他のデータ・ソース１０２から抽出され、データ統合システム１０４を介して処理されたデータを含むことができる。統合データは、１つ又は複数のコンピュータ・プラットフォーム１１０８Ａ及び１１０８Ｂがデータを統合データ・ストレージ・ファシリティ１１０２から検索することを可能にする形式で格納することができる。コンピュータ・プラットフォーム１１０８Ａ及び１１０８Ｂは、翻訳エンジン１１０４Ａ及び１１０４Ｂを介してデータを統合データ・ファシリティ１１０２から要求することができる。例えば、コンピュータ・プラットフォーム１１０８Ａ及び１１０８Ｂの各々は、別々の翻訳エンジン１１０４Ａ及び１１０４Ｂと関連付けることができる。翻訳エンジン１１０４Ａ及び１１０４Ｂは、統合されたデータをストレージ・ファシリティ１１０２から関連するコンピュータ・プラットフォーム１１０８Ａ及び１１０８Ｂと互換性がある形式に翻訳するように適合させることができる。実施形態において、翻訳エンジン１１０４Ａ及び１１０４Ｂは、データ統合システム１０４と関連付けることもできる。こうした関連付けを用いて、要求された情報によって翻訳エンジン１１０４Ａ及び１１０４Ｂを更新することができる。このプロセスは、以下にさらに定義されることになるメタデータ処理を含むこともできる。
【００６０】
図１１に全体的に示す、データ統合のためのハブ・モデルは、異なるコンピュータ・プラットフォーム１１０８Ａ及び１１０８Ｂ及び他のデータ・ソース１０２に接続するための１つのモデルであるが、図１２を参照して説明されるブリッジ・モデル等の他のモデルを用いることもできる。データ・ソース１０２への接続が本明細書において記載される場合には、文脈によって特別な又は他の表示がない限り、これらのモデルのいずれか又は他のモデルを用いることができることを認識すべきである。
【００６１】
図１２は、ブリッジ・モデルを用いる複数の接続ファシリティを示す。このシステムにおいては、在庫システム、顧客関係システム及び会計システム等の、複数のデータ・ソース１０２は、複数のブリッジ１１２０又は接続ファシリティを介してエンタープライズ・コンピュータ・システム１３００のデータ統合システム１０４に接続することができる。各々のブリッジ１１２０は、メタデータ・モデルを外部データ・ソース１０２に提供し、データ統合システム１０４とデータ・ソース１０２との間の情報の双方向転送を可能にするベンダ固有の翻訳エンジンとすることができる。エンタープライズ統合ベンダは、自社のデータ・ソース１０２用の独自のフォーマットを有することができ、それにより、異なる外部モデル毎に異なるブリッジ１１２０を要求することができる。各々のブリッジ１１２０は、接続ファシリティをデータ・ソース１０２内のデータの全て又は幾つかに提供することができ、別々のマップ又はモデルは、各々のデータ・ソース１０２へ及びそれからの接続について保持することができる。さらに、各々のブリッジ１１２０は、データ・ソース１０２間のデータの保全性を維持するために、エラー・チェック、調整又は他のサービスを提供することができる。データ・ソース１０２がこのように相互接続された状態で、データは、システム間で共有するか又は調整することができ、種々のデータ統合タスクは、あたかもデータ・ソース１０２が単一のデータ・ソース１０２又はウェアハウスを形成したかのように、データ・ソース１０２内のデータについて実行することができる。
【００６２】
図１３は、データ統合プロセス５００をビジネス・エンタープライズの他のプロセスに接続するためのステップを示すフロー図である。実施形態において、接続プロセスは、そのステップの間、データ統合システム１０４が処理データを中央ストレージ・ファシリティに格納するステップ１２０２を含むことができる。データ統合システム１０４はまた、ステップ１２０４において、１つ又は複数の翻訳エンジンを更新することもできる。図１３の図示は、これらのプロセスが直列的に行われることを示すが、それらはまた、並列的に行うこともできるし、或いは、これらの何らかの組み合わせとすることもできる。このプロセスは、コンピュータ・プラットフォームがデータ要求を生成し、該データ要求が関連する翻訳エンジンに送られるステップ１２０８を含むことができる。ステップ１２１０は、データをストレージ・ファシリティから抽出する翻訳エンジンを含むことができる。翻訳エンジンはまた、ステップ１２１２において、データをコンピュータ・プラットフォームと互換性がある形式に翻訳することもでき、次いで、該データは、ステップ１２１４において、コンピュータ・プラットフォームに通信することができる。
【００６３】
図１４は、データ統合システム１０４を含むエンタープライズ・コンピュータ・システム１３００を示す。エンタープライズ・コンピュータ・システム１３００は、コンピュータ、メインフレーム、携帯デバイス、データ・ソース、及び１つ又は複数のローカル・エリア・ネットワークを通じてローカル接続され、及び／又は例えば、インターネットを通じた仮想プライベート・ネットワークを用いて、１つ又は複数の広域エリア・ネットワーク又は公衆ネットワークを通じてリモート接続された他のデバイスの任意の組み合わせを含むことができる。エンタープライズ・コンピュータ・システム１３００内のデバイスを単一のエンタープライズに相互接続して、データ、リソース、通信及び情報技術管理を共有することができる。一般的には、エンタープライズ・コンピュータ・システム１３００内のリソースは、企業、協会、又は政府機関省庁、或いは大学のような一般的なエンティティによって使用される。しかしながら、特定のビジネス・モデルにおいては、エンタープライズ・コンピュータ・システム１３００のリソースは、アプリケーション・サービス・プロバイダがオンデマンドのアクセスをリモート実行プリケーションに与える場合等、多数の異なるエンティティによって所有され（又はリースされ）、使用されてもよい。
【００６４】
エンタープライズ・コンピュータ・システム１３００は、それぞれの翻訳エンジン１３０８（ブリッジ・ベースのシステムにおいては、上述のブリッジ１１２０とすることができる）を介して、ここではリポジトリ情報マネージャ（ＲＩＭ）１３０４（以下では「ハブ」とも呼ばれる）と呼ばれる共通のデータ構造にアクセスする、複数のツール１３０２を含むことができる。ＲＩＭ１３０４は、上述のデータ・ソース１０２のいずれかを含むことができる。３つの翻訳エンジン１３０８及び３つのツール１３０２が示されているが、３つより少ない及び３つより大幅に多い数を含む、任意の数の翻訳エンジン１３０８及びツール１３０２をエンタープライズ・コンピュータ・システム１３００内で用いることができることを認識する。ツール１３０２は、一般に、例えば、様々なタイプのデータベース管理システム、及び、ＲＩＭ１３０４に格納された共有データにアクセスする他のアプリケーション・プログラムを含む。ツール１３０２、ＲＩＭ１３０４及び翻訳エンジン１３０８は、単一のコンピュータ・システム上で処理し、保持することもできるし、或いは、それらは、例えば、データ・アクセス要求、翻訳されたデータのアクセス要求及び異なるコンポーネント１３０２、１３０４、１３０８間の応答を転送するネットワーク（図示せず）によって相互接続することができる多数のコンピュータ・システム上で処理し、保持することもできる。
【００６５】
ツール１３０２は、それらが実行している間に、データ・アクセス動作、すなわち、ＲＩＭ１３０４からのデータの検索又はそれへのデータの格納を開始するデータ・アクセス要求を生成することができる。データは、後述されることになるアトミック・データ・モデル及びフォーマットでＲＩＭ１３０４に格納することができる。一般的には、ツール１３０２は、後述されるように、多種多様な特性データ・モデル及びフォーマットでＲＩＭ１３０４に格納されたデータを表示することになり、データ・アクセス要求を受け取ったときに、各々の翻訳エンジン１３０８は、必要に応じて、ＲＩＭ１３０４のそれぞれのツールの特性モデル及びフォーマットとアトミック・モデル・フォーマットとの間でデータを翻訳することになる。例えば、データ項目がＲＩＭ１３０４から検索されることになる検索タイプのアクセス動作中に、翻訳エンジン１３０８は、アクセス要求に応答して検索されることになるデータ項目を共同して備えるＲＩＭ１３０４において１つ又は複数のアトミック・データ項目を識別することになり、ＲＩＭ１３０４がアトミック・データ項目を翻訳エンジン１３０８の１つに提供することを可能にする。今度は、その翻訳エンジン１３０８が、ＲＩＭ１３０４から受け取るアトミック・データ項目を、ツールの特性モデル及びフォーマット、すなわちデータの「ビュー」によって要求される１つ又は複数のデータ項目の中に集約させ、集約されたデータ項目を、アクセス要求を発したツール１３０２に提供することになる。ＲＩＭ１３０４内のデータが更新されることになるデータ格納中に、翻訳エンジン１３０８は、ツール１３０２の１つについて特性モデル及びフォーマットに格納されることになるデータを受け取ることができる。翻訳エンジン１３０８は、ＲＩＭ１３０４のためにデータをアトミック・モデル及びフォーマットに翻訳し、翻訳されたデータを格納のためにＲＩＭ１３０４に提供することができる。データ・ストレージ・アクセス要求がデータを更新することを可能にする場合には、ＲＩＭ１３０４は、現在のデータの代わりに翻訳エンジン１３０８から新しく提供されたデータを使うことができる。一方、データ・ストレージ・アクセス要求が新しいデータを提示する場合には、ＲＩＭ１３０８は、翻訳エンジン１３０８によって提供されるアトミック・フォーマットで、データをＲＩＭ１３０８の現在のデータに付加することができる。
【００６６】
エンタープライズ・コンピュータ・システム１３００は、新しいツール１３０２が該システム１３００に付加される際に、ＲＩＭ１３０４及び翻訳エンジン１３０８のアトミック・フォーマットを保持し、更新するデータ統合システム１０４をさらに含む。データ統合システム１０４によって実行される特定の動作を自動的に実行するか又は手動で制御することができることが認識される。簡潔に言えば、システム１３００が最初に確立されるとき、又はそのデータ・モデル及びフォーマットが現在のデータ・モデル及びフォーマットと異なるシステム１３００に１つ又は複数のツール１３０２が付加されるときに、データ統合システム１０４は、如何なる違いをも判定し、ＲＩＭ１３０４内のデータのデータ・モデル及びフォーマットを修正して、新しいツール１３０２のデータ・モデル及びフォーマットに対応することができる。そうした動作において、データ統合システム１０４は、システム１３００に現在存在するいずれかのツール１３０２及び付加されることになる新しいツール１３０２のデータ・モデルに共通のアトミック・データ・モデルを決定し、ＲＩＭ１３０４のデータ・モデルを新しいアトミック・データ・モデルに更新することを可能にする。さらに、データ統合システム１０４は、ＲＩＭ１３０４の更新されたアトミック・データ・モデルに基づいて現在システム１３００にある如何なるツール１３０２とも関連する翻訳エンジン１３０８を更新することができ、新しいツール１３０２のための翻訳エンジン１３０８を生成することもできる。したがって、データ統合システム１０４は、現在該システムにあるあらゆるツール１３０２、並びに、付加されることになるツール１３０２を含む、全てのツール１３０２の翻訳エンジン１３０８がＲＩＭ１３０４のアトミック・データ・モデル及びフォーマットに準拠することを保証する。
【００６７】
さらに進める前に、種々のツール１３０２に有用となり得る特性データ・モデル及びフォーマット、並びに、ＲＩＭ１３０４に有用なアトミック・データ・モデル及びフォーマットを示す特定の例を提供することが助けになるであろう。ツール１３０２についての特定の特性データ・モデル及びフォーマットは、特定のエンタープライズ・コンピュータ・システム１３００に存在する特定のツール１３０２に依存することになると認識される。さらに、ＲＩＭ１３０４のための特定のアトミック・データ・モデル及びフォーマットは、ツール１３０２のために使用されるアトミック・データ・モデル及びフォーマットに依存し得るものであり、システム１３００内のツール１３０２の全てについてのデータ・モデル及びフォーマットの最もきめ細かい要素の集約又は結合を示すことができると認識される。
【００６８】
図１５は、飲用カップ又は液体を入れるための他の容器等の、カップについての設計のデータベースに関する例を提供する。このデータベースは、カップを設計し、製造するために使用することができる。このアプリケーションにおいては、ツール１３０２を用いて、設計図、寸法、外面処理、色、材料、柄（又はそれがないもの）、費用データ等のようなカップの設計要素を、ＲＩＭ１３０４に付加することができる。ツール１３０２を用いて、ＲＩＭ１３０４に格納されたカップの設計要素を修正し、ＲＩＭ１３０４内の特定のカップの設計要素を再使用し、それを多数の異なるカップ設計と関連付けることもできる。ＲＩＭ１３０４及び翻訳エンジン１３０８は、多数の異なるツール１３０２が要素についての共通スキーマ又はモデル及びフォーマット配列に関して一致をはかる必要なしにＲＩＭ１３０４に格納された要素を共有できる機構を提供することができる。
【００６９】
この例において、ＲＩＭ１３０４は、後述されるようにデータ項目をエンティティ関係フォーマットに格納することができ、各々のエンティティはデータ項目であり、関係はデータ項目間の関係を反映する。このエンティティは、オブジェクトの形態であり、それは、オブジェクト指向環境のクラス及びサブクラスのメンバー又はインスタンスとすることができる。ＲＩＭ１３０４のための他のモデル及びフォーマットを使用できることが認識される。
【００７０】
図１５は、カップ設計のデータベースについての例示的なメタデータ構造を示す。クラス構造は、メイン・クラス１４０２、該メイン・クラス１４０２から依存する容器及び柄についての２つのサブクラス１４０４、及びその両方が容器サブクラス１４０４から依存する側部及び基部についての２つの下位レベルのサブクラス１４０８を含むことができる。エンティティ関係フォーマットにおいて「エンティティ」と呼ばれる、クラス１４０２内の各々のデータ項目は、在庫内のカップの特定のカップ又は特定のカップのタイプを表すことができ、それはカップの種々の特性を定める関連する属性を有し、各々の属性は、その属性について特定の属性識別子及びデータ値によって識別される。
【００７１】
エンティティ関係フォーマットにおける「エンティティ」でもある、柄及び容器サブクラス１４０４内の各々のデータ項目は、在庫内の特定のカップの容器及び柄の特性、又は特定のカップのタイプを表すことができる。より具体的には、容器サブクラス１４０４内の各々のデータ項目は、色、側壁特性、基部特性等のような、カップ・クラス１４０２内のデータ項目によって表されるカップの容器特性を表すことができる。さらに、柄サブクラス１４０４内の各々のデータ項目は、曲率、手触り、色、位置等のような、カップ・クラス１４０２内のデータ項目によって表されるカップの柄特性を表すことができる。さらに、サブクラス１４０４間でデータ項目をリンクする働きをする、柄サブクラス１４０４及び容器サブクラス１４０４内のデータ項目間には１つ又は複数の関係が存在し得ることが認識される。
【００７２】
例えば、容器が柄を有するかどうかを示す関係が存在し得る。さらに、又はその代わりに、容器がいくつの柄を有するかを示す関係が存在し得る。さらに、容器上の柄の位置を指定する位置関係が存在し得る。数及び位置の関係は、第１の関係の特性（容器が柄を有する）として、又は別個の関係としてみなすことができる。２つの下位レベルのサブクラス１４０８は、容器のサブクラス１４０４と関連付けられ、容器の種々の要素を表すことができる。図１５に示される例においては、サブクラス１４０８は、側壁タイプのサブクラス１４０８及び基部タイプのサブクラス１４０８を含むことができ、その各々は、カップのクラス１４０２の要素を特徴付ける。容器及び柄等の、カップ及びカップの特性は、任意の所望レベルの詳細を用いてオブジェクト指向の方法で定義できることが認識される。
【００７３】
図１５にはっきりと示されていないが、１つ又は複数の翻訳エンジン１３０８は、データの１つの表示を要求するツール１３０２と、データを異なるフォーマットで格納できるＲＩＭ１３０４との間の通信を調整することができることを認識すべきである。より一般的には、ＲＩＭ１３０４に格納されたカップのデータを表示するため、図１５に示されるツール１３０２の各々が、多少異なるか又は完全に異なる特性データ・モデル及びフォーマットを有し得る。すなわち、データ項目がカップである場合には、カップの特性は、該データ項目に関連したカップ設計についての属性及び属性値としてＲＩＭ１３０４に格納することができる。
【００７４】
検索アクセス要求において、ツール１３０２は、検索されることになるカップのクラス１４０２内のカップのデータ項目の識別をそれらの関連する翻訳エンジン１３０８に提供することができ、それに応じて、該要求において識別できる該データ項目の属性データの少なくとも幾つかを受け取ることを期待することになる。同様に、ストレージ・タイプのアクセス要求に応答して、こうしたツールは、更新されるか又は作成されることになるカップのデータ項目の識別及び更新されるか又は新しいデータ項目を作成する際に使用されることになる関連する属性情報をそれらの関連する翻訳エンジン１３０８に提供することになる。
【００７５】
他のツール１３０２は、容器及び柄についての属性を有するカップのメイン・クラス１４０２ではなく、サブクラス１４０４において容器及び柄のエンティティとして別個にカップを表示する特性データ・モデル及びフォーマットを有することができる。そうした表示においては、その各々がそれぞれの容器及び柄を記述する属性を有する、各々のカップに関連した２つのデータ項目、すなわち、「容器」及び「柄」が存在し得る。その場合には、各々のデータ項目は、各々が独立して検索可能かつ更新可能となり得るものであり、新しいデータ項目は、２つのクラスの各々について別個に作成することができる。こうした表示について、ツール１３０２は、検索タイプのアクセス要求において、検索されることになる容器又は柄の識別をそれらの関連する翻訳エンジン１３０８に提供することになり、それに応じて、データ項目の属性データを受け取ることを期待することになる。同様に、ストレージ・タイプのアクセス要求に応答して、こうしたツール１３０２は、更新されるか又は作成されることになる「容器」又は「柄」のデータ項目及び関連する属性データの識別をそれらの関連する翻訳エンジン１３０８に提供することになる。したがって、これらのツール１３０２は、容器及び柄のデータを別々に表示し、容器及び柄の属性データを別々に検索し、更新し、格納することができる。
【００７６】
ＲＩＭ１３０４において同じアトミック・データ構造を使用する別の例として、ツール１３０２は、クラス１４０２−１４０８内の側壁、基部及び柄のエンティティとして別個にカップを表示する特性フォーマットを有することができる。こうした表示において、その各々がカップのそれぞれの側壁、基部及び柄を記述する属性を有する、各々のカップに関連した３つのデータ項目、すなわち、側壁、基部及び柄が存在し得る。その場合には、各々のデータ項目は、独立して作成し、検索し、又は更新することができる。こうした表示について、ツール１３０２は、そのデータ項目が動作させられることになる側壁、基部又は柄の識別をそれらの関連する翻訳エンジン１３０８に提供することができ、各々について別々に動作（作成、検索、格納等）を実行することができる。
【００７７】
上述のように、ＲＩＭ１３０４は、カップのデータを「アトミック」データ・モデル及びフォーマットに格納することができる。すなわち、図１５に示されるクラス構造を用いて、ＲＩＭ１３０４は、集団的ツール１３０２によって用いられるクラス構造についての最も詳細なフォーマットを表すデータ構造のような整合性のあるデータ構造の中に、各々のクラス及びサブクラスに対応するデータ項目としてデータを格納することができる。
【００７８】
翻訳エンジン１３０８は、ＲＩＭ１３０４内のアトミック・データ構造とツール１３０２によって使用されるデータ表示との間の関係に基づいて、各々のツール１３０２によって保持される表示と、ＲＩＭ１３０４によって保持されるアトミック・データ構造との間で翻訳することができる。翻訳エンジン１３０８は、ツール１３０２の表示とＲＩＭ１３０４のデータ構造との間で翻訳するときに、多数の機能を実行することができる。例えば、クラス又はサブクラスを結合するか又は分離する、属性名又は識別子を翻訳する、属性値を生成するか又は除去する等である。データ項目を作成し、データ項目を検索し、データ項目を除去し、又はデータ項目を修正する等の、要求される翻訳は、多数のコンテクストにおいて行うことができる。新しいツール１３０２がデータ統合システム１０４に付加される際に、該システム１０４は、ＲＩＭ１３０４内のデータ構造、並びに、新しいツール１３０２について要求できる翻訳エンジン１３０８を更新することができる。ＲＩＭ１３０４内で使用される基礎データ構造が新しいツール１３０２に適応するように変更された場合、又は他の理由でデータ構造が再編成された場合には、既存の翻訳エンジン１３０８も更新される必要がある。
【００７９】
より一般的には、データ統合システム１０４が新しい要求又は既存の要求についての新しい考えに適合される際に、該システム１０４は、データについて新しいアトミック・モデルを作成するために、ＲＩＭ１３０４についての基礎クラス構造を更新し、再生することができる。同時に、翻訳エンジン１３０８は、ツール１３０２をＲＩＭ１３０４の新しいデータ構造に再マッピングするために修正することができる。この後者の機能は、新しく構成されたデータ構造に特に関連するそうした翻訳エンジン１３０８のみに関係することができる一方で、他のものは、修正されることなく使用され続けることができる。データ統合システム１０４を使用するオペレータは、それぞれのツール１３０８によって使用されるデータ・モデル及びフォーマットとＲＩＭ１３０４によって使用されるデータ・モデル及びフォーマットとの間のマッピング関係を決定し、指定することができ、それぞれの翻訳エンジン１３０８を生成し、更新するために使用できるマッピング関係から規則データベースを保持することができる。
【００８０】
ＲＩＭ１３０４を介する更新の正確な伝搬を保証するために、データ統合システム１０４は、各々のツール１３０２を、その関連するデータ項目が「マスター物理項目」と考えられることになるクラス、及びもしあれば他のデータ項目への特定の関係と関連付けることができる。例えば、データ統合システム１０４は、ツールのデータ・モデルのオブジェクトと最も意味的に同等に見える特定のクラスをマスター物理項目として選択することができる。もしあれば、マスター物理項目に関連する他のデータ項目は、グラフにおいて第２の物理項目と考えることができる。例えば、カップのクラスは、カップ設計全体に対して動作するツール１３０２についてのマスター物理項目を含むことができる。図１５において「関係」と指定された矢印は、マスター物理項目と第２の物理項目との間の可能性のある関係を示す。更新動作を実行する際に、更新されることになるデータ項目と関連付けられる有向グラフは、適切な属性及び値が更新された状態で、マスター物理項目から横断することができる。有向グラフを横断する際に、グラフ・ノードとしてグラフ内の各々のデータ項目を適切に訪問し、更新できることを保証して、これによりデータ項目が更新されることを保証するために、通常のグラフ横断アルゴリズムを使用することができる。
【００８１】
上記の例は、オブジェクト指向プログラミング環境におけるメタデータ管理を一般に説明するものである。しかしながら、エンタープライズ・コンピュータ・システム１３００内のデータと共に、様々なソフトウェア・パラダイムを有用に用いることができると認識される。例えば、図１６を参照して説明されるアスペクト指向プログラミング・システムを、上述のエンタープライズ・コンピュータ・システム１３００と共に有効に用いることができる。機能１４１０を有するツール１３０２の例が図面に示されている。各々の機能１４１０は、ＩＤロギング１４１２及びメタデータ更新１４１４等の幾つかの外部サービスと相互作用するように書き込むことができる。一般的なオブジェクト指向環境においては、外部サービス１４１２−１４１８は、それらを呼び出す機能１４１０に応答するためにしばしば「クロスカット」されなくてはならない、すなわち、ツール１３０２の更新された機能１４１０の呼び出しに対応するように記録されなくてはならない。
【００８２】
例として、スケルトン・コードにおいては、ログイン及び検証を実行する機能１４１０についてのオブジェクト指向プログラミング（”ＯＯＰ”）コードは次のようになり得る。
ＤａｔａＶａｌｉｄａｔｉｏｎ（．．．）
／／Ｌｏｇｉｎ  ｕｓｅｒ  ｃｏｄｅ
／／Ｖａｌｉｄａｔｅ  ａｃｃｅｓｓ  ｃｏｄｅ
／／Ｌｏｃｋ  ｄａｔａ  ｏｂｊｅｃｔｓ  ａｇａｉｎｓｔ  ａｎｏｔｈｅｒ  ｆｕｎｃｔｉｏｎｓ  ｕｓｅ  ｃｏｄｅ
／／＝Ｄａｔａ  Ｖａｌｉｄａｔｉｏｎ  Ｃｏｄｅ＝
／／Ｌｏｇ  ｏｕｔ  ｕｓｅｒ  ｃｏｄｅ
／／Ｕｎｌｏｃｋ  ｄａｔａ  ｏｂｊｅｃｔ  ｃｏｄｅ
／／Ｕｐｄａｔｅ  ｍｅｔａｄａｔａ  ｗｉｔｈ  ｌａｔｅｓｔ  ａｃｃｅｓｓ  ｃｏｄｅ
／／Ｍｏｒｅ  ｏｐｅｒａｔｉｏｎｓ  ｔｈｅ  ｓａｍｅ  ａｓ  ａｂｏｖｅ
【００８３】
上記の例においては、機能１４１０のコードが、外部サービス１４１２−１４１４とのアクションを呼び出す。いわゆるクロスカットは、アプリケーション・ライタが外部サービス１４１２−１４１４を記録する必要があるときにはいつも行われ、コードの適切な相互作用のために要求される。これは、再設計の複雑さを著しく増加させ、時間及びエラーの可能性を悪化させる可能性がある。
【００８４】
アスペクト指向プログラミング（ＡＯＰ）においては、機能１４１０についての結果として得られるコードは、ＯＯＰコード（実際には、Ｃ＋＋等のＯＯＰプラットフォームを用いてＡＯＰをデプロイすることができる）と同様なものとすることができる。しかしながら、ＡＯＰ環境においては、アプリケーション・ライタは、機能１４１０についての機能固有の論理のみをコード化し、論理がどのように外部サービス１４１２−１４１８にアクセスするかを定義するためにウィーバ規則のセットを使用することになる。ウィーバ規則は、機能１４１０がいつ、どのように他のサービスと相互作用するかを記述し、それによりツール１３０２のコア・コードと外部サービス１４１２−１４１８とを共に織り込む。機能１４１０についてのコードがコンパイルされるときに、ウィーバは、コア・コードと、最終的な機能１４１０を作成する適切な個々のサービスを呼び出すためのサポート・コードとを結合することになる。スケルトン・コードにおいては、機能１４１０についての一般的なＡＯＰコードは、次のようになり得る。
ＤａｔａＶａｌｉｄａｔｉｏｎ（．．．）
／／Ｄａｔａ  Ｖａｌｉｄａｔｉｏｎ  Ｌｏｇｉｃ
【００８５】
クロスカットするコードは、機能１４１０についてのコードから除去される。次に、アプリケーション・ライタは、ＡＯＰコードに適用されるウィーバ規則を作成することができる。スケルトン・コードにおいて、機能１４１０についてのウィーバ規則は、
１）各々の動作開始時のＩＤログ
２）各々の動作終了時のＩＤログ・アウト
３）最終動作後の更新メタデータ
を含むことができる。
【００８６】
機能１４１０についての結果として得られるＡＯＰスケルトン・コードは、次のようになり得る。
ＤａｔａＶａｌｉｄａｔｉｏｎ（．．．）
−ＩＤ  Ｌｏｇｇｅｒ．ｉｎ
／／Ｄａｔａ  Ｖａｌｉｄａｔｉｏｎ  Ｌｏｇｉｃ
−ＩＤ  Ｌｏｇｇｅｒ．ｏｕｔ
−Ｍｅｔａｄａｔａ．ｕｐｄａｔｅ
【００８７】
アプリケーション・ライタによって作成される簡易コードは、要求されたクロスカット・コードについての問題なしに、ツール１３０２を作成することに完全に集中させることを可能にする。同様に、サービス１４１２−１４１８の１つへの変更は、ツール１３０２の機能１４１０への何の変更も要求しない場合がある。コードをこのように構造化することは、ツール１３０２を作成するか又は修正するときに、コーディング・エラーの可能性を大幅に減少させ、外部サービス１４１２−１４１８についてのサービス更新を単純化することができる。
【００８８】
翻訳エンジン１３０８がエンタープライズ・コンピュータ・システム１３００におけるデータ及びメタデータを処理する可能性のある唯一の方法であることも認識される。翻訳エンジン１３０８は、上述のように、ブリッジ１１２０を含むか又はそれから構成することもできるし、或いは、翻訳エンジン１３０８を介して渡されるデータが翻訳エンジン１３０８によって接続される両方のコンピュータ・システムと互換性がある場合に、最小共通係数法を用いることもできる。さらにもう一つの実施形態において、翻訳は、基準に準拠する全てのコンピュータ・プラットフォームが標準化ファシリティを介してデータを通信し、抽出することができるように標準化ファシリティについて実行することができる。データを処理する他の多くの方法及び考えられるその関連するメタデータが存在し、本明細書において説明されるエンタープライズ・コンピュータ・システム１３００と共に有効に用いることができる。
【００８９】
こうした背景について、ここでは、データ統合システム１０４並びにツール１３０２及び翻訳エンジン１３０４によって実行される特定の動作をより詳細に説明する。
【００９０】
図１７は、データ統合システム１０４に関連させて、メタデータ管理システム３１２、すなわちメタデータ・ファシリティを使用するためのプロセス１５００を示すフロー図である。最初に、新しいツール１３０２は、ステップ１５０２に示すように、データ統合システムに付加することができる。示されるように、データ統合システム１０４は、ＲＩＭ１３０４（もしあれば）の現在のアトミック・データ・モデル及びフォーマット、並びに、付加されることになるツール１３０２のデータ・モデル及びフォーマットについての情報を最初に受け取ることができる。ステップ１５０３に示すように、次に、新しいツール１３０２がデータ統合システム１０４に付加されるべき第１のツール１３０２であるかどうかの判断を下すことができる。新しいツール１３０２が第１のツール１３０２である場合には、プロセス１５００は、ツール１３０２によって要求される表示か、又はユーザによって選択されるその他のあらゆるきめ細かいデータ・モデル及びフォーマットのいずれかを用いて、アトミック・データ・モデルが選択されるステップ１５０４に進むことができる。
【００９１】
新しいツール１３０２が第１のツール１３０２ではない場合には、プロセス１５００は、新しいツールのクラス及び属性構造を含む、新しいツールのデータ・モデル及びフォーマット間の対応関係、並びに、そのクラス及び属性構造とＲＩＭの現在のアトミック・データ・モデル及びフォーマットのクラス及び属性構造との間の関係付けが判定されることになるステップ１５０８に進むことができる。ＲＩＭ１３０４及び翻訳エンジン１３０８の更新規則データベースは、それから生成することができる。ステップ１５１０に示すように、データ統合システム１０４は、規則データベースを使用して、ＲＩＭのアトミック・データ・モデル及びフォーマット、並びに、上述の既存の翻訳エンジン１３０８を更新することができる。データ統合システム１０４はまた、付加されるべきツール１３０２のために翻訳エンジン１３０８を確立することができる。
【００９２】
一般的に図１８および図１９に示すように、翻訳エンジン１３０８がツール１３０２について生成され又は更新されると、翻訳エンジン１３０８は、ツール１３０２の種々の動作と関連させて使用することができる。
【００９３】
ステップ１６０２に示すように、ツール１３０２は、アクセス要求を生成することができ、それを関連する翻訳エンジン１３０８に転送することができる。翻訳エンジン１３０８は、アクセス要求を受け取った後に、ステップ１６０４に示すように、該要求が検索要求であるか又は格納要求であるかといった要求のタイプを判断することができる。ステップ１６０８に示すように、要求が検索要求である場合には、翻訳エンジン１３０８は、ツールのデータ・モデル及びフォーマットとＲＩＭのデータ・モデル及びフォーマットとの間のその関連付けを用いて、該要求をＲＩＭ１３０４用の１つ又は複数の要求に翻訳することができる。翻訳エンジン１３０８は、それぞれのデータ項目をＲＩＭ１３０４から受け取ったときに、データ項目を、ＲＩＭ１３０４から受け取ったモデル及びフォーマットからツール１３０２によって要求されたモデル及びフォーマットに変換することができ、データ項目を適切なフォーマットでツール１３０２に提供することができる。
【００９４】
ステップ１６１４に示すように、翻訳エンジン１３０８は、要求が既に格納されているデータ項目を更新するための要求を含む格納要求であると判断する場合には、翻訳エンジン１３０８は、ＲＩＭ１３０４を用いて、ツール１３０２と関連付けられたマスター物理項目からそれぞれのクラス及びサブクラスの有向グラフを生成することができる。動作が更新動作である場合には、有向グラフは、グラフ・ノードとして、それぞれのクラス及びサブクラス内の既存のデータ項目を含むことになる。動作が新しいデータを格納することになる場合には、有向グラフは、グラフ・ノードとして、要求に含められた新しいデータを格納するのに使用できる空のデータ項目を含むことになる。有向グラフが確立された後に、翻訳エンジン１３０８及びＲＩＭ１３０４は、ステップ１６１８に示すように、該グラフを横断するように動作し、要求において要求されるようにデータ項目のコンテンツを確立し又は更新する。グラフの横断動作が完了した後に、翻訳エンジン１３０８は、ステップ１６２０に示すように、格納動作が完了したことをツール１３０２に知らせることができる。
【００９５】
上述のデータ統合システム１０４は、大きな利点を与えることができる。例えば、このシステム１０４は、ツール１３０２を特定のデータ・モデルに拘束することなしに、及び異なるツール１３０２間で情報を交換する情報交換プログラムを要求することなしに、エンタープライズ・コンピュータ・システム１３００内の多数のツール１３０２によって情報の効率的な共有及び更新を提供することができる。データ統合システム１０４は、該システム１０４内のツール１３０２のいずれかのために使用できるアトミック・データ・モデル及びフォーマットにおいてデータを保持するＲＩＭ１３０４を提供することができ、該フォーマットは、新しいツール１３０２が該システム１０４に付加されるときに、通常の方法で容易に更新し、発展させることができる。さらに、各々のツール１３０２をマスター物理項目のクラスと明確に関連付けることによって、有向グラフは、ＲＩＭ１３０４内のデータ項目間で確立することができる。結果として、ＲＩＭ１３０４内の情報の更新は、通常の有向グラフの横断手順を用いて効率的に達成することができる。
【００９６】
図２０は、データ統合プロセスの複数のプロセスの並列実行のための並列実行ファシリティ１７００を示す概略図である。実施形態において、プロセス１７００は、プロセス開始ファシリティ１７０２を含むことができる。プロセス開始ファシリティ１７０２は、実行される必要があるジョブの範囲を決定し、（例えば、それらが依存していないため）第１及び第２のプロセスを同時に実行できると判断することができる。決定が下されると、２つの処理ファシリティ１７０４及び１７０８は、それぞれ、第１のプロセス及び第２のプロセスを実行することができる。これらの２つのジョブの実行に続いて、別の処理ファシリティ１７１２上で第３のプロセスに着手することができる。第３のプロセスが完了すると、対応するプロセス・ファシリティ１７１２は、情報を変形ファシリティ１７１４に通信することができる。実施形態において、変形ファシリティ１７１４は、それが第１及び第２の処理ファシリティ１７０４、１７０８等の１つ又は複数の他の並列プロセスから情報を受け取るまでは、変形プロセスを開始することができない。情報の全てが提供されると、変形ファシリティ１７１４は、変形を実行することができる。この並列プロセス・フローが、一度に幾つかのプロセス（例えば、互いに依存しないプロセス）を実行し、次いで、（例えば、共通ファシリティが２つの並列ファシリティの結果に依存する場合には）２つ又はそれ以上の並列実行から共通ファシリティに情報を提供することによってランタイムを最小にする。この実施形態においては、幾つかのプロセス・ファシリティは、説明の便宜を図り、別個のファシリティとして示されている。しかしながら、これらのファシリティの２つ又はそれ以上を同じ物理ファシリティとすることができることを理解されたい。処理ファシリティの２つ又はそれ以上は、異なる物理ファシリティとすることができ、種々の物理位置に常駐することができることも理解されたい（例えば、ファシリティ１７０４は、ある物理位置に常駐することができ、ファシリティ１７０８は、他の物理位置に常駐することができる）。
【００９７】
図２１は、データ統合プロセスの複数のプロセスの並列実行のためのステップを示すフロー図である。実施形態において、並列プロセス・フローは、ジョブ・シーケンスを決定するステップ１８０２を含むことができる。ジョブ・シーケンスが決定されると、ステップ１８０４に示すように、ジョブは、２つ又はそれ以上のプロセス・ファシリティに送ることができる。ステップ１８０８において、第１のプロセス・ファシリティは、特定のルーチン及びプログラムを受け取り、実行し、処理された情報を第３のプロセス・ファシリティに通信することができる。ステップ１８１０において、第２のプロセス・ファシリティは、特定のルーチン及びプログラムを受け取り、実行し、完了すると、処理された情報を第３のプロセス・ファシリティに通信することができる。第３のプロセス・ファシリティは、情報の２つのソース上でそれ自体のルーチンを実行する前に、処理された情報を第１及び第２のプロセス・ファシリティから受け取るのを待機することができる。同様に、プロセス・ファシリティは、同じファシリティとするか又は同じ場所に常駐することもできるし、或いは、プロセス・ファシリティは、異なるものとするか及び／又は異なる場所に常駐することもできることを理解すべきである。
【００９８】
より一般には、並列処理を用いるスケーラブル・アーキテクチャは、ＳＭＰ、クラスタリング及びＭＰＰプラットフォーム、並びに、グリッド・コンピューティング・ソリューションを含むことができる。これらは、基礎となるデータ統合プロセスの修正を必要としない方法でデプロイすることができる。本明細書において説明されるシステムと共に使用できる現在市販の並列データベースとしては、ＩＢＭ  ＤＢ２  ＵＤＢ、Ｏｒａｃｌｅ及びＴｅｒａｄａｔａデータベースが挙げられる。並列処理に関連する概念は、レコードがジョブのデータ・フローによって定義される一連の処理機能を介して直接移動させられる、パイプライニングの概念である。パイプライニングは、暫定データ・ストレージのための要件を取り除き、処理ステップ間の入力／出力管理を取り除く等の、多数の処理利点を提供する。パイプライニングは、処理効率を向上させるためにデータ統合システム内で用いることができる。
【００９９】
図２２は、複数のデータ・ソースからの入力及び複数のデータ・ターゲットへの出力からなる、データ統合ジョブ１９００を示す概略図である。ビジネス・エンタープライズにおいて、上述のデータ・ソース１０２のいずれかとすることができる、幾つかのデータ・ソース１９０２Ａ、１９０２Ｂ及び１９０２Ｃからデータを収集し、データの組み合わせを使用することが望ましいものとなる。実施形態において、データ統合システム１０４を用いて、幾つかのデータ・ソース１９０２Ａ、１９０２Ｂ及び１９０２Ｃからデータを収集し、クレンジングし、変形し、又は他の方法で操作し、種々のツール、ターゲット、又は他のコンピュータ・システムからそれにアクセスできるように、上述のデータベース１１２のいずれかとすることができる共通データ・ウェアハウス又はデータベース１９０８にデータを格納することができる。これは、例えば、上述のデータ統合プロセス５００を含むことができる。データ統合システム１０４は、上述のツール１３０２とすることができる、種々のツール１９１０Ａ及び１９１０Ｂからそれに直接アクセスできるように、収集されたデータをストレージ・ファシリティ１９０８に格納することもできるし、或いは、ツールは、本明細書において説明されたように、自動、手動又は半自動のいずれで生成されようとも上述の翻訳エンジン１３０８とすることができるデータ・トランスレータ１９０４Ａ及び１９０４Ｂを介してデータにアクセスすることもできる。データ・トランスレータ１９０４Ａ、１９０４Ｂは、別個のファシリティとして示されているが、それらは、データ統合システム１０４、ツール１３０２に組み込むこともできるし、或いは、他の方法で所望のタスクを達成するように配置することもできることを理解されたい。
【０１００】
図２３は、複数のデータ・ソースからの入力及び複数のデータ・ターゲットへの出力からなる、別のデータ統合ジョブ１９００を示す概略図である。ビジネス・エンタープライズにおいて、上述のデータ・ソース１０２のいずれかとすることができる、幾つかのデータ・ソース１９０２Ａ、１９０２Ｂ及び１９０２Ｃからデータを収集し、データの組み合わせを使用することが望ましいものとなる。実施形態において、データ統合システム１０４は、データを幾つかのデータ・ソース１９０２Ａ、１９０２Ｂ及び１９０２Ｃから収集し、クレンジングし、変形し、又は他の方法で操作し、上述のデータ・ソース１０２のいずれかとすることもできる幾つかのターゲット１９１０Ａ及び１９１０Ｂに、組み合わされた形で収集された情報を伝えることができる。これは、例えば、リアルタイム又はバッチ・モードで達成することができる。収集された情報の全てを、将来のある時点で、アクセスされることになる中央データベースに格納するのではなく、データ統合システム１０４は、データ要求がターゲット１９１０Ａ及び１９１０Ｂによって作られる時点で又はその付近で、データをデータ・ソース１９０２Ａ、１９０２Ｂ及び１９０２Ｃから収集し、処理することができる。データ統合システム１０４は、このような実施形態においては、依然としてメモリを含むことができると理解されたい。実施形態において、メモリを使用して、処理が完了したときにターゲットに渡されることになるデータを一時的に格納することができる。
【０１０１】
図２２及び図２３を参照して説明されたデータ統合ジョブ１９００の実施形態は、汎用的なものである。こうしたデータ統合ジョブ１９００は、多数の商業、教育、政府及び他の環境において適用することができ、データ・ソース１０２、データ統合システム１０４、データ・ターゲット及び／又はデータベース１１２の多くの異なるタイプを含むことができることが認識される。
【０１０２】
図２４は、ビジネス・エンタープライズのためのデータ・マネージャがデータ統合ジョブ１９００を設計することができる、グラフィカル・ユーザ・インターフェース２１０２を示す。実施形態において、グラフィカル・ユーザ・インターフェース２１０２をユーザに提供して、データ統合ジョブのセット・アップを容易にすることができる。ユーザ・インターフェースは、データベース、変形ツール、ターゲット、パス識別子、及びユーザによって使用される他のツールを含む、ツール・パレット２１０６を含むことができる。ユーザは、例えば、ドラッグ・アンド・ドロップ作業、ドロップ・ダウン・メニュー、コマンド・ライン、その他のあらゆる制御、ツール、ツールボックス、又は他のユーザ・インターフェース・コンポーネントを用いて、ツール・パレット２１０６からワークスペース２１０４内にツールをグラフィカルに操作することができる。ワークスペース２１０４を用いてデータベース、データ・フロー・パス、変形ステップなどをレイアウトして、上述のデータ統合ジョブ１９００等のデータ統合ジョブを構成することができる。実施形態において、ジョブが構成されると、それを、この又は別のユーザ・インターフェースから実行することができる。ユーザ・インターフェース２１０２は、アプリケーション又は他のプログラミング環境によって、或いは、ユーザがウェブ・ブラウザを用いてアクセスできるウェブ・ページとして生成することができる。
【０１０３】
図２５は、データ・マネージャがデータ統合ジョブ１９００を設計することができる、グラフィカル・ユーザ・インターフェース２１０２の別の実施形態を示す。実施形態において、ユーザは、グラフィカル・ユーザ・インターフェース２１０２を用いて、データ・ターゲット／ソースを表すアイコンを選択し、これらのアイコンを機能又は他の関係と関連付けることができる。こうした環境においては、ユーザは、幾つかのアイコン間の関連付け又はコマンド構造を作成して、上述のデータ統合ジョブ１９００のいずれかとすることができるデータ統合ジョブ２２０２を作成することができる。
【０１０４】
ユーザ・インターフェース２１０２は、多数のリソースへのアクセスを提供し、プラットフォーム１００及びデータ統合システム１０４内でツールを設計することができる。例えば、ユーザ・インターフェース２１０２は、タイプ・デザイナ・データ・オブジェクト・モデリングを含むことができる。タイプ・デザイナを用いて、データ構造の特性を定義し、データの包含を定義し、データ検証規則を作成すること等を行うタイプ・ツリーを作成し、管理することができる。タイプ・デザイナは、ＸＭＬ、ＣＯＢＯＬ  Ｃｏｐｙｂｏｏｋｓ、及びＳＡＰ  Ｒ／３、ＢＥＡ  Ｔｕｘｅｄｏ及びＰｅｏｐｌｅＳｏｆｔ  ＥｎｔｅｒｐｒｉｓｅＯｎｅ等のアプリケーションに特有の構造のようなフォーマットで記述されるデータについてのタイプ・ツリー（すなわち、データ・オブジェクト定義）を自動的に生成するインポータを含むことができる。
【０１０５】
ユーザ・インターフェース２１０２は、変形規則及びビジネス規則を構成するために使用されるマップ・デザイナを含むことができる。マップ・デザイナは、入力及び出力としてタイプ・デザイナを用いて作成されたデータ・オブジェクトの定義を使用することができ、データを変形しルーティングするための規則、並びに、作成されるマップを分析し、コンパイルし、テストする環境を指定するために使用することができる。
【０１０６】
データベース設計インターフェースをモデリング・コンポーネントとして提供して、クエリ、表及びリレーショナル・データベースに格納されるデータの格納手順に関するメタデータをインポートすることができる。データベース設計インターフェースは、マッピング及び実行要件を満たすために、種々のオブジェクトの、更新キー及びデータベース・トリガ等の特性を識別することができる。統合フロー・デザイナを用いて、データ統合プロセスを定義し、管理することができる。より具体的には、統合フロー・デザイナを用いて、マップ及びマップ・システム間の相互作用を定義し、ワークフローの論理的整合性を検証し、マップ・システムを準備し、実行することができる。コマンド・サーバ・コンポーネントは、グラフィカル・ユーザ・インターフェース内でコマンド駆動実行を提供することができる。これは、例えば、マップ・デザイナ環境内のマップをテストするために用いることができる。リソース・レジストリは、実行時にエンタープライズ内の特定のリソースに分解するエイリアスを用いてパラメータ設定を抽出するために使用される、リソース・エイリアス・リポジトリを提供することができる。
【０１０７】
ユーザ・インターフェース２１０２は、種々のアドミニストレーション及び管理ツールへのアクセスを提供することもできる。例えば、ユーザがデプロイディレクトリを指定し、ユーザ及びユーザ・アクセス権利を構成し、リスニング・ポートを指定し、Ｊａｖａ  Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏｎ（ＲＭＩ）についての特性を定義することを可能にする、イベント・サーバ・アドミニストレーション・ツールを提供することができる。管理コンソールは、ユーザがシステムを開始し、停止し、一時停止し、再開することができるイベント・サーバについての管理及び監視を提供し、イベント・サーバのステータスに関する情報及び実行されるマップを表示することができる。イベント・サーバ・モニタは、マップが動作する際に、単一のマップの動的な詳細表示を提供し、特定の時点でのアクティビティのスナップショットを作成することができる。
【０１０８】
図２６は、ビジネス・エンタープライズの種々のデータの統合を容易にするプラットフォーム２３００を表す。プラットフォームは、例えば、上述のプラットフォーム１００とすることができ、ＥＴＬ（Ｅｘｔｒａｃｔ、Ｔｒａｎｓｆｏｒｍ、Ｌｏａｄ）と呼ばれることがある、種々のソースからのデータ抽出、所望のフォーマットへのデータ変形、及び種々のターゲットへのデータ・ロード等の公知のエンタープライズ・アプリケーション統合（ＥＡＩ）サービスを提供できる統合スイートを含むことができる。プラットフォーム２３００は、Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  Ｂｅａｎｓ（ＥＪＢ）及びＪａｖａ  Ｍｅｓｓａｇｉｎｇ  Ｓｅｒｖｉｃｅ（ＪＭＳ）等のウェブ・サービス・プロトコル２３０２を介することを含む、エンタープライズのコンピュータ・アプリケーションによってアクセスできるサービスとして、通常のデータ統合プラットフォーム２７０２を公開することを容易にするリアルタイム統合（ＲＴＩ）サービス２７０４を含むことができる。製品スイートは、以下の例において詳細に説明されるように、データ統合又はエンタープライズ・アプリケーション統合スイートとすることができるが、本明細書において説明される原理を用いて、相互に関係するプログラム又は機能の任意のスイートをサービス指向アーキテクチャ内のサービスとしてデプロイし、管理できることが認識される。したがって、製品スイートは、例えば、自動文書アセンブリ、ワード処理、スプレッドシート等のようなツールを含むオフィス・オートメーション又は生産性スイートを含むことができる。或いは、生産性スイートは、例えば、設計、ビジュアル・レンダリング、原価計算、シミュレーション等についての種々のサービスとしてデプロイされた別個のソフトウェア・パッケージ又は機能を有するコンピュータ自動設計スイートとすることができる。別の例として、簿記、会計、税金の書類作成、及び電子納税申告製品のような財務製品の統合スイートは、サービス指向アーキテクチャを用いて、製品レベルにおいて又は各々の製品に特有のサービスの集合としてのいずれかでサービスとしてデプロイすることができる。同様に、経済のモデリング・ツール、財務分析ツール（例えば、個々の会社の会計報告、株式取引パターン、市場取引パターン等用）、及び電子取引ツールは、統合株式取引スイート内のサービスとしてデプロイすることができる。
【０１０９】
図２７は、サービス指向アーキテクチャ（ＳＯＡ）２４００の概略図を示す。ＳＯＡは、ビジネス・エンタープライズのエンタープライズ・コンピュータ・システム１３００のインフラストラクチャの一部とすることができる。ＳＯＡ２４００においては、サービスは、迅速なアプリケーションの開発を可能にし、冗長コードを回避する、アプリケーションの開発及びデプロイのための構築ブロックとなる。各々のサービスが、該サービスのためのデータ入力ソース又は該サービスのためのデータ出力ターゲットといった、周囲の環境には見えないビジネス論理又はビジネス規則のセットを具体化する。結果として、サービスは、適切な入力及び出力がサービスとアプリケーションとの間に確立されているという条件で、様々なアプリケーションと関連させて再使用することができる。サービス指向アーキテクチャ２４００は、サービスを環境の変更から保護することを可能にし、その結果、たとえ周囲のコンピュータ環境が変更されても、該アーキテクチャは機能する。結果として、サービスは、インフラストラクチャの変更の結果として記録される必要がない場合があり、このことは、時間及び努力の節約をもたらし得る。図２７の実施形態は、ウェブ・サービスのためのＳＯＡ２４００の実施形態である。ここで用いられる「サービス指向アーキテクチャ」、「サービス指向のアーキテクチャ」、「ＳＯＡ」等のような変形語は、図２７を参照して説明され、より一般的には、本明細書全体を通して説明されるＳＯＡ２４００を一般的に指すために互換性をもって用いられることが意図される。
【０１１０】
図２７のＳＯＡ２４００においては、サービス・プロバイダ２４０２、サービス・リクエスタ２４０４及びサービス・レジストリ２４０８の、３つのエンティティが存在する。レジストリ２４０８は、公開又は専用とすることができる。サービス・リクエスタ２４０４は、適切なサービスについてレジストリ２４０８を検索することができる。適切なサービスが発見されると、サービス・リクエスタ２４０４は、サービスを呼び出すのに必要な、Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＷＳＤＬ）コードのようなコードを受け取ることができる。ＷＳＤＬは、ウェブ・サービスを記述するために従来の方法で使用されるプログラミング言語である。次に、サービス・リクエスタ２４０４は、サービスを呼び出すために、例えば、適切なフォーマット（ウェブ・サービス・メッセージのためのＳｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）フォーマット等）のメッセージを介して、サービス・プロバイダ２４０２とインターフェース接続することができる。ＳＯＡＰプロトコルは、ウェブ・サービスにおいてデータを転送するための好ましいプロトコルである。ＳＯＡＰプロトコルは、ウェブ・サービス・クライアントとウェブ・サービス・サーバとの間のメッセージのための交換フォーマットを定義する。ＳＯＡＰプロトコルは、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）スキーマを使用し、ＸＭＬは、データをタグ付けするウェブ・サービスに一般的に使用される総称言語仕様であるが、他のマークアップ言語を使用することもできる。
【０１１１】
図２８は、ＳＯＡＰメッセージの例を示す。ＳＯＡＰメッセージ２５０２は、転送エンベロープ２５０４（ＨＴＴＰ若しくはＪＭＳエンベロープ等）、ＳＯＡＰエンベロープ２５０８、ＳＯＡＰヘッダ２５１０及びＳＯＡＰ本体２５１２を含むことができる。以下は、ＳＯＡＰフォーマットの要求メッセージ及びＳＯＡＰフォーマットの応答メッセージの例である。
【０１１２】
ウェブ・サービスは、ウェブにわたって公開し、配置し、呼び出すことができるモジュラ式の、自己記述型の、内蔵型のアプリケーションとすることができる。例えば、図２７のウェブ・サービスの実施形態においては、サービス・プロバイダ２４０２は、ウェブ・サービスをレジストリ２４０８に公開し、該レジストリは、例えば、どんなウェブ・サービスが利用可能であるかについてのリストを提供する、Ｕｎｉｖｅｒｓａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｄｉｓｃｏｖｅｒｙ  ａｎｄ  Ｉｎｔｅｇｒａｔｉｏｎ（ＵＤＤＩ）レジストリ、又は専用レジストリ若しくは他の公開レジストリとすることができる。ウェブ・サービスは、例えば、ＷＳＤＬフォーマットで公開することができる。サービスを発見するために、サービス・リクエスタ２４０４は、サービス・レジストリをブラウズし、ＷＳＤＬ文書を検索することができる。レジストリ２４０８は、ブラウズ・ファシリティ及び検索ファシリティを含むことができる。レジストリ２４０８は、ＷＳＤＬ文書及びそれらのメタデータを格納することができる。
【０１１３】
ウェブ・サービスを呼び出すために、サービス・リクエスタ２４０４は、ＷＳＤＬで記述されたＳＯＡＰメッセージ２５０２をサービス・プロバイダ２４０２に送り、それに応答してＳＯＡＰメッセージ２５０２を受け取り、ＷＳＤＬで記述された応答メッセージをデコードする。それらの複雑さによって、ウェブ・サービスは、データ要求等の単純な動作から複雑なビジネス・プロセス動作に及ぶ多彩な機能を提供することができる。ウェブ・サービスがデプロイされると、他のアプリケーション（他のウェブ・サービスを含む）は、ウェブ・サービスを発見し、呼び出すことができる。他のウェブ・サービス標準は、プラットフォームにわたるウェブ・サービスの相互運用性を促進するために設立されたオープンな業界組織の、Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  Ｏｒｇａｎｉｚａｔｉｏｎ（ＷＳ−Ｉ）によって定義される。例としては、ＷＳ−Ｃｏｏｒｄｉｎａｔｉｏｎ、ＷＳ−Ｓｅｃｕｒｉｔｙ、ＷＳ−Ｔｒａｎｓａｃｔｉｏｎ、ＷＳＩＦ、ＢＰＥＬ等が挙げられ、本明細書において説明されるウェブ・サービスは、何らかのこうした標準によって考慮されるサービスを包含するものと理解されたい。
【０１１４】
図２９を参照すると、ＷＳＤＬ定義２６００は、ウェブ・サービスについてのインターフェース、位置及び符号化スキームを定義するＸＭＬスキーマである。定義２６００は、サービス２６０２を定義し、該サービス２６０２をアクセスさせることができるポート２６０４（インターネット・アドレス等）を識別し、ウェブ・サービスを呼び出してそれと通信するのに使用されるバインディング２６０８（Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  Ｂｅａｎ又はＳＯＡＰバインディング等）を定義する。ＷＳＤＬ定義２６００は、ポート・タイプ２６１２、ウェブ・サービスのための入側メッセージ部分２６１６及び出側メッセージ部分２６１８、並びに、サービスによって実行される動作２６１４を定義することができる抽出定義２６１０を含むことができる。
【０１１５】
ウェブ・サービスを呼び出すことができる種々のプロバイダからの様々なウェブ・サービス・クライアントが存在する。ウェブ・サービス・クライアントとしては、．Ｎｅｔアプリケーション、Ｊａｖａアプリケーション（例えば、ＪＡＸ−ＲＰＣ）、Ｍｉｃｒｏｓｏｆｔ  ＳＯＡＰツールキット内のアプリケーション（Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ及びその他）ＳｅｅＢｅｙｏｎｄからのアプリケーション、ＷｅｂＭｅｔｈｏｄｓ、Ｔｉｂｃｏ及びＢｉｚＴａｌｋ、並びに、ＡｓｃｅｎｔｉａｌのＤａｔａＳｔａｇｅ（ＷＳ  ＰＡＣＫ）が挙げられる。本明細書において説明されるエンタープライズ・データの統合方法及びシステムにおいて他のウェブ・サービス・クライアントを使用することもできると理解されたい。同様に、・Ｎｅｔアプリケーション、Ｊａｖａアプリケーション、Ｓｉｅｂｅｌ及びＳＡＰからのアプリケーション、Ｉ２アプリケーション、ＤＢ２及びＳＱＬ  Ｓｅｒｖｅｒアプリケーション、エンタープライズ・アプリケーション統合（ＥＡＩ）アプリケーション、ビジネス・プロセス管理（ＢＰＭ）アプリケーション、及びＡｓｃｅｎｔｉａｌ  ＳｏｆｔｗａｒｅのＲｅａｌ  Ｔｉｍｅ  Ｉｎｔｅｇｒａｔｉｏｎ（ＲＴＩ）アプリケーションを含む、種々のウェブ・サービスのプロバイダが存在し、これらの全ては、本明細書において説明されるウェブ・サービス・クライアントと共に使用することができる。
【０１１６】
本明細書において説明されるＲＴＩサービス２７０４は、ＷＳＤＬ等のオープン・スタンダード仕様を用いて、データ統合プロセスのサービス・インターフェースを記述することができる。データ統合サービスの定義が完了したときに、それは、ＷＳＤＬウェブ・サービスの定義言語（必ずしもウェブ・サービス特有であるとは限らない言語）を使用することができ、これは、一般的に上述されたように、サービス名、サービス動作、各々の動作シグニチャ、及びサービスについてのバインディングを与える抽象定義である。ＷＳＤＬ定義２６００（ＸＭＬ文書）内には、種々のタグが存在し、この構造は、図２９と関連させて説明される。サービス毎に、その各々がバインディングを有する多数のポートが存在し得る。抽象定義は、当該データ統合サービスについてのＲＴＩサービスの定義である。ポート・タイプは、その各々が入力引数及び出力引数のセットを有する、動作のセットについての入口ポイントである。
【０１１７】
ＷＳＤＬは、ウェブ・サービスについて定義されたものであるが、１つのみのバインディングを定義したものである（ＳＯＡＰ  ｏｖｅｒ  ＨＴＴＰ）。ＷＳＤＬは、その後、ＥＪＢ、ＪＭＳ等のような、種々の他のバインディングのためのＷＳＤＬ拡張子を含めるように、業界組織体を通して拡張された。ＲＴＩサービス２７０４は、ＷＳＤＬ拡張子を用いて、種々の他のプロトコルについてのバインディングを作成することができる。このようにして、単一のＲＴＩデータ統合サービスは、単一のサービスに対して同時に多数のバインディングをサポートすることができる。結果として、ビジネスは、データ統合プロセス５００を受け、それを抽出プロセスのセットとして公開し（プロトコルに完全にとらわれない）、次いで、バインディングを付加することができる。サービスは、任意の数のバインディングをサポートすることができる。
【０１１８】
ユーザは、既存のデータ統合ジョブ１９００を受け、適切なＲＴＩ入力及び出力段階を付加し、異なるネイティブ・プロトコルを使用する種々のアプリケーションによって呼び出すことができるサービスとしてジョブを公開することができる。
【０１１９】
図３０を参照すると、上位レベルのアーキテクチャが、データ統合プラットフォーム２７００について表され、該プラットフォームは、例えば、リアルタイムのデータ統合について上述され、適合されたプラットフォーム１００にわたってデプロイすることができる。例えば、上述のデータ統合システム１０４とすることができる通常のデータ統合ファシリティ２７０２は、データ統合ジョブを処理するための方法及びシステムを提供することができる。データ統合ファシリティ２７０２は、サービス指向アーキテクチャ内のサービスを含む、リアルタイム統合ファシリティ、すなわちＲＴＩサービス２７０４を介して１つ又は複数のアプリケーションに接続することができる。ＲＴＩサービス２７０４は、エンタープライズの種々のアプリケーション２７０８を呼び出すこともできるし、或いは、それらによって呼び出されることもできる。データ統合ファシリティ２７０２は、一致、標準化、変形、クレンジング、発見、メタデータ、並列実行、及びデータ統合ジョブを実行するのに必要な同様のファシリティを提供することができる。実施形態において、ＲＴＩサービス２７０４は、エンタープライズのアプリケーション２７０８によってリアルタイムで呼び出すことができるサービスとしてデータ統合ファシリティ２７０２のデータ統合ジョブを公開する。ＲＴＩサービス２７０４は、データ統合ファシリティ２７０２を公開し、その結果、データ統合ジョブは、サービスとして、同期的又は非同期的に使用することができる。ジョブは、例えば、エンタープライズ・アプリケーション統合プラットフォーム、アプリケーション・サーバ・プラットフォーム、並びに、Ｊａｖａ及び．Ｎｅｔアプリケーションから呼び出すことができる。ＲＴＩサービス２７０４は、バッチ及びリアルタイム・サービスにわたって同じ論理を再使用し、適用することを可能にする。ＲＴＩサービス２７０４は、Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  Ｂｅａｎ（ＥＪＢ）、Ｊａｖａ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ（ＪＭＳ）、又はウェブ・サービス・バインディング等の種々のバインディング２７１０を用いて呼び出すことができる。
【０１２０】
図３１を参照すると、実施形態において、ＲＴＩサービス２７０４は、リアルタイム・データ統合プロセスの種々の要素のための接続ファシリティとして機能する、ＲＴＩサーバ２８０２上で動作する。例えば、ＲＴＩサーバ２８０２は、マサチューセッツ州、ウェストバラ所在のＡｓｃｅｎｔｉａｌ  Ｓｏｆｔｗａｒｅ社からのＤａｔａＳｔａｇｅサーバ等の、複数のエンタープライズ・アプリケーション統合サーバを接続することができ、その結果、ＲＴＩサーバ２８０２は、他のサーバ間でのプーリング及びロード・バランシングを提供することができる。ＲＴＩサーバ２８０２は、Ｊ２ＥＥアプリケーション・サーバ上で動作する別個のＪ２ＥＥアプリケーションを含むことができる。１つより多くのＲＴＩサーバ２８０２をデータ統合プロセスに含めることができる。
【０１２１】
Ｊ２ＥＥは、エンタープライズ・アプリケーションの設計、開発、組み立て及びデプロイへの、コンポーネント・ベースのアプローチを提供する。中でも、Ｊ２ＥＥは、多層の分散アプリケーション・モデル、コンポーネントを再使用する能力、統一したセキュリティ・モデル、及びトランザクション制御機構を提供する。Ｊ２ＥＥアプリケーションは、コンポーネントから構成される。Ｊ２ＥＥコンポーネントは、その関係するクラス及びファイルと共にＪ２ＥＥアプリケーションに組み込まれ、他のコンポーネントと通信する、内蔵タイプの機能ソフトウェア・ユニットである。
【０１２２】
Ｊ２ＥＥ仕様は、クライアント側で動作するコンポーネントであるアプリケーション・クライアント及びアプレット、サーバ上で動作するウェブ・コンポーネントであるＪａｖａ  Ｓｅｒｖｌｅｔ及びＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ（ＪＳＰ）技術コンポーネント、及びサーバ上で動作するビジネス・コンポーネントであるＥｎｔｅｒｐｒｉｓｅ  ＪａｖａＢｅａｎ（ＥＪＢ）コンポーネント（エンタープライズ・ビーン）を含む、種々のＪ２ＥＥコンポーネントを定義する。Ｊ２ＥＥコンポーネントは、Ｊａｖａで書き込まれ、如何なるプログラムとも同じ方法でコンパイルされる。Ｊ２ＥＥコンポーネントと「標準」Ｊａｖａクラスとの間の違いは、Ｊ２ＥＥコンポーネントは、それらがＪ２ＥＥサーバによって実行され管理される場合に、Ｊ２ＥＥアプリケーションに組み込まれ、Ｊ２ＥＥ仕様に適格となり準拠していることを検査され、生産のためにデプロイされるということである。セッション・ビーン、エンティティ・ビーン及びメッセージ駆動ビーンの、３種類のＥＪＢが存在する。セッション・ビーンは、クライアントとの過渡的会話を表す。クライアントが実行を終えるときに、セッション・ビーン及びそのデータは消える。これとは対照的に、エンティティ・ビーンは、データベース表の１つの行に格納される永続的なデータを表す。クライアントが終了するか又はサーバがシャット・ダウンする場合に、基礎サービスは、エンティティ・ビーンのデータが保管されることを保証する。メッセージ駆動ビーンは、セッション・ビーンの機能とＪａｖａ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ（ＪＭＳ）メッセージ・リスナの機能とを結合して、ビジネス・コンポーネントがＪＭＳメッセージを非同期的に受け取ることを可能にする。
【０１２３】
Ｊ２ＥＥ仕様はさらに、コンポーネントと、該コンポーネントをサポートする下位レベルのプラットフォーム別の機能との間のインターフェースであるコンテナを定義する。ウェブ、エンタープライズ・ビーン又はアプリケーション・クライアント・コンポーネントが実行される前に、それは、Ｊ２ＥＥアプリケーションに組み込まれ、そのコンテナにデプロイされる必要がある。組み立てプロセスは、Ｊ２ＥＥアプリケーション内のコンポーネント毎に及びＪ２ＥＥアプリケーションそれ自体についてコンテナ設定を指定することを含む。コンテナ設定が、セキュリティ、トランザクション管理、Ｊａｖａ  Ｎａｍｉｎｇ  ａｎｄ  Ｄｉｒｅｃｔｏｒｙ  Ｉｎｔｅｒｆａｃｅ（ＪＮＤＩ）ルックアップ及び遠隔接続等のサービスを含む、Ｊ２ＥＥサーバによって提供される基礎サポートをカスタマイズする。
【０１２４】
図３２は、典型的なＪ２ＥＥサーバ２９０８及び関連アプリケーションについてのアーキテクチャ２９００を示す。Ｊ２ＥＥサーバ２９０８は、Ｊ２ＥＥアーキテクチャのランタイム・アスペクトを構成する。Ｊ２ＥＥサーバ２９０８は、ＥＪＢコンテナ及びウェブ・コンテナを提供する。ＥＪＢコンテナ２９０２は、Ｊ２ＥＥアプリケーションについてのエンタープライズ・ビーン２９０４の実行を管理する。エンタープライズ・ビーン２９０４及びそれらのコンテナ２９０２は、Ｊ２ＥＥサーバ２９０８上で動作する。ウェブ・コンテナ２９１０は、Ｊ２ＥＥアプリケーションについてＪＳＰページ２９１２及びサーブレット・コンポーネント２９１４の実行を管理する。ウェブ・コンポーネント及びそれらのコンテナ２９１０も、Ｊ２ＥＥサーバ２９０８上で動作する。一方、アプリケーション・クライアント・コンテナ２９１８は、アプリケーション・クライアント・コンポーネントの実行を管理する。アプリケーション・クライアント２９２０及びそれらのコンテナ２９１８は、クライアント側で動作する。アプレット・コンテナは、アプレットの実行を管理する。アプレット・コンテナは、ウェブ・ブラウザ及びクライアント上で共に動作するＪａｖａプラグ・インから構成することができる。
【０１２５】
Ｊ２ＥＥコンポーネントは、一般的には、デプロイのためにＪ２ＥＥアプリケーションに別々にパッケージ化され、バンドル化される。各々のコンポーネント、ＧＩＦ及びＨＴＭＬファイル又はサーバ側のユーティリティ・クラス等のその関連ファイル、及びデプロイディスクリプタは、モジュールに組み込まれ、Ｊ２ＥＥアプリケーションに付加される。Ｊ２ＥＥアプリケーション及びそのモジュールの各々は、それ自身のデプロイディスクリプタを有する。デプロイディスクリプタは、コンポーネントのデプロイ設定を記述する．ｘｍｌ拡張子を有するＸＭＬ文書である。そのモジュールの全てを有するＪ２ＥＥアプリケーションは、Ｅｎｔｅｒｐｒｉｓｅ  Ａｒｃｈｉｖｅ（ＥＡＲ）ファイルで供給される。ＥＡＲファイルは、．ｅａｒ拡張子を有する標準Ｊａｖａ  Ａｒｃｈｉｖｅ（ＪＡＲ）ファイルである。各々のＥＪＢ  ＪＡＲファイルは、デプロイディスクリプタ、エンタープライズ・ビーン・ファイル、及び関連ファイルを含む。各々のアプリケーション・クライアントＪＡＲファイルは、デプロイディスクリプタ、アプリケーション・クライアントのためのクラス・ファイル、及び関連ファイルを含む。各々のファイルは、デプロイディスクリプタ、ウェブ・コンポーネント・ファイル、及び関連リソースを含む。
【０１２６】
ＲＴＩサーバ２８０２は、リアルタイム・エンタープライズ・アプリケーション統合環境のためのホスティング・サービスとして機能することができる。ＲＴＩサーバ２８０２は、本明細書において説明される機能を実行できるＪ２ＥＥサーバとすることができる。ＲＴＩサーバ２８０２は、エンタープライズ・アプリケーション統合サービスのための安全かつスケーラブルなプラットフォームを提供することができる。ＲＴＩサーバ２８０２は、セッション管理、ロギング（Ａｐａｃｈｅ  Ｌｏｇ４Ｊ  ロギング等）、構成及び監視（Ｊ２ＥＥ  ＪＭＸ等）、セキュリティ（Ｊ２ＥＥ  ＪＡＡＳ、Ｊ２ＥＥアドミニストレータを介するＳＳＬ符号化等）を含む、様々な通常のサーバ機能を提供することができる。ＲＴＩサーバ２８０２は、ローカル又は専用ウェブ・サービス・レジストリとして機能することができ、それは、多くの通常のウェブ・サービスのために用いられるＵＤＤＩレジストリのような公開ウェブ・サービス・レジストリにウェブ・サービスを公開するのに使用することができる。ＲＴＩサーバ２８０２は、データ統合ジョブを実行するのに使用されるもののような、他のサービス間でのリソース・プーリング及びロード・バランシング機能を実行することができる。ＲＴＩサーバ２８０２は、ＲＴＩサービスを確立し、管理するためのアドミニストレーション・コンソールとして機能することもできる。ＲＴＩサーバ２８０２は、ＪＢＯＳＳ  ３．０、ＩＢＭ  Ｗｅｂｓｐｈｅｒｅ  ５．０、ＢＥＡ  ＷｅｂＬｏｇｉｃ  ７．０及びＢＥＡ  ＷｅｂＬｏｇｉｃ  ８．１等の、種々の環境と関連させて動作することができる。
【０１２７】
確立されると、ＲＴＩサーバ２８０２は、データ統合ジョブ（Ａｓｃｅｎｔｉａｌ  Ｓｏｆｔｗａｒｅプラットフォームによって実行されるＤａｔａＳｔａｇｅ及びＱｕａｌｉｔｙＳｔａｇｅジョブ等）が、ウェブ・サービス、エンタープライズＪａｖａビーン、Ｊａｖａメッセージ・サービス・メッセージ等によって呼び出されることを可能にする。ＲＴＩサーバ２８０２と共にサービス指向アーキテクチャを使用するアプローチは、バインディングの決定がデータ統合ジョブ設計から分離されることを可能にする。また、同じデータ統合ジョブについて多数のバインディングを、確立することができる。データ統合ジョブは、環境を問わずに多数のバインディングを扱うことができるため、多数のアプリケーションにわたって、並びに、バッチ及びリアルタイム・モードにわたって処理論理を再使用することがより容易になり得る。
【０１２８】
図３３は、ＲＴＩサービスを管理するために提供することができるＲＴＩコンソール３００２を示す。ＲＴＩコンソール３００２は、ＲＴＩサービスの作成及びデプロイを可能にすることができる。中でも、ＲＴＩコンソールは、ユーザが、所与のＲＴＩサービスへのインターフェースを提供するためにどんなバインディングを使用するかを確立し、ＲＴＩサービスのランタイム使用についてのパラメータを確立することを可能にする。ＲＴＩコンソールには、グラフィカル・ユーザ・インターフェースが提供され、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓベースの環境、又はウェブ・ブラウザ・インターフェースのようなインターフェースをサポートする任意の適切な環境において作動することができる。ＲＴＩコンソールの使用についてのさらなる詳細を以下に提供する。ＲＴＩコンソール３００２は、設計者によって、サービスを作成し、サービスの動作を作成し、ジョブをサービス動作に付加し、ユーザによって所望されるバインディングを作成して、種々のプロトコルによってサービスを実行するために使用可能である。
【０１２９】
再度、図３０を参照すると、ＲＴＩサービス２７０４は、データ統合プラットフォーム２７０２と種々のアプリケーション２７０８との間に位置させることができる。ＲＴＩサービス２７０４は、アプリケーション２７０８がデータ統合プラットフォーム２７０２にリアルタイム又はバッチ・モードで同期的又は非同期的にアクセスすることを可能にすることができる。データ統合プラットフォーム２７０２において確立されたデータ統合規則は、エンタープライズ・コンピュータ・システム１３００にわたって共有することができる。データ統合規則は、プラットフォーム２７０２の知識を必要とすることなく、如何なる言語ででも書き込むことができる。ＲＴＩサービス２７０４は、リアルタイムでのデータ統合を容易にするために、ウェブ・サービス定義を活用することができる。データ統合ジョブのフローは、本明細書において説明される方法及びシステムによって、バッチ環境又はリアルタイム環境と関連させることができる。本発明において説明される方法及びシステムは、コンテナの概念、すなわちプロセスにおける定義済み入口ポイントと定義済み出口ポイントとの間に収容されるビジネス論理部分を含む。データ統合プロセスをコンテナ内のビジネス論理として構成することによって、データ統合は、バッチ・モード及びリアルタイム・モードで使用することができる。ビジネス論理がコンテナに入ると、バッチ・モード及びリアルタイム・モード間の移動を単純化することができる。データ統合ジョブは、リアルタイム・サービスとしてアクセスすることができ、例えば大きなバッチのファイルを処理するために、同じデータ統合ジョブにバッチ・モードでアクセスし、リアルタイム・モードの場合と同じ変形を行うことができる。
【０１３０】
図３４を参照すると、ＲＴＩサービス２７０４の実施形態を可能にするためのアーキテクチャ３１００のさらなる詳細が提供される。ＲＴＩサーバ２８０２は、典型的なＪ２ＥＥ準拠サーバによって提供されるような監査３１０４、認証３１０８、許可３１１０及びロギング３１１２のためのファシリティを含む種々のコンポーネントを含むことができる。ＲＴＩサーバ２８０２は、データ統合プラットフォーム２７０２上で実行されるデータ統合ジョブに関連するリソース等のリソースをプールして割り当てるように動作することができる、プロセス・プーリング・ファシリティ３１０２をさらに含むことができる。プロセス・プーリング・ファシリティ３１０２は、データ統合ジョブを実行している種々のサーバにわたってサーバ及びジョブの選択を提供することができる。選択は、マシン間のロードのバランスを取ることに基づくか、又はどのデータ統合ジョブがどのマシン上で実行されること（又は最も効果的に実行されること）が可能かに基づくものとすることができる。ＲＴＩサーバ２８０２は、ＳＯＡＰバインディング・ファシリティ３１１６、ＪＭＳバインディング・ファシリティ３１１８及びＥＪＢバインディング・ファシリティ３１２０等の、バインディング・ファシリティ３１１４をさらに含むことができる。バインディング・ファシリティ３１１４は、ＲＴＩサーバ２８０２と、ウェブ・サービス・クライアント３１２２、ＪＭＳキュー３１２４又はＪａｖａアプリケーション３１２８等の種々のアプリケーションとの間のインターフェースを可能にする。
【０１３１】
さらに図３４を参照すると、ＲＴＩコンソール３００２は、ＲＴＩサーバ２８０２のためのアドミニストレーション・コンソールとすることができる。ＲＴＩコンソール３００２は、アドミニストレータがＲＴＩサービスを作成してデプロイし、該サービスのランタイム・パラメータを構成し、該サービスへのバインディング又はインターフェースを定義することを可能にすることができる。
【０１３２】
アーキテクチャ３１００は、マサチューセッツ州、ウェストバラ所在のＡｓｃｅｎｔｉａｌ  Ｓｏｆｔｗａｒｅ社によって提供されるＤａｔａＳｔａｇｅサーバ等のサーバを含む１つ又は複数のデータ統合プラットフォーム２７０２を含むことができる。データ統合プラットフォーム２７０２は、ＲＴＩサーバ２８０２へ及びＲＴＩサーバ２８０２からの要求を整理するデータ統合プラットフォーム２７０２上で実行されるプロセスである、ＲＴＩエージェント３１３２を含む、ＲＴＩサーバ２８０２との相互作用をサポートするファシリティを含むことができる。したがって、プロセス・プーリング・ファシリティ３１０２が特定のマシンをリアルタイム・データ統合ジョブのためのデータ統合プラットフォーム２７０２として選択すると、それは、要求をそのデータ統合プラットフォーム２７０２のためのＲＴＩエージェント３１３２に渡すことができる。データ統合プラットフォーム２７０２上では、上述のデータ統合ジョブ１９００のような１つ又は複数のデータ統合ジョブ３１３４が実行されていてもよい。データ統合ジョブ３１３４は、任意的に、呼び出し時に開始される必要があるのではなく常時オンになっていてもよい。例えば、データ統合ジョブ３１３４は、処理時に新しい接続を開く必要があるのではなくデータが来てデータ統合ジョブ３１３４を呼び出すのを待機する、データベース、ウェブ・サービス等との既にオープンされた接続を有することができる。したがって、既にオンになっているデータ統合ジョブ３１３４のインスタンスを、ＲＴＩエージェント３１３２によって呼び出し、ファイル、データ行、データ・バッチ等とすることができるＲＴＩサーバ２８０２からの特定の入力を用いて、データ統合ジョブ３１３４の実行と共に、直ちに開始することができる。
【０１３３】
各々のデータ統合ジョブ３１３４は、ＲＴＩ入力段階３１３８及びＲＴＩ出力段階３１４０を含むことができる。ＲＴＩ入力段階３１３８は、ＲＴＩエージェント３１３２からデータ統合ジョブ３１３４への入口ポイントであり、ＲＴＩ出力段階３１４０は、ＲＴＩエージェント３１３２に戻る出力段階である。ＲＴＩ入力及び出力段階に関しては、データ統合ジョブ３１３４は、プラットフォームに依存しないビジネス論理部分とすることができる。ＲＴＩサーバ２８０２は、各々のＲＴＩデータ統合ジョブ３１３４のＲＴＩ入力段階３１３８についてどんな入力が要求されているかを承知している。例えば、所与のデータ統合ジョブ３１３４のビジネス論理が顧客の姓及び年齢を入力とする場合には、ＲＴＩサーバ２８０２は、そのデータ統合ジョブ３１３４のＲＴＩ入力段階３１３８への、ストリング及び整数の形の入力を渡すことができる。ＲＴＩ入力段階は、入力を受け、それを、どんな固有のアプリケーション・コードをも用いてデータ統合ジョブ３１３４を実行するのに適したフォーマットにする。
【０１３４】
実施形態において、本明細書において説明される方法及びシステムは、設計者がデータ統合プロセスからＲＴＩサービス・インターフェースへの自動のカスタマイズ可能なマッピング機構を定義することを可能にする。特に、ＲＴＩコンソール３００２は、設計者がデータ統合プロセスについての自動化したサービス・インターフェースを作成することを可能にする。中でも、ユーザ（又は規則のセット若しくはプログラム）が特定の目的に適合するように汎用サービス・インターフェースをカスタマイズすることを可能にする。変形等のトランザクションのフローを有するとともに、ＲＴＩ入力段階３１３８及びＲＴＩ出力段階３１４０を有するデータ統合ジョブが存在する場合には、該ジョブについてのメタデータは、例えば、該ジョブのコンポーネント又は段階間で交換されるデータのフォーマットを指定することができる。テーブル定義は、ＲＴＩ入力段階３１３８が受け取ることを期待するものを記述する、すなわち、例えば、データ統合ジョブの入力段階は、１つのストリング及び２つの整数の、３つの呼び出しを期待することができる。一方、データ統合ジョブのフローの終了時に、出力段階は、形式（ｓｔｒｉｎｇ，ｉｎｔｅｇｅｒ）の呼び出しを返すことができる。ユーザが、このジョブを使用することになっているＲＴＩサービスを作成する場合には、定義される動作が、入力においてどんなデータが期待されるか及び出力においてどんなデータが返されることになるかを反映することが望ましい。通常のオブジェクト指向プログラミング法と比較すると、ジョブが、ＲＴＩ入力段階３１３８に関連したＲＴＩ入力テーブル３４１４及びＲＴＩ出力段階３１４０に関連したＲＴＩ出力テーブル３４１８等のメタデータに基づく動作のシグニチャを定義する場合には、サービスはクラスに対応し、動作は方法に対応する。
【０１３５】
例として、ユーザは、ＲＴＩ入力テーブル３４１４において特定のＲＴＩ動作についての入力引数として（ｓｔｒｉｎｇ，ｉｎｔ，ｉｎｔ）を定義することができる。ｓｔｒｕｃｔ：（ｓｔｒｉｎｇ；ｉｎｔ）としてＲＴＩ出力テーブル３４１８内の出力を定義することができる。実施形態において、入力及び出力は単一のストリングとすることができる。他のフィールド（より多くの呼び出し）が存在する場合には、ユーザは、入力マッピングをカスタマイズすることができる。１５の整数を用いて動作する代わりに、ユーザは、Ｏｐｔ（ｓｔｒｕｃｔ（ｓｔｒｉｎｇ，ｉｎｔ，ｉｎｔ））：ｓｔｒｕｃｔ（ｓｔｒｉｎｇ，ｉｎｔ）のようなＳＴＲＵＣＴ（多数のフィールドを有する複合タイプ，複合動作に対応する各々のフィールド）を作成することができる。ユーザは、入力パラメータを、１つの複合入力タイプとしてグループ化されるようにグループ化することができる。結果として、配列を処理することが可能になり、その結果、トランザクションは、Ｏｐｔ１（ａｒｒａｙ（ｓｔｒｕｃｔ（ｓｔｒｉｎｇ，ｉｎｔ，ｉｎｔ）））として定義される。例えば、入力構造は、（Ｎａｍｅ，ＳＳＮ，ａｇｅ）とすることができ、出力構造は、（Ｎａｍｅ，ｂｉｒｔｈｄａｙ）とすることができる。配列は、ＲＴＩサービスを介して渡すことができる。終了時に、このサービスは、配列についての対応する応答を出力する。配列は、単一のトランザクションへの多数行のグループ化を可能にする。ＲＴＩコンソール３００２においては、チェックボックス５３０８は、配列をイネーブルにするためにユーザが「多数行を受け入れる」ことを可能にする。入力を定義するためには、ＲＴＩコンソール３００２において特定の行をチェックし又はチェック解除して、それが入力として動作のシグニチャの一部になるかを決定することができる。ユーザは、動作に対して特定の入力列を公開することを望まない場合があり（例えば、それが特定の動作について常に同じとなることがあるため）、その場合には、ユーザは、入力についての静的値を固定して、動作が静的値ではない変数のみを確認するようにすることができる。
【０１３６】
同様のプロセスは、ＲＴＩコンソールを用いて出力の特定の列を無視する等の動作、すなわち特定の動作のシグニチャの一部として格納できるアクションについて出力をマッピングするために使用することができる。
【０１３７】
実施形態において、ＲＴＩサーバ２８０２からのデータ統合プラットフォーム２７０２を通過するＲＴＩサービス要求は、ファイルのバッチ、すなわち大きなセットでではなく、個々の要求のパイプラインで供給される。パイプライン・アプローチは、個々のサービス要求がデータ統合ジョブ３１３４の既に実行しているインスタンスによって直ちにピックアップされることを可能にして、エンタープライズにバッチ統合ジョブの完了を待機するように要求するのではなく、迅速なリアルタイムでのデータ統合をもたらす。パイプラインを通過するサービス要求は、ウェーブとして考えることができ、各々のサービス要求は、ウェーブ・マーカの発端及びウェーブ・マーカの終端によってマーク付けすることができ、その結果、ＲＴＩエージェント３１３２は、特定のサービス要求についての新しいサービス要求の開始及びデータ統合ジョブ３１３４の完了を認識する。
【０１３８】
ウェーブ・マーカの終端は一連の作業単位を表し、各々の単位はウェーブ・マーカの終端によって分離されている。ウェーブ・マーカの終端を用いることにより、このシステムが同じサービスを用いてバッチ動作とリアルタイム動作との両方を実行することが可能になる。バッチ環境においては、データ統合ユーザは、一般的には、データ移動はリソース集約的であるため、所与の段階における最大処理量を実行するというようにデータ・フローを最適化し、まとめて次の段階に伝送して、データを移動しなければならない回数を減少させることを望んでいる。これとは対照的に、リアルタイム・プロセスにおいては、データ統合ユーザは、フローを通してできるだけ迅速に各々のトランザクション要求を移動させることを望む場合がある。ウェーブ・マーカの終端は、（システムが一般的にバッチ・モードでそうするように）処理を開始するのにより多くのデータを待機するのではなく、データ統合ジョブに対する特定の要求をフラッシュすることを知らせる信号をジョブ・インスタンスに送る。ウェーブ・マーカの終端の利点は、所与のジョブ・インスタンスが同時に多数のトランザクションを処理することができ、その各々がウェーブ・マーカの終端によって他のトランザクションから分離されることである。ウェーブ・マーカの２つの終端間にあるのは、いずれもトランザクションである。
【０１３９】
パイプライン化は、多数の要求がサービスによって同時に処理されることを可能にする。プロセス・プーリング・ファシリティ３１０２のロード・バランシング・アルゴリズムは、データ統合ジョブの新しいインスタンスを開始する前に、（パイプラインを埋める）その最大容量まで単一のインスタンスを埋めることができる。リアルタイム統合モデルにおいては、（システムが一般的にバッチを処理する前にバッファを埋めるバッチ・モードとは違って）再呼び出しをリアルタイムで処理するときに、ウェーブ・マーカの終端により、多数のトランザクションがデータ統合ジョブのフローの中にパイプライン化されることが可能となる。ロード・バランシングについては、依然として未使用の処理能力を有する状態でジョブがビジーとなり得るため、バランスは、ジョブがビジーであるかどうかだけに基づくものではないことが望ましい。
【０１４０】
一方、パイプラインの容量がその最大に達する前に新しいデータ統合ジョブのインスタンスを開始することを防止することが望ましい場合がある。これは、ロード・バランシングが動的であり、付加的な特性に基づく必要があることを意味する。ＲＴＩエージェント・プロセスにおいて、ＲＴＩエージェント３１３２は、ＲＴＩサーバ２８０２によってアクセスされる各々のデータ統合プラットフォーム２７０２上で実行するインスタンスについて承知している。ＲＴＩエージェント３１３２においては、ユーザは、データ統合プラットフォーム２７０２上で実行するジョブ・インスタンスの各々についてバッファを作成することができる。種々のパラメータをＲＴＩコンソール３００２に設定して、動的なロード・バランシングを支援することができる。１つのパラメータは、ジョブ・インスタンスによる処理を待機するバッファに定めることができるバッファの最大サイズ（要求数において実測される）である。一定の処理能力をもたらすことになる単一の要求だけを有することが好ましい場合もあるが、実際には、通常、処理能力において違いがあり、その結果、ジョブ・インスタンス毎にバッファを有することが望ましい場合が多い。第２のパラメータは、パイプラインしきい値であり、それは、どの時点で新しいジョブ・インスタンスを開始することが望ましいものとなり得るかを表すパラメータである。実施形態において、遅延がトラフィックの異常増加をもたらす可能性があるため、しきい値は、新しいインスタンスを自動的に開始するのではなく、警告標識を生成することができる。第３のパラメータは、特定の時間より長い時間にわたってしきい値を超える場合に、新しいインスタンスが開始されると判断することができる。要するに、バッファ・サイズ、しきい値及びインスタンス開始の遅延等のパイプライン化特性は、ユーザが制御することができるパラメータである。
【０１４１】
実施形態において、データ統合プラットフォーム２７０２の全ては、Ａｓｃｅｎｔｉａｌ  Ｓｏｆｔｗａｒｅ社からのＤａｔａＳｔａｇｅサーバを用いるマシンである。それらの各々にデータ統合ジョブ３１３４が存在する場合があり、それはＤａｔａＳｔａｇｅジョブとなる場合がある。ＲＴＩ入力段階３１３８の存在は、バッチ処理時にジョブ・インスタンスが開始されるバッチ・モードと違って、ジョブ３１３４が常時アップされ、実行され、要求を待機することを意味する。動作においては、データ統合ジョブ３１３４は、データベース、ウェブ・サービス等とのその必要な接続の全てと共にアップされ実行され、ＲＴＩ入力段階３１３８は、リスニングし、何らかのデータが入ってくるのを待機する。トランザクション毎に、ウェーブ・マーカの終端は、データ統合ジョブ３１３４の段階を通して移動することができる。ＲＴＩ入力段階３１３８及びＲＴＩ出力段階３１４０は、データ統合ジョブ３１３４とＲＴＩサービス環境のその他のものとの間の通信ポイントである。
【０１４２】
例えば、ビジネス・エンタープライズのコンピュータ・アプリケーションは、トランザクション要求を送ることができる。ＲＴＩサーバ２８０２は、ＲＴＩデータ統合ジョブ３１３４が、実施形態において、Ａｓｃｅｎｔｉａｌ  Ｓｏｆｔｗａｒｅ社からのＤａｔａＳｔａｇｅサーバである種々のデータ統合プラットフォーム２７０２上で実行されていると判断することができる。ＲＴＩサーバ２８０２は、コンピュータ・アプリケーションから、ＲＴＩ入力段階３１３８が特定のデータ統合ジョブ３１３４について確認する必要があるものの中に、要求内のデータをマッピングすることができる。ＲＴＩエージェント３１３２は、データ統合プラットフォーム２７０２の各々の上で実行されているものを追跡することができる。ＲＴＩエージェント３１３２は、ＲＴＩ入力段階３１３８及びＲＴＩ出力段階３１４０と共有されたメモリを用いて動作することができる。ＲＴＩエージェント３１３２は、ウェーブ・マーカの終端を用いてトランザクションにマーク付けし、トランザクションをＲＴＩ入力段階３１３８に送り込み、データ統合ジョブ３１３４が完了する際にウェーブ・マーカの終端を認識し、ＲＴＩ出力段階３１４０から結果を取り出し、トランザクションを開始したコンピュータ・アプリケーションに結果を送り戻すことができる。
【０１４３】
本明細書において説明されるＲＴＩ方法及びシステムは、データ統合プロセスが実行時バインディング（ｌａｔｅ  ｂｉｎｄｉｎｇ）多重アクセス・プロトコルによってアクセス可能な管理された抽象サービスのセットとして公開されることを可能にする。Ａｓｃｅｎｔｉａｌプラットフォーム等のデータ統合プラットフォーム２７０２を用いて、ユーザは、データ統合プロセス（一般的には、グラフィカル・ユーザ・インターフェースにおいてフローで表される）を作成することができる。次に、ユーザは、種々のアプリケーションによって、リアルタイムで同期的又は非同期的に呼び出すことができるサービスとしてフローによって定義されたプロセスを公開することができる。ＲＴＩサービスを最大限に利用するためには、ＪＭＳキュー（プロセスがデータをキューに送ることができ、アプリケーションがキューからデータを検索することができる）、Ｊａｖａクラス、及びウェブ・サービス等の種々のプロトコルをサポートすることが望ましいであろう。バインディング多重アクセス・プロトコルは、種々のアプリケーションがＲＴＩサービスにアクセスすることを可能にする。バインディングがアプリケーション別のプロトコル要件を処理するため、ＲＴＩサービスは、抽象サービスとして定義することができる。抽象サービスは、特定のプロトコル又は環境によってではなく、サービスが何を実行しているかによって定義される。より一般的には、ＲＴＩサービスを、ディレクトリにおいて発行し、多数のユーザと共有することができる。
【０１４４】
ＲＴＩサービスは、多数の動作を有することができ、各々の動作はジョブによって実行することができる。サービスを作成するために、ユーザは、特定のウェブ・サービス、ｊａｖａクラス等について承知している必要がない。ＲＴＩサービスを介して公開されることになるデータ統合ジョブを設計するときに、ユーザは、サービスがどのように呼び出されることになるかを承知している必要がない。ユーザは、ＲＴＩサービスを構築することができ、次いで、所与のデータ統合要求について、システムはＲＴＩサービスを実行することができる。何らかの時点で、ユーザは、ＲＴＩサービスを１つ又は複数のプロトコルに結合し、該プロトコルは、ウェブ・サービス、Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  Ｂｅａｎ（ＥＪＢ）、ＪＭＳ、ＪＭＸ、Ｃ＋＋、又はサービスを具体化できる多数のプロトコルのいずれかとすることができる。特定のＲＴＩサービスについては、幾つかのバインディングが存在する場合があり、その結果、該サービスは、異なるプロトコルを有する異なるアプリケーションによってアクセスすることができる。
【０１４５】
ＲＴＩサービスが定義されると、ユーザは、バインディング又は多数のバインディングを付加することができ、その結果、異なるプロトコルを用いる多数のアプリケーションが同時にＲＴＩサービスを呼び出すことができる。通常のＷＳＤＬ文書においては、サービス定義は、ポート・タイプを含むが、必然的にサービスがどのようにして呼び出されるかを伝える。ユーザは、特定のＷＳＤＬ定義済みジョブに付加できる全てのタイプを定義することができる。例としては、ＳＯＡＰ  ｏｖｅｒ  ＨＴＴＰ、ＥＪＢ、Ｔｅｘｔ  Ｏｖｅｒ  ＪＭＳ及びその他が挙げられる。例えば、ＥＪＢバインディングを作成するために、ＲＴＩサーバ２８０２は、Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  ＢｅａｎのＪａｖａソース・コードを生成することになる。サービスのデプロイにおいては、ユーザは、ＲＴＩコンソール３００２を用いて、コンパイル・コードといった特性を定義し、Ｊａｖａアーカイブ・ファイルを作成し、次いで、それをエンタープライズ・アプリケーションのユーザに与えて、ユーザのＪａｖａアプリケーション・サーバ内にデプロイし、その結果、各々の動作がＪａｖａクラスの１つのメソッドとなる。結果として、ＲＴＩサービス名とＪａｖａクラス名との間に１対１対応が存在し、並びに、ＲＴＩ動作名とＪａｖａメソッド名との間にも対応が存在し得る。その結果、Ｊａｖａアプリケーション・メソッドの呼び出しが、ＲＴＩサービス内の動作を呼び出すことになる。その結果、ＳＯＡＰ  ｏｖｅｒ  ＨＴＴＰを用いるウェブ・サービスとＥＪＢを用いるＪａｖａアプリケーションとが、ＲＴＩサービスを介して全く同じデータ統合ジョブに進むことができる。入口ポイント及び出口ポイントは、特定のプロトコルを必要とせず、そのため同じジョブが多数のプロトコルで動作することがある。
【０１４６】
ＳＯＡＰ及びＥＪＢバインディングが同期プロセスをサポートする一方で、他のバインディングは、非同期プロセスをサポートする。例えば、ＳＯＡＰ  ｏｖｅｒ  ＪＭＳ及びＴｅｘｔ  ｏｖｅｒ  ＪＭＳは、非同期である。例えば、実施形態において、メッセージをキューに付加することができる。ＲＴＩサービスは、入力キューへの非同期入力を監視し、非同期的にその出力を別のキューに送ることができる。
【０１４７】
図３５は、ＲＴＩサービスのための内部アーキテクチャの概略図３２００である。このアーキテクチャは、Ｊ２ＥＥ準拠サーバであるＲＴＩサーバ２８０２を含む。ＲＴＩサーバ２８０２は、データ統合プラットフォーム２７０２のＲＴＩエージェント３１３２と相互作用する。プロセス・プール・ファシリティ３１０２は、データ統合ジョブが渡されることになる適切なデータ統合プラットフォームのマシン２７０２を選択することによってプロジェクトを管理する。ＲＴＩサーバ２８０２は、データ統合ジョブを処理するためのジョブ・プール・ファシリティ３２０２を含む。ジョブ・プール・ファシリティ３２０２は、ジョブ及び各々が利用可能かどうかについてのステータスを列挙する、ジョブ・リスト３２０４を含む。ジョブ・プール・ファシリティは、キャッシュ・マネージャ及びＲＴＩサーバ２８０２に渡されるジョブを処理する動作ファシリティを含むことができる。ＲＴＩサーバ２８０２は、該ＲＴＩサーバ２８０２を介してアクセスできるサービスのためのレジストリにＷＳＤＬ記述を発行する等の、適切な公開又は専用レジストリとの相互作用を管理するためのレジストリ・ファシリティ３２２０をさらに含むことができる。
【０１４８】
ＲＴＩサーバ２８０２は、ＥＪＢコンテナ３２０８をさらに含むことができ、該コンテナは、Ｊ２ＥＥに従う、ＲＴＩサービスのためのＲＴＩセッション・ビーン・ランタイム・ファシリティ３２１０を含む。ＥＪＢコンテナ３２０８は、メッセージ・ビーン３２１２、セッション・ビーン３２１４、及びＲＴＩサービスを使用可能にするエンティティ・ビーン３２１８を含むことができる。ＥＪＢコンテナ３２０８は、ＪＭＳインターフェース３２２２、ＥＪＢクライアント・インターフェース３２２４、及びＡｘｉｓインターフェース３２２８を含む種々のインターフェースを容易にすることができる。
【０１４９】
図３６を参照すると、ＲＴＩサーバ２８０２とＲＴＩエージェント３１３２との相互作用のアスペクトは、ＲＴＩエージェント３１３２が、次にデータ統合ジョブのためにジョブ・インスタンス３３０２に渡されるサービス要求のパイプラインを管理することである。ジョブ・インスタンス３３０２は、データ統合プラットフォーム２７０２上で実行され、ＲＴＩ入力段階３１３８及びＲＴＩ出力段階３１４０を有する。必要に応じて、１つより多くのジョブ・インスタンス３３０２が、特定のデータ統合プラットフォーム２７０２上で実行されている場合がある。ＲＴＩエージェント３１３２は、サービス要求がＲＴＩサーバ２８０２からそれに渡される際のジョブ・インスタンスのオープン及びクローズを管理する。通常のバッチ・タイプのデータ統合とは対照的に、ＲＴＩサービスのための各々の要求は、ジョブのパイプライン３３０４においてＲＴＩサーバ２８０２、ＲＴＩエージェント３１３２、及びデータ統合プラットフォーム２７０２を介して伝わる。パイプライン３３０４は、例えば、パイプライン３３０４の種々のパラメータを設定することによって、ＲＴＩエージェント３１３２において管理することができる。例えば、パイプライン３３０４は、バッファを有することができ、そのサイズは、最大のバッファ・サイズ・パラメータ３３０８を用いてユーザによって設定することができる。管理者は、ＲＴＩエージェント３１３２が新しいジョブ・インスタンス３３０２を開始する前に受け入れることになる遅延時間、すなわち、インスタンスの開始遅延３３１０等の他のパラメータを設定することもできる。管理者はまた、パイプラインが所与のジョブ・インスタンス３３０２を受け入れることができるサービス要求数を表す、パイプラインについてのしきい値３３１２を設定することもできる。
【０１５０】
ＲＴＩサービスは、検索可能なレジストリにおいて管理することができる。ＲＴＩサービスは、該サービスに付加されたプロトコルを使用している、それに付加された書き込み済みアプリケーションを有することができる。例えば、顧客を付加し、顧客を削除し、又は顧客の住所を確認する等の顧客管理動作は、既知のウェブ・サービス・プロトコルを使用することもできるし、或いはそれに付加することもできる。顧客管理アプリケーションは、該アプリケーションがＲＴＩサービスのクライアントである場合には、ＲＴＩサービスに付加することができる。換言すれば、事前定義アプリケーションは、該アプリケーションがＲＴＩサービスを呼び出すか又は使用する場合には、ＲＴＩサービスに付加することができる。結果としては、ユーザがオンデマンドのサービスを特定のデバイスにダウンロードし、該デバイスから（該デバイスの上で）それを実行することができる。
【０１５１】
例えば、ポケットＰＣ等のモバイル・コンピューティング・デバイスは、ホスティング環境を有することができる。モバイル・コンピューティング・デバイスは、多数のダウンロードされたアプリケーション及び利用可能なアプリケーションと共に、モバイル・データ統合サービスのためのアプリケーションのようなアプリケーションを有することができる。モバイル・デバイスは、アプリケーションをブラウズすることができる。それが、ＲＴＩサービスに付加されているアプリケーションをダウンロードするときには、アプリケーションは、モバイル・デバイスに無線でダウンロードされるが、それは、同時にそれに付加されたＲＴＩサービスを呼び出す。結果として、ユーザは、同時にエンタープライズからリアルタイムで統合データにアクセスできる状態で、モバイル・アプリケーションのデプロイを有することができる。したがって、エンタープライズがユーザに最新のデータを持たせることから利益を得る場合に、ＲＴＩサービスは、非常に効果的なモデルをモバイル・コンピューティング・アプリケーションに提供することができる。
【０１５２】
一般的な形のエンタープライズ・コンピュータ・システム１３００のためのデータ統合システム１０４の種々の態様をここで説明してきたが、種々の市販のアプリケーション及び他のアプリケーションを包含するデータ統合システム１０４についての幾つかの例をここで提供する。
【０１５３】
図３７に示すように、ＲＴＩサービス３４１２を用いるデータ統合システム１０４は、金融サービス業界と関連させて使用することができる。リアルタイム・データ統合は、金融サービス業界におけるビジネス・エンタープライズが、ともすれば存在することになるリスクを回避することを可能にする。例えば、金融機関３４０２の１つの支店が消費者３４０４の貸付申し込み３４１０を扱う間、別の支店が株式３４０８の取引を実行する場合には、該機関３４０２は、貸付を行う際に快諾できる以上の多くのリスクを負う可能性がある。リアルタイム・データ統合は、所与の取引が実行されるときに金融機関が消費者３４０４のより正確なプロファイルを有することを可能にする。したがって、ＲＴＩサービス３４１２は、貸付申し込みに関連したコンピュータ・アプリケーションが消費者３４０４の株式勘定についての最新の詳細データを要求することを可能にし、この株式勘定は、株式取引３４０８を扱う金融機関３４０２のアプリケーションと関連したデータからＲＴＩサービス３４１２を介して検索することができる。もちろん、金融機関ばかりでなく、多くの企業の財務部は、リアルタイム・データ統合から利益を得ることができる同様の財務的な決定を下すことができる。
【０１５４】
ビジネス・エンタープライズは、各種の環境において及び多くの目的で、本明細書において説明されるＲＴＩサービス等の、リアルタイム・データ統合サービスから利益を得ることができる。一例は、動作報告及び分析の領域にある。中でも、ＲＴＩサービスは、大量のバッチ・データを伴うリアルタイム・トランザクション分析についての整理統合された表示を提供することができる。図３８を参照すると、エンタープライズ・データ・ウェアハウス、データマート、データベース等のような、ビジネス・エンタープライズの重要なデータ・ソース３５０４の全てに対してリアルタイムで呼び出すＲＴＩサービス３５０２を構成することができる。次に、ＲＴＩサービス３５０２は、整合性のあるデータ・レベルの変形を、データ・ソース３５０４からのデータに適用することができる。このように使用されると、ＲＴＩサービスは、ソース・システム分析を自動化し、伝送途中のリアルタイムのデータ品質管理を提供することもできる。金融サービス領域の詐欺検出及びリスク分析、在庫管理、小売領域の予測及びマーケット・バスケット分析、金融領域の順守活動、並びに、小売領域の減少分析及びスタッフ・スケジューリング等のこうしたＲＴＩサービスから利益を得ることができるビジネス・エンタープライズの多くの動作報告又は分析プロセスが存在する。１つより多くのソースからのデータから利益を得ることができる如何なる分析又は報告タスクも、同様に、明確に定義されたデータ統合ジョブに従ってリアルタイムで実行中にデータを検索し統合するＲＴＩサービスから利益を得ることができる。
【０１５５】
本明細書において説明されるようなＲＴＩサービスから利益を得ることができる別のクラスのビジネス・プロセスは、レコード・データベースのマスタ・システムを作成することを含むビジネス・プロセスのセットである。図３６を参照すると、エンタープライズは、顧客３６０４等の特定のトピックについてのデータを含む多くのデータベースを有することができる。例えば、顧客の情報は、販売データベース３６０８、ＣＲＭデータベース３６１０、サポート・データベース３６１２及び金融データベース３６１４において見ることができる。実際には、実ビジネス・エンタープライズにおいては、これらの部門の各々がそれら自身の多数のデータベースを有することは珍しくない。データ統合努力からの所望の利点の１つは、多くのデータベースにわたるデータ整合性を確立することである。例えば、顧客の住所変更等のトリガ・イベント３６１８については、ビジネスの１つのエンティティのみが最初に情報を受け入ることができるが、全ての異なる部門が変更にアクセスできることが好ましいであろう。ＲＴＩサービスは、ネイティブ・データベースにおける変更を要求することなく、レコードのマスタ・システムを作成する可能性を与える。したがって、異なるプロトコルを使用するものを含む異種の情報のサイロをリンクするＲＴＩプロセス３６０２を定義することができる。多数のバインディングをサポートすることによって、ＲＴＩプロセスは、異なるフォーマットの種々のアプリケーションへの入力を受け入れ、出力をそれらに提供することができる。一方、ＲＴＩサービスのビジネス論理は、全ての入力データについてのデータの標準化を実行し、全てのデータについてのメタ・リネージュ情報を提供し、異種のデータ・ソース間のリンケージを維持する等の、データ統合タスクを実行することができる。結果は、ＲＴＩサービスとしてアクセスできる、リアルタイムの最新のマスター・レコード・サービスである。
【０１５６】
マスター・レコードから利益を得ることができるアプリケーションの多くの例が存在する。金融サービスにおいては、機関は、顧客マスター・レコード、並びに、全エンタープライズにわたるセキュリティ・マスター・レコードを有することを望む場合がある。通信、保険、及び膨大な顧客を扱う他の業界においては、マスター・レコード・サービスは、整合請求処理、クレーム処理等をサポートすることができる。小売エンタープライズにおいては、マスター・レコードは、ＰＯＳアプリケーション、ウェブ・サービス、顧客マーケティング・データベース、及び在庫同期化機能をサポートすることができる。製造及び物流作業においては、ビジネス・エンタープライズは、設計、製造、在庫、販売、返品、サービス義務、保証情報等についての情報のような、異なるソースからの製品に関するデータについてのマスター・レコード・プロセスを確立することができる。他の場合には、ビジネスは、ＲＴＩサービスを用いて、ＥＲＰインスタンスの整理統合をサポートすることができる。マスター・レコードを具体化するＲＴＩサービスにより、異なるデータ・ソースが互いに通信できるようにするためにネイティブ・アプリケーションへのコード化を必要としないデータ統合の利益が与えられる。
【０１５７】
図４０の実施形態は、マスター顧客データベース３７００を提供する。マスター顧客データベース３７００は、内部システムと外部システムとの両方を含む、顧客についてのあるデータを含む多くの異なるデータベースにわたる統合顧客表示を含むことができる。マスター顧客データベースは、全ての異なるソースから顧客についての「最適な」データを含むことになるマスタ・システムとなる。マスター顧客データベースを確立するために、データ統合は、データの一致、標準化、整理統合、変形及び強化を必要とし、これらの全てがＲＴＩサービス３７０２によって実行される。あるデータをバッチ・モードで処理することができる一方で、新しいデータは、急速に変化しているデータが利用可能な最も正確なデータであることを保証するために、リアルタイムで処理される必要がある。マスター顧客データベースは、小売、金融サービス、製造、物流、専門サービス、医療及び製薬、通信、情報技術、バイオテクノロジ、又は多くのその他を含む、ほぼあらゆる分野におけるビジネス・エンティティによって使用され得る。同様のデータ管理は、協会、学術機関、政府機関、又はその他のあらゆる大きな組織若しくは機関について望ましいものとなり得る。
【０１５８】
本明細書において説明されるＲＴＩサービスはまた、変形、検証及び標準化ルーチン等のデータ統合タスクをトランザクション・ビジネス・プロセスに公開する多くのサービスをサポートすることもできる。したがって、ＲＴＩサービスは、実行中のデータ品質、強化及び変形を提供することができる。アプリケーションは、ビジネス・エンタープライズ全体にわたる標準ビジネス論理の再使用を促進する、サービス指向アーキテクチャを介してこうしたサービスにアクセスすることができる。図４１を参照すると、上述のＲＴＩサービス２７０４とすることができるＲＴＩサービス３８０２は、ＡｓｃｅｎｔｉａｌのＤａｔａＳｔａｇｅプラットフォーム等のデータ統合プラットフォーム３８０４によって具体化されるもののような、データ変形、検証及び標準化ルーチンのセットを具体化する。アプリケーション３８０８は、実行中にデータ統合タスクを達成するために、ＲＴＩサービス３８０２を呼び出すイベントをトリガすることができる。
【０１５９】
多くのビジネス・プロセスが、リアルタイム変形、検証及び標準化ルーチンから利益を得ることができる。これは、テレマーケティング業界におけるコール・センターのアップセリング及びクロスセリング、金融業界における再保険のリスク検証、小売業におけるＰＯＳ会計の作成、並びに、医療及び情報技術サービス等の分野における強化されたサービス品質を含むことができる。
【０１６０】
図４２を参照すると、リアルタイム統合サービスから利益を得ることができるビジネス・プロセスの例は、損害保険等の保険証券についての引受業務等の引受プロセス３９００である。資産引受プロセスは、テキスト・ファイル３９０２、スプレッドシート３９０４、ウェブ・データ３９０８等のような、異なるタイプの様々な異なるデータ・ソースへのアクセスを必要とする場合がある。データは、不整合となり、エラーを起こしやすい場合がある。補助データを得るためのリードタイムが、引受決定を遅らせる。メイン引受データベース３９１０は、あるデータを含むことができるが、他の関連データは、環境データベース３９１２、占有データベース３９１４及び地理データベース３９１８等の、種々の他のデータベースに含めることができる。結果として、引受決定は、異なるソース及びデータベースからのデータが決定時に統合されない場合には、欠陥のある仮定に基づいて下されることがある。
【０１６１】
リアルタイム統合サービスを用いて種々のデータ・ソース３９０２、３９０４、３９０８、３９１２、３９１４、３９１８へのアクセスを統合することによって、引受決定の速度及び正確さを改善することができる。図４３を参照すると、ＲＴＩサービスは、引受決定の品質を改善することができる。テキスト・ファイル、スプレッドシート及びウェブ・ファイルは、各々をＲＴＩサービスに入力することができ、該ＲＴＩサービスは、ウェブ・インターフェース３９０２等を介してＲＴＩサーバ３９０４上で実行される上述のＲＴＩサービス２７０４のいずれかとすることができる。環境データベース３９１２、占有データベース３９１４、及び地理データベース３９１８、並びに、引受データベース３９１０は、全てデータ統合ジョブ４０１２によって呼び出すことができ、該データ統合ジョブは、Ａｓｃｅｎｔｉａｌ  Ｓｏｆｔｗａｒｅ社のＱｕａｌｉｔｙＳｔａｇｅ製品によって具体化されるようなＣＡＳＳプロセス４０１０及びＷａｖｅプロセス４００８を含むことができる。ＲＴＩサービスは、それらのデータベースの各々についてプロトコルのためのバインディングを含むことができる。この結果は、全てがＲＴＩサービスによってイネーブルとなる、スケジュールの全てからの現在の情報、並びに、異なるデータベースから利益を得る引受決定の統合プロセスである。例えば、引受プロセスは、現在の住所情報を必要とし、上述のようなＲＴＩ統合ジョブは、異なるソースから何千もの住所を迅速に統合することができる。
【０１６２】
エンタープライズ・データ・サービスもまた、本明細書に説明されるように、データ統合から利益を得ることができる。特に、ＲＴＩ統合プロセスは、標準的な整理統合されたデータ・アクセス及び変形サービスを提供することができる。ＲＴＩ統合プロセスは、内部と外部の両方の、異なるデータ・ソースへの仮想アクセスを提供することができる。ＲＴＩ統合プロセスはまた、実行中のデータの品質強化及び変形を提供することができる。ＲＴＩ統合プロセスはまた、該プロセスを通過する全てのメタデータを追跡することもできる。図４４を参照すると、１つ又は複数のＲＴＩサービス４１０２、４１０４は、データ・サービスを提供するために、エンタープライズ内で動作することができる。それらの各々が、データ統合ジョブ４１０８をサポートすることができる。データ統合ジョブ４１０８は、エンタープライズの内部と外部の両方の、異なる固有言語及びプロトコルを有する異種のデータ・ソースとすることができるデータベース４１１０にアクセスすることができる。エンタープライズ・アプリケーションは、ＲＴＩサービス４１０２、４１０４を介してデータ統合ジョブ４１０８にアクセスすることができる。
【０１６３】
図４５を参照すると、リアルタイム統合サービスから利益を得ることができる別のビジネス・エンタープライズは、トラック輸送業者等の分散エンタープライズである。トラック輸送業者は、場所から場所へと商品を運ぶ複数のトラック４２０２を扱うことがある。トラック４２０２は、トラック４２０２が或る場所に到着するときにトラック４２０２がログインすることを可能にするアプリケーションのような単純なアプリケーション４２０４を実行する、リモート・デバイスを有することがある。トラック４２０２のドライバは、ドライバがチェックポイントへの到着といったデータを入力するために使用できるＬａｎｄＳｔａｒサテライト・システム・デバイス等の、モバイル・コンピュータ・デバイスを有することが多い。エンタープライズそれ自体は、運賃勘定アプリケーション４２０８、エージェント・プロセス４２１０、及びチェック呼び出しアプリケーション４２１２といった、幾つかのコンピュータ・アプリケーション又はデータベースを有することがある。しかしながら、これらのネイティブ・アプリケーションは、有用な情報をドライバに提供することができるプロセスを処理するが、一般に、トラック４２０２のモバイル・デバイス上で動作するようにはコード化されていない。例えば、ドライバが移動をスケジューリングできることを望む場合があるが、移動スケジューリング・アプリケーションは、トラック４２０２のモバイル・デバイスに常駐していないデータ（どんな他の移動が完了したか等）を要求する場合がある。
【０１６４】
図４６を参照すると、ＲＴＩサービス・モデルを用いて、一連のデータ統合サービス４３０２を、ドライバがモバイル・デバイスを用いるなどしてウェブ・サービスとしてアクセスできるアプリケーション４３１０をサポートするように定義することができる。例えば、アプリケーション４３１０は、ドライバがトラック輸送業者・エンタープライズからのデータを用いて彼のスケジュールを更新することを可能にすることができる。ＲＴＩサーバ３９０４は、アプリケーション４３１０がウェブ・サービス４３０８としてアクセスするデータ統合サービス４３０２からデータ統合ジョブを発行する。データ統合サービス４３０２は、運賃勘定アプリケーション４２０８及びエージェント・プロセス４２１０からのデータを含む、どんな他のジョブが既に完了したかといった、エンタープライズからのデータを統合することができる。上述のＲＴＩサービス２７０４のいずれかとすることができるＲＴＩサービスは、例えばスケジューリング・アプリケーションを提供するために、ドライバのアプリケーションのためのスマート・グラフィカル・ユーザ・インターフェースとして機能することができる。ドライバは、アプリケーションをモバイル・デバイスにダウンロードして、サービスを呼び出すことができる。結果として、ＲＴＩサービス・モデルを用いると、モバイル・デバイス上でＲＴＩサービスを使用するアプリケーションのためのインフラストラクチャが都合よく提供される。
【０１６５】
別の例（図示せず）として、データ統合を、在庫管理及び生鮮商品の配送といったサプライ・チェーン管理を改善するのに用いることができる。例えば、サプライ・チェーン・マネージャが種々の小売店の場所で現在の在庫レベルの現在のピクチャを有する場合には、マネージャは、低い在庫レベル又は高い需要を有する店へのさらなる配送又は部分出荷を指示して、商品のより効率的な配送をもたらすことができる。同様に、マーケティング・マネージャが（その国の異なる地方等の）小売店又は倉庫における在庫レベルに関する現在の情報及び需要に関する現在の情報を有する場合には、マネージャは、需要が少ないか又は在庫レベルが意外と高い品目の価格を下げるなどしてその情報に対処するために、値付け、広告、又は販売促進を構造化することができる。もちろん、これらは例に過ぎず、好ましい実施形態において、マネージャは、非常に複雑なビジネス決定をリアルタイムに下すことを可能にする広範なデータ・ソースにアクセスすることができる。
【０１６６】
こうしたシステムの可能性のあるアプリケーションは、文字通り無限にある。減量会社は、データ統合を用いて、既存の顧客から会社への収益を上げるために使用できる新しいマーケティング機会についての顧客データベースを作成することができる。金融サービス会社は、データ統合を用いて、銀行業者、管理者及び分析家のための顧客収益性の報告及び分析についての単一の有効なソースを作成することができる。製薬会社は、データ統合を用いて、種々のテキスト・データ・フィールド内の自由形式のデータを含む、異なる標準及びフォーマットを用いて様々なレガシ・データ・ソースからデータ・ウェアハウスを作成することができる。ウェブ・ベースの市場プロバイダは、データ統合を用いて、買い物客とオン・ライン商店との間の数百万もの日々の取引を管理することができる。銀行は、データ統合サービスを用いて、現在の顧客についてより多くを学び、普通預金、当座預金、クレジット・カード、預金証書、及びＡＴＭサービス等の製品の提供を改善することができる。通信会社は、データ統合システムを並列処理する高い処理能力を用いて、コーリング・キャンペーンの引き受け数を増加させることができる。輸送会社は、データ統合システムを並列処理する高い処理能力を用いて、１日に４回というように１日の間にサービスを再値付けすることができる。投資会社は、データ統合システムを並列処理する高い処理能力を用いて、ＳＥＣトランザクションの解決時間要件に応じ、一般に時間、費用、及び金融トランザクションを解決するのに必要な努力を減少させることができる。医療プロバイダは、データ統合システムを用いて、米国医療保険の携行性と責任に関する法律の条件を満たすことができる。ウェブ・ベースの教育プロバイダは、データ統合システムを用いて、学生のライフサイクルを監視し、求人努力並びに生徒の進捗及び保留を改善することができる。
【０１６７】
特定の市販のデータ統合システム・アプリケーションについての多数の付加的な例をここで提供する。
【０１６８】
図４７は、財務報告について使用できるデータ統合システム１０４を示す。この例において、システム４４００は、販売及び発注処理システム４４０２、総勘定元帳４４０４、データ統合システム１０４、並びに、金融及び会計の財務報告データ・ウェアハウス４４０８を含むことができる。販売・発注処理システム４４０２、総勘定元帳４４０４、及び金融・会計財務報告データ・ウェアハウス４４０８は、各々が上述のデータ・ソース１０２のいずれかのようなデータ・ソース１０２を含むことができる。販売・発注処理システム４４０２は、価格、量、日付、時間、発注数及び注文書の取引条件その他のデータ、並びに、システム４４００によって処理及び／又は記録できる如何なるトランザクションをも特徴付けるその他のあらゆるデータ等の、販売及び発注処理中に収集されるデータを格納することができる。総勘定元帳４４０４は、バランス・シート、キャッシュ・フロー、損益計算書及び財務契約データ等のその財政を追跡するビジネスに関係し得るデータを格納することができる。金融及び会計の財務報告データ・ウェアハウス４４０８は、財務及び会計部門に関係するデータ、並びに、異なる財務及び会計システムからのデータ等のビジネス機能を格納することができる。
【０１６９】
システム４４００は、１つ又は複数のデータ統合システム１０４を含むことができ、該システムは、データを販売及び発注処理システム４４０２及び総勘定元帳４４０４から抽出することができ、上述のように、こうしたデータを転送し、分析し、処理し、変形し、又は操作することができる、上述のデータ統合システム１０４のいずれかとすることができる。如何なるこうしたデータ統合システム１０４も、金融・会計財務報告データ・ウェアハウス４４０８、データ・リポジトリ又は上述のデータ・ソース１０２のいずれかとすることができる他のデータ・ターゲット内にこうしたデータをロードすることができる。データ統合システム１０４のいずれも、リアルタイムの更新又は入力を任意のデータ・ソース１０２から受け取るように構成し、及び／又は対応する金融・会計財務報告データ・ウェアハウス４４０８又は他のデータ・ターゲットへの対応するリアルタイム出力を生成するように構成することができる。任意的に、データ統合システム１０４は、営業日の終わり若しくは報告周期の終わりに又はユーザ要求等の任意の外部イベントに応じて、周期ベースでデータを抽出し、転送し、分析し、処理し、変形し、操作し、及び／又はロードすることができる。
【０１７０】
このようにして、現在の金融及び会計情報を会社に提供できるデータ・ウェアハウス４４０８を作成し、保持することができる。このシステム４４００により、会社がその財務実績とその財務目標とをリアルタイムで比較することが可能となり、会社が偏差に迅速に対応することが可能になる。このシステム４４００はまた、会社があらゆる法的又は規制上の必要条件、或いは私的な借金又はその貸付の他の契約とのその順守を評価することを可能にし、このようにして、それがそのアクションと関連した如何なる付加的な費用又は違約金をも算出することを可能にすることができる。
【０１７１】
図４８は、小売又は他の店若しくは会社において、ＰＯＳ、顧客関係管理、及び他のアプリケーション及び／又はデータベースと共に使用される、顧客についての現在の正確な権限リストを作成し、保持するのに使用されるデータ統合システム１０４を示す。この例においては、システム４５００は、ＰＯＳアプリケーション４５０２、ＰＯＳデータベース４５０４、顧客関係管理アプリケーション４５０８、顧客関係管理データベース４５１０、データ統合システム１０４、及び顧客データベース４５１２を含むことができる。
【０１７２】
ＰＯＳアプリケーション４５０２は、ネットワーク若しくは独立型コンピュータ、手持ちサイズのデバイス、手のひらサイズのデバイス、携帯電話、バーコード・リーダ、又は以上の任意の組み合わせ、或いは販売、交換、返品又は他の業務の処理又は記録についてのその他のあらゆるデバイス又はそれらのデバイスの組み合わせの上で動作するか又は格納されるコンピュータ・プログラム、ソフトウェア又はファームウェアとすることができる。ＰＯＳアプリケーションは、上述のデータ・ソース１０２のいずれかを含むことができるＰＯＳデータベース４５０４にリンクすることができる。ＰＯＳデータベース４５０４は、販売、交換、返品、及び／又は価格、量、日付、時間、発注番号データ等の他のトランザクション中に収集されたデータ、並びに、ＰＯＳアプリケーション４５０２によって処理又は記録できる如何なるトランザクションをも特徴付けるその他のあらゆるデータを含むことができる。顧客関係管理アプリケーション４５０８は、ネットワーク若しくは独立型コンピュータ、手持ちサイズのデバイス、手のひらサイズのデバイス、携帯電話、バーコード・リーダ、又は以上の任意の組み合わせ、或いは名前、住所、会社組織、誕生日、注文履歴、信用格付け、及び如何なる顧客、他の個人若しくはエンティティをも特徴付けるか又はそれに関連するその他のあらゆるデータ等の、顧客、他の個人若しくはエンティティについての情報の入力、格納、分析、操作、表示及び／又は検索のためのその他のあらゆるデバイス又はそれらのデバイスの組み合わせの上で実行するか又は格納されるコンピュータ・プログラム、ソフトウェア又はファームウェアとすることができる。顧客関係管理アプリケーション４５０８は、上述のデータ・ソース１０２のいずれかを含むことができる顧客関係管理データベース４５１０にリンクすることができ、顧客、他の個人及び／又はエンティティについての情報を含むことができる。
【０１７３】
上述のデータ統合システム１０４のいずれかとすることができるデータ統合システム１０４は、別個にＰＯＳアプリケーション４５０２又はデータベース４５０４、顧客関係管理アプリケーション４５０８又はデータベース４５１０、或いは顧客データベース４５１２のいずれかからデータを抽出するか、又はそのいずれかにデータをロードすることができる。データ統合システム１０４はまた、上述のように、こうしたデータを分析し、処理し、変形し、又は操作することもできる。例えば、顧客サービス担当者又は他の従業員は、冷凍庫又は洗濯機等の家庭用耐久財の購入後の儀礼訪問中に、顧客関係管理アプリケーション４５０８を用いて顧客の住所を更新することができる。次に、顧客関係管理アプリケーション４５０８は、更新された住所データを顧客関係管理データベース４５１０に転送することができる。次に、データ統合システム１０４は、更新された住所データを顧客関係管理データベース４５１０から抽出し、それを共通フォーマットに変形し、それを顧客データベース４５１２にロードすることができる。顧客が次回購入するときに、レジ係又は他の従業員は、ＰＯＳアプリケーション４５０２を用いて取引を完了することができ、該アプリケーションは、データ統合システム１０４を介して、顧客データベース４５１２内の更新された住所データにアクセスすることができ、その結果、レジ係又は他の従業員は、それを該ＰＯＳアプリケーション４５０２に入力するのではなく、ただ住所情報を確認しさえすればよい。さらに、ＰＯＳアプリケーション４５０２は、新しい取引データをＰＯＳ販売データベース４５０４に転送することができる。次に、データ統合システム１０４は、取引データをＰＯＳデータベース４５０４から抽出し、それを共通フォーマットに変形し、それを顧客データベース４５１２にロードすることができる。結果として、新しい取引データは、ＰＯＳ及び顧客関係管理アプリケーション及びデータベース、並びに、ビジネス・エンタープライズによって保持されるその他のあらゆるアプリケーション又はデータベースにアクセス可能である。
【０１７４】
このようにして、その顧客の各々に関する現在の正確で完全なデータを小売又は他の店若しくは会社に提供できる顧客データベース４５１２を作成し保持することができる。こうした情報を用いて、店又は会社は、その顧客により良い応対をすることができる。例えば、顧客サービスにより、顧客の次の購入の際にその顧客に割引が与えられる場合には、ＰＯＳアプリケーション４５０２を用いるレジ係又は他の従業員は、割引を確認し、割引が使用されたという通知を記録することができる。このシステム４５００はまた、店又は会社が顧客の不正を防止することを可能にすることもできる。例えば、電話を通じて顧客の苦情を受ける顧客サービス担当者又は他の従業員は、顧客関係管理アプリケーション４５０８を用いて、製品が依然として店又は製造業者の保証期間内であるかを彼らが判断できるようにする特定の製品の購入日付を判定するためにＰＯＳ情報にアクセスすることができる。
【０１７５】
図４９は、薬の補充、又は小売薬局において生成され又は格納される他の情報を、薬局卸売業者又は他の関係者と共に使用するための業界標準ＸＭＬ又は他の言語に変換するために使用できるデータ統合システム１０４を示す。この例においては、このシステム４６００は、小売薬局４６０２、薬の補充情報、データ統合システム１０４、及び薬局卸売業者４６０４を含むことができる。
【０１７６】
小売薬局４６０２は、ネットワーク若しくは独立型コンピュータ、手持ちサイズのデバイス、手のひらサイズのデバイス、携帯電話、バーコード・リーダ、又は以上の任意の組み合わせ、或いは薬の補充又は他の情報を収集し、生成し、又は格納するためのその他のあらゆるデバイス又はそれらのデバイスの組み合わせの上で動作し又は格納されるアプリケーション、コンピュータ・プログラム、ソフトウェア又はファームウェアを使用することができる。こうしたアプリケーション、コンピュータ・プログラム、ソフトウェア又はファームウェアは、在庫レベル、在庫日数、補充される注文等の薬の補充情報を含む上述のデータ・ソース１０２のいずれかのような少なくとも１つのデータ・ソース１０２を含むことができる、１つ又は複数のデータベースにリンクすることができる。こうしたアプリケーション、コンピュータ・プログラム、ソフトウェア又はファームウェアはまた、上述のデータ統合システム１０４のいずれかとすることができる１つ又は複数のデータ統合システム１０４にリンクすることもできる。薬局卸売業者４６０４は、ネットワーク若しくは独立型コンピュータ、手持ちサイズのデバイス、手のひらサイズのデバイス、携帯電話、バーコード・リーダ、又は以上の任意の組み合わせ、或いは業界標準ＸＭＬ又は別の言語若しくはフォーマットにおいて、薬の補充情報を受け取り、分析し、処理し、又は格納するためのその他のあらゆるデバイス又はそれらのデバイスの組み合わせの上で動作するか又は格納されるアプリケーション、コンピュータ・プログラム、ソフトウェア又はファームウェアを使用することができる。こうしたアプリケーション、コンピュータ・プログラム、ソフトウェア又はファームウェアはまた、薬の補充情報を含む、上述のデータ・ソース１０２のいずれかを含むことができるデータベースにリンクすることができる。
【０１７７】
システム４６００は、上述のデータ統合システム１０４のいずれかとすることができる１つ又は複数のデータ統合システム１０４を含むことができる。データ統合システム１０４は、薬の補充情報を小売薬局４６０２から抽出し、薬の補充情報を業界標準ＸＭＬに変換し、又は別の方法でこうした情報を分析し、処理し、変形し、又は操作し、次いで、自動的に又は要求時に、こうした情報を薬局卸売業者４６０４にロードするか又は転送することができる。例えば、顧客が所与の小売薬局４６０２で風邪薬Ｘの最後から２番目のボトルを購入する場合がある。販売した直後に、その小売薬局のシステムは、薬局４６０２が特定の期日前に特定のボトル数だけ風邪薬Ｘの在庫を増やし、次いで、薬の補充情報をデータ統合システム１０４に送る必要があると判断することができる。次に、データ統合システム１０４は、薬の補充情報を業界標準ＸＭＬに変換し、それを薬局卸売業者のシステムにアップロードすることができる。次に、薬局卸売業者４６０４は、所与の薬局４６０２が指定日前に要求されたボトル数を受け取ることを自動的に保証することができる。
【０１７８】
このようにして、サプライ・チェーンの中断及び費用が最小限となるような形で小売薬局４６０２が薬局卸売業者４６０４と通信できるようにするシステム４６００を作成することができる。このシステム４６００は、小売薬局４６０２が在庫要求を薬局卸売業者４６０４に自動的に通信することができるようにして、過剰在庫保持費用、期限切れ製品及び取引による浪費、並びに、薬局卸売業者への返品に関連した他の費用を削減する。このシステム４６００は、付加的なデータ統合システム１０４が補足されて、信用履歴レビュー、支払い、並びに、薬局卸売業者のための良好な信用リスク及び適時支払いを保証する他の金融サービスをサポートすることができる。
【０１７９】
図５０は、データが動作の最適化、意思決定及び他の機能のために使用されることを可能にする、エンタープライズ・アプリケーション統合、メッセージ指向ミドルウェア及びウェブ・サービス等の、ビジネス・アプリケーション及び統合技術４７０８から呼び出される予め構築されたサービス４７０４を介して製造分析データ４７０２へのアクセスを提供するのに使用できるデータ統合システム１０４を示す。この例においては、システム４７００は、在庫、部品、販売、給与、人材及び他のデータ等の製造分析データ４７０２、予め構築されたサービス４７０４、ビジネス・アプリケーション及び統合技術４７０８、ユーザ４７１０、データ統合システム１０４、及びユーザ・ビジネス・アプリケーション４７１２を含むことができる。
【０１８０】
ユーザ４７１０は、ネットワーク若しくは独立型コンピュータ、コンピュータ・システム、手持ちサイズのデバイス、手のひらサイズのデバイス、携帯電話、又は以上の任意の組み合わせ、或いはその他のあらゆるデバイス又はデバイスの組み合わせの上で動作するか又は格納されるビジネス・アプリケーション及び統合技術４７０８を用いて、製造分析データへのアクセスを提供するために予め構築されたサービス４７０４を呼び出すことができる。予め構築されたサービス４７０４は、上述のデータ統合システム１０４、或いは、データ又は他の情報を転送し、分析し、修正し、処理し、変形し、又は操作することができる他のインフラストラクチャとすることができる。予め構築されたサービス４７０４は、上述のデータ・ソース１０２のいずれか等のデータ・ソース１０２を含むことができるデータベースを使用することができ、製造分析データ４７０２は、該データベースに格納することができる。ユーザ・ビジネス・アプリケーション４７１２は、ネットワーク若しくは独立型コンピュータ、手持ちサイズのデバイス、手のひらサイズのデバイス、携帯電話、又は以上の任意の組み合わせ、或いは、製造分析データ４７０２又は他の情報の処理又は分析のためのその他のあらゆるデバイス又はそれらのデバイスの組み合わせの上で動作するか又はそこに格納されるコンピュータ・プログラム、ソフトウェア又はファームウェアとすることができる。ユーザ・ビジネス・アプリケーション４７１２は、上述のデータ・ソース１０２のいずれか等のデータ・ソース１０２を含むデータベースにリンクすることができる。
【０１８１】
システム４７００は、上述のデータ統合システム１０４のいずれかとすることができる１つ又は複数のデータ統合システム１０４を含むことができ、それは、ビジネス・アプリケーション及び／又は統合技術４７０８又は他のユーザ関連又は外部イベントを介して、或いは、周期ベースでユーザ入力に応答して、製造分析データ４７０２又は他のデータを抽出し、分析し、修正し、処理し、変形し、又は操作することができ、該データの表示、格納若しくはさらなる処理、分析、又は操作のためにユーザ・ビジネス・アプリケーション４７１２に利用できる結果を作ることができる。
【０１８２】
例えば、既存のビジネス・アプリケーション及び統合技術４７０８を用いるマネージャは、予め構築されたサービス４７０４を介して特定の製造分析データ４７０２にアクセスすることができる。マネージャは、在庫にある特定のグループの部品の数及び部品を組み立てるのに十分な従業員を用意するのに関連した給与費用を決定することができる。データ統合システム１０４は、必要なデータを在庫、部品、給与及び人材データベースから抽出し、分析し、統合し、これらの結果をマネージャのビジネス・アプリケーション４７１２にアップロードすることができる。次に、ビジネス・アプリケーション４７１２は、これらの結果を幾つかのテキスト及びグラフィカル・フォーマットで表示し、さらなる分析要求に対してユーザ（管理者）に促すことができる。
【０１８３】
このようにして、エンタープライズにわたる管理者及び他の意思決定者は、それらが要求するデータにアクセスすることを可能にするシステム４７００を作成することができる。このシステム４７００は、エンタープライズ内のアクタが所与の時点で利用可能な全データの統合表示に基づいてより多くの情報を得て決定を下すことを可能にする。さらに、このシステム４７００は、エンタープライズが多くの異なるデータ・ソース１０２からのデータを迅速に統合し、短時間でエンタープライズの広範囲の分析を得ることができるため、エンタープライズがより速い決定を下すことを可能にする。全体的に、このシステム４７００は、エンタープライズがその動作、意思決定、及び他の機能を最適化することを可能にする。
【０１８４】
図５１は、イベント駆動ベースで薬物動態データ・ウェアハウス４８０２にロードするための臨床試験の研究成果を分析的に処理するのに使用できるデータ統合システム１０４を示す。この例においては、システム４８００は、臨床試験研究４８０４、臨床試験研究データベース４８０８、イベント４８１０、データ統合システム１０４、及び製薬動態データ・ウェアハウス４８０２を含むことができる。
【０１８５】
臨床試験研究４８０４は、各々が上述のデータ・ソース１０２のいずれかのようなデータ・ソース１０２を含む１つ又は複数の臨床試験研究データベース４８０８に格納可能なデータを生成することができる。各々の臨床試験研究データベース４８０８は、患者の名前、住所、健康状態、取次ぎ及び投薬、所与の薬についての吸収速度、分布速度及び消失速度、政府の認可及び倫理委員会の認可情報、並びに、臨床試験研究４８０４と関連し得るその他のあらゆるデータ等の、臨床試験研究４８０４の際に収集されるデータを含むことができる。薬物動態データ・ウェアハウス４８０２は、臨床試験研究データベース４８０８に格納されたもの等のデータを含む臨床試験研究４８０４に関係するデータ、並びに、薬の相互作用及び特性、生化学、化学、物理学、生物学、生理学、医学論文又は他の関連情報若しくはデータに関連するデータ及び情報を含む上述のデータ・ソース１０２のいずれかを含むことができる。外部イベント４８１０は、ユーザ入力、或いは、特定の研究又は他の結果若しくはその他のあらゆる指定イベントの達成とすることができる。
【０１８６】
システム４８００は、上述の１つ又は複数のデータ統合システム１０４を含むことができ、該システムは、外部イベント４８１０に応答して、或いは、営業日の終わり又は報告周期の終わり等の周期ベースで、臨床試験研究データ４８０４又は他のデータを抽出し、修正し、変形し、操作し、又は分析的に処理することができ、薬物動態データ・ウェアハウス４８０２に利用可能な結果を作ることができる。例えば、外部イベント４８１０は、研究助成金アプリケーションと関連させて特定の情報の要件とすることができる。助成金審査委員会は、それが関連する臨床試験資金の割り当てを約束する前に、進行中の臨床試験における薬物吸収反応についてのデータを要求する場合がある。システム４８００を用いて、必要なデータを臨床試験研究データのデータベース４８０８から抽出し、該データを分析的に処理して、例えば、薬物の平均、中間、最大及び最小吸収速度を求め、これらの結果を他の研究のものと、同様の薬物について比較することができる。次に、この情報全てを助成金審査委員会に提供することができる。
【０１８７】
このようにして、研究者及び第三者が、完了した臨床試験及び進行中の臨床試験からの情報を含む完全で正確な薬物動態情報に迅速にアクセスすることを可能にする、システム４８００を作成することができる。このシステム４８００は、研究者及び第三者が、深刻化する前に事前結果を生成し、悪影響又は傾向を検出することを可能にする。このシステム４８００はまた、研究者及び第三者が所与の研究の進行中又は最終結果を他の研究、学説又は確立された原理のものにリンクすることも可能にする。さらに、システム４８００は、新しい研究、試験及び実験の設計において研究者及び第三者を支援することができる。
【０１８８】
図５２は、Ｊａｖａアプリケーション４９０８を介して利用可能な研究のリスト４９０４を科学者４９０２に提供し、彼らが選択された研究に対する抽出、変形及びロード処理４９１０を開始することを可能にするために使用できるデータ統合システム１０４を示す。この例においては、システム４９００は、科学者のグループ４９０２、利用可能な研究のリスト４９０４、Ｊａｖａアプリケーション４９０８、研究データベース４９１２、選択された研究のリスト４９１４、抽出、変形及びロード処理４９１０、並びに、データ統合システム１０４を含むことができる。
【０１８９】
研究データベース４９１２は、タイトル、要約、全テキスト、研究データ及び結果、並びに、該研究に関連した他の情報を格納することができる、上述のデータ・ソース１０２のいずれかを含むことができる。Ｊａｖａアプリケーション４９０８は、コンピュータ、手持ちサイズのデバイス、手のひらサイズのデバイス、携帯電話、又は以上の任意の組み合わせ、或いは、データベース内の完全な研究リスト又は特定のユーザ定義済み又は他の特性に応答するデータベース内の研究リストを生成できるその他のあらゆるデバイス、又はそれらのデバイスの組み合わせの上で動作し又は格納される１つ又は複数のアプレットから構成することができる。科学者、実験室のスタッフ又はその他の人は、このリストから研究のサブセットを選択し、選択された研究のリスト４９１４を生成することができる。
【０１９０】
システム４９００は、利用可能な研究のリスト４９０４又は研究データベースからのデータを抽出し、修正し、変形し、操作し、処理し、又は分析することができる、上述の１つ又は複数のデータ統合システムを含むことができる。例えば、科学者４９０２、実験室のスタッフ又はその他の人は、ウェブ・ブラウザを通じてＪａｖａアプリケーション４９０８を用いて、特定の指定された薬物又は健康状態に関連する全ての利用可能な研究のリスト４９０４を要求することができる。次に、科学者４９０２、実験室のスタッフ又はその他の人は、こうしたリストから特定の研究を選択するか又は他の研究をこうしたリストに付加して、選択された研究のリスト４９１４を生成することができる。次に、科学者４９０２、実験室のスタッフ又はその他の人は、抽出、変形及びロード処理４９１０のために、選択された研究のリストをデータ統合システム１０４に送ることができる。科学者４９０２、実験室のスタッフ又はその他の人は、特定のフォーマットで、選択された研究から全ての代謝率又は他の指定されたデータを出力として要求することができる。
【０１９１】
このようにして、科学者４９０２、実験室のスタッフ又は第三者がそうした研究からデータ及び他の情報を抽出し又は操作する機能によって関連研究のディレクトリにアクセスすることを可能にするシステム４９００を作成することができる。このシステム４９００は、科学者４９０２、実験室のスタッフ、又は第三者が、不要な実験の繰り返しを避けるために、或いは研究を繰り返し又は結果を調整する目的でそれらの結果若しくは予測と矛盾する特定の研究を選択するために、関連する前のデータ又は他の情報を得ることを可能にすることができる。システム４９００はまた、科学者４９０２、実験室のスタッフ、又は第三者が、実験室で実験を実際に行うことなく新しい実験をシミュレートするために、前の研究から結果を得て、統合し、分析することを可能にすることもできる。
【０１９２】
図５３は、顧客理解及び親密さを改善する目的で又は他の目的で、顧客データがＰＯＳ５００４、顧客関係管理５００８及びセールス・フォース・オートメーション・システム５０１０等の多数のシステムにわたって入力される際に、顧客データ相互参照５００２を作成し保持するのに使用できるデータ統合システム１０４を示す。この例においては、システム５０００は、ＰＯＳ５００４、顧客関係管理５００８、セールス・フォース・オートメーション５０１０又は他のシステム５０１２、データ統合システム１０４、及び顧客データ相互参照データベース５００２を含むことができる。
【０１９３】
ＰＯＳ５００４、顧客関係管理５００８及びセールス・フォース・オートメーション・システム５０１０は、各々が１つ又は複数のアプリケーション及び／又はデータベースから構成される。これらのアプリケーションは、ネットワーク若しくは独立型コンピュータ、手持ちサイズのデバイス、手のひらサイズのデバイス、携帯電話、又は以上の任意の組み合わせ、或いは、その他のあらゆるデバイス又はそれらのデバイスの組み合わせの上で動作し又は格納されるコンピュータ・プログラム、ソフトウェア又はファームウェアとすることができる。これらのデータベースは、上述のデータ・ソース１０２のいずれかを含むことができる。ＰＯＳアプリケーションは、販売、交換、返品又は他の取引の処理又は記録のために使用することができ、ＰＯＳデータベースは、販売、交換、返品、及び／又は価格、量、日付、時間及び注文番号のデータ等の他の取引中に収集されるデータ、並びに、システム５０００によって処理又は記録できる如何なる取引をも特徴付けるその他のあらゆるデータを含むことができる。顧客関係管理アプリケーションは、名前、住所、企業構造、生年月日、注文履歴、信用格付け、及びあらゆる顧客、他の個人若しくはエンティティを特徴付け又はそれに関連するその他のあらゆるデータといった、顧客、他の個人又はエンティティ或いはその全てについての情報の入力、格納、分析、操作、表示及び／又は検索のために使用することができる。顧客関係管理データベースは、顧客、他の個人及び／又はエンティティについての情報を含むことができる。セールス・フォース・オートメーション・アプリケーションは、リード生成、接触相互参照、スケジューリング、性能追跡及び他の機能のために使用することができ、セールス・フォース・オートメーション・データベースは、販売リード及び接触、販売部の個々のメンバーのスケジュール、成果目標及び実際の結果、並びに、他のデータと関連させた情報又はデータを含むことができる。
【０１９４】
システム５０００は、ＰＯＳ５００４、顧客関係管理５００８、セールス・フォース・オートメーション５０１０及び他のシステム５０１２からデータを抽出し、修正し、変形し、操作し、処理し、又は分析することができ、そして結果を顧客データ相互参照データベース５００２で利用可能にする、上述の１つ又は複数のデータ統合システム１０４を含むことができる。例えば、システム５０００は、営業日の終わり又は報告周期の終わりにといった周期ベースで、或いは、ユーザ要求等のあらゆる外部イベントに応答して、ＰＯＳ５００４、顧客関係管理５００８、セールス・フォース・オートメーション５０１０及び他のシステム５０１２のいずれか又は全てからデータを抽出することができる。次に、システム５０００は、データを共通フォーマットに変換するか又はその他の手法でエンタープライズにわたって他のアプリケーションで利用可能な顧客データ相互参照データベース５００２にロードするためにデータを転送し、処理し、又は操作することができる。データ統合プロセス１０４はまた、如何なるデータ・ソース１０２からもリアルタイム更新又は入力を受け取るように構成することができ、又は顧客データ相互参照データベース５００２への対応するリアルタイム出力を生成するように構成することができ、或いはその両方が可能である。
【０１９５】
このようにして、エンタープライズにわたる相互参照顧客データ５００２へのアクセスをユーザに提供するシステム５０００を作成することができる。システム５０００は、クレンジングされ、整合性があり、重複のない顧客データを、全てのシステム５０００で使用するためにエンタープライズに提供し、より深い顧客理解とより強力な顧客関係をもたらすことができる。
【０１９６】
図５４は、重複を避けるために、内部システムにわたって格納される顧客データを、インバウンド顧客レコード５１０４のオンデマンド自動化相互参照及び一致５１０２に提供し、どんな所与の顧客にも全システム間のデータ・レコードを提供するために使用できるデータ統合システム１０４を示す。この例においては、システム５１００は、インバウンド顧客レコード５１０４、データ統合システム１０４、及び内部顧客データベース５１０８を含むことができる。
【０１９７】
インバウンド顧客レコード５１０４は、名前、住所、企業構造、生年月日、購入された製品、定期メンテナンス及び他の情報等の、顧客との又は顧客に関する取引又は対話中に収集される情報を格納することができる。内部顧客データベース５１０８は、上述のデータ・ソース１０２のいずれかを含むことができ、顧客との又は顧客に関する取引又は対話中に収集されるデータを格納することができる。内部データベース５１０８は、ネットワーク若しくは独立型コンピュータ、手持ちサイズのデバイス、手のひらサイズのデバイス、携帯電話、又は以上の任意の組み合わせ、或いは、その他のあらゆるデバイス又はそれらのデバイスの組み合わせの上で動作し又は格納されるコンピュータ・プログラム、ソフトウェア又はファームウェアとすることができる内部アプリケーションにリンクすることができる。
【０１９８】
システム５１００は、インバウンド顧客レコード５１０４又は内部顧客データベース５１０８からのあらゆるデータを抽出し、修正し、変形し、操作し、処理し、又は分析することが可能な、上述の１つ又は複数のデータ統合システムを含むことができる。さらに、データ統合システム１０４は、内部顧客データベース５１０８内のデータに照らしてインバウンド顧客レコード５１０４を相互参照する（５１０２）ことができる。例えば、内部顧客データベース５１０８は、顧客によって購入される製品に関連する情報を有するデータベース、顧客によって購入されるサービスに関連する情報を有するデータベース、各々の顧客の組織の規模に関する情報を提供するデータベース、及び顧客についての信用情報を含むデータベースとすることができる。システム５１００は、製品、サービス、規模及び信用情報に照らしてインバウンド顧客レコード５１０４を相互参照して、不一致を明らかにし、訂正し、顧客毎にデータ・レコードの精度及び一意性を保証することができる。
【０１９９】
このようにして、正確で完全な顧客レコードを可能にするシステム５１００を作成することができる。このシステム５１００は、より深い顧客知識をエンタープライズに提供することができ、良好な顧客サービスを可能にする。システム５１００は、顧客データベースに収容されたデータに頼る販売員が、顧客によって既に購入された製品及びサービスに対して補足的な製品及びサービスを提案し、顧客の事業規模に適応させることを可能にすることができる。
【０２００】
種々のデータ統合システム及びビジネス・エンタープライズを説明してきたが、エンタープライズにおけるデータ統合サービスを提供するためのアーキテクチャをここでより詳細に説明する。
【０２０１】
図５５を参照すると、アーキテクチャのハイレベル概略図は、データ統合ソリューションの開発、デプロイ、動作及びライフサイクル管理を統一する統合アプリケーションとして動作するように複数のサービスをどのように組み合わせることができるかを示す。単一のプラットフォームへのデータ統合タスクの統一は、設計及びデプロイの異なるフェーズについての別個のソフトウェア製品の必要性を排除することができる。
【０２０２】
アーキテクチャ５２００は、ＧＵＩ／ツール・フレームワーク５２０２、インテリジェント・オートメーション層５２０３、１つ又は複数のクライアント５２０４、ＡＰＩ５２０８、コア・サービス５２１０、製品機能サービス５２１２、メタデータ・サービス５２２２、メタデータ・リポジトリ５２２４、コンポーネント・ランタイム５２２０を有する１つ又は複数のランタイム・エンジン５２１４、及びコネクタ５２１８を含むことができる。アーキテクチャ５２００は、上述のサービス指向アーキテクチャ２４００のいずれか等のサービス指向アーキテクチャ５２０１上にデプロイすることができる。
【０２０３】
メタデータ・リポジトリ５２２４に格納されるメタデータ・モデルは、設計からデプロイまでのプロセスの全てのステップにおいてシステム全体を通してデータの共通内部表示を提供する。モデルは、他のシステム・コンポーネントにアクセス可能なディレクトリに登録することができる。共通モデルは、メタデータ（データ・プロファイル情報を含むデータ記述データ）、データ統合プロセスの仕様、ユーザ、マシン及びソフトウェア構成等を含む多数のスイート全体の項目の共通表示（全ての製品機能サービスに共通）を提供することができる。これらの共通モデルは、ユーザがどんな製品機能を使用していても、エンタープライズ・リソース及び統合プロセスの共通のユーザ・ビューを可能にすることができ、統合製品機能間のモデル翻訳の必要性をなくすことができる。
【０２０４】
サービス指向アーキテクチャ（ＳＯＡ）５２０１は、サービスの全てを包含するように示され、ＧＵＩ５２０２からランタイム・エンジン５２１４及び接続５２１８を通じてコンピュータ環境への全てのサービスの調整を提供することができる。メタデータ・リポジトリ５２２４に格納できる共通モデルは、ＳＯＡ５２０１がシームレスに複数のサービス間の相互作用を提供することを可能にする。ＳＯＡ５２０１は、例えば、共通コア・サービス５２１０、製品機能サービス５２１２及びメタデータ・サービス５２２２の使用によってＧＵＩ５２０２をデータ統合設計及びデプロイの全てのアスペクトに公開することができ、インテリジェント・オートメーション層５２０３を介して動作することができる。共通モデル及びサービスは、設計及びデプロイプロセス中の種々のアクションについてＧＵＩ５２０２におけるオブジェクトの共通表示を提供することができる。ＧＵＩ５２０２は、ＳＯＡ５２０１の調整サービスとインターフェース接続する複数のクライアント５２０４を有することができる。クライアント５２０４は、ユーザが複数のスキル・レベルを有するデータ統合設計とインターフェース接続することを可能にし、ユーザが組織的に適切なレベルにわたってチームとして働くことを可能にする。ＳＯＡ５２０１は、共通コア・サービス５２１０及び製品機能サービス５２１２へのアクセスを提供し、並びに、データ統合設計内の機能及びサービスにＡＰＩ５２０８へのバックエンド・サポートを提供することができる。サービスは、複数のクライアント５２０４及び他のサービスによって共有し、再使用することができる。
【０２０５】
インテリジェント・オートメーション層５２０３は、アーキテクチャ５２００内のメタデータ及びサービスを用いて、関連するユーザ選択のみを示すか、又は共通の、頻発する、及び／又は明らかな動作を自動化すること等によって、ＧＵＩ５２０２内のユーザ選択を単純化することができる。インテリジェント・オートメーション層５２０３は、自動的に特定のジョブを生成し、設計及び設計選択を診断し、性能を調整することができる。インテリジェント・オートメーション層５２０３はまた、ビジネス・コンテクストのワークフロー管理又はモデリング等の、上位レベルの設計パラダイムをサポートすることもでき、より一般的には、プロジェクト又は他のコンテクスト認識を適用して、ユーザがより迅速に、かつ、効率的にデータ統合ソリューションを実行するのを支援することができる。
【０２０６】
共通コア・サービス５２１０は、１つ又は複数の共通レジストリのためのディレクトリ・サービス、ロギング及び監査サービス、監視、イベント管理、トランザクション・サービス、セキュリティ、ライセンス交付（ライセンス交付ポリシィの作成及び強化、並びに、外部リスニング・サービスとの通信等）及びプロビジョニング等の、データ統合ソリューションの設計及びデプロイの全てのアスペクトにわたって通常使用できる共通機能サービス、並びに、ＳＯＡの管理サービスを提供することができる。共通コア・サービスは、共通のＧＵＩ５２０２への機能及びオブジェクトの共通表示を可能にすることができる。
【０２０７】
他の製品の特定の機能サービスは、製品機能サービス５２１２に含めることができ、サービスを特定の適切なクライアント５２０４及びサービスに提供することができる。これらは、例えば、外部メタデータをインポートし、ブラウズすること、並びに、プロファイルを作成し、分析し、レポートを生成することを含むことができる。他の機能は、アーキテクチャを介してデータ統合サービスを設計し、コンパイルし、デプロイし、実行するためのサービス等の、より設計指向なものとすることができる。製品機能サービス５２１２は、適切なタスクが使用されている場合には、ＧＵＩ５２０２にアクセス可能となり、タスク指向ＧＵＩ５２０２を提供することができる。タスク指向ＧＵＩは、データ統合設計におけるアクションに適したユーザ専用機能を提供することができる。
【０２０８】
アプリケーション・プログラム・インターフェース（ＡＰＩ）５２０８は、そこにサービス、リポジトリ、エンジン及びコネクタのいずれか又は全てを含む、完全なアーキテクチャへのアクセスのためのプログラミング・インターフェースを提供することができる。ＡＰＩ５２０８は、種々のサービスによって使用され、及び／又はそれらから作成される機能の通常使用されるライブラリを含むことができ、再帰的に呼び出すことができる。
【０２０９】
メタデータ及びリポジトリ・サービス５２２２は、メタデータ・リポジトリ５２２４へのアクセスを制御することができる。全ての機能は、それ自体の機能別モデルによって表わされるメタデータをメタデータ・リポジトリ５２２４内の共通リポジトリに保持することができる。機能は、共通モデルを共有するか又はメタデータ・マッピングを使用して、それらのそれぞれのモデル間のセマンティクスを動的に翻訳することができる。データ統合設計に使用される全ての内部メタデータ及びデータは、メタデータ・リポジトリ５２２４に格納することができ、外部メタデータ及びデータへのアクセスは、該メタデータ・リポジトリ５２２４に格納され、メタデータ及びリポジトリ・サービス５２２２によって制御されるハブ（メタデータ・モデル）によって提供することができる。メタデータ及びメタデータ・モデルは、メタデータ・リポジトリ５２２４に格納することができ、メタデータ及びリポジトリ・サービス５２２２は、メタデータ・バージョニング、永続性、メタデータ及びメタデータ・モデルのチェック・イン及びチェック・アウト、並びに、それが他のメタデータと調整される前に、ユーザによって作成される暫定メタデータのためのリポジトリ・スペースを保持することができる。メタデータ及びリポジトリ・サービス５２２２は、リポジトリ・ハブを用いて、メタデータ・リポジトリ５２２４へのアクセスを、ＧＵＩ５２０２、内部クライアント５２０４及び外部クライアントの複数のサービスに提供することができる。メタデータ・リポジトリ５２２４への他のサービス及びクライアント５２０４によるアクセスは、メタデータがＳＯＡ５２０１によって調整されるシームレスなトランザクションにおいて他のサービスによってアクセスされ、変形され、組み合わされ、クレンジングされ、クエリされることを可能にすることができる。
【０２１０】
幾つか存在する場合があるランタイム・エンジン５２１４は、アダプタ及びコネクタ５２１８を用いて、外部ソースと通信することができる。エンジン５２１４をユーザによって作成される設計に公開して、コンピュータ環境に基づいてコンパイルされデプロイされるソリューションを作成することができる。ランタイム・エンジン５２１４は、遅いバインディングをコンピュータ環境に提供することができ、コンピュータ環境の考慮事項とは無関係のデータ統合ソリューションを設計する能力をユーザに提供することができる。ランタイム・エンジン５２１４は、データ統合ソリューションをコンパイルし、高い処理能力又は高い並行性のための適切なデプロイランタイムを提供することができる。サービスは、インターフェース及び種々のサービスのための使用規格へのアクセスを提供するレジストリからＪ２ＥＥ構造としてデプロイすることができる。サービスは、異機種ハードウェア及びソフトウェア環境と共に使用するために、ＨＴＴＰ、Ｃｏｒｂａ／ＲＭＩ、ＪＭＳ、ＪＣＡ等のような、多数のプロトコルをサポートすることができる。これらのプロトコルとのバインディングは、ランタイム・エンジン５２１４によって自動的に選択されてもよいし、或いは、デプロイプロセスの一部としてＧＵＩ５２０２からユーザによって手動で選択されてもよい。
【０２１１】
外部コネクタ５２１８は、ネットワーク又は他の外部リソースへのアクセスを提供し、外部リソースへの、多数の実行エンジン及びＪａｖａ又は格納されている手順等の他の変形実行環境のための共通アクセス・ポイントを提供することができる。
【０２１２】
種々のランタイム・エンジン５２１４を選択し使用するのを支援するために、付加的な機能層を設けることができると認識される。これは、高い処理能力又は高い並行性デプロイをサポートして提供されたときに特に有用である。例えば、ランタイム・エンジン５２１４は、場合によっては無制限の長さの大きなトランザクション、並びに、リアルタイム・トランザクションの連続するストリームを構文解析するようになっているトランザクション・エンジンを含むことができる。ランタイム・エンジン５２１４は、小さな個々のトランザクションを処理するようになっている並列性エンジンをさらに含むことができる。並列性エンジンは、パイプライン化され又は他の方法でパーティション化されたフローに分割される前処理された入力（及び出力）を受け取るように適合させることができる。別の例としては、並行性ランタイム・エンジン５２１４は、大量の小さな個々のトランザクション等の対話式要求への迅速な応答のために最適化することができる。コンパイル及び最適化層は、並列性エンジンへの出力を小さなチャンクに前処理すること等によって、これらの種々のエンジン間に統合プロセスをどのように割り当てるかを決定することができる。コネクタをアーキテクチャ内に集中させることによって、種々のエンジン間のプロセスの分散をより綿密に制御し、ユーザ・インターフェース・レベルでこうした制御へのアクセスの可能性を提供することが可能である。同様に、変形プロセスにおける接続の共通中間表示が、あらゆる自動化戦略のデプロイ、及び実行エンジンの異なる組み合わせの選択、並びに、例えばメタデータ又はプロファイルに基づく最適化を可能にする。
【０２１３】
本明細書において説明されるアーキテクチャ５２００は、高度の柔軟性及びカスタマイズ可能性をユーザの作業環境に提供する。これは、例えば、既存の又は計画されたワークフロー及び設計プロセスを中心としてユーザ環境を構成するために適用することができる。ユーザは、コンポーネントを構成し、それらを結合してコンポジションにすることによって特定の機能サービスを作成することができ、該コンポジションは、今度は、新しいコンポーネント設計へのモジュール性の再帰的ネスティングを可能にするコンポーネントとして機能することもできる。コンポーネント及びコンポジションは、メタデータ及びリポジトリ・サービス５２２２によって提供されるアクセスによってメタデータ・リポジトリ５２２４に格納することができる。メタデータ及びリポジトリ・サービス５２２２は、複数のサービスとの共通インターフェースを共通データ定義に提供することができ、固有のデータ・フォーマット及び業界標準フォーマットへのサポートを提供することができる。本明細書において説明されるアーキテクチャのモジュール性は、共通コア・サービス５２１０から選択されたコンポーネント及び製品機能サービス５２１２の他のコンポーネント、並びに、全アーキテクチャの他のコンポーネントを有するパッケージへの、如何なるエンタープライズ機能及び統合プロセスのパッケージ化をも可能にする。システム・コンポーネントからパッケージを作る能力は、共通コア・サービス５２１０として提供することができる。このパッケージ化機能によって、それがアーキテクチャ５２００内に既にあるアトミック・サービス、コンポーネント及びコンポジションの組み合わせとして表現が可能であるとすれば、如何なる任意の機能をも構成することができる。アーキテクチャ５２００のパッケージ化機能をユーザ・インターフェースのタスク指向と組み合わせて、ユーザが望む如何なるワークフロー又は設計方法にも特に適合したユーザ・インターフェースを達成することができる。
【０２１４】
図５６は、例えば、上述の機能、サービス又はパッケージのいずれかとすることができる多数のタスクとしてユーザ・インターフェースを定義するためのタスク・マトリックスを示す。ユーザ・インターフェースは、設計の柔軟性を維持するために基礎機能から強力に分離できるという利点がある。こうしたアーキテクチャにおいては、ワークフローによって決定されるタスクは、インターフェースをユーザに提供するために解釈されるタスク・マトリックス５２５０内で編成することができる。タスク・マトリックス５２５０は、各々が多数のタスク５２５４及び多数のメニュー５２５６（以下のインターフェースにおいて説明される「ピラー」）を含む、１つ又は複数のコンテクスト５２５２を含むことができる。
【０２１５】
１つ又は複数のコンテクスト５２５２は、例えば、メニュー内のタスクの多数の異なる表示に関するものとすることができる。多数の別個に定義されたコンテクストの使用によって、インターフェースは、スキル・レベルに依存する表示又はセキュリティ・レベルに依存する表示等の、様々な任意の表示をもつ設計とすることができる。より一般的には、多数の任意のコンテクストを提供することによって、設計の柔軟性の付加的な側面が、タスク・マトリックス５２５０内で実現される。これは、多数の方法で使用することができる。例としては、医療提供業者及び保険業者は、両者が内部レコードを保持し、特定の方法で第三者と取引するために、ＨＩＰＡＡ等の規制スキームの下で責任を負う場合がある。この場合、提供業者及び保険業者は、個人識別情報を暗号化するか又は提供業者によって保険業者に送られる支払要求についての共通フォーマットを使用するというように、多数のタスクを共通にすることができる。保険業者及び提供業者のためのデータ統合プロセスは、著しい違いをも要求しながら、共通の相当な数のタスクを共有することができる。２つのコンテクスト５２５２を提供業者及び保険業者のために用いて、より一般的なＨＩＰＡＡ準拠のインターフェース定義の下で同じ共通タスクのセットに基づいて２つの異なるワークフローを定義することができる。
【０２１６】
各々のタスク５２５４が、任意の数の、システムによって提供されるユーザ定義済みタスク又は共通タスク、機能、サービス等、或いは、ワークフローに関連する単一の有用なタスクに組み合わされるこうしたタスク、機能及び／又はサービスの組み合わせとすることができる。タスク５２５４は、インターフェース内で有用なダイアログ、ウィザード、ヘルプ・ウィンドウ等を含むこともできるし、或いは、それらと関連付けることもできる。タスク・マトリックス５２５０において識別されるタスク５２５４は、例えば、インターフェース内のそれらの位置、インターフェースの特定の制御領域との関連付け、タスクと関連付けられた制御、入力及び出力等に対して事前定義することができる。したがって、ユーザ・インターフェースを介してアクセス可能なタスクのために、タスク・マトリックス５２５０におけるタスクの存在を示しさえすればよい。任意的に、各々のタスク５２５４とメニュー５２５６との交差部分は、タスク５２５４の発生に関連する１つ又は複数の指定を含むことができる。したがって、タスク・マトリックス５２５０は、ビジュアル要素、制御、位置、入力、出力、スキル・レベル・パラメータ等を指定することができる。
【０２１７】
各々のメニュー項目５２５６は、ワークフローのフェーズに対応することができる。タスク・マトリックス５２５０を用いると、ワークフローに対する関連タスクをユーザ環境内の適切な位置において実現することができる。
【０２１８】
ワークフロー・ベースのインターフェース設計の迅速なデプロイをさらに支援するために、ユーザ・インターフェースそれ自体を、ビジュアル・スタイル、制御、制御パネル、ワークスペース、ツール、ウィザード、ダイアログ等の集合として定義することができる。同時に、タスクは、例えば、サービス指向アーキテクチャ内のサービスとして定義することができる。したがって、タスク・マトリックス５２５０の使用によって、各々が１つ又は複数のサポーティング・タスク５２５４を有するメニュー項目５２５６の任意の組み合わせは、ナビゲーション方法としてあらゆるデータ統合又は他のワークフローを表すように都合よく配列することができる。
【０２１９】
インターフェースは、共通データ・セットに逆らって動作することができ、その結果、変更は、ワークフローの種々のフェーズ（すなわち、メニュー）間及びフェーズ内のタスク間で持続するという利点がある。各々のタスク５２５４及び各々のメニュー５２５６は、同じデータ・セットに関する異なる機能的な見方を表すことができる。したがって、アーキテクチャは、ワークフローがワークフローの異なるフェーズのアプリケーション毎にデータを渡す、既存のアプリケーション・ベースの環境を通じて、著しい改善を提供することができる。さらなる利点としては、タスク・マトリックス５２５０それ自体は、個人の好み又は設計問題に応じてユーザが修正することができる。タスク・マトリックス５２５０を修正するためのツールは、サービスとして公開し、ユーザ・インターフェース又はサービス指向アーキテクチャにおいてそのサービスへのクライアントとして機能する他のツールを介してユーザによりアクセス可能となり得る。
【０２２０】
ワークフロー内でタスクを編成するために特定の構成が識別されるが、任意の数のデータ構造又は他の格納機能を用いて、ユーザ・インターフェースの定義を格納し、検索し、修正することができることを認識すべきであり、ユーザ・インターフェースそれ自体のアーキテクチャが柔軟性と設計の容易さとの間の所望のトレード・オフによって、種々のレベルの特定性で定義できることをさらに認識すべきである。
【０２２１】
図５７を参照すると、複数のユーザのスキル・レベルと共通設計ライブラリ５３００との相互作用の理解を与えるために、ＧＵＩ５２０２のより詳細な図が示される。ＧＵＩ５２０２は、全システムの基礎機能から、より具体的には、アーキテクチャの他のアスペクト、並びに、メタデータ・リポジトリ５２２４内のメタデータ・モデル及び設計から強力に分離することができる。このような「分離した」設計においては、アーキテクチャの機能の全てをサービスとしてユーザ・インターフェースに提供することができる。ユーザ・インターフェースは、今度は、これらのサービスにアクセスするための下位レベルのツール及びユーザ制御の共通のセットを提供することができる。このアプローチは、インターフェースか又は基礎システムのいずれかについての比較的直接的な拡張性を可能にし、データ統合プロセスの全ての段階のためのシームレスな作業環境を提供することができる。新しいワークフロー又は異なるユーザが現れる場合には、インターフェースは、それに応じて、既存のモデル及びデータ統合ジョブ又はプロセスに影響を及ぼすことなく適合させることができる。新しいサービス又はモデルが開発される場合には、ユーザ・インターフェースを修正することなく（もちろん、異なるユーザ・インターフェースを所望しない限り）それらをサービス指向アーキテクチャに付加することができる。
【０２２２】
ＧＵＩ５２０２のアーキテクチャは、システム・アーキテクチャ又はメタデータ・モデルの詳細な知識なしにユーザが設計５３０４を操作するための制御及びコンポーネントを提供する比較的低スキルのユーザのためのインターフェース等の、システムの代替的な表示を提供することができる。別の高スキル・レベルのユーザ・インターフェースは、同じメタデータ・モデル上で動作しながら、モデル設計のより詳細な制御を提供することができる。高スキル・レベルのＧＵＩは、例えば、より多くの機能及びより大きなカスタマイズへのアクセスを提供することができる。同様に、ＧＵＩ５２０２は、監視、デプロイ及び動作制御のような行動によって定義することもできるし、或いは、重役、役員、経営幹部、管理者、分析家、会計係、エンジニア等のような職業によって定義することもできる、代替的な役割に依存する表示を提供することができる。役割は、経営幹部が社長、副社長等として分類される場合、又は分析家がマーケティング分析家、ビジネス分析家、金融分析家等の一人である場合のような階層によって定義することもできる。別の例としては、ＧＵＩ５２０２は、特にモバイル・デバイス向けになっているか、又はより具体的には、Ｒｅｓｅａｒｃｈ  Ｉｎ  Ｍｏｔｉｏｎ  Ｌｉｍｉｔｅｄ社からのＢｌａｃｋＢｅｒｒｙ７７３０及びＤｅｌｌ  Ｉｎｃ．社からのＡｘｉｍ  Ｘ３０による使用向けになっているユーザ・インターフェース等の、プラットフォームに依存する表示を提供することができる。さらにより具体的には、タスク・マトリックスは、ラップトップ・コンピュータを用いる技術員向けに、又はＭｏｔｏｒｏｌａの携帯電話を用いる会社の役員向けに定義することができる。各々のユーザ・プロファイルは、全てが共通の共有メタデータ・モデル上で動作する状態で、別個のタスク・マトリックスとして実現することができる。
【０２２３】
ＧＵＩ５２０２は、他の外部ツールの必要なく設計の初めから最終的なデプロイまでの設計ソリューションの全てのアスペクトについての統合ユーザ環境を提供することができる。ＧＵＩ５２０２は、カタログ管理、検索、クエリ、ナビゲート、パーソナライズ、スクリプト、永続性、又はデータ統合ソリューションの設計５３０４に関連した他のタスク等の共通機能を全てのユーザ・レベルに提供することができる。ユーザは、スキル別又は役割別のユーザ・インターフェース機能を用いてデータ統合設計ソリューション５３０４にアクセスすることができる。異なるユーザ・ビュー５３０２は、設計機能の複数のレベルの複雑さを可能にすることができる。例としては、多くのデータ統合設計ソリューション５３０４において、種々のスキルを有する種々の組織からのユーザが共にチームになって、単一の設計ソリューション５３０４を開発することができる。ＧＵＩ５２０２は、様々なスキルのユーザが彼らの専門分野に適用可能な機能及びサービスを取り扱うことを可能にするように構成可能となり得る。アーキテクチャ５２００は、こうしたチームが同じメタデータ、モデル及び設計において協働することを可能にすることができ、ライブ・モデルが全てのユーザに共通であるため、変更が種々のチーム・メンバによって行われる際に、グローバルな可視性を提供することができる。
【０２２４】
ユーザのスキル・レベルに関係なく、ユーザ・ビュー５３０２は、設計ソリューション５３０４を作成する各種のユーザによる使用のための共通の機能ライブラリ及び設計ウィザード５３００に公開することができる。ライブラリ及び設計ウィザード５３００機能は、ユーザ・ビュー５３０２のスキル・レベルに基づくアクセスを提供することができ、スキル・レベル・ベースで利用可能な機能を制限することができる。ユーザ・ビュー５３０２は、メタデータ及びモデルへの共有アクセスによってチーム協働を可能にすることができる。
【０２２５】
ユーザ・ビュー５３０２は、データ統合設計ソリューション５３０４のためのタスク及びコンテクスト指向ガイダンスによって編成することができる。データ統合設計が複雑化するのに伴って、ユーザが設計ソリューション５３０４に取り組んでいるあいだ、タスク指向の選択肢を提供することが有利になる。例として、ユーザがクエリを作成している場合には、ユーザをクエリの適切な設計に案内するために利用可能なクエリタスクの選択肢を表示することができる。設計の異なるアスペクトが付加され又は修正される際に、適切なコンテクスト機能及びサービスがユーザに利用可能になり、ユーザを堅牢な設計ソリューション５３０４に案内するのを助けることができる。例としては、ユーザは、データ・ソース・コンポーネントを設計に付加することができ、インターフェースは、如何なる適切なメタデータ・カタログ、インポート、サンプル・データ及びデータ・プロファイル機能をも表示することができる。さらに、利用可能なカタログは、既に現在の設計に関連付けられているデータ・ソースのみを表示することができる。ユーザには、ユーザが他の設計アスペクトを再使用することができるように同じデータ・ソースを使用した他のデータ統合設計を示すこともできる。
【０２２６】
設計ソリューション５３０４に取り組んでいるあいだ、ユーザ・ビュー５３０２は、設計ソリューション５３０４を見た目にはあまり複雑にしないように設計の特定の細部についての制限的な表示にすることができる。ユーザは、ユーザがモデル、集約及び関連付け、ビジネス・プロセス、制御フロー、データ・アクセス、エラー処理、又は他の設計アスペクト等の、その時点で動作させられている設計アスペクトにのみ重点を置くことができるようにするために、複数の設計層を隠すか又は公開することが可能である。
【０２２７】
図５７の態様は、内部と外部の両方の複数のリソースを用いる、多数の作成サイトを有するエンタープライズ環境に適用可能である。ユーザ・ビューは、異なる位置でのモデリング、分析、作成、テスト、動作、及びアドミニストレータ等のトランザクションによって、複数の地理的な位置から設計ソリューション５３０４を取り扱うことができる。図５７について上述した全ての態様は遠隔位置で利用可能である。
【０２２８】
図５８は、ＳＯＡについての役割及び関係を記述するＵＭＬダイアグラムを示す。ＳＯＡクライアント５４１２は、サービス・ディレクトリ５４１８を介してサービス５４１４を見つけ出し、インスタンス化することができる。各々のサービス５４１４が、コンポーネント・サービス５４２０等の共通の共有サービスを含む、それらの実装の一部として他のサービス５４１４を使用することができる。コンポーネント・サービス５４２０は、データベース、ファイル、アプリケーション、キュー等の任意の外部リソース・コネクタを設計時に使用できるサービスとして公開することができる。
【０２２９】
クライアント５４１２は、サービス５４１４へのクライアントとして機能するプログラマティック又はユーザ・インターフェースの汎用化を表す。プロセス・デザイナ５４０２は、例えば、モデル又はプロセスを操作するためのグラフィカル・ユーザ・インターフェース又はプログラマチック・アクセスを提供することができる。ＡＰＩ５４１０は、上述のアーキテクチャ５２００によって提供される如何なるサービスとすることもできるサービス５４１４にアクセスするために、外部プログラムのためのアプリケーション・プログラミング・インターフェースを提供することができる。ウィザード５４０８は、例えば、メタデータ・モデルを作成するか又は統合タスクの循環収集を実行するといった設計ステップの事前パッケージ化された収集を提供することができる。コンパイラ５４０４は、インターフェースをコンパイル及びランタイム・サービス、又は他のデプロイサービスに提供することができる。これらの特定のインターフェースの各々、並びに、任意の数の他のインターフェース又はこれらのインターフェースの組み合わせは、上述のアーキテクチャ５２００内の動作を実行するためのサービス５４１４へのクライアント５４１２として機能することができる。
【０２３０】
各々のサービス５４１４は、第１のサービスが第２のサービス、すなわち、それ自体の別のインスタンスを使用でき、今度はそれが、第３のサービス、すなわち、それ自体の別のインスタンスを使用でき、そしてまた以下同様に使用できる、という点で再帰的となる。サービスの他の組み合わせを用いるサービスの再帰的又はネスト構造は、一般にクライアント５２１４に対し透過的である。より具体的には、アーキテクチャ５２００内の各々の製品機能、並びに、サービス５４１４の組み合わせは、クライアント５４１２による使用のためにサービスに組み入れることができる。クライアント５４１２に公開されるサービス５４１４は、共通コア・サービス５２１０、製品機能サービス５２１２、メタデータ及びリポジトリ・サービス５２２２、又はサービス・ディレクトリ５４１８に分類整理することができるその他のあらゆるサービスの一部とすることができる。
【０２３１】
クライアント５４１２は、サービス・ディレクトリ５４１８を介してサービス５４１４を見つけ出し、インスタンス化することができる。サービス５４１４がインスタンス化されると、それは、設計に使用することができる。ＵＭＬダイアグラムにおいて分かるように、サービス５４１４がサービス・ディレクトリ５４１８から情報を受け取るときに、サービス・ディレクトリ５４１８対サービス５４１４の１対多数の関係が存在し得る。例としては、クライアント５４１２は、インスタンス化されていないサービス５４１４を要求することができる。要求は、サービス・ディレクトリ５４１８に渡すことができ、それは、サービス５４１４をインスタンス化し、サービス５４１４をクライアント５４１２に公開することができる。このプロセスは、インスタンス化されるサービス５４１４によって使用されるサービス等の第２のサービスをインスタンス化することもできる。
【０２３２】
コンポーネント・サービス５４２０は、個々のコンポーネントの機能へのアクセスを提供することができ、データベース、ファイル、アプリケーション、キュー、メタデータ、又は他の利用可能なリソース等の外部リソースをサービス５４１４として公開することができる。公開されたこれらの外部リソースは、設計時に（プロセス・デザイナ５４０２を介して）ユーザにサービス５４１４として利用可能となり、ランタイム時にランタイム・エンジンに利用可能となり得る。また、コンポーネント・サービス５４２０及びコネクタ５２１８を介して、外部リソースは、ＳＯＡアーキテクチャ５２００内のサービスにアクセスできる場合がある。
【０２３３】
図５９を参照すると、ＳＯＡ５２０１環境の概略図は、ＳＯＡ５２０１がどのように他のアーキテクチャ５２００のクライアント及びサービスにインターフェース接続するかを示す。ＳＯＡ５２０１のコアは、サービス・バインディング５５１２、ＳＯＡインフラストラクチャ５５１４、及びサービス実装５５１８とすることができる。サービス・バインディング５５１２は、ＧＵＩ５５０８、アプリケーション５５０４、スクリプト・オーケストレーション５５０２、管理フレームワーク５５００及び他のクライアント等のクライアントの、ＳＯＡ５２０１の内部又は外部とすることができるサービスへのバインディングを可能にすることができる。バインドされたサービスは、共通コア・サービス５５２０の一部とすることができ、サービス・バインディング５５１２は、サービス記述レジストリ５５１０にアクセスして、サービスをインスタンス化することができる。サービス・バインディング５５１２は、クライアントが同じ又は異なる技術を用いてローカル又は外部とすることができるサービスを使用することを可能にすることができる。外部サービスへのバインディングは、外部サービスを公開することができ、それらは、内部サービスと同じ方法で呼び出すことができる。サービスへの通信は、同期又は非同期とすることができ、異なる通信経路を使用することができ、ステートフル又はステートレスとすることができる。サービス・バインディング５５１２は、ＨＴＴＰ、ＣＯＲＢＡ／ＲＭＩ、ＪＭＳ、又はＪＣＡ等の複数のプロトコルへのサポートを提供することができる。サービス・バインディング５５１２は、コンピュータ環境によって自動的にサービス・バインディングについての適切なプロトコルを決定することもできるし、或いは、ユーザが、設計ソリューション５３０４の一部としてＧＵＩ５５０８からプロトコルを選択することもできる。
【０２３４】
管理フレームワーク５５００のクライアントは、ＳＯＡ５２０１のサービスをインストールし、公開し、分類整理し、構成し、監視し、他の方法で管理するためのファシリティを提供することができる。管理フレームワーク５５００は、接続によってクライアント、内部サービス、外部サービス、又は内部若しくは外部メタデータ内のメタデータへのアクセスを提供することができる。
【０２３５】
オーケストレーション・クライアント５５０２は、複数のＳＯＡ５２０１のサービスを設計ソリューション５３０４に組み込むことによって、複数の複雑な製品機能及びワークフローを設計することを可能にすることができる。これらのサービスは、共通コア・サービス５５２０、内部サービス５５２４に対し外部のサービス、内部プロセス５５２８、又はユーザ定義済みサービス５５２２から構成することができる。ＳＯＡ５２０１のオーケストレーションが、エンタープライズ環境において統一されたデータ統合設計を提供する機能のコアである。クライアント、コア・サービス、メタデータ・リポジトリ・サービス、デプロイエンジン、並びに外部サービス及びメタデータ間のオーケストレーションが、広範なエンタープライズの要求を満たす設計を可能にする。統一された手法は、エンタープライズ設計のためにスイート全体を共にバインドするアーキテクチャを提供し、アーキテクチャを介してデプロイ設計ソリューション５３０４までの設計プロセス全体のシームレスな表示を可能にする単一のＧＵＩ５５０８を可能にすることができる。
【０２３６】
アプリケーション・クライアント５５０４は、サービスが必要に応じて共通機能を呼び出すことを可能にすることによって、ＳＯＡ５２０１の調整されたサービスへの付加的な機能をプログラマチックに提供することができる。アプリケーション・クライアント５５０４の機能は、サービスが機能を呼び出し、あたかもそれらがサービスの一部であるかのようにそれらを適用することを可能にすることによって、ＳＯＡ５２０１のサービス機能を強化することができる。ＧＵＩクライアント５５０８は、これらのサービス及びリソースをグラフィカルに表示し、操作することを可能にすることによって、ＳＯＡ５２０１のサービス及びリソースへのユーザ・インターフェースを提供することができる。ＧＵＩ５５０８は、上記の図５７の説明においてより十分に説明されている。
【０２３７】
ＳＯＡインフラストラクチャ５５１４は、Ｊ２ＥＥベースのものとすることができ、サービスがデプロイ環境とは無関係に作成されることを可能にするためのファシリティを提供することができる。ＳＯＡインフラストラクチャ５５１４は、リソース・プーリング、インターセプト、直列化、ロード・バランシング、イベント・リスニング、及び監視等のデプロイ環境のサポートにおいて付加的な機能を提供することができる。ＳＯＡインフラストラクチャ５５１４は、コンピュータ環境にアクセスでき、ＧＵＩ５５０８に利用可能なサービスに影響を与え、コンテクスト指示のＧＵＩ５５０８をサポートすることができる。
【０２３８】
ＳＯＡインフラストラクチャ５５１４は、例えば、エンタープライズ・ジャバ・ビーン（ＥＪＢ）及びリアルタイム統合（ＲＴＩ）を用いてリソース・プーリングを提供することができる。リソース・プーリングは、複数の並行サービス・インスタンスが内部と外部の両方の少数のリソースを共有することを可能にすることができる。
【０２３９】
ＳＯＡインフラストラクチャは、多数の有用なツール及び機能を提供することができる。インターセプトは、暗号化、圧縮、追跡、監視、及びサービスに対し透過的とすることができる他の管理ツールの挿入を提供することができ、これらのサービスの報告をクライアント及び他のサービスに提供することができる。直列化及び非直列化は、複数の呼び出しプロトコルにわたり且つ異なる技術にわたる複合サービス要求及びデータ転送サポートを提供することができる。ロード・バランシングは、複数のサービス・インスタンスが複数のサーバにわたって分散させられることを可能にすることができる。ロード・バランシングは、複数のサーバ上で１つ又は複数のプロセッサにアクセスする高い並行性処理又は高いスループット処理をサポートすることができる。イベント・リスニング及び生成は、監視された外部イベントに基づくサービスの呼び出しを可能にすることができる。これは、特定の条件が生じる可能性がある場合に、第１のサービスの機能に基づいて第２のサービスの呼び出しを可能にすることができる。イベント・リスニングは、前に呼び出したときと同じ識別子を用いてサービスを呼び出すことができることを指定する呼び戻し機能をサポートすることもできる。
【０２４０】
サービス記述レジストリ５５１０は、全ての他のサービスについての全てのインターフェース及び使用規格を保持するサービスとすることができる。サービス記述レジストリ５５１０は、キュー及び選択サービスを提供して、設計ソリューション５３０４と共に使用されるサービス、バインディング及びプロトコルのインスタンスを作成することができる。例としては、ＳＯＡ５２０１が、呼び出されるサービスのキュー又は選択を要求することになる場合には、クライアント又は他のサービスが、サービスのインスタンスをＳＯＡ５２０１に要求することができる。次に、サービス記述レジストリ５５１０は、サービス・バインディング５５１２によるバインディングのためのサービス・インスタンスを返すことができ、次いで、設計ソリューション５３０４に使用することができる。
【０２４１】
共通コア・サービス５５２０は、設計ソリューション５３０４及びランタイムデプロイソリューションを作成するために呼び出すことができる複数のサービスを含むことができる。共通コア・サービス５５２０は、設計ソリューション５３０４のための共通サービスの全てを含むことができ、それにより他のサービスをこれらのサービス自体の機能を保持する必要性から解放する。サービス自体は、設計ソリューション５３０４を完了する要求通りに、共通コア・サービス５５２０内の他のサービスを呼び出すことができる。複数のクライアントは、サービス・バインディング５５１２、ＳＯＡインフラストラクチャ５５１４及びサービス記述レジストリ５５１０を介して共通コア・サービス５５２０内の他のサービスを呼び出すことができる。複数のクライアントは、サービス・バインディング５５１２、ＳＯＡインフラストラクチャ５５１４及びサービス記述レジストリ５５１０を介して共通コア・サービス５５２０にアクセスすることができる。共通コア・サービスは、メタデータ・リポジトリ・サービス５２２２及びＳＯＡインフラストラクチャ５５１４を介して外部サービスによってアクセスすることもできる。
【０２４２】
付加的な外部サービスは、サービス実装５５１８を介してＳＯＡインフラストラクチャ５５１２によってサポートされる環境のいずれかにアクセスすることができる。サービス実装は、アダプタ及びコネクタ５２１８の使用によって外部サービスへのアクセスを提供することができる。サービス実装５５１８によって、サービス５５２４は、設計ソリューション５３０４を作成するために他のソフトウェア製品によって提供される特定の製品機能を公開することができる。これらのサービス５５２４は、調査、設計、作成、テスト、デプロイ、動作、監視、調整、又は他の機能を提供することができる。例としては、サービス５５２４は、データ統合ジョブを実行することができ、メタデータ、メタ・モデル又はサービスについてＳＯＡ５２０１にアクセスすることができる。
【０２４３】
サービス実装５５１８は、プロセス５５２８のためのアクセスを、他のツールを用いて作成され、サービスとしてＳＯＡインフラストラクチャ５５１４に公開される統合プロセスに、提供することができる。他のツールのユーザがこれらの統合プロセスを作成することができ、これらのプロセスは、サービスとしてＳＯＡ５２０１及びクライアントに公開することができる。
【０２４４】
サービス実装５５１８は、ユーザが彼ら自身のカスタム・プロセスを定義し又は作成し、それらをＳＯＡサービスとして公開することを可能にするユーザ定義済みサービス５５２２へのアクセスを提供することもできる。ユーザ定義済みサービス５５２２をＳＯＡサービスとして公開することにより、それらをＳＯＡ５２０１の全てのクライアント及びサービスに公開することが可能になる。
【０２４５】
図６０は、リポジトリ・サービス５２２２とツール５６０４、レガシ・ツール５６０２及び外部ツール５６００との相互作用を示す。リポジトリ・サービス５２２２は、アクセスのためのサービスを内部ツール５６０４、レガシ・ツール５６０２及び／又は外部ツール５６００のためのメタデータ・モデルに提供することができる。これらのサービスの各々は、リポジトリ・サービス５２２４によって保持されるリポジトリ空間内にメタデータ又はメタモデルを保持することができる。リポジトリ・サービス５２２４は、セマンティック・ハブ５６１４へのモデル・マッピング（矢印によって示される）を通じて、種々のツールが他のメタデータにアクセスするための機能を提供することができる。
【０２４６】
アーキテクチャ５２００において、ツール５６０４は、それらの作業メタデータのための別個のモデルを使用し、リポジトリ・サービス５２２２によって提供されるリポジトリ５２２４に格納することができる。リポジトリ５２２４は、ＳＯＡ５２０１の複数のサービスによって共有できるツール別のモデル、メタデータ・モデル及び共通モデルを格納することができる。ツール５６０４は、ＳＯＡ５２０１を介してリポジトリ５２２４にアクセスすることができ、設計ソリューション５３０４のためのデータ及びメタデータを提供することができる。データ・プロファイル、データ・クレンジング、設計ソリューション５３０４、又は他のデータ統合関連アクション等の活動については、リポジトリ５２２４内に別個の機能領域が存在してもよい。
【０２４７】
リポジトリ・サービス５２２２は、レガシ・ツール５６０２と相互作用することができ、レガシ・モデル・リポジトリ５６１２を維持することができる。レガシ・モデルは、メタデータの共存、メタデータのマイグレーション、メタデータの並行バージョン、又は設計ソリューション５３０４に対する他のメタデータ及びモデリング要求のために使用することができる。レガシ・モデル・リポジトリ５６１２は、リポジトリ・サービス５２２２によって維持することができ、レガシ・モデル・リポジトリ５６１２からリポジトリ５２２４へのマッピングを用いて、レガシ・ツール５６０２は、サービスとしてツール５６０４に公開することができる。リポジトリ５２２４からレガシ・ツール５６１２への同じマッピングを用いることにより、これらのツールは、サービスとしてレガシ・ツール５６０２に公開されることになる。レガシ・モデル・リポジトリ５６１２がリポジトリ５２２４及びツール５６０４に公開された状態で、レガシ・モデル・リポジトリ５６１２からのメタデータ及びデータは、並行メタデータとして保持することもできるし、或いは、既存のリポジトリ・メタデータと一致させることもできる。
【０２４８】
リポジトリ・サービス５２２２は、外部ツール５６００についてメタデータ及びモデルをインポートし、エクスポートする（５６０８）ための主要サービスとすることができる。外部メタデータ及びモデルをインポートして、リポジトリ・サービス５２２４によって保持できる外部表示モデル５６１０を作成することができる。これらの外部表示モデルは、設計ソリューション５３０４及びデプロイのためにＳＯＡ５２０１に公開することができる。リポジトリ・サービス５２２２においては、モデルは、他のモデルを参照することができ、ツールが並行して複数のモデルにアクセスすることを可能にすることができる。リポジトリと外部リポジトリとの間のモデル参照は、複数のツールがリポジトリ５２２４において同じメタデータ又はモデルを共有することも可能にする。
【０２４９】
リポジトリ・サービス５２２２は、セマンティック・ハブ・モデルを用いて、外部表示モデル５６１０、レガシ・モデル５６１２、並びに、外部ツール５６００、レガシ・ツール５６０２及びツール５６０４へのリポジトリ・モデル５２２４にアクセスを提供することができる。セマンティック・ハブ・モデルは、外部表示モデル５６１０、レガシ・モデル５６１２及びリポジトリ・モデル５２２４間のマッピングを維持する整合モデルとすることができ、ツール５６０４がメタデータを共有できるようにするために部分的なマッピングのみが要求される。他のシステム・コンポーネント間のセマンティック・ハブ・モデル５６１４のマッピングの使用により、ツール５６０４は、ユーザ設計ソリューション５３０４についてレガシ・モデル５６１２及び外部表示モデル５６１０にアクセスすることができる。セマンティック・ハブ・モデル５６１４のマッピングは、ＳＯＡ５２０１のサービスについての外部表示モデル５６１０のライブ・メタデータ分析を提供することができる。ツール５６０４は、レガシ・モデルにアクセスすることができ、レガシ・メタデータ及びモデルの共存と、リポジトリ５２２４へのマイグレーションをサポートすることができる。ツール５６０４は、レガシ・モデル５６１２と相互作用することができ、それらをメタデータ及びモデルの付加的なバージョンとしてサポートすることができる。レガシ・モデル５６１２は、リポジトリ５２２４のモデルにマイグレートすることができる。セマンティック・ハブ・モデル５６１４を介して、外部ツール５６００及びレガシ・ツール５６０２は、ＳＯＡコネクタ５２１８にアクセスすることによってＳＯＡ５２０１のサービスにアクセスすることができる。
【０２５０】
図６１は、上述のリポジトリ・サービス５２２２等のリポジトリ・サービスのためのアーキテクチャを示す。アーキテクチャは、ＧＵＩクライアント、非ＧＵＩクライアント及びサービス等のインターフェース５７００を含むことができる。アーキテクチャは、ＸＭＩストリーム５７０２、アプリケーション・プログラミング・インターフェース５７０４、インポート／エクスポート機能５６０８、定義及び拡張機能５７１０、ナビゲーション機能５７１２、クエリ機能５７１４、内部分散、ロッキング及びキャッシュ・サービス５７０８、内部永続性及びバージョニング・サービス５７１８、オブジェクト管理サービス５７２０、並びに、データベース５７２２をさらに含むことができる。一般に、アーキテクチャは、モデルの履歴及び永続性を保存するデータベース機能を提供しながら、データベース５７２２内のモデルへのプログラマチック・アクセス又は他のアクセスを各種のユーザ及びユーザ・タイプに提供する。リポジトリ・サービス５２２２は、メタ・モデル（すなわち、メタデータのモデル）、並びに、ジョブ、サービス又は他の機能における実行のためのモデル・インスタンス等の設計モデルを保持することができる。
【０２５１】
インターフェース５７００及びＸＭＩストリーム５７０２は、リポジトリ・サービス５２２２と外部ユーザとの間の如何なる適切なフォーマットの通信をも提供することができる。インターフェース５７００は、プログラミング・インターフェース、メッセージ指向インターフェース、及び／又はリポジトリ・サービス５２２２への外部アクセスのための他のインターフェースを提供することができる。例えば、ＸＭＩメタデータ交換（ＸＭＩ）ストリーム５７０２は、メタモデル及びインスタンス・ファイルの保管−復元−交換フォーマットを符号化し、伝送するための標準的なメッセージ指向フォーマットを提供することができる。ＸＭＩストリーム５７０２は、リポジトリ・サービス５２２２のインポート及びエクスポート機能５６０８と直接通信することができる。
【０２５２】
アプリケーション・プログラミング・インターフェース（ＡＰＩ）５７０４は、例えば、リポジトリ・サービス５２２２にアクセスするクライアントから属性値及びオブジェクトＩＤを受け取ることができる。ＡＰＩは、リポジトリ５２２２の構造か又はリポジトリ５２２２にアクセスするインターフェース５７００の形態及び機能のいずれか、或いは、その両方についての情報を別個に保持する反射インターフェースを含むことができる。ユーザは、直接的なプログラマチック・インターフェース（例えば、Ｊａｖａクラス）を用いて、又は例えば、リポジトリ・サービス５２２２の構造についての情報をあまり要求しない、及び／又はリポジトリ・サービスにアクセスしているユーザについての、インターフェース５７００からの明示的な情報をあまり要求しないプログラミング・インターフェース５７０４の反射形態を用いて、データベース５７２２内のメタデータにアクセスすることができる。例えば、アプリケーション・プログラミング・インターフェース５７０４は、既知のインターフェース５７００によって使用されるモデルを検出し、及び／又は記述して、リポジトリ・サービス５２２２にアクセスする定義及び拡張機能５７１０を含むことができる。アプリケーション・プログラミング・インターフェース５７０４は、既知のＧＵＩ（又は非ＧＵＩ）クライアント・インターフェース５７００によって提供されるナビゲーションの構造及び形態の認識を有するナビゲーション機能５７１２をさらに含むことができる。これらの機能５７０４、５７１０、５７１２を用いることにより、リポジトリ・サービス５２２２は、既知の構成を有する種々のインターフェース５７００からの要求を良好にインターセプトし、応答することができる。代替的には、如何なるモデル認識のクライアント又はサービスも、モデル定義からコンパイルされた任意のモデル別のクラスに直接アクセスすることができる。
【０２５３】
クエリ機能５７１４は、ＧＵＩ、非ＧＵＩクライアント及びサービス等のインターフェース５７００からの適切なフォーマット済み要求についてリポジトリ・サービス５２２２を直接公開することができる。例えば、クエリ機能５７１４は、直接クライアント及びサービス５７００からクエリを受け取るか又は表現を更新することができ、直接応答オブジェクトＩＤによって応答することができる。検索等の他の一般的に使用されるデータ検索及び更新機能は、クエリ機能５７１４と共に又はそれに加えて含めることができる。クエリ機能５７１４は、データベース５７２２として使用される任意の市販のリレーショナル・データベース、又はデータをリポジトリ・サービス５２２２内に格納するのに有用なその他のあらゆる標準的な若しくは独自のデータベースによって定義することができる。
【０２５４】
オブジェクト管理サービス５７２０は、データベース５７２２へのアクセスを制御するために、例えばオブジェクト分散、ロッキング及びキャッシュ・サービス５７０８を用いて、並びに、データベース５７２２内のオブジェクトのバージョニング及び他の関連形態を管理するためにオブジェクト永続性及びバージョン・サービス５７１８を用いて、データベース５７２２内のデータを管理することができる。例えば、永続性及びバージョニング・サービス５７１８は、多数の後継ブランチ及び自動又は半自動マージによって、メタ・モデルとモデル・インスタンスの両方のバージョニングをサポートすることができる。永続性及びバージョニング・サービス５７１８は、他のシステム・リビジョン又は更新を乗り切るインスタンスによってカスタム又はユーザ定義済みモデルをサポートすることもできる。別の例としては、永続性及びバージョニング・サービス５７１８は、多数の並行モデル・バージョンの使用をサポートすることができる。同時に、リポジトリ・サービス５２２２は、Ｍｉｒｃｏｓｏｆｔ  ＳＣＣＩ規格等に従って、外部ソース制御及びバージョン管理システムへのインターフェースを提供することができる。モデル間参照は、永続的なものとすることができる。より一般的には、メタデータ・サービスは、リポジトリ・アーキテクチャ内の任意の層（データベース及び如何なるコア・サービスよりも上）に常駐することができ、例えば、インポートされた項目等のメタデータ項目の調整、インパクト分析、変更伝搬及びデータ・リネージュ等の分析、報告及び文書化、エンタープライズ全体及び個人カタログのためのカタログ化及びカテゴリ化スキーム、協働及びワークフロー・サポート、並びに、スクリプト機能のための機能を提供することができる。
【０２５５】
データベース５７２２は、例えば、上述のデータ・ソース１０２のいずれかとすることができる。動作（例えば、ランタイム）リポジトリ及び設計リポジトリ（共通リポジトリ又はコア・リポジトリとも呼ばれる）を含むことができる論理リポジトリは、個人、チーム／プロジェクト、区分、又はエンタープライズ・リポジトリ、並びに、集中化又は非集中化リポジトリを含む、多数の及び／又は分散リポジトリとして柔軟に構成することができることが認識される。さらに、リポジトリは、異なるリポジトリ・インスタンス間の自動同期を提供することができる。リポジトリ・サービス５２２２は、外部クライアント及びサービス５７００に対し透過的な方法でリポジトリの構成を管理するために機能又はサービスを含むことができる。
【０２５６】
図６２を参照すると、コンポーネント及びコンポジション・モデルを記述するハイレベルのＵＭＬ図が示される。コンポーネントは、種々のタイプの変形及び統合等の、外部リソースを含むことができる設計ソリューション５３０４のきめ細かい要素とすることができる。コンポーネントは、サービスとして公開し、ＳＯＡ５２０１によって調整することができるコンポジションの中に共にリンクすることができる。したがって、データ統合プロセスにおけるサービスについてのコンポーネント・ベースの設計又は記述がここでは説明される。コンポーネントの要素が、以下に説明される。
【０２５７】
コンポーネントは、段階エディタ等の、少なくとも１つの関連する設計時オブジェクト、ｄｅｓｉｇｎｔｉｍｅ５８１４と共に、定義、ｃｏｍｐｏｎｅｎｔｄｅｆ５８１０を有することができる。複数のｄｅｓｉｇｎｔｉｍｅ５８１４オブジェクトは、設計要件によってｃｏｍｐｏｎｅｎｔｄｅｆ５８１０と関連付けることができる。ｃｏｍｐｏｎｅｎｔｄｅｆ５８１０は、そのコンポーネントについて特性の名前及びタイプを指定できる、複数の特性定義オブジェクト、ｐｒｏｐｅｒｔｙｄｅｆ５８０２をさらに含むことができる。
【０２５８】
柔軟なソリューション作成のサポートにおいて、アーキテクチャ５２００は、抽象と具象の両方のコンポーネントをサポートする。抽象コンポーネントは、柔軟な増分的作成をサポートすることができ、部分的な指定のみによってオブジェクトを表すことができる。ａｂｓｔｒａｃｔｃｏｍｐｏｎｅｎｔｄｅｆ５８２０は、データベース又はプロセス等の特定のタイプの抽象コンポーネントを表すことができ、設計ソリューション５３０４において後の時点で具体化し得る。具象コンポーネントは、完全に定義されたオブジェクトであり、ｃｏｎｃｒｅｔｅｃｏｍｐｏｎｅｎｔｄｅｆ５８１８によって定義される。
【０２５９】
具象コンポーネントは、生成されたコード、高いスループット、デバッギング、チェックポイント、又はプロセス状態の永続性等の、デプロイエンジン毎のランタイム５８１４の実行オブジェクトを有することができる。ランタイム実行オブジェクトは、設計ソリューション５３０４のデプロイにおける初期化、公開、実行、取得、配置、波の終端、リセット、異常終了等の、コンポーネント・インスタンスのライフサイクル動作をサポートすることができる。ｃｏｎｎｅｃｔｏｒｄｅｆ５８２８オブジェクトは、外部リソースに接続することができ、かつ、サービス又はメタデータ等の外部リソースへの公開を提供することができる、ｃｏｎｃｒｅｔｅｃｏｍｐｏｎｅｎｔｄｅｆ５８１８を定義することができる。
【０２６０】
きめ細かいコンポーネントは、より複雑な機能のコンポジションを形成するために、相互接続することができる。一般に、特定のランタイム環境内で識別できる高性能のインターフェースのために、きめ細かいコンポーネントを使用し又は共に構成することができる。したがって、コンポーネント・ベースの設計は、本明細書において説明されたサービス指向アーキテクチャとは無関係に有用なものとなり得る。しかしながら、コンポジションは、ｃｏｍｐｏｓｉｔｉｏｎｄｅｆ５８２２によって定義され、それは再帰的であり、他のＳＯＡ５２０１の調整済みサービスによって再使用可能であり、他のＳＯＡ５２０１クライアント及びサービスにサービスとして公開することができる。ｃｏｍｐｏｓｉｔｉｏｎｄｅｆ５８２２の最外レベルは、特殊なｃｏｍｐｏｓｉｔｉｏｎｄｅｆ５８２２とすることができるｐｒｏｃｅｓｓｄｅｆ５８３０とすることができる。ｃｏｍｐｏｓｉｔｉｏｎｉｎｓｔａｎｃｅ５８２４は、各々の新しい定義済みｃｏｍｐｏｓｉｔｉｏｎｄｅｆ５８２２を用いて作成することができ、ｃｏｍｐｏｓｉｔｉｏｎｉｎｓｔａｎｃｅ５８２４は、インスタンスについての特性値を含むことができる。
【０２６１】
コンポジションは、コンポーネントの全てが具象化したときにだけ実行することができる。設計プロセスの間、抽象コンポーネントとして開始するプロセス又はデータベース等の如何なるコンポーネントも、具象コンポーネントになるように定義される必要がある。同時に、抽象コンポーネントのための設計は、具象コンポーネントの最終設計か又は他の外部設計要因のいずれかに応じて、変更することもできるし、或いは、再配列することもできる。したがって、単一の設計又はモデル内の種々のレベルの抽象化において設計を修正できるプログレッシブ設計を実現することができる。共通のコンポジション及び統合プロセス・モデルは、設計ソリューション５３０４のためのＧＵＩ５２０２を介して公開することができる。コンポジションは、それ自体をコンポーネントと考えることができ、コンポジションは、ユーザからさほどのプログラミング・スキルを要求することなくより複雑なコンポジション・サービスを作成するために互いにリンクすることができる。コンポーネント及びコンポジションは、ＧＵＩ５２０２において作成することができ、あまりスキルのないユーザによりコンポーネント及びコンポジション設計についてウィザードにアクセスすることができる。アーキテクチャ５２００のコンポジション・モデルは、それらが特性、入力及び出力、作業単位、ローカル変数、範囲、制御制約、イベント、ステートレス及びステート・ベースの設定、例外、並びに、再帰的コンポジション等の、ＳＯＡ５２０１によって調整されることを可能にする属性を含むことができる。
【０２６２】
図６３は、コンポジション・モデルのＥｎｔｅｒｐｒｉｓｅ  Ｉｎｔｅｇｒａｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＥＩＬ）の例が、ＸＭＬ表示５９１４によって示される。表された統合プロセスは、ＳＯＡ５２０１を介してクライアント又は他のサービスから一連の作業項目メッセージを受け取ることができる。この例においては、これらの作業メッセージの各々が、データベース・ルックアップ５９０４、変形５９０８、関係行へのサブレコードの促進５９１０、及びデータベースへの挿入５９１２を要求することができる。最も外側のアトミック５９００範囲は、実行のためのシーケンスを指定することができる。この例においては、ルックアップ５９０４、変形５９０８、関係行へのサブレコードの促進５９１０、及びデータベースへの挿入５９１２は、逐次的に実行される必要がある。アトミック範囲５９００には、独立５９０２範囲が、データベースへの挿入５９１２によって順に実行できる完全なシーケンスとして公開される。
【０２６３】
内側の独立５９０２範囲は、閉鎖されたシーケンス、データベース・ルックアップ５９０４、変形５９０８、及び関係行へのサブレコードの促進５９１０が互いから独立したパイプライン形式になり得ることを示すことができる。これは、パイプライン化又は並行処理を用いる実行を容易にすることができる。
【０２６４】
このようにして、ＥＩＬモデルは、コンポジションの異なるシーケンスがどのように相互作用するかを定義することができ、すなわち該モデルは、直列的に幾つかのシーケンスを実行し、並列的に他のものを実行するための許可を与えることができる。
【０２６５】
ＸＭＬ表現５９１４は、ＥＩＬモデルのスクリプト解釈を示すことができる。当業者であれば、ＥＩＬモデルへのＸＭＬスクリプトの関連性を理解することができるであろう。
【０２６６】
図６４を参照すると、クライアント及びサービス関係を説明する図５８のＵＭＬ、並びに、コンポーネント及び構成関係を説明する図６２のＵＭＬにおいて説明されたような、クライアント、サービス、及びコンポーネントの関連性のＵＭＬ図が示されている。これらの２つのモジュールの全作業についての詳細な説明に関する図５８及び図６２の前の記述を参照する。
【０２６７】
クライアント５４１２は、ＳＯＡサービス５４１４を用いるデータ統合開発のためのユーザ対話及びＡＰＩを与えることができる。個々のコンポーネントは、ＳＯＡサービス５４１４及びクライアント５４１２とインターフェースする設計時間及びランタイム・インターフェースを与えることができる。設計時間５８０８コンポーネントは、クライアント５４１２とインターフェースすることができ、設計ソリューション５３０４のために、利用可能なコンポーネント機能をもつＳＯＡサービス５４１４によって調整される。この設計時間５８０８コンポーネント及びＳＯＡサービス５４１４との調整は、プロセス・デザイナ５４０２においてユーザに対して利用可能なコンテクストを与えることができ、コンテクストに対して敏感なＧＵＩをサポートすることができる。
【０２６８】
ランタイム５８１４コンポーネントは、ＳＯＡサービス５４１４とインターフェースして利用可能なサービスを伴う設計ソリューション５３０４のデプロイを調整することができる。ＳＯＡサービス５４１４は、ＳＯＡサービス５４１４を設計ソリューション５３０４の設計要件及びハードウェア環境のランタイム要件に対して公開する設計時間コンポーネント５８０８及びランタイム・コンポーネント５８１４の両方との接続を有することができる。ＳＯＡサービス５４１４は、ランタイム・コンポーネント５８１４及び設計ソリューション５３０４のための設計時間コンポーネント５８０８によるデプロイを調整することができる。外部リソースとの通信を担当するコンポーネント・サービス５４２０は、通信サービスをＳＯＡ５４１４に公開して、設計ソリューション５３０４のデプロイ及び設計のために外部リソースに公開されるＳＯＡサービス５４１４を与えるために、コンポーネント・インスタンス５８１２を使用することができる。ＳＯＡサービス５４１４に対する外部リソースの公開は、外部リソース及びサービスへのＳＯＡ５２０１のクライアント及びサービスの公開を抑留することができる。
【０２６９】
図６５を参照すると、第１コンポーネント６１００から第２コンポーネント６１０２に渡されるデータの概略的表現が示されている。アーキテクチャ５２００のランタイム・データ表現は、複数のサービス及び接続が共通のマナーでデータと共に働くことを可能にする共通のデータ表現を使用することができる。アーキテクチャ５２００のリポジトリ・サービス５２２２は、ＸＭＬ、ＥＤＩ、ＣＯＢＯＬ、バイナリ構造、ネイティブ言語フォーマット、ネイティブ・マシン・フォーマットその他の産業データ・フォーマットのような複数のデータ構造とインターフェースすることができる。多数のデータ構造を効率よく処理するために、アーキテクチャ５２００は、共通の内部データ構造を使用することができる。
【０２７０】
リポジトリ・サービス５２２２は、不必要な変換を回避するために最小限のデータ翻訳によりデータをメモリ６１１４に渡すことができ、それによりデータ転送効率を高めることができる。データは、共用可能メモリ６１１４に渡すことができ、そこで、データ統合ジョブを実行するコンポーネントのために必要とされるデータのみが翻訳され、共用可能メモリ６１１４に散在され集合される。ＢＬＯＢ及びＣＬＯＢといった大きな非解釈データ項目は、ソースからターゲットへの参照によって渡すことができる。リファレンスのみを与えることによって、データはデータの必要な部分のみが翻訳され、次いでメモリ６１１４に散在され／集合されることのみが要求されるので、大きな非解釈データがメモリにコピーされる必要はない。
【０２７１】
データを第１コンポーネント６１００から第２コンポーネント６１０２に渡す例は、散在−集合リスト６１０４にアクセスするコンポーネントを示す。散在−集合リスト６１０４は、共用可能メモリ６１１４にあり、ソース又はターゲット・データ表現内のデータのより小さい部分へのポインタを有することができる。データ表現は、ＸＭＬテキスト６１０８、データベース・フェッチ・バッファ６１１０、ＣＯＢＯＬレコード６１１２、又は他のデータ・フォーマットとすることができる。散在−集合リスト６１０４は、データ表現が共用可能メモリ６１１４に一度ロードされることを可能にし、データ表現へのポインタは、必要なデータを指し示すために操作される。実際のデータを動かす代わりに散在−集合リストにおけるポインタを操作することによって、最も繰り返しの多いデータ・コピー及びメモリ再分配をなくすことができる。ポインタがコンポーネントのために確立されると、必要なデータのためのデータ翻訳が自動的に行われ、それは共用メモリ６１１４において翻訳されないデータの大部分を残す。データ処理は、他のコンポーネントによる再使用のために、散在−集合６１０４リストへのポインタと共に、変換されたデータ値をキャッシングすることによってさらに強化される。
【０２７２】
これらの技術を用いて、非常に高性能の形で、構成コンポーネント間でデータを渡すことができる。
【０２７３】
図６６は、アーキテクチャ５２００のための共通エンジンを示す。共通エンジンの枠組みは、フロー・デザイナ６２１０、ウィザード６２１２、格納されたモデル又は前のプロジェクトのような例６２１４、テンプレート６２１６などを用いて共通中間統合プロセス仕様６２２０とインターフェースすることができるプログラマ６２０４、統合デザイナ６２０２、及びビジネス分析家６２００といったユーザを含むことができる。ランタイム・コンパイル及び最適化層６２３０は、高スループット・エンジン６２４０、高並行性エンジン６２４２、格納された手順６２４４、コンピュータ・プログラム・コード６２４６などのようなエンジンの使用に対する種々の度合いの自動又は手動制御を与えることができ、それは次に、共通のコンポーネント及び接続６２５０を介して外部リソースと通信することができる。
【０２７４】
多くのデータ統合サービス及び機能は、変換、導出、集約、ルーティング、メタデータ・マッピング、品質アサーションのような変形、及び他のデータ変形を要求する。アーキテクチャ５２００は、ＧＵＩ５２０２と変形ロジックとを結合する単一の変形仕様を与えることができる。変形の枠組みは、リレーショナル、階層的、ＸＭＬ、任意的及び他の業界標準フォーマットのような複数のデータ・フォーマットのための統一された変形方法を与えることができる。前述のように、変形のような処理は、データのサブセットに限定することができるという利点があり、データのかなりの部分は、どんな変形もなしに渡すことができる。
【０２７５】
図５５に示すように、アーキテクチャ５２００は、種々の組織位置からのユーザが彼らの能力に適した環境で働くことを可能にするスキル・ベースの単一のＧＵＩ５２０２を提供する。この変形の枠組みは、この能力を活用し、データ変形と共に働くＧＵＩの一部として複数のユーザ・インターフェースを与えることができる。この変形の枠組みは、ビジネス分析家６２００、統合デザイナ６２０２、プログラマ６２０４、及び彼らのスキル・セットに合わせられたインターフェースを介するその他のユーザのためのアクセスを提供することができる。
【０２７６】
フロー・デザイナ６２１０、ウィザード６２１２、例６２１４及びテンプレート６２１６は、メタデータ、メタデータ・モデル、サービス、コンポーネント、構成、その他の前述のプロセス設計要素のいずれかを含むことができる共通中間統合プロセス仕様６２２０を設計し修正するために、種々のユーザ６２００、６２０４、６２０６によって用いられる、統合プロセスを設計するための可能なユーザ・インターフェース・ツールの網羅的でない集合体を表す。さらに、これらの又は付加的な可能な設計ユーザ・インターフェースの各々は、ユーザのスキル・レベル、役割、技術プラットフォームなどと整合性が取れた設計詳細へのユーザの異なるレベルのアクセスを可能にする。
【０２７７】
例えば、ビジネス分析家６２００は、条件付き分岐、イベント検出、及びフィルタ・ルールといったより高レベルの論理設計に、より関係していることがある。ビジネス分析家６２００は、例えば、ビジネス分析家６２００のプログラミング・スキルと一致している単純な設計フロー及び変形表現式構築機能を可能にするより単純化され又はより統合された機能を用いて統合プロセス仕様６２２０を開発するために、ウィザード６２１２、例６２１４、又はテンプレート６２１６を使用する傾向がある。
【０２７８】
統合デザイナ６２０２は、品質表明、データ変換、キー表現、ルーティング、フィールドレベル変形及びデータ・クレンジングのためのより複雑なプログラミング能力を可能にすることができる。統合デザイナは、直接の、明示設計のための表現言語と共に動作する、より深い能力を可能にする、ウィザード６２１２、例６２１４、及びテンプレート６２１６、並びに、他の高又は低レベルＧＵＩインターフェースを使用することに加えて、プロセスの明示的なモデル部分のためのフロー・デザイナ６２１０を使用することができる。このＧＵＩレベルは、統合デザイナ６２０２に関して依然としてスキル・レベルの制約があり、援助を要求する表現構築又は他のタスクのためのウィザード６２１２へのアクセスを有することができる。
【０２７９】
プログラマ６２０４は、カスタム変形機能及びカスタム・コンポーネントに対する最大の制御を可能にするために、フロー・デザイナ６２１０、ＧＵＩ、又はコマンド・ライン・インターフェースを使用することが好ましいが、他のインターフェース６２１２、６２１４、６２１６を、設計プロセスの全体を通して交換可能に使用することができる。プログラマ６２０４は、記録レベル及びデータ・セット・レベル論理の機能を含む、統合プロセス設計のための詳細の微細レベルへのアクセスを有することができる。プログラマは、この限りではないが、共通コンポーネント及び接続６２５０の要素を書く又はカスタマイズする機能、ＳＯＡ５２０１を介してアクセスされるユーザ定義されたサービスを作成し使用する機能、並びに、コンパイル及び最適化処理層６２３０への詳細なアドバイスを与える機能を含む、よりきめ細かい機能へのアクセスを可能にする。
【０２８０】
種々のインターフェース６２１０−６２１６を用いると、ビジネス分析家６２００、統合デザイナ６２０２、及びプログラマ６２０４のようなユーザは、統合プロセスを実行するのに用いられるイベント・エンジン及びコンポーネント並びに接続から同じく独立した表現である、共通中間統合プロセス仕様６２２０を使用する統合プロセスを設計することができる。この中間統合プロセス仕様６２２０は、ＥＩＬ５９００のような共通中間統合プロセス仕様言語又はその他の等価な表現で表すことができる。
【０２８１】
コンパイル及び最適化プロセス層６２３０は、共通中間統合プロセス仕様６２３０を、この限りではないが、高スループット・エンジン６２４０、高並行性エンジン６２４２、１つ又はそれ以上のデータベース格納手順６２４４、及び／又は、この限りではないがＣ、Ｃ＋＋、Ｃ♯、ＣＯＢＯＬ、並びにＪａｖａＢｅａｎｓ及びＥｎｔｅｒｐｒｉｓｅ  ＪａｖａＢｅａｎｓを含むＪａｖａを含む従来のプログラミング言語のいずれかのコンピュータ・プログラム生成コード６２４６の１つ又はそれ以上のセグメント、又は、ここで説明されるシステムに適した多目的コンピューティング・アルゴリズムを翻訳し、解釈し、及び／又は実行することができるその他の実行環境を含む、１つ又はそれ以上の実行エンジン環境に固有の実行仕様に翻訳することができる。コンパイル及び最適化プロセス層６２３０は、データ・ソース１０２及びデータ・ターゲット１０２に関するメタデータ・リポジトリ５２１４に格納されたメタデータの知識、並びに、コンピュータ・システム環境構成に関する情報を用いて、統合プロセス仕様６２３０を、種々のエンジン及び実行環境に適した効果的な命令の組み合わせにどのように翻訳するかについての決定を下すことができる。さらに、コンパイル及び最適化プロセス層６２３０は、ＳＯＡ５２０１を介して利用可能な多数のサービス５４１４のいずれかを用いて、統合プロセス仕様６２２０をどのように最良にコンパイルし最適化するかについての情報を得た判断を下すために、データ・プロファイル情報のような付加的なメタデータを導出することができる。
【０２８２】
異なる統合プロセス実行エンジン及び環境６２４０、６２４２、６２４４、６２４６などは、コンポーネント・インプリメンテーション５８１４及びコネクタ６３１０を含む、所定の及び／又はユーザ定義の共通コンポーネント及び外部データ・ソース並びにターゲット接続６２５０を使用することができる。
【０２８３】
カスタム設計された変形コンポーネント、並びに、ビジネス分析家６２００、統合デザイナ６２０２及びプログラマ６２０４のようなクライアントによって作成される接続要素は、リポジトリ・カタログにおける別の共用可能な要素としてリポジトリ５２２４に格納することができ、そこから、実行可能な統合プロセスを生成するためにコンパイル及び最適化層６２３０によって使用され得る。
【０２８４】
図６７を参照すると、アーキテクチャ５２００、サービス６３００、コンポーネント６３０２及びエンジン６３０４がコネクタ・コンポーネント６３１０を介して外部リソースにアクセスすることを可能にする接続アーキテクチャが示されている。これらのサービスは、上記の図面に既に定義されている。
【０２８５】
コネクタ・コンポーネント６３１０の役割は、外部リソースのインターフェースをカプセル化し、これらの外部リソースをコンポーネント６３０８及びサービスと共に使用するために安定化させることである。コネクタの役割は、データを、変形をより効率よく完了させることができる変形コンポーネントのような他のコンポーネント６３０８に、小さな変形を伴って渡すことである。既述のように、変形は、送信された外部データ内の限られた量のデータに関してのみとすることができる。コネクタ６３１０を用いてほんのわずかにデータを変形することにより、コネクタ６３１０がデータをコンポーネント及びサービスに効率よく移動させることが可能になる。コネクタは、コンポーネント・サービス６３０２を介する設計時間インターフェース又はデプロイエンジン６３０４へのランタイム・インターフェースを与える専門化されたコンポーネントとすることができる。
【０２８６】
コネクタ６３１０の一部として、アダプタ６３１２は、特定の外部リソースへのコンポーネント・インターフェースを与えるコンポーネントのサブ・クラスとすることができる。コネクタ６３１０においては、単一の外部リソースのライフサイクルを管理することができる低レベルコンポーネントとして、複数のコネクタ６３１４が存在する。接続６３１４は、読み取り、書き込み、送信し、受信し、クエリし、又は外部リソースを更新することができる関連するイベント・リスニング及びリソース・アクセスを有することができる。
【０２８７】
接続管理インターフェース６３１２は、接続６３１４を支援してプーリング機能を提供することができる。プーリングは、主に高並行性の実行環境のために用いることができ、並行データのスムーズな伝送を可能にする。高スループットの実行環境においては、同じ接続管理インターフェースを用いることができるが、整合接続を与えるために高デューティサイクルの再使用を可能にする持続的な接続を維持することができる。コネクタ６３１０は、インストール、設計時間インターフェース、メタデータ・インターフェース、コンパイル、検証、デバッグ、モニタリング、インスタンス生成、状態管理、プーリング、キャッシング、トランザクション、例外処理、データ・アクセス、イベント検出、永続性、リース、ＢＯＭプロダクション、データ・サンプリング、及びサンプル・データ生成といった、複数の外部リソース・ライフサイクル機能を与えることができる。コネクタ６３１０は、モデルによって説明することができ、リポジトリ５２２４に格納することができ、外部リソースにアクセスするためのセマンティック・ハブ・モデル５６１４にアクセスすることができる。コネクタ６３１０は、ＯＤＢＣ／ＪＤＢＣ、ＪＣＡ、ＥＪＢ及びウェブ・インターフェースといった外部リソースへのラップ・インターフェースをラップすることができる。
【０２８８】
本発明は、特定の好ましい実施形態と関連して説明されたが、他の実施形態が当業者によって理解され、本開示の範囲内に入ることを意図されていると理解されたい。
【図面の簡単な説明】
【０２８９】
【図１】その各々が複数の異なるコンピュータ・アプリケーション及びデータ・ソースを含むことができる、複数のビジネス・プロセスを有するビジネス・エンタープライズの概略図である。
【図２】ビジネス・エンタープライズの複数のビジネス・プロセスにわたるデータ統合を示す概略図である。
【図３】複数のデータ・ソースのためのデータ統合をビジネス・エンタープライズに提供するためのアーキテクチャを示す概略図である。
【図４】データ統合ジョブのための発見ファシリティの詳細を示す概略図である。
【図５】データ統合プロセスの発見ステップを達成するためのステップを示すフロー図である。
【図６】データ統合プロセスのクレンジング・ファシリティを示す概略図である。
【図７】データ統合プロセスのクレンジング・プロセスのためのステップを示すフロー図である。
【図８】データ統合プロセスの変形ファシリティを示す概略図である。
【図９】データをデータ統合プロセスの一部として変形するためのステップを示すフロー図である。
【図１０】グラフィカル・ユーザ・インターフェースを用いてモデル化されるモーゲージ・データのための変形プロセスの例を示す。
【図１１】データ統合プロセスをビジネス・エンタープライズの他のプロセスに接続する複数の接続ファシリティを示す概略図である。
【図１２】ブリッジ・モデルを用いる複数の接続ファシリティを示す。
【図１３】データ統合プロセスをビジネス・エンタープライズの他のプロセスに接続するためのステップを示すフロー図である。
【図１４】データ統合システムを含むエンタープライズ・コンピュータ・システムを示す。
【図１５】データ統合ジョブにおけるメタデータの管理を示す。
【図１６】データ統合ジョブに使用できるアスペクト指向プログラミング環境を示す。
【図１７】データ統合ジョブと関連させてメタデータ・ファシリティを使用するための付加的なステップを示すフロー図である。
【図１８】データ統合ジョブと関連させてメタデータ・ファシリティを使用するための付加的なステップを示すフロー図である。
【図１９】データ統合ジョブと関連させてメタデータ・ファシリティを使用するための付加的なステップを示すフロー図である。
【図２０】データ統合プロセスの複数のプロセスの並列実行のためのファシリティを示す概略図である。
【図２１】データ統合プロセスの複数のプロセスの並列実行のためのステップを示すフロー図である。
【図２２】複数のデータ・ソースからの入力及び複数のデータ・ターゲットへの出力からなる、データ統合ジョブを示す概略図である。
【図２３】複数のデータ・ソースからの入力及び複数のデータ・ターゲットへの出力からなる、データ統合ジョブを示す概略図である。
【図２４】それによりビジネス・エンタープライズのデータ・マネージャがデータ統合ジョブを設計できるグラフィカル・ユーザ・インターフェースを示す。
【図２５】それによりデータ・マネージャがデータ統合ジョブを設計できるグラフィカル・ユーザ・インターフェースの別の実施形態を示す。
【図２６】リアルタイム・データ統合サービス・ファシリティをデータ統合プロセスと統合するためのアーキテクチャの概略図である。
【図２７】ビジネス・エンタープライズのためのサービス指向アーキテクチャを示す概略図である。
【図２８】ＳＯＡＰメッセージのフォーマットを示す概略図である。
【図２９】ウェブ・サービスのためのＷＳＤＬ記述の要素を示す概略図である。
【図３０】エンタープライズのためのリアルタイム・データ統合プロセスを使用可能にするための要素を示す概略図である。
【図３１】リアルタイム・統合サービスを使用可能にするためのサーバの実施形態である。
【図３２】典型的なＪ２ＥＥサーバのアーキテクチャ及び機能を示す。
【図３３】ＲＴＩサービスを管理するためのＲＴＩコンソールを表す。
【図３４】ＲＴＩサービスを使用可能にするためのアーキテクチャのさらなる詳細を示す。
【図３５】ＲＴＩサービスのための内部アーキテクチャの概略図である。
【図３６】ＲＴＩサーバとＲＴＩエージェントとの相互作用の態様を示す。
【図３７】金融サービス業に使用されるＲＴＩサービスを示す。
【図３８】エンタープライズがＲＴＩサービスを用いてどのように顧客レコードを更新できるかを示す。
【図３９】顧客マスター・データベースを含むデータ統合システムを示す。
【図４０】ＲＴＩサービスがデータ変形、検証及び標準化ルーチンのセットを具体化できることを示す。
【図４１】リアルタイム統合サービスにアクセスするアプリケーションを示す。
【図４２】データ統合サービスを持たないアンダーライティング・プロセスを示す。
【図４３】ＲＴＩサービスを用いるアンダーライティング・プロセスを示す。
【図４４】多数のＲＴＩサービスを用いるエンタープライズを示す。
【図４５】リアルタイム統合サービスを用いるトラック輸送業者のビジネスを示す。
【図４６】ドライバが、モバイル・デバイスを使用する等、ウェブ・サービスとしてアクセスできるアプリケーションをサポートするデータ統合サービスのセットを示す。
【図４７】財務報告のために使用されるデータ統合システムを示す。
【図４８】小売業において権限顧客データベースを保持するのに使用されるデータ統合システムを示す。
【図４９】製薬業界に使用されるデータ統合システムを示す。
【図５０】製造業界に使用されるデータ統合システムを示す。
【図５１】臨床試験のスタディ結果を分析するのに使用されるデータ統合システムを示す。
【図５２】科学調査データの検討に使用されるデータ統合システムを示す。
【図５３】多数のビジネス・システムにわたる顧客データを管理するのに使用されるデータ統合システムを示す。
【図５４】既存の顧客レコードとの、インバウンド顧客データについてのオンデマンドで自動化した一致を提供するのに使用されるデータ統合システムを示す。
【図５５】データ統合サービスのためのアーキテクチャのハイレベル概略図を示す。
【図５６】ユーザ・インターフェースを多数のタスクとして定義するためのタスク・マトリックスを示す。
【図５７】ＧＵＩのより詳細な概略図を示す。
【図５８】アーキテクチャ内のＳＯＡ規則及び関係のＵＭＬ図を示す。
【図５９】アーキテクチャのためのＳＯＡ環境の概略図を示す。
【図６０】リポジトリ・サービス内のモデルの概略図を示す。
【図６１】リポジトリ・サービスのアーキテクチャの概略図を示す。
【図６２】コンポーネント及び構成モデルのハイレベルＵＭＬクラス図を示す。
【図６３】構成モデルのＥＩＬ例を示す。
【図６４】クライアント、サービス及びコンポーネントの関係のＵＭＬクラス図を示す。
【図６５】コンポーネント毎に渡されるデータ表示の概略図を示す。
【図６６】アーキテクチャのための共通変形フレームワークを示す。
【図６７】アーキテクチャのための接続を示す。
【図１】
2008511934.tif 000003
【図２】
2008511934.tif 000004
【図３】
2008511934.tif 000005
【図４】
2008511934.tif 000006
【図５】
2008511934.tif 000007
【図６】
2008511934.tif 000008
【図７】
2008511934.tif 000009
【図８】
2008511934.tif 000010
【図９】
2008511934.tif 000011
【図１０】
2008511934.tif 000012
【図１１】
2008511934.tif 000013
【図１２】
2008511934.tif 000014
【図１３】
2008511934.tif 000015
【図１４】
2008511934.tif 000016
【図１５】
2008511934.tif 000017
【図１６】
2008511934.tif 000018
【図１７】
2008511934.tif 000019
【図１８】
2008511934.tif 000020
【図１９】
2008511934.tif 000021
【図２０】
2008511934.tif 000022
【図２１】
2008511934.tif 000023
【図２２】
2008511934.tif 000024
【図２３】
2008511934.tif 000025
【図２４】
2008511934.tif 000026
【図２５】
2008511934.tif 000027
【図２６】
2008511934.tif 000028
【図２７】
2008511934.tif 000029
【図２８】
2008511934.tif 000030
【図２９】
2008511934.tif 000031
【図３０】
2008511934.tif 000032
【図３１】
2008511934.tif 000033
【図３２】
2008511934.tif 000034
【図３３】
2008511934.tif 000035
【図３４】
2008511934.tif 000036
【図３５】
2008511934.tif 000037
【図３６】
2008511934.tif 000038
【図３７】
2008511934.tif 000039
【図３８】
2008511934.tif 000040
【図３９】
2008511934.tif 000041
【図４０】
2008511934.tif 000042
【図４１】
2008511934.tif 000043
【図４２】
2008511934.tif 000044
【図４３】
2008511934.tif 000045
【図４４】
2008511934.tif 000046
【図４５】
2008511934.tif 000047
【図４６】
2008511934.tif 000048
【図４７】
2008511934.tif 000049
【図４８】
2008511934.tif 000050
【図４９】
2008511934.tif 000051
【図５０】
2008511934.tif 000052
【図５１】
2008511934.tif 000053
【図５２】
2008511934.tif 000054
【図５３】
2008511934.tif 000055
【図５４】
2008511934.tif 000056
【図５５】
2008511934.tif 000057
【図５６】
2008511934.tif 000058
【図５７】
2008511934.tif 000059
【図５８】
2008511934.tif 000060
【図５９】
2008511934.tif 000061
【図６０】
2008511934.tif 000062
【図６１】
2008511934.tif 000063
【図６２】
2008511934.tif 000064
【図６３】
2008511934.tif 000065
【図６４】
2008511934.tif 000066
【図６５】
2008511934.tif 000067
【図６６】
2008511934.tif 000068
【図６７】
2008511934.tif 000069
【国際調査報告】
2008511934.tif 000070
2008511934.tif 000071