FLASH INFORMATIQUE FI



public averti Versions de JAVA


Vous vous êtes peut-être demandé-e, vous aussi, comment on est passé de Java 1.4.2 à Java 5, et la différence entre les Java Beans et les Enterprise Java Beans ?



Maybe you too have wondered how we jumped from Java 1.4.2 to Java 5, and what the difference is between Java Beans and Enterprise Beans ?


Jacques MENU


J’avais ces questions, et les réponses m’ont été fournies par Benoît Garbinato, professeur au département des systèmes d’informations de l’UNIL. Voici donc les différentes versions de Java et leur numérotation, pas simple de prime abord, ainsi que les concepts généraux dans ce contexte. Un grand merci à Benoît qui a aussi fourni le schéma de la figure et contrôlé le contenu de cet article.

Numérotation

La version 1.2 est la première vraie version de Java, qui s’est appelée Java 2 depuis. Ce terme signifiait donc version >= 1:2. Depuis la version 1.5, le 1. est implicite. La version Java 2 xxx 5 est donc en fait la version 1.5. Le 2 est finalement tombé. On parle par exemple de Java SE 5 pour dire Java SE 1.5.

Éditions de Java

Dans ce contexte, ce terme est synonyme de version. Il y en a trois qui, mises ensemble, constituent une architecture multi-tiers, allant des petits devices mobiles aux gros serveurs avec les aspects métier, Web et bases de données, en passant par les machines personnelles :

  • Java ME (Micro Edition) – pour des devices mobiles, téléphones portables et autres équipements embarqués ;
  • Java SE (Standard Edition) – pour les applications usuelles s’exécutant sur un poste de travail ;
  • Java EE (Enterprise Edition) – pour les serveurs d’applications supportant les servlets, JSP (Java Server Pages), EJB (Enterprise Java Bean) et autres, voir ci-dessous.

Java beans

Un bean ou Java bean est un objet Java (POJO : Plain Old Java Object) qui permet d’accéder à ses attributs de manière standardisée par des méthodes set... et get....

Composants

Un composant vit dans un container, auquel il est lié par un contrat. L’interaction se fait sur le modèle des callbacks. Le composant ne devrait pas, idéalement, interagir avec le monde extérieur comme le système d’exploitation : il faut qu’il passe par le container pour ça. Le développeur écrit les composants. Il n’écrit pas les containers, mais il déploie ses composants dans les containers correspondants. La plate-forme Java propose, par ses versions ME, SE et EE, plusieurs modèles de composants, selon le  tier pour lequel on développe :

Tier Version Composants proposés Déployés dans un
Devices mobiles Java ME MIDlets Midlet container
Web Java EE Servlets, Java Server Pages (JSP) Servlet container, JSP container
Métier Java EE Enterprise Java Bean EJB container

Les types de composants particuliers MIDlets, servlets et Java Server Pages sont décrits plus loin. Voici le schéma de l’architecture. Il y a, en plus de cela, des beans applicatifs variés, selon les besoins.


JPEG - 6.5 ko
Plate-forme Java : une architecture de conteneurs et composants

Dans l’exemple suivant, illustrant ce que propose un tier métier basé sur la technologie EJB (Java EE), le composant n’exécute que le code mis en évidence. Tout le reste est fait par le container. Certains arguments ne sont pas précisés par souci de clarté :

void transfer (float amount, Account source, Account destination)
{
SecurityCheck (...);
BeginTransaction (...);
LoadDataFromDB (...);
         source.withdraw (amount);
         destination.deposit (amount);
StoreData (...);
EndTransaction (...);
}

Ce qu’offrent les trois versions

Java ME

Cette Micro Edition standardise l’hétérogénéité des matériels. C’est un domaine assez complexe vu la variété de ces derniers. Voici les deux concepts principaux :

Concept Description
Java ME
Configuration
Spécifie les possibilités de la machine virtuelle et un ensemble d’API de base pour une famille de devices. Il y en a actuellement deux :
  ConfigurationEn clair
CDC Connected Device Configuration
CLDC Connected Limited Device Configuration
Java ME Profile Une spécialisation d’une configuration à des types de possibilités particulières. Mentionnons :
  ProfileEn clair
PDAP Personal Digital Assistant Profile
MDIP Mobile Information Device Profile

Dans ce contexte, un composant est appelé MIDlet. C’est une managed application qui tourne dans un MIDP container. Mentionnons que MIDP sur CLDC est la combinaison profile/configuration la plus répandue sur les téléphones mobiles. Pour plus de détails, se référer à la page.

Java SE

La Standard Edition masque l’hétérogénéité des matériels et des systèmes d’exploitation. Elle est composée de JRE et JDK :

Produit Signification Description
JRE Java Runtime Environment Pour exécuter les applications, il faut :
  • la machine virtuelle (JVM), commande java ou
  • les librairies compilées
JDK Java Development Kit Pour développer et tester, il faut en plus de JRE :
  • le compilateur, commande javac
  • l’outil javadoc pour produire les documentations automatiquement à partir des codes sources
  • la documentation ainsi produite des librairies fournies avec le JDK
  • des outils variés. En option : le JDK offre le code source de ce qui précède, mais il faut le télécharger soi-même.

Java EE

La Enterprise Edition est un sur-ensemble de la Standard Edition, destinée aux serveurs d’applications. En plus de l’hétérogénéité des matériels et des systèmes d’exploitation, elle masque aussi l’hétérogénéité des divers types de middleware, comme la correspondance entre objets et bases de données relationnelles.
Dans ce contexte, un EJB ou Enterprise Java Bean est un composant qui vit dans un EJB container sur le serveur. Il encapsule la logique métier. Pour la production de pages en HTML, on dispose de beans particuliers qui répondent à des requêtes HTTP, présentés ci-après :

Bean Description
Servlet Un objet déployé dans un servlet container. Il annonce les URL qu’il peut traiter par un modèle (pattern) figurant dans le descripteur de déploiement.
JSP (Java Server Pages) Une page HTML enrichie par des balises spécifiques contenant du code Java. Ce dernier est exécuté sur le serveur et le résultat retourné au client HTTP, comme dans le cas de PHP.

Les JSP sont très utilisés pour la production de pages HTML usuelles. Elles sont compilées en des servlets. Pour éviter que les fragments de code Java soient éparpillés dans une quantité de JSP, on les regroupe dans des tag libraries. Les servlets, quant à elles, sont surtout utilisées directement, à plus bas niveau, pour des besoins qui ne sont pas de la simple production de code HTML. Un serveur WebDAV, par exemple. Citons encore les beans JMS (Java Message Service) utilisées pour les communications asynchrones par les serveurs d’applications.

Serveurs d’applications

Un Java application server implante la norme Java EE.

  • Tomcat est un Web container unique de servlets, Java Server Pages et tag libraries. Il est surtout utile pour les cas où l’on n’a besoin que d’un tel container.
  • GlassFish est l’implantation de référence d’un serveur d’applications Java. Il utilise un autre Web container que Tomcat, d’ailleurs.
  • Net Beans, en version 6.9.1 actuellement, est un IDE contenant la version complète de Java EE. Il contient GlassFish, et génère les fichiers XML de configuration.

En guise de conclusion

Nous espérons avoir éclairé la lanterne de celles et ceux à qui manquaient les précisions ci-dessus. Si la lecture s’avère un peu indigeste, quid de venir prendre un café avec l’auteur ?



Glossaire

beancomposant logiciel réutilisable manipulable visuellement dans un outil de conception.
tier
terme provenant de l’architecture 3-tier (de l’anglais tier signifiant étage ou niveau).


Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.