Java2 Enterprise Editionの基礎知識 |
|
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」 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|