プレゼンテーション層におけるJavaEEの歴史

前頁に続き、サーバーサイドJavaであるJavaEEのプレゼンテーション層の歴史について説明します。

プレゼンテーション層の歴史2

図中黄色部分は、でJavaEEの歴史の転換点となる事項を示します。

サーバーサイトJavaの開拓期(1999年⁓2000年)

J2EE1.2及びTomcat3.0系がリリースされた1999年12月末からStruts1.0が誕生した2000年4月までのJ2EEの歩みについて記述します。

J2EE1.2が1999年12月末にリリースされた当時は、プレゼンテーション層のフレームワークは、 各企業がServletAPI,JspAPI,Apacheソフトウェア財団の各種ライブラリを利用して独自に構築していた時代です。

そのため、プレゼンテーション層のアーキテクチャは、それぞれの企業でバラバラな状態で、 そのノウハウと技術に関する情報は各企業内で閉じられていました。 結果、共通化しやすいJ2SE,J2EEを利用しているにも関わらず、 同時期に似たような部品、似たようなフレームワークを日本国内でそれぞれの企業が製造していました。

そんな中2000年4月Apacheソフトウェア財団からStruts1.0がオープンソースで公開されました。
Sturts1.0は瞬く間にサーバーサイドJavaのフレームワークとして当時のトレンドとなりました。

現在のStruts2.0系、Struts1.0系の日本国内における市場評価は、セキュリティホールの多さから 開発現場では禁句になっています。

ただし、歴史的事実としてStrutsがサーバーサイドJavaの発展に貢献したのは事実です。

  • 混沌としたServlet/JSPの開発からある一定の役割に分割でき品質が向上
  • 利用と製造の分離(ある機能を利用し、無い機能を実装)
  • オープンソースの幕開け
  • 独自開発から世界、日本共通の部品化(フレームワーク)

サービス層開拓期(2000年⁓2003年)

Struts1系のアーキテクチャ図

普及されてからStruts1.x系が利用されていた頃まで、凡そ上記のような使われ方をしていました。 Actionクラスのexecuteメソッドにガリガリ、ビジネスロジック、データアクセス、トランザクションの個別実装をしていた時代です。

2001年hibernateが誕生し、2003年にhibernate2がリリースされました。同時期の2001年に iBatis(現MyBatis)も誕生しています。ORM(Object-relational mapping)の開拓期です。

Struts1系とORMアーキテクチャ図

Struts1.0系のみで構成されたほぼ1階層のアーキテクチャから、 少なくともプレンゼンテーション層とデータ層はこれにより分離できるようになりました。

2000年~2003年に掛けてサーバーサイドJavaはあらゆるシステム開発で利用され、 システム開発の規模も基幹業務システムなど大規模に適用されてきます。 2階層では、ドメイン別(情報の分類分け)にビジネスロジックを整理整頓する事が大変厳しい事を サーバーサイドJavaを経験した多くの方が感じていました。

そして、J2EE(現JavaEE)の暗黒時期を作ったEnterprise JavaBeans (EJB)が、1999年12月12日にJ2EE1.2とリリースされました。 DIコンテナであるSpringフレームワークができるまでの期間サーバーサイドJavaの人気を一時的に他言語に譲った時期でした。