2008年 09月 01日(月曜日) 03時 17分

今更ですが

 MSNメッセンジャーを普段利用しているのですが、いつの頃からかオフラインでもメッセージを送信しておけるようになってますよね。たしかに便利だと思って何気なく使っていたものです。
 チャット中に相手が何らかの原因で回線が切れたとしても、サーバーがメッセージを保持してくれて、接続したら表示されます。とても便利です。

 普段何気なく利用しているサイト閲覧は、サーバーへ要求を出してHTMLを取り寄せ、更に「これとこの画像を送ってくれ。」と再度要求する。でも、チャットにはそういったわずらわしい動作は不必要。
 チャット機能は特にリアルタイムで更新されるべきだけど、クライアントが送信した文字情報は、サーバーを経由して各クライアントで受信する。この場合、ブラウザと違ってクライアントが更新ボタンを押さなくてもサーバーから情報がやってくるワケだ。よく考えてみると、不思議なもんだ。

 仕組みはこうだ。一度「サーバーへログインしたよ~。誰かがメッセージ送ってくれるかもしれないから待機してて~」と言う情報をサーバーに送りつけ、誰かからメッセージを受信するまで待機する。メッセージが来たらサーバーから「メッセージキタよ~。」と送りつけてくれる。そしてすぐに、「受け取ったよ~。もっとメッセージ来るかもしれんから、待機しててね~。」と送っておく。それを繰り返しているのだが、利用する人数が多ければ、サーバーが待機する為の負荷はとてつもなく大きくなるワケです。他の企業のIM(インスタントメッセンジャー)の普及が遅かったのはこの処理能力や独占禁止法などの問題があったから。MSNメッセンジャーのサーバーはそれだけの負荷に耐えられる能力がすでにあったと言う事になりますね。これをユーザーはタダで利用出来ます。

 メッセンジャーがブラウザ上でも利用出来るようになったのも随分前の事だけど、出た時は本当に驚いたもんだ。このようにブラウザ上でリアルタイムで情報をやりとりする技術を「Comet」と言う。
 ただ、ブラウザ上のチャットは普及していない。残念な事に減少した方だと思う。IMとブラウザと区別されてしまったのも、PCの歴史上仕方がないとも思う。10年前、デスクトップに直接ブラウザの中身を表示させる機能がWindowsに搭載された時、同時にこのチャット技術があったなら、IMどころかOSそのものが違った形になっていたかもしれない。と思ったりする。

 ちょっと話しが逸れました。

 このサイトでも実装されている左上にある「カレンダー」の"月"の切り替え、メインページの本文一番下にあるページ分割のように、部分的にページを変更する技術を「Ajax」と言う。これも、全てのページで再度送受信を繰り返すより、必要な部分だけを入れ替える事で処理速度が早くなったように見せかけている。

 Cometの技術、Ajaxの技術、どちらもユーザー側に大きな恩恵を与えてくれているのは間違いない。どちらも数年前に爆発的に広まった技術の一つです。

 そういえば、最近はこのように、斬新だと思える技術が出て来ないなぁ、と思っているのですが。Googleの技術は驚きの連続ですけど、ユーザーが簡単にその技術を使えるようなレベルではありませんから。

トラックバックURL

このエントリーのトラックバックURL:

コメントする

太字 イタリック アンダーライン ハイパーリンク 引用