Slim3の準備を整えよう! (1/5)
作成:2013-11-30 12:34
更新:2013-11-30 12:34
更新:2013-11-30 12:34
■なぜ、Slim3なの?
Slim3は、Google App Engine(GAE)専用のMVCアプリケーションアーキテクチャーに基づくWebアプリケーション開発フレームワークです。JavaによるGAE開発を行うとき、おそらくもっとも多用されるものでしょう。
GAEは、Googleが提供するPaaS(Platform as a Service)です。クラウドによるWebアプリケーション構築のための環境はさまざまな形態のものが出ていますが、GAEはおそらく数あるクラウドサービスの中でもAmazonのAWSと並ぶ老舗でしょう。Googleが提供するGoogleアカウントによるユーザー認証や、Googleの巨大なデータベース運用の技術を利用したデータストア機能など、「Googleの技術を使ったWebアプリが個人で作れる」ということが最大のウリといえます。
GAEでは、Googleが提供するWebベースのサイト管理ツールを使い、誰でも簡単にWebアプリケーションの管理が行えます。また開発のためのSDKや開発支援ツールなども無料で公開しており、誰でもタダでGAEを使った開発が行えるようになっています。多くのクラウドサービスが、Gitなどを利用したコマンド操作によるややマニアックな使い方を強いられるのに対し、GAEは比較的早い時期に「ツールを使ってメニューやボタンを操作するだけで開発できる」という環境が整っていました(もちろん、コマンドラインでも開発が行えます)。
が、GAEにも泣き所はあります。それは「Webアプリケーション全体を構築するためのフレームワークがない」という点です。GAEではPython、Java、Go、PHPといった言語が利用できますが、開発の際に基本的なWebアプリケーションフレームワークまで標準で用意されているのはPythonのみです。Javaで開発しようとすると、例によってJSPとサーブレットによる開発が待っていました。
現在は、多くのフレームワークがJavaにも用意されています。そうしたフレームワークを使えばいいじゃないか、と誰しも思うでしょう。が、GAEではデータベース関連にデータストアというGoogle独自の非SQLデータベースを使うため、多くのフレームワークはそのままでは動きません。Google Cloud SQLというサービスを利用すればMySQLを使うことができますが、これを利用するには料金がかかりますし、データベースの管理なども別に行わないといけません。何より、「せっかく無料でデータストアという強力なデータベースがあるのに、なんでわざわざ別にMySQLを用意しないといけないんだ?」と考えてしまいますね。
その中でも最大の問題が「起動時間」でしょう。GAEを利用しているとわかりますが、GAEはアクセス不可の増減により、自動的にアプリケーションのインスタンスを起動したり終了させたりします。こうすることで自動的にスケールアップやスケールダウンを行い、「いきなりアクセスが集中してサイトがダウン」なんてことを防ぐのです。
が、多くのWebアプリケーションフレームワークは、起動に時間がかかります。例えばJavaの世界で広く使われているSpring MVCやPlay framework、Grailsなどは下手をすると起動に1分以上かかったりします。GAEは「アクセスして一定時間待たされると自動的に次のインスタンスを起動する」というようになってますから、こうしたものだと起動中に「まだアクスしない」とまた次のが起動される、そしてまた次が……などと次々起動することになってしまいます。
更には、GAEには30秒ルールがあり、「30秒たっても反応が返らないとサーブレットの起動がキャンセルされる」という仕組みになっています。となると、起動に1分かかるフレームワークは、そもそも起動すらできない(途中でキャンセルされる)可能性すらあります。
他にも、ホットリローディング(起動中にクラスなどを動的に更新する機能)とか、タイプセーフクエリ(必ず正しいクエリが記述し実行できる仕組み)なども用意されており、GAE開発者にやさしいMVCベースアプリの開発環境を提供してくれます。
Slim3は、以下のアドレスにて公開されています。ただし! ここから何かをダンロードする必要はありません。開発環境のEclipseさえあればSlim3開発の環境をすぐに整えることができます。
※Slim3のサイト(公式英語版)
https://sites.google.com/site/slim3appengine/
※日本語サイト(非公式)
https://sites.google.com/site/slim3documentja/
GAEは、Googleが提供するPaaS(Platform as a Service)です。クラウドによるWebアプリケーション構築のための環境はさまざまな形態のものが出ていますが、GAEはおそらく数あるクラウドサービスの中でもAmazonのAWSと並ぶ老舗でしょう。Googleが提供するGoogleアカウントによるユーザー認証や、Googleの巨大なデータベース運用の技術を利用したデータストア機能など、「Googleの技術を使ったWebアプリが個人で作れる」ということが最大のウリといえます。
GAEでは、Googleが提供するWebベースのサイト管理ツールを使い、誰でも簡単にWebアプリケーションの管理が行えます。また開発のためのSDKや開発支援ツールなども無料で公開しており、誰でもタダでGAEを使った開発が行えるようになっています。多くのクラウドサービスが、Gitなどを利用したコマンド操作によるややマニアックな使い方を強いられるのに対し、GAEは比較的早い時期に「ツールを使ってメニューやボタンを操作するだけで開発できる」という環境が整っていました(もちろん、コマンドラインでも開発が行えます)。
が、GAEにも泣き所はあります。それは「Webアプリケーション全体を構築するためのフレームワークがない」という点です。GAEではPython、Java、Go、PHPといった言語が利用できますが、開発の際に基本的なWebアプリケーションフレームワークまで標準で用意されているのはPythonのみです。Javaで開発しようとすると、例によってJSPとサーブレットによる開発が待っていました。
現在は、多くのフレームワークがJavaにも用意されています。そうしたフレームワークを使えばいいじゃないか、と誰しも思うでしょう。が、GAEではデータベース関連にデータストアというGoogle独自の非SQLデータベースを使うため、多くのフレームワークはそのままでは動きません。Google Cloud SQLというサービスを利用すればMySQLを使うことができますが、これを利用するには料金がかかりますし、データベースの管理なども別に行わないといけません。何より、「せっかく無料でデータストアという強力なデータベースがあるのに、なんでわざわざ別にMySQLを用意しないといけないんだ?」と考えてしまいますね。
■だから、Slim3!
そこで、「だったらGAE専用のWebアプリケーションフレームワークを作ればいい」ということで開発されたのが「Slim3」です。Slim3は、JavaによるGAE開発のための専用フレームワークです。Javaのフレームワークは数多くあり、中にはGAEで使えるものもありますが、しかしGAEに向いていないものではいろいろと弊害もあります。その中でも最大の問題が「起動時間」でしょう。GAEを利用しているとわかりますが、GAEはアクセス不可の増減により、自動的にアプリケーションのインスタンスを起動したり終了させたりします。こうすることで自動的にスケールアップやスケールダウンを行い、「いきなりアクセスが集中してサイトがダウン」なんてことを防ぐのです。
が、多くのWebアプリケーションフレームワークは、起動に時間がかかります。例えばJavaの世界で広く使われているSpring MVCやPlay framework、Grailsなどは下手をすると起動に1分以上かかったりします。GAEは「アクセスして一定時間待たされると自動的に次のインスタンスを起動する」というようになってますから、こうしたものだと起動中に「まだアクスしない」とまた次のが起動される、そしてまた次が……などと次々起動することになってしまいます。
更には、GAEには30秒ルールがあり、「30秒たっても反応が返らないとサーブレットの起動がキャンセルされる」という仕組みになっています。となると、起動に1分かかるフレームワークは、そもそも起動すらできない(途中でキャンセルされる)可能性すらあります。
他にも、ホットリローディング(起動中にクラスなどを動的に更新する機能)とか、タイプセーフクエリ(必ず正しいクエリが記述し実行できる仕組み)なども用意されており、GAE開発者にやさしいMVCベースアプリの開発環境を提供してくれます。
Slim3は、以下のアドレスにて公開されています。ただし! ここから何かをダンロードする必要はありません。開発環境のEclipseさえあればSlim3開発の環境をすぐに整えることができます。
※Slim3のサイト(公式英語版)
https://sites.google.com/site/slim3appengine/
※日本語サイト(非公式)
https://sites.google.com/site/slim3documentja/
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※下はSlim3の公式サイト
※関連コンテンツ