Simple Object Access Protocol (SOAP) は、非集中分散環境における情報交換のための、簡易プロトコルです。 SOAP メッセージは一種の送信側から受信側への情報伝送です。 要求/応答パターン実行のために、SOAP メッセージを結合することができます。
SOAP はトランスポートとは独立していますが、 最も一般的には既存のインターネット・インフラストラクチャーで実行するために HTTP 上で伝達されます。 経路指定メッセージのメッセージ・パスを定義することで、 ディスカバーされた Web サービスのバインディングと使用が、SOAP により可能になります。 SOAP は、Web サービスの UDDI を照会する場合に使用されます。 Rational® Developer 製品は SOAP 1.1 をサポートしています。
SOAP は、すべてのメッセージに対して次の 3 つのパーツを定義する XML ベースのプロトコルです。
SOAP は、以下の 2 つの異なる通信スタイルをサポートします。
リモート・プロシージャー・コール (RPC): 結果を戻す操作の起動。 通常、SOAP エンコード方式で使用され、WS-I 準拠ではありません。
文書体裁: 文書指向またはメッセージ指向スタイルとも呼ばれます。 このスタイルはより低いレイヤーの抽象化を提供し、 IBM® SOAP または Apache Axis ランタイム環境を使用している場合は、 より多くのプログラミング作業が必要です。
分散コンピューティング環境において、エンコード・スタイルはアプリケーション内で定義されているデータ値が、 特定のプロトコル・フォーマットとの間でどのように変換するかについて定義します。変換プロセスは、 シリアライゼーションおよびデシリアライゼーションと呼ばれます。
SOAP 仕様では、 次の SOAP エンコード・スタイルを定義します。
SOAP エンコード方式: SOAP エンコード・スタイルに より SOAP データ・モデルのデータ型の値をシリアライズ/デシリアライズできます。 このエンコード・スタイルは、SOAP 1.1 標準で定義され、WS-I に準拠していません。
WSDL では、次のリテラル XML エンコード・スタイルを定義します。
リテラル XML: リテラルは、文書が現状のまま、 つまりエンコードされていない状態で読み取られる必要があるということを意味します。 文書は XMI としてシリアライズされ、それはメッセージ XML が WSDL のスキーマに準拠していることを意味します。 リテラル・エンコードを使用する場合、各メッセージ部分は、具象スキーマ定義を参照します。 リテラル・エンコード方式は、WS-I 準拠です。
SOAP データ・モデルの目的は、共通プログラム言語で使用するデータ型に対して、 言語に依存しない抽象化を提供することです。 これは、次のもので構成されています。
SOAP データ・モデルを構成するエレメントおよび ID はすべて、名前空間 URI で定義されます。 SOAP 標準では、データ型の構成方法を規定する規則を定義しています。 プロジェクトに特定の XML スキーマでは、実際のデータ型を定義する必要があります。 SOAP 仕様のエレメントは、 http://schemas.xmlsoap.org/soap/envelope/ と http://schemas.xmlsoap.org/soap/encoding/ に定義されています。
現在は、SOAP プロトコルの各種の実装を使用できます。例えば Apache Foundation からは Apache SOAP が提供されています。 これは IBM プロジェクトの 1 つであった SOAP4J や、 Apache Axis および IBM WebSphere® ランタイム環境が元になったものです。 Rational Developer Tools の Web サービス・ツールの当リリースでは、 Apache SOAP 2.3、Axis 1.0、および IBM WebSphere の実装をサポートしています。
マッピングは、XML エレメントの修飾名、Java™ クラス名、およびエンコード・スタイル間における関連を定義します。 マッピングにより、所定のエンコード・スタイルにおいて、 完全修飾名を持つ着信 XML エレメントを Java クラスに変換する (またはその逆) 方法が指定されます。
Apache SOAP の詳細については、 xml.apache.org/soap を参照してください。 SOAP の詳細については、 www.w3.org/TR/SOAP を参照してください。 Web サービスおよび WebSphere Application Server SOAP ランタイムの詳細については、 WebSphere Application Server の文書を参照してください。