Java EEについて

私の以前知っていた人が、Java EE関連の会社を設立したらしいと聞いて

J2EEってどこからどこまでをさすのだろう

なんかEJBのCMPとか経験ないと人間じゃない、いやJ2EE経験者って自分は名乗っちゃいけないのかなんて
twitter.com

恥ずかしい話ですが、実は、Java EE (J2EE)ってなんだか、適当にしか分かってないのです。第一、今はJava EEという名前に変わっているし、その名を冠した、例の青い分厚い本も出ているのだけど、Twitterできしださんに教えてもらうまで、名前の変更もはっきり自覚してませんでした。

そこで、Java EEとは何なのか、自分なりに分かってないところをおさらいします。

勉強ねたの原典は下のURLです。ちゃんとしたことは原典にあるので、ここではメモを書いてゆきます
http://java.sun.com/javaee/overview/faq/javaee_faq.jsp#javaee

Java EEって?J2EEとの関係は?

昔は、「Java 2のEEの1.4」→J2EE 1.4、みたいな命名法だったけど、2をやめてシンプルに「Java EEの5」ってした。だから、今は「Java EE (5)」というのが正しい。

Java EE 5 compliantと名乗るためには、何が必要?

仕様書
http://jcp.org/aboutJava/communityprocess/final/jsr244/index.html
ぱらっと見ただけだと、Applet Container, Application Client Container, Web Container, EJB Containerとあるが、これら全てをサポートしなければならないのかどうか?
→EE.2.9を見るとThis specification describes a minimum set of facilities that all Java EE products must provide.とある。とするとこの仕様書に載っているのはoptionalとでも書いてない限りすべてサポートしてるってことか。

Java EEと以前のJ2EEとの互換性は?今どの版を使えばいいの?

上記URLでは次のように言及されてる。

  • 2006年末にAPサーバベンダがJava EE 5準拠製品を出す予定 [当時]
  • J2EE 1.4は、[当時] 色んな実装が存在していた
  • J2EE 1.3はもう使わないで、新しい版に移行しろとのこと。

新版は、旧版の上位互換なので、旧版で作ったものは新版で動く。