Java2 Enterprise Editionの基礎知識

J2EEとデスクトップ用のJavaの環境とはどこが違うのですか?

テンアートニ 中越智哉
2000/12/7


 Javaのバージョンが、Java2となり、いくつかのエディションが登場したことは皆さんもご存じでしょう。現在Javaのエディションには以下のようなものがあります。

  • Java 2 Standard Edition(J2SE)
  • Java 2 Enterprise Edition(J2EE)
  • Java 2 Micro Edition(J2ME)

 J2SEは、われわれがJDKといって思い浮かべるイメージにいちばん近いもので、いわばJDK 1.1の純粋なバージョンアップといえます。つまり、通常のPCなどのデスクトップ上で利用するJavaです。J2MEは、最近注目度が高まっている組み込み系デバイス(携帯電話やPDAなど)で動作するJavaの規格です。

 JDK 1.1ベースを知る人なら、J2EEもなんらかのAPI群とその開発、実行環境であると想像するでしょう。その想像は間違っていません。ただ、J2EEはJ2SEとまったく異なるAPIやVMを搭載しているというわけではなく、J2EEのベースはあくまでJ2SEです。

J2EEのJavaVMはJ2SEと同じです。J2EEでは、J2SEをベースにサーバサイドのソリューションに必要なAPIが付加されています

 J2SEの上にエンタープライズ向けの各種APIや仕様などをセットにしたものが、J2EEであるわけです(ちなみに、J2MEのVMは組み込み用に最適化されています)。例えば、J2EEに含まれるAPIには、

  • Java Servlet
  • Java Server Pages
  • JDBC

といったような、J2EE登場前からすでになじみのあるAPIも含まれていますし、

  • Enterprise JavaBeans
  • JNDI(Java Naming and Directory Interface)
  • JMS(Java Message Service)
  • JTA(Java Transaction API)
  • JavaMail

などの、これから使用されるようになるであろう、エンタープライズ向けのAPIも含まれています(また、J2SE、J2EEにはJavaの実行速度を高速化するHotSpot VMが標準で含まれています)。

 これらは、それぞれが独立したAPIとしてアップデートが行われているものばかりであり、それぞれが個別にバージョン管理されています。つまり、J2EEの中だけで独自に規定されているAPIはないといってよいでしょう。だとすると、わざわざこれらをひとまとめにすることにどんな意味があるのでしょう?

 これら、エンタープライズに必須のAPIをひとまとめにし、J2EEという枠組みを作ることによって、サーバサイドアプリケーションのポータビリティを確保し、アプリケーション・サーバ製品のベンダ依存性から、開発者を解放することが可能となります。つまり、J2EE規格に準拠した製品を用いることで、アプリケーション・サーバ製品が変わっても、アプリケーションの変更を行わずに済み、共通の動作環境が提供されることで、EJBなどコンポーネントの再利用もより促進されることが期待できるのです。

 また、J2EEでは、Reference Implementationという、お手本となる動作環境を提供したり、Blueprintというアプリケーションモデルのサンプルを示したりして、標準化をより進めるための環境がそろっているのも特徴の1つといえます。

[関連URL]
http://java.sun.com/products/OV_enterpriseProduct.html


「Java Solution FAQ」



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間