BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Google App Engine アプリケーション用の便利な小物たち

Google App Engine アプリケーション用の便利な小物たち

原文(投稿日:2010/04/08)へのリンク

Google App Engine 用に書かれたアプリケーションを支援する,最新のフレームワークとツールをいくつか紹介しよう。SimpleDSObjectify という2つの永続化フレームワーク,JUnit ランナの Kotori,ケーススタディ GWT アプリケーション Apple Guice,そして Android デバイスのための GAE モニタリングアプリケーション Engine Watch だ。

SimpleDS

SimpleDS はアプリケーションデータを GAE のデータベースに透過的に保存する,Java アプリケーションのための永続化フレームワークだ。ただし本格的なフレームワークというよりは,データストア API のラッパと考えた方がよいだろう。GAE には JDOJPA という2つの永続化ソリューションがすでにあるのに,さらにフレームワークが必要なのか,と疑問に思うかもしれない。プロジェクトオーナは次のように説明している。

  • データストアAPIはマップ形式の構造の永続化を直接提供しているため,インターフェースレベルが低すぎる。
  • JDO と JPA の API は単純な処理に対しては複雑すぎる。また,リレーショナルデータベースを前提に設計された,数多くの外部チェックが,パフォーマンスを損ねている。

Objectify

もうひとつの永続化フレームワーク Objectify は,型付オブジェクト(typed object)保存をサポートすることによって,JDO の欠点を補おうというものだ。機能のいくつかを紹介しよう。

  • Objectify は,バッチ操作やクエリ,エンティティグループ,インデックス付けされないプロパティ(unindexed property)など,データストアがネイティブに持っている機能をすべて公開する。
  • Objectify はJava の generics を利用して,タイプセーフなキーとクエリのクラスを提供する。
  • Objectify はアプリケーションのコールドスタート時間に影響を与えない。最大でも数ミリ秒である。
  • Objectify はデータを memcache へ自動的にキャッシュして,読み込みパフォーマンスを向上する。
  • Objectify エンティティは Data Transfer Object を使わずにGWTで使用可能である。

Kotori

Kotori は GAE 上にデプロイされたアプリケーションをテストするための JUnit ランナである。JUnit 3 および 4 のテストケースをサポートするが,30秒以内で完了する短いテストケースのみ実行可能,など制限事項がある。

Apple Guice

Apple Guice は,Guice 依存性注入フレームワーク (dependency injection framework) に基づいた GAE 用 Google Web Toolkit (GWT) アプリケーションの,サーバ及び GWT INjection (GIN) におけるケーススタディである。またクライアントにおいては,Guice 上に構築された新たなDIフレームワークでもある。さらに Apple Guice は,次のパターンの実装例である : GWT Presenter に基づく Model-View-Presenter パターン,GWT Dispatch による Command パターン,そして Sharded Counter パターン。

Engine Watch

Engine Watch は Android モバイルフォンから GAE 利用状況をチェックするためのフリーのモニタリングアプリケーションであり,次のような統計データを確認することができる: CPU 時間,リクエスト数,送信データ量,受信データ量,セキュア要求(Sequre request) その他。

この記事に星をつける

おすすめ度
スタイル

BT