次の方法で共有


チュートリアル 1: エコー アダプターを開発する

このチュートリアルでは、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 アダプターが受信機能をサポートしている場合。 ターゲット システムからのデータやイベントを監視します。

アダプターの開発を簡略化するには、アダプター開発ウィザードを使用してアダプター プロジェクトを生成します。アダプターの機能に合わせて調整された一連の派生クラスが作成されます。

アダプターのサービス参照プラグインとサービス参照アドインツールを使用してアダプターおよび接続プロパティをカスタマイズするには、アダプター開発ウィザードによって生成された以下のファイルを変更します。

こちらもご覧ください

WCF LOB アダプター SDK について説明するチュートリアル