はじめに
本稿では、JavaやPythonによるサーバー側コーディングを一切必要とせずにGoogle App Engineによる開発を実現するツール「jsonengine」について紹介します。
対象読者
Google App Engineに興味はあるが経験のない方。JavaScriptやActionScriptによるクライアント開発、またはiPhoneやAndroidによるスマートフォン開発の経験のある方。JavaやPythonの開発経験は不要です。
必要な環境
最低動作環境は次のとおりです。
- Java SE 5
jsonengineって何?
「jsonengine」は、JavaやPythonによるサーバー側コーディングを一切必要とせずにGoogle App Engineによる開発を実現するオープンソースのツールです。このツールは、昨年開催された「Mashup Awards 6」において「富士山マガジンサービス賞」を受賞しています。
Google App Engine(以下、App Engine)はグーグルが提供するクラウドサービスです。App Engineの「すごさ」についてここでは改めて説明しませんが、スケーラビリティと可用性の高いWebアプリケーションを容易に構築でき、かつ「無償」(小~中規模サイトの場合)でホスティングできるサービスであることは多くの読者の方がご存知でしょう(App Engineについて詳しくは『Google App Engine for Javaを使ってみよう!』をご覧ください)。その数多くのメリットから、mixiアプリ「Xmas 2010」など大規模サービスでのApp Engine導入事例も増えつつあります。
しかし通常、App Engineを利用するには、開発者がJavaまたはPythonで記述したアプリケーションをApp Engineのクラウドにアップロードする必要があります。よってJavaやPythonの知識やコーディング作業が不可欠です。一方、jsonengineを利用することで、App Engineのコーディングを一切行わずにApp Engineを利用したWebアプリケーションを開発できます。必要なのは、JavaScriptやActionScriptによるWebコンテンツ、またはiPhoneやAndroidのスマートフォンアプリの開発スキルだけです。
まずは、jsonengineを使って実装されたアプリケーションの例をいくつか紹介しましょう。以下の図は、jsonengineを利用して開発されたChromeエクステンション「PinIt」の利用例です。
このPinItは、インターネット上の任意のWebページに「付箋」を貼ってコメントを共有できるChromeエクステンションです。上の例では、Twitterのトップページ上に複数のPinItユーザーがめいめいに黄色い付箋を張ってさまざまなコメントを残しているのが分かります。これらの付箋データは、すべてjsonengineを通じてApp Engine上(すなわちグーグルのデータセンター上)に保存されています。
このPinItの開発者(knj77さん)が記述したのは、Chromeエクステンション、すなわちWebブラウザ側で動作するJavaScriptコードのみです。サーバー側のコーディングは一切行われていません。加えて、PinItのサービスはApp Engine上で動作していますので、(PinItが大規模サービスに成長するまでは)ホスティングの費用は完全に無償で、運用の手間もほとんどかかりません(基本"ほったらかし"でOKです)。もしデータ量やアクセス数が膨大な規模に成長したとしても、App Engineの最大の特徴であるスケーラビリティのおかげで、既存のRDBMSベースのサービスに起こりがちなレスポンス低下などの問題は発生せず、大規模サービス向けの本格的な実装に書き換える必要もありません。