2009-11-21
Google App Engine for Javaで参考になるサイトのまとめ
GAE/J | |
![]()
先日、友達の会社の勉強会で「初めてのGAE/J開発」というタイトルの発表をさせていただきました。準備不足や時間配分のミスがあったため、後半飛ばしぎみになって申し訳ありませんでした。
GAEの制限ばかりを強調しすぎて逆に使えないような印象をもってしまったかもしれませんが、決してそんなことは無いと思います。(だから、私もいまGAEに注目しているわけですし。)特にBigtableは今までとは違った考え方が必要なので、これまでのRDBのように考えるとうまく行かないのは間違いありせん。(私も何度も悩まされました。いや、今もですが。)
しかし、だからといってそれはやり方の問題であって、そのままGAEが使えないという理由にはならないはずです。BigtableにはBigtableのやり方が必ずあるはずです。また、WikipediaやTechCrounchによると、GoogleのたくさんのサービスがBigtableを利用しているようです。(Google Search、Google Earth&Maps、 Google Finance、Google Print、Orkut、YouTube、Blogger)
Googleが巨大データベース「BigTable」をウェブサービスとして公開か?
Bigtableがこれらのサービスを支えていると思ったら(もちろんBigtableだけがささえているわけじゃないですが)、なんか色々できそうに思えてきます。Bigtableの歴史は始まったばかりなので、これからいろんなノウハウが出てくる所だと思います。そして、プログラマとしては新しいノウハウの発見(?)や、無理だと言われていることを可能にしたりと色々挑戦したくもなるわけですね。(プログラマとしてはある意味チャンスの場でもあるわけです)
なので、みんなで色々挑戦してみましょう。
さて、以下では勉強会の資料を作るときに参考にした本やサイトの情報をまとめておきたいと思います。
本
App Engine for Javaの開発環境のセットアップから支払い方法まで、必要な情報が網羅されている。まず、この本を読んで全体像を把握。
Bigtable
一番の特徴であり一番の難関。Bigtable。考え方の転換が必要。
- 2008 Google I/O のセッションビデオ&スライド Bigtableにいて詳しく説明(必読)
- Datastoreのlow-level API(shin1ogawaさんのlow-level APIわかりやすいまとめと、App Engine Java Night #2のセッション資料)
- App EngineのEntityGroupについての説明。トランザクションも関連してくる重要なところ(ひがさん)
- App Engineでバージョンによる楽観的排他制御する方法(ひがさん)
- トランザクション(Read commitedと同等だけど、重要な違いもあるよ)
App Engine全般
- id:kazunori_279さんのApp Engineの記事
その他
- GAE/J用のフレームワーク Slim3(私はもっぱらSlim3で開発しています)
- Slim3 Datastoreの日本語訳(英語読めない私には助かりまくり)
- Slim3 ドキュメントの日本語訳(上記サイトからこちらへ移転した模様)
- Protocol Buffers(Googleの構造化データシリアライズのしくみ)
事例
- 100万PV/日のmixiアプリモバイルをGoogle App Engineで実装した@gclue_akira氏に直撃インタビュー - Togetter
- 実開発で分かったGoogle App Engine for Javaの“すごさ” - こちらから見た「Google App Engine」:ITpro
- 6時間ダウン・・・なんてのも
追記
随時リンクを追加していこうかな。
- 85 http://b.hatena.ne.jp/hotentry/it
- 83 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=xYD&q=jQuery+JSON+deserialize&btnG=検索&lr=lang_ja&aq=f&oq=
- 68 http://b.hatena.ne.jp/hotentry
- 51 http://reader.livedoor.com/reader/
- 43 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=com.ubuntu:ja:official&hs=qMu&q=Ubuntu+IS-707-A&btnG=検索&lr=&aq=f&oq=
- 25 http://www.google.co.jp/reader/view/
- 23 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGLL_jaJP324JP324&q=Java+NIO+GAE/J
- 22 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&hs=z8k&q=jquery+draggable&revid=572537784&ei=2dAIS4SqFY3u7APa48mEAQ&sa=X&oi=revisions_inline&resnum=0&ct=broad-revision&cd=1&ved=0CDYQ1QIoAA
- 16 http://www.google.com/reader/view/
- 14 http://longurl.org
![Google App Engine for Java [実践]クラウドシステム構築 (WEB+DB PRESS plus) (WEB+DB PRESSプラスシリーズ) (WEB+DB PRESS plusシリーズ)](http://ecx.images-amazon.com/images/I/51S5E3PHJFL._SL160_.jpg)

しかも、また、こんなにもまとめてるし。
さすがです。
後半は、時間ぎりぎりでドキドキしましたがw
また、よろしくお願いします〜
いい勉強になりました。
なんかあれば、また勉強して発表しますw