Introduction au développement par composants Java EE

Documents pareils
Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Java pour le Web. Cours Java - F. Michel

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Compte Rendu d intégration d application

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

J2EE - Introduction. Développement web - Java. Plan du chapitre

Introduction à la plateforme J2EE

Création d une application JEE

Environnements de Développement

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Mise en œuvre des serveurs d application

Architecture Orientée Service, JSON et API REST

Auto-évaluation Aperçu de l architecture Java EE

Catalogue des Formations Techniques

Plan. Department of Informatics

Développement des Systèmes d Information

Urbanisation des Systèmes d'information

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

1. Installation d'un serveur d'application JBoss:

2 Chapitre 1 Introduction

Introduction aux «Services Web»

JOnAS 5. Serveur d application d

Hébergement de sites Web

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Les architectures 3-tiers Partie I : les applications WEB

Cedric Dumoulin (C) The Java EE 7 Tutorial

Web Tier : déploiement de servlets

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Rapport de projet de fin d études

10. Base de données et Web. OlivierCuré

Application Web et J2EE

Remote Method Invocation en Java (RMI)

Architectures Web Services RESTful

Nouvelles Plateformes Technologiques

4. SERVICES WEB REST 46

Utilisation de Jakarta Tomcat

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Messagerie asynchrone et Services Web

Refonte front-office / back-office - Architecture & Conception -

Evaluation Idéopass Cahier d analyse technique

JOnAS Day 5.1. Clustering

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Création d un service web avec NetBeans 5.5 et SJAS 9

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

JavaServer Pages (JSP)

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Applications et Services WEB: Architecture REST

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

Web Application Models

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

CQP Développeur Nouvelles Technologies (DNT)

Formation en Logiciels Libres. Fiche d inscription

Java Naming and Directory Interface

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Les Architectures Orientées Services (SOA)

EXA1415 : Annotations

Notre Catalogue des Formations IT / 2015

Remote Method Invocation (RMI)

Java Enterprise Edition

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Application web de gestion de comptes en banques

Modernisation et développement d applications IBM i Stratégies, technologies et outils

emuseum PUBLIEZ VOS COLLECTIONS SUR INTERNET Pourquoi choisir emuseum? Intégration facile avec TMS Puissante fonction de recherche

Introduction à Java. Philippe Genoud.

Documentation de la plate forme JOnAS

Architectures n-tiers Intergiciels à objets et services web

31 ans - 8 ans d'expérience

J2EE. Java2 Enterprise Edition. Pierre Yves Gibello Mise à jour : 30 Septembre 2004

Windows (2000/NT), Solaris, AIX, HP-UX, Linux Haute disponibilité : SunCluster 3, Veritas Cluster Server 4. J2EE (JSP, Servlet, EJB, JTA), Open Source

Architectures d'intégration de données

Composants logiciels Exemples : Java Beans, Enterprise Java Beans

Les Services Web. Jean-Pierre BORG EFORT

Le développement d applications Web

Java DataBaseConnectivity

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Documentation de la plate forme JOnAS. Frederic Maistre

LE CENTRE DE RÉFÉRENCE PROFESSIONNELLE TIC DE BRUXELLES TAKE I.T. EASY FORMATION TECHNIQUES IT & WEB POUR INFORMATICIENS

Module BD et sites WEB

Business Process Execution Language

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

Le passage à l échelle de serveur J2EE : le cas des EJB

Vulgarisation Java EE Java EE, c est quoi?

Développement, déploiement et sécurisation d'applications JEE

IBM WebSphere Application Server 5.0 : Administration avancée

RMI le langage Java XII-1 JMF

JOnAS Day 5.1. Outils de développements

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Réutilisation et Composants. Partie IV : Composants pour les applications distribuées - l Exemple des Enterprise Java Beans - JEE

EJB. Karim Bouzoubaa Issam Kabbaj

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

République Algérienne Démocratique et Populaire Université Abou Bakr Belkaid Tlemcen Faculté des Sciences Département d Informatique

Transcription:

Introduction au développement par composants Java EE Intervenant : Chouki TIBERMACINE Bureau : LIRMM (E.311) Tél. : 04.67.14.97.24 Mél. : Chouki.Tibermacine@lirmm.fr Web : http://www.lirmm.fr/~tibermacin/ens/hmin304/

Plan du cours Introduction aux architectures multi-niveaux (N-Tiers) Plate-forme Java EE (Enterprise Edition) Développement par composants JEE 2/50

Plan du cours Introduction aux architectures multi-niveaux (N-Tiers) Plate-forme Java EE (Enterprise Edition) Développement par composants JEE 3/50

Applications distribuées Application distribuée : ensemble de programmes s'exécutant sur des machines (physiques ou virtuelles) hôtes différentes Avantages multiples : Répartition de charge Optimisation de l'utilisation des ressources Middleware (intergiciel) : couche logicielle s'interfaçant entre l'os et les applications et garantissant une transparence vis-à-vis de la distribution des machines hôtes 4/50

Services offerts par les intergiciels Interopérabilité : capacité des applications à communiquer même si elles sont composées d'objets hétérogènes (langages différents : cas de CORBA, OS différents : cas de JEE,...) Gestion des transactions : propriétés ACID (Atomicité, Cohérence, Isolation et Durabilité) Sécurité Gestion du nommage... 5/50

Application distribuée avec une architecture client-serveur requête réponse Intergiciel Application distribuée Programme Programme client serveur 1 2 OS 1 OS 2 Réseau physique Intergiciel Hôte 1 Hôte 2 6/50

Application distribuée à objets Application distribuée Objets clients 1 2 Intergiciel Objets serveurs Intergiciel OS 1 OS 2 invocation de méthode distante réponse à l'invocation Réseau physique 7/50

Application distribuée à objets Java RMI Application distribuée Objets Objets 1 clients RMI serveurs RMI 3 2 4 Intergiciel RMI Registry Intergiciel OS 1 OS 2 Réseau physique publication des noms/références recherche (lookup) de références invocation de méthodes distantes réponse à l'invocation 8/50

Application distribuée à objets Java RMI Application distribuée Objets clients Interfaces distantes Objets stubs Intergiciel Objets serveurs Interfaces distantes Intergiciel OS 1 OS 2 Réseau physique 9/50

Application distribuée à objets Java RMI Application distribuée Objets clients Interfaces distantes Objets stubs Intergiciel 1. Classes qui implémentent des interfaces qui étendent java.rmi.remote 2. Méthodes distantes qui lèvent des exceptions java.rmi.remoteexception Objets serveurs Interfaces distantes Intergiciel OS 1 OS 2 Réseau physique 10/50

Application distribuée à objets Java RMI Objets serveurs passés en argument = stubs passés Application distribuée Objets clients 1 Objets stubs1 Objets stubs2 Intergiciel Objets clients/serveurs 2 Objets stubs1 Intergiciel Objets serveurs Interfaces distantes Intergiciel OS 1 OS 2 OS 3 Réseau physique 11/50

Application distribuée avec une architecture N-Tiers Objets de présentation : UI Intergiciel Application distribuée Objets de traitement métier 1 4 2 3 Intergiciel Objets du système d'information Intergiciel OS 1 OS 2 OS 3 Réseau physique requête (1 : RMI, HTTP, puis 2 : JDBC,...) réponse 12/50

Application distribuée avec une architecture N-Tiers Application distribuée Client lourd/léger Objets de présentation UI Objets de traitement métier Objets du SI BdD... VM cliente / navigateur Web Intergiciel Intergiciel Intergiciel Intergiciel OS 1 OS 2 OS 3 OS 4 OS 5 Réseau physique 13/50

Outils intergiciels pour une architecture N-Tiers Application distribuée Client lourd/léger VM cliente / navigateur Web OS 1 Objets de présentation UI Serveur Web / d'application Objets de traitement métier Services Web Serveur d'application Objets du SI Serveur d'application OS 2 OS 3 OS 4 BdD... SGBD... OS 5 Réseau physique Java EE : Plate-forme pour applications N-Tiers à base de composants 14/50

Plan du cours Introduction aux architectures multi-niveaux (N-Tiers) Plate-forme Java EE (Enterprise Edition) Développement par composants JEE 15/50

Plate-forme Java EE Anciennement J2EE devenu JEE (suite au passage de Java 2 à 5) Une solution globale à base de composants pour les applications N-Tiers en Java Spécification proposée par Oracle Implémentations sous la forme de frameworks de développement et environnements de déploiement (serveurs d'applications) Implémentations actuelles : Implémentation de référence : Glassfish d'oracle (utilisé en TP) Libres : JBoss (WildFly) de Red Hat, JOnAS de OW2,... Propriétaires : WebSphere d'ibm,... 16/50

Java EE et les applications N-Tiers Client Java/Web JVM / navigateur Web OS 1 Objets de présentation JSP - Servlets Serveur Web / d'application Tomcat/... Application distribuée Objets de traitement métier EJB Services Web Serveur d'application Glassfish/ JBoss/... OS 2 OS 3 OS 4 Réseau physique Objets de persistance Entity/DAO Serveur d'application Hibernate/... BdD... SGBD MySQL/ ERP /... OS 5 17/50

Features de la Plate-forme JEE Supporte le développement de composants correspondants à chaque niveau (Tier) de l'architecture N-Tier Applications clientes : Java (POJO, Applets, JavaBeans,...),... Composants Web : HTML, CSS, JS, JSP, Servlets, XML, Composants métier : Java, EJB, services Web, Fournit un mécanisme d'injection de dépendances, qui répond à tout le requis des composants en termes de ressources (autres composants connus du serveur, des connexions aux BdD, ) : Dans le passé (mais toujours possible) : configuration en XML Actuellement : simples annotations dans le code Séparation nette entre aspects fonctionnels et non-fonctionnels : développeurs se focalisent sur la logique métier composants réutilisables 18/50

Communication entre les niveaux Site Web d'oracle https://docs.oracle.com/javaee/7/tutorial 19/50

Containers Java EE Ils font partie du serveur d'application Ils fournissent les services non-fonctionnels dont les composants ont besoin : interface avec le serveur Services non-fonctionnels : sécurité, gestion des transactions, nommage et répertoires de noms, et gestion de la distribution Les composants sont déployés dans ces containers 20/50

Containers Java EE - suite Site Web d'oracle https://docs.oracle.com/javaee/7/tutorial 21/50

Support des services Web La plate-forme Java EE fournit les outils nécessaires pour développer, déployer des services Web et leurs clients Service Web : application distribuée qui utilise des standards ouverts pour la description des interfaces et pour les protocoles de communication, comme WSDL, SOAP, XML, HTTP, JEE masque les détails de ces technologies de bas niveau : favoriser l'interopérabilité (conversion en XML transparente,...) 22/50

APIs Java EE Site Web d'oracle https://docs.oracle.com/javaee/7/tutorial 23/50

Plan du cours Introduction aux architectures multi-niveaux (N-Tiers) Plate-forme Java EE (Enterprise Edition) Développement par composants JEE 24/50

Composants Web Archive constituée de programmes et ressources Web : Des documents HTML, CSS et JavaScript Des images, vidéos, Des servlets et programmes JSP Des classes Java, JavaBeans, Servlets et programmes JSP : scripts côté serveur en Java Ils sont exécutés suite à la réception d'une requête HTTP Servlets : classes Java implémentant des méthodes doget, dopost,... Programmes JSP (équivalents aux scripts Php) : scripts Java transformés en servlets lors du déploiement Exécution gérée par les containers Web (serveur Web : Tomcat) 25/50

Composants Web - suite Site Web d'oracle https://docs.oracle.com/javaee/7/tutorial 26/50

Contenu des scripts JSP Scriptlet : balises <% et %> : instructions Java exécutées pendant la fabrication de la réponse HTTP pour produire différents effets de bord Expressions : balises <%= et %> expression dont la valeur, convertie en chaîne, est incluse dans le code HTML de la réponse HTTP Déclarations : balises <%! et %> déclaration de classe, de méthode, d attribut, etc, utilisables dans les scriptlet et expressions précédentes Directives d inclusion : balises <%@ et %> directive d inclusion de bibliothèques ou de fichiers Commentaire : balises <%-- et --%> 27/50

Variables pré-définies et pré-initialisées dans les scripts request (HttpServletRequest) : objet requête HTTP response (HttpServletResponse) : objet réponse HTTP out (PrintWriter) : utilisée pour écrire dans le code HTML de la réponse out.print( ) ; session (HttpSession) : objet session (si elle existe) associée à la requête HTTP application (ServletContext) : objet réifiant toute l'application... 28/50

Exemple de script JSP <html> <head> <title>converter</title> </head> <body> <h1><center>converter</center></h1> <hr> <p>enter an amount to convert:</p> <form method="get"> <input type="text" name="amount" size="25"> <br> <input type="submit" value="submit"><input type="reset" value="reset"> </form> <% String amount = request.getparameter("amount"); if ( amount!= null && amount.length() > 0 ) { Double d = new Double (amount); %> <p> <%= amount %> dollars = <%= converter.dollartoyen(d.doublevalue()) %> Yen.</p><p> <%= amount %> Yen = <%= converter.yentoeuro(d.doublevalue()) %> Euro. </p><% } %> </body> </html> 29/50

Composants EJB Composants implémentant la logique métier de l'application Composants écrits en Java avec le framework Enterprise JavaBeans (EJB) Quand utiliser des composants EJB? Application doit passer à l'échelle (nombre grandissant d'utilisateurs) Intégrité des données avec les transactions Application peut avoir des utilisateurs variés 30/50

Enterprise JavaBeans La spécification EJB a été développée par IBM en 1997 puis adoptée par Sun Microsystems (racheté depuis par Oracle) en 1999 Version majeures : EJB 1.0 (1998), EJB 2.0 (2001), puis EJB 3.0 (2006) La version en vigueur est la 3.2 (mai 2013) 31/50

Sortes de composants EJB Il existe deux sortes de composants EJB Les session beans Les message-driven beans (MDB) A l'origine, il y avait une troisième sorte de composants : entity beans (devenus de simples classes pour POJO) 32/50

Session Beans Un session bean encapsule une logique métier pouvant être invoquée par un programme client (local ou distant) Il existe trois sortes de session beans : Stateful : conserve un état conversationnel avec un client (dans les variables d'instances de la classe qui l'implémente) Stateless : ne conserve pas d'état Solution efficace : le serveur gère un pool de beans Bean implémente un service Web Singleton : bean instancié une fois pour toute l'application Gère un état partagé par plusieurs clients S'occupe de l'initialisation ou du nettoyage de l'application 33/50

Développement d'un session bean Écrire l'interface du composant : une interface Java standard public interface Converter { public double tocurrency(double amount, String currency); public Map<Monnaie,Double> toothercurrencies(double amount); } Pour une interface locale, annoter l'interface par @Local (annotation par défaut) javax.ejb.local Pour une interface distante, annoter l'interface par @Remote Dans ce cas, le composant qui l'implémente est un bean dont les méthodes peuvent être invoquées à distance (dans d'autres JVM : autres serveurs, simples JVM ou machines physiques) 34/50

Développement d'un session bean - suite Écrire la classe du composant : une classe Java ordinaire Mettre une annotation @Session : pour bean sans interface Ajouter une annotation @Stateless pour un bean sans état @Stateless public class ConverterBean implements Converter {... } Pour un bean stateful, remplacer l'annotation @Stateless par @Stateful Pour un composant distribué, ajouter l'annotation : @Remote(Converter.class) Pour un composant local, on peut mettre l'annotation @Local 35/50

Accès à un bean L'obtention d'une référence vers un bean peut se faire de deux façons : En profitant de l'injection de dépendances fournie par le container EJB : façon la plus simple mais ça ne marche que pour les composants déployés dans un serveur Java EE En utilisant le service de répertoire de noms (JNDI : Java Naming and Directory Interface) fourni par le container : solution qui marche pour n'importe quel client (Java SE,...) 36/50

L'accès à un bean via JNDI Lors du déploiement d'un composant EJB, les beans qui y sont définis s'enregistrent auprès d'un service de répertoire JNDI Le client d'un bean recherche (fait un lookup) d'un bean en utilisant trois espaces de noms JNDI possibles : java:global[/application name]/module name /enterprise bean name[/interface name ] pour rechercher un bean distant java:module/enterprise bean name/[interface name] pour rechercher un bean qui se trouve dans le même composant java:app[/module name]/enterprise bean name [/interface name] pour rechercher un bean dans la même application EAR (Enterprise ARchive) JAR : archive d'un composant EJB, WAR : archive d'un composant Web et EAR : archive d'une application (ensemble de JAR et WAR) 37/50

L'accès à un bean via JNDI - suite Invoquer la méthode lookup avec le nom JNDI du bean Exemple : InitialContext context = new InitialContext(); Converter converter = (Converter) context.lookup( "java:global/converter/converter-ejb/converterbean"); Ou : InitialContext.doLookup("java:..."); 38/50

L'accès à un bean via l'injection de dépendances Il suffit d'annoter un attribut de la classe du bean par l'annotation : @EJB (javax.ejb.ejb) Exemple : @EJB Converter converter; Le container recherchera un bean de type Converter et affectera sa référence à l'attribut converter A partir d'un script JSP, utiliser la balise <jsp:usebean id="converter" scope="session" class="conv.converter" /> 39/50

Message-Driven Beans (MDB) Composants permettant aux applications JEE de s'exécuter en partie (en traitant des messages) de façon asynchrone Ils sont utilisés pour ne pas obliger le serveur de traiter des réceptions de messages bloquantes Ils agissent comme écouteurs de messages de type JMS (Java Messaging Service), le plus souvent Ces messages peuvent être envoyées par n'importe quel autre composant JEE ou programme, en général Les MDB ne maintiennent pas d'état conversationnel avec un client (ils sont gérés sous la forme de pool de beans) 40/50

Caractéristiques des Message-Driven Beans Les MDB n'ont pas d'interfaces utilisables directement par des programmes clients Ils sont exécutés de façon automatique à la réception d'un message : leur méthode callback onmessage( ) est invoquée Le message est reçu en paramètre de la méthode onmessage Ils écoutent une destination de messages : une ressource gérée par le container EJB Les clients envoient des messages vers cette ressource 41/50

Implémentation de Message-Driven Beans Ils sont implémentés par une classe unique (classe du bean) import javax.ejb.* ; import javax.jms.*; @MessageDriven(mappedName = "jms/mailcontentqueue", activationconfig = { @ActivationConfigProperty(propertyName = "destinationtype", propertyvalue = "javax.jms.queue")}) public class MailerMDB implements MessageListener { @EJB Converter converter; public MailerMDB() { } @Override public void onmessage(javax.jms.message message) { try { if (message instanceof TextMessage) { } } catch (JMSException ex) {ex.printstacktrace();} } } 42/50

Envoi de message à un MDB Utiliser JNDI pour obtenir une référence vers la destination du message (une file de message : message queue) Ensuite déposer le message en utilisant l'api JMS Exemple : Context jndicontext = new InitialContext(); javax.jms.connectionfactory connectionfactory = (QueueConnectionFactory)jndiContext.lookup( "jms/mailcontentqueuefactory"); Connection connection = connectionfactory.createconnection(); Session sessionq = connection.createsession(false, Session.AUTO_ACKNOWLEDGE); TextMessage message = sessionq.createtextmessage(); String text = "Hello World!!!"; message.settext(text); javax.jms.queue queue = (javax.jms.queue) jndicontext.lookup("jms/mailcontentqueue"); MessageProducer messageproducer=sessionq.createproducer(queue); messageproducer.send(message); 43/50

Cycle de vie des composants EJB Site Web d'oracle https://docs.oracle.com/javaee/7/tutorial Session Bean Stateful Message-Drive Bean Session Bean Stateless 44/50

EJB et services Web Possibilités : 1) d'invoquer les opérations de services Web (SW) depuis un bean et 2) de publier un bean comme un SW WSDL (Web Services Description Language) : langage de description des interfaces de services Web Il est basé sur XML Interface de service Web : Nom et localisation du service sur le Web Ensemble d'opérations avec leurs signatures (types,...) Moyens d'utiliser le service Web : quel protocole,... Implémentation du service Web : dans n'importe quel langage SOAP (Simple Object Access Protocol) : protocole de communication (requête/réponse) entre clients et services Web Il est basé sur XML Il est souvent utilisé au dessus de HTTP 45/50

Interagir avec des services Web Générer la classe du proxy du SW et les classes JavaBeans (des types de paramètres ) en utilisant une commande du JDK wsimport http://www.webservicex.net/currencyconvertor.asmx?wsdl -d. Solution qui marche avec n'importe quel client Java (EE ou SE) Créer le proxy du service Web : CurrencyConvertorSoap cc = new CurrencyConvertor().getCurrencyConvertorSoap(); Invoquer les méthodes métiers : for(net.webservicex.currency c : net.webservicex.currency.values()) { } double rate = cc.conversionrate(net.webservicex.currency.eur, c); net.webservicex est le package qui contient les classes générées 46/50

Produire des services Web Un bean session sans état peut être publié comme service Web Son interface sera considérée comme l'interface du service Web et sa classe, l'implémentation du SW Il suffit de : Annoter la classe du bean avec @WebService (javax.jws) Annoter les méthodes publiées avec @WebMethod Il existe une méthode plus automatisée : New > Web Service > Create Web Service from Existing Session Bean Lors du déploiement, le serveur d'application génère le document WSDL qui décrit le service Web (et fournit une interface Web de test des opérations du service) 47/50

Services Web REST Il existe une forme de services Web plus légers : services Web REST (REpresentational State Transfer) Ce type de services s'appuient principalement sur HTTP (méthodes GET, POST, ) et rarement sur SOAP Communication entre client et service Web plus légère (pour les messages, pas d'enveloppe SOAP dans les req/rep HTTP) Invocation des opérations du service=accès à des ressources Web Exemple : http://currencies.apps.grandtrunk.net/getlatest/<fromcode>/<tocode> http://currencies.apps.grandtrunk.net/getlatest/eur/usd 48/50

Quelques références Tutoriel Java EE. Site Web d'oracle : https://docs.oracle.com/javaee/7/tutorial/ Introduction to Java Platform, Enterprise Edition 7. Oracle White Paper. Juin 2013. http://www.oracle.com/technetwork/java/javaee/javaee7-whitepaper-1956203.pdf Cours de C. Dony : http://www.lirmm.fr/~dony/notescours/cejb.pdf 49/50

Questions 50/50