WCF サービス モデルを使用して SAP アプリケーションを開発する

最も低いレベルでは、Windows Communication Foundation (WCF) は、クライアントとサービス エンドポイントの間で確立されたチャネルを介して SOAP メッセージを交換することで、クライアントがサービスに対する操作を呼び出すプログラミング モデルを示します。 WCF チャネル モデルと呼ばれるこのモデルは、WCF チャネル アーキテクチャで直接操作できるデータ型とメソッドを公開します。 WCF チャネル モデルを使用すると、作成する SOAP メッセージの内容と、アプリケーションと SAP アダプターの両方がそれらを使用する方法を直接制御できます。ただし、チャネル経由で送信する整形式の SOAP メッセージを作成し、返される応答メッセージを検証することは、詳細で正確なタスクになる可能性があります。

このため、WCF には、WCF サービス モデルと呼ばれる別のプログラミング モデルが用意されています。 WCF サービス モデルでは、プロキシ クラスを使用してターゲット サービスに対する操作を呼び出すか、クライアントから操作を受信します。

  • ターゲット サービスに対する操作を呼び出すために使用されるプロキシ クラスは、WCF クライアント クラスと呼ばれます。 このクラスは、サービスによって公開される操作を、厳密に型指定されたパラメーターを持つ .NET メソッドとしてモデル化します。 WCF サービス モデルを使用すると、SAP アダプターによって公開される操作を WCF クライアント上の .NET メソッドとして呼び出すことができます。 WCF クライアントの詳細については、「WCF クライアントの概要」を参照してください。

  • クライアントから操作を受信するために使用されるプロキシ クラスは、WCF サービス コントラクト クラスと呼ばれます。 このクラスは、コードによって公開される操作を、厳密に型指定されたパラメーターを持つコールバック メソッドとしてモデル化します。 その後、 System.ServiceModel.ServiceHost でこのクラスのインスタンスをホストして、クライアントがコードで操作を呼び出せるようにすることができます。 WCF サービス モデルと POLLINGSTMT 操作を対象とする WCF サービス コントラクト クラスを使用すると、SAP アダプターからポーリング クエリの結果を受け取ることができます。

    ツールを使用して、WCF クライアント クラスまたは WCF サービス コントラクトと、SAP アダプターが公開するサービス メタデータから関連付けられたヘルパー コードを生成します。 次のいずれかのツールを使用できます。

  • WCF に付属する ServiceModel メタデータ ユーティリティ ツール (svcutil.exe)

  • SAP アダプターに付属するアダプター サービス参照 Visual Studio プラグインの追加

    アダプター サービス参照の追加プラグインは、Visual Studio のデザイン エクスペリエンスと統合されており、アダプターによって公開される操作に対して強力な閲覧と検索機能を提供する標準の Microsoft Windows インターフェイスを提供します。 WCF クライアントまたは WCF サービス コントラクト クラスを生成する方法の詳細については、「SAP ソリューション成果物の WCF クライアントまたは WCF サービス コントラクトの生成」を参照してください。

    .NET プログラマになじみがあり、チャネルを介した SOAP メッセージ交換の根本的な複雑さを隠すモデルを提供するため、多くの場合、WCF サービス モデルは SAP アダプター用のプログラミング ソリューションを開発するのに最適な選択肢です。 ただし、WCF チャネル モデルの方が適している可能性があるシナリオもあります。特にストリーミングが重要なシナリオでは。 これは、SOAP メッセージ内のオブジェクトの XML 表現と、サービス モデルでオブジェクトを表すために使用される .NET 型との間でシリアル化と逆シリアル化を行う場合、メッセージ全体をメモリに読み取る必要があるためです。 WCF チャネル モデルの使用の詳細については、「WCF チャネル モデルを 使用した SAP アプリケーションの開発」を参照してください。

    このセクションのトピックには、WCF サービス モデルを作成して使用して SAP アダプターを使用してアプリケーションを開発するのに役立つ情報、手順、および例が含まれています。

このセクションの内容