Edit
Google App Engine(略:GAE)とは?

米Google社によるクラウドサービスの1つ。Python、Javaのどちらかの言語でのみ動作するプログラムと、限定されたAPI、単純なDBの3つを組み合わせ、スケーラビリティの高いWEBサービスを提供することができる。

Edit
開発方法

基本的には、EclipseのPluginとしてGAEの開発キットが提供されている。当初はPython専用だったために、提供されているライブラリなどPython向けのものが多くまた安定していたが、近年はJavaに対応したため、一挙にライブラリやフレームワークなども増えてきている。

Edit
インストール

基本的には、このページを参照することで、簡単にEclipseにPluginを導入できるが、簡単にここでも説明する。(Javaはインストール済みを前提)

  1. Eclipseの「ヘルプ」メニューから「新規ソフトウェアのインストール」の画面を開き、一番上の作業内容の枠に、下記のサイトアドレスを入力する。
    http://dl.google.com/eclipse/plugin/3.6
  2. PluginとSDKという、2つの選択項目が表示されるので、両方を選択し手順に従いインストール。

Edit
基本的なコードの流れ

Edit
プロジェクト作成

Eclipseでは、新規プロジェクト時に「WebApplicationProject」を選択し、プロジェクトを作成する。

Edit
ローカルでテストを実行

プロジェクトの実行の際に、Web Applicationを選択することで、ローカルサーバーが起動し、その上にプロジェクトがDeployされテストでするようになる。通常はhttp://localhost:8888/にアクセスすることで、そのページを確認できる。(Eclipseのコンソールに、サーバー起動情報が表示されるので、正確なURLはそこで確認する)

Edit
GAEの本番環境でテスト

Edit
プロジェクトをGAEに設置(Deploy)

GAE PluginをEclipseに導入すると、メニューアイコンの中に、ロケットエンジンのようなアイコンで、Deploy App Engine Projectのボタンが出来ており、このボタンを押すことで、GAEにプロジェクトデータをUPし、テストすることができる。手順は下記の通り。

  1. 最初にプロジェクトのプロパティーから、Application IDと、バージョンを設定する。ApplicationIDは、GAE Dashboard で登録した、ApplicationIDを選択し、バージョンには整数値の数字を入力する。(小数点は不可)
  2. 上記で説明したDeployボタンを押すと、ApplicationID、GAEの登録アカウント、パスワードの設定画面が表示される。GAEのアカウントは通常末尾が、@gmail.com となる。間違いやすい点として、GAEのアカウントを作成する際に、入力した携帯電話のメールアドレスではなく、あくまでGAEの登録アカウントとなる。

Edit
テストと確認

Deployされたアプリは、http://<アプリ名>.appspot.com/ にアクセスすることで、実行を確認することができる。

Edit
データストア

GAEでは、BigTableという、Google独自のデータベースを、GQLというGoogle独自のSQLの他に、JDO (Java Data Objects)と、JPA (Java Persistence API)という2つの抽象化されたデータアクセスを提供している。

個人的にiPhoneのCoreDataを利用して、これらJPAやJDOのようなものを疑似体験したが、SQLと比較してデータ管理に関して劇的に管理能力及びソース量が減った印象が無かったが、BigTableというSQLが使えないDBに対してこれらの永続性の抽象化実装を行うことは、かなりコードの効率化が上がると思われる。

Edit
推奨するフレームワーク(slim3)

slim3は、Low Level APIの薄いラッパーでありながら、データストアの抽象化が使いやすくまとまっている、優れたDatastoreフレームワークであり、GAEでBigTableを使うのであれば、これを使った方が良いと思われる。
slim3日本語の公式ページ

Edit
slim3のインストール

GAE Pluginと同じように、eclipseからインストールを行う。

URL : http://slim3.googlecode.com/svn/updates/

選択が1つでるのでチェックし、インストールを行う。

補足リンク
JDO vs JPA
BigtableをjQueryで操作できる「gaedirect」とは BigTableと同じ仕組みを提供するHyperTable