WCF LOB アダプター SDK の主要コンポーネント
WCF LOB アダプター SDK を使用してアダプターを開発するには、次の多くの基本的なコンポーネントを使用する必要があります。
基幹 業務システムへの接続を確立および維持するのに役立つ接続コンポーネント。
ハンドラー コンポーネント は、受信メッセージと送信メッセージとメタデータ操作を処理するために使用されるプロシージャを定義して実装します。
メタデータ コンポーネントは 、基幹業務システムとの通信に使用されるメタデータを定義および操作します。
カスタム コンポーネント は、トランザクション、信頼性の高いメッセージング、セキュリティをサポートします。
コア コンポーネント は、すべてのコンポーネントを結び付け、WCF へのシームレスな統合を保証します。
これらのコンポーネントは、このトピックの焦点です。
接続コンポーネント
接続コンポーネントには、接続の有効期間の定義と制御に役立つインターフェイスとクラス、および URI (Uniform Resource Identifier) クエリ属性とユーザー属性の管理に役立つインターフェイスとクラスが含まれます。 接続コンポーネントには、次の表で説明するインターフェイスとクラスが含まれます。
接続コンポーネント | 必須 | 説明 |
---|---|---|
Microsoft.ServiceModel.Channels.Common.ConnectionUri |
必須 | アダプターを使用するユーザー向けにカスタマイズされた URI 構築エクスペリエンスを提供するための基本クラス。 |
Microsoft.ServiceModel.Channels.Common.IConnection |
必須 | 接続の動作を定義するインターフェイス。 開発者は、ターゲット システムへの接続を定義するために、このインターフェイスを実装する必要があります。 |
Microsoft.ServiceModel.Channels.Common.IConnectionFactory |
必須 | 接続ファクトリの基本クラス。 開発者は、ターゲット システムの接続ファクトリを定義するときにサブクラス化します。 |
Microsoft.ServiceModel.Channels.Common.ConnectionPoolSettings |
省略可能 | 接続プールの動作を制御する設定が含まれています。 開発者は、ターゲット システムの動作に基づいてこれらの値を調整できます。 |
Microsoft.ServiceModel.Channels.Common.ConnectionManagerSettings |
省略可能 | 接続プールの動作を制御する静的設定が含まれています。 開発者は、ターゲット システムに対してこれらの値を調整する必要がある場合があります。 |
WCF LOB アダプター開発ウィザードでは、選択したウィザード オプション Microsoft.ServiceModel.Channels.Common.IConnection``Microsoft.ServiceModel.Channels.Common.ConnectionUri
に関係なく、 と Microsoft.ServiceModel.Channels.Common.IConnectionFactory
の実装が作成されます。 これらの実装には、ウィザードで選択されたオプション (接続 URI の接続プロパティを含む) をサポートするためのコードが含まれますが、アダプター開発者は、 および Microsoft.ServiceModel.Channels.Common.ConnectionUri
の Open、Close、およびその他のメソッドのMicrosoft.ServiceModel.Channels.Common.IConnection
実装を提供する必要があります。
ハンドラー コンポーネント
ハンドラー コンポーネントは、受信、送信、非同期受信、非同期送信、メタデータ検索、参照、および解決操作など、さまざまなメッセージ交換パターンをサポートします。 ハンドラー コンポーネントには、次の表で説明するインターフェイスとクラスが含まれます。
ハンドラー コンポーネント | 必須 | 説明 |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IAsyncInboundHandler |
省略可能 | ターゲット システムから非同期的にメッセージを受信するために使用されます。 非同期サポートは省略可能です。 |
Microsoft.ServiceModel.Channels.Common.IAsyncOutboundHandler |
省略可能 | ターゲット システムから非同期的にメッセージを送信するために使用されます。 非同期サポートは省略可能です。 |
Microsoft.ServiceModel.Channels.Common.IInboundHandler |
省略可能 | ターゲット システムからメッセージを受信するために使用されます。 アダプターがターゲット システムからのメッセージをリッスンする必要がある場合、開発者はこのハンドラーを実装する必要があります。 |
Microsoft.ServiceModel.Channels.Common.IOutboundHandler |
省略可能 | ターゲット システムにメッセージを送信するためのサポートを提供します。 省略可能ですが、要求/応答メッセージ パターンに必要です。 ほとんどの基本的な通信テクノロジは、HTTP、RPC、その他の多くを含むこのパターンに基づいています。 |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler |
省略可能 | このハンドラーは、アダプターがメタデータ参照をサポートする場合に実装されます。 省略可能ですが、開発者は多くの場合、このハンドラーを実装して、ターゲット システムで使用できる操作の一覧を提供します。 |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler |
省略可能 | このハンドラーは、アダプターが、システム固有のロジックとデータ型を表すターゲット システムからメタデータを取得して返すときに実装する必要があります。 メタデータは、実際のターゲット システムから取得することも、ターゲット システムの機能を表すために作成することもできます。 たとえば、FTP アダプターは GET 操作と PUT 操作を作成できます。 必須ではありませんが、開発者は通常、特定の操作に関する情報を提供するためにこのハンドラーを実装します。 |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler |
Optional | このハンドラーは、アダプターがメタデータ検索をサポートする場合に実装されます。 |
アダプター開発ウィザードでは、開発者がMicrosoft.ServiceModel.Channels.Common.IAsyncOutboundHandler
選択した内容に基づいて、、Microsoft.ServiceModel.Channels.Common.IOutboundHandler
Microsoft.ServiceModel.Channels.Common.IInboundHandler
、および メタデータ ハンドラーの実装が作成されます。 サポート コードが提供されています。ただし、アダプター開発者は、受信リスナーと TODO コメントでマークされた他のコードを開始および停止するコードを指定する必要があります。
メタデータ コンポーネント
メタデータ コンポーネントは、メタデータ要求の処理と、ターゲット アプリケーションでの型と操作の記述をサポートします。 ハンドラー コンポーネントは、メタデータ要求の処理方法を制御します。 メタデータ コンポーネントは、ターゲット システムによって公開されるデータ型と操作を記述します。
メタデータ コンポーネントは、型メタデータと操作メタデータの 2 種類のメタデータ情報を保持するように設計されています。
型メタデータ は、ターゲット システムで使用できるデータ型を記述し、型の名前、配列の場合は配列プロパティ、単純な XSD スキーマ型か複合型かを示します。
操作メタデータ は、ターゲット システムで使用できる操作を記述します。 プロパティには、戻り値の型、パラメーターの一覧、操作名が含まれます。
アダプター内でのメタデータのサポートは省略可能ですが、推奨されます。 WCF LOB アダプター SDK を使用してアダプターを構築する利点の 1 つは、WCF サービスとしての機能を実装する場合と、動的な一連の操作を公開してバインドできることです。
Note
限られた静的メソッドのセットを公開する必要がある場合は、WCF の使用を検討する必要があります。
メタデータの処理、記述、および操作に使用できるコンポーネントを次の表に示します。
メタデータ コンポーネント | 説明 |
---|---|
Microsoft.ServiceModel.Channels.Common.ComplexQualifiedType |
アダプターの複合修飾型を表すクラス。 たとえば、ターゲット システムがリレーショナル データベースの場合、テーブル、行、またはユーザー定義プロシージャの戻り値の型はすべて、カスタム修飾型である可能性があります。 |
Microsoft.ServiceModel.Channels.Common.OperationMetadata |
ターゲット システムの操作メタデータを表す基本クラス。 たとえば、OperationMetadata をサブクラス化して、リレーショナル データベースを対象とするアダプター内のストアド プロシージャに関する情報を格納できます。 |
Microsoft.ServiceModel.Channels.Common.OperationMetadataTraceRecord |
操作メタデータをトレース ファイルにキャプチャする方法を提供します。 トレースは、一意の ID、最後にアクセスされた時刻、タイムスタンプ、表示名、元の名前、パラメーター、その他の詳細などの情報を収集します。 |
Microsoft.ServiceModel.Channels.Common.ParameterizedOperationMetadata |
パラメーターや戻り値の型などの操作の属性を定義する方法を提供します。 |
Microsoft.ServiceModel.Channels.Common.OperationParameter |
ターゲット システムで操作を呼び出すために使用されるパラメーターについて説明します。 プロパティには、名前、元の名前、パラメーターの方向、およびパラメーターが空かどうかを示すフラグが含まれます。 |
Microsoft.ServiceModel.Channels.Common.OperationParameterDirection |
操作のパラメーターの方向を記述する列挙型。 パラメーターには、受信のみ (In)、送信のみ (Out)、または双方向 (InOut) を指定できます。 |
Microsoft.ServiceModel.Channels.Common.OperationResult |
操作の結果を表します。 操作に応じて、void または null と文字列、整数、またはその他の値を返す操作には、OperationResult.Empty を指定できます。 |
Microsoft.ServiceModel.Channels.Common.QualifiedType |
修飾型プロパティの基底クラスとして設計され、ターゲット システムの型メタデータのプロパティを記述するために使用されます。 |
Microsoft.ServiceModel.Channels.Common.QualifiedTypeContainer |
関連する修飾型のセットのコンテナーを提供します。 |
Microsoft.ServiceModel.Channels.Common.SimpleQualifiedType |
その型が W3C XSD スキーマ型に直接マップされる場合の、ターゲット システムの型メタデータのプロパティについて説明します。 許容される型の一覧については、「 XmlTypeCode 列挙」を参照してください。 |
Microsoft.ServiceModel.Channels.Common.TypeMember |
構造化型メタデータで単純または複雑なデータ メンバーを定義する方法を提供します。 |
Microsoft.ServiceModel.Channels.Common.TypeMetadata |
ターゲット システムの型メタデータを表す基本クラス。 |
Microsoft.ServiceModel.Channels.Common.StructuredTypeMetadata |
複合型メンバーまたは単純型メンバーを含むデータ構造を定義する方法を提供します。 |
Microsoft.ServiceModel.Channels.Common.TypeMetadataCollection |
一連の関連する型メタデータのコンテナーを提供します。 |
Microsoft.ServiceModel.Channels.Common.TypeMetadataTraceRecord |
型メタデータをトレース ファイルにキャプチャする方法を提供します。 トレースは、一意の ID、最後にアクセスされた時刻、タイムスタンプ、その他の詳細などの情報を収集します。 |
カスタム コンポーネント
カスタム コンポーネントは、トランザクション、セキュリティ、信頼性の高いメッセージング、およびターゲット システムに大きく依存するその他の機能をサポートします。 WCF LOB アダプター SDK を使用するアダプター開発者は、ターゲット システムの機能を理解し、サポートする範囲を決定する必要があります。
コア コンポーネント
コア コンポーネントは、アダプターを WCF に接続できるようにする一連の基本クラスとインターフェイスを提供します。 コア コンポーネントについては、次の表で説明します。
コア コンポーネント | 必須 | 説明 |
---|---|---|
Microsoft.ServiceModel.Channels.Common.Adapter |
必須 | WCF LOB アダプター SDK を使用して記述されたアダプターの基本クラス。 WCF チャネル アーキテクチャとの対話を担当します |
Microsoft.ServiceModel.Channels.Common.AdapterBinding |
必須 | 接続プール ()、キャッシュMicrosoft.ServiceModel.Channels.Common.CacheSettings ()、メタデータMicrosoft.ServiceModel.Channels.Common.MetadataSettings ()、メッセージング (Microsoft.ServiceModel.Channels.Common.ConnectionPoolSettings ) など、アダプターのさまざまな設定を制御する設定をMicrosoft.ServiceModel.Channels.Common.MessagingSettings 含むクラス。 |
カスタム アダプターは、WCF バインディングを介して公開されます。 詳細については、 の WCF ドキュメントを参照してください https://go.microsoft.com/fwlink/?LinkId=100308。
アダプター開発ウィザードでは、 のMicrosoft.ServiceModel.Channels.Common.Adapter
Microsoft.ServiceModel.Channels.Common.AdapterBinding
System.ServiceModel.Configuration.StandardBindingElement
System.ServiceModel.Configuration.StandardBindingCollectionElement
実装を作成して、アダプター のバインドを WCF 構成システムに公開します。 アダプター開発ウィザードでは、 の実装 System.ServiceModel.Configuration.BindingElementExtensionElement
も生成され、コンピューターまたはアプリケーション構成ファイルから WCF カスタム バインド内で使用できるようになります Microsoft.ServiceModel.Channels.Common.Adapter
。
StandardBindingElement、StandardBindingCollectionElement、BindingElementExtensionElement の詳細については、WCF ドキュメントを参照してください。
WCF LOB アダプター SDK で記述されたアダプターの構成の詳細については、「WCF LOB アダプター SDK を使用してアダプターを展開する」を参照してください。