2009-08-28 5 views
1

Traiter avec Java - que l'option que vous préférez dans la plupart des cas - référence impl. d'une technologie ou un autre, fourni par un autre fournisseur? Quelques exemples - il y a le serveur Glassfish, qui est essentiellement l'implémentation de référence officielle de Java EE. Cependant, je vois rarement les gens l'utiliser. Jboss, certains projets Apache gratuits liés (comme Apache ActiveMQ pour JMS), WebLogic, WebSphere ...Java - Implémentations de référence vs fournisseurs tiers fournis

Quelqu'un a ses propres règles (sauf coût pur :)), quoi de plus préférable?

Je ne vois 2 points opposés ici:

1) RI obtient de nouvelles fonctionnalités et de nouvelles versions de spécifications plus rapides. 2) Les solutions fournisseurs tiers sont souvent plus «terminées» et orientées vers le programmateur final, comme toutes les fonctionnalités/utilitaires supplémentaires inclus (qui ne font pas partie de la spécification).

Répondre

1

Quelques points:

3) l'intégration avec d'autres outils est souvent préférable pour la 3ème partie (par exemple apache serveur http et conteneur de servlet tomcat)

4) Le RI contient toutes les fonctions, 3ème partie souvent largement utiles seulement. Le logiciel est moins complexe et parfois plus pratique et a de meilleures performances.

5) Le RI est le bord d'attaque. Pour un serveur de production, une implémentation plus ancienne lorsque la dernière fonctionnalité n'est pas nécessaire (la plupart des applications "Java EE" fonctionnent sur un conteneur de servlet Tomcat 5.5 - 2.4):

MISE À JOUR: pour Java EE 6 et à venir 7 l'image change. Il existe également des implémentations open source standard complètes (comme TomEE pour Java EE6) et avec glassfish il semble y avoir un RI utilisable pour Java EE 7, le seul pour les adopteurs précoces.

+0

c'est aussi ce qui planait dans mon esprit. Les trucs de fête à trois dimensions semblent plus préférables. – Zorkus

1

Il n'y a vraiment aucune "règle" ici concernant "l'implémentation de référence" par rapport à une autre implémentation - vous prenez les exigences/préférences/argent que vous avez et vous comparez à la fonctionnalité/coût de chaque option disponible.

Pendant longtemps Tomcat était la spécification de servlet RI. Et pendant longtemps, l'EJB RI était une blague - personne ne l'utilisait réellement. Et il n'y avait pas de "mise en œuvre de référence" pour J2EE dans son ensemble.

La raison pour laquelle la plupart des gens utilisent d'autres serveurs est parce que depuis longtemps et Weblogic Websphere ont été les mises en œuvre que (réalistes), de sorte que les projets/personnes qui ont commencé avec J2EE vont être plus à l'aise avec eux. JBoss a été le premier serveur d'application J2EE open-source à succès - donc les gens qui préféraient l'open source (ou simplement un serveur d'application gratuit) étaient plutôt limités à cette option - et encore une fois - ces gens préféreraient ce qu'ils savent. Toutefois, actuellement, GlassFish est comparable à d'autres serveurs d'applications Java EE open source/commerciaux. Et il utilise Tomcat pour son moteur de servlet - et il est assez modulaire pour que vous puissiez retirer les pièces dont vous n'avez pas besoin.La migration des développeurs vers des solutions J2EE «lourdes» et vers des solutions open source «légères» telles que Hibernate et Spring (une fois disponibles) et fonctionnant uniquement avec un conteneur de servlets (Tomcat en général) a également influencé cette évolution. sans un serveur d'application à part entière.

+0

Est-ce que hibernate n'est pas un fournisseur de persistance jboss intégré (par exemple)? Ce ne sont pas des choses mutuellement exclusives ... – Zorkus

+0

C'est déroutant - Hibernate est un projet ORM autonome. Mais il est utilisé à l'interne dans beaucoup de choses. Il s'agit également d'une mise en œuvre JPA «fournisseur tiers» (je crois que l'IR de l'APP est TopLink). Et je pense que JBoss utilise actuellement Hibernate pour soutenir son implémentation EJB3. Mais JBoss n'a pas commencé à utiliser Hibernate pour leur persistance - ils étaient l'un des premiers fournisseurs d'EJB open source et ils ont codé leur propre implémentation EJB 2.1. Et il y a une différence entre programmer directement sur Hibernate (ou Hibernate JPA) dans votre application web, et l'utiliser via EJB3 ... – Nate

Questions connexes