WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

SOAP ヘッダー

SOAP ヘッダー (<Header> エレメント) は、SOAP エンベロープのオプションのサブエレメントで、SOAP ノードによって処理されるアプリケーション関連情報をメッセージ・フローにしたがって受け渡すために使用されます。

ヘッダーの直接の子エレメントは、ヘッダー・ブロック と呼ばれています。 ヘッダー・ブロックはアプリケーションによって定義された XML エレメントで、データの論理集合を表します。これは、送信者から最終的な受信者までのメッセージのパスの途中にある SOAP ノードをターゲットとすることができます。

SOAP ヘッダー・ブロックは、SOAP 仲介ノードおよび最終的な SOAP 受信者ノードが処理することができます。 ただし、実際のアプリケーションでは、すべてのノードが各ヘッダー・ブロックそれぞれを処理するわけではありません。 各ノードは通常、特定のヘッダー・ブロックを処理するように設計されており、各ヘッダー・ブロックは特定のノードによって処理されます。

SOAP ヘッダーにより、通信するパーティー間での事前の同意なしに、非集中的な仕方で、SOAP メッセージにフィーチャーを追加することができます。 SOAP は、何がフィーチャーを扱うことができ、フィーチャーがオプションであるか必須であるかを示すために使用できるいくつかの属性を定義します。 このような制御情報には、例えば、メッセージの処理に関連した引き渡しディレクティブまたは前後関係が含まれます。 この制御情報によって、SOAP メッセージをアプリケーション固有の方法で拡張することができます。

ヘッダー・ブロックはアプリケーションによって定義されますが、ヘッダー・ブロック上の SOAP 定義の属性は、ヘッダー・ブロックが SOAP ノードによってどのように処理される必要があるかを示します。 SOAP 定義属性には、以下のものがあります。
encodingStyle
SOAP メッセージの部分をエンコードするために使用される規則を示します。 SOAP が定義するデータ・エンコード方式の規則のセットは、XML によって可能であるフレキシブルなエンコード方式よりも狭いものです。
アクター (SOAP 1.1) またはロール (SOAP 1.2)
SOAP 1.2 では、ロール属性によって、特定のノードがメッセージに対して作動するかどうかを指定します。 ノードに指定されているロールがヘッダー・ブロックのロール属性と一致する場合、ノードはヘッダーを処理します。 ロールが一致しない場合、ノードはそのヘッダー・ブロックを処理しません。 SOAP 1.1 では、アクター属性が同じ機能を果たします。

ロールはアプリケーションによって定義でき、URI で指定されます。 例えば、http://example.com/Log はロギングを実行するノードのロールを指定します。 このノードによって処理されるヘッダー・ブロックは、env:role="http://example.com/Log" を指定します。(ここで、ネーム・スペース接頭部 env は、http://www.w3.org/2003/05/soap-envelope の SOAP ネーム・スペース名と関連付けられています。)

SOAP 1.2 仕様は、アプリケーションによって定義されたロールに加えて、以下の 3 つの標準ロールを定義します。
http://www.w3.org/2003/05/soap-envelope/none
メッセージ・パスにある SOAP ノードのどれも、ヘッダー・ブロックを直接処理すべきではありません。 このロールを持つヘッダー・ブロックは、他の SOAP ヘッダー・ブロックの処理に必要なデータを伝送するために使用できます。
http://www.w3.org/2003/05/soap-envelope/next
メッセージ・パスにあるすべての SOAP ノードが、ヘッダー・ブロックを調べるよう期待されています (メッセージ・パス内で、以前にヘッダーがノードによって除去されていないことが前提)。
http://www.w3.org/2003/05/soap-envelope/ultimateReceiver
最終的な受信者であるノードのみがヘッダー・ブロックを調べるよう期待されています。
mustUnderstand
この属性は、アプリケーションの目的全体に対して重要であるヘッダー・ブロックを SOAP ノードが無視しないようにするために使用されます。 SOAP ノードがロールまたはアクター属性を使用して、ヘッダー・ブロックを処理すべきであると決定すると、mustUnderstand 属性の値に応じてアクションが取られます。
  • 1 (SOAP 1.1) または true (SOAP 1.2): ノードはその仕様に従ってヘッダー・ブロックを処理するか、またはまったく処理しません (処理しない場合は障害をスローします)。
  • 0 (SOAP 1.1) または false (SOAP 1.2): ノードにはそのヘッダー・ブロックを処理する義務がありません。

事実上、mustUnderstand 属性は、ヘッダー・ブロックの処理が必須であるかまたはオプションであるかを示します。

relay (SOAP 1.2 のみ)
SOAP 仲介ノードがヘッダー・ブロックを処理するとき、SOAP 仲介ノードはヘッダー・ブロックを SOAP メッセージから除去します。 デフォルトで、SOAP 仲介ノードはさらに、自らが無視した (mustUnderstand 属性の値が false であったため) ヘッダー・ブロックすべてを除去します。 しかし、中継属性が値 true で指定された場合、SOAP 仲介ノードは未処理のヘッダー・ブロックをメッセージに残します。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:46:01


概念トピック概念トピック | バージョン 8.0.0.5 | ac55790_