米Google社によるクラウドサービスの1つ。Python、Javaのどちらかの言語でのみ動作するプログラムと、限定されたAPI、単純なDBの3つを組み合わせ、スケーラビリティの高いWEBサービスを提供することができる。
基本的には、EclipseのPluginとしてGAEの開発キットが提供されている。当初はPython専用だったために、提供されているライブラリなどPython向けのものが多くまた安定していたが、近年はJavaに対応したため、一挙にライブラリやフレームワークなども増えてきている。
基本的には、このページを参照することで、簡単にEclipseにPluginを導入できるが、簡単にここでも説明する。(Javaはインストール済みを前提)
http://dl.google.com/eclipse/plugin/3.6
Eclipseでは、新規プロジェクト時に「WebApplicationProject」を選択し、プロジェクトを作成する。
プロジェクトの実行の際に、Web Applicationを選択することで、ローカルサーバーが起動し、その上にプロジェクトがDeployされテストでするようになる。通常はhttp://localhost:8888/にアクセスすることで、そのページを確認できる。(Eclipseのコンソールに、サーバー起動情報が表示されるので、正確なURLはそこで確認する)
GAE PluginをEclipseに導入すると、メニューアイコンの中に、ロケットエンジンのようなアイコンで、Deploy App Engine Projectのボタンが出来ており、このボタンを押すことで、GAEにプロジェクトデータをUPし、テストすることができる。手順は下記の通り。
Deployされたアプリは、http://<アプリ名>.appspot.com/ にアクセスすることで、実行を確認することができる。
GAEでは、BigTableという、Google独自のデータベースを、GQLというGoogle独自のSQLの他に、JDO (Java Data Objects)と、JPA (Java Persistence API)という2つの抽象化されたデータアクセスを提供している。
個人的にiPhoneのCoreDataを利用して、これらJPAやJDOのようなものを疑似体験したが、SQLと比較してデータ管理に関して劇的に管理能力及びソース量が減った印象が無かったが、BigTableというSQLが使えないDBに対してこれらの永続性の抽象化実装を行うことは、かなりコードの効率化が上がると思われる。
slim3は、Low Level APIの薄いラッパーでありながら、データストアの抽象化が使いやすくまとまっている、優れたDatastoreフレームワークであり、GAEでBigTableを使うのであれば、これを使った方が良いと思われる。
slim3日本語の公式ページ
GAE Pluginと同じように、eclipseからインストールを行う。
URL : http://slim3.googlecode.com/svn/updates/
選択が1つでるのでチェックし、インストールを行う。
補足リンク
JDO vs JPA
BigtableをjQueryで操作できる「gaedirect」とは
BigTableと同じ仕組みを提供するHyperTable