En effet, ce que tu programmes dans un serveur J2EE sont des "Beans", dont il existe plusieurs sortes (le SessionBean, qui doit contenir la logique business, l'EntityBean qui doit contenir la logique d'accès aux données, et enfin la Servlet, qui contient la logique de présentation. je suis très schématique là).
Le hic, c'est que, pour être modulaire, ces Beans causent entre eux via RMI (en général), et les perfs en prennent un sale coup. Dans la spec EJB 2.0, Sun a rajouté la possibilité de faire un appel local (en passant donc juste par la mémoire) entre SessionBeans et EntityBeans (ce qui revient à admettre de facto que le pattern Session Facade est la plus réaliste implémentation J2EE), mais le résultat est toujours pas fabuleux. Quand aux implémentations BMP et CMP, elle s'avèrent être à peu près aussi mauvaises l'une que l'autre.
Bref, J2EE permet d'énormément gagner en modularité (ben oui on peut recombiner facilement les Beans entre eux, ce qui est très intéressant), mais il faut bien avoir conscience que c'est au prix de performances amoindries.
Sinon, toujours du même consortium ObjectWeb, il y a Enhydra, tout aussi OpenSource, qui est un serveur d'application Java non-J2EE, qui est moins modulaire, mais qui torche niveau perfs.
[^] # Re: Avantages ?
Posté par anonyme512 . En réponse à la dépêche JOnAS 3.1 est sortie. Évalué à 2.
http://www.objectweb.org/conferences/2002/J2EE_Performance.pdf(...)
En effet, ce que tu programmes dans un serveur J2EE sont des "Beans", dont il existe plusieurs sortes (le SessionBean, qui doit contenir la logique business, l'EntityBean qui doit contenir la logique d'accès aux données, et enfin la Servlet, qui contient la logique de présentation. je suis très schématique là).
Le hic, c'est que, pour être modulaire, ces Beans causent entre eux via RMI (en général), et les perfs en prennent un sale coup. Dans la spec EJB 2.0, Sun a rajouté la possibilité de faire un appel local (en passant donc juste par la mémoire) entre SessionBeans et EntityBeans (ce qui revient à admettre de facto que le pattern Session Facade est la plus réaliste implémentation J2EE), mais le résultat est toujours pas fabuleux. Quand aux implémentations BMP et CMP, elle s'avèrent être à peu près aussi mauvaises l'une que l'autre.
Bref, J2EE permet d'énormément gagner en modularité (ben oui on peut recombiner facilement les Beans entre eux, ce qui est très intéressant), mais il faut bien avoir conscience que c'est au prix de performances amoindries.
Sinon, toujours du même consortium ObjectWeb, il y a Enhydra, tout aussi OpenSource, qui est un serveur d'application Java non-J2EE, qui est moins modulaire, mais qui torche niveau perfs.