2010年8月19日

Google Wave について考えてみる (2)

前回は Eメールのプロトコルが複数存在しており、今でも広く使われていることを確認しました。ネットとメールは分けて考えられることも多々ありますが、どちらもシステムが分散しているという共通点があります。ここでは、分散システムの利点と難しさを考えてみます。

なお、今回は Wave のことは出現しません。

サービス利用者、提供者

シンクライアントは鳴りを潜めてクラウドが高らかに叫ばれるようになりました。名前を変えて気分も一新することは嫌いではありませんが、どちらもクライアント/サーバモデルであることには変わりありません。クライアントとサーバから成り立つシステムにおいては、ひとつのクライアントが複数のサーバからサービスを受けられるかが大事な点になります。 クライアントはサービスを利用するもので、サーバはサービスを提供するものです。

コンピューティングのモデルを離れて例えば電子マネーで考えてみると、ある電子マネー (SUICA や Edy など) を持って遊びに行ったときに、コンビニでしか使えないよりも、コンビニでも地下鉄でもガソリンスタンドでも使えた方が嬉しいことと思います。会社同士が提携しているとポイントが蓄積されることもありますし、これまでの履歴から何かをお薦めしてくれるようになるかもしれません。何より、カードをたくさん持つのはかさばります。紛失した場合の被害は大きくなりますが、便利さとの引き換えと言えるでしょう。とはいえ、カードが一枚に集約されていれば紛失時の連絡は一箇所で済みます。

一枚持っていれば様々なお店で使えるカード、という切り口とは異なり、すべてを備えたお店で使えるカードを持てば良い、という対案もあります。カードの機能を拡張していくのではなく、お店のサービスが広がれば良いのです。例えば、コンビニを展開してガソリンスタンドのチェーンを経営して、レンタルショップにも手を出してコーヒーショップもあって...という鉄道会社が発行したカードがあれば良いのかもしれません。

しかし、当然ながらその会社が潰れたらお終いです。現実の社会活動に絶対はありませんので、多くの人は先に述べた方のモデルを好みます。利用者がサービスを取捨選択できる方法です。

コンピュータのクライアント/サーバモデルでも同じことが言えます。ひとつのクライアントで複数のサービス、とはそういうことです。 通信方式だけは共通化しておき、そこで提供されるサービスはサービス提供者が独自に規定します。要するに、共通のプロトコルを使えるようになると、サービス利用者も提供者も嬉しいですね、ということです。

分散システム

サービスがたくさんあっても一極集中は考えものです。大きなショッピングモールは一ヶ所でたくさんの商品にめぐり合えますが、そこが火災などで倒壊したら大変です。経済活動に限らず、司法、立法、行政が東京に集中している日本はどうなるのでしょうか。 まぁ、国家のことはさておき、コンピュータの世界ではシステムを分散させることでこれに対処します。インターネットの作りもこの辺りのことが意識されています。基盤となるインターネットが分散システムなので、そこに構築される Web も Eメールも分散システムを意識した設計になっています。どちらも単一障害点を作らないことが大切です。

同じことはひとつ上のレイヤーにも言えます。Web や Eメールを基盤としてサービスを設計する場合は、分散システムを意識すべきです。データセンターを分散配置することはもちろんですが、他のサービスとの連携方法も考慮しなくてはいけません。サービス事業主が自社のサービスに顧客を囲い込みたい考えは理解できますが、ユーザーはいくつものサービスを使いたいものです。分散システムとはシステムがバラバラに存在していることでなく、システム同士が緩く結合していることです。この緩い結合こそが分散システムの利点でもあり難点でもあります。

よくある例え話が銀行の送金です。赤い銀行から青い銀行に1万円を送金するとします。赤い銀行と青い銀行は異なる管理下にありますので、赤い銀行の口座から1万円を減算してから青い銀行の口座に1万円を加算します。普通に考えるとこれで良さそうですが、その途中で落雷があったらどうなるでしょうか?赤い銀行から1万円減算されたけど青い銀行には加算されていない、という状態になりかねません。困りましたね。1万円なら目をつむれる人もいるかもしれませんが、落雷がなくとも白バイで偽装した人に3億円を盗まれたら目も当てられません。

問題を解決する方法はいくつか存在するでしょうが、考えてみると案外難しいことに気付きます。例えば、緑の銀行が途中で偽装工作に入って来たら厄介そうです。 とはいえ、現実に送金トラブルが発生することは至極稀でしょうから、実際には問題は解決されています。 分散システムにはこの手のことがたくさんあります。詳細に踏み込んでみると難解ではあるけれども、表面上はそんなに難しく見えていない、あるいは難しく見せていない、ということです。誰がどう考えても分かりそうになければ、そもそもその方法を採用しようとは思いません。特に、対象が抽象的であればあるほどこの傾向は強くなります。

購買活動とは異なり、コンピュータによる情報交換は概念を理解することが最初の難関になり得ます。目に見えませんので百回聞いても理解できないかもしれません。 いかに手間をかけないで使えるようになるかが、普及する分散システムかどうかを分けるポイントになります。

次は

メールのことに戻ります。Eメールと郵便の類似性については前回書いた通りです。 既存の概念に落とし込めてシステムが分散しているメールが汎用的に便利であることは間違いありません。 しかし、コミュニケーションの割り込みやお作法について考えたり、情報をフローとストックに分けて考えてみると、メールでは難しい場面もあります。

すべてのコミュニケーションをネットで処理するためには、こうした難しい場面もカバーする必要があります。なかなか Wave のことにはたどり着きませんが、ぼちぼち進んでいければな、と。たぶん、その先に Wave が待っているはずです。

コメントを投稿