Slideshare.net (beta)

 

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 1 (more)

Resource Oriented Architecture

From samijaber, 6 months ago

Resource Oriented Architecture, Symposium DNG

1922 views  |  1 comment  |  1 favorite  |  75 downloads  |  1 embed (Stats)
Embed
options

More Info

This slideshow is Public
Total Views: 1922
on Slideshare: 1765
from embeds: 157

Slideshow transcript

Slide 1: Ressource Oriented Architecture L’architecture du Web et le REST Page  1

Slide 2: Qui ? urélien Pelletier Architecte Logiciel Expertise Java En charge de la veille technologique Web 2.0 au sein du département innovation d’Atos Origin http://blogpro.toutantic.net Page  2

Slide 3: Objectifs  Comprendre le style d’architecture REST  Comprendre les différences entre service et ressource Page  3

Slide 4: L’architecture des Mash-Up Crée une application RESTful L’architecture orientée ressource Agenda REST Le débat SOAP/REST Ressources & Services Page  4

Slide 5: D’un Web de pages

Slide 6: A un web de Ressources

Slide 7: Mash-up

Slide 8: L’approche Style REST d'architecture Abstraction ROA Architecture ( Web 2.0) HTTP URI Technologies Technologies XML

Slide 9: Crée une application RESTful

Slide 10: 1 Donner un identifiant unique à toutes les choses intéressantes ou Donner une URI à toutes les ressources http://dng.org/symposium/2008/ http://dng.org/symposium/2008/sessions http://dng.org/symposium/2008/sessions/ROA http://dng.org/symposium/2008/speakers/aurelien http://dng.org/symposium/2008/participants/ Page  10

Slide 11: 2 Permettre plusieurs représentations GET http://dng.org/symposium/2008/sessions/day1 Accept : text/html Représentation Page  11

Slide 12: 2 Permettre plusieurs représentations GET http://dng.org/symposium/2008/sessions/day1 Accept : application/xml <sessions> Représentation <date>11/02/2008</date> <session id="1"> <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> Page  12

Slide 13: 2 Permettre plusieurs représentations GET http://dng.org/symposium/2008/sessions/day1?format=court Accept : application/xml <sessions> <date>11/02/2008</date> <session id="1"> <name>Session Plénière</name> </session> Représentation Page  13

Slide 14: 3 Mettre des liens dans les représentations <sessions> <date>11/02/2008</date> <session id="1"> <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="5" ref="http://dng.org/symposium/2008/sessions/roa"> <time>16:00 - 17:00</time> <name>Resource Oriented Architecture (ROA)</name> <summary></summary> <speaker ref="http://dng.org/symposium/2008/speakers/aurelien"> Aurélien Pelletier</speaker> </session> Page  14

Slide 15: 4 Utiliser l'interface uniforme d'HTTP Page  15

Slide 16: GET 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 Page  16

Slide 17: POST POST crée une nouvelle ressource C'est le serveur qui décide de l'URI de la nouvelle ressource POST n'est pas idempotent ! Crée une nouvelle URI Page  17

Slide 18: PUT & DELETE PUT crée ou modifie une ressource Dans le cas d'une création c'est le client qui décide de l'URI de la ressource Change l'état d'une ressource PUT est idempotent DELETE efface logiquement la ressource DELETE est idempotent Page  18

Slide 19: OPTION & HEAD HEAD Obtenir uniquement les entêtes OPTIONS Liste des méthodes supportées par une ressource HTML 4 ne supporte que GET et POST Page  19

Slide 20: Calculatrice 4 opérations Approche services RPC Page  20

Slide 21: Calculatrice 4 opérations 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 Approche ressources REST Page  21

Slide 22: Calculatrice 4 opérations http://calc/nombres/ http://calc/calculs/ http://calc/chiffres/1 http://calc/operations/division http://calc/operations/addition http://calc/operations/... Approche ressources REST Page  22

Slide 23: Calculatrice 4 opérations PUT /nombres/douze HTTP/1.1 Host: calc Requête <nombre> <dizaine>http://calc/chiffres/1<dizaine> <unite>http://calc/chiffres/2<unite> </nombre> 201 Created POST /calculs/ HTTP 1.1 Host: calc <calcul> <nombre>http://calc/nombres/douze</nombre> <operation>http://calc/operation/addition</operation> <nombre>http://calc/nombres/cinq</nombre> <calcul> 201 Created Location: http://calc/calculs/UID Réponse Page  23 <result>17</result>

Slide 24: 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 ="http://calc/nombres/resultUID">17</result> <calcul> Page  24

Slide 25: Application RESTful 1 Identifier les ressources 2 Définir les représentations 3 Relier les représentations par des liens 4 Utiliser l’interface uniforme

Slide 26: Architecture Orientée Ressource Page  26

Slide 27: 4ième génération d'architecture Info - Ware ROA Net - Ware Client riche 3 tiers Client léger Soft - Ware Client-server Hard - Ware Client lourd Mainframe Client passif

Slide 28: Mainframe / Client passif Données  Données de  persistantes sessions Affichage Traitements Construction  métiers des écrans Page  28

Slide 29: Client-serveur / Client lourd Base de données Poste client Interface  ODBC/JDBC/... Page  29

Slide 30: 3 tiers / Client léger Serveur  Base de données Navigateur d'applications Interface  Interface  ODBC/JDBC/... HTTP Page  30

Slide 31: ROA / Client riche Serveur  Base de données Client riche d'applications Interface  Ressources Interface de  ODBC/JDBC/... services  Page  31

Slide 32: Identifiant, ressource, représentation Architecture of the World Wide Web, Volume One W3C Recommendation 15 December 2004 http://www.w3.org/TR/webarch/ Page  32

Slide 33: Cool URI don't change Cool URI don't change L'URI fait partie de l'interface publique URI are opaque Utiliser des URI logiques plutôt que physiques: http://dng.org/symposium/2007/sessions.html => Couplage faible => Evolutivité => Lisibilité Page  33

Slide 34: REST Page  34

Slide 35: 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  35

Slide 36: Representational State Transfer REST est un style d'architecture Un style d'architecture est un ensemble de contraintes cohérentes qui en limitant un système lui procure des propriétés désirées. REST capture les principes fondamentaux qui font le succès du Web. REST décrit les contraintes qui permettent au web d'être simple, performant, fiable, scalable et évolutif Page  36

Slide 37: Envoyer un message sur le réseau Page  37

Slide 38: Principes d'architecture généraux Page  38

Slide 39: 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 Page  39

Slide 40: Interface uniforme L’interface uniforme (principe de généricité) + Simplicité + Evolutivité - Efficacité 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

Slide 41: Le débat: SOAP vs REST Page  41

Slide 42: Ressources et Services Ressources Services Objectif Aligner l'IT sur le Web + Aligner l'IT sur le métier Style REST d'architecture SOA Architecture ROA Technologies HTTP URI SOAP WSDL Page  42 XML UDDI WS-*

Slide 43: HTTP vs SOAP Les arguments des partisans d’HTTP seul Technologies HTTP URI SOAP WSDL XML UDDI WS-* Page  43

Slide 44: Web Services ? Web Services = SOAP + WSDL + UDDI +WS-* Où est le Web dans ces Web Services ? - Mauvaise utilisation du protocole HTTP - Pas d'URI Il faut trouver un autre nom Big Web Services vs Light Web Services Un service web léger est un site web navigable par les machines Page  44

Slide 45: WS-* est trop complexe Ce sont les « big vendors » qui ont inventé et poussent SOAP / WS-* Page  45

Slide 46: Interopérabilité 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  46

Slide 47: HTTP vs SOAP Les arguments des partisans de SOAP Technologies HTTP URI SOAP WSDL XML UDDI WS-* Page  47

Slide 48: Fonctionnalités avancées SOAP/WS-* HTTP Protocole d'interaction SOAP HTTP Protocole de transport HTTP ou autre HTTP Description des interfaces WSDL WADL WS-Security Sécurité WS-Truts SSL WS-SecureConversation Basic/Digest Auth ReliableMessaging WS-Reliability Idempotence Transaction distribuée WS-AtomicTransaction Policy WS-Policy YAGNI Business process BPEL Page  48

Slide 49: 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. Page  49

Slide 50: REST-ROA / SOA Style REST d'architecture SOA Architecture ROA Page  50

Slide 51: REST-ROA / SOA  REST/ROA  SOA Un travail théorique de référence Englobe le style d'architecture et les (thèse de Fielding) architectures Une architecture: celle définie par le W3C Une implémentation: le Web Des principes et des contraintes Pas de contraintes d'architectures ou d'architectures bien définis de principe universellement reconnus Approche bottom-up Approche bottom-up Hérite de la culture du Web Hérite de la culture Entreprise et RPC/CORBA/DCOM Page  51

Slide 52: Ressources et Services Ressources Services Page  52

Slide 53: Ressources et Services Plusieurs interfaces  Orienté traitement spécialisées Services Meilleure efficacité Plus de contrôle Plus de complexité Noms Verbes Orienté données Plus de possibilités de réutilisation Ressources Moins de contrôle Une seule interface  Plus de simplicité uniforme générique Page  53

Slide 54: Ressources et Services Accéder à une donnée avec un service? getFacture(Identifiant) serialization/deserialization XML Accéder à un traitement avec une ressource? Une ressource est une abstraction on peut mapper un traitement sur une ressource. Ce n'est pas toujours pertinent (service de conversion de température) En mappant un traitement sur une ressource on lui donne une URI (utile pour retrouver une commande) Il faut faire de l'URI design nouvelle compétence Page  54

Slide 55: Ressources et Services Traitements Services SOA SOAP/WS-* Back Front end end Ressources REST HTTP Page  55 Données

Slide 56: Softwares + Services + Ressources Service Ressource Service Objet Objet Objet procédural procédural procédural procédural Page  56

Slide 57: Softwares + Services + Ressources “25% des solutions d'entreprises à travers le monde seront distribuées sous la forme Software as a Service d'ici 2011” Fin du débat propriétaire VS open source Importance du lock-in par les données. L'important est/sera la portabilité des données Open Data Page  57

Slide 58: Innovation Intéropérabilité (HTTP + XML) + Adressabilité (URI) Surface de contact plus grande avec les applications Favorise la sérendipité (serenpidity) « L'art de faire une découverte intéressante en cherchant autre chose » Donc l'innovation Page  58

Slide 59: Restafarians ? Page  59

Slide 60: La bible Page  60

Slide 61: Le nouveau testament Page  61

Slide 62: Les apôtres Pete Lacey http://wanderingbarque.com/nonintersecting/ Stefan Tilkov http://www.innoq.com/blog/st/ Bill de Hora http://dehora.net/journal/ Mark Baker http://www.markbaker.ca Steve Vinoski http://steve.vinoski.net/blog/ Stuart Charlton http://www.stucharlton.com ... YOU ? Page  62

Slide 63: Conclusion  4ième génération d'architecture  Softwares + Services + Ressources  Open Data  L'approche orienté ressources + interface uniforme est l’un des moteurs de l'innovation sur le Web Page  63

Slide 64: Remerciements - IstockPhoto pour les photos - Le projet Crystal pour les icônes - Mes collègues d'Atos Origin pour leurs retours critiques

Slide 65: Annexes Page  65

Slide 66: Comment gérer la fiabilité en HTTP  HTTP ne garanti pas la livraison d'un message  Mais GET/PUT/DELETE sont idempotent On peut renouveler l'appel jusqu'à obtenir une réponse  Problème avec POST Utiliser une « ressource factory » pour obtenir une url pointant vers une ressource « vide » Utiliser PUT Page  66