SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Groovy+GrailsでRailsなWeb開発

GroovyとGoogle App Engineでアプリ開発(後編)
~Googleのサービスを利用する方法

Groovy+GrailsでRailsなWeb開発 番外編 後編

  • このエントリーをはてなブックマークに追加

 今回は番外編として、Java上で動くスクリプト言語「Groovy」を使って、Google App Engineのアプリケーションを作成してみましょう。第2回の本記事では、「データストア」や「ユーザー」といったGoogleのサービスを利用する方法について、解説していきます。

  • このエントリーをはてなブックマークに追加

はじめに

 前回、GroovyでGAEを利用する基本について説明を行いましたが、正直、「GAEを利用する」という意味はあまり感じられなかったかもしれません。別にTomcatで動かしてもよかったんじゃ...と思った方もいることでしょう。

 GAEを利用する最大の利点は、「Googleが提供する各種サービスをそのままアプリケーション内から利用できる」という点にあります。今回は、主なサービスの利用について説明していきます。

対象読者

  • JSPを書くのは正直しんどい...と近頃感じる人
  • Ruby on Railsスタイルの開発に興味があるという人
  • MVCフレームワークをJavaで学びたいという人
  • JavaによるGoogle App Engineプログラミングに興味がある人

BigTableとデータストア

 Googleが提供するサービスの中で、最も重要なものと言えば「データストア」でしょう。これは、Googleがサイト内で利用しているデータベース「BigTable」をアプリケーションから利用するためのものです。

 BigTableは、Googleの各種サービスの根幹を支える技術の1つです。GoogleマップやYouTubeなど、Googleのサービスの多くは、BigTableによってデータ管理されています。このBigTableは、一般に広く使われているSQLを使ったリレーショナルデータベースではありません。このため、普通にSQLのクエリーを送信してアクセス...といった方法ではなく、GAEに用意されているライブラリを使用してアクセスする必要があります。これが「データストア」と呼ばれるものです。

 GAEのJava版では、データストアは「JDO(Java Data Objects)」というものを利用しています。JDOはオブジェクトの永続化のために用意された仕様ですが、これをそのままデータストアで利用します。データストアのデータベースは、SQLのようにテーブルを設計してそこにレコードを書き込んで...といったものではなく、「保存したいクラスのインスタンスを作ってほいほい放り込んでおく」ようなものなのです。データストアに保管されるのは、基本的に「オブジェクト」であり、必要に応じて「このクラスのオブジェクトを全部ちょうだい」と、オブジェクトを取り出して利用します。従って、オブジェクトの永続化のためのJDOは、データストアを利用するためにまさに格好のものというわけです。

PMFクラスの用意

 データストアを利用するためには、いくつかのプログラムを用意する必要があります。「PersistenceManagerFactory」というものを準備するためのクラス、JDOを利用するための設定ファイル、実際にデータストアに保管するオブジェクトを定義したクラス、そして、実際にデータを保存したり取り出したりする処理を行うプログラム類です。

 まず最初に用意するのが、PersistenceManagerFactoryを取得するためのクラスです。このPersistenceManagerFactoryは、JDOでオブジェクトを扱うための機能を提供するPersistenceManagerクラスを生成するためのものです。このPersistenceManagerFactoryインスタンスの作成には非常にコストがかかるため、アプリケーションごとに1つだけインスタンスを用意し、それを使いまわすようにします

import javax.jdo.*

class PMF {
	private static PersistenceManagerFactory pmfInstance = JDOHelper.getPersistenceManagerFactory("transactions-optional")

	static PersistenceManagerFactory get() {
		return pmfInstance
	}
}

 ここでは、PMFクラスのgetメソッドで、PersistenceManagerFactoryを取得しています。PersistenceManagerFactoryを利用する場合は、常にこれを利用する形になります。

 PersistenceManagerFactoryインスタンスは、JDOHelper.getPersistenceManagerFactoryメソッドを呼び出して取得しています。直接、PersistenceManagerFactoryのインスタンスを作成しないのは、そもそもPersistenceManagerFactoryはインターフェースであり、状況に応じて用意された実装クラスのインスタンスが得られるためです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
JDO設定ファイルについて

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Groovy+GrailsでRailsなWeb開発連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4193 2009/08/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング