Archive for 4月, 2009

JavaSE6 と GlassFish で JSP の高速コンパイル



皆様、JSR-199 (Java Compiler API)をご存知でしょうか?



Java SE 6 で拡張された機能の一つなのですが、この API を

利用すると、Java のプログラム中から Java のソースコードを

コンパイルできるようになります。

一見すると、この機能と GlassFish どのような関連があるの?

と思われる方もいらっしゃるかと思いますが、JSR-199 に対応した

JSP コンパイラが GlassFish 上で実装されています。



そこで、JSP/JSF 等のコンパイルが非常に高速になります。

(一説によると3.5倍〜10倍早いとか)

今までは、JSP をコンパイルした後、Servletコードをファイルに

出力してロードしてとアプリケーションの起動までに結構時間が掛かった

りしましたが、GlassFish ではファイルに書き出さず直接メモり上で

コンパイル等の動作を行うことができます。



ですので、

GlassFish は Java SE 6 で動かすことをおすすめ致します。Java SE 5 を

ご使用中の方は、バージョンを変更したい場合、下記のファイルを修正し

変更してください。





# vi glassfish-v2.1/config/asenv.conf

AS_JAVA=”/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home”




また、開発者の方は、上の説明でではコンパイルされたコードを

見たい場合はどうすればいいのだろう?と思う方もいらっしゃると思います。

NetBeans をご使用されている方は、Web のプロジェクトを作成した際に

デフォルトでソースコードが出力される設定が追加されています。



具体的には、プロジェクト中の設定ファイル(sun-web.xml) に

下記の行が追加されています。





<jsp-config>

<property name=”keepgenerated” value=”true”>

<description>Keep a copy of the generated servlet class’ java code.</description>

</property>

</jsp-config>




開発者の方はこれを消していただくことで、Java のコードは出力されなくなり

全てメモり上で作業が行われますので下記を消して再度配備してみてください。

逆に言うならば、NetBeans 等をご利用されていない場合は、上記のコードを

記載していない場合、Java のコードは出力されませんのでご注意ください。





ちなみに、Java のソースコードの出力先は下記になります。




glassfish-v2.1/domains/domain2/generated/jsp/j2ee-modules/APPLI_NAME/org/apache/jsp




効果の程は、是非皆様ご自身の手で試してみてください。



参考資料の抜粋:


http://blogs.sun.com/kchung/entry/speed_up_jsp_compilations_with





The performance gain for using JSR1 199 API is amazing! Preliminary measurement shows an order of magnitude improvement in raw Javac compilation speed, and a 3.5X improvement in overall execution when running JSP TCK tests!





https://glassfish.dev.java.net/ja/public/WP_GlassFish_Overview.pdf





GlassFish のもう 1 つの注目すべき変更点は、Java コンパイラの Jasper が Java SE 6
のコンパイラ API (JSR-199) を利用できるようになり、ファイル IO の回避とコンパ
イル速度の大幅な向上 (非公式の計測では約 10 倍の高速化) が実現されたことで
す。JSR-199 を使用する場合ほど高速ではありませんが、Eclipse JDT コンパイラを
使用するように Jasper を構成することもできます。残念なことに今は手元にベン
チマーク結果がないのですが、JSF 実装も大幅に改善されました。




2009年4月10日 at 2:18 AM

週末の散歩シリーズ



今週末は中目黒、芝公園辺りを散歩してきました。












2009年4月6日 at 1:45 AM

GlassFish v3 のスケジュール公開



GlassFish v3 のスケジュールがドラフトとして公開されたようです。



GlassFish v3 リリーススケジュール


ここ最近の私のプレゼンを聞いてくださった方にはリリースが遅れるかもしれない

ことを伝えておりましたが、上記でスケジュールドラフトが公開されたようです。



当初、GlassFish v3 は今年の JavaOne でリリース予定でした。

しかし Java EE 6 の仕様策定が今年までずれ込んだため

(本来は仕様は昨年末に FIX 予定でした)

Java EE 6 の参照実装である GlassFish v3 の開発スケジュールもリスケされ、

結果として今年の秋のリリースとなる予定です。



GlassFish v3.0 は Java EE 6 の参照実装を公開するという意味合いが強く、

エンタープライズ環境で必要なクラスタなどの管理機能が

含まれていません。

そこで、GlassFish v3.0 は開発者の皆様が Java EE 6 の開発に

なじんで頂くための製品としてとらえて頂ければと思います。



エンタープライズ環境でクラスタ等の機能が利用できるように

なるのは GlassFish v3.1 になってからになります。

GlassFish v3.1 のリリースは恐らく2010年以降になるかと思いますので

それまでは、現在の GlassFish v2.1 を本番環境でご使用頂ければと思います。



また、既存の GlassFish v2 のユーザには一つだけ残念なお知らせがあります。

GlassFish v3 は新しいアーキテクチャ(OSGi対応)となるために、

既存の GlassFish v2.x ユーザはアップグレード時に少しだけ

手間を掛けていただく必要があります。(2009年4月時点の方針)



今まで、Sun のアプリケーションサーバ (Sun Java System Application Server )を

使って頂いていた方は、GlassFish Enterprise Server のインストール時に既存の

インストールパスを指定すれば既存の、アプリケーションや設定等をそのまま自動的に

アップグレードしGlassFish 環境で動作させることが可能でしたが、GlassFish v2 から

GlassFish v3へはインストール時にそのような自動アップグレード機能が存在しません。



GlassFish v2 から GlassFish v3 へは手動で設定してアップデートしていただくか、

もしくはかんたんにアップデートできるようなツールが用意されるかと思いますが、

今までよりもインストール時のアップグレードに対して若干手間が掛かってしまいます。

アーキテクチャの大幅な変更のため、どうぞご理解頂ければと思います。

(まだ、開発中の製品ですので今後方針が変わる可能性もあります。

 また、もちろん新規構築のシステムであればインストールや導入も非常にかんたんです。)



しかし、そのような手間が掛かったとしても、GlassFish v3 になると OSGi 対応、

モジュール化の恩恵が多いに受けられると思いますので、どうぞ楽しみにしてください。



GlassFish v3 は Java EE 6 の参照実装として位置づけられた製品ですが、

Java EE を動かすためだけのサーバではありません。

JRuby がネィティブで動作したり、EJB が必要なければ使わなくてもすむというような

ユーザのニーズに柔軟にこたえることができる、サーバに生まれ変わります。

(起動時間もたった数秒です。)



今まで、アプリケーションサーバは重たいし EJB が必要ないから Tomcat で十分と

思っていらっしゃる方も多いかと思います。

GlassFish v3 はアプリケーションサーバの常識が変わります。

是非、GlassFish v3 に期待していてください。


2009年4月2日 at 7:37 PM

新しい投稿


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2009年4月
« 3月   5月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

カテゴリー

Twitter

clustermap

ブログ統計情報

  • 1,172,846 hits

RSSフィード

アーカイブ