ホーム > X-Plus > XML Square >  スタンダーズ

この記事を送る はてなブックマークに追加する BuzzurlにブックマークBuzzurlにブックマーク Yahoo!ブックマークに登録
テキストリンクコードを取得する

スタンダーズコーナー:W3C規格解説 「WSDL」

2002年08月21日作成 

W3C規格解説
WSDL(Web Services Description Language)
   

(株)日本ユニテック
青木 秀起

WSDLとは、Webサービスのインタフェース仕様を記述するための規格です。MicrosoftのSDL/SCLとIBMのNASSLを統合し、数十社が共同で2001年3月にW3Cに提案したもので、現在1.1が技術ノート、XML SchemasやXML Information Setをサポートした1.2がワーキングドラフトになっています。 (http://www.w3.org/TR/wsdl)

Webサービスにおける位置付け

WebサービスはSOAPによってメッセージ交換されますが、どのようなサービスなのか、どこで提供されるのか、どのようなスキーマにしたがって記述すべきかなどのインターフェイス仕様を正確に知る必要があります。WSDLは、サービス提供者が自ら提供するサービスについて記述するための仕様で、Webサービスを支える主要な技術の一つです。

Webサービスを利用するプロセスは以下のとおりです。

    ①サービス提供者はUDDIレジストリ("Webサービスの電話帳")にサービスを登録しておく。
    ②クライアントは必要とするWebサービスをUDDIレジストリで検索して発見する。
    ③クライアントは、発見したURIを参照し、サービス提供者のWSDLファイルを取得する。
    ④必要とするWebサービスを呼び出し、サービスが提供される。

WSDLの構造

WSDLファイルの構造は次のとおりです。

WSDLファイルは、ルート要素<definitions>と、その下の7つの子要素で構成されています。WSDLの特徴は、"メッセージ"や"操作"などに関する抽象的な定義と、ネットワーク・アドレスや通信に使用するプロトコルなどの低レベルな定義とに分離して記述するということです。これは、ドキュメントの再利用性を考慮した構成です。たとえば、実装依存の部分が変更された場合、ドキュメント全てを書き換えることなく、低レベルな定義部分だけを書きかえるだけで対応することができるのです。

WSDLのサンプル

仕様書に掲載されているWSDLファイルのサンプルを以下に示します。株式相場を提供するサービスについて記述しています。

<?xml version="1.0"?>
<definitions name="StockQuote"

targetNamespace="http://example.com/stockquote.wsdl"
        xmlns:tns="http://example.com/stockquote.wsdl"
        xmlns:xsd1="http://example.com/stockquote.xsd"
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns="http://schemas.xmlsoap.org/wsdl/">

    <types>
        <schema targetNamespace="http://example.com/stockquote.xsd"
                xmlns="http://www.w3.org/2000/10/XMLSchema">
            <element name="TradePriceRequest">
                <complexType>
                    <all>
                        <element name="tickerSymbol" type="string"/>
                    </all>
                </complexType>
            </element>
            <element name="TradePrice">
                <complexType>
                    <all>
                        <element name="price" type="float"/>
                    </all>
                </complexType>
            </element>
        </schema>
    </types>

    <message name="GetLastTradePriceInput">
        <part name="body" element="xsd1:TradePriceRequest"/>
    </message>

    <message name="GetLastTradePriceOutput">
        <part name="body" element="xsd1:TradePrice"/>
    </message>

    <portType name="StockQuotePortType">
        <operation name="GetLastTradePrice">
            <input message="tns:GetLastTradePriceInput"/>
            <output message="tns:GetLastTradePriceOutput"/>
        </operation>
    </portType>

    <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="GetLastTradePrice">
            <soap:operation soapAction="http://example.com/GetLastTradePrice"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>

    <service name="StockQuoteService">
        <documentation>My first service</documentation>
        <port name="StockQuotePort" binding="tns:StockQuoteBinding">
            <soap:address location="http://example.com/stockquote"/>
        </port>
    </service>

</definitions>

まとめ

WSDLを使ったWebサービスの多くはまだ商用段階に至っておらず、迅速な仕様の確定が望まれます。




関連サービス

標準化仕様の動向調査
最新動向を伝えるDXメールニュース (無料)



この記事と関連の高い記事

関連キーワード:WSDL


関連キーワード:XML関連規格




ページトップへ戻る