Google App Engineの3つの「簡単」コンセプトとは
ナターシャ 立薗理彦 佐藤真琴
2009/6/4
発表から一年。バージョンアップされたGoogle App Engineでは、どんなアプリケーションが作れるのか?GAEの新たな可能性を聞いた
1年で大幅にバージョンアップされたGoogle
App Engine
- - PR -
2008年4月に発表されて一年。Google App Engineは対応言語としてPythonだけでなく新たにJavaを加え、大幅なバージョンアップにより企業向けのアプリケーションも開発できる可能性が見えてきた。
バージョンアップしたGoogle App Engineではどんなアプリケーションが作れるのか? グーグルの担当者にサービスについて話を聞くインタビュー特集の第4回は、グーグル ソフトウェアエンジニアの鵜飼 文敏さんと本多 正明さんにバージョンアップやJava対応の経緯など、Google App Engineの新たな可能性を聞いた。
Google App EngineはGoogleのインフラの上でデベロッパが開発したアプリケーションを動かしてもらうためのプラットフォームで、「簡単に作れる」「簡単にメンテナンスできる」「簡単にスケールする」の3つがコンセプトとなっているという。以下に、それぞれを説明しよう。
コンセプト【1】「簡単に作れる」
Google App Engineで動かすためのWebアプリケーションは、Python、そして今回新しく対応したJavaのように、標準的なWebテクノロジー(Python/WSGI、Javaサーブレット)を使って書けるようになっている。
■ GWTとの連携
また、Javaに対応することでGoogle Web Toolkitと連携し、動的インターフェイスとサーバ側の実装の両方を、すべてJava言語で書くこともできる。Google Web ToolkitはJavaで書いたコードからJavaScript/Ajaxのアプリケーションを生成してくれるもので、Google App Engineと併用することで、1つの言語でサーバサイド・フロントエンド両方の実装ができるようになった。
■ JavaRuntimeと各種API、cronのサポートで広がる幅
2008年4月7日に発表された段階では、動的なデータを管理するために必要なデータストアAPI、Googleアカウント認証API、外部のWebページを取ってくるURL Fetch API、メールAPI、など基本的なWebアプリケーションを作るために必要なAPIのみが提供されていた。また、「Webアプリケーションのプラットフォーム」としてサービスを始めたので、「ユーザーからのHTTPリクエストがあって動くもの」が前提だったという。
「後にイメージ操作API、Memcache APIを追加してより効率の良いアプリケーションが作れるようになり、そして今回、最初の発表からちょうど一年のタイミングでJava Runtimeがローンチされ、PythonだけなくJavaでアプリケーションを作ってデプロイして動かすことができるようになりました。同時に、Java VMが動くのでJava VMで動くほかの言語も実質動くことになりました。実際にRubyで書いているデベロッパもいますよ」(鵜飼さん)
![]() |
| グーグル ソフトウェアエンジニアの鵜飼 文敏さん |
「cronのサポートも開始し、デイリーでユーザーに何か送りたいというようないわゆるバッチ的な処理にも対応し、アラート通知やランキングの更新などアプリケーションにより多様な機能を追加することができるようになりました」(鵜飼さん)
■ イントラネットのデータにもセキュアにアクセス
また、GoogleガジェットやGoogle Appsで使われていた、ユーザーのイントラネットデータにアクセスする「セキュアデータコネクター」にも対応し、デベロッパが作ったApp Engineで動いているアプリケーションからユーザーのイントラネットにアクセスする仕組みも実装された。
コンセプト【2】「簡単にメンテナンスできる」
Google App Engineはアプリケーションのメンテナンスも非常に容易だという。EclipseにGoogle App Engine for Java、Google Web Toolkitのプラグイン「Google Plugin for Eclipse」をインストールすれば、簡単にローカル環境で動作確認もできるし、同じく簡単にデプロイできるとのことだ。以下に、その手順を説明しよう。
SDKにはいくつかのサンプルプログラムが含まれていますが、今回はその中でGWTを使用してインタラクティブなユーザーインターフェイスを実現しているTaskEngineというプログラムを紹介します。
■ 「Google Plugin for Eclipse」をインストールしてサンプルを実行してみる
1.Eclipseをインストール
2.[Help]→[Software Update]→[Software Updates and Add-ons]で、下記URLを指定してGoogle Plugin for Eclipseをインストール
![]() |
| [Software Updates and Add-ons]で指定するURL |
これだけで完了。すでにEclipseを使っているのであれば、プラグインをインストールするだけでよい。後はボタンを1つ押せば、開発を始められる。
3.プロジェクトのスケルトン作成(メニューバーの青い「g」ボタンをクリック)
![]() |
| プロジェクトの作成 |
GWTを利用して開発する場合は、GWTオプションにチェックを入れる。
続けて、「TaskEngine」というサンプルプログラムを実行する手順。
4.Google App Engine for JavaのSDKの中にあるTaskEngineデモのディレクトリの中身を作成したスケルトンのプロジェクトにコピーして、[F5]キーでプロジェクトを更新
![]() |
| プロジェクトにコピー |
5.GWT Incubatorをダウンロードして、ファイル名をgwt-incubator.jarに変更
![]() |
| GWT Incubatorをダウンロード |
6.build.xmlを開いて、appengine.java.sdkincubator.dirを環境に合わせて変更
7.build-gwt.xmlを開いて、 「gwt.version」をGWTのバージョンを環境に合わせて変更(2009年5月のインタビュー時点では、1.6.4)
![]() |
| 「gwt.version」を環境に合わせて変更 |
8.build-gwt.xmlの中ほどにある「gwt.destdir」を環境に合わせて変更(gwt-[windows|mac]-1.6.4は含まない)
![]() |
| 「gwt.destdir」を環境に合わせて変更 |
9.プロジェクトの[プロパティ]で[Java Build Path]の[Libraries]に手順5のgwt-incubator.jarを追加
10.「GWT Compile Project」赤い「G」のアイコンをクリックしてコンパイル
11.build.xmlを開いた状態で実行ボタン(緑の丸、三角矢印)の横のオプションメニューから「Ant Build...」を選択して実行の設定を追加する「compile」のチェックを外して「runserver」をチェックして実行
12.Webブラウザで「http://localhost:8080/」を開いて、確認
![]() |
| TaskEngineデモのログイン |
![]() |
| TaskEngineデモ |
ローカルでの実行手順は以上。デプロイする場合も、Eclipseの「Deploy App Engine Project」ボタン1つでOKという設計になっている。
| 1-2 |
| INDEX | ||
| インタビュー特集:Google直伝!(4) Google App Engineの3つの「簡単」コンセプト |
||
| Page1 1年で大幅にバージョンアップされたGoogle App Engine コンセプト【1】「簡単に作れる」 GWTとの連携 JavaRuntimeと各種API、cronのサポートで広がる幅 イントラネットのデータにもセキュアにアクセス コンセプト【2】「簡単にメンテナンスできる」 「Google Plugin for Eclipse」をインストールしてサンプルを実行してみる |
||
| Page2 バージョニング 「フリークオーター」と従量課金サービス コンセプト【3】「簡単にスケールする」 グーグルのスケーリング技術 データストア「Bigtable」のスケーリング 複雑なRDBMSのようなデータを扱うには「GQL」 デベロッパーズサポート Google Developer Day |
||
■ @IT関連記事
| Google App Engineで手軽に試すJavaクラウド Javaに対応したことでユーザー数が一気に増加する可能性がある無料でお手軽なクラウド環境Google App Engineの超入門連載です。概要・特徴から環境設定、アプリケーションの作成、業務用として応用できるところまで徹底解説していきます 「Java
Solution」フォーラム |
| Google App Engineは20%プロジェクトから生まれた Google Developer Day 2008特集(2) プロダクトマネージャーに聞く、App Engineの成り立ちと現状、ビジネス、Amazon EC2との違い、そして日本人への期待 「リッチクライアント & 帳票」フォーラム 2008/6/24 |
||
| Google App Engineで作るライフログ これ、俺ならこう使う(4) 気になる旬の技術の使い方を紹介する人気コラム。グーグルのWebアプリ・ホスティング「Google App Engine」で次世代ツール「logme」を作りました 「リッチクライアント & 帳票」フォーラム 2008/10/15 |
||
| Google App EngineはAjaxへのハードルを下げるか? Ajax うきうき Watch(32) Ajaxに挑戦するなら、自由にプログラミングできるサーバ環境が必須。Google App Engineは、そんなハードルを取り払ってくれるはずです…… 「リッチクライアント & 帳票」フォーラム 2008/4/24 |
||
| Googleからのサプライズ、Google Web Toolkit JavaアプリをAjaxアプリに変換できる開発ツール、Google Web Toolkit。まずは、簡単なサンプルを動かしてみよう 「リッチクライアント & 帳票」フォーラム |
||
| エンジニア視点で比較する"雲"の違い 特集:クラウド体験記(前編) Amazon EC2、Google App Engine、Windows Azure、Force.comという4大クラウドの機能や使いやすさを比較。あなたは、どのクラウドが最適か? 「Insider.NET」フォーラム 2009/3/17 |
||
| リッチクライアント&帳票 全記事一覧へ |
- Webの3つの問題を解決する「HTML5」とは何なのか (2010/8/30)
最近よく目にする「HTML5」という言葉。JavaScirptのAPIやCSS3、SVGなどを含め、全体的な概要と、その意義をお伝えします - SilverlightとAmazon S3で“クラウドRIA”を作ってみた (2010/8/26)
クラウド+RIAシステムの一例として、Amazon S3のデータ構造を視覚的に確認できるSilverlightのサンプルを作成しました - iPhone/iPadアプリ作成の仕上げ・国際化・デバッグ (2010/8/20)
ホーム画面のアイコン設定、起動時の画像設定、多言語対応、デバッグの仕方、メモリリークの発見方法について解説 - デザインを制すための10個の余白系CSSプロパティ (2010/8/12)
ボックス周りの見えない余白部分を制御するマージンとパディングを紹介します。CSSのレイアウト力がグッと上がりますよ!
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
お勧め求人情報

















