Ces services sont uniquement décrits par Sun. On dit parfois, et c'est équivalent, que J2EE est une spécification.
Ainsi, chacun peut proposer son implémentation J2EE, c'est à dire les outils concrets implémentant les spécificaions de Sun.
Pour (essayer de) clarifier, Sun décrit comment on accède en Java à un service X, et toute plateforme qui voudra être estampillée J2EE proposera le service X mais surtout, l'accès à ce service devra être fait selon les recommandations émises par Sun.

Quels sont exactement les services spécifiés par Sun concernant J2EE?
  • accès à une base de données : JDBC, Java database connectivity
  • exécution de méthodes sur des objets distants : RMI, remote method invocation
  • spécification des composants métier, les EJB, enterprise java beans (code implémentant des rêgles propre à l'entreprise : une banque et la SNCF n'ont pas les même activités par exemple)
  • spécifications de génération de pages web dynamiques, les servlets
  • service de messages, JMS (accès à des midleware orientés message)
  • service de nommage, JNDI, Java naming and directory interface
  • service gestion de transactions,
  • service de mail, JavaMail

Maintenant que le concept est plus clair :-s on peut lister quelques plateformes estampillées J2EE :
Il existe un nombre assez grand de plateformes J2EE, on ne peut les citer toutes, et on considère souvent comme J2EE des plateformes qui n'implémentent que certains services, ainsi Jonas implémente le service EJB, de son coté, Tomcat n'implémente que le coté servlet/pages web dynamiques.
Voila, c'est déja une bonne première couche :mrgreen:
A noter que Sun propose également une version de Java spécialement destinée aux mobiles : J2ME, Java 2 mobile edition...