ひつじのにっき

mhidakaのにっきです。たまに長文、気が向いたとき更新。

【NT-5】Google Wave API による Google Waveの拡張 

北村 研二 (株式会社ルーツ)
Q&Aには、パメラ・フォックス、バディム・ゲラシモフがオーストラリアより参加
司会:モリスジェー
===

GoogleWaveでは、複数人が同時利用

操作変換を行っている。

操作変換:複数人で同じドキュメントを操作する際の手法
  1. クライアントとサーバーで同時にドキュメントを操作した場合、コンフリクトが発生する。
  2. 相手の操作をそのまま自分のドキュメントに適応するからコンクリフトする。
  3. 相手の操作を自分のドキュメントでの操作に変換してしまえば、挿入や削除ではコンクリフトしない。
  4. (同じ箇所への編集はセマフォをつかって、同時に編集されないように管理している)

Waveガジェット

Googleガジェットも内包する。Waveの参加者で共有するガジェット。
ガジェット定義のXMLファイルを書くことで開発できる。
JavaScriptで記述。公開はネット上へ置くだけ。
利用時はGoogleWaveのクライアントからURLを入力すればOK

ShaerdStateによる同期処理

キーと値をSharedStateに設定、読み込み、変更通知受け取りなど
コールバックを登録しておけば、変更時に自動的に画面更新ができる。

Waveロボット
  • Waveへの変更をイベントとして、動作する。

例:

など、ユーザ入力に対して、変換できる。

GAE上で動作し、JavaPythonで開発することができる。
  • 開発したWaveロボットを公開するには

ロボットアドレスをWaveの参加者に追加すれば、Wave上で動作する

  • Waveロボットの駆動タイミング

メッセージが投稿された時or参加者に変更があった時
ActiveRobotAPIによる外部からの動作

可能な操作
  • メッセージの捜査、修正、文字修飾の変更など。
  • GoogleAppEngineでできることなら何でもできる

エコーロボットを作ろう

AbstractRobotクラスを継承
ベントごとにコールバック関数が呼ばれるので、必要な分をオーバーライドする
コールバックにはイベントのインスタンスがついてくる。
event.getBlip().getContent(); メッセージの取得