J2EE/.NET: les services offerts par chaque plate-forme
Par le JDNet Solutions (Benchmark Group)
URL : http://www.journaldunet.com/solutions/0209/020904_j2ee_net.shtml
Mercredi 4 septembre 2002

A lire également
J2EE / .Net : Etat des lieux

Quelle différence entre Corba, J2EE, ".Net" et Sun One ?

Le standard J2EE en sept questions

La stratégie .NET de Microsoft
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
Rappelons que J2EE signifie Java 2 Enterprise Edition et repose donc sur Java, langage objet conçu pour être "portable". Une caractéristique qui passe notamment par l'utilisation d'un module client (baptisé machine virtuelle) pour assurer l'exécution des programmes sur n'importe quel type de serveurs et de systèmes d'exploitation... pour peu que ces derniers supportent l'outil en question. D'ou le slogan lancé par la firme de Palo Alto : "Write Once, Run Anywhere" (développé une fois, exécutable partout).

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 :
Java 2 Micro Edition (J2ME) qui cible les terminaux portables,
Java 2 Standard Edition (J2SE) qui vise les postes clients,
Java 2 Enterprise Edition (J2EE) qui définit le cadre d'un serveur d'applications et d'intégration.

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
Comment définir l'architecture de .Net ? A la différence de J2EE dont le socle est utilisable par d'autres fournisseurs de serveurs d'applications, la plate-forme .Net reste la propriété exclusive de son créateur : Microsoft. Schématiquement, elle se compose de plusieurs produits : le système d'exploitation Windows et ses dérivés dédiés aux terminaux portables (Windows CE .Net) et aux applications embarquées (Windows XP Embedded). Mais également le serveur Web IIS (Internet Information Server), le serveur d'intégration Biztalk Server, ainsi que la base de données SQL Server.

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 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 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 CLR Au sein de la plate-forme .Net, les transactions sont directement gérées par le CLR (pour Common Language Runtime).
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.
XML / Web Services
J2EE Java Web Services Developper Pack La version actuelle de J2EE (1,3) n'intègre pas les langages XML nécessaires à la gestion de l'intégration d'application en mode Web Services. L'utilisation d'un kit de développement non standardisé est nécessaire.
.Net CLR

Le CLR supporte les dernières versions des vocabulaires XML (XML Schema, etc.), ainsi que le couple SOAP/WSDL pour l'exécution des Web Services. Une technologie dont Microsoft fait dès l'origine le fer de lance de sa stratégie .Net.

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.
.Net ADO .Net Classes Issus de ActiveX Data Objects, ADO .Net Classes a pour but de gérer les accès à diverses sources de données (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.
[Antoine Crochet Damais, JDNet]



Pour tout problème de consultation, écrivez au Webmaster
Copyrights et reproductions . Données personnelles
Copyright 2006 Benchmark Group - 69-71 avenue Pierre Grenier
92517 Boulogne Billancourt Cedex, FRANCE