第12回 サーバが通信を開始できるComet活用Webチャット
株式会社ピーデー川俣 晶
2006/9/23
サーバが送りたいときにデータを送ることができるCometの活用事例「Lingr」や、JavaScriptなしのAjaxフレームワーク「ZK」などが続々登場(編集部) |
ハイライト1・Windows Live正式サービス開始 |
マイクロソフトが提供するAjaxポータルが正式にサービスを開始しました。より正確にいえば、「Live Search」と「Live.com(日本名称:Live.jp)」が正式版となります。
画面1 画像検索では、サムネイルの大きさを変えられる |
このニュースの意義は、ただ単にそのようなサービスが正式版として開始されたということではありません。本来、デスクトップ上のソフトウェアで最強企業であったマイクロソフトが、本格的にWeb上のサービスに取り組んでいるという点で、特に大きなインパクトがあるわけです。他社が同様のサービスを始めるのとは、意味の質が違います。
それゆえに、ここで問われるのは、マイクロソフトを肯定するか否定するかという単純な判断ではありません。どのような組織でも見られることではありますが、大きな組織にはさまざまな人々とグループが存在し、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つに分類されています。
- Foundational Technology Patterns(基礎的な技術パターン) (9)
- Programming Patterns(プログラミングパターン) (25)
- Functionality and Usability Patterns(機能性とユーザビリティのパターン) (28)
- 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
|
- GASで棒、円、折れ線など各種グラフを作成、変更、削除するための基本 (2017/7/12)
資料を作る際に、「グラフ」は必要不可欠な存在だ。今回は、「グラフの新規作成」「グラフの変更」「グラフの削除」について解説する - GET/POSTでフォームから送信された値をPHPで受け取る「定義済みの変数」【更新】 (2017/7/10)
HTMLのフォーム機能についておさらいし、get/postメソッドなどの内容を連想配列で格納するPHPの「定義済みの変数」の中身や、フォーム送信値の取り扱いにおける注意点について解説します【PHP 7.1含め2017年の情報に合うように更新】 - PHPのfor文&ループ脱出のbreak/スキップのcontinue【更新】 (2017/6/26)
素数判定のロジックからbreak文やcontinue文の利点と使い方を解説。for文を使ったループ処理の基本とwhile文との違い、無限ループなども併せて紹介します【PHP 7.1含め2017年の情報に合うように更新】 - Spreadsheetデータの選択、削除、挿入、コピー、移動、ソート (2017/6/12)
Spreadsheetデータの選択、挿入、削除、コピー、移動、ソートに使うメソッドの使い方などを解説する
|
|