Flex & Google App EngineFlex & Google App Engine
for Java & Slim3for Java & Slim3 でで
クラウドクラウド RIARIA
~~ s3blazedss3blazeds との戯れ体験 ~との戯れ体験 ~
20102010 年年 1111 月月 2727 日(土)日(土)
FlexFlex 勉強会第勉強会第 125125 回@京都回@京都
徳山 禎男徳山 禎男
アジェンダアジェンダ
► 自己紹介自己紹介
► テクノロジーの概要テクノロジーの概要
► s3blazedss3blazeds の環境構築から本番公開までの環境構築から本番公開まで
► サンプルチャットアプリの紹介サンプルチャットアプリの紹介
► 補足補足
自己紹介自己紹介
► ハンドルネームハンドルネーム tokufxugtokufxug
► 名前 徳山禎男名前 徳山禎男
► 所属 クエストコム株式会社所属 クエストコム株式会社
 http://www.quest-com.co.jp/http://www.quest-com.co.jp/
► 活動活動
 FxUGFxUG 勉強会運営委員会勉強会運営委員会 http://fxug.net/http://fxug.net/
 s3blazedss3blazeds コミッタコミッタ
http://code.google.com/p/s3blazeds/http://code.google.com/p/s3blazeds/
 Twitter @tokufxugTwitter @tokufxug http://twitter.com/tokufxughttp://twitter.com/tokufxug
 BlogBlog http://mossamina.blog99.fc2.com/http://mossamina.blog99.fc2.com/
テクノロジーの概要テクノロジーの概要
Google App EngineGoogle App Engine とは?とは?
► GoogleGoogle が提供するが提供する PPlatformlatform aass aa SServiceervice 型クラ型クラ
ウドウド
► 特徴特徴
 インフラ構築が一切不要インフラ構築が一切不要
 500500 万万 PVPV 相当まで無料相当まで無料
 データベースはデータベースは RDBRDB でなくでなく KVSKVS (( BigtableBigtable ))
 開発言語:開発言語: PythonPython 、、 JavaJava
 制約がある。(制約がある。( 3030 秒制限秒制限、スレッドが使用できな、スレッドが使用できな
い。)い。)
 アクセスがなければインスタンスがすぐ終了する。アクセスがなければインスタンスがすぐ終了する。
 BlazeDSBlazeDS がそのまま動作しない。(がそのまま動作しない。( ExceptionException が発生が発生
する。)する。)
BlazeDSBlazeDS とはとは ??
► FlashFlash テクノロジーにおけるリモーティングおよびメッテクノロジーにおけるリモーティングおよびメッ
セージング技術のソースコードを、オープンソースセージング技術のソースコードを、オープンソース
(( JavaJava )化したもの)化したもの
 リモーティング機能リモーティング機能
►ActionScriptActionScript クラスとクラスと JavaJava クラスでデータのやりとクラスでデータのやりと
りを行う。変換処理はりを行う。変換処理は BlazeDSBlazeDS が担う。が担う。
►AMFAMF という非常に圧縮率の高いという非常に圧縮率の高いバイナリデータバイナリデータ
フォーマットフォーマットを使用している。を使用している。
 メッセージング機能メッセージング機能
►サーバからのサーバからのプッシュ配信プッシュ配信やクライアント同士のやクライアント同士の
メッセージメッセージのやりとりを実現するための機能です。のやりとりを実現するための機能です。
 Google App EngineGoogle App Engine 上ではエラーが発生する。上ではエラーが発生する。
Slim3Slim3 とは?とは?
►Google App Engine for JavaGoogle App Engine for Java に最適化したに最適化した
MVCMVC フレームワークフレームワーク
 http://code.google.com/p/slim3/http://code.google.com/p/slim3/
 http://sites.google.com/site/slim3documentja/http://sites.google.com/site/slim3documentja/
 グローバルトランザクショングローバルトランザクション
 Slim3 DatastoreSlim3 Datastore は高速。は高速。
 スピンアップが早い。スピンアップが早い。
 HOT reloadingHOT reloading
s3blazedss3blazeds とはとは ??
► Google App Engine for JavaGoogle App Engine for Java で稼動するように修で稼動するように修
正した正した BlazeDSBlazeDS (バージョン:(バージョン: 4.0.1.162584.0.1.16258 ))
 http://code.google.com/p/s3blazeds/http://code.google.com/p/s3blazeds/
 機能機能
► リモーティング機能リモーティング機能
► DatastoreDatastore のキーによるシリアライゼーションのキーによるシリアライゼーション
► Slim3Slim3 のの Hot reloading(Hot reloading( 対応中対応中 ))
 未対応未対応
►メッセージング機能メッセージング機能 (ポーリング稼動しました。) (ポーリング稼動しました。)
s3blazedss3blazeds 追加機能検討中追加機能検討中
►1.Key1.Key 以外の以外の GAEGAE のデータ型のシリアライのデータ型のシリアライ
ズズ
 CategoryCategory 、、 EmailEmail 、、 GeoPtGeoPt 等。等。
►2.Slim32.Slim3 のの RelationshipsRelationships サポートサポート
►3.Spinup3.Spinup 高速化?高速化?
s3blazedss3blazeds の環境構築から本番公開までの環境構築から本番公開まで
s3blazedss3blazeds の環境構築の環境構築
►必要なソフトウェア必要なソフトウェア
 JDK1.6, JRE1.6 ※EclipseJDK1.6, JRE1.6 ※Eclipse の設定も行う。の設定も行う。
 Eclipse3.xEclipse3.x (( Pleiades - EclipsePleiades - Eclipse プラグイン日本語化プラグイン日本語化
プラグイン )プラグイン )
 http://mergedoc.sourceforge.jp/#pleiades.htmlhttp://mergedoc.sourceforge.jp/#pleiades.html
 Flash Builder4 for Eclipse Plugin (60Flash Builder4 for Eclipse Plugin (60 日間無料日間無料 ))
 https://www.adobe.com/cfusion/tdrc/index.cfm?https://www.adobe.com/cfusion/tdrc/index.cfm?
product=flash_builder&loc=japroduct=flash_builder&loc=ja
►必要な手続き必要な手続き
 Google App EngineGoogle App Engine のアカウント取得のアカウント取得
 http://code.google.com/intl/ja/appengine/http://code.google.com/intl/ja/appengine/
s3blazedss3blazeds の環境構築の環境構築
► Google App Engine Java SDKGoogle App Engine Java SDK のインストールのインストール
 Eclipse->Eclipse-> ヘルプヘルプ ->-> 新規ソフトウェアのインストールを選択。新規ソフトウェアのインストールを選択。
► http://dl.google.com/eclipse/plugin/3 6http://dl.google.com/eclipse/plugin/3 6 にてにて
Google App Engine Java SDK 1.3.6Google App Engine Java SDK 1.3.6 をチェック。インストールを行う。をチェック。インストールを行う。
サンプルプロジェクト取り込みサンプルプロジェクト取り込み
► SVNSVN からサンプルプロジェクトを取得からサンプルプロジェクトを取得
 svnsvn リポジトリからリポジトリから s3blazedss3blazeds のサンプルプロジェクトを取り込みのサンプルプロジェクトを取り込み
ます。ます。 http://s3blazeds.googlecode.com/svn/trunk/http://s3blazeds.googlecode.com/svn/trunk/
 s3blazeds-sample-client (Flex)s3blazeds-sample-client (Flex) とと s3blazeds-sample-server (GAE)s3blazeds-sample-server (GAE) をを
チェックアウトします。チェックアウトします。
FlexFlex プロジェクトの修正プロジェクトの修正
►追加コンパイラの修正追加コンパイラの修正
 取り込み後、コンパイルエラーが発生していま取り込み後、コンパイルエラーが発生していま
す。す。
►FlexFlex コンパイラーの修正を行います。コンパイラーの修正を行います。
 追加コンパイラー引数の赤字部分をインストールした追加コンパイラー引数の赤字部分をインストールした
EclipseEclipse の環境に合わせて設定します。の環境に合わせて設定します。
FlexFlex プロジェクトの修正プロジェクトの修正
►サーバ設定サーバ設定
 FlexFlex が接続するサーバのルートフォルダ、が接続するサーバのルートフォルダ、 FlexFlex
プロジェクトコンパイル先を設定。プロジェクトコンパイル先を設定。
※ :ここだけ Mac ですが、 Windows でも同じ設定です。
Hot ReloadingHot Reloading の設定の設定
►Hot ReloadingHot Reloading をを falsefalse に設定に設定
 Hot ReloadingHot Reloading を設定時、エラーが発生する為を設定時、エラーが発生する為
、、 falsefalse に設定します。に設定します。
 /s3blazeds-sample-server/war/WEB-/s3blazeds-sample-server/war/WEB-
INF/appengine-web.xmlINF/appengine-web.xml をを OPENOPEN 。。
►<property name=<property name=“slim3.hotReloading”“slim3.hotReloading”
value=“false”/>value=“false”/> に変更。に変更。
WEBWEB アプリ実行アプリ実行
►s3blazeds-sample-servers3blazeds-sample-server を実行します。を実行します。
 実行後、コンソールにエラーもなく、実行後、コンソールにエラーもなく、情報情報 : The server is running at: The server is running at
http://localhost:8888/http://localhost:8888/ が表示すれば起動完了です。が表示すれば起動完了です。
サンプルアプリケーションの稼サンプルアプリケーションの稼
動動
►WEBWEB ブラウザで確認ブラウザで確認
 http://localhost:8888/client/Main.htmlhttp://localhost:8888/client/Main.html へアクセへアクセ
スス
サンプルアプリケーションの操サンプルアプリケーションの操
作作
► PING,PUT,GETPING,PUT,GET
 PINGPING は、送信データをそのまま返します。は、送信データをそのまま返します。
 PUTPUT は、は、 BigtableBigtable に保存。に保存。
 GETGET は、は、 BigtableBigtable から、取得します。から、取得します。
本番公開前の設定本番公開前の設定
アプリケーションの作成アプリケーションの作成
WEBWEB の設定画面との設定画面と EclipseEclipse のプロジェクトのプロパティにのプロジェクトのプロパティに
て、て、
アプリケーションアプリケーション IDID を合わせてから設定を行います。を合わせてから設定を行います。
本番公開本番公開
►s3blazeds-sample-servers3blazeds-sample-server を公開します。を公開します。
 s3blazeds-sample-servers3blazeds-sample-server を選択後、を選択後、 AppApp エンジン・プロジェクエンジン・プロジェク
トのデプロイボタンをクリック。配置のポップアップでトのデプロイボタンをクリック。配置のポップアップで
は、は、 GoogleGoogle アカウント情報を入力後、配置ボタンをクリックしアカウント情報を入力後、配置ボタンをクリックし
ます。ます。
本番公開完了本番公開完了
►配備処理配備処理
 配備処理は自動で行われます。コンソール内に「配備処理は自動で行われます。コンソール内に「 DeploymentDeployment
completed successfullycompleted successfully 」で配備完了です。」で配備完了です。
おさらいおさらい
► 1. Java1. Java のバージョンはのバージョンは 1.61.6 にする。にする。
► 2. s3blazeds2. s3blazeds のサンプルプロジェクトをチェックイのサンプルプロジェクトをチェックイ
ンン
 s3blazeds-client, s3blazeds-servers3blazeds-client, s3blazeds-server
► 3. Flex3. Flex プロジェクトの環境設定の変更プロジェクトの環境設定の変更
 追加コンパイラ、サーバ設定の修正追加コンパイラ、サーバ設定の修正
 Hot Reloading = falseHot Reloading = false
► 4.4. 本番へデプロイの設定本番へデプロイの設定
 アプリケーションアプリケーション IDID をを GoogleGoogle サイトで作成したサイトで作成した
ApplicationIdApplicationId で設定する。で設定する。
チャットサンプルアプリの紹介チャットサンプルアプリの紹介
►特徴特徴
 発言毎にカメラでキャプチャした画像もアップします発言毎にカメラでキャプチャした画像もアップします
。。
 発言した情報はサーバプッシュします。発言した情報はサーバプッシュします。
補足補足
►AIR for Android + Google App EngineAIR for Android + Google App Engine のサのサ
ンプルアプリの記事ンプルアプリの記事
 s3blazedss3blazeds のコミッタさんでもあるのコミッタさんでもある kissrobberkissrobber さんが、さんが、
Adobe Flash Builder “Burrito“(Flex SDK 4.5 Hero)Adobe Flash Builder “Burrito“(Flex SDK 4.5 Hero) とと
s3blazedss3blazeds を使用したサンプルアプリを、を使用したサンプルアプリを、
ブログに投稿しています。ブログに投稿しています。
http://d.hatena.ne.jp/kissrobber/http://d.hatena.ne.jp/kissrobber/
ご清聴ありがとうございましたご清聴ありがとうございました
。。

2010年11月27日土曜日FlexUserGroup勉強会 第125回 京都 Flex & Google App Engine for Java & Slim3 で クラウドRIA ~ s3blazedsとの戯れ体験 ~