Webサービスの基礎知識Beginner's Guide(2/7 ページ)

» 2007年12月15日 03時47分 公開
[Shawn-Hermans,Open Tech Press]
SourceForge.JP Magazine

XML

 XMLはあらゆるWebサービス標準規格の基礎であり、どんな種類のデータでも記述できる柔軟な言語だ。データの各要素の記述には簡単なテキストタグを用いる。バイナリエンコーディングではなくテキストタグを使用するため、人が読んで理解できる。XMLの拡張機能を使うことで、開発者は既存のデータ定義に悪影響を与えることなく、新たなデータ要素を必要に応じて追加できる。

 その本質的な柔軟性と処理ツールの多様さにより、XMLは新たなデータ形式を定義する手段として広く使われている。XMLの有用性を物語っているのが、地理的特徴(Geographic Markup Language)、数式(Math Markup Language)、グラフィック(Scalable Vector Graphics)をはじめとする膨大な種類のデータを記述するXMLスキーマの存在だ。また、Microsoft Office 2007とOpenOffice.orgの両オフィススイートもデータの保存にXML形式を利用している。

 利点は多いが、XMLにも欠点はある。バイナリ形式と違って記述がかなり冗長になることだ。このことは概して、同じ情報をバイナリ形式でエンコードする場合よりも、必要な演算能力、ストレージ空間、帯域幅が増えることを意味する。こうした問題の多くを解決するために、効率的なXML表記の開発が進められている。

SOAP

 SOAPはWebサービスのメッセージのフォーマットを定義するXMLベースの言語だ。従来はSimple Object Access Protocolと呼ばれていたが、今やその名称とは異なるものになっている。SOAPでは同期と非同期、双方のメッセージングパターンを扱うことができる。つまり、一方向のメッセージングパターンと要求/応答パターンのどちらでも使える。そのため、SOAPによる実装の柔軟性は極めて高い。

 SOAPメッセージには、ヘッダ(header)、ボディ(body)、エラー情報(fault)という3つの基本要素が含まれる。これらの要素は任意の種類のXMLデータを持つことができ、非常に柔軟性に富んでいる。通常、SOAPヘッダにはSOAPメッセージの処理に関する情報が収められる。WS-*仕様の多く(WS-Security、WS-Addressing、WS- ReliableMessagingなど)は、追加の機能をSOAPヘッダとして実装している。SOAPボディには、アプリケーションのデータ、各種関数のパラメータ、実行を完了した関数からの返り値が含まれる。また、フォールト要素はSOAPメッセージの処理中に発生したエラーの状況を伝える。

 SOAPの主な欠点はパフォーマンスと帯域幅にある。XMLを使っているため、バイナリプロトコルに比べてデータの表記に伴うオーバヘッドが大きいのだ。SOAPとCORBAを比較した記事によると、SOAPはバイナリプロトコルと比較して30〜60倍の処理時間がかかり、50〜100倍の帯域幅を消費するという。こうした理由から、組み込みシステムにおけるコンポーネントの接続には、バイナリベースのリモートプロシージャコールプロトコルであるCORBA(Common Object Request Broker Architecture)がよく使われる。

 SOAPのパフォーマンスや帯域幅の問題を補っているのが、標準のポートやSMTP、HTTPS、HTTPといった標準プロトコルが使える点だ。一般的なインターネットテクノロジーが使えることから、SOAPではファイアウォールの横断がほかのリモートプロシージャコールプロトコルよりも容易である。ネットワークを再構成しなくても既存のネットワークトポロジとの相互運用が行えることは、SOAPが普及している要因の1つだ。

関連キーワード

Webサービス | SOAP | XML | 標準 | SOA | Beginner's Guide


Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ