3カ月にわたって,Java SE 6のソフトウエア管理に関する機能を紹介してきました。
Java EEではJ2EE 1.4から,Java SEではJ2SE 5.0からソフトウエア管理の機能が取り入れられてきました。バージョンを重ねるごとにその重要性は高まっています。
この背景には二つの要因があるのではないかと筆者は考えています。
- コンピュータの性能が向上し,それほどパフォーマンスが問題にならなくなってきた
- Javaを使用した大規模システムが一般化した
もちろん,個々のシステムではパフォーマンスの問題があることはわかっています。それでも,以前に比べると,パフォーマンスの問題がそれほど深刻ではなくなってきたのではないかと思うのです。ゴリゴリにチューニングするよりは,CPUをより高速なものに変えてしまうスケールアップなどで解決できてしまう場合も多くあります。
こうなると,処理とは関係のない余分な処理が少しぐらい走っていても,許されるような下地ができてきたのではないでしょうか。余ったCPUパワーを管理のための処理に割り当てられるようになったということです。
もちろん,プロファイラのように重い処理を常に走らせておくことはできません。しかし,JMXやMXBean程度であれば,それほど問題視されなくなってきていると思います。
もう一つのポイントが,大規模システムにJavaが使われているということです。
個人用の小さなプログラムでは,管理の必要はほとんどありません。しかし,重厚長大なシステム,24/7/365で動作し続けるシステムとなれば,話は別です。
正常に動作しているか,不穏な動きはないかなど,常に注意を払っていなければなりません。
また,コンポーネントの管理(デプロイやアンデプロイなど)もJMXを使って行われることが多くなりました。
Javaで作られたシステムは,幸か不幸かすべてJava VMの上で動作します。Java VMのレベルでJMXやMXBeanのような機能が組み込まれれば,その上で動作するシステムを全く変更しなくても,すぐに管理を行うことが可能です。
また,最近のアプリケーション・サーバーはJMXを重要なキーコンポーネントとして扱っています。例えば,GenonimoではMBeanを独自に拡張したGBeanを用いてコンポーネントの管理を行っています。
さらに,ソフトウエアの管理は,単なる管理・監視を超えて,今後は診断が一つのキーとなるのではないかと筆者は考えています。
取り上げなかった機能
ところで,ソフトウエアの管理や保守に関係する新機能で取り上げなかったものがあります。
DTrace for Javaという機能です。
DTraceはSolaris 10で導入された機能で,カーネルやアプリケーションのトレースを可能にする機能です。DTraceにはプローブと呼ばれる,いわばデバッガのブレークポイントのようなものが設定されています。
例えば,システムコールやファイルの入出力などのプローブがあり,その数は3万以上になります。実際にシステムコールがコールされると,プローブから情報を取得でき,それをパフォーマンス・チューニングやデバッグに利用できます。
使用するプローブやどのような情報を取得するかなどは,C言語に似た「Dスクリプト」と呼ばれる言語で記述します。
Java SE 6では,DTraceでJavaもカーネルなどと一緒にトレースできるようになりました。
なぜこの連載でDTraceを取り上げなかったかというと,筆者がまだDTraceを使いこなしていないということに尽きます。すいません。
ただ残念なことに,DTraceはSolarisでしか使用できません。様々なプラットフォームで使えると筆者としてもうれしいのですが,それは難しいでしょうね。
さて,来月からは2006年12月11日にようやく正式リリースされたJava SE 6の新機能の中で,Ease of Development(EoD)に関するものを取り上げていきます。お楽しみに。
著者紹介 櫻庭祐一 横河電機 ネットワーク開発センタ所属。Java in the Box 主筆 今月の櫻庭 この時期になると何となく気になるのが,クリスマス。 実をいうと,櫻庭はクリスマスCDのコレクターなのです。数えたことがないので正確な枚数はわからないのですが,優に100枚はあるはず。 今年もDaryl Hall & John OatsやAimee Mannなどのクリスマスアルバムが発売されています。ということで,今年のクリスマスアルバムの櫻庭のお薦めは...
いかがですか。なお,これを書いている時点では,James TaylorやBlackmore's Nightなど,聴いていないアルバムもあるので,お薦めが入れ替わる可能性はありますが,参考になればと思います。 |