IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  Open source  >

連載「Web 2.0 - 企業への応用」: 第1回:Web 2.0を整理しよう

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません


レベル: 初級

米持 幸寿, テクノロジー・エバンジェリスト, IBM

2007年 8月 10日

近年のインターネットは、使い方がかなり変化し第二世代に入ったと言われており、Web 2.0と呼ばれていることはよく知られていることですね。これは、Tim O'Reilly氏の提唱によるものですが、インターネットの様々な例をあげて、その変化を説明しているものです。この記事では、Web 2.0に取り上げられている多くの技術や考え方を、三つの視点から分類・解説し、理解することを目標にしましょう。

Web 2.0を三つに分類して考えよう

ここでは、Web 2.0に関連するトピックを三つに分類して考えます。「コミュニティー性(COMMUNITY mechanisms)」「シンプル(SIMPLE)」そして、「サービス化(Software as a SERVICE)」です。(図1)


図1.Web 2.0を三つに分類

「コミュニティー性」は、インターネットに形成されている様々なコミュニティーの活動の価値を意味しています。現代のインターネットには、ブログ、Wiki、製品評価サイトなど、ネットユーザーが書き込みを行うサイトが大量に存在します。その書き込みには、重要な情報が大量に含まれています。

「シンプル」は、Webブラウザーのみで実行されることの価値を意味しています。Webアプリケーションは、サーバー上で準備するだけで簡単に広く展開できる、非常に運用性の高い方式として長く愛用されているアプリケーション基盤です。Webブラウザーだけで、どこまでできるか挑戦しているグループを指しています。

「サービス化」はSOAと似たような話ですが、Webサイトにあるソフトウェアを、別のソフトウェアから呼び出し可能にしておき、組み合わせ可能にしようという考え方です。「SaaS」をビジネスモデルとすることもありますが、ここではソフトウェアがサービス化されている、という機能面に注目しています。

では、それぞれ三つの特徴をさらに細かく掘り下げて解説していきましょう。




上に戻る


コミュニティー性

Web 2.0では、ネットユーザーが様々な仕組みの上でコミュニティーを形成しています。コミュニティーを作ることができる仕組みが、Web 2.0の中核とも言えます。今日のインターネットには、ユーザーがコンテンツを簡単に掲載できる仕組みがたくさんあります。フォーラム商品評価サイトブログWikiなどです。

インターネットが商用化された1995年ころからこれまでも、ユーザーが自分のコンテンツをWebに掲載することはできました。ISP(インターネット・サービス・プロバイダー)契約するときにもらえるディスク・スペースにURLがついているからです。そのディスクスペースにHTMLファイルを作って置くだけで、簡単に自分のWebサイトを作ることができます。しかし、HTMLファイルを作るのはけっこう面倒な作業です。本当の意味での素人では正しく扱えません。

今日のインターネットにある様々なサイトの機能を使えば、HTMLなどの仕組みを知らなくても、誰でもWebブラウザーから「本当に簡単に」書き込みを行い、コンテンツを掲載できます。

フォーラム、商品評価、ブログ、Wiki

インターネット・サイトにユーザーが簡単に書き込みをできるサイトがたくさんあります。特徴は、HTMLなどの技術的なことを知らなくてもWebブラウザーから簡単に書き込みができることです。かつて「パソコン通信」時代にも、パソコン通信サイトにコミュニティーを作る機能がありました。それと同じことが行われていると考えることもできます。しかし、マニアのものでしかなかったパソコン通信と比較し、現代のインターネットは女子高生や主婦など、本当の意味での「素人」を含む幅広い人が参加しているので、当時とは違う参加者のコミュニティーができていると考えられます。

フォーラム・サイトは、なにかの話題に関して議論をすることを目的としたサイトです。通常、誰かの書き込みに対して「スレッド(thread)」という形で返事を書き込んでいく方式で会話を行います。商品評価を書き込むサイトもフォーラム型式のものが多いです。

ブログサイトは、日記(log)を書いて公開するサイトです。Webのlogを縮めて「weblog」→「blog」となったと言われています。

Wiki は、一つのサイトに書かれているコンテンツを、多くの人で共同で編集できるようにする機能を持ったサイトです。当然、Webブラウザーから書き込みをして作っていくことができます。

コメントづけ、トラックバック

フォーラム、ブログ、Wiki に限らず、普通のWebコンテンツを表示しているサイトでも、最近では「コメント」を書き込む機能がついています。

どこかのサイトに書かれている内容に関する感想などを、自分のブログに書く人もいると思います。ブログ側から対象サイトへのリンクは自分で書けば済むことですが、逆ができません。それを可能にする機能が「トラックバック」です。

コメントやトラックバックの機能を使って、多くのサイトが他の人とのコラボレーションを実現しています。

ソーシャル・ブックマーク、フォークソノミー、タグクラウド

Webブラウザーには「ブックマーク」と呼ばれる機能があります。これは、一度観たサイトのURLを覚えておく機能です。これをWebサイト上に置き、共有する仕組みが「ソーシャル・ブックマーク」です。ソーシャル・ブックマークは、通常「タグ」と呼ばれる「キーワード」を登録することになっています。記録しておいたブックマークを分類したり、検索したりするためです。

多くの人がたくさんのサイトのブックマークを保存し、そこに大量のタグが付けられることでいろいろなことができるようになります。話題になっている言葉の流行を知る、人気の高いサイトを調べる、特定の単語を知っている人を探す、というようなことです。このように、インターネット・コンテンツが、民衆(folks)によって分類(taxonomy)されていくことから、フォークソノミー(folksonomy)という造語(合成語)もあります。

その一例として、タグ一覧からトピックを選択するときに「タグクラウド(tag-cloud)」という表現方法が広く使われています。人気の高いタグの単語ほど大きなポイント数で表示する、という方式です。

SNS

こういった社会の人脈(ソーシャル・ネットワーク)を形成するような機能のWebサイトを提供することをSNS(ソーシャル・ネットワーク・サービス)といいます。社内に展開されることも可能でしょうし、SNSを事業としてやっている企業もあります。


図2.ソーシャル・ネットワーク

ソーシャル・ネットワークに参加することで、ネット・ユーザー同士がWebブラウザーを使って知り合い、コミュニケーションできるようになりました。不特定多数の人と出会い、ネット上で知り合い、輪が形成されていくことにより新しい価値が生まれます。ある人は、Webサイトにコメントを書きます。ある人は、他の人とWikiサイトでWebサイトを共同制作します。ある人は、別のサイトへの意見をブログに書き、その記事へトラックバック(リンク)を張ります。こうして、それぞれのサイトへ書き込んでいる人同士が、意見の交換を行います。(図2)

注:ブログには「紹介制の会員サイト」というのがありますが、それは単にその企業のポリシーであって、「ソーシャル・ネットワーク=紹介制サイトのこと」ではありません。

検索とテキスト・マイニング

ネット・ユーザーの書き込みやブックマークが増えることで、ネット・ユーザーの行動パターンがインターネットに凝縮されたことになります。

フォークソノミーによって分類された情報を上手に検索して価値の高い項目を抜き出すことができる検索エンジンは、今後の大量のインターネット・データを処理するのに欠かせないものとなるでしょう。

また、大量の文章を処理して活用するには、書き込み内容の傾向を分析しなければなりません。たとえば、同じ意見がどれくらい書かれているか、時系列に観見たときのトレンドはどうか、などです。日本語や英語などの、普通の言葉(自然言語)で書かれた文章から、単語などを抽出して分析する技術をテキスト・マイニングと言います。

このため、Web 2.0の分野では検索とテキスト・マイニングが大きな威力を発揮します。フォーラム、ブログ、Wikiなどに書き込まれている「文章」は、データベースに入っているデータと違い、データの単位に区切られていません。このようなあいまいなデータ(非構造化データといいます)を解体、意味を取り出しながら分析するエンジンも、検索と併せて使う必要があります。

CGM、集合知

ここまで説明したように、フォーラム、商品評価、ブログ、Wikiサイトといった書き込みができるサイト、コメントづけやトラックバックといった意見交換の仕組み、ソーシャル・ブックマークなどのタグづけ、そして、それらを分析し、活用しようというフォークソノミー、検索、テキストマイニングなどの動きが活発になっています。ネット・ユーザーが書き込んだものが、ネット・ユーザーにとっての書籍や雑誌などのメディアのような影響力を持つようになりました。このため、これらを総称してCGM(Consumer Generated Media/消費者生成メディア)と呼びます。

また、たくさんの人がネット上で相互に会話などをしながら新しい意見やアイデアを創出するようになってきています。後に出てくる「マッシュアップ」なども含め、ネット・ユーザー同士のコラボレーションによって創り出される新しい知識や知恵を「集合知」と呼びます。

これらは一つ一つでも役に立つものですが、それらを組み合わせることで、より価値の高い活動に結びつけることができます。




上に戻る


「シンプル」にWebサイトをかっこよく作ろう

なぜWebブラウザー?

Webブラウザーがアプリケーション端末として使われるようになった背景を思い出しましょう。これは、ネット・ユーザーとアプリケーション提供者の両方に関係します。ネット・ユーザーにとってアプリケーションのインストールは面倒で難しいこともあります。Webアプリケーションならばブラウザーでアクセスするだけでいいわけです。アプリケーション開発者から見れば、アプリケーションを配布などせずにサーバーに置くだけでよいWebアプリケーションは、展開や管理が簡単です。

こうした理由からWebブラウザーを端末として使うアプリケーション、すなわちWebアプリケーションが幅広く使われるようになってきました。この「シンプル」さこそが、Webアプリケーションの最大の価値です。

しかし、HTMLだけで表現できるWebアプリケーション画面には、「使いにくい」「作業が中断する」という欠点があります。しかし、「シンプル」であること、すなわちWebブラウザーだけで実行できるということは貫きたい。こういった問題を「ダイナミックHTML」や「Ajax」と言われるプログラミング方法で解決してきたことにより、Webブラウザーだけで実行できる、比較的リッチで使いやすい、あるいは魅力的なWebサイトが増えているのもWeb 2.0の特徴です。

画面制御をプログラミングする

Webアプリケーションを「使いやすく」「連続した作業が可能」なものにするための方法として、JavaScriptというプログラミング言語を使った画面制御があげられます。これを旧来は「ダイナミックHTML」と呼んでいました。

ダイナミックHTMLでは、以下のようなことを行うプログラムをWebブラウザー上で実行することができます。こうすることで、「シンプル」さを失わずに、Webサイトを魅力的なものにできます。たとえば、テキストの入力支援、マウスによる操作、画面の動きの制御などです。

テキストの入力支援
入力フィールドを多く持つアプリケーションでは、キーボードのみを使って入力するときには、タブキーやマウスの操作は面倒なものです。こういったニーズを満たすために、ダイナミックHTMLを利用することが考えられます。
  1. n桁入力したら、自動的に次のフィールドへ移動
  2. エンターキーを押すと次のフィールドへ移動
  3. あらかじめ決められたフォーマットが表示されていて簡単に入力(マスク入力)
  4. 数字キーだけの入力で、カンマや小数点を自動的に挿入

マウスによる操作
Webブラウザーは、通常ウィンドウシステムで動作します。ウィンドウシステムの入力デバイスとして、マウスなどのポインティング・デバイスが一般的に使われています。HTMLだけでは、Webブラウザーが持つ様々な使いやすい表現がされないために、使いにくいアプリケーション画面を我慢してつかわないといけません。
  1. タブ制御(タブの切り替えでページが切り替わる表現)
  2. グリッド制御(スクロールできたり、タイトルのクリックでソート可能な表)
  3. ツリー表示
  4. ドラッグ&ドロップによる行の入れ替え
  5. ソート可能な表

画面の動きの制御
Web画面には動画や音楽を貼り付けられることはご存じだと思いますが、それらの多くは一方的に再生されるものです。マウスの動きに併せて変化するように作るには、プログラムが必要となります。
  1. マウスを上に置くと色が変る
  2. マウスを上に置くとメニューが表示される
  3. クリックすると引き出しのように開く
  4. 地図をクリックするとその場で拡大する

サーバー・データとの連携

Webブラウザー上で実行するアプリケーションのプログラミングのために、ダイナミックHTMLを使うとき一つ課題となっていたのが、サーバー・データとの連係でした。ダイナミックHTMLのプログラムは、Webコンテンツの中に書き込まれて、Webブラウザーにダウンロードされて実行されます。JavaScript というプログラミング言語は、セキュリティーなどの関係から機能がとても制限されており、一般的なプログラムライブラリーにアクセスできません。このため、通信機能なども利用できませんでした。このため、ダイナミックHTMLで使えるデータは、あらかじめプログラム中に書いておくものに限られ、データの保存をするためには、HTMLフォームの送信をして、ページの書き換えをする必要がありました。

これに新しく加わった機能「XHR(XmlHttpRequest)」によって、状況が大きく変化しました。JavaSciprtは、自らHTTPリクエストを作ってサーバーとデータの交換ができるようになりました。これで、ダイナミックHTML上でサーバーとデータ交換をしながら動作させることが可能になりました。

また、別の方法で、JavaScript で書かれたデータ宣言部を動的にダウンロードして稼働する方式「JSON(JavaScript Object Notation)」もあります。

こういった方式を使ってサーバーとのデータ連係をしながら動作するダイナミックHTMLを、JavaScriptとXMLを使う非同期型(操作ごとに画面をダウンロードしない)プログラミングモデル、といことで「Ajax(Asynchronous JavaScript and XML)」と言います。

ダイナミックHTMLは1996年ころから始まったものですが、10年でその表現力は大きく進化しました。当時は不可能だと思われていたことができるようになってきていることで、Webブラウザー上で実行できるソフトウェアの表現力は格段に進歩しています。さらにサーバー上のデータを参照したり、画面を閉じずにデータが保存できるようになったことで、Webブラウザーで実行されるプログラムの可能性が飛躍的に大きくなりました。

たとえば、旧来はHTML画面だけでは実現が難しかった「ドラッグによりスクロールできる地図」や、ワープロやスプレッドシートのようなオフィス・アプリケーションの一種までWebブラウザー上で実行できるものが登場しています。これらのアプリケーションにとって、サーバー上にある膨大なデータを参照したり、作業中のデータをサーバーに保存したりできることが重要な基礎となっています。

永遠にβ

Ajaxなどの技術を使った近頃のWebアプリケーションのサイトは、更新の頻度が非常に多くなってきています。旧来のように「企画」「計画」「設計」「実装」「テスト」などといったサイクルをまわしていたのでは、変化の激しい社会についていけないからです。このようなことから、Web 2.0サイトでは「永遠にβ」という言い方で、「正式バージョンのアナウンスがない」ままアプリケーションが提供されている例も多くなってきています。このようなサイトでは、比較的短時間で新機能が取り入れられたり、だれにも使われない機能がひっそりと消えていたりします。




上に戻る


サービス化とマッシュアップ

通常のWebサイトは、ブラウザーを使って手動でアクセスすることでアクセスします。この場合、人間の手を煩わせることになります。Web時代になって、多くの企業が自社のビジネス機能をWeb化しました。Web-EDIと呼ばれる仕組みにより、Web上で取引が行われることが多くなりました。しかし、この結果生まれたのは、膨大な「ブラウザーでの作業」」です。

Webブラウザーに表示されている画面はHTMLというデータでできています。HTMLは、描画することを前提に作られているため、中に書かれているデータの意味や区切り位置などの情報を含んでいません。このため、一度Webアプリケーションになってしまったデータは、プログラムで切り出したりするのが難しくなってしまいます。

近年のWebサイトでは、Web上にある様々なアプリケーションを、Webブラウザーでアクセスするためだけでなく、プログラムから呼び出すときに要求を送りやすくしたり、返答データを分解しやすくしたりするための機能を設けています。

JavaScript-API

Ajaxのような仕組みで作られているサイトの多くが、そのコンテンツを別のサイトに掲載することができるしかけを持っています。多くの場合JavaScriptの関数が公開されており、それを呼び出すことで制御可能になっています。

Webサービス(SOAPとREST)

2000年ころWebサービスという言葉が流行し、今では一般化しました。今日のWebサイトは、Webブラウザーでアクセスできるだけでなく、プログラムから呼び出しがしやすい機能がたくさん備わっています。

この分野で多く使われているのは、XMLを使った型式で、SOAPやRESTと呼ばれるものです。

SOAPやRESTに対応したサイトを作っておくことで、他のシステムからそのWebサイトの機能を簡単に呼び出すことができます。

フィード(RSS、ATOM)

Webサイトに掲載されている内容が更新されたときに、他のシステムへ通知する必要があることがあります。最近のWebサイトでは、フィードと呼ばれるXMLが配信されています。

古くから行われている方法としては電子メールによる通知がありましたが、電子メールはプログラムで処理するのが難しいという欠点があります。XMLならプログラミング言語から簡単にアクセスできます。一度見た通知は無視する、必要な単語が含まれるタイトルのものだけを処理するといったことも可能です。

フィードには、RSSとATOMという方式があります。

マイクロフォーマット

Webコンテンツに書かれている情報に、ちょっとした工夫をしてタグを付けたりすることで、あとでプログラムから抽出しやすくしておく書き方の標準です。http://microformats.org/で標準化されています。

たとえば、米国では電話番号欄に

home: +81.3.4567.8901

と書くことがしばしばあります。この情報を記述するとき、XMLフラグメントとして


ソースコード1.hCardの例
                
<span class="tel">
 <span class="type">home</span>:
      <span class="value">+1.81.3.4567.8901</span>
</span>

と書こうよ、というようなものです。これはhCardという方式の例です。データとして抽出しやすい上に、Webブラウザー上では普通に見えるところが特徴です。

マッシュアップ

JavaScipt-API、XML、SOAP、REST、フィード、マイクロフォーマットを使うことの共通の目的は、インターネットをプログラミング可能とすることにあります。

あるサイトを見て得た情報を使って別のサイトで検索をして、その結果でなにか最終的な作業をする、なんてことはたくさんあります。それを手で実行するのではなく、合体させて自動的に処理できるようにし、一つの画面で確認できるようにすることでWebサイトの価値が一気に上がります。


図3.マッシュアップ

旧来はポータルという仕組みで実現してきました。しかし、あらかじめ混ぜやすいように作っておくREST、API化、フィードなどの技術を組み合わせて、プログラミングの工夫によって実現してきたグループもあります。複数のサイトの機能を混ぜ合せてひとつに組み上げることから「マッシュアップ(mash-up)」と呼ばれています。(図3)マッシュは「すりつぶす」という意味で、つぶしてもう一度まとめあげるという意味でマッシュアップです。

ポータルはたくさんあるWebサイトにあまり手を加えずに合体させるための機能を提供しているもので、ミドルウェアなどで実現します。マッシュアップは通常、Webサイトを「そもそも組み合わせ可能に」しておき、それをプログラミングなどの工夫とテクニックによって組み合わせていく作業です。これらをうまく組み合わせるのが、今後のWebサイトの作り方となっていくと言われています。




上に戻る


まとめ

Web 2.0には、ここでとりあげた以外にもたくさんのトピックが含まれています。企業でWeb 2.0を活用するには、「自分たちがなにをしたいのか」、それを解決するには「どの技術や考え方が使えるのか」を見極める必要があります。次回以降では、それぞれのWeb 2.0が解決できる企業の抱える課題や、その解決方法の例、実装時の課題とその解決策などを解説していきます。



著者について

1987年に日本アイ・ビー・エム入社。メインフレームOS、ミドルウェアの障害対応、障害解析ソフトウェアの開発、ワークフローシステム開発、オブジェクト指向開発、Web開発など経験。2000年より、ソフトウェアのテクノロジーエバンジェリストとして活動中。




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


    日本IBMについて プライバシー お問い合わせ