
Google App Engineで手軽に試すJavaクラウド(1)
EclipseでJava版App Engineを始めるための基礎知識
有限会社サイバースペース
清野克行
2009/5/11
Google App Engineがやって来るJa!va!だぁ!
米グーグルは2008年4月7日、Pythonで作成したプログラムが動くクラウド・コンピューティング環境「Google App Engine」(以下、GAE)を発表しました。それからちょうど1年後の2009年4月7日、GAEはPythonに加えてJavaへの対応(以下、GAEj)を発表しました(参考:グーグルのクラウドがJava対応、JRubyも稼働か)。
2008年のGAE発表当初、日本ではPythonのプログラマ数があまり多くなく、反響もいまひとつの感じがありましたが、今年になって開発者や利用実績が多いJavaに対応したことで、GAEのユーザー数が一気に増加する可能性があります(参考:App Engine発表後、クラウド時代に向けJavaの対応が加速)。
本連載では、GAEjの概要・特徴から環境設定、アプリケーションの作成、GAEjクラウド上でのBigtableの操作、jQueryによる日本語表示の解決、そしてDWRによるjQueryとGAEjサーブレットの連携までといった業務用アプリケーションとして応用できるところまで徹底解説していきます。
GAEjを理解する8つのポイント
まずは、GAEjの主な概要・特徴を8つ紹介します。
■ 【1】Java 5/6のサーブレット/JSP、JavaBeansが使える
クラウド上にあるWebアプリケーション実行環境は、Javaのバージョン6対応ですが、アプリケーションはJava 5/6のどちらでも作成できます。また、対応アプリケーションはJava Servlet(サーブレット)が基本ですが、ほかにJSP(JavaServer Pages)や、サーブレットから呼び出されるJavaBeansも使用可能です。
■ 【2】Java言語以外でも実行できる
GAEjのJVM(Java Virtual Machine)は、Javaのバイトコードを実行するので、生成するコンパイラがあれば、Java言語以外でも実行できます。例えば、JRubyやGroovy、Scala、JavaScript(Rhino)、PHP(Quercus)なども動作可能です。
■ 【3】Eclipseプラグインがある
GAEj用のJavaアプリケーション作成とクラウド環境へのデプロイは、コマンドラインからも可能ですが、Eclipseのプラグイン「Google Plugin for Eclipse」が用意されているので、アプリケーションの作成からクラウド環境へのデプロイまでを、すべてEclipseの開発環境内で行えます。
なお、プラグインはEclipse 3.4(Ganymede)およびEclipse 3.3(Europa)に対応しています。
■ 【4】GAEjで制限されているJavaの機能
GAEjでは、サーブレットを使用するサーバサイドJavaの機能をほとんど使用できますが、一部サポートされていない機能もあります。
例えば、スレッドの起動やファイルシステムへのアクセス、ソケット通信、それにJNI(Java Native Interface)によるJavaプログラムからの、ほかの言語で開発されたネイティブコード・プログラムの利用はできません。
■ 【5】JDOとJPAによるBigtableへのアクセス
グーグルのデータ管理システム「Bigtable」に、JDO(Java Data Object)とJPA(Java Persistence API)を通じてアクセスできます。JDOおよびJPAの詳細は、下記記事を参照してください。
ただし、BigtableはRDB(Relational Database)ではないため、アクセスにはGAEj固有の方式も含まれます。そのため、現在多くの業務システムで使われているRDBMSからGAE上に移植するにはデータベースの設計自体を変える必要があると議論されているところです。
■ 【6】専用Java APIがある
主な専用Java APIは以下になります。
- Memcache Java API
Bigtableの直接アクセスを一部代替するJCacheでのイン・メモリのキャッシュサービスを利用できる - URLフェッチAPI
JavaプログラムからHTTPとHTTPSリクエストによって、ほかのホストへアクセスとデータ取得ができる - Mail API
GAEjの管理者、およびユーザーからメールを送信できる - Image API
専用のImageサービス機能によって、イメージデータのサイズ変更や回転、反転などができる
■ 【7】Googleアカウントで認証
GAEjアプリケーションにアクセスするユーザーに対して、Googleアカウントでの認証機能を提供します。
■ 【8】そのほかGWTやcronも
【5】〜【7】の機能は、Python版でサポートされていたものとほぼ同様ですが、Java版ではこのほかに、GWT(Google Web Toolkit)でのAjaxアプリケーション作成、UNIXなどでおなじみの日時指定スケジュールジョブ実行ツールcronのサポートなどが追加されています。
GWTはAjaxのプログラムをJavaで作成して変換する機能を持つグーグルのフレームワークです。詳しく知りたい読者は下記記事を参照してください。
Google App Engineのアカウントを取得してみよう
作成したプログラムをグーグルのクラウド環境で稼働させるためには、最初にGAEのページで認証キーを所得する必要があります。
今回のJava版の発表は「Early Look」扱いで、ユーザー数は当初1万人限定でしたが、その後すぐに2万5000人に拡張されています。筆者の場合は、サインアップから認証キーをリクエストして1日半くらい経過してから、メールが届いてGAEjの利用が可能になりました。
筆者はGAEjの使用許諾メールが届くのにそれほど時間はかからないと思って、何度か受信トレイをのぞきましたがメールは届いておらず、人数制限に引っ掛かってしまったかと思っていました。翌日になって、何げなくメールボックスを開くと、グーグルからのメールが届いていたという感じで、ある程度は待つ必要があるようです。
そのほかの認証キーを取得する際の注意点については、主にPython版の説明ですが下記記事が参考になります。認証キーを取得する部分はJava版とほぼ共通です。
| エンジニア視点で比較する"雲"の違い 特集:クラウド体験記(前編) Amazon EC2、Google App Engine、Windows Azure、Force.comという4大クラウドの機能や使いやすさを比較。あなたは、どのクラウドが最適か? 「Insider.NET」フォーラム
2009/3/17 |
次ページからはGAEjアプリケーション作成に入っていきますが、今回はGAEjのEclipse環境設定から、簡単な表示をするアプリケーションの作成、それにGAEクラウド環境へのデプロイ・実行までを解説します。
| Index | ||||||||||
|
||||||||||
Google App Engineで手軽に試すJavaクラウド バックナンバー 連載インデックスへ»
- 第1回 EclipseでJava版App Engineを始めるための基礎知識
- 第2回 BigtableデータをApp EngineのJSPで日本語表示
- 第3回 App EngineをjQueryでAjax化しBigtableをCRUD操作
- 最終回 コレクションフィールドとDWRで、GAEjを業務用に進化
| Java Solution全記事一覧 |
ホワイトペーパー(TechTargetジャパン)
- Android NDKでJNIを使用してアプリを高速化するには (2010/3/17)
C/C++やOpenGL ESといったネイティブコードを使うためのNDKとJNIを紹介し、その使い方や注意点を徹底解説します - 調査の難しい「OutOfMemoryError」事例、5選 (2010/3/11)
Java開発者が避けて通れないメモリ不足エラーの基本的な問題切り分け方法と発生につながる事例、対処法を解説 - 究極の問題解析ツール、逆コンパイラJD-Eclipseとは (2010/3/8)
ライブラリ内で例外が発生! そのクラスのソースコードを調べたい!! 自動で逆コンパイルしてくれる無料Eclipseプラグインがあります - いまさら聞けない「Webサービス」の常識 (2010/2/26)
昨今では企業システムでも使われる「Webサービス」の概念やJava標準のJAX-WSを紹介しJBoss WSでサンプルを作成
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |









