2009年4月12日日曜日

GoogleAppEngine for Javaを少し。

GoogleAppEngine for Javaを少し触ってみよう!ということで、Google App Engine / Getting Started: Javaのチュートリアルを動かしてみました。

Eclipseのプラグインを使うとすんなりDeployの成功し、アプリが動くのを確認できました。

チュートリアルはGuestBookというやつで、JDO + JSPで動くもの。
com.google.appengine.api.users.UserServiceというクラスで、Googleのログイン機能が使えるみたい。

JDOでのDBアクセスは、、JDO/JPAアクセスを提供してくれるDataNucleusというApacheライセンスv2.0のオープンソースが使われていました。
含まれていたJARは以下で、DataNucleus関連は4つ。
  • appengine-api-1.0-sdk-1.2.0.jar
  • datanucleus-appengine-1.0.0.final.jar
  • datanucleus-core-1.1.0.jar
  • datanucleus-jpa-1.1.0.jar
  • geronimo-jpa_3.0_spec-1.1.1.jar
  • geronimo-jta_1.1_spec-1.1.1.jar
  • jdo2-api-2.3-SNAPSHOT.jar

DataNucleusというのはあまり良く知らなかったんですが、JPOXの後継とのことで、JDO1、 JDO2、JDO2.1、JPA1の準拠に加え、LDAPやExcel、XMLなどへの永続化がJDO/JPAから出来るらしい。
JDOとJPAはJDO v JPAとかを見つつ、用途に合わせて選択していけばよいんですね。
ちなみにJPAを使う方法は、Using JPA with App Engineにありました。

先がBigTableってーことで、RDBではないですし、いままでの様に複数テーブルをJoinした複雑なSQLってのはやっぱりできなかったりするんだろうなーって想像もあるので、癖を知っておくのは必要そうですね。
...とおもっていたら、書いてあった。
Unsupported Features of JDO
Unsupported Features of JPA
many-to-manyはダメなんすね。
"Join" queriesってのはどんなものを指しているんだろ? SQLを書く時にJoinは使ってはダメって事かなぁ。。

....含まれているJARがdatanucleus-appengine-1.0.0.final.jarってことで、GAE専用のもの(BigTable専用のもの)だったりするんですかね?
でも、もしかしてGoogleドキュメントのExcelを永続化先に選べちゃったりするんかしら??

ぼーっとアプリ管理画面をみていたら、Cronの文字が。
Cronも使えるんですねー。Scheduled Tasks With Cron for Java

あとは、メールを送信できるMail APIと、メモリーキャッシュのMemcache APIもあるし...画像を切り抜き、回転できるようなImage Manipulation APIもある。

さて、どんなアプリつくるかなぁー
• • •