第12回 サーバが通信を開始できるComet活用Webチャット

株式会社ピーデー
川俣 晶

2006/9/23

サーバが送りたいときにデータを送ることができるCometの活用事例「Lingr」や、JavaScriptなしのAjaxフレームワーク「ZK」などが続々登場(編集部)

 ハイライト1・Windows Live正式サービス開始

 マイクロソフトが提供するAjaxポータルが正式にサービスを開始しました。より正確にいえば、「Live Search」と「Live.com(日本名称:Live.jp)」が正式版となります。

画面1 画像検索では、サムネイルの大きさを変えられる

 このニュースの意義は、ただ単にそのようなサービスが正式版として開始されたということではありません。本来、デスクトップ上のソフトウェアで最強企業であったマイクロソフトが、本格的にWeb上のサービスに取り組んでいるという点で、特に大きなインパクトがあるわけです。他社が同様のサービスを始めるのとは、意味の質が違います。

 とはいえ、まったく個人的な見解を述べるなら、現在のマイクロソフトには統一された「マイクロソフトの意思」ないし「一貫した目標」のようなものは存在しないと感じられます。さまざまな方向性への試みが競合しているのが、現在のマイクロソフト文化なのではないか……と感じます。つまり、Windows Liveがこうして立派にサービスを開始したということが、そのまま「マイクロソフトの意思」であるとまではいえないわけです。マイクロソフトの別の部分は、別の意思を持ち、例えばデスクトップの世界を堅持しようとしているかもしれません。

 それゆえに、ここで問われるのは、マイクロソフトを肯定するか否定するかという単純な判断ではありません。どのような組織でも見られることではありますが、大きな組織にはさまざまな人々とグループが存在し、1つの価値観で組織全体を見ることはできないのです。それと同じことがマイクロソフトにもいえます。マイクロソフトに嫌いな製品があるとしても、それはそれとしてWindows Liveを試してみる価値があるでしょう。マイクロソフトのある一部分が好ましくないとしても、別の一部分が好ましく感じられる状況は十分にあり得ると思います。

 ハイライト2・快適かつ強力なチャットサービスLingr

 Webブラウザで快適かつ強力に使用できるチャットサービスです。サイトにアクセスするとアメリカ人がアメリカ人向けに作ったようにも見えますが、これは江島健太郎氏が手掛けたサービスであり、上記のブログに江島氏本人よる日本語の説明も書かれています。

画面2 随時、サーバ側がデータをクライアントに送れるCometを活用

 さて、このサービスの特徴は快適さと強力さです。快適さとは、メッセージを即座に伝達するシステムによって得られます。従来のWebチャットは、定期的にページをリロードするなどの方法を使っていて、リロードが行われるまですでに書かれたメッセージが見えないという問題がありました。この問題は、ストレートにAjaxを使っても解決しません。Ajaxの通信はクライアント側が開始するものですが、メッセージが到着したことを知っているのはサーバ側だからです。サーバ側は通信を始める側に立たないので、即座にメッセージは伝わらないことになります。

 この問題を解決する方法の1つは、この連載の第3回「どんなに無茶をやっても「それもありかな」なAjax」〜すぐに反応が返ってくるチャット ConnectiveChatというソフトを紹介しました。その後、このようなサーバ側から送りたいときにデータを送ることができる技術は洗練度を上げ、Cometと呼ばれるようになりました。その具体的な応用例の1つとしてこのLingrがあるわけです。

 もう1つ、強力さも重要なポイントです。チャットルームへのタグ付けによって、興味のある対象を扱うチャットルームを容易に探し出せるだけでなく、ホットなキーワードはより大きく表示され、それを知ることもできます。また、画像ファイルやYouTubeの動画も容易に張り付けることができます。さらに、匿名アクセス、プライベート・ルーム、チャット・ログの保存、パーマリンク(恒久的なURL)などの機能性もあり、使い込んでみたいと思わせる魅力を感じさせます。

 ユーザー登録せずにすぐチャットルームを見ることができるので、ぜひ試してみてください。

 ハイライト3・Ajaxデザインパターンを共有する

 英語のサイトですが、Ajaxに関するデザインパターンを集めたものです。内容は、主に以下の4つに分類されています。

  1. Foundational Technology Patterns(基礎的な技術パターン) (9)
  2. Programming Patterns(プログラミングパターン) (25)
  3. Functionality and Usability Patterns(機能性とユーザビリティのパターン) (28)
  4. Development Practices(開発プラクティス) (8)
画面2 798ユーザーによって生成されたWkiページは4,651ページ(2006/9/23現在)

 例えば、Foundational Technology Patternsに含まれるXMLHttpRequest CallはAjax開発者なら誰でも経験のあるXMLHttpRequestオブジェクトを用いたリクエスト送信のパターンを記しています。同様に、IFrame Callは、XMLHttpRequestオブジェクトではなくiframe要素を使って同様に通信を行うパターンを記しています。さまざまなパターンがカタログ化されているので、さまざまなコーディングのパターンを容易に探し出すことができます。

 ちなみに、HTTP Streamingは、上のLingrの説明で出てきたサーバ側がデータを送るタイミングを決めるCometのパターンです。

 このサイトは、Ajax開発者であれば、ブックマークしておくと役に立つことがあるでしょう。

 そのほかのみどころ

 Ajaxとそれに関連する話題を紹介します。

JavaScriptだけでなく、Flashも

マッシュアップコンテスト

 サン・マイクロシステムズとリクルートとが、共同で行ったアワードの結果が公開されています。このアワードは、「Web2.0に対応した新しい情報サービスアプリケーション・Webコンテンツの可能性への共同トライアルとして、広く世の中の叡智を募るために設けた」とするもので、「リクルートWebサービスAPIまたはRSSを利用して構築されるアプリケーションまたはWebコンテンツ」を対象としたものです。

 ちなみに、Mash up(マッシュアップ)とは、既存のWebサービスなどに対して、独自のユーザーインターフェイスや付加価値を付けたサービスを作成することをいいます。開発した……というとすべて自作したように聞こえるし、かといって、利用したというだけでは何も努力や工夫を行っていないように思われかねないので、新しい言葉が必要とされたのではないかと思います。最近の流行語です。

 ある程度の水準にある作品がリスト化されていて、容易に見渡すことができるという意味で、この受賞結果のサイトは訪問する価値があると感じます。

訪問履歴、あなたはWeb2.0何級?

Web2.0レベルは?

 あなたが、どれぐらいWeb2.0を親しんでいるかを判定する「ユーモア」サービスです。大きなGO!ボタンをクリックすると、Webブラウザの履歴から度合いが算出されます。取りあえず、1回ボタンを押して、ムードある演出を楽しんでみてください。

好きな都市の時計も貼れる

地図から地域を指定

 世界中の時間を知ることができるワールドクロックです。ただし、地図をクリックすることで、地域を指定することができる点が特徴的です。しかも、地図は拡大率を変えることもスクロールさせることもできます。Google Mapsというリッチな地図サービスが無料で使えることで初めて可能となったサービスといえます。

 強力過ぎるサービスが湯水のごとく、タダ同然、あるいはタダで利用できる世界では、補助的な役割のために強力なサービスを取り込むこともできるようになります。

XUL(XML User Interface)ライクなZK2.1.1

JavaScriptなしのAjaxフレームワーク

 JavaScript不要のAjaxを標榜するフレームワークです。JavaScriptを使わないなら何を使うのかといえば、ZUML(ZK User-interface Markup Language)という独自の言語です。JavaScriptが気に入らないと思えば、その上に別言語のレイヤを入れてしまうのも1つの選択肢でしょう。

 こういう方法でもAjaxアプリケーションは書けるのだ……というある種の異質さを実感してみるのもいいと思います。今回は、AjaxうきうきWatchで取り上げる事象がまだ残っているので、来週も続いて紹介します。お楽しみに。




古くて新しいAjaxの真実を見極める
「Webインターフェイスの新しい手法」「画期的なWebアプリケーションの仕組み」であるとして開発者たちの人気を集めるAjaxとは何なのか、その真実を見極めてみよう
最終更新 2005/8/2


HTML5 + UX フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日 月間