WCF カスタム動作と BizTalk パイプライン コンポーネントの違いは何ですか?
最初の検査では、WCF カスタム動作は従来の BizTalk パイプラインとよく似ています。 どちらも、メッセージインターセプトの基本的な概念を利用して、メッセージの送信先へのフローを中断し、そのメッセージ内でカスタム メッセージ処理を実行し、転送先に転送します。 このインターセプトは、メッセージが BizTalk Server によって処理される前 (受信場所にバインドされる) または (送信ポートにバインドされた) 後に発生する可能性があります。 このインターセプトが 2 つのメソッド内でどのように発生するかは、実装だけでなく、インターセプトのポイント内でも異なります。 いくつかの違いを次に示します。
パイプラインはオーケストレーションで使用できます。 WCF の動作は、BizTalk Server 内から WCF アダプターによって呼び出されることに限定されます。
パイプラインは、BizTalk Server に固有の古いテクノロジです。 WCF の動作は、BizTalk Server だけでなく、その他の純粋な WCF シナリオでも使用できます。
パイプラインは、デコード、検証などの設定されたパイプライン ステージ内に存在します。WCF の動作は、4 つのインターセプト エントリ ポイントのいずれかでメッセージ フローに接続できます (簡単に説明します)。
パイプラインは、その機能において純粋にランタイムです。 WCF の動作も同様ですが、BizTalk Server 管理コンソール内から構成中に設定された値に対してリレーショナル制約またはデータ制約を適用することもできます。
パイプラインは BizTalk メッセージを操作できますが、WCF の動作は WCF メッセージで動作します。 つまり、パイプラインは BizTalk コンテキスト プロパティを昇格させるのに対し、WCF の動作では WCF メッセージ プロパティにアクセスできます。
WCF または WCF アダプターには、マルチパート メッセージのモデルはありません。 ただし、パイプライン コンポーネントは必要な方法で BizTalk メッセージを操作できるため、必要に応じてマルチパート メッセージを処理できます。
WCF-BasicHttp アダプターと WCF-WSHttp アダプターを使用した受信場所または送信ポートの場合、どの種類のエンコードを選択する必要がありますか?
これらの各アダプターには、HTTP ベースのメッセージとテキスト エンコードがあります。 メッセージ エンコードでは、メッセージに使用される SOAP エンコーダー (MTOM (メッセージ転送組織メカニズム) またはテキスト) を指定します。 [テキスト] が選択されている場合は、[テキスト エンコード] を選択する必要があります。 これに対する選択肢は、unicodeFFF (ビッグ エンディアン)、utf-16 (16 ビット エンコード)、utf-8 (8 ビット エンコード) です。
MTOM は、バイナリ データに推奨され、最も効率的な転送メカニズムです。 ただし、サービスで MTOM データを処理できる必要があるため、このオプションはプレーン テキストよりもはるかに移植性が低くなります。 標準のバイナリ以外のデータを転送するために使用した場合、MTOM は実際には Text オプションを使用するよりも効率的ではありません。 テキストは一般的に受け入れられ、クロスプラットフォームの相互運用性を高めますが、送信されるデータにテキスト以外のコンテンツが含まれている場合は、2 つの選択肢の効率が低くなります。 これは、WCF サービス コントラクトを使用するときにバインディング エンコードの選択を選択する際に重要な要素です。 WCF 操作が転送および処理するデータを把握すると、メッセージ エンコードの正しい選択に影響します。