これからの「Web」アプリに求めるべきものWebアプリ開発の新基準(1/2 ページ)

Webアプリケーションは、GoogleやAmazonなどのAPI提供によってますます身近になった。Web上で展開されているサービスのテクノロジーは、いま何がトレンドなのだろうか? エンジニアやプロジェクトマネジャーが注目すべき指針を示す。

» 2005年10月06日 08時00分 公開
[大澤文孝,ITmedia]

 「Webアプリケーション」では、ほかのWebサーバと通信し、その結果を埋め込んでユーザーに表示することができる。これを実現するのが「Webサービス」だ。

 Webサービスは、従来まで企業間通信など基幹部分を中心に使うものだと言われてきた。しかし近年は、個人が提供するWebサイトでもWebサービスを使い、取得した情報を埋め込んで出力する例が増えている。これはどのような理由からなのか?

 この記事では、WebアプリケーションとWebサービスの連携について解説していく。

Webサービスの登場背景は企業間の安全なつながり

 Webサービスとは、「Web技術を使ってネットワーク越しに何らかのサービスを提供するもの」の総称である。しかし、これでは意味が分かりづらいのが正直なところだ。そこでまずは、Webサービスの実体から見ていくことにしよう。

 一般的にWebサービスは、Web(HTTP)サーバに配置されたプログラムとして構成されている。Webサービスは、HTTPプロトコルで要求を受けると、その結果をブラウザに返す。結果は一般的にXML形式で構成され、呼び出し側のプログラムがXMLを解析し、戻り値を取り出して利用するのだ。

 WebアプリケーションとWebサービスとの違いは、「Webブラウザが呼び出されるのか」「結果がHTML形式なのか」「それともXML形式なのか」という点でしかない。いずれもWebサーバ上で実行されるプログラムという解釈なのだ(図1)

図1■WebアプリケーションとWebサービスの違い。HTML形式で返すのがWebアプリケーション。XML形式で返すのがWebサービス

 Webサービスの登場には、企業間でデータ連携を行うという背景があった。企業内で使われるシステムは、当然のように異なることから、直接ネットワーク接続をしてやり取りすることが難しい。また、セキュリティ問題もあることから、他社に対して企業内システムを直接つなげる行為は危険だ。

 そこで企業内システムとの連携をするWebサービスを作り、そのWebサービスを取引会社に公開することで、企業内システムの一部にアクセスさせようと考えたわけだ。WebサービスはHTTPプロトコル利用のため、ファイアウォールの透過性が高いというメリットもある。

SOAPとXML RPC、そしてREST

 ひと口にWebサービスといっても、提供されているものを利用する方法はひとつとは限らない。現在主流となっている利用(呼び出し)方法には、次の3つがある。

1. SOAP(Simple Object Access Protocol)

 W3CのXML Protocol Working Group(http://www.w3.org/2000/xp/Group/)で標準化されているプロトコルだ。全体をXMLで括り、SOAPエンベロープという情報を付加してデータのやり取りをする。Javaや.NET Frameworkをはじめ、多くの開発言語(実行環境)でサポートされているものだ。

 また、Webサービスで使われる標準的なプロトコルであるが、もともとは企業間連携を目的に開発されたものである。そのため、セキュリティやトランザクションといったさまざまな周辺規格も関連しており、習得するのが比較的困難でもある。

2. XML RPC

 引数を簡単なタグで括ったXMLとしてリクエストを送信する方式だ。プロトコルは、XML-RPC.comで定義されている(関連リンク)

 「構造が単純」という利点はあるが、規格上簡単な引数しか渡せない。また仕様の細部が定められていないという問題点もある。現在主流ではないものの、SOAPよりも軽量さが魅力という理由から幅広く使われているのだ。

3. REST(REpresentational State Transfer)

 RESTは、HTTPプロトコルのGET、POST、DELETE、PUTといった基本的なメソッドを利用し、Webサービスを呼び出す手法の全般を指す用語だ。注意してほしいことは、RESTという仕様や実体があるわけではないことである。

 URLのクエリパラメータ(例として「http://www.example.co.jp/webservice?param1=value¶m2=value」の書式で「?」以降の値のこと)に引数を渡したり、Webの入力フォームのデータを直接送信することで、その結果をXML形式で得る。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ