BDC モデル インフラストラクチャ

最終更新日: 2010年7月27日

適用対象: SharePoint Server 2010

この記事の内容
メタデータとは
BDC メタデータ モデル
BDC モデルの基本
ベスト プラクティス

Business Data Connectivity (BDC) service の設計上の主な目的は、CRM、ERP、および Microsoft Office 2010 アプリケーション、Microsoft SharePoint Server 2010 内のデータベースなど、さまざまな外部システムからのデータを、最小限のコード記述作業によって公開できるようにすることです。この目的を達成するため、BDC は、一貫性がある簡略化されたクライアント オブジェクト モデルを提供する宣言型の BDC メタデータ モデルを使用して、基礎になるデータ ソースに均一にアクセスできるようにします。

このモデルでは、経験豊富なユーザーまたは開発者が SharePoint Designer または Visual Studio などのツールを使用して外部システムについての情報をメタデータ カタログに入力します。その後、ユーザー、ビジネス アナリスト、アプリケーション開発者は、Microsoft Business Connectivity Services (BCS) の機能とオブジェクト モデルを使用して、このコンポーネントと間接的に対話します。

SharePoint 2010 SDK のこのセクションでは、メタデータ モデルの包含階層を示し、メンバーについて説明し、メンバーの使用例を示します。

メタデータとは

メタデータは外部システムの API に関するデータです。外部システムごとに、アプリケーションが対話するビジネス エンティティ、およびアプリケーションで使用可能なメソッドがメタデータに定義されます。パワー ユーザーおよび開発者は、SharePoint Designer または Visual Studio を使用してメタデータを定義します。BDC はメタデータを BDC メタデータ ストアに格納します。

メタデータは、外部システムに関するデータであり、外部データ自体ではありません。外部データは外部システム内にのみ存在します (ただし、外部リストがオフラインになっている場合、キャッシュされたコピーが BCS クライアント キャッシュ内に存在します)。

BDC メタデータ モデル

BDC メタデータ モデル (BDC モデル) は、BDC の中心です。外部システムについての複雑な詳細情報を抽象化する Entity (外部コンテンツ タイプ) や Method などのデータ構造は、MetadataObjects と総称され、BDC モデルを構成します。外部システムの BDC モデルは、基本的に、XML ファイルです。これは、SharePoint Designer で外部コンテンツ タイプを作成するときに自動生成されます。モデルを作成し、SharePoint Server を実行するサーバーの BDC メタデータ ストアにアップロードすると、そのモデルに定義された外部コンテンツ タイプを SharePoint Server および Microsoft Office アプリケーション (Microsoft Outlook、Microsoft SharePoint Workspace、および Microsoft Word など) でいつでも使用でき、Business Connectivity Services のプレゼンテーション機能やカスタム ソリューションを使用して、外部データを文脈に応じて表示できます。

次の図はメタデータ オブジェクトの階層を示しています。

図 1. メタデータ オブジェクトの階層

メタデータ オブジェクトの階層

BDC モデルはいつでも参照できます。これを表示するには、SharePoint サーバーの全体管理で、[BDC アプリケーション サービス] ページの [エクスポート] オプションを使用するか、SharePoint Designer で、外部コンテンツタイプの [エクスポート] オプションを使用します。

LobSystem

LOBSystem は、データ (リレーショナル ストアや他の永続データ記憶装置メディア内のデータが考えられる) を操作するいくつかのビジネス ロジックで通常構成される外部サービスまたはソフトウェア システムを表します。ビジネス ロジックは API の外見の下で表現されます。この API には、許容される操作と事前定義された制約が定義されます。

BDC モデルでは、通常、LobSystem 要素に、外部システムの特定の Type への接続方法に関する情報、その同じ外部システムに関連付けられた一連の Entities (外部コンテンツ タイプ)、および外部システムに対する実行方法とその外部システムから返された値をラップする方法が含まれます。

LobSystemInstance

LobSystemInstance は、与えられた LobSystem の特定の実装です。たとえば、特定の WSDL を記述する Web サービスは LobSystem ですが、その Web サービスをホストする URL は、その LobSystem のインスタンスです。LobSystemInstance の概念は、特定の LobSystem オブジェクトの複数のホスト インスタンスをモデル化するのに役立ちます。

エンティティ

Entity (外部コンテンツ タイプを表す) は、ビジネス エンティティの構造を記述します。概念的には、その構造は、顧客、注文、営業案件などの実際のビジネス オブジェクトにマップされます。Entity は、Business Connectivity Services 内の外部コンテンツ タイプに対応します。BDC のエンティティの種類は、少なくとも 1 つ以上のメソッドで構成されます。エンティティのフィールド (BDC モデルでは TypeDescriptors と呼ばれる) は、1 つ以上の外部システム メソッドから返される一連の複合型で定義されます。つまり、BDC エンティティは、一連のメソッドで構成され、実行時に、そのエンティティ インスタンスの構造が、バックエンド メソッドから返される値によって確認されます。ほとんどの場合、1 つのエンティティの種類に 1 つの識別子があります。これは、エンティティ インスタンスのコレクション内でエンティティ インスタンスを一意に識別する値を持つ一連のスカラーです。エンティティの識別子の一部である各スカラー値は、Identifier と呼ばれます。エンティティのフィールドには単純な型または複雑な型を指定できます。SimpleType はスカラー (またはアトミック) 型 (integer、string など) を表し、ComplexType は構造化フィールド (アドレスなど) を表します。ComplexType は、0 個以上のフィールドで構成され、そのフィールドにはスカラー型または複合型を指定できます。すべての BDC メタデータ オブジェクト レベルで、カスタム プロパティがサポートされます。各プロパティは名前と値のペアで構成されます。アプリケーションはこのペアを使用してモデルを拡張できます。

Methods と MethodInstances

メタデータ モデルでの Methods は、バックエンド API の抽象記述です。これは非実行可能な要素であるのに対して、MethodInstances は、Methods の実行可能なインスタンスを表します。BDC は、モデルに定義された既定値と、アプリケーションからの適切な入力を実行時に取得し、Method と MethodInstance に基づいてバックエンド API を判別して、その API を実行します。MethodInstances は、Create、Update、ReadSingle (SpecificFinder として知られる)、ReadMultiple (Finder として知られる)、Delete など、事前定義済みの BDC 操作にステレオタイプ化されます。BDC が定義するステレオタイプは 20 個あります。これらのすべてが、データベースや Web サービスなどのシステムで使用される、非常によく知られたデータ変異パターンに基づきます。ステレオタイプが存在する第一の理由は、バックエンド システムに関する複雑な詳細を知らないユーザーが使用できる、ドメインおよびバックエンドに依存しないデータ アクセス インターフェイスを提供することです。既定値とステレオタイプを使用することで、機能が豊富で複雑なバックエンド API を、複雑なシステムについての詳細を知る必要のない典型的なインフォメーション ワーカーが、非常に簡単に呼び出すことができます。

Associations

BDC の Associations は、エンティティ (外部コンテンツ タイプ) 間の関係を表します。ただし、BDC の目的はさまざまな種類のバックエンド システム間で一定のインターフェイスを提供することなので、Association を、リレーショナル データベースの関係のようにモデル化できません。BDC の Association は、一連のエンティティ インスタンスを取るバックエンド システム上の特定のビジネス ロジック (または API) を指し、別の種類のエンティティの一連のインスタンスを返します。リレーショナル データベースとは異なり、BDC は参照整合性を確保できません。BDC が関係ロジックを制御しないためです。関係ロジックは、外部システムによって明示的に制御されます。

BDC モデルの基本

BDC モデルの基本については、このセクションの以下のトピックを参照してください。

ベスト プラクティス

Microsoft SharePoint Server 2010 のメタデータ ストアに格納されているメタデータは、外部システムの構造を示します。メタデータは、外部システムの検出と外部システムへの接続を可能にするために誰でも使用できます。メタデータは一般使用を目的とし、SharePoint Server からダウンロードしてクライアント コンピューター上でアーカイブできるため、メタデータ内の情報量を制限するのに最適です。たとえば、インライン SQL ステートメントはデータ構造の情報を提供する場合があるため、データベース外部システム用のメタデータでインライン SQL ステートメントを使用しないようにする必要があります。代わりに、データベース外部システム用のメタデータではストアド プロシージャを使用することをお勧めします。

関連項目

その他の技術情報

BDCMetadata スキーマ

BDC Model Basics