INTERNET
インターネット最新テクノロジー：第 46回

孤島化からの脱却SOAPがウェブにおける技術革新の基礎を支えるSOAP（Simple Object Access Protocol）

もたらすウェブサービスの連携
もしあなたが出張を命じられ、航空券の購入とその経費の申請をウェブサイト上で行うということになった場合、どのようにウェブを利用するだろうか。
これまでのウェブの利用法では、航空券購

これまでのウェブサービスは、各サイトが独自のバックエンドを持ち、ばらばらにサービ入のウェブサイトと、経費の申請を行うウェスを提供しているという「サービスの孤島」であった。ところが現在、インターネット上にブサイトとの両方にアクセスして、それぞれある無数のウェブサービスをダイナミックに結合させようという技術革新が起きつつあにデータを入力しなくてはならなかった。しる。今回はこの革新の基礎を受け持つプロトコル「SOAP」について解説する。

かし、もしこの2 つのサービスが1 つのサイト

岡部惠造

で提供されていれば、入力するデータ量も少株式会社 イー・ブリッジなくてすみ、ユーザーの負担はかなり軽減されるはずだ。
このように、ウェブサイトが提供しているサービスがそれぞれサイトごとに完結している状態、いわゆる「サービスの孤島」となっていることによる不便は大きい。
このような不便を解消するのが、今回紹介する X M L ベースの R P C （ R e m o t eProcedure Call）プロトコル「SOAP」だ。
先ほど挙げた例だと、経理システムとチケット会社のウェブサービスが連携することで、チケット会社が持つデータをあたかも経理システムのバックエンドかのように利用し、チケットの入手と経理への申請とを同時に行うといったことが可能になる。つまり、1 度のユーザーアクションで複数のウェブサービスを利用できるようになるわけだ（図1）。
実はこれまでも、マイクロソフトのDCOMやOMG のCORBA/IIOP といったオブジェクトモデルを使うことでウェブサービスを連携させることができたが、この方法だと双方がそれぞれ同じオブジェクトモデルを利用している必要があり、限られた連携にすぎなかった。それに対してSOAP は、インターネットに接続されたすべてのクライアントやサーバーが必ず実装しているHTTP やSMTP などの標
準トランスポートプロトコルを利用するため、インターネット全体を視野にした広域での連携をもたらしてくれる。

330 INTERNET magazine 2001/9

インターネットマガジン／株式会社インプレスR&D©1994-2007 Impress R&D

ジャストインタイムによる（右側）アプリケーション構築
DB

それでは、RPC そのものの概念とそこでのDB
XML+SOAP

SOAPの働きを解説する。RPC はネットワー
ク上に分散している遠隔地アプリケーションをサブルーチンのように呼び出す技術方式のことだ。API（Application Programming

DB

Interface）を用いた密結合のアプリケーショ

DB

ウェブサービスの連携によりユーザーは1度のアクセスですむ

ユーザー自身による複数のアクセスが必要

ンの場合は、実行する前からそれぞれのモジュールが結合しているのだが、RPC メカニズ

図1

ウェブサービスの連携

ムのアプリケーションでは、インターネットに分散しているモジュールをSOAPで呼び出し、一時的に結合させて実行するため、拡張性が高い（図2）。呼び出せるウェブサービスには、マイクロソフトの「HailStorm」のようなビAPI

ジネス共通の基盤となるものから、「金融決SOAP済」「在庫引当」といった個々のビジネスサービスまであり、アプリケーションがこれら多様なウェブサービスを共有する。モジュール単位でのアウトソーシングと言えるだろう。

APIを用いた密結合のアプリケーション

ウェブサービスに投げられる

RPCメカニズムのアプリケーション

SOAPメッセージ

図2

RPCメカニズムのアプリケーション

SOAP は、潜在的にはほかのさまざまなプロトコルとの組み合わせで利用できるが、XMLサービスリクエスト文書
POST /StockQuote HTTP/1.1

SOAP1.1 仕様では、HTTP とHTTP 拡張フ

Host: www.stockquoteserver.com
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn

レームワークとの組み合わせで使う方法のみ

ウェブサービス

SOAPAction: "Some-URI"<SOAP-ENV:Envelopeが定義されている。

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-

SOAPのメッセージは、自分がSOAPメッENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><m:GetLastTradePrice xmlns:m="Some-URI"><symbol>DIS</symbol>

セージであることを示すエンベローブ要素、DISの株価を教えて</m:GetLastTradePrice></SOAP-ENV:Body>

SOAP メッセージに必要な固有のヘッダー要</SOAP-ENV:Envelope>

34ドル50セント

素、メッセージ本体であるボディー要素の3XMLサービスレスポンス文章つで構成されており、全体がXML で記述さHTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"

れている。図 3 ではHTTP リクエスト中に埋Content-Length: nnnn
<SOAP-ENV:Envelope

め込まれたSOAP 送信メッセージと、HTTP

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAPENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

レスポンス中に埋め込まれた応答メッセージ<SOAP-ENV:Body><m:GetLastTradePriceResponse xmlns:m="Some-URI"><Price>34.5</Price>の例 を挙 げている。 最 新 の株 価 を調 べる

リクエスター</m:GetLastTradePriceResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

GetLastTradePrice というウェブサービスに「DISの株価を教えて」とリクエストが送信され、レスポンスとして「34ドル50セント」が

図3

SOAPメッセージを使ったやりとり

インターネットマガジン／株式会社インプレスR&D

HailStorm（ヘイルストーム）：マイクロソフトが提供を予定している個人情報を管理するウェブサービスのコードネーム。

©1994-2007 Impress R&D

INTERNET magazine 2001/9331まず、プロバイダーは標準化されたXMLで返送されているのがわかるだろう。

ウェブサービスについて記述する。この記述
は電話帳のディレクトリー情報によく似ておSOAPでは解決できない

り、図5にあるとおり「ホワイトページ」（ビRPCを実現する際の問題点ジネス情報）、「イエローページ」（業界別のこれまでSOAP を使ったウェブサービスのサービス情報）、「グリーンページ」（接続情連携について解説してきたが、実際にアプリ報）という3種類の情報と、実際に接続するケーションの実行と同時にウェブサービスと際に必要なインターフェイス情報が記載され接続するには、以下のことを.実現できなけれているWSDL（Web Services Descriptionばならない。

Language）などから構成されている。このWSDL にはtModelKey と呼ばれるウェブサ①ウェブサービスを説明する標準化された記ービスへのインターフェイス仕様を一意に識述方法（記述言語）が存在すること。

別するIDや、SOAPでアクセスする際に使用するXML の仕様などが記述されている。

②必要なウェブサービスをインターネット上で画一的に見つけ出せる仕組みがあること。

そして次に、プロバイダーはSOAP を使用③発見したウェブサービスにアクセスする汎用してブローカーが提供するインターネット上のディレクトリーにその記述を登録する。

的な方法が標準化されていること。
④複数のウェブサービスを統合して、1つの意

それに対し、ウェブサービスを求めるリク

味ある機能を果たすプロセス記述言語が標

エスターは、同じくSOAP を使用してディレ準化されていること。

クトリーにある各ページを検索して、最適のウェブサービスを見 つけ出 す。 そして、⑤複数のウェブサービスにまたがるトランザク

WSDL などの接続情報をダウンロードし、ションの管理ができること。

UDDI 対応のB2B サーバーにインストールし⑥ウェブサービスへのアクセス時に高度なセキュリティーが確保されていること。てウェブサービスに接続する。

これらのことは、SOAP 単体では解決でき多くのリクエスターに自らのサービスを利用ない問題だ。しかし、それぞれ解決策が提示してもらえる。そしてリクエスターは必要なされているので以下で解説しよう。

ウェブサービスを見つけ出してすぐに接続しUDDI の仕組みによって、プロバイダーは利用できる。その結果、UDDI を利用することで、テレビのチャンネルを切り替えて番組ウェブサービスを実現するを受信するかのように、ウェブサービスもダインターネット上の三角関係イナミックに切り替えられる。

リストの①から③までの用件を実現させようとしているのが U D D I （ U n i v e r s a l

複数のウェブサービスの利用をDescription,Discovery and Integration）可能にする2つのポイントというインターネット用のグローバルディレクアプリケーションを構築する際に、1 つのトリーの仕組みだ。
図4にあるとおり、UDDIはウェブサービスウェブサービスへのアクセスだけで機能をすべを提供する「プロバイダー」と、サービスをて実現できるケースは少なく、実際には複数探して利用する「リクエスター」、その仲介へのウェブサービスに一定の順番でアクセスをする「ブローカー」の三角関係により成立することが多い。そこで先ほどのリストの④している。の「プロセス定義」が必要になる。現在はプD

332 INTERNET magazine 2001/9

インターネットマガジン／株式会社インプレスR&D

インターフェイス：2つ以上の機器をつなぐ場合に必要な各種の手順や装置、あるいはそれらの規格や仕様そのもののこと。人間とコンピュータの間をインターフェイスとみなし、ユーザーインターフェイスなどとも呼ぶ。
©1994-2007 Impress R&D

ロセスを記述するXMLとして、マイクロソフ
トの B i z T a l k サーバーで利 用 されている
XLANG と IBM の WSFL（ Web ServicesFlow Language）などがあり、標準化が進められているところだ。
またそのアプリケーションの途中で障害などが発生し処理を中止する場合、それまでに実行した処理もロールバックして元に戻す必要がある。冒頭に挙げた例で言えば、チケッ
トの予約はとれたけれども、経理システムがうまく働かなかったといった場合だ。このよ
うなときは、チケットの予約自体もなかったことにしなくてはならない。このようなトランザクションの調整を行うのがXAML（Transaction Authority Markup Language）であり、現在のところ開発中だ。

サービスブローカー

ウェブサービスにおけるセキュリティーの確保
XML＋SOAP②サービスの発見①サービスの登録⑥のセキュリティーに関しては、いくつかの重要な取り組みがある。非技術的な取り組
サービスリクエスター

みとしては、ウェブサービスに対する格付け

サービスプロバイダー③サービスの利用や与信管理などが進められており、また技術

XML＋SOAPなど的な分野ではSOAPのデジタル署名に関する
図4

拡張の提案、XKMS（XML Key Manage

UDDIの三角構造

ment Specification）というセキュリティーサービスの提案、信用状を発行するSAML

ホワイトページ・ビジネス名・サービスの記述
・連絡情報

イエローページ

・業界識別
・製品／サービス識別・所在地

グリーンページ・プログラムインターフェイス
・接続のための情報

インターフェイス仕様

・WSDL（Web Services Description Language）
・インターフェイスのID+Modelkey（Security Assertion Markup Language）と言語の標準化が進んでいる。

図5

UDDIのディレクトリーサービスの構造`インターネットマガジン／株式会社インプレスR&D

トランザクション：コンピュータがデータを処理すること。またはその際の処理単位。
。

©1994-2007 Impress R&D

INTERNET magazine 2001/9333

［インターネットマガジン バックナンバーアーカイブ］ ご利用上の注意
この PDF ファイルは、株式会社インプレス R&D（株式会社インプレスから分割）が 1994 年～2006 年まで発行した月刊誌『インターネットマガジン』の誌面を PDF 化し、「インターネットマガジン バックナンバーアーカイブ」として以下のウェブサイト「All-in-One INTERNET magazine 2.0」で公開しているものです。

http://i.impressRD.jp/bn
このファイルをご利用いただくにあたり、下記の注意事項を必ずお読みください。
z 記載されている内容（技術解説、URL、団体・企業名、商品名、価格、プレゼント募集、アンケートなど）は発行当時のものです。
z 収録されている内容は著作権法上の保護を受けています。著作権はそれぞれの記事の著作者（執筆者、写真の撮影者、イラストの作成者、編集部など）が保持しています。
z 著作者から許諾が得られなかった著作物は収録されていない場合があります。
z このファイルやその内容を改変したり、商用を目的として再利用することはできません。あくまで個人や企業の非商用利用での閲覧、複製、送信に限られます。
z 収録されている内容を何らかの媒体に引用としてご利用する際は、出典として媒体名および月号、該当ページ
番号、発行元（株式会社インプレス R&D）、コピーライトなどの情報をご明記ください。
z オリジナルの雑誌の発行時点では、株式会社インプレス R&D（当時は株式会社インプレス）と著作権者は内容が正確なものであるように最大限に努めましたが、すべての情報が完全に正確であることは保証できません。このファイルの内容に起因する直接的および間接的な損害に対して、一切の責任を負いません。お客様個人の責任においてご利用ください。

このファイルに関するお問い合わせ先
All-in-One INTERNET magazine 編集部
im-info@impress.co.jp
Copyright © 1994-2007 Impress R&D, an Impress Group company. All rights reserved.