このチュートリアルでは、WCF LOB アダプター SDK を使用して機能アダプターを開発します。 このアダプターは、架空の基幹業務システムの操作をシミュレートして、次のような WCF LOB アダプター SDK の主な機能の多くを示します。
同期受信
同期送信
メタデータの参照
メタデータ検索
メタデータの解決
このセクションには、エコー アダプターでサポートされるさまざまな機能が含まれています。 メッセージ交換、操作メタデータ、接続プロパティ、アダプター のプロパティです。
メッセージ交換パターン
エコー アダプターでは、次の 2 つのメッセージ交換パターンがサポートされています。
同期送信、つまり、使用しているクライアントは、アダプターを介してターゲット システムに WCF 要求メッセージを送信し、アダプターを介してターゲット システムから WCF 応答メッセージを受信するまで待機します。 これは、アダプターの最も一般的なメッセージ交換パターンです。 同期送信をサポートするには、
Microsoft.ServiceModel.Channels.Common.IOutboundHandler
インターフェイスを実装します。同期受信、つまり、使用しているクライアントは、アダプターを介してターゲット システムからのデータまたはイベントをリッスンします。 同期受信をサポートするには、
Microsoft.ServiceModel.Channels.Common.IInboundHandler
インターフェイスを実装します。メッセージ交換パターンの詳細については、「 アーキテクチャの概要」を参照してください。
注
アダプター開発ウィザードでは、UI にデータ フローとしてメッセージ交換パターンが表示されます。
メタデータのサポート
エコー アダプターでは、メタデータの参照、検索、および解決の機能がサポートされています。 通常、閲覧および検索は LOB システムから操作を取得します。 エコー アダプターの場合、LOB システムは、次に示すように、定義済みの操作のセットです。
EchoMainCategory
Echo/EchoStrings
Echo/EchoGreetings
Echo/EchoCustomGreetingFromFile
Echo/OnReceiveEcho
各操作の定義を次に示します。
名前 | 操作の定義 | 説明 | 方向 |
---|---|---|---|
エコーメインカテゴリ | カテゴリ | 操作を分類します。 | なし |
Echo/EchoStrings | string[] EchoStrings(string data) | 指定した回数だけ着信文字列を呼び出し元のクライアントにエコーします。 | 送信 |
エコー/エコーグリーティングス | Greeting[] EchoGreetings(Greeting greeting) | 指定した回数だけ着信した Greeting オブジェクトを呼び出し先のクライアントに繰り返します。 | 送信 |
Echo/EchoCustomGreetingFromFile | CustomGreeting EchoCustomGreetingFromFile(Uri greetingInstancePath) | Greeting オブジェクトのインスタンスをファイルから読み取ってエコーします。 Greeting オブジェクトのメタデータは、定義済みの XSD ファイルから取得されます。 | 送信 |
Echo/OnReceiveEcho | void OnReceiveEcho(URI パス, long コンテンツ) | 指定したフォルダーにドロップされたファイルの場所と長さをエコーします。 | インバウンド |
アダプターのプロパティ
アダプターは、次のアダプタープロパティを公開します。
名前 | カテゴリ | データ型 | 説明 |
---|---|---|---|
数える | その他 | System.Int32 | 指定した回数だけ入力を呼び出し元のクライアントにエコーするために使用されます。 既定値 = 5 |
接続プーリングを有効にする (EnableConnectionPooling) | その他 | System.Boolean | アダプターの接続プールを有効または無効にするために使用されます。 既定値 = true。つまり、WCF LOB アダプター SDK のランタイム エンジンで接続プールが有効になっています。 |
インバウンドファイルフィルター | インバウンド | System.String | 受信シナリオでのみ使用され、拡張子のファイルを監視するために FileSystemWatcher によって使用されます。 Default=*.txt |
InboundFileSystemWatcherFolder | インバウンド | System.String | FileSystemWatcher がアダプターに通知を送信するためにファイルをドロップするフォルダーを設定するために使用します。 既定値 = c:\inbound\watcher。 |
接続プロパティ
エコー アダプターは、次の接続プロパティを公開します。
名前 | データ型 | 説明 |
---|---|---|
アプリケーション | System.String | LOB システム内のアプリケーション名。 このプロパティは説明を目的とします。 エコー アダプターには LOB システムは含まれません。 既定値 = lobapplication |
認証を有効にする | System.Boolean | true の場合、アダプターはクライアント資格情報内のユーザー名フィールドの値を受け取ります。 既定値 = false |
ホスト名 | System.String | LOB システムが存在するサーバー名。 このプロパティは説明を目的とします。 エコー アダプターには LOB システムは含まれません。 既定値 = lobhostname |
インターフェイスの実装
WCF LOB アダプター SDK は、アダプターの特定の機能をサポートするために実装する必要があるクラスとインターフェイスのコレクションを定義します。 次の表では、これらのクラスとインターフェイス、その説明、および実装するタイミングについて説明します。
クラス/インターフェイス | 実装するタイミング | 説明 |
---|---|---|
Microsoft.ServiceModel.Channels.Common.IConnection | ターゲット システムへの接続を定義する必要がある場合。 | ターゲット システムへの接続を定義します。 |
Microsoft.ServiceModel.Channels.Common.IConnectionFactory | ターゲット システムへの接続を作成する必要がある場合。 | ターゲット システムへの接続を作成します。 |
Microsoft.ServiceModel.Channels.Common.ConnectionUri | 接続 URI を管理する必要がある場合。 アダプター サービス参照プラグインの追加ツール内で接続プロパティを分類する必要がある場合。 |
ターゲット システムの接続 URI を管理します。 |
Microsoft.ServiceModel.Channels.Common.IMetadataResolverHandler | アダプターは、メタデータ解決機能をサポートする必要があります。 | 操作と型のメタデータを解決します。 |
Microsoft.ServiceModel.Channels.Common.IMetadataSearchHandler | アダプターがメタデータ検索機能をサポートしている場合。 | ターゲット システム内の操作を検索します。 |
Microsoft.ServiceModel.Channels.Common.IMetadataBrowseHandler | アダプターが参照機能をサポートしている必要がある | ターゲット システム内の操作を閲覧します。 |
Microsoft.ServiceModel.Channels.Common.IOutboundHandler | 通常、アダプターが送信機能をサポートする必要がある場合。 | 受信 WCF 要求メッセージをターゲット システム メッセージに変換し、ターゲット システム固有の関数を呼び出して、応答を送信 WCF 応答メッセージに変換します。 |
Microsoft.ServiceModel.Channels.Common.IInboundHandler | アダプターが受信機能をサポートしている場合。 | ターゲット システムからのデータやイベントを監視します。 |
アダプターの開発を簡略化するには、アダプター開発ウィザードを使用してアダプター プロジェクトを生成します。アダプターの機能に合わせて調整された一連の派生クラスが作成されます。
アダプターのサービス参照プラグインとサービス参照アドインツールを使用してアダプターおよび接続プロパティをカスタマイズするには、アダプター開発ウィザードによって生成された以下のファイルを変更します。
{Projectname}BindingElement.cs
{Projectname}BindingElementExtensionElement.cs
{Projectname}ConnectionUri.cs
その方法の詳細については、「 手順 2: アダプターと接続のプロパティを分類する」を参照してください。