“技術者”としてのホリエモンが語るWeb開発とは?

スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
インタビュー特集:Google直伝!(4)

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をダウンロード
GWT Incubatorをダウンロード

6.build.xmlを開いて、appengine.java.sdkincubator.dirを環境に合わせて変更

7.build-gwt.xmlを開いて、 「gwt.version」をGWTのバージョンを環境に合わせて変更(2009年5月のインタビュー時点では、1.6.4)

「gwt.version」を環境に合わせて変更
「gwt.version」を環境に合わせて変更

8.build-gwt.xmlの中ほどにある「gwt.destdir」を環境に合わせて変更(gwt-[windows|mac]-1.6.4は含まない)

「gwt.destdir」を環境に合わせて変更
「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デモのログイン

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

リッチクライアント&帳票 全記事一覧へ

リッチクライアント & 帳票 フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

@IT Sepcial

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Sepcial
ソリューションFLASH