プレビュー公開が始まったGoogle Wave「超」入門
株式会社鳥人間
郷田まり子
2009/10/1
ついにプレビュー公開が始まった、リアルタイム&(ポーリングによる)擬似プッシュ型のコミュニケーションとコラボレーションのプラットフォーム「Google Wave」の特集です。その概要と「Gadget」「Embed」「Robot」という3つの拡張APIを使ったWaveの作り方を徹底解説します
ついにプレビュー公開が始まった「Google Wave」とは
- - PR -
9月30日に、Google Apps
アカウント所持者を対象にしたプレビュー公開が始まったGoogle Wave(以下、Wave)は、グーグルが世界に提案した、1つのコミュニケーション&コラボレーションプラットフォームです。
Waveを拡張することで、従来では実装が面倒であったプッシュ型の通信による複数ユーザー間での情報の同期を行うようなWebアプリケーションを開発できます。Waveについての詳細は下記記事をご参照ください。
Google Waveって結局、何ができるの?
まず、Wave単体を初めて使ってみたときは、「チャット」のようなものだと思われるでしょう。しかし、ただ上から順々に文字列のメッセージが並んでいくだけではありません。
1つの発言(Blip)に対して、その子要素となる発言を追加し、ツリー状の構造を持たせることができます。さらに、発言の途中の一部分に対してリプライを追加できます。 文書スタイルも豊富で、リッチテキスト編集ができ、さらに画像や動画などを埋め込むことができます。 また、「プレイバック」機能を使うことで、それまでの流れを再現することもできます。
![]() |
| 「ナマのWave」は、このような姿をしています |
具体的にいうと、フランス人とリアルタイム翻訳チャットでチェスをし、ボタン1つでリプレイ再生。友人と今夜の店を投票で決めて、Googleマップで待ち合わせ場所もすぐに決定。これらのことが、Google Wave上ですべてできます。
□ ほかの活用例はギャラリーで見られる
Waveの活用例を集めたギャラリーも公開されています。
ここはユーザーによる自薦他薦を受け付けているので、面白い作品ができたら公開してみるのもいいですね!
Waveの3つのカタチGadget、Robot、Embed
「ナマのWave」を拡張することで、Waveの底力は発揮されます。「Robot」「Gadget」といったものを追加することで、ナマのWaveはあらゆる形のコミュニケーション&コラボレーションを実現する多様なWebアプリケーションへと形を変えていきます。使い方によって、グループウェアの代替となったり、オンラインゲームになったり……。
![]() |
| ゲームから実用まで、さまざまなガジェットが作られている |
| Robot | Waveに一般ユーザーとして参加し、会話に加わる |
| Embed | 外部サイトにWaveの画面を埋め込む |
| Gadget | Waveの画面上に埋め込む小さなソフトウェア |
本特集では、この「Gadget」「Embed」「Robot」という3つの拡張APIを使ったWaveの作り方を解説します。
□ Gadget
Gadgetは、Waveのサイトの任意の場所に埋め込むことのできる小さなソフトウェアです。Robotのように参加者として振る舞うのではなく、クライアントサイドで動きます。
GadgetはXML形式で記述し、任意のWebサーバに公開したものを呼び出すことで挿入できます。GadgetのXMLの中には、HTMLタグを書いたり、CSSを利用したり、JavaScriptを書いたりすることができます。また、Flashを埋め込むこともできます。Webページ用のGoogleガジェットの開発経験のある方にはなじみやすいでしょう。
また、Gadgetの開発を支援する「GadgetEditor」というオンラインツールが公開されています。これを使ってみるのもいいでしょう。
このGadgetには、ほかのユーザーと同期された専用のデータを保持するための 「SharedState」(あるいは単純に、「State」)というオブジェクトが用意されており、そこに key-valueハッシュの形式でデータを保存できます。このStateオブジェクトにJavaScriptでアクセスし、更新したり、自分あるいはほかの参加者によるStateの更新にフックできます。
例えば、チェスの対戦を行うGadgetならば、参加者の1人が盤上で駒を動かしたときに、その手の内容がStateに適当なString形式で保存され、ほかの参加者にも即座にその更新が通知され、対戦相手や観戦者の画面上のチェス盤の駒が動く、といった流れを実装することになります。
□ Embed
Embedは、Web ページにWaveを埋め込むことです。単にWaveの画面を<iframe>内に表示するというのではなく、埋め込んだWaveオブジェクトをWave外からJavaScriptで操作するためのAPIが公開されています。
例えば、自ら開発したWebアプリケーションの中で起こった出来事を、その片隅に埋め込んだWaveの中で発言するといった使い方ができます。
□ Robot
Robotは、一般ユーザーと同等の参加者としてWaveに参加し、自動で会話をするソフトウェアです。現在、RobotはGoogle App Engineのクラウド上で動かせます。
Robotの用途としては、
- 人間と簡単な会話ができるボット・プログラム「人工無脳」のように、会話の内容に反応して発言をする
- 書き込まれたコードをシンタックスハイライトする
といったシンプルなものから、外部Webサービスとの連携を行うようなもの、 例えば
- 外部WebサイトのRSSを取得してきて会話に流す
- Wave上の発言をTwitterに投稿する
- ユーザーの書き込んだコマンドに応じて検索エンジンで検索し、その結果を張り付ける
があります。また、1つのWaveからはほかのWaveが見えませんが、Robotが複数のWaveに参加することによって、例えば
- 別々のWaveで行った投票の結果を同期する
といったことができます。
次ページからは、具体的にGadget、Embed、Robotのそれぞれの開発手法を解説します。前編である本稿では、クライアントサイドのGadget、Embedについて解説し、後編ではクラウドサイドのRobotについて解説します。
| 1-2-3-4 |
| INDEX | ||
| Google Wave API開発ガイド(前編) プレビュー公開が始まったGoogle Wave「超」入門 |
||
| Page1 ついにプレビュー公開が始まった「Google Wave」とは Google Waveって結局、何ができるの? Waveの3つのカタチGadget、Robot、Embed |
||
| Page2 Google Wave Gadget開発の基礎知識 |
||
| Page3 投票Gadgetを作ってみた |
||
| Page4 Google Wave Embed開発の基礎知識 今後次々と充実? Embed APIのこれから |
||
Google Wave API開発ガイド バックナンバー 連載インデックスへ»
- 第1回 プレビュー公開が始まったGoogle Wave「超」入門
- 第2回 JavaとPythonでGoogle WaveのRobotを作るには
| リッチクライアント&帳票 全記事一覧へ |
ホワイトペーパー(TechTargetジャパン)
- 画像を美しく魅せる効果を加えるjQueryプラグイン3選 (2010/3/17)
2つ重ねて比較するBefore/After、部分ごとに切り替えるpanelGallery、ズーム/カーテンなどができるcycle - 現場の無駄な流血を止めるための「プロトタイプ」とは (2010/3/12)
サイトやWebアプリ/RIAの設計やデザインを効率良く進めるには、プロジェクト関係者の想定を一致させていくことが大事だが… - Flashを閃光のごとく高速化するための基礎知識 (2010/3/9)
Flash高速化のための基礎知識や実践的テクニックを紹介する連載。初回は“処理負荷”を調べる具体的な方法を解説します - Windows 7でどんだけ“おばか”なアプリが作れるの? (2010/3/4)
おばかの発想の源やアプリの作り方などについて、おばかアプリ選手権の歴戦の受賞者や、マイクロソフトの代表者に話を伺った。アイデアのご参考に
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |












