Part2では,エンタープライズ・アプリケーションの代表的なプラットフォームとしてJava,.NET Framework,スクリプト言語(PHP/Ruby/Perl)の三つを取り上げ,それぞれのフレームワークを具体的に紹介していきます。なお,Part1ではフレームワークの定義を「制御の反転(IoC)を利用して設計レベルの再利用をしているクラスの集まり」と説明しました。しかし現実には,フレームワークという言葉がもっとゆるい意味で使われることも多く,設計の再利用が見られないものにフレームワークという名前が付けられたり,逆にIoCの性質がありフレームワークと言えるものを単にライブラリやツールキットと呼称していることもあります。Part2では,Part1の厳密な定義に従い,IoCの性質が見られるものをフレームワークとして取り上げることにします。

 Part2では個別のフレームワークについて概説します。現在主流のプラットフォームには,Java,.NET Framework,スクリプト言語環境があります。

 エンタープライズ・アプリケーション開発の定番は,やはりなんといってもJavaです。強い型付けやセキュリティといったJava言語そのものの信頼性のほか,オペレーティング・システム(OS)を自由に選べること,Java EE(Enterprise Edition)を中心に強力なミドルウエア,フレームワーク,開発環境がそろっていることが人気の理由です。基幹系など大規模アプリケーションでの採用実績が豊富なため,ノウハウの蓄積や技術者の多さといった面で,他のプラットフォームをリードしています。

 .NETも,採用実績ではまだJavaには劣るものの,エンタープライズ・アプリケーション開発では有力な選択肢の一つです。プラットフォームがWindowsに縛られてしまうという制約はありますが,Visual BasicやC#など言語を自由に選べる点や,オールインワン・パッケージとして各技術と統合開発環境とが密に連携されており,高い生産性を期待できる点などが大きな魅力です。

 一方で,小規模ながら開発スピードを求められるECサイトを中心に,PHP/Ruby/PerlなどのいわゆるLL(Lightweight Language)系と呼ばれるスクリプト言語も,昨今では急速に人気を集めています。スクリプト言語の魅力は言語構文がシンプルで,プログラミングが容易なこと,Webアプリケーションとの親和性が高い点などが挙げられます。

 三つのプラットフォームの特徴をまとめると,以下のようになるでしょう。なお,これはあくまで筆者の主観に基づいた評価であることを,あらかじめお断りしておきます(表1)。

表1●各プラットフォームの特徴
表1●各プラットフォームの特徴
[画像のクリックで拡大表示]

 このように,どのプラットフォームにも一長一短があり,どれがもっとも優れているかを性急に結論付けることはできません。構築すべきアプリケーションの規模や非機能的要求,予算,チームのスキル,開発体制,先行資産など,開発プロジェクトをとりまく種々の条件に応じて,最適な選択肢は変わるためです。

 大切なことは,各プラットフォームの特徴を知り,開発プロジェクトごとに適切な選択を行えるようにすることです。本稿では,フレームワークの観点からプラットフォームを横断します。

オープンソース・フレームワークの幅広い選択肢を有する「Java」

 競合となる.NETと比べた場合のJavaの特徴は,開発/実行環境がオープンソースのコミュニティや各種ベンダーから多く提供されており,幅広い選択肢をもつことです。米Sun Microsystemsは言語仕様やフレームワークの標準策定を主に行い,実装の提供については市場の自由な競争に任せています。こうしたオープンなスタンスは,Java 6からJava言語そのものがオープンソース化されたことにも表れています。Javaの開発/実行環境は,図1の通りです。

図1●Javaの開発/実行環境
図1●Javaの開発/実行環境

 Java標準では,プラットフォームの汎用的な基盤を提供するJava SE(Standard Edition)と,エンタープライズ・アプリケーションに必須の技術を追加したJava EE(Enterprise Edition)の二つのエディションがあります。オープンソースのフレームワークやJavaアプリケーションは,このJava SE(とJava EE)の上に構築されます。

 JavaのOS非依存という特徴を実現するのが,SEに含まれるJava仮想マシン(JVM,Java Virtual Machine)です。Javaプログラムは直接OSネイティブな実行コードにコンパイルされるのではなく,JVM上で動作するバイトコードと呼ばれる中間言語にコンパイルされます。JVMがOSごとの環境の違いを吸収し,どのOS上でも同じ実行環境を提供するため,JavaプログラムはOSに依存せずに実行することができるわけです。

 Javaの統合開発環境(IDE)は,オープンソースのEclipseが最もよく使われています。Eclipseの特徴は,Javaで構築されているにもかかわらずOSネイティブなGUIであること,強力なコードのリファクタリング機能をもつこと,プラグインの仕組みが充実しておりベンダーが提供する豊富なプラグインで自由に機能拡張が行えること,などです。統合開発環境としては,他にSunがオープンソース・ソフトウエアとして提供しているNetBeansなどもあります。