2010.01.14
tel

押してダメなら引いてみよう(前段)

前回はgoogle waveのなんだかよくわからないお話をさせていただきましたが、今回もそれに関連するようなしないようなそんなお話です。

前回のエントリーをまとめると、「google waveがなんだか「すごいチャット」みたいだ」、というなんとも平坦なものでしたが、では「すごくないチャット」とはどんなものなのでしょう?

そのためにまずは簡単にHTTPでのデータのやり取りのお話をさせていただきます。

そもそもHTTPとは[HyperText Transfer Protocol]の略称で、このうちHyperTextは一番最初に触れた通り、「リンクでつながるすげぇテキスト」というような意味合いのものでした。

そして、Transferは「転送」という単語であり、そうなると残るはProtocolとはなんぞや?という話になるわけですが、この話だけでずいぶんと長くなってしまうので今回ははしょって簡単にProtocolとは「約束、取り決め」といったものであると考えてください。

日本語や英語といった普段私たちが使用している自然言語に文法や単語というものが存在し、それらが共通であるからこそ私たちが会話をしたり、このような文章に意味を持つように(「こんな文章に意味はない」なんてそんな悲しいことは言わないでください、泣いちゃうので。)コンピューター同士が意味のある連絡を行うための「お約束」。それがProtocolなのだ、とそう考えてくださればありがたいです。

さて、そんなHTTPというお約束にのっとって、このBLOGであったりmixiであったりtwitterと言ったようなサービスからデータを取得、表示しているわけなのですが。

ここで、

クライアント(みなさんがいま使われているパソコンだとお考えください)のくら君と
クライアントのくら君
サーバー(今まさにこのBLOGのデータを格納している、データセンターにあったりするすごかったりそうでもなかったりするパソコン)のサバ氏にご登場していただきましょう。
サーバーのサバ氏

急に変なイラストが出てきましたが、こういうものは視覚的なほうがイメージしやすいため用意させていただきました。

べ、別に「画像とかいっぱい入れた方が分量があるように見える」とか、そんなんじゃないんだからね?!(安っぽいツンデレ)

えー。

さて。

説明を続けましょう。

例えば、このBLOGの内容を見たい!というとき、クライアントは「BLOGを見せて!」という要求(リクエスト)を送ります。

クライアントがデータを要求します

その結果、サーバーはその要求の結果を返します(レスポンス)。

サーバーが結果応答を行います

これは例えば、BLOGの記事を登録するときや、ログインが必要なサービスにIDやパスワードを送信するときにも同じような動きとなります。

データを送信するときも同じように処理します

ここで考えなくてはいけないのは、「あくまでもクライアントの要求を受けてサーバーが応答を返す」という順序だということです。

普通にBLOGをみたり、もしくは掲示板のようなところに書き込む場合はそれで問題ありませんが、チャットというものはリアルタイム性が重要だったりするためにこのままだとあまりうまくない、ということになってしまいます。

そのため、チャットのようなものを実現するために以前から行われていることとして、「定期的にサーバーに最新の情報を要求する」という処理が必要です。

定期的に情報を要求して更新を確認します

しかし、普段の会話もそうであるように、チャットだって盛り上がるときもあれば盛り上がらない時だってあります。1時間たっても誰も何も言わないこともあれば5秒おきに誰かが発言していることだってあるわけです。そうなると、「定期的に」というのはいったいどのくらいが適切なのでしょうか?

それを定量的に計算する方法というのは多分無いように思います。

となると、決め打ちで画面の更新をするほかないのですが、それが速すぎれば何も無いのに何度も要求をしてしまうことになりますし、遅すぎれば「会話の波に乗れない」ということになりかねません。

これはクライアントが主導権を握っているということが起因であって、一番の理想を言えば「誰かが何かを書き込んだら、サーバーがみんなにそれを通知する」という動きになれば、余計な要求を送ることも、逆に要求を送りそこねることもないわけです。

データが更新されたときだけその情報をもらえるのが理想です

では、そのようにクライアントが要求からデータを引き出すのではなく、サーバーが応答を自動的に押し出すためにはどのようにすればいいのでしょう?

……と言ったところで今回はここまで。なんともキリの悪いところで次回に続きます。続かないかも知れません。

ちなみに、今回は変なイラストを入れるという飛び道具を使いましたが、次回もそうであるとか限りません。なぜなら「イラストを入れることで文章の量を減らして楽をしよう!」と思ったら、イラストを用意するのが大変な上にむしろいつもより文章が長いくらいだからです!

……なんとも世の中というものは上手くいかないものですね。(tel)

一覧に戻る