Java EEの動向と最新機能

エンタープライズWebはどう進化してきたのか2009年12月に、企業向けJava規格である「Java Platform, Enterprise Edition」(Java EE)の最新バージョン「Java EE 6」の仕様が最終確定となりました。2006年5月に「Java EE 5」が確定してから3

原口 知子

2010年1月7日 20:00

エンタープライズWebはどう進化してきたのか

2009年12月に、企業向けJava規格である「Java Platform, Enterprise Edition」(Java EE)の最新バージョン「Java EE 6」の仕様が最終確定となりました。2006年5月に「Java EE 5」が確定してから3年半ぶりの新バージョンとなります。

Java EE 6を受けて、エンタープライズWeb開発は今後どうのように変わるのでしょうか。本連載では4回に亘って、エンタープライズWeb開発の動向を解説するとともに、米IBM(および日本アイ・ビー・エム)が提供するソリューションを紹介します。

1999年にエンタープライズWebアプリケーションの実行基盤として「J2EE」(Java 2 Platform, Enterprise Edition)が登場してから10年がたちましたが、この間、Webアプリケーションの開発手法も進化してきました。

開発生産性の向上には統合開発環境(IDE)やフレームワーク(ソフト部品群)の利用が重要ですが、J2EE初期のころから利用されてきたMVC(Model View Controller)モデルのフレームワークとして「Apache Struts」が挙げられます。画面遷移や入力項目の検証ロジックをフレームワークに任せることにより、開発者がビジネス・ロジックに集中できる、また、フレームワークの作法に従って開発することで品質が均一化されるというメリットがありました。

この後、MVCモデルやJ2EEデザイン・パターンを使用した開発が主流となりますが、ビジネス・ロジックを実装する役割であるEJB(Enterprise JavaBeans)はプログラミング・モデルが複雑で決め事が多く、クエリー言語にも制限が多いといった短所がありました。単体テストも容易ではなく、ポータビリティも低かったため、EJBは開発者に敬遠される傾向にありました。

オープンソース・フレームワークの台頭とJava EEの追随

2004年ごろからは、オープンソースのDIコンテナとO/Rマッピングのフレームワークが注目を集めるようになりました。

「Spring Framework」に代表されるDIコンテナの登場により、それまで密結合だったオブジェクト間の関係が疎結合化され、実行時にコンテナが依存性を注入(DI:Dependency Injection)することが可能になりました。仕様変更にも柔軟に対応できるだけでなく、単純なJavaオブジェクト(POJO:Plain Old Java Object)で実装することにより単体テストが容易になり、開発生産性が大幅に向上しました。

データベース接続手段として扱いが難しいエンティティBeanに対するアンチテーゼとしては、「Hibernate」などのO/Rマッピングのフレームワークが登場しました。O/Rマッピング(Object Relational Mapping)とはJavaオブジェクトとRDB(リレーショナル・データベース)をマップする機能であり、RDBに対する操作をフレームワークとして提供することで開発者の負荷を軽減します。こちらもPOJOで実装できるため、急速に広まっていきました。

Java自身の開発生産性を向上させる方法の1つとして、Java 5から登場したアノテーションも重要です。コードの中に「@」で始まる注釈(メタデータ)を入れることで、必要なコード量を削減することができます。SpringやHibernateにおいてもアノテーションを活用しています。

これらオープンソースの思想を取り入れて2006年に登場したJava EE 5は、開発容易性を最大のテーマに掲げ、EJB 3.0とJPA(Java Persistence API)にてアノテーションによる依存性注入とPOJOによる開発を可能としました。それまで必要だったデプロイメント記述子も必須ではなくなり、従来版のEJB 2.xと比べて開発生産性は向上しました。

「IBM WebSphere Application Server V7」(WAS)は、Java EE 5準拠のアプリケーション・サーバーであり、EJB 3やJPAを使った開発をサポートしますが、SpringやHibernateを使うことも可能です。これらのフレームワークの活用方法については、こちらの記事をご参照ください。

次ページからは、Java EE 6で新しくなった機能の詳細を解説します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30