【しばらく編集不可モードで運営します】 編集(管理者用) | 差分 | 新規作成 | 一覧 | RSS | FrontPage | 検索 | 更新履歴

SOAPの泡に埋もれて - WEBサービス全般にかかわる情報をまとめてご紹介。

目次

WEBサービス全般にかかわる情報をまとめてご紹介。

序文

私はWEBサービスと対話するための、 クライアント側のモジュールを作成する作業に取り掛かっています。

もう少し詳細に言うと、あるツールを使って、WSDLから、 Curlという言語のアプレットプログラムソースを自動生成する、 というものです。

そのなかでいろいろと問題にぶち当たっており、 その整理と、ここを見られている方から情報提供をお願いするために、 いろいろと調べたことをここにだらだらと書いていこうと思っています。

内容は、「WEBサービスは何か」から始まって、 現在販売されている各WEBアプリケーションサーバーの仕様まで多岐にわたります。

リードオンリーの方も、情報を提供していただける方も、 間違いをビシッと指摘していただける方も、大歓迎でございます。

■WEBサービスの基本

参考

WEBサービスとは「サービスを依頼し、結果を受け取る」という簡単な考えを アプリケーションを構成する処理にあてはめ、 それをサーバーとクライアント間でのHTTP通信上で行うことである。

WEBサービスは以下の要素で構成されている。  ・通信時のプロトコルを定義するSOAP  ・サービスの内容を定義するWSDL (UDDIは現時点でそれほど重要ではない)

SOAPの現在(2005/11/10)の最終勧告は1.1である。 WSDLの現在(2005/11/10)の最終勧告は1.1である。

■SOAPの基本

参考

SOAPとはWEBサービスを利用する際に利用される通信規約である。

SOAPプロトコルでは、XML形式のデータと、 データのメタ情報をあわせたものをサーバー・クライアント間でやり取りする。

XML形式のデータをSOAPメッセージと呼び、 メタ情報をプロトコルバインディングヘッダと呼ぶ。

基本的なSOAPでのやり取りは、以下の流れになる。

SOAPメッセージの生成エンジンは「SOAPプロキシ」、解釈エンジンは「SOAPリスナ」と呼ばれる。

■WSDLの基本

参考

WSDLとは、WEBサービスのサービスを提供するためのサーバーアプリケーションの インターフェース仕様をXML形式で記述するものである。

記述形式を定めることで、あるサービスのインターフェースを 「自動的に解析する」ことができるようにしたことが、このWSDLの意義である。

WSDLはあくまでインターフェースの定義仕様であって、 そこで提供されているサービスがどんな意味を持つのかといったことは定義できない。

WSDLには、クライアントアプリーケーションがサービスを利用するために必要な情報、 つまり、サーバーアプリケーションのメソッド名、引数、引数・戻り値の型、 そして、このサービスにアクセするためのURLなどが記述される。

WSDLに利用される要素を簡単に説明すると以下のようにまとめられる。

■XML Schemaのキホン

参考

WSDLを理解するには、XMLのスキーマ(構造)を定義する「XML Schema」を理解しなければいけない。

XMLの構造を定義する仕様としては、「XML Schema」以外にDTDというものがある。 XML Schemaは、DTDが内包していた問題を解決する、後発のスキーマ言語である。

■WEBサービスにかかわる問題点

参考

WSDLの記述方法の揺らぎ

現在W3Cから勧告されているWSDL1.1という仕様は記述方法にあいまいな部分を残している。 そのため、各社のWEBアプリケーションサーバー上で作成されたサービスプログラムから 自動生成されるWSDLは、同じ機能だとしても、各社の仕様により、 微妙な違いが出てくる。 これを相互運用性(インターオペラビリティ)の問題と呼ぶ

W3Cもこの相互運用性の問題を認識しており、 さらに厳格な仕様としてWSDL1.2を策定中である。

WEBサービスの促進のために、 WSDL1.2をまたず相互運用性を高めようと、 WS-I(WebService? Interoperability)という団体が、 WSDL1.0に対する補完的なドキュメントとして作成したものが、 「WS-I Basic Profile」である。。