スクリプト言語による軽量なWeb開発
シンプルでコンパクトなランタイム
Java EEベースのアプリケーション・サーバーは、トランザクションやメッセージングなど、エンタープライズ・アプリケーションに求められる機能を標準仕様として取り込んできました。この結果、現在のJava EEアプリケーション・サーバーは、いわゆる基幹系業務にも十分適用可能なほど強力になりましたが、その代償としてメモリやCPU、ディスクなどのリソースの消費量も大きくなっています。
しかし実際には、Java EEのフルスペックを要求するアプリケーションだけではなく、画面とデータベース・アクセス程度のシンプルなWebアプリケーションも多いのではないでしょうか。sMashはシンプルなWebアプリケーションを対象として、潔く機能を絞り込むことで、ランタイムのリソース消費量を必要最小限に抑えています。例えば、sMashは1サーバー・プロセスあたり100Mバイト程度のメモリがあれば十分動作します。
sMashのランタイムの特徴は、1アプリケーションごとに1サーバー・プロセス(=Java VM)を占有するというアーキテクチャーを採用していることです。これにより、アプリケーション間の干渉を防ぐとともに、マルチコア・プロセッサの環境でのスケーラビリティを確保しています。
sMashの使いどころ
すでに説明した通り、sMashはいわゆる「Web+DB」アプリケーションに対象を絞り込み、超軽量にチューニングされたアプリケーション・サーバーです。また、スクリプト言語によるアジャイル開発をサポートし、Ajaxを前提としたアーキテクチャーを採用していることから、以下のような用途で特に威力を発揮します。
- 短期開発、ないしは頻ぱんに変更が発生するWebアプリケーションの開発
- REST形式のWeb APIの開発、もしくは既存のアプリケーションのREST化
- エンタープライズにおけるスクリプト言語の活用、特にPHP技術者やPHP資産の活用
- 組み込みアプリケーション・サーバーとしての利用
また、sMashはJavaベースで構築されていることから、既存のJava資産やSOA資産(例えばSOAPベースのサービスなど)を容易に取り込むことが可能です。これらをスクリプト言語によって加工することで、手軽に既存資産を再利用することが可能となります。
さらに、sMashには「アセンブル・フロー・エディタ」というGUIベースのサーバーサイド・マッシュアップ・ツールが組み込まれていますので、既存資産や社外のWeb APIなどを柔軟に組み合わせて、簡単に新しいWeb APIを開発することができます。
今回は、エンタープライズWeb開発においてスクリプト言語がもたらすメリットを説明し、具体的なプラットフォームの例としてWebSphere sMashをご紹介しました。sMashの開発者版はProject Zeroから無償でダウンロードできますので、スクリプト言語による開発の軽快さを実際に体験してください。すでに世界中で136万人以上にダウンロードされています(2010年1月時点)。
次回は、インメモリ・データ・グリッドによる大量トランザクション処理(eXtreme Transaction Processing)について紹介します。