ビジネス データ カタログ : アーキテクチャ

ビジネス データ カタログは、Microsoft Office SharePoint Server 2007 の共有サービスです。Office SharePoint Server 2007 の外部に存在するビジネス アプリケーションに関する情報を保存し、ビジネス データ機能とカスタム ソリューションがその情報を使用して、追加のコードを記述せずにポータル サイトにビジネス データを表示できるようにします。

ビジネス データ カタログのコンポーネント

ビジネス データ カタログは、メタデータ データベースとオブジェクト モデルから構成され、さまざまなビジネス アプリケーションで使用されるビジネス ロジック向けに、シンプルで一貫したオブジェクト指向のプログラミング インターフェイスを提供します。

次の図は、ビジネス データ カタログの高レベル アーキテクチャ図であり、ビジネス データ ソース、メタデータ データベース、ビジネスデータ機能やソリューション間の相互作用を示しています。

ビジネス データ カタログの高レベル アーキテクチャ

ビジネス データ カタログの高レベル アーキテクチャ

注意

ビジネス データ カタログを使用して、Web サービスまたはデータベースを通じて任意のバックエンドの企業アプリケーションに接続することができます。

次の図は、メタデータ データベースとランタイム、管理オブジェクト モデル間の相互作用など、ビジネス データ カタログの低レベルのアーキテクチャを示します。

ビジネス データ カタログの低レベル アーキテクチャ

ビジネス データ カタログの低レベル アーキテクチャ

メタデータ データベース

ビジネス データ カタログはメタデータを使用して、ビジネス アプリケーションの API を記述します。外部の API 記述がビジネス データ カタログに登録されると、追加のコードを記述する必要がなくなり、バックエンド データに対して動的にデータ アクセス接続ができるようにします。たとえば、SharePoint リストおよび Web パーツ内の AdventureWorks データベースからのデータを表示するには、AdventureWorks データベースのデータにアクセスするために使用される SQL クエリ用のメタデータを定義します。

メタデータの作成者は、アプリケーションが対話するビジネス エンティティ、およびビジネス アプリケーションで使用可能なメソッドを定義することによって、データ ソースごとにメタデータを定義します。AdventureWorks の例では、Customer、SalesOrder、および Product エンティティ用のメタデータを決定します。ビジネス データ カタログで使用可能にするエンティティごとに、バックエンド サーバー アプリケーションからデータをフェッチするために使用されるメソッド用のメタデータを定義します。

メタデータ モデルは基本的な物理ソースを抽出して、さまざまなビジネス アプリケーションで作業するメタデータ作成者に、一貫したシンプルなモデルを提供します。

メタデータ モデルは、API に意味を追加するエンティティ、リレーションシップなど、セマンティクス メタデータを定義することによって、メタデータを使いやすくします。メタデータを記述すると、ビジネス データ カタログを使用してカスタム ソリューションをプログラミングする開発者は、バックエンド API を理解する必要がなくなり、代わりに簡略化されたビジネス データ カタログのオブジェクト モデルを使用できます。たとえば、ランタイム オブジェクト モデルでは、System.Entity、Entity.FindFiltered、Entity.FindAssociated など、呼び出しができるようになり、必要なバックエンド データを直感的に取得できるようになります。この設計により、メタデータ作成者および開発者の双方で、通常は複雑な API を持つ基幹業務 (LOB) アプリケーションでの作業がより簡単になります。

ビジネス データ カタログは、メタデータ データベースにメタデータを保存します。Office SharePoint Server 2007 はビジネス データ カタログをビジネス データ カタログ : 用語集として実装しているため、メタデータ データベースは Office SharePoint Server 2007 展開では SharedServices#DB データベースになります。共有サービス データベースはリレーショナルであり、標準の Microsoft SQL Server データベースです。共有サービス データベースには、メタデータ モデルのさまざまな要素を格納するビジネス データ カタログ固有の複数のテーブルが含まれています。

注意

メタデータ データベースにビジネス データは含まれません。ビジネス アプリケーションに関するメタデータのみが含まれます。

詳細については、「ビジネス データ カタログ : メタデータ モデル」を参照してください。

ランタイム オブジェクト モデル

[方法] ランタイム オブジェクト モデルの使用を開始するは、ビジネス データ カタログのクライアントおよびアプリケーションで使用するために設計されています。ランタイム オブジェクト モデルには 2 つの主要な機能があります。

  • 基本データ ソースを抽出する、直感的なオブジェクト指向のインターフェイスを提供します。ランタイム オブジェクト モデルは、アプリケーション固有のコーディング パラダイムをクライアントで習得しなくても、唯一の単純化された方法ですべてのビジネス アプリケーションにアクセスできるようにします。ランタイム オブジェクト モデルによって、SAP アプリケーションのメソッドの呼び出しが、Siebel のメソッド呼び出しや、SQL でのクエリ実行と同じように実行できます。

    注意

    ビジネス データ カタログは、実際のメソッドの実行またはバックエンド プラミングは行いません。クライアントの起動を、データベースの場合は適切な ADO.NET プロバイダ、Web サービスの場合は Web サービス プロキシに委任するだけです。

  • メタデータ データベースからメタデータ オブジェクトを読み取って、そこに記述されたビジネス ロジックを実行できます。ランタイム オブジェクト モデルではキャッシュされ高速に実行されるため、メタデータ データベースでメタデータ情報を照会するだけのクライアントはランタイム オブジェクト モデルを使用します。

ランタイム オブジェクト モデルは、Microsoft.SharePoint.Portal.dll の以下の名前空間で定義されています。

Runtime 名前空間には、2 つの主要なオブジェクトがあります。次に示します。

  • IEntityInstance。概念上、エンティティ インスタンスは、ビジネス データ カタログ内のバックエンド ビジネス アプリケーションから返される単一行のデータと考えることができます。IEntityInstance インターフェイスは、基本データ ソースを抽出し、アプリケーション固有のコーディング パラダイムをクライアントが習得しなくても、唯一の単純化された方法ですべてのビジネス アプリケーションにアクセスできるようにします。IEntityInstance インターフェイスによって、Web サービスで返される複雑な .NET 構造で操作するのと同じように、データベースのデータ行を操作できます。

    ビジネス データ カタログのエンティティ インスタンスには、固有のセマンティクスが備えられています。たとえば、行のどのフィールドがエンティティ インスタンスの識別子を表しているのかがわかる機能があり、そのエンティティ インスタンスの GetAssociated()、GetIdentifierValues()、Execute() など、メソッドを呼び出すことができます。

    ビジネス データ カタログ エンティティ インスタンス

  • IEntityInstanceEnumerator。列挙子は、コレクション内のデータの読み取りに使用できますが、基になるコレクションの修正には使用できません。IEntityInstanceEnumerator はストリーミングをサポートしているため、バックエンドで大量のデータを返す場合に役立ちます。

    ビジネス データ カタログ ランタイム オブジェクト モデル

管理オブジェクト モデル

[方法] 管理オブジェクト モデルの使用を開始するでは、共有サービス データベースのメタデータ オブジェクトの作成、読み取り、更新、および削除を実行できます。比較的、待ち時間が長く、ビジネス データ カタログが展開内のすべてのフロントエンド Web サーバーおよびアプリケーション サーバーのキャッシュを更新するまで、最大 1 分の遅延が発生します。変更を行ったサーバー上では、すぐに変更されます。

ビジネス データ カタログ管理ユーザー インターフェイスの開発者とユーザーは、管理オブジェクト モデルを使用して、メタデータの作成と編集を行います。

注意

ランタイム オブジェクト モデルでは、メタデータ オブジェクトをメタデータ データベースからのみ読み取ることができます。キャッシュされ高速に実行されるため、メタデータ データベースでメタデータ情報を照会するだけのクライアントは、ランタイム オブジェクト モデルを使用してください。

管理オブジェクト モデルは、Microsoft.SharePoint.Portal.dll の Microsoft.Office.Server.ApplicationRegistry.Administration 名前空間で定義されます。

インフラストラクチャ コンポーネント

上記のビジネス データ カタログの低レベルのアーキテクチャ図で示したように、ランタイム オブジェクト モデルは、ビジネス データ カタログのインフラストラクチャ コンポーネントを使用して、物理データ ソースへの接続を行い、管理しています。インフラストラクチャ コンポーネントは、ランタイム接続管理と共有セキュリティ サービスをビジネス データ カタログのクライアントに提供します。

インフラストラクチャ コンポーネントは、Microsoft.SharePoint.Portal.dll の Microsoft.Office.Server.ApplicationRegistry.Infrastructure 名前空間で定義されます。

メソッドの実行 : ビジネス データ ソリューションのフロー制御

ビジネス データ機能とカスタム ソリューションがビジネス データ カタログを使用する方法を理解するために、次のシナリオを考えてみます。たとえば、ビジネス データ Web パーツを使用して SAP アプリケーションから情報を表示するとします。これを行うには、呼び出すビジネス データ カタログ : 用語集や、バックエンド メソッドが受け入れるパラメータに関する情報を Web パーツが持っている必要があります。Web パーツはその情報を取得するため、[方法] ランタイム オブジェクト モデルの使用を開始するを使用して、ビジネス データ カタログが BAPI 情報を格納しているメタデータ データベースに照会します。Web パーツはランタイム オブジェクト モデルを再度使用して、BAPI を呼び出し、ページにデータを表示します。

次の図では、メソッドが実行されたときに発生する高レベルのフロー制御を示します。

メソッドの実行時のフロー制御

メソッドの実行時のフロー制御

メタデータ キャッシュ

パフォーマンスを向上させるため、ビジネス データ カタログは、すべてのメタデータ オブジェクトをキャッシュします。この方法により、キャッシュからすべてのメタデータ オブジェクトを実体化し、ランタイム オブジェクト モデルに一度に提供するため、メソッド呼び出しごとにメタデータ データベースにラウンドトリップしません。メタデータ キャッシュは、メタデータ オブジェクトを呼び出すクライアントが、メタデータ オブジェクトにすばやくアクセスできるようにします。

注意

オブジェクト モデルを使用して、個々のメタデータ オブジェクト レベルでキャッシュをオンまたはオフにすることができます。ほとんど使用しないオブジェクトはキャッシュする必要はありません。

ビジネス データ カタログは、最初の読み込み時にオブジェクトをキャッシュします。各サーバーで実行されているタイマは、1 分ごとに、メタデータ オブジェクトに対する変更がないかを確認します。メタデータ オブジェクトへの変更を確認すると、キャッシュをクリアして、再度読み込みます。その結果、メタデータを変更した後は、ファーム内のすべてのサーバーに変更内容が伝達されるまで、最大 1 分待機する必要があります。変更を行ったサーバー上では、すぐに変更されます。

次の図は、ビジネス データ カタログの展開図であり、キャッシュの動作を示しています。

ビジネス データ カタログの展開とキャッシュ

ビジネス データ カタログの展開とキャッシュ

See Also

タスク

AdventureWorks SQL Server 2000 のサンプル

[方法] 管理オブジェクト モデルの使用を開始する

[方法] ランタイム オブジェクト モデルの使用を開始する

概念

ビジネス データ カタログ : メタデータ モデル

FAQ : ビジネス データ カタログ

ビジネス データ カタログ : 用語集

その他のリソース

ビジネス データ カタログ