Skip to content

Latest commit

 

History

History
252 lines (182 loc) · 5.13 KB

javaee.adoc

File metadata and controls

252 lines (182 loc) · 5.13 KB

Java EE

Pourquoi étudier une plate-forme ?

backend architecture

Notion de plate-forme

  • Environnement d’exécution

  • Fournit des services standards

    • Une spécification unique

    • De multiples implémentations

  • Plate-forme bâtie au-dessus du langage Java

    • Java SE

    • Java ME

  • Ensemble de spécifications

    • Une par fonctionnalité

    • API

    • Oracle est l’éditeur

    • Des tiers fournissent les implémentations

Exemples d’API

API Fonctionnalité

JTA

Gère les transactions distribuées

JavaMail

Crée, envoie et réceptionne les mails

JAX-WS

Génère et appelle des web services SOAP

JAX-RS

Génère et appelle des web services REST

CDI

Injection de dépendances

  • Preuve formelle qu’il est possible d’implémenter la spécification

  • Responsabilité du Spec Lead

  • Exemple :

    • Weld est la RI de CDI

Spécification vs. implémentation

  • Séparation nette

    • Via des composants séparés (JAR)

!

Spécification vs implémentation

  • Ensemble des tests de chaque spécification

  • Permet à une plate-forme d’être certifiée compatible avec une version de Java EE

  • Disponible sous license GPL

Versions

  • Une version unique pour la plate-forme

    • La version actuelle est 1.7

  • Une version spécifique pour chaque API, par exemple :

    • JTA 1.1

    • JMX 1.0

Historique

Historique des versions de Java EE
  • Offre les fonctionnalités de Java EE via les API

  • Permet la portabilité d’applications Java EE entre différents serveurs d’applications

    • Portabilité toute relative

Principaux éditeurs

Editeur Serveur d’apps License

IBM

Websphere AS

Commercial

Oracle

WebLogic

Commercial

Red Hat

WildFly

LGPL 2.1

Tomitribe

TomEE

Apache v2

Payara

Payara Server

CDDL / GPL v2

Containers de servlets

Editeur Serveur d’apps License

Apache

Tomcat

Apache v2

Eclipse

Jetty

Apache v2 / EPL

Profils

  • Travail énorme pour implémenter l’intégralité des API Java EE

    • Permet de faciliter l’entrée de nouveaux acteurs avec des sous-ensembles

  • Profils disponibles :

    • Full

    • Web

    • Micro (Non standard !)

!

java eefullprofile

!

java eewebprofile

Archives

Nom Acronyme Extension

Java Archive

JAR

.jar

JAR d’EJB

EJB JAR

.jar

Resource Archive

RAR

.rar

Web Archive

 WAR

.war

Enterprise Archive

EAR

.ear

!

archives

Bibliothèque d’un serveur d’applications

  • Comporte de nombreux JAR

  • Un (ou plusieurs) JAR par fonctionnalité

    • Standard

    • Non-standard

!

wildfly jars

Descripteur de déploiement

A deployment descriptor describes how a component, module or application should be deployed.

Descripteurs de déploiement

Archive Descripteur de déploiement

JAR

META-INF/MANIFEST.MF

JAR d’EJB

META-INF/ejb-jar.xml

WAR

WEB-INF/web.xml

EAR

META-INF/application.xml

Exemple : MANIFEST.MF

Main-Class: ch.frankel.app.EntryPoint

Déploiement d’applications

  • Une application est déployée dans un serveur d’applications

    • La norme Java EE garantit l’interopérabilité

    • Le déploiement d’applications est spécifique au type serveur d’applications