ARCHITECTURE REST & WEB SERVICES. Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014



Documents pareils
4. SERVICES WEB REST 46

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

Architectures Web Services RESTful

Applications et Services WEB: Architecture REST

Architecture Orientée Service, JSON et API REST

Hébergement de site web Damien Nouvel

Bien architecturer une application REST

Application Web et J2EE

Les Architectures Orientées Services (SOA)

Web Tier : déploiement de servlets

L3 informatique TP n o 2 : Les applications réseau

Module BD et sites WEB

Mise en œuvre des serveurs d application

Petite définition : Présentation :

les techniques d'extraction, les formulaires et intégration dans un site WEB

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

Le cadre des Web Services Partie 1 : Introduction

Introduction aux «Services Web»

Sécurité des Web Services (SOAP vs REST)

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

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Développement des Systèmes d Information

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

(structure des entêtes)

Développement d'un logiciel VoIP BlackBerry

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Technologies pour Web Services faciles : REST, JSON

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Programmation Web Avancée Introduction aux services Web

Programmation Web. Introduction

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

Compte Rendu d intégration d application

Alfstore workflow framework Spécification technique

Environnements de Développement

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

BES WEBDEVELOPER ACTIVITÉ RÔLE

Serveurs de noms Protocoles HTTP et FTP

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

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Les services usuels de l Internet

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

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

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Problématiques de recherche. Figure Research Agenda for service-oriented computing

WebSSO, synchronisation et contrôle des accès via LDAP

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

Formation en Logiciels Libres. Fiche d inscription

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.

Architectures d'intégration de données

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

CORBA. (Common Request Broker Architecture)

Hébergement de sites Web

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

2 Chapitre 1 Introduction

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

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

Architectures web/bases de données

Création d une application JEE

Stocker des données sur Amazon S3

OpenPaaS Le réseau social d'entreprise

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Introduction à ElasticSearch

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Messagerie asynchrone et Services Web

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Plateforme PAYZEN. Définition de Web-services

Editeurs de logiciels. Votre guide SMS

Présentation Alfresco

Introduction à Microsoft InfoPath 2010

Les Services Web. Jean-Pierre BORG EFORT

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

ABB personnalise son service client avec la plate-forme en ligne One ABB on the Web Jan Anders Solvik, Håkan Wärdell, Nathan Becker

Application web de gestion de comptes en banques

Introduction à HTTP. Chapitre HTTP 0.9

Proposition d une architecture pour ebay, en mettant l accent sur les notions de scalabilité, de résilience, et de tolérance aux pannes.

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Software Engineering and Middleware A Roadmap

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


Systèmes d'informations historique et mutations

Les architectures 3-tiers Partie I : les applications WEB

API Web Service TéléAlerte

API SMS HTTP REST. Intégrer facilement le service Envoyer SMS Pro avec votre application métier. Version : Révision : 03/09/2014 Page 1/31

Architectures n-tiers Intergiciels à objets et services web

Devenez un véritable développeur web en 3 mois!

Joomla! Création et administration d'un site web - Version numérique

Transcription:

ARCHITECTURE REST & WEB SERVICES Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014 1

Introduction Présentation de Rest Serveur Java JAX-RS Démonstration 2

Introduction Présentation de Rest Serveur Java JAX-RS Démonstration 3

WEB SERVICES Un service est un travail réalisé par un fournisseur pour le compte d un consommateur Un service web est un programme informatique permettant la communication et l échange de données entre applications et systèmes hétérogènes dans des environnements distribués Wikipédia Ensemble de fonctionnalités métier exposées sur internet/intranet par et pour des application / machines Communication inter application 4

WEB SERVICES - TECHNOLOGIES Un peu d histoire DCE / RCP - Distribued Computing Environnement CORBA Common Object Request Broker Architecture DCOM Distribued Component Object Model RMI Monde Java Plusieurs technologies permettent d implementer les Web Services XML-RPC SOAP services Representational State Transfer (REST) 5

Introduction Présentation de Rest Serveur Java JAX-RS Démonstration 6

REPRESENTATIONNAL STATE TRANSFER Créé pour interagir avec les systèmes distribués Architecture orienté ressources Créé en 2000 par Roy Fielding - Thèse de doctorat Projet Waka Principal auteur de la spécification HTTP Membre fondateur de la fondation Apache Développeur du serveur Web Apache 7

REPRESENTATIONNAL STATE TRANSFER REST n est pas : Un standard Un protocole Un format REST est : Bonne pratique Pas de spécifications de la W3C Une approche pour construire une application Un type d architecture pour les systèmes distribués 8

REPRESENTATIONNAL STATE TRANSFER Web services = interopérabilité Indépendant de la plateforme Indépendant du language Utilise le Protocole HTTP pour échanger l échange de données 9

CONTRAINTES Contraintes émises par Roy Fielding Client / Serveur - HTTP Stateless Sans état Cache Architecture multi couches 10

ARCHITECTURE 11

REST - PRINCIPE CLÉS Une ressource distribuée sur un serveur distant Un identifiant de la ressource Des «verbes» HTTP permettant d agir sur la ressource Une représentation de la ressource 12

UNE RESSOURCE DISTRIBUÉE 13

URL : IDENTIFIANT DE LA RESSOURCE Uniforme Ressource Locator Deux types d URL : URL member qui désigne une seule ressource ( Livre ) URL collection qui désigne une liste de ressources de même type http://address:port/rootcontext/ressource(s) 14

HTTP IDENTIFIANT DES OPÉRATIONS GET PUT DELETE POST Usage : Read Lecture d une ressource / d une collection 200 OK 404 NOT FOUND Usage : Update Mise à jour d une ressource 201 CREATED 204 NO CONTENT Usage : Delete Supression d une ressource 200 OK 404 NOT FOUND 304 NOT MODIFIED Usage Create Création d une ressource 200 OK 404 NOT FOUND 15

EXEMPLE - LIBRARY URL Méthode Action http://locahost:8080/library GET Récupération de tous les livres de la bibliothèque. http://localhost:8080/library/ isbn-12 GET Récupération dans la bibliothèque d un livre avec id = 12 http://localhost:8080/library/ POST Création d un livre dans la bibliothèque : Paramètres passées dans le corps de la requête HTTP http://localhost:8080/library/ 15-HarryPotter-JKRowling- Fantasy POST Création d un livre dans la bibliothèque avec les paramètres passée via l URL http://locahost:8080/library/ isbn-12 http://locahost:8080/library/ isbn-12 PUT DELETE Modifie le livre d ID 12 avec les paramètres passés dans le corps de la requête Supprime le livre d ID 12 de la bibliothèque 16

RÉPONSES HTTP REPRÉSENTATION DES RESSOURCES Le serveur ne renvoie pas une ressource mais une représentation de la ressource. Pas de format d échange imposé Entête HTTP contient le type de la représentation : Content Type Une ressource : Plusieurs représentations possibles HTML CVS XML JSON 17

JSON ET XML { } Isbn : 2070541274, author : JK rowling, title : Harry potter n X, style : Fantasy <Book> <Isbn>2070541274</isbn> <author>jk Rowling</author> <title> Harry Potter.. </title> <style> Fantasy </style> </Book> 18

QUI L UTILISE? 19

AVANTAGES DE REST Facile à comprendre et à implémenter ( Framework dans plusieurs langages : Java Python - Php ) Un client HTTP suffit pour accéder à un service RESTful. Interopérabilité des systèmes Interopérabilité des langages Architecture scalable : Possibilité de répartir les requêtes sur plusieurs serveurs stateless. L'utilisation de formats standards comme JSON ou XML assure la compatibilité dans le temps. 20

INCONVÉNIENTS/LIMITATIONS DE REST La sécurité est inexistante Utilisation d HTTPS + Authentification Le client doit conserver des données localement (stateless) Consommation en bande passante Données de session Peut être problématique pour les Smartphones 21

Introduction Présentation de Rest Serveur Java JAX-RS Démonstration 22

REST & JAVA - SPÉCIFICATION JAX-RS REST and Java Java API for RESTFful web Services JSR 311 - JSR 339 Version 2.0 Mise en oeuvre sur un serveur d application Le développement des services Web repose sur l utilisation de classes Java et d annotations. 23

SPÉCIFICATION JAS-RX Plusieurs implémentations possibles de la spécification JAX-RS JERSEY : Oracle Jersey.java.net CXF : Apache Xxf.apache.org RESTEasy : Jboss Jboss.org/resteasy RESTlet Restlet.com 24

JAX-RS : ARCHITECTURE 25

HELLO WORLD @Path("/helloworld") public class HelloWorldRestful { } @GET @Produce(MediaType.Html) public String gethelloworld(){ } // Code source associé Return «Hello World»; Ø Définition d un chemin pour associer la ressource hello a une URL Ø Lecture de la ressource HelloWorld via une requete HTTP de type GET 26

FIL ROUGE : GESTION D UNE BIBLIOTHÈQUE Présentation des contextes JAX-RS : Gestion d une bibliothèque Présentation des annotations Jax-RS Mise en place d un système CRUD ( Create Read Update Delete) Bibliothèque & livres = Ressources Une bibliothèque est composée de livre On peut lire - ajouter supprimer mettre a jour un livre On peut effectuer une recherche en fonction de critères (ISBN et auteur ) On peut acceder a tous les livres présent dans la bibliothèque 27

@PATH Une classe java doit être annotée par @Path pour qu elle soit traitée par des requêtes HTTP L annotation @Path sur une classe définit des ressources racines (Root Resources Class) La valeur donnée à @Path correspond à une expression URL relative au contexte de l application Web http://localhost:8080/myrestservice/library Permet d accéder à la bibliothèque L annotation @Path sur une méthode permet de spécifier le traitement 28

@PATH L annotation @Path peut également annoter des méthodes de la classe L URL est la concaténation du @Path de la classe et du @Path de la méthode Exemple : Je veux tous les livre d un auteur précis @Path(«/book/author-{author}») @GET @Path(«author/{author}») public void getbyauthor(@pathparam(«author» String author){ } // Do Something 29

MÉTHODES HTTP : @GET, @POST, @PUT, @DELETE L annotation des méthodes Java permet de traiter des requêtes HTTP suivant le type de méthode (GET,POST..) Annotation disponibles : @GET, @POST, @PUT, @DELETE et @HEAD Uniquement utilisable sur des méthodes Java et non sur des classes Le nom de la méthode importe peu. C est l annotation qui importe et qui permet d aiguiller la requête. Opération CRUD sur les ressources 30

@PATHPARAM TEMPLATE PARAMETERS Possibilité de définir des expressions plus complexes appelées Template Parameters Le client envoie des informations dans l url Contenu limité par { } Spécifie l isbn du livre recherché Spécifie l auteur dont on veut récupérer les livres 31

@PATHPARAM @GET @Path(«ibsn/{isbn}») public void getbyisbn(@pathparam(«isbn» int isbn){ } System.out.println(«isbn»); @GET @Path(«author/{author}») public void getbyauthor(@pathparam(«author» String author){ } System.out.println(«author»); 32

REPRÉSENTATION @CONSUMES @PRODUCES L annotation @Consumes est utilisée pour spécifier le / les types MIME qu une méthode de ressource peut accepter L annotation @Produces est utilisée pour spécifier le / les types MIME qu une méthode de ressource peut produire Information présente dans l entête HTTP Content-Type 33

DÉMONSTRATION 34

CONCLUSION A retenir : Rest Architecture systèmes distribués Une ressource distribuée sur un serveur distant Un identifiant de ressource : URL Des «verbe» HTTP permettant la communication client / serveur Une représentation de la ressource 35

Merci Questions? 36