
Webサービスを使って楽しもう
|
Webサービスは登場当初から、アプリケーション連携(EAI)の面が強調されてきました。現在、Webサービスは「Webサイトが持つコンテンツや機能を外部に提供する」という方向での利用が拡大しています。今回は、Yahoo!やAmazon などの有名サイトが提供しているWebサービスを使ってアプリケーション作りを楽しんでみます。簡単にできますので、次世代の開発を垣間見る意味でも、一度体験されることをお勧めします。
Web系企業が元気なワケ
あけましておめでとうございます。いろいろあった2005年も終わり、新しい年2006年が始まりました。本題の前にまず、皆様の今年のご多幸をお祈り申し上げます。
年の初めでもありますので、今回は肩の力を抜いて一緒に楽しんでいただける話にしましょう。テーマは「Web サービス」です。Webサービスは、Web系の技術者の方にとっては今後の糧となる可能性を秘めた重要なテーマですが、今回は「個人でちょっと楽しむには」という視点でWebサービスを解説します。
また、WebサービスというとUDDI、WSDL といった技術系の話から、Webを利用したビジネスサービスの話まで広範にわたりますが、今回は後者に近い話として、さまざまな企業がインターネットで提供しているサービスを利用します。最近、GoogleやAmazonといったWeb系企業が元気ですが、Webサービスは、そうした企業の元気の源になっています。なぜ、Webサービスが元気の源なのでしょうか。また、Webサービスはどこに使われていて、私たちはWebサービスをどう利用できるのでしょうか。今回はその辺りも紹介していきます。
今どきのWeb サービスとは
一般的なWebサイトは、Webブラウザに対してHTML文書を提供しています。ご存知のとおり、普段私たちがWebサイトに対してアクセスした際に受け取っているのはHTML 文書です。このHTML文書は、CSSやスクリプト言語とともに1つの画面を構成し、人間にとって使いやすいインターフェイスを提供しています。
時代は進み、Webサイトに対するニーズも徐々に変化を見せつつあります。その変化の1つが「利用者の多様化」です。Webサイトが提供しているサービスをプログラムからも使いたい、というニーズが利用者から出てきたのです。そこで注目されたのがWebサービスです。
HTMLで作成した画面は人間にとって理解しやすいものですが、コンピュータにとっても理解しやすいというわけではありません。HTMLは人間にとって分かりやすい画面を提供するための規格で、データを論理的な構造を持って伝達するためのものではないからです。プログラムでHTML文書を参照しても、必要としている情報を簡単に見分けることはできません。
そこで、Webサイトはプログラムからの利用に対するインターフェイスとしてHTML 文書ではなくXML文書を返すWebサービスのAPI(注1)を公開し始めました(図1)。WebサービスのAPIが公開されることで、プログラムから容易にWebサイトが提供するサービスを利用できるようになったわけです。今では、WebサービスAPIを利用したさまざまなプログラムが公開されており、Web サービスAPIを公開したWebサイトの中には、サービス利用者数を大きく伸ばした例も多数あります。前述のGoogleやAmazonなどは、Webサービスをうまく利用することでサービス利用者数を伸ばした典型的な成功例です。

図1 Webサービスはコンピュータ用のインターフェイス
WebサービスAPI公開を呼び水としてサービス利用者数の拡大を目指し、Webサイトは続々とWebサービスAPIの公開を始めています。特に、サービス利用者の増加が直接メリットにつながるWebサイトでは、その傾向が顕著です。現在では、GoogleやYahoo!などの検索エンジン、Amazonなどの小売業、del.icio.us、Bulkfeedsなどブログ系サービスなど数多くのWebサイトが、WebサービスAPIを公開しています。
Webサービスの意味
さて、WebサービスAPIが公開されるということにはどのような意味があるのでしょうか。
現在、Javaなどによる業務アプリケーション開発の現場ではフレームワークやライブラリの利用が進んでいます。さまざまな機能を提供するフレームワーク、ライブラリが多数公開され、また企業単位、プロジェクト単位でも独自のフレームワークやライブラリが整備されています。その結果、開発作業は一昔前と比べて格段に効率が高まりました。フレームワーク/ライブラリを適切に用いると、コードの再利用が進み、開発効率やコードのメンテナンス性が向上するためです。コードの再利用による恩恵を得るための機構がフレームワークやライブラリだとも言えるでしょう。
一方、Webサービスはフレームワーク、ライブラリよりも大きな粒度でプログラムを再利用する機構だと言えます。具体的には、「サービスやコンテンツの再利用」を実現します。Amazonを例に取って考えてみましょう。Amazonは膨大な商品情報というコンテンツを持っており、加えてそれらのコンテンツに対するサービス(検索、ショッピングカートなど)も持っています(図2)。同等のサービス、コンテンツを自力で用意するのは非常に大変ですが、AmazonのWebサービスAPIを利用することで、Amazonが提供するサービスやコンテンツを取り込んだアプリケーションなどを簡単に構築できます(図3)。

図2 Amazonのコンテンツとサービス

図3 1次サービス提供者と2次サービス提供者を結ぶWebサービス
こうしたWebサービスAPIは、サービス提供者が自らの利益のために公開しているものですので、当然、最終的な利益はサービス提供者に入る仕組みになっています。しかし、これらのAPIが上手に活用されることで、サービス提供者とWebサービスAPIの利用者がうまくWin-Winの関係を作っていくことは可能です。
また、WebサービスAPIを利用するちょっとしたプログラムを作ることは、非常に簡単で楽しいものです。利益云々はとりあえず置いておいて、勉強がてらにWebサービスAPIで遊んでみるのも悪くありません。WebサービスAPIは非常に簡単です。HTTPとXMLに関する少しの知識と多少のプログラミング経験があれば、誰でも利用できます。
すでに多くのWebサービスが利用可能に
では、WebサービスAPIを利用することで何を実現できるのでしょうか。
複数のサービスをまとめることで付加価値を高めたり、目的に特化したユーザーインターフェイスを提供したりと、WebサービスAPIはさまざまな用途で利用できます。WebサービスAPIの役割は、コンテンツ(検索結果や商品)を、ある程度の制約があるにせよ、自由に利用できるようにすることですから、WebサービスAPIを利用することでたいていのことは実現できてしまいます。複数のWebサービスを連携させることで、利用できるコンテンツの幅や量も飛躍的に広がりますから、まさしく「何でもあり」といった感じです。WebサービスAPIの利用はアイデア勝負であり、使いようによっては非常に面白いことができる技術と言えるでしょう。
すでに、多くのWebサービスAPIが実際に利用されています。例えば、ブログで商品を紹介する際の商品情報表示で利用されたり、地図情報表示で利用されたりしています。また、複数のWebサービスをまたいで検索できる複合検索サイトなどでも、WebサービスAPIが利用されています。これらはサービスの2次提供者だと言えるでしょう。また、中には自分のブログへのエントリ登録の際にWebサービスAPIを利用することで、面倒な作業(エントリ登録、画像登録、更新情報通知サービスの更新)を自動化している人もいます。
現在、Webサービスとして提供されているコンテンツには、検索エンジン系が提供しているWebサイト情報、ブログ情報、画像情報や、小売業系が提供している商品情報、地図情報など、さまざまなものがあります。それらのうち、主だったものを表に示します。挙げたのは有名どころだけですが、ほかにもまだまだたくさんのWebサービスが公開されています。

表 ■ 代表的な公開Webサービス
(注1)Application Program Interface の略。プログラムが外部のプログラムからの呼び出しを受け付けるインターフェイス。













