SlideShare une entreprise Scribd logo
1  sur  66
Page     Ressource Oriented Architecture L’architecture du Web et le REST
[object Object],[object Object],[object Object],[object Object],[object Object],Qui ? Page  
Page     Objectifs ,[object Object],[object Object]
Page     Agenda L’architecture des Mash-Up Crée une application RESTful  L’architecture orientée ressource REST Le débat SOAP/REST Ressources & Services
D’un Web de pages
A un web de Ressources
Mash-up
L’approche REST HTTP URI XML Abstraction ( Web 2.0) ‏ ROA Technologies Style  d'architecture Architecture Technologies
Crée une application RESTful
[object Object],[object Object],[object Object],[object Object],[object Object],1  Donner un  identifiant unique  à toutes les   choses  intéressantes ou   Donner une  URI  à toutes les  ressources Page  
2  Permettre plusieurs  représentations Page     Représentation ,[object Object]
2  Permettre plusieurs  représentations Page     Représentation <sessions> <date>11/02/2008</date> <session id=&quot;1&quot;> <time></time> <name>Session Plénière</name> <summary> Environnements Web, développement logiciel, recherche et développement. Tels sont quelques uns des sujets qui seront démontrés. </summary> </session> ,[object Object]
2  Permettre plusieurs  représentations Page     Représentation <sessions> <date>11/02/2008</date> <session id=&quot;1&quot;> <name>Session Plénière</name> </session> ,[object Object]
3   Mettre des  liens  dans les  représentations Page     <sessions> <date>11/02/2008</date> <session id=&quot;1&quot;> <time></time> <name>Session Plénière</name> <summary> Environnements Web, développement logiciel, recherche et développement. Tels sont quelques uns des sujets qui seront démontrés. </summary> </session> <session id=&quot;5&quot; ref=&quot; http://dng.org/symposium/2008/sessions/roa &quot;> <time>16:00 - 17:00</time> <name>Resource Oriented Architecture (ROA)</name> <summary></summary> <speaker ref=&quot; http://dng.org/symposium/2008/speakers/aurelien &quot;> Aurélien Pelletier</speaker> </session>
4  Utiliser  l'interface uniforme  d'HTTP Page  
GET Page     GET retourne une représentation de l'état courant d'une ressource Get est idempotent La même requête produit à chaque invocation le même résultat sur le serveur. Ne change pas l'état d'une ressource
[object Object],[object Object],[object Object],[object Object],Page     POST
[object Object],[object Object],[object Object],[object Object],[object Object],Page     PUT & DELETE
[object Object],[object Object],[object Object],Page     OPTION & HEAD
Page     Approche services RPC Calculatrice 4 opérations
Page     Approche ressources REST http://calc/soustraction?val1=xx&val2=yy http://calc/multiplication?val1=xx&val2=yy http://calc/addition?val1=xx&val2=yy http://calc/division?val1=xx&val2=yy Calculatrice 4 opérations
Calculatrice 4 opérations Page     http://calc/chiffres/1 http://calc/operations/division  http://calc/operations/addition http://calc/operations/... http://calc/calculs/ http://calc/nombres/ Approche ressources REST
Page     Calculatrice 4 opérations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Requête Réponse
Page     Calculatrice 4 opérations GET /calculs/UID HTTP/1.1 Host: calc 200 OK <calcul> <nombre> http://calc/ nombres/douze </nombre> <operation>http://calc/operation/addition</operation> <nombre> http://calc/ nombres/cinq </nombre> <result ref =&quot;http://calc/nombres/resultUID&quot;>17</result> <calcul>
Application RESTful ,[object Object],[object Object],[object Object],[object Object]
Page     Architecture Orientée Ressource
4 ième  génération d'architecture Net - Ware 3 tiers Client léger Hard - Ware Mainframe Client passif Soft - Ware Client-server Client lourd Info - Ware ROA Client riche
Page     Affichage Construction  des écrans Traitements métiers Données  persistantes Données de sessions Mainframe  /  Client passif
Page     Interface  ODBC/JDBC/... Poste client Base de données Client-serveur  /  Client lourd
3 tiers   /  Client léger Page     Interface  HTTP Navigateur Base de données Serveur d'applications Interface  ODBC/JDBC/...
ROA  /  Client riche Page     Interface de services  Ressources Client riche Serveur d'applications Base de données Interface  ODBC/JDBC/...
Identifiant, ressource, représentation Page     Architecture of the World Wide Web, Volume One W3C Recommendation 15 December 2004 http://www.w3.org/TR/webarch/
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Cool URI don't change Page  
REST Page  
Page     Representational State Transfer REST Le terme provient de la thèse de Roy Fielding en 2000 - principal architecte d'HTTP 1.1 - co-auteur de la spécification des URI. L'appel à GET  transfère la représentation d'une ressource. Cette représentation place le client dans un certain état. Suivre un lien va transférer une nouvelle représentation et changer l'état du client. => Representational State Transfer
Page     Representational State Transfer ,[object Object],[object Object],[object Object],[object Object]
Envoyer un message  sur le réseau Page  
Page     Principes d'architecture généraux
Page     Principes d'architecture généraux Système en couche Capacité à monter en charge Sécurité Intégration au legacy Code à la demande (optionnel) Evolutivité Javascript => AJAX
Interface uniforme Fonctionne avec 4 contraintes  complémentaires   Identification des ressources (URI) Manipulation des ressources par des représentations Messages auto-descriptif L’Hypermedia comme moteur de l’état de l’application L’interface uniforme (principe de généricité) +   Simplicité +  Evolutivité -   Efficacité
Le débat: SOAP vs   REST Page  
Ressources et Services Page     Objectif Style d'architecture REST SOAP WSDL UDDI WS-* HTTP URI XML Aligner l'IT sur le métier Aligner l'IT  sur le Web SOA Ressources Services + Architecture ROA Technologies
Page     SOAP WSDL UDDI WS-* HTTP URI XML Les arguments  des partisans d’HTTP seul HTTP vs SOAP Technologies
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Page     Web Services ?
Page     WS-* est trop complexe Ce sont les « big vendors » qui ont inventé et poussent SOAP / WS-*
Interopérabilité Page     SOAP WS-*  => Design by commitee Interopérabilité moyenne REST  s'appuie sur des standards existant et largement répandu: Identification des ressources URI Transport et l'interface générique HTTP Représentations HTML , XML, gif, ... Type Mime Des clients HTTP et des parseurs XML de qualité sont disponibles pour tous les langages   Véritable Interopérabilité SOAP/WS-* sont les DRM de la SOA, HTTP en est le MP3.
Page     SOAP WSDL UDDI WS-* HTTP URI XML Les arguments  des partisans de SOAP HTTP vs SOAP Technologies
Page     Fonctionnalités avancées
Page     Conversation machine to machine HTTP + XML fonctionne très bien pour les échanges Humain/serveur au travers d'un navigateur. SOAP/WS-* est plus adapté pour des échanges bidirectionnels entre composants serveur machine to machine.
REST-ROA / SOA Page     Style d'architecture REST SOA Architecture ROA
REST-ROA / SOA Page     ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ressources et Services Page     Ressources Services
Ressources et Services Page     Une seule interface uniforme générique Plusieurs interfaces spécialisées Verbes Noms Services Ressources Orienté données Plus de possibilités de réutilisation Moins de contrôle Plus de simplicité Orienté traitement Meilleure efficacité Plus de contrôle Plus de complexité
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ressources et Services Page  
Ressources et Services Page     Traitements Données Back end Front end Services SOA SOAP/WS-* Ressources REST HTTP
Softwares + Services + Ressources Page     procédural Objet Service Service procédural Objet procédural procédural Objet Ressource
Page     ,[object Object],[object Object],[object Object],[object Object],[object Object],Softwares + Services + Ressources
[object Object],[object Object],[object Object],[object Object],[object Object],Innovation Page  
Restafarians ? Page  
La bible Page  
Le nouveau testament Page  
Les apôtres ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Page  
Conclusion Page     ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Remerciements
Page     Annexes
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Page     Comment gérer la fiabilité en HTTP

Contenu connexe

Tendances

Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web servicesoussemos
 
Services web rest_support_cours_nfaoui_el_habib
Services web rest_support_cours_nfaoui_el_habibServices web rest_support_cours_nfaoui_el_habib
Services web rest_support_cours_nfaoui_el_habibEl Habib NFAOUI
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introductionMoez Re
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?GreenIvory
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 eechdalel
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A09
Normes avancées du Web  - GTI780 & MTI780 - ETS - A09Normes avancées du Web  - GTI780 & MTI780 - ETS - A09
Normes avancées du Web - GTI780 & MTI780 - ETS - A09Claude Coulombe
 

Tendances (12)

Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web services
 
Langage HTML
Langage HTMLLangage HTML
Langage HTML
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
 
Soap, wsdl et uddi
Soap, wsdl et uddiSoap, wsdl et uddi
Soap, wsdl et uddi
 
Services web rest_support_cours_nfaoui_el_habib
Services web rest_support_cours_nfaoui_el_habibServices web rest_support_cours_nfaoui_el_habib
Services web rest_support_cours_nfaoui_el_habib
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
Chap1 p1-introduction
Chap1 p1-introductionChap1 p1-introduction
Chap1 p1-introduction
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 
Dotnet j2 ee
Dotnet j2 eeDotnet j2 ee
Dotnet j2 ee
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A09
Normes avancées du Web  - GTI780 & MTI780 - ETS - A09Normes avancées du Web  - GTI780 & MTI780 - ETS - A09
Normes avancées du Web - GTI780 & MTI780 - ETS - A09
 

En vedette

Drilling engineering
Drilling engineeringDrilling engineering
Drilling engineeringSteffones K
 
Fogler elements of chemical reaction engineering 3rd
Fogler   elements of chemical reaction engineering 3rdFogler   elements of chemical reaction engineering 3rd
Fogler elements of chemical reaction engineering 3rdEder Yair Nolasco Terrón
 
Material Safety Data Sheet
Material Safety Data Sheet Material Safety Data Sheet
Material Safety Data Sheet Reliance
 
Advanced Chemical Reaction Engineering-Part-1-10-Apr-2016
Advanced Chemical Reaction Engineering-Part-1-10-Apr-2016Advanced Chemical Reaction Engineering-Part-1-10-Apr-2016
Advanced Chemical Reaction Engineering-Part-1-10-Apr-2016Muhammad Rashid Usman
 
Mechatronics integrated aproach
Mechatronics integrated aproachMechatronics integrated aproach
Mechatronics integrated aproachRobert Mendez
 
Advanced Chemical Engineering Thermodynamics-31-July-2016
Advanced Chemical Engineering Thermodynamics-31-July-2016Advanced Chemical Engineering Thermodynamics-31-July-2016
Advanced Chemical Engineering Thermodynamics-31-July-2016Muhammad Rashid Usman
 

En vedette (10)

Drilling engineering
Drilling engineeringDrilling engineering
Drilling engineering
 
Fogler elements of chemical reaction engineering 3rd
Fogler   elements of chemical reaction engineering 3rdFogler   elements of chemical reaction engineering 3rd
Fogler elements of chemical reaction engineering 3rd
 
Gasoline
GasolineGasoline
Gasoline
 
Kriya kayu jilid 1 smk x
Kriya kayu jilid 1 smk xKriya kayu jilid 1 smk x
Kriya kayu jilid 1 smk x
 
Material Safety Data Sheet
Material Safety Data Sheet Material Safety Data Sheet
Material Safety Data Sheet
 
Steam condensors
Steam condensorsSteam condensors
Steam condensors
 
Advanced Chemical Reaction Engineering-Part-1-10-Apr-2016
Advanced Chemical Reaction Engineering-Part-1-10-Apr-2016Advanced Chemical Reaction Engineering-Part-1-10-Apr-2016
Advanced Chemical Reaction Engineering-Part-1-10-Apr-2016
 
Mechatronics integrated aproach
Mechatronics integrated aproachMechatronics integrated aproach
Mechatronics integrated aproach
 
Advanced Chemical Engineering Thermodynamics-31-July-2016
Advanced Chemical Engineering Thermodynamics-31-July-2016Advanced Chemical Engineering Thermodynamics-31-July-2016
Advanced Chemical Engineering Thermodynamics-31-July-2016
 
Welder qualification
Welder qualificationWelder qualification
Welder qualification
 

Similaire à Resource Oriented Architecture

Web APIs in Action (in French)
Web APIs in Action (in French)Web APIs in Action (in French)
Web APIs in Action (in French)Restlet
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'artTugdual Grall
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsVincent Perrin
 
Publication de documents sur le Web
Publication de documents sur le WebPublication de documents sur le Web
Publication de documents sur le WebSaïd Radhouani
 
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5Mohamed Nemili
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Microsoft
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)Restlet
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A08
Normes avancées du Web  - GTI780 & MTI780 - ETS - A08Normes avancées du Web  - GTI780 & MTI780 - ETS - A08
Normes avancées du Web - GTI780 & MTI780 - ETS - A08Claude Coulombe
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applicationsgoldoraf
 
BordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets JavaBordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets JavaCamblor Frédéric
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)Restlet
 
Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Frédéric Queudret
 
Rest pour l'interopérabilité
Rest pour l'interopérabilitéRest pour l'interopérabilité
Rest pour l'interopérabilitépeportier
 
Développement Web
Développement WebDéveloppement Web
Développement Webmastertic
 
Présentation Quotero Soirée Du 5 Mars 2009
Présentation Quotero Soirée Du 5 Mars 2009Présentation Quotero Soirée Du 5 Mars 2009
Présentation Quotero Soirée Du 5 Mars 2009Core-Techs
 
Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1Vlad Posea
 

Similaire à Resource Oriented Architecture (20)

Web APIs in Action (in French)
Web APIs in Action (in French)Web APIs in Action (in French)
Web APIs in Action (in French)
 
Portails Etat De L'art
Portails  Etat De L'artPortails  Etat De L'art
Portails Etat De L'art
 
WebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet ApplicationsWebSphere Portal & Rich Internet Applications
WebSphere Portal & Rich Internet Applications
 
7 rest
7 rest7 rest
7 rest
 
Publication de documents sur le Web
Publication de documents sur le WebPublication de documents sur le Web
Publication de documents sur le Web
 
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
[TechDays 2012] : Quoi de neuf dans ASP.NET 4.5
 
Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5Quoi de neuf dans ASP.NET 4.5
Quoi de neuf dans ASP.NET 4.5
 
De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)De l'Open Source à l'Open API (in French)
De l'Open Source à l'Open API (in French)
 
Association 2 0
Association 2 0Association 2 0
Association 2 0
 
Normes avancées du Web - GTI780 & MTI780 - ETS - A08
Normes avancées du Web  - GTI780 & MTI780 - ETS - A08Normes avancées du Web  - GTI780 & MTI780 - ETS - A08
Normes avancées du Web - GTI780 & MTI780 - ETS - A08
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
BordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets JavaBordeauxJUG : Portails &amp; Portlets Java
BordeauxJUG : Portails &amp; Portlets Java
 
Investir sur son API web (in French)
Investir sur son API web (in French)Investir sur son API web (in French)
Investir sur son API web (in French)
 
Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009Silverlight 3.MSDays EPITA 11/06/2009
Silverlight 3.MSDays EPITA 11/06/2009
 
Rest pour l'interopérabilité
Rest pour l'interopérabilitéRest pour l'interopérabilité
Rest pour l'interopérabilité
 
Développement Web
Développement WebDéveloppement Web
Développement Web
 
RSS
RSSRSS
RSS
 
Présentation Quotero Soirée Du 5 Mars 2009
Présentation Quotero Soirée Du 5 Mars 2009Présentation Quotero Soirée Du 5 Mars 2009
Présentation Quotero Soirée Du 5 Mars 2009
 
RIA
RIARIA
RIA
 
Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1Introduction dans la Programmation Web Course 1
Introduction dans la Programmation Web Course 1
 

Plus de DNG Consulting

Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)DNG Consulting
 
Présentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTPrésentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTDNG Consulting
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day DNG Consulting
 
Session GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraSession GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraDNG Consulting
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity frameworkDNG Consulting
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 

Plus de DNG Consulting (9)

Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)Introduction aux Web components (DNG Consulting)
Introduction aux Web components (DNG Consulting)
 
Présentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTPrésentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWT
 
Devoxx fr
Devoxx frDevoxx fr
Devoxx fr
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day
 
Session GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraSession GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 Cobra
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity framework
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 

Resource Oriented Architecture

  • 1. Page  Ressource Oriented Architecture L’architecture du Web et le REST
  • 2.
  • 3.
  • 4. Page  Agenda L’architecture des Mash-Up Crée une application RESTful L’architecture orientée ressource REST Le débat SOAP/REST Ressources & Services
  • 6. A un web de Ressources
  • 8. L’approche REST HTTP URI XML Abstraction ( Web 2.0) ‏ ROA Technologies Style d'architecture Architecture Technologies
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. 3 Mettre des liens dans les représentations Page  <sessions> <date>11/02/2008</date> <session id=&quot;1&quot;> <time></time> <name>Session Plénière</name> <summary> Environnements Web, développement logiciel, recherche et développement. Tels sont quelques uns des sujets qui seront démontrés. </summary> </session> <session id=&quot;5&quot; ref=&quot; http://dng.org/symposium/2008/sessions/roa &quot;> <time>16:00 - 17:00</time> <name>Resource Oriented Architecture (ROA)</name> <summary></summary> <speaker ref=&quot; http://dng.org/symposium/2008/speakers/aurelien &quot;> Aurélien Pelletier</speaker> </session>
  • 15. 4 Utiliser l'interface uniforme d'HTTP Page 
  • 16. GET Page  GET retourne une représentation de l'état courant d'une ressource Get est idempotent La même requête produit à chaque invocation le même résultat sur le serveur. Ne change pas l'état d'une ressource
  • 17.
  • 18.
  • 19.
  • 20. Page  Approche services RPC Calculatrice 4 opérations
  • 21. Page  Approche ressources REST http://calc/soustraction?val1=xx&val2=yy http://calc/multiplication?val1=xx&val2=yy http://calc/addition?val1=xx&val2=yy http://calc/division?val1=xx&val2=yy Calculatrice 4 opérations
  • 22. Calculatrice 4 opérations Page  http://calc/chiffres/1 http://calc/operations/division http://calc/operations/addition http://calc/operations/... http://calc/calculs/ http://calc/nombres/ Approche ressources REST
  • 23.
  • 24. Page  Calculatrice 4 opérations GET /calculs/UID HTTP/1.1 Host: calc 200 OK <calcul> <nombre> http://calc/ nombres/douze </nombre> <operation>http://calc/operation/addition</operation> <nombre> http://calc/ nombres/cinq </nombre> <result ref =&quot;http://calc/nombres/resultUID&quot;>17</result> <calcul>
  • 25.
  • 26. Page  Architecture Orientée Ressource
  • 27. 4 ième génération d'architecture Net - Ware 3 tiers Client léger Hard - Ware Mainframe Client passif Soft - Ware Client-server Client lourd Info - Ware ROA Client riche
  • 28. Page  Affichage Construction des écrans Traitements métiers Données persistantes Données de sessions Mainframe / Client passif
  • 29. Page  Interface ODBC/JDBC/... Poste client Base de données Client-serveur / Client lourd
  • 30. 3 tiers / Client léger Page  Interface HTTP Navigateur Base de données Serveur d'applications Interface ODBC/JDBC/...
  • 31. ROA / Client riche Page  Interface de services Ressources Client riche Serveur d'applications Base de données Interface ODBC/JDBC/...
  • 32. Identifiant, ressource, représentation Page  Architecture of the World Wide Web, Volume One W3C Recommendation 15 December 2004 http://www.w3.org/TR/webarch/
  • 33.
  • 34. REST Page
  • 35. Page  Representational State Transfer REST Le terme provient de la thèse de Roy Fielding en 2000 - principal architecte d'HTTP 1.1 - co-auteur de la spécification des URI. L'appel à GET transfère la représentation d'une ressource. Cette représentation place le client dans un certain état. Suivre un lien va transférer une nouvelle représentation et changer l'état du client. => Representational State Transfer
  • 36.
  • 37. Envoyer un message sur le réseau Page 
  • 38. Page  Principes d'architecture généraux
  • 39. Page  Principes d'architecture généraux Système en couche Capacité à monter en charge Sécurité Intégration au legacy Code à la demande (optionnel) Evolutivité Javascript => AJAX
  • 40. Interface uniforme Fonctionne avec 4 contraintes complémentaires Identification des ressources (URI) Manipulation des ressources par des représentations Messages auto-descriptif L’Hypermedia comme moteur de l’état de l’application L’interface uniforme (principe de généricité) + Simplicité + Evolutivité - Efficacité
  • 41. Le débat: SOAP vs REST Page 
  • 42. Ressources et Services Page  Objectif Style d'architecture REST SOAP WSDL UDDI WS-* HTTP URI XML Aligner l'IT sur le métier Aligner l'IT sur le Web SOA Ressources Services + Architecture ROA Technologies
  • 43. Page  SOAP WSDL UDDI WS-* HTTP URI XML Les arguments des partisans d’HTTP seul HTTP vs SOAP Technologies
  • 44.
  • 45. Page  WS-* est trop complexe Ce sont les « big vendors » qui ont inventé et poussent SOAP / WS-*
  • 46. Interopérabilité Page  SOAP WS-* => Design by commitee Interopérabilité moyenne REST s'appuie sur des standards existant et largement répandu: Identification des ressources URI Transport et l'interface générique HTTP Représentations HTML , XML, gif, ... Type Mime Des clients HTTP et des parseurs XML de qualité sont disponibles pour tous les langages Véritable Interopérabilité SOAP/WS-* sont les DRM de la SOA, HTTP en est le MP3.
  • 47. Page  SOAP WSDL UDDI WS-* HTTP URI XML Les arguments des partisans de SOAP HTTP vs SOAP Technologies
  • 48. Page  Fonctionnalités avancées
  • 49. Page  Conversation machine to machine HTTP + XML fonctionne très bien pour les échanges Humain/serveur au travers d'un navigateur. SOAP/WS-* est plus adapté pour des échanges bidirectionnels entre composants serveur machine to machine.
  • 50. REST-ROA / SOA Page  Style d'architecture REST SOA Architecture ROA
  • 51.
  • 52. Ressources et Services Page  Ressources Services
  • 53. Ressources et Services Page  Une seule interface uniforme générique Plusieurs interfaces spécialisées Verbes Noms Services Ressources Orienté données Plus de possibilités de réutilisation Moins de contrôle Plus de simplicité Orienté traitement Meilleure efficacité Plus de contrôle Plus de complexité
  • 54.
  • 55. Ressources et Services Page  Traitements Données Back end Front end Services SOA SOAP/WS-* Ressources REST HTTP
  • 56. Softwares + Services + Ressources Page  procédural Objet Service Service procédural Objet procédural procédural Objet Ressource
  • 57.
  • 58.
  • 62.
  • 63.
  • 64.
  • 65. Page  Annexes
  • 66.

Notes de l'éditeur

  1. Entreprise JavaBeans 3.0 Entreprise JavaBeans 3.0