TOPJavaチャンネルJavaの開発の下地を確認するために
Java人気過去記事一覧
Java人気過去記事一覧

第1回:Javaの深い味わいを楽しむ

2007/8/3
前のページ  1  2

Javaの開発の下地を確認するために

   Javaはこれまで、さまざまなところで取り上げられているのだが、最近はRubyやPythonなどに人気が集まっている。しかしサーバサイドにおける基幹系・金融系などの業務システムに欠かせない言語となっていることも忘れてはならない。

   そこで改めてJavaを理解するためにも、これまでThinkITで掲載された人気連載記事を分類しながら、もう一度Javaの魅力を紹介していこう。
Java技術をマスターする秘訣
Javaからコーディングの基本を知る
J2EEやJBossを知る
徹底比較シリーズ


徹底比較シリーズ

   Javaの開発を進めていく時に気になるのが、他の言語や環境との比較だろう。

   これまでもThinkITの連載では、PHPとJavaのパフォーマンスやフレームワークの比較などの記事を掲載している。このようなテスト結果を基にした考察記事は、実際の開発の際に参考になるので、ぜひじっくり読んで欲しい。

徹底比較!! PHP & Java 徹底比較!! PHP & Java
第2回:PHP4とJavaのパフォーマンス比較
著者:ワイズノット  土橋 芳孝

5,000までの素数をWebブラウザに表示するテスト

   まずは、演算処理の実行速度を検証してみたいと思います。演算処理の実行速度を比較するプログラムとして5,000までの素数をWebブラウザに表示するプログラムを用意しました。プログラムを実行してから終了するまでの秒数を表示することで、演算処理における実行速度の比較を行います。

   結果は以上のとおりです。演算処理においてPHP4はJavaと比較して約32分の1の実行速度しかないという結果となりました。上記プログラムによって5,000までの素数を算出すると12,502,499回の繰り返し処理を行うことになりますが、1秒あたりの繰り返し処理数に換算するとPHP4で約850,510回/秒、Javaでは約2,7179,346回/秒となります。Webアプリケーションにおける演算処理の実行速度では圧倒的にJavaが有利なようです。

5000までの素数を画面に表示するテスト

   PHPはJavaと同様、バッチ処理としても動作しますので、5,000までの素数を求めるプログラムの実行速度をバッチ処理としても比較しました。ソースコードと検証結果は下記をご覧ください。バッチ処理でもWebアプリケーションとほぼ同様の結果となりました。PHP4の実行速度はJavaの実行速度と比較して約30分の1ということになります。1秒あたりの繰り返し処理数に換算するとPHP4で約844,764回/秒、Javaでは25,004,998回/秒となります。

   Webアプリケーションにおいても、バッチ処理においても、PHP4の演算処理速度は、Javaの30分の1以下という結果となりました。このような結果となった原因は、やはりZendエンジンにあると筆者は考えています。JDK 1.4のJVMと比較して、PHP4のZendエンジンには、CPUリソースを有効に活用するための改良の余地が、まだまだ残されているということではないでしょうか。

徹底比較!! PHP & Java 〜 フレームワーク編 徹底比較!! PHP & Java 〜 フレームワーク編
第2回:StrutsとMojaviのしくみを見てみよう
著者:ワイズノット  土橋 芳孝

Strutsのしくみ

   さて、ここからはJavaによるWebアプリケーション開発において、もはや定番のWebアプリケーション・フレームワークとなっているStrutsのしくみを見ていきましょう。本連載では下記のソフトウェア構成を前提としてStrutsを検証していきます。Strutsは数多くのコンポーネントから構成されています。その中でも主なものを取り上げて、以下に解説します。

ActionServlet

   Strutsを利用したWebアプリケーションでは、このActionServletが唯一のServletとなります。ActionServletはコントローラにあたるコンポーネントで、すべてのリクエストはこのActionServletが窓口となって受け付けます。ActionServletの役割は、Webアプリケーションの初期化と、受け取ったリクエストに応じて適切なRequestProcessorに処理を渡すことです。

Javaアプリケーションサーバのクラスタリング機能比較 Javaアプリケーションサーバのクラスタリング機能比較
第1回:Tomcatによるクラスタリングの実現
著者:サンモアテック  小林 俊哉

Tomcatのクラスタリング概要

   本連載の第1回はTomcatのクラスタリングについて概要を説明し、第2回でその実践を解説します。Tomcatで実現するクラスタリングとしてはロードバランス、フェイルオーバー、ファーミングがあります。ロードバランスとフェイルオーバーについては先ほど説明しましたが、ここで新たにファーミングという要素がでてきています。ファーミングとは、一度デプロイ/アンデプロイ作業を行えばクラスタサーバ全体にデプロイ/アンデプロイが反映されることで、簡便な運用を実現する機能です。

ファーミング

   クラスタシステムを運用していく際の各サーバへのデプロイ作業を軽減するために、1つのサーバにアプリケーションをデプロイ/アンデプロイするだけでクラスタ内の全サーバにデプロイ/アンデプロイが反映される、という仕組みをファーミングと呼んでいます。

   先ほどのフェイルオーバーの項の図3で出てきた「Deployer」要素の属性であるwatchEnabledをtrueに設定すると、Tomcatは同じく「Deployer」要素の属性のwatchDirに指定したディレクトリを監視し、新しくwarファイルが追加されたときにクラスタ内へのファーミングを実行します。

   ファーミングはその時に起動しているクラスタサーバに対してのみデプロイ/アンデプロイが実行されます。ダウンしていたサーバの再起動時などにデプロイの反映は行われないということには注意が必要です。

前のページ  1  2