De l'architecture aux principales briques applicatives: les environnement avancés par Microsoft et Sun proposent deux itinéraires différents... avec un même objectif. Examen détaillé.
Avant de s'interroger sur les performances avancées par les environnements J2EE et .Net à tous les étages (exécution, interopérabilité, etc.), ce panorama tente de faire le point sur les fonctions applicatives que chacun propose. Une plate-forme d'intégration quelle qu'elle soit se décompose en effet d'une série de fonctions dessinées pour exécuter une application, et l'articuler avec des briques diverses : d'une base de données locale à des outils installés sur d'autres serveurs en passant par un logiciel client ou encore un ou plusieurs systèmes d'information tiers... Le tout en vue de gérer, par exemple, la mise en oeuvre de processus applicatifs ou métier impliquant plusieurs départements de l'entreprise voire des partenaires (fournisseurs, clients, etc.).
J2EE: une plate-forme d'exécution par excellence
J2EE: une plate-forme d'exécution par excellence
![]() |
A la suite de cette première expérience, Sun décide en 1999 de réorganiser l'environnement d'exécution Java autour de trois briques :



Bâties à partir de J2SE et de J2ME, les spécifications J2EE définissent neuf services applicatifs, couvrant pèle mêle les tâches d'exécution (EJB), d'affichage client (Servlet et JSP), de connexion applicative (JCA et JMS) et de dialogue avec les bases de données (JDBC) - voir le tableau ci-dessous. Objectif de cette refonte pour Sun : fournir un cadre de développement, tirant parti d'une communauté Open Source, qui permette au secteur de l'édition de mettre au point des applications exécutables par des serveurs eux-même fidèles à cette spécification. Bref, il s'agit avant tout de faciliter la compatibilité des programmes.
.Net: une plate-forme d'intégration
![]() |
A la base de cet édifice, Microsoft place ce qu'il appelle l'infrastructure .Net (.Net Framework). Un socle applicatif qui s'adosse au fameux CLR (pour Common Language Runtime), module qui a pour but d'exécuter l'ensemble des applications métier, y compris les Web Services, tournant sous l'une ou l'autre partie de la plate-forme. Pour programmer les logiciels adaptés à ce noyau, la société propose un environnement de développement maison. Baptisé Visual Studio .Net, il s'étend notamment aux langages commercialisés par Microsoft : C++ et Visual Basic, ainsi que C# (un hybride entre Java et C++) et J# (un Java très Microsoft)...
Panorama des services proposés
Au delà des différences d'architecture, quelles sont les fonctions affichées, couche par couche, par .Net et J2EE ? Le tableau ci-dessous tente de répondre à cette question en comparant le mécanisme de présentation et la logique applicative des deux environnements (les dispositifs d'intégration seront traités en détails plus tard).
Couche de présentation: génération HTML | ||
J2EE | JSP | Les Java Server Pages permettent de créer des pages HTML dynamiques, créées à la volée à partir de contenus et de sources diverses. |
JSF | Les JavaServer Faces étendent les capacités des JSP pour faciliter la création et la mise à jour d'objets au sein de l'interface (barre de navigation, etc.). | |
Servlets | Ils définissent la logique de navigation d'un site Web en conjonction avec les JSP (état des cessions, etc.). | |
.Net | WinForms | La classe Windows Forms gère l'interface utilisateur de .Net en environnement Windows. |
ASP.Net | Conçu pour le serveur IIS, Active Server Pages .Net gère la génération de pages HTML, mais également l'état des cessions ainsi que l'authentification des utilisateurs. | |
Logique applicative | ||
Transaction | ||
J2EE | EJB | Les transactions J2EE, c'est-à-dire les tâches prises en charge par l'application en tant que telle, peuvent être codés par le développeur ou bien exécutées par des composants appelés Enterprise Java Bean. |
.Net | Serviced Components (objets COM, COM+) | Au sein de la plate-forme .Net, les transactions sont directement gérées par le CLR (pour Common Language Runtime) via les objets COM et COM+. |
Appel d'objets distribués | ||
J2EE | JNDI | Java Naming and Directory Interface permet d'invoquer des composants Java (EJB et JMS) au sein d'un environnement de serveurs en grappe. |
.Net | .Net Remoting | Ce module gère l'appel d'objets distribués aussi bien entre applications, que processus ou encore machines. |
Accès aux données | ||
J2EE | EJB | Les EJB offrent des services de gestion des transactions, mais aussi une infrastructure conçue pour exécuter la mise à jour des bases de données utilisées (par le biais de JDBC). |
.Net | ADO .Net Classes | Issus de ActiveX Data Objects, ADO .Net Classes s'appuie sur diverses interfaces (ODBC, Tec.) pour gérer les accès à des sources de données tierces (XML, etc.), et de publier ces dernières par le biais de Web Services notamment. |
Langages supportés | ||
Transaction | ||
J2EE | Java | La plate-forme J2EE est adaptée au Java. D'autres langages peuvent néanmoins être utilisés en s'appuyant sur une interface, comme Java Native Interface (JNI) ou encore les Web Services. |
.Net | "Agnostique" | L'environnement .Net est indépendant des langages de développement, pour peu qu'il intègre un dispositif de cartographie dessiné au cas par cas. Pour l'heure, quelques éditeurs, comme Fujitsu (avec NetCOBOL) ou encore ActiveState (avec Visual Perl et Visual Python) ont produit des compilateurs CLR. Une démarche qui nécessite la signature d'un partenariat avec Microsoft. |

