2010年2月4日木曜日

Google App Engine for Java

Google App Engine for Java [実践]クラウドシステム構築 (WEB+DB PRESS plus)

(株)グルージェント

技術評論社


Google App Engine for Java(GAE/J)の解説本。最初にクラウドの話があって、次からGAE/Jの本題に入る。まずQuota(割り当て)/Limit(制限)の説明だが、ここはこんな制約があるんだな程度でも良いと思う。その後、開発手順やテスト、データストアや各種サービスAPIの説明に加えてGoogleの他のサービスとの連携方法や有償での追加リソースの話がある。サンプルプログラムは少なめだが、分かりやすく物足りなさはない。Javaでの開発(特にサーバサイドJava)の経験がないと読むのは難しいかもしれない(もっともサーバサイドJavaを知らない人がいきなりGAE/Jの本を読むとは思わないが...)

Python版のGAEは知らないのでなんとも言えないが、感心したのは2点。
1点目は、Eclipseで開発できるのは当たり前としても、テストについて十分考えられていること。ローカル環境でほぼテストができてしまう。もちろん、ローカル環境ではできない処理があるので、そこは注意が必要だ(メール送信など)。また、実環境(クラウド環境)でもバージョンの概念があるので、デフォルトバージョンは本番で違うバージョンをステージング(最終テスト)用として運用できる。

2点目は、GAE/J特有の処理も実際のAPIをラップした形で提供されていること。データストア(BigTable)の利用などは、専用APIを使うものと思っていたが、JDOなどのデータストアAPIがそのまま使える。これは、データストアAPIに親しんだ開発者にとっては非常にやりやすいと思う。メール送信も同様で覚えることが少なくて済むのは良いことだ。ただし、データストアは今まで利用していたDBのつもりで使うとパフォーマンスなどいろいろ問題がでる。通常のDBではデータを登録、取出し時に加工するのが普通だが、BigTableでは書き込み時に加工、取出しのみ、と考え方を変えなければならない。またAPIは、Low Level APIというもっと細かい設定を自分で行うためのAPIも用意されている。処理内容やパフォーマンスなど勘案して、使い分けをすると良いだろう。

本書は、非常に簡潔にまとまっており、GAE/Jを最初に勉強するには良い本だと思う。他のGAE/Jの本を読んだことがないので、なんとも言えないが、まず最初の1冊として良いとだろう。

0 件のコメント: