( ꒪⌓꒪) ゆるよろ日記

( ゚∀゚)o彡°オパーイ!オパーイ! ( ;゚皿゚)ノシΣ フィンギィィーーッ!!!

Javaでも気軽にWebサービス公開!!Java版Google App EngineとでもいうべきStAXで遊んでみる

はい、またまた遊んでみるシリーズです。
触るだけ触って深く掘り下げてないのは時間がないのと飽きっぽい性格だからですがまぁ気にしてません。


ってことで!!


Stax Networks」というPaaS(サービスとしてのプラットフォーム)の話です。
PaaSとは、プラットフォーム一式をサービスとして提供するビジネスモデルのこと。


クラウドコンピューティングとしてプラットフォーム(サーバ環境やDatabaseなど)をネットワーク経由で利用者に提供するサービスをいいますが、要はAmazon S3Google App Engineみたいなサービスのことです。


Java対応のGoogle App Engineとも言うべき「Stax Networks」ローンチ
PaaSとは (Platform as a Service) 用語解説 | Impress Innovation Lab.
Jungle Java - Stax Networks はJavaアプリ対応のPaaS


で、Google App Engineではpythonを開発言語としていますが、StAXではJavaが使えます!!


Javaが使えるレンサバも最近増えてますが、GAEでJavaが使えるとか考えるといろいろなところから汁があふれそうです。


LLにくらべてサービス提供におけるインフラ周りで敷居が高かったJavaですが、このようなサービスを利用することで、容易にちょろっと作ったWebサービスなんかを公開できるようになるかもです。


じゃじゃじゃじゃじゃじゃあ!!

StAXでこんにちわ世界するまでを、今回はご紹介しますよ、奥さん。

まずはアカウントを取得しましょう。

なにはなくともアカウント。
とらなきゃ何もできません。
今のところ無償なので、恐れずおびえずとってしまいましょう!!


StAXのトップページにいって、真ん中の灰色の「Apply for the Beta」ボタンをギャッと押しましょう。
気合いです。勢いが大事です。

f:id:yuroyoro:20081222135539p:image


Email入れて「Sign Up」しましょう。

f:id:yuroyoro:20081222135612p:image
f:id:yuroyoro:20081222135715p:image


しばらくするとメールが来ます。来るまでガマンです。ここはガマンです。

自分はメールが来るまで2日ほどかかりましたがとにかくガマンです。


届いたメールにはURLが書いてあるので、そこにアクセス!アクセスです。
ユーザ名とe-mail、パスワードを登録すれば、アカウントの作成は完了です。

f:id:yuroyoro:20081222135927p:image


これでアカウントがアクティベートされて、アプリケーションが作れるようになります。


やったね!!

SDKをインスコる

StAXには、コマンドラインでアプリケーションを作ったりデプロイしたりするSDKが提供されてますので、インストールしましょうね。


まずはStAXにログインします。すると、管理画面のトップにこれからどうすればいいか書いてあります。

f:id:yuroyoro:20081222140022p:image

SDKをインストールしる、とあるのでそのとおりにします。


Stax SDK」のリンクをクリックしてzipを落として、適当なとこに解凍します。
解凍したディレクトリは、環境変数STAX_HOMEに設定して、PATHも通しておきます。


これでSDKのインストールは終わり!

じゃあアプリケーションを作ってみる

アプリケーションは、SDKコマンドラインツールでも作成できますが、せっかくなのでWebからWizardを使って作成してみます。
StAXの管理画面にある「Stax Application Wizard 」リンクをクリックします。

f:id:yuroyoro:20081222140112p:image


こんな感じの画面が出てきますので、アプリケーション名を適当に入れます。
f:id:yuroyoro:20081222140144p:image

アプリケーションのテンプレートとしていろいろありますが、ここはWicketを選択します。
f:id:yuroyoro:20081222140244p:image

で「Create」ボタンを押すだけで、アプリケーションが作成されます。ブリリアント!!

f:id:yuroyoro:20081222140537p:image
f:id:yuroyoro:20081222140536p:image


作ったアプリケーションは、「Download」リンクから落とすこともできますが、ここはSDKのツールでダウンロードしてみます。
以下のコマンドで、ローカルPCに作成されたアプリケーションのソースファイル一式を取得することができます。

stax getapp -a [ユーザー名]/[アプリケーション名] -u [ユーザー名] -p [パスワード]


コマンドをうつと、ログがこんな感じで。

Downloading Stax SDK configuration from http://stax-downloads.s3.amazonaws.com/sdk/stax-sdk-config.xml
.
download completed
Preparing to download application...
Downloading..............................

できました!!

アプリのソースをいじってみる。

取得したファイルには、.classpathと.projectがあるので、そのままEclpseにインポートできます。

f:id:yuroyoro:20081222140404p:image


コンパイルエラーが出てますよ、オイ!!
.classpathに設定されてるwicketのバージョンとWEB-INF/libに入ってるバージョンが違うからですね。


プロジェクトを右クリックして[ビルドパス]→[ビルドパスの構成]で"ライブラリ"からWicket-1.3を除去して、Wicket-1.4-rc1.jarを追加すれば直ります。


とりあえず、HomePage.javaで"Hello World"メッセージを表示しているとこを日本語にしてみました。

ローカルで動かしてみる

StAXSDKコマンドで、ダウンロードしたプロジェクトディレクトリに移動して

stax run

これでhttp://localhost:8080でアプリケーションが起動します。
f:id:yuroyoro:20081222140616p:image
f:id:yuroyoro:20081222140657p:image

いざ、デプロイ!

じゃあ、作った(というより改造した)アプリケーションをサーバにデプロイしてみます。
デプロイは、SDKのコマンドから行うことができますよー。

stax deploy -u [ユーザー名] -p [パスワード]


ログが流れて、アプリケーションのデプロイが終わります。

dist:
      [war] Building war: /Users/ozaki/dev/Project/sandbox/stax-test/testapp-wicket/dist/webapp.war
      [jar] Building jar: /Users/ozaki/dev/Project/sandbox/stax-test/testapp-wicket/dist/stax-deploy.zip
      [zip] Building zip: /Users/ozaki/dev/Project/sandbox/stax-test/testapp-wicket/dist/stax-src.zip
uploading application to: www.stax.net
application package size: 2MB
2008/12/22 12:37:53 com.staxnet.ant.Deployer deploy
情報: Deploying application: testapp-wicket (environment: deploy,prod)
........................uploaded 25%
........................uploaded 50%
........................uploaded 75%
........................upload completed
deploying application to server(s)...
2008/12/22 12:38:21 org.apache.commons.httpclient.HttpMethodBase getResponseBody
警告: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended.
2008/12/22 12:38:21 com.staxnet.ant.RemoteDeployer invokeDeploy
情報: Deploy complete, response=<?xml version="1.0" encoding="UTF-8"?>
<updateApplicationResult>
  <id>yuroyoro/testapp-wicket</id>
  <url>http://testapp-wicket.yuroyoro.staxapps.net</url>
</updateApplicationResult>


ログの最後に、アプリケーションが配備されているURLが出力されています。
ここにアクセスして、デプロイしたアプリケーションを確認しましょう。

f:id:yuroyoro:20081222141749p:image



おおおおおお!!ちゃんと動いてますね!!

その他

ネットワーク帯域やメモリ、CPU使用率が確認できたり、独自ドメインが利用できたり、公開する範囲を設定できたり、クラスタをくんだりと
いろいろできそうです。


まだ調べてませんが、DatabaseもMySQLが使用できるみたいです。

f:id:yuroyoro:20081222140742p:image


Webサービスのインフラとして、充分なスペックを備えていると思います。

今のところは無償なので、バッキバキに使い倒すのがいいかもしれません。