簡単に表現してしまえば、Webアプリケーションと呼び出し方法は全く同じであり、結果がXML形式で戻ってくるものだと思えばよい。RESTでどのような形式で引数(パラメータ)を渡すのかは規定されておらず、各Webサービスで独自の書式となる。
また、Webサービスの本流はSOAPだが、比較的複雑で難しい。メッセージ全体をXMLで括るため、オーバーヘッドが発生し、クライアント/サーバどちらも負荷が高くなりがちなのだ。
そこで、より軽量なWebサービスの呼び出し方法として近年使われているのがRESTだ。REST方式のWebサービスは、HTMLの代わりにXMLが戻ってくるWebアプリケーションにほかならないため、負荷はWebアプリケーションとほぼ変わらないのだ。
REST方式をサポートするWebサービスが提供されたことにより、Webサービスの敷居は低くなった。なぜならば、SOAではJavaや.NET Frameworkのように言語そのものや環境構築が、少し複雑なものを使わなければならないのに対し、RESTではHTTPの通信機能さえ実装されていればよい。このためPerlやPHPといったスクリプト言語からも呼び出しやすい。言語理由からも比較的習得するのも容易なのだ。
この結果、WebアプリケーションとWebサービスとを連携させる例も増えてきたのが事実である。
WebアプリケーションとWebサービスとを連携させるには、ユーザーからのリクエストをほかのサーバに渡し、その結果をHTML化してクライアントへ返せばよい(図2)。このように連携させることで、Webアプリケーションは外部の機能をあたかも自らのWebサイトで提供しているように見せることができる。
WebアプリケーションとWebサービスとの連携をうまく実現するポイントは、次の2つの点だ。
1. どのようにHTML化するのか
前述のようにWebサービスの戻り値はXML形式のため、ユーザー(ブラウザ)に返すためには、HTML形式に整形する必要がある。
HTML形式に整形するためには、2つの方法が挙げられる。ひとつはXMLパーサーを使ってタグで囲まれた要素を取り出し、整形する方法。もうひとつは、XSLTを使って一気にHTMLへと変換する方法だ。
どちらが好ましいのかは、Webサービスから得られるXMLの形式がどのような構成かによる。単純な置換でHTML化できるのであれば、XSLTを使うのが容易だ。
2. WebアプリケーションからWebサービスへの伝送
いままでWebアプリケーションでは、クライアントへの下りの通信速度が重視されていたが、Webサービスとの連携をするのであれば、Webサービスとの速度にも気を配る必要がある。
Webサービスが登場した当時にWebサービスを使った経験がある人は、「Webサービスの仕組みは良いけれど、規格だけが先行していて実用性がない」「SOAPが複雑すぎて呼び出す手順が難しい」という印象があったかもしれない。そのために、Webサービスは使い物にならないと判断した人もいたはずだ。
確かに初期のWebサービスは、苦労する割には見返りが少なく、企業間の連携などのある程度規模の大きさがなければメリットが得られなかった。しかし現在のWebサービスは、ずいぶんと状況が違ってきているのだ。
第一に挙げられるのが、Webサービス環境の充実だ。近年では、ブログのトラックバックやRSS(RSSはXML形式でデータを返すため、REST方式のWebサービスの一種である)をはじめ、Amazon APIやGoogle Web APIなど、商用で便利なWebサービスが自由に使えるよう解放されている。
そして第二に、RESTによってSOAPを使わずにWebサービスを使えるため、扱いが非常に簡単になったという点も大きい。XMLの基本的な知識があれば、容易にWebサービスを活用できる時代になったのだ。過去にSOAPのWebサービスを使って諦めた経験がある人も、これを機に、RESTのWebサービスを一度試してみるとよいだろう。
Copyright © ITmedia, Inc. All Rights Reserved.