【NT-5】Google Wave API による Google Waveの拡張
北村 研二 (株式会社ルーツ)
Q&Aには、パメラ・フォックス、バディム・ゲラシモフがオーストラリアより参加
司会:モリスジェー
===
GoogleWaveでは、複数人が同時利用
操作変換を行っている。
操作変換:複数人で同じドキュメントを操作する際の手法
- クライアントとサーバーで同時にドキュメントを操作した場合、コンフリクトが発生する。
- 相手の操作をそのまま自分のドキュメントに適応するからコンクリフトする。
- 相手の操作を自分のドキュメントでの操作に変換してしまえば、挿入や削除ではコンクリフトしない。
- (同じ箇所への編集はセマフォをつかって、同時に編集されないように管理している)
Waveガジェット
Googleガジェットも内包する。Waveの参加者で共有するガジェット。
ガジェット定義のXMLファイルを書くことで開発できる。
JavaScriptで記述。公開はネット上へ置くだけ。
利用時はGoogleWaveのクライアントからURLを入力すればOK
ShaerdStateによる同期処理
キーと値をSharedStateに設定、読み込み、変更通知受け取りなど
コールバックを登録しておけば、変更時に自動的に画面更新ができる。
GAE上で動作し、JavaとPythonで開発することができる。
- 開発したWaveロボットを公開するには
ロボットアドレスをWaveの参加者に追加すれば、Wave上で動作する
- Waveロボットの駆動タイミング
メッセージが投稿された時or参加者に変更があった時
ActiveRobotAPIによる外部からの動作
可能な操作
- メッセージの捜査、修正、文字修飾の変更など。
- GoogleAppEngineでできることなら何でもできる
エコーロボットを作ろう
AbstractRobotクラスを継承
ベントごとにコールバック関数が呼ばれるので、必要な分をオーバーライドする
コールバックにはイベントのインスタンスがついてくる。
event.getBlip().getContent(); メッセージの取得