いまそこにある Google Wave を理解するためのメモ

Google WaveのテクニカルアーキテクトであるDavid Wangが、先月末にアムステルダムで開催された「Emerging Communications Conference (eComm)」で行ったプレゼンのテキストデータが公開されました。その内容が非常にためになったので、Google Waveの現状理解のために、ポイントをまとめておきます。

スライドは以下にて。

要点は大きく3つあると思います。

  1. Google Waveという「プロダクト」と、Waveという「テクノロジ」を区別するのが何より重要。
  2. Waveの仕様はまだあくまでドラフト段階であり、その仕様策定が最優先事項である。(つまり、まだ実装に手間をかけるヒマがない。)
  3. Waveテクノロジを利用するには、それがオープンソース化されている意義を正しく理解する必要がある。

それぞれについて以下に整理してみます。

1. Google Waveという「プロダクト」と、Waveという「テクノロジ」を区別するのが何より重要。

冒頭でDavidが明言しているように、このプレゼンの目的は現時点でのフェデレーション(連携)技術の解説です。現状のGoogle Waveについては、ほとんど語られていません。そもそもGoogle Waveとは、まだ仕様すら固まっていないオープンスタンダードであるWaveテクノロジをサンプル的プロダクトとしてとりあえず形にしただけの状態なので、現時点でそれについて細かく論ずることにはあまり意味がないわけです。

それなのに、Davidの話の後にモデレータも指摘しているように、実はその2つの違いをちゃんと認識していない人々が非常に多いようです。もしそこが分かっていれば、Google Waveにちょっと触っただけで「WaveのUIって最低」「Wave使えねー」という評価を下して終わり、となるはずがないので。そういう事情もあって、Davidはこのプレゼンでまずそこをきちんと分けて考えてほしいと訴えたのでしょう。
(ちなみにデモの場面では、「UIのことは聞かないで。僕、UIには詳しくないし」と言って聴衆の笑いを誘っていますねw)

現段階では、Google Waveという一プロダクトの良し悪しを論じるよりも、次世代の新たなコミュニケーションを実現するWaveテクノロジというオープンなプラットフォーム/プロトコルに注目する方がよほど重要、ということになります。

2. Waveの仕様はまだあくまでドラフト段階であり、その仕様策定が最優先事項である。(つまり、まだ実装に手間をかけるヒマがない。)

Davidは、このプレゼンの肝となるWave開発の最新状況について分かりやすく語ってくれましたが、なにしろ仕様がまだ非常に流動的であることがよく分かります。それがどれくらい固まっていないかというと、たとえばWaveletの所有権を持つサーバが落ちている時に、その所有権を別のサーバが引き継ぐのかどうかという非常に根本的な問題すらまだ検討中、という状態とのこと(この問題についてはプレゼン後の質疑応答でも触れています)。

とにかく自分たちだけではとても開発が追いつかないので、オープンソースコミュニティの力を借りたい、フィードバックとコントリビューションを待ち望んでいます、ということを繰り返し強調していますね。特に、仕様策定で手一杯な現状では、とてもプロダクトレベルでの実装まで手が回らないということで、ちゃんと実用に耐えうるクオリティにするには、開発者やユーザーの協力が不可欠であると。そのために、以下のような準備が整えられつつあります。

  • コードのオープンソース化

http://code.google.com/p/wave-protocol/ で公開済みのコードは、約40,000行。ライセンスはApache License 2.0という非常に縛りの少ないものにしているので、かなり自由に使えるはず。これからもサーバ側のコンポーネントなどをどんどんオープンソース化していく。

  • 開発者向けサーバでのフェデレーションポート開放

この件について詳しくは、kskさんのブログ記事が参考になります。このWaveSandbox.comでのポート開放によってできるだけ多くのフィードバックを集めて機能を改善し、いずれはGoogle Waveのサーバ自体を連携可能にするのが目標。

  • Contributors Licensing Agreement (CLA) の公開

WaveProtocol.orgのコミュニティ原則のページに、CLAと知的所有権についての説明が追加されました。CLAに署名することで、誰でも自分でWaveのコードを書いてコントリビュートできるように。

  • Waveプロバイダの参照用プロトタイプ開発

ごくシンプルなFedOneクライアント/サーバのプロトタイプ(単純なCryptoライブラリを含む)を、近々公開する予定があるようです。ただしあくまで参照用で、実際に使えるレベルのものではないとのこと。

ちなみにDavidは、自分でWaveサーバを立ち上げるのは、自前のSMTPサーバを動かすみたいに簡単だよと言っていますが、確かに理論上はそうとは言え、現状はまだ多くの不具合があってうまくいかないケースが多いようですので、ご注意を。

3. Waveテクノロジを利用するには、それがオープンソース化されている意義を正しく理解する必要がある。

David曰く、Waveサーバは誰にでも作れるが、見た目は似ていても実は相互運用性を備えていないような、“Waveっぽい”システムを作るのはやめてほしい、とのこと。ユーザがサービスごとに別々のWaveクライアントを起動しなければならないハメに陥るのは、絶対に避けてほしいと釘を刺しています。これは、過去のさまざまな技術の歴史を振り返ると、実にリーズナブルな主張。
Waveをオープンソース化する理由も、オペレーション変換(OT)アルゴリズムの一貫性を保つにはそれが一番手っ取り早いからだと言っていますね。
Waveテクノロジが真にオープンなプラットフォームであるためには、誰もが同じアルゴリズムを用いることが何よりも重要であり、それゆえにGoogleがその技術をオープンソース化しているのだ、ということを肝に命じておきましょう。


以上、ごくざっくりと要点をまとめてみましたが、原文はそれなりにボリュームがあるものの非常に興味深く読めたので、英文に抵抗がない方はぜひ元記事をお読みいただければと思います。

ところで現在、これまで翻訳したホワイトペーパー「Google Wave Federation Architecture」「Google Wave Data Model and Client-Server Protocol」に続いて、3番目の「Google Wave Operational Transformation」の翻訳を進めているところです。
2種類存在する仕様書の方は、上記のようにまだまだ変動が激しいため、とりあえずホワイトペーパーから翻訳を始めて正解だったかなと思いますが、ご意見や翻訳違いのご指摘などありましたら、ぜひお知らせください。

いまそこにある Google Wave を理解するためのメモ」への5件のコメント

  1. Google Waveを使って社内会議をやってみた

    Google Waveの招待を取引先の方から頂くというラッキーな状況を得まして、

  2. noriyo より:

    にっくさん、先日はいろいろお話をさせていただいてありがとうございました。
    Googleはわりと昔からOSSコミュニティにコミットしていて、Androidという大きな先行事例もありますので、そこはもうお約束?になりつつある気がします :)
    Waveの誕生のきっかけは、従来の電子メールシステムを現在の技術で置き換えたらどんなものになるか?という発想だったわけですが、結果的にありとあらゆるコミュニケーション手段を包含できるようなものになり得るので、とりあえず実装がワケわかめ状態になっているんだと思いますw
    Google WaveのUIも日々変化していますし、生温かく見守りたいと思います。

  3. にっく より:

    noriyoさん、こんにちは!
    興味深く記事を拝見させていただきました。
    スライドや記事を見る限り、waveはApacheやsendmail同様、サーバーインストール型システムとして考えられているような気がするのですが、理解が間違っているでしょうか?
    だとすると、結構新鮮な驚きです。Googleが配布型のソフトを開発するのが驚きと言うか。本気で旧来のメールシステムを置き換えるつもりなのかな、とか。
    Googleのwaveお披露目のビデオを以前Youtubeで見ていて、大体内容は理解していたので、初めて触ったときの戸惑いはあんまりありませんでした。個人的には「あのときみたものそのまんまだった」というのが触ったときの印象でした。
    個人的には、Waveは「Wikiとメールに取って代わる議論ツール」というイメージを持っています。オンラインの議論ツールというか。

  4. noriyo より:

    DACさん、コメントありがとうございます!Waveの外でお会いするのが不思議な感じです :)
    ご指摘いただいた点については、まったく同意です。私自身も現役のエンジニアではありませんし、WaveプロトコルのMLを流し読みしていてもプログラミングレベルの話までは理解できないのが実情です。
    なので、せめて自分にできる「貢献」とは何だろう?と考えた時に、ドキュメントの翻訳や、こういうブログ記事を書くことで少しは誰かの役に立てるかもしれない、と思ったのです。
    しかし、私がそうやって謎のモチベーションwをかき立てられるくらい、Waveテクノロジは未知の可能性を秘めているのではないか、という気もします。それを感じ取れる人は、私だけではなく世界中にいっぱいいるはず・・・と、わりと楽観的に見ている部分もあります。
    お楽しみは、これからです ;)

  5. DAC より:

    >Davidの話の後にモデレータも指摘しているように、実はその
    >2つの違いをちゃんと認識していない人々が非常に多いようです。
    >もしそこが分かっていれば、Google Waveにちょっと触っただけで
    >「WaveのUIって最低」「Wave使えねー」という評価を下して終わり、
    >となるはずがないので。
    耳が痛いお話です。それを理解したうえでも分からないことはあります。
    開発者であれば自分でWaveサーバを立ち上げるなり、待ち望まれる
    フィードバックとコントリビューションを行うことが出来るのかも
    しれません。
    しかし、それが出来る人間と言うのも相当限定されるのではない
    でしょうか?実際のプロダクトを見つつ、あれが出来るこれが
    出来ないと言う表面的な挙動を整理するのに四苦八苦と言うレベルの
    ユーザが出る幕ではありません。
    そうであるのに、そういった層(自分などはもろに相当しまず)が、
    現状は随分と流入しています。どう収拾をつけるのが望ましいのか、
    どうすればよいアウトプットに繋がるのか頭を抱えます。まずもって
    こういった情報にリーチ出来る人が少ない訳で、誤解が易々と解ける
    訳ではありません。
    一ユーザとしては自分の影響出来る範囲で、正しい情報を伝達する
    のが当面の対応かと思います。ただ、その正しさについても自分で
    検証出来ないと行けない訳ですから今更ながら敷居が高い話では
    ありますね。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中