米Google Inc.が2009年5月28日に発表した「Google Wave」のAPIは,大きく四つのグループに分けられている(Tech-On!関連記事12)。(1)WebサイトなどにGoogle Waveの情報を埋め込んで利用するための「Embedding」,(2)ユーザーの操作を受け,状態をサーバーに通知する「Gadget」,(3)ユーザーの操作結果を基に情報の修正などを施す「Robot」,(4)ユーザーの利用環境に配布するための「Extension Distribution」である。

 これらのうち,Google Waveの特徴の一つである機能の拡張性に寄与しているのが,(2)のGadgetと(3)のRobotだ。Gadgetはクライアント側で動作するプログラムから利用するためのもので,Webコンテンツの一つのフレームを使って記述する。ユーザーの操作によってGadgetの状態が変わった際に,自身の状態を保持する。WaveサーバーとはXMLデータをやり取りする。

 逆にRobotは,サーバー側で動作するソフトウエアを指す。ただしWaveサーバーと同じ物理的なサーバーで動作するのではなく,インターネット上のどこかに存在するサーバーでさえあればよい。RobotはWaveの内容を監視し,条件に合致したWaveの内容を変更する。ここでWaveの内容とは,ユーザーが作成したコンテンツそのものだけでなく,コンテンツに付随する情報(アノテーション)を含む。現在はRobotはGoogle社のサービス構築環境である「Google App Engine」を使って実装しなければならないが,将来的にはごく普通のサーバーでも実装できるようにするという。