Vous êtes sur la page 1sur 62

Qu'est ce que Java et JEE ?

Qu'est ce que Java ?


Java est la fois : Un langage de programmation. Une plateforme d'excution.

Qu'est ce que Java ?


Java offre une API (Interface de programmation) qui est une collection de composants prts l'emploi.

Qu'est ce que JEE ?


JEE est la version "entreprise" de Java, elle a pour but de faciliter le dveloppement d'applications distribues. Mais en fait, JEE est avant tout une norme. C'est un ensemble de standards dcrivant des services techniques comme, par exemple, comment accder un annuaire, une base de donnes, des documents... Important : JEE dfinit ce qui doit tre fourni mais ne dit pas comment cela doit tre fourni.

Qu'est ce que JEE ?


Exemple de services : JDBC (Java DataBase Connectivity) est une API d'accs aux bases de donnes relationnelles. JNDI (Java Naming and Directory Interface) est une API d'accs aux services de nommage et aux annuaires d'entreprises tels que DNS, NIS, LDAP... JTA (Java Transaction API) est une API dfinissant des interfaces standard avec un gestionnaire de transactions.

Qu'est ce que JEE ?


JEE dfinit ce qui doit tre fourni mais ne dit pas comment cela doit tre fourni. Ceci est une diffrence majeure par rapport aux prcdentes plateformes. En PHP, VB, Delphi... vous utilisez les fonctions fournies par l'diteur. Vous utilisez la fois la fonction et son implmentation : si vous n'tes pas content de la faon dont Delphi se connecte LDAP, vous n'y pouvez rien, ou alors, vous devez vous passer de l'API et r crire du code.

Qu'est ce que JEE ?


Le principe de sparation est celui de la prise de courant

Qu'est ce que JEE ?


La prise lectrique correspond ce qu'on appelle en Java une interface. La prise permet la cafetire et la centrale nuclaire de travailler ensemble sans se connatre l'un l'autre. Le concepteur de la centrale nuclaire n'a pas savoir comment marche un cafetire et vice et versa. La cafetire peut tre remplace par un aspirateur et la centrale nuclaire par une olienne.

Qu'est ce que JEE ?


Le mme principe appliqu la programmation :
import javax.naming.*; public class Lookup {

Ce qu'il faut noter Le code est indpendant public static void main(String[] args) { Context initialContext = new InitialContext(props); de l'implmentation.
Object obj = initialContext.lookup("test"); if (name.equals("")) System.out.println("Pas trouv !"); else System.out.println("Trouv); }

On peut changer de fournisseur sans changer son code ! la mthode lookup est diffrente chez oracle et chez ibm...

Qu'est ce que JEE ?


Gnralement, les applications JEE fonctionnent l'intrieur d'un serveur d'applications (appel aussi conteneur) qui offre les services JEE ces mmes applications.

Qu'est ce que JEE ?


Exemple de serveurs d'applications JEE : IBM Websphere BEA Weblogic Oracle 10g AS JBoss JOnAS Geronimo ... Une application JEE "standard" peut fonctionner dans n'importe quel conteneur en modifiant seulement sa configuration.

Qu'est ce que JEE ?


Ce qu'il faut retenir : JEE est un ensemble de standards. JEE dcrit des services techniques pour btir des applications d'entreprise. Tout le monde peut crire sa propre implmentation du standard. Une application JEE s'excute dans un serveur d'applications qui est un environnement d'excution.

Comment se fait l'volution de Java ?


Ce qu'il faut retenir : Le JCP (Java Community Process) fait la norme JEE. L'industrie et le monde du libre ne passent pas forcment par le JCP. Le JCP intgre souvent les bonnes ides mais cela peut prendre du temps.

Les architectures SOA

Les architectures SOA


La Service Oriented Architecture est le nouveau mode de dveloppement des applications. Dans ce modle, chaque fonction de chaque application existe sous forme de service indpendants (creerClient(), SupprimerFacture()...) et chaque service peut communiquer avec n'importe quel autre service par message. Une architecture oriente services consiste essentiellement en une collection de services qui interagissent et communiquent entre eux.

C'est la fin des silos !

Les architectures SOA


Consquence de l'avnement du SOA : de nouveaux besoins ! Transaction distribue. Authentification et autorisation. Messages asynchrones. Webservices. Annuaires. ... Tous ces services sont des services standard JEE.

Les architectures SOA


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

Les technologies (JSR)

Les technologies
Servlet Les servlets sont des applications Java qui fonctionnent dans un serveur web et qui rpondent aux requtes client. Le conteneur reoit la requte du client, et slectionne la servlet qui aura la traiter. Le conteneur fournit galement tout un ensemble de services standards pour simplifier la gestion des requtes et des sessions. Conteneur le plus connu : Tomcat.

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

Les technologies
Portlet Une portlet est une application Java qui fonctionne et s'intgre dans un portail. Chaque portlet est indpendant des autres portlets s'affichant dans la mme page. Exemple de portail : Websphere portal, JBoss portal, Pluto...

Exemple de portail

Les technologies
Exemple de Porlet :
import import import import import java.io.IOException; javax.portlet.GenericPortlet; javax.portlet.PortletException; javax.portlet.RenderRequest; javax.portlet.RenderResponse;

public class HelloWorldPortlet extends GenericPortlet { protected void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { response.setContentType("text/html"); response.getWriter().write("Hello World!"); } }

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

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

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

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

Les technologies
Enterprise Java Bean (EJB) Les EJB sont des composants logiciels rsidant sur le serveur. Ils permettent : De reprsenter des donnes (Entit). D'offrir des services (Session). De raliser des traitements asynchrones (MDB). Ils sont accessibles distance et sont rpertoris dans un annuaire. Ils s'excutent dans un serveur d'application comme Oracle AS, BEA Weblogic ou IBM Websphere...

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

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

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

Les technologies
Java Naming and Directory Interface (JNDI) JNDI est une API de connexion des annuaires comme LDAP. En JEE, les objets sont souvent rfrencs dans un l'annuaire du serveur d'applications. Un objet peut donc en retrouver un autre grce l'annuaire.

Les technologies
Java DataBase Connectivity (JDBC) Cette API permet aux applications Java d'accder aux bases de donnes. Il s'agit de la mme interface pour toutes les bases de donnes, seul le driver change.

Les technologies
Java Message Service (JMS) Cette technologie permet d'envoyer et de recevoir des messages de manire asynchrone entre applications ou composants Java. Cette technique est utilise pour grer les dconnexions, les montes en charge ou pour dcoupler les dveloppements. Cette technologie est utilise par les EJB MDB.

Les technologies
JavaMail Cette API permet l'envoi et la rception d'emails.

Les technologies
Java Management Extensions (JMX) Cette technologie permet de grer le fonctionnement d'une application Java en cours d'excution. Vous pouvez : Modifier dynamiquement le comportement de l'application. Gnrer des statistiques d'utilisation. Excuter des mthodes.

Les technologies
Java Transaction API (JTA) Cette technologie permet de piloter les transactions sans avoir connatre les dtails du gestionnaire de transactions. Cette API gre aussi transactions distribues, c'est dire les transactions qui peuvent dmarrer sur un systme et dpendre du rsultat d'autres systmes.

Les technologies
XML Java dispose de toutes les API ncessaires 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 prs tout. Nous n'avons vu qu'une partie des API disponibles.

Avant de continuer...

Un avertissement...
Le plus gros avantage de Java est aussi son plus gros inconvnient, il s'agit de : Sa richesse ! Vous trouverez un nombre impressionnant de faon de faire une mme chose. Exemple : Comment faire une page web ? a dpend... Au moins 35 frameworks existent !

Les frameworks

Les frameworks
Dfinition : On va dire qu'il s'agit d'une infrastructure logicielle qui facilite la conception des applications par l'utilisation de bibliothques, de modles de convention... De manire plus gnrale, il s'agit d'une "structure" qui soutient quelque chose d'autre. Une sorte de squelette qui sert de base quelque chose qui est construit.

Les frameworks
Y a t'il beaucoup de frameworks Java ? Enormment. Pourquoi ? Trs grande communaut. De nombreux besoins. Diffrents points de vues. ...

Les frameworks
Struts, le plus vieux et l'un des plus rpandus ! Il permet de dvelopper des applications web en Java en suivant l'archiecture Modle-Vue-Contrleur.

Les frameworks
Hibernate, celui qui a fait changer le JCP. Hibernate permet de grer la persistence des donnes, c'est dire : plus besoin de SQL . On laisse Java stocker automatiquement les objets dans la base.

Les frameworks
Spring, le conteneur lger. Spring a t cre avec l'ide que JEE tait bien trop compliqu et qu'il vallait mieux coder par Interface que par hritage. Ils ont rencontr un vritable succs et ils ont popularis les approches IOC et AOP qui sont repris dans la nouvelle norme JEE.

Les frameworks
GWT, framework de Google pour les applications Ajax. Vous permet de dvelopper des applications web Ajax, directement en Java, aussi facilement que vous feriez une application de bureau classique. Plus besoin de connatre HTML, Javascript, les navigateurs...

Les frameworks
Ce qu'il faut retenir : Java dispose d'un nombre impressionnant de frameworks. Il y en a mme 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
Dfinition wikipedia : Un intergiciel (en anglais middleware) est un logiciel servant d'intermdiaire de communication entre plusieurs applications, gnralement complexes ou distribues sur un rseau informatique. Le middleware est le socle ncessaire la mise en oeuvre des applications.

Le middleware
Les serveurs d'applications JEE. Le serveur d'applications est le conteneur o vont s'excuter les applications JEE. Il offre ces applications l'ensemble des services 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) ...

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

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

Les outils

Les outils
Environnement de dveloppement IDE Il s'agit des outils qui permettent de dvelopper 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 succs.

Les outils
Ant & Maven, Deux outils d'industrialisation des projets. Ant permet d'automatiser les tches d'un projet (compilation, construction, validation, dploiement, lancement...). Maven, lui, offre une structure de projets et un ensemble de tches pr dfinies.

Les outils
Ce qu'il faut retenir : Comme pour tous les autres "composants", il existe un nombre impressionnant d'outils pour le dveloppement. Eclipse a tout de mme le vent en poupe grce aux nombres impressionnant de plugins existants.

Vous aimerez peut-être aussi