Java Enterprise Edition et son écosystème

Stéphane Traumat (Scub)

Plan de la présentation
Qu'est ce que Java et JEE ? Comment se fait l'évolution de Java ? Les architectures SOA. Les technologies (JSR). Les frameworks. Le middleware. Les outils.

Avant de commencer... une courte présentation de Scub et de moi même

Nos services sont centrés sur le développement d'applications et l'intégration de systèmes avec une spécialisation sur les frameworks légers et les architectures orientées services (SOA). Nous sommes une équipe de 9 personnes basée à Angoulême.Présentation Notre métier depuis 2003 : Conception. . réalisation et mise en œuvre du système d'information des entreprises et des administrations.Scub .

Ingénierie Java (Architecture... formation..). Open Source... .).). Infocentres.Scub . OLAP. Socle technique.. SOA.Présentation Trois métiers : Conseil (SDI. Décisionnel (ETL.

. Architecte Java sur d'importants projets (RATP. Auteur du livre JOnAS Live (publié par Sourcebeat). SMATIS..Stéphane Traumat Dirigeant de la société Scub. Commiteur sur le serveur d'applications JOnAS.) Conseil en technologie (CNAV. Free software meeting. Conférencier (Solutions Linux.). Fossbridge..... Objectweb.) . Université de La Rochelle.

Qu'est ce que Java et JEE ? .

Une plateforme d'exécution. .Qu'est ce que Java ? Java est à la fois : Un langage de programmation.

.Qu'est ce que Java ? Java offre une API (Interface de programmation) qui est une collection de composants prêt à l'emploi.

JEE est avant tout une norme. à une base de données. par exemple. Important : JEE définit ce qui doit être fournit mais ne dit pas comment cela doit être fournit. . C'est un ensemble de standard décrivant des services techniques comme.. elle a pour but de faciliter le développement d'applications distribuées. à des documents..Qu'est ce que JEE ? JEE est la version "entreprise" de Java. Mais en fait. comment accéder à un annuaire.

JTA (Java Transaction API) est une API définissant des interfaces standard avec un gestionnaire de transactions. NIS..Qu'est ce que JEE ? Exemple de services : JDBC (Java DataBase Connectivity) est une API d'accès aux bases de données relationnelles. . LDAP.. JNDI (Java Naming and Directory Interface) est une API d'accès aux services de nommage et aux annuaires d'entreprises tels que DNS.

vous devez vous passer de l'API et ré écrire du code. Ceci est une différence majeure par rapport aux précédentes plateformes.. En PHP. Delphi. . VB.Qu'est ce que JEE ? JEE définit ce qui doit être fournit mais ne dit pas comment cela doit être fournit. ou alors.. Vous utilisez à la fois la fonction et son implémentation : si vous n'êtes pas content de la façon dont Delphi se connecte à LDAP. vous utilisez les fonctions fournies par l'éditeur. vous n'y pouvez rien.

Qu'est ce que JEE ? Le principe de séparation est celui de la prise de courant .

. La cafetière peut être remplacée par un aspirateur et la centrale nucléaire par une éolienne. La prise permet à la cafetière et à la centrale nucléaire de travailler ensemble sans se connaître l'un l'autre. Le concepteur de la centrale nucléaire n'a pas à savoir comment marche un cafetière et vice et versa.Qu'est ce que JEE ? La prise électrique correspond à ce qu'on appelle en Java une interface.

*. } } . On peut changer de fournisseur sans changer son code ! la méthode lookup est différente chez oracle et chez ibm.out.equals("")) System.lookup("test").Qu'est ce que JEE ? Le même principe appliquée à la programmation : import javax.. Object obj = initialContext.out.println("Pas trouvé !").println("Trouvé).. if (name. de l'implémentation. else System.naming. public class Lookup { public static void main(String[] Context initialContext = new Ce qu'il faut noter Le code est indépendant args) { InitialContext(props).

les applications JEE fonctionnent à l'intérieur d'un serveur d'applications (appelé aussi conteneur) qui offre les services JEE à ces mêmes applications.Qu'est ce que JEE ? Généralement. .

. Une application JEE "standard" peut fonctionner dans n'importe quel conteneur en modifiant seulement sa configuration.Qu'est ce que JEE ? Exemple de serveurs d'applications JEE : IBM Websphere BEA Weblogic Oracle 9i AS JBoss JOnAS Geronimo . ..

Tout le monde peut écrire sa propre implémentation du standard. Une application JEE s'exécute dans un serveur d'applications qui est un environnement d'exécution. JEE décrit des services techniques pour bâtir des applications d'entreprise.Qu'est ce que JEE ? Ce qu'il faut retenir : JEE est en ensemble de standard. .

Comment se fait l'évolution de Java ? .

Site : http://www.Comment se fait l'évolution de Java ? L'évolution du langage Java est piloté par le Java Community Process (JCP).jcp.org . des associations ou des individus peuvent rejoindre le groupe pour participer et influencer l'évolution du langage. Des sociétés.

qui décrivent les spécifications et technologies proposées pour un ajout à la plateforme Java. Exemple : la JSR 168 est la spécification des portlets définissant le contrat entre les conteneurs de portlets et les portlets.Comment se fait l'évolution de Java ? Le JCP émet des Java Specification Requests (JSR). .

Comment se fait l'évolution de Java ? Des revues publiques formelles des JSRs sont menées avant qu'une JSR ne devienne finale et qu'elle ne soit votée par le comité exécutif du JCP. .

le Technology Compatibility Kit (TCK) .pour vérifier la compatibilité d'une implémentation avec la spécification. Un ensemble de tests . .Comment se fait l'évolution de Java ? Une JSR finale fournit une implémentation de référence qui offre : Une implémentation gratuite de la technologie sous la forme de code source.

Étant donné l'existence du JCP qui est un processus ouvert...Comment se fait l'évolution de Java ? La question. y a t-il une vie en dehors du JCP ? .

.....) Nouvelles façons (Spring..) .) Sujets non couverts (Maven.Comment se fait l'évolution de Java ? La réponse : OUI Pourquoi ? Erreurs du JCP (Hibernate.

Invitation des membres d'Hibernate au JCP sur EJB 3. tout le monde se lance et il s'avère que c'est une mauvaise norme. .Comment se fait l'évolution de Java ? Mais ceci est une bonne nouvelle car les membres du JCP sont désormais intelligent ! Cas des EJB 2.1: Sortie des EJB 2. Création du projet libre Hibernate => Succès.1. Les EJB 3 prennent le meilleur d'hibernate => Succès.

Le JCP intègre souvent les bonnes idées mais cela peut prendre du temps.Comment se fait l'évolution de Java ? Ce qu'il faut retenir : Le JCP fait la norme JEE. L'industrie et le monde du libre ne passent pas forcément par le JCP. .

Les architectures SOA .

chaque fonction de chaque application existe sous forme de service indépendants (creerClient(). Dans ce modèle.Les architectures SOA La Service Oriented Architecture est le nouveau mode de développement des applications.. Une architecture orientée services consiste essentiellement en une collection de services qui interagissent et communiquent entre eux . SupprimerFacture()..) et chaque service peut communiquer avec n'importe quel autre service par message.

C'est la fin des silos ! .

. Tous ces services sont des services standard JEE.. Authentification et autorisation. Messages asynchrones. Annuaires. .Les architectures SOA Conséquence de l'avènement du SOA : de nouveaux besoins ! Transaction distribuée. Webservices..

Dans une architecture SOA.Les architectures SOA Ce qu'il faut retenir : Les architectures SOA sont l'avenir. il n'y aura pas que du Java ! . JEE répond aux besoins de ce type d'architecture.

Les technologies (JSR) .

Le conteneur fournit également tout un ensemble de services standards pour simplifier la gestion des requêtes et des sessions. . Le conteneur reçoit la requête du client. Conteneur le plus connu : Tomcat.Les technologies Servlet Les servlets sont des applications Java qui fonctionnent dans un serveur web et qui répondent aux requêtes client. et sélectionne la servlet qui aura à la traiter.

out. public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest req.close().io. out. import javax.*.Les technologies Exemple de Servlet : import java.http.*. import javax. } } .*.servlet.servlet.getWriter().println("<html><head><title>Servlet</title></head><body>test</body></html>"). HttpServletResponse resp) throws IOException { PrintWriter out = resp.

Pluto.. .. Chaque portlet est indépendant des autres portlets s'affichant dans la même page.Les technologies Portlet Une portlet est une application Java qui fonctionne et s'intègre dans un portail. Exemple de portail : Websphere portal. JBoss portal.

Exemple de portail .

IOException { response. RenderResponse response) throws PortletException.portlet.Les technologies Exemple de Porlet : import import import import import java. } } . javax. response.portlet.setContentType("text/html"). javax.portlet. javax.portlet.io. javax.GenericPortlet.getWriter().IOException.RenderRequest.write("Hello World!"). public class HelloWorldPortlet extends GenericPortlet { protected void doView(RenderRequest request.RenderResponse.PortletException.

Fonctionne dans un conteneur web.Les technologies Java Server Pages (JSP) Cette technologie permet aux développeurs d'insérer du code java dans des pages web. .

nous sommes le <%= date %>.</p> <p>Cette page a été affichée <%= nombreVisites %> fois!</p> </body> </html> .*"%> <html> <head><title>Page JSP</title></head> <body> <%! int nombreVisites = 0. %> <% // Code Java Date date = new Date(). %> <h1>Exemple de page JSP</h1> <p>Au moment de l'exécution de ce script.util. nombreVisites++.Les technologies Exemple de page JSP <%@page contentType="text/html"%> <%@page import="java.

. Bien qu'il permette de faire tout type d'interface. Fonctionne dans un conteneur web comme tomcat.Les technologies Java Server Face (JSF) Cette technologie est un framework qui a pour but de simplifier le développement d'interfaces utilisateurs. il est surtout vu comme une amélioration des JSP.

sun.password}"/> <br/> <h:commandButton value="Login" action="#{mgr.loginAction}"/> </h:form> </f:view> </body> </html> . charset=Cp1252" %> <%@ taglib uri="http://java. charset=Cp1252"/> <title>jsf-title</title> </head> <body> <f:view> <h:form> UserID: <h:inputText value="#{mgr.userID}"/> <br/>Password: <h:inputText value="#{mgr.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.Les technologies Exemple de page JSF : <%@ page contentType="text/html.com/jsf/core" prefix="f" %> <html> <head> <meta http-equiv="Content-Type" content="text/html.

Les technologies Enterprise Java Bean (EJB) Les EJB sont des composants logiciels résidant sur le serveur. ... BEA Weblogic ou IBM Websphere. D'offrir des services (Session). Ils sont accessibles à distance et sont répertoriés dans un annuaire. De réaliser des traitements asynchrones (MDB). Ils permettent : De représenter des données (Entité). Ils s'exécutent dans un serveur d'application comme Oracle AS.

private String name. } .Les technologies Exemple d'un EJB entité / @Entity @Table(name="book") public class Cat { @Id private Integer id.

Les technologies Exemple d'un EJB de session : @Stateless public class StatelessSessionBeanImpl implements StatelessSessionBean { public String sayHello() { return ("Hello world !"). } } .

activationConfig = { @ActivationConfigProperty(propertyName="destination". propertyValue="fileAttente") }) public class LongProcessMessageBean implements MessageListener { @Resource private MessageDrivenContext context. public void onMessage(Message message) { System. } } .out.Les technologies Exemple d'un EJB orienté message : @MessageDriven(name="LongProcessMessageBean".println("Message reçu !").

les objets sont souvent référencés dans un l'annuaire du serveur d'applications.Les technologies Java Naming and Directory Interface (JNDI) JNDI est une API de connexion à des annuaires comme LDAP. . Un objet peut donc en retrouver un autre grâce à l'annuaire. En JEE.

seul le driver change. Il s'agit de la même interface pour toutes les bases de données.Les technologies Java DataBase Connectivity (JDBC) Cette API permet aux applications Java d'accéder aux bases de données. .

les montées en charge ou pour découpler les développements. Cette technique est utilisée pour gérer les déconnexions. Cette technologie est utilisée par les EJB MDB.Les technologies Java Message Service (JMS) Cette technologie permet d'envoyer et de recevoir des messages de manière asynchrone entre applications ou composants Java. .

Les technologies JavaMail Cette API permet l'envoi et la réception d'emails. .

. Exécuter des méthodes.Les technologies Java Management Extensions (JMX) Cette technologie permet de gérer le fonctionnement d'une application Java en cours d'exécution. Générer des statistiques d'utilisation. Vous pouvez : Modifier dynamiquement le comportement de l'application.

Les technologies Java Transaction API (JTA) Cette technologie permet de piloter les transactions sans avoir à connaître les détails du gestionnaire de transactions. . Cette API gère aussi transactions distribuées. c'est à dire les transactions qui peuvent démarrer sur un système et dépendre du résultat d'autres systèmes.

.Les technologies XML Java dispose de toutes les API nécessaires au traitement du XML.

.Les technologies Remote Method Invocation (RMI) Il s'agit d'une API qui permet à des objets Java de communiquer à distance. Il s'agit de quelque chose de similaire à Corba ou RPC.

.Les technologies Ce qu'il faut retenir : Java dispose d'API pour à peu près tout. Nous n'avons vu qu'une partie des API disponibles.

...Avant de continuer.

.. Exemple : Comment faire une page web ? Ça dépend. il s'agit de : Sa richesse ! Vous trouverez un nombre impressionnant de façon de faire une même chose. Au moins 35 frameworks existent ! ...Un avertissement. Le plus gros avantage de Java est aussi son plus gros inconvénient.

Les frameworks .

. De manière plus générale. Une sorte de squelette qui sert de base à quelque chose qui est construit. .Les frameworks Définition : On va dire qu'il s'agit d'une infrastructure logicielle qui facilite la conception des applications par l'utilisation de bibliothèques.. il s'agit d'une "structure" qui soutient quelque chose d'autre. de modèles de convention.

. Pourquoi ? Très grande communauté. De nombreux besoins. . .. Différents points de vues.Les frameworks Y a t'il beaucoup de frameworks Java ? Enormément.

Les frameworks Struts. . le plus vieux et l'un des plus répandus ! Il permet de développer des applications web en Java en suivant l'archiecture Modèle-Vue-Contrôleur.

Hibernate permet de gérer la persistence des données. c'est à dire : plus besoin de SQL . On laisse Java stocker automatiquement les objets dans la base.Les frameworks Hibernate. celui qui a fait changer le JCP. .

Ils ont rencontré un véritable succès et ils ont popularisé les approches IOC et AOP qui sont repris dans la nouvelle norme JEE. . Spring a été crée avec l'idée que JEE était bien trop compliqué et qu'il vallait mieux coder par Interface que par héritage.Les frameworks Spring. le conteneur léger.

aussi facilement que vous feriez une application de bureau classique. directement en Java... . framework de Google pour les applications Ajax. Vous permet de développer des applications web Ajax. Javascript.Les frameworks GWT. les navigateurs. Plus besoin de connaître HTML.

Les frameworks
Ce qu'il faut retenir : Java dispose d'un nombre impressionnant de frameworks. Il y en a même trop. Cependant, certains de ces frameworks sont tout simplement fantastiques et il ne faut pas s'en priver. Tout projet Java utilise des frameworks Open Source.

Le middleware

Le middleware
Définition wikipedia : Un intergiciel (en anglais middleware) est un logiciel servant d'intermédiaire de communication entre plusieurs applications, généralement complexes ou distribuées sur un réseau informatique. Le middleware est le socle nécessaire à la mise en oeuvre des applications.

. Il offre à ces applications l'ensemble des services JEE.Le middleware Les serveurs d'applications JEE. Le serveur d'applications est le conteneur où vont s'exécuter les applications JEE.

Anatomie d'un serveur JEE .

...Le middleware Serveurs d'applications du marché : JBoss (Fondation JBoss) Apache Geronimo (Fondation Apache) JOnAS (Objectweb) Oracle Application Server 10g Resin SAP NetWeaver Glassfish (Sun) WebSphere Application Server (IBM) WebLogic (BEA) .

Oracle Portal Apache Pluto BEA Weblogic Portal Vignette portals .Le middleware Les portails. Les portails permettent d'éxecuter les portlets.

"Anciennement EAI" L'ESB a pour but de permettre aux applications de communiquer entre elles à travers un bus qui offre un ensemble de services.Le middleware Enterprise Service Bus (ESB) . .

Schéma de fonctionnement d'un ESB .

. Les ESB ont remplacé les EAI.Le middleware Ce qu'il faut retenir : Les serveurs d'application sont la pierre angulaire de ces architectures.

Les outils .

.Les outils Environnement de développement IDE Il s'agit des outils qui permettent de développer en Java. Comme pour les serveurs d'applications. il en existe beaucoup.. Eclipse (IBM) Netbeans (Sun) WSAD (IBM) IntelliJ (Idea) JDev (Oracle) Eclipse avec son ouverture remporte un grand succès. .

lancement. . Deux outils d'industrialisation des projets. Ant permet d'automatiser les tâches d'un projet (compilation. lui. déploiement. validation.Les outils Ant & Maven..). construction.. Maven. offre une structure de projets et un ensemble de tâches pré définies.

Les outils Ce qu'il faut retenir : Comme pour tous les autres "composants". . Eclipse a tout de même le vent en poupe grâce aux nombres impressionnant de plugins existants. il existe un nombre impressionnant d'outils pour le développement.

Questions ? Questions / Réponses ? Visitez notre blog : http://www.scub.net/blog ! .

Sign up to vote on this title
UsefulNot useful