seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

Cassiniを知る

Windows XP Homeでウェブアプリ

 ここ数年でJAVAもしくはDotNETでのウェブアプリという方向性が浸透していた、ということを実感。
 J2EEしかやってなかったからDotNETがどのくらい使われているのか、いまいちわからなかったのだが、思っていたよりも使われているようだ。

 仕事とはべつに、ちょっとしたウェブアプリを作りたいと思っているのだが、J2EEの機能のうちウェブサーバしか提供していないTOMCATでは力不足で、JBossは再配布がめんどくさいし、でかすぎる。
 Sun Java System Application Server 9 Platform Editionはセットアップもデプロイメントも簡単で、この中では、もっとも最適な解に近いと思う。
 しかし、SJSAS9PEをもってしても、デフォルトで起動するデータベースサーバがない。JAVAで軽量で無料のデータベースとしてはApache DerbyやHSQLDBがあるが、アプリケーションサーバの起動と同時に立ち上がるようにするには少し手間がいる。
 そして、なにより、これらのサーバ類を立ち上げている間、そのマシンの物理メモリの100MBぐらいは軽く仮想マシンが占有してしまう。

 本当にサーバ機に入れるのならば何を気にすることもないのだが、入れたいのは一般人が使うWindows XP Homeのようなマシン。使うときだけJ2EEサーバを立ち上げて、使い終わったらJ2EEサーバをシャットダウンして…、って、かなりめんどくさくてユーザフレンドリじゃない。

Windows XP Home + ASP.NETでウェブアプリ

 なるほど、ASP.NETなら仮想マシンに食われるメモリの心配もしないていいし、試した限りでは不活性状態のDotNETアプリは物理メモリをほとんど食わない。
 …と思ったら、よくよく考えてみると、Windows XP HomeにはIISがインストールできない。

 ちょっと検索すると、
 http://www.15seconds.com/issue/020118.htm
 てな記事があって、homeにiisを入れるためにpro版であることを偽装する方法があるようだが、proのライセンスがない場合には非合法だ。

 しかし、VS2005にはmini-IISのようなものがついていて、実はWindowsXP Home Edition上でASP.NETの開発ができるようになっている。もともとASP.NETの構造は従来のASPのようにIISにディペンドしているものではなく、ウェブサーバへのリクエストをASP.NETのインフラに接続する仕組みになっていて、たとえば、SessionやApplicationCacheなどもASP.NETフレームワーク側がもっている。当初よりIISに依存しないつくりである。実際に、ApacheASP.NETを接続するためのmodが開発されているらしい。
 まあ…、UnixASP.NETの意味があるのかわからないが、Windows 2003 ServerでApache + ASP.NETの意味は限りなくゼロだろう。
 しかし、Windows XP Home + Apache + ASP.NET、というのならば話は別だ。それも、アリかもしれない。

 …だが、こんな記事もみつけた。

http://msdn.microsoft.com/msdnmag/issues/04/12/ServiceStation/default.aspx

 なんだか、よくわからないが、ASP.NETのインフラに接続するために必要なことは、ほんとうに少ないらしい。
 Apacheである必要性がない。

 さらに調べてみたら、VS2005が使っているmini-IISのような機能は、サンプルサーバのCassiniと呼ばれるもので、ASP.NETのサイトで、マイクロソフトが以前から提供しているものらしい。これはサービスとして起動するわけでもなく、配置できるアプリケーションも1つだけのシンプルで単純なサンプル・ウェブサーバである。

 そして、それをベースに、再配布、アプリケーションの配備を簡単にし、複数のアプリケーションのデプロイとサービスとしての起動を可能にしたフリーのサーバがあるらしい。
 UltiDevCassiniWebServerというものである。

http://www.ultidev.com/Products/Cassini/CassiniDevGuide.htm

 おお、これは大本命かもしれない。

 データベースサーバはSQLServer2005Express Editionを使えばいいし、ウェブサーバも、これでセットアップできるのならば、ASP.NETで開発してもXP Homeの心配はしなくてすみそうだ。

 おまけにSQLServer2005もASP.NETも不活性状態であれば物理メモリに与えるインパクトは少ない。OracleJ2EEのようなサーバ・アプリがメモリを占有できるリッチなマシンでなくてもいい。他のアプリケーションに与える影響も少なく、一般コンシューマのマシンにもウェブベースのアプリケーションを配布できる感じなっている気がする。

 ちょっと調べてみるかな。

(追伸) 普通に問題なく動いたし、簡単にデプロイできました。あとは、再配布用のセットアップを、どう作るか、ですかね…。