16
g* workshop #3 / 2009.06.08 slide #1 Groovy/Grails on Google App Engine <シンプル導入編> Kazuchika Sekiya <[email protected]>

Groovy/Grails on Google App Engine

Embed Size (px)

DESCRIPTION

g* workshop #3で使った発表資料

Citation preview

Page 1: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #1

Groovy/Grails on Google App Engine<シンプル導入編>

Kazuchika Sekiya <[email protected]>

Page 2: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #2

Google App Engine for Java! 2009年4月、待望のJava対応 (Early Look)

! 5月末のGoogle I/Oで正式公開! Javaに限らず、さまざまなJVM言語に対応

! Groovy, Scala, JRuby, Jython, etc.! G*界の対応

! Groovy 1.6.1リリースで即日対応!! 5月中旬にはGrails 1.1.1もリリース

– AppEngine plugin: 0.7, 0.8, 0.8.1と進化中

Page 3: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #3

Groovy on Google App Engine

Page 4: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #4

事前準備! Groovy 1.6.1+のインストール

! 最新は1.6.3! GAEアカウントの登録! GAE/J SDKのダウンロードとインストール

! 必ず1.2.1を入手すること!! 日本語ページはまだ1.2.0になっているので英語に切り替えるか下記から直接ダウンロードhttp://googleappengine.googlecode.com/files/appengine-java-sdk-1.2.1.zip

Page 5: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #5

Groovyを使うには?! GAE/JはServletベース

! アプリはHttpServletとして書く! 二つの方法a)GroovyでServletを書きコンパイルしてしまうb)Groovletを利用する

Page 6: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #6

Groovletとは! Groovy版Servlet! 正確にはGroovyServletというServletから起動されるGroovyスクリプト! 出力はブラウザへ

– println “Hello” だけでも立派なGroovlet! いくつかの組込み変数(バインディング)を通じてリクエスト/レスポンス、Servlet実行環境などにアクセスできる:– request, response, context, session, out, etc.

Page 7: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #7

プロジェクト構造

Groovy 実行環境を全て含む jarGROOVY_HOME/embeddable の下にある

AppEngine API の実装を全て含む jarAPPENGINE_HOME/lib/impl の下にある

Page 8: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #8

web.xml の記述例

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5"> <servlet> <servlet-name>GroovyServlet</servlet-name> <servlet-class>groovy.servlet.GroovyServlet</servlet-class> </servlet>

<servlet-mapping> <servlet-name>GroovyServlet</servlet-name> <url-pattern>*.groovy</url-pattern> </servlet-mapping></web-app>

GroovyServletの定義とマッピング

Page 9: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #9

appengine-web.xml の記述例

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>jggug-demo</application> <version>1</version>

<system-properties> <property name="file.encoding" value="UTF-8" /> </system-properties></appengine-web-app>

GAEのアプリケーションID要事前登録(1アカウント10個まで)

デフォルトエンコーディングをUTF-8に設定

Page 10: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #10

デプロイ! 開発用ローカルサーバでのテスト

localhost:8080 でアプリが起動される

! 実クラウド環境へのアップロード

! <アプリID>.appspot.com でアプリが公開される

% dev_appserver.sh deploy/

% appcfg.sh deploy/

Page 11: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #11

スケジュールタスク(cron)! WEB-INF/cron.xml の記述例

! 以下のような指定も可能– 2nd,third mon,wed,thu of march 17:00– every monday of month 09:00– 1st monday of sep,oct,nov 17:00

<?xml version="1.0" encoding="UTF-8"?><cronentries> <cron> <url>/weather</url> <description>Reports weather every 6 hours</description> <schedule>every 6 hours</schedule> </cron></cronentries>

Page 12: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #12

何に使う?! ごくシンプルなWebアプリ

! 基本的にはGrailsを使うべき! スケジュールベースの各種ジョブ

! 監視、レポート生成、ビルド、テスト等! メンテ/電気代不要の自宅サーバとして?

– 実例:twitterボット、鉄道運行情報レポート– クラウドの意味はほとんどないけど...

Page 13: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #13

Grails on Google App Engine

Page 14: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #14

スクリーンキャストをご覧ください ;-)

Page 15: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #15

参考資料(翻訳)! 「GroovyでGoogle App Engine用のアプリを書こう」GroovyプロジェクトリードGuillaume Laforge氏によるチュートリアルhttp://grails.jp/wiki/display/Groovy%E3%81%A7Google%20App%20Engine%E7%94%A8%E3%81%AE%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E6%9B%B8%E3%81%93%E3%81%86

! 「Grails AppEngine プラグイン」公式プラグインドキュメントhttp://grails.jp/wiki/display/app-engine

! “Deploying Grails Applications to Google AppEngine”GrailsプロジェクトリードGraeme Rocher氏によるスクリーンキャスト(日本語字幕版)

Page 16: Groovy/Grails on Google App Engine

g* workshop #3 / 2009.06.08slide #16

Thank You!

『Groovyイン・アクション』好評発売中!

JGGUGメンバによる翻訳です