Upgrade to Pro — share decks privately, control downloads, hide ads and more …

les origines du REST

les origines du REST

Les origines du REST

Depuis l'apparition des smartphones, le mode de consommation des données informatiques change. Il est devenu habituel, bien que ce soit invisible la plupart du temps, que nous ayons affaire à des API. Elles sont un excellent moyen pour qu'une machine communique avec une autre.

Nous utilisons un système bâti au début des années 70, conçu par des gens brillants, qui ont imaginé des systèmes assez souples pour être maintenables, extensibles et pérennes.

Il s'agit du Web et du REST.

Pour comprendre ces termes indissociables, les secrets de leur longévité, de leur efficacité, et comment en tirer partie, nous allons parcourir leurs origines et leurs mécanismes. À commencer par les origines du Web que nous connaissons. Le World Wide Web. Saviez-vous que nous devons l’internet que nous utilisons chaque jour au satellite russe Sputnik ?

Grégoire Hébert

February 11, 2021
Tweet

More Decks by Grégoire Hébert

Other Decks in Programming

Transcript

  1. Les Origines du REST

    View Slide

  2. Grégoire Hébert
    Senior Developper — Trainer — Lecturer @ Les-Tilleuls.coop
    Les Origines du REST

    View Slide

  3. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  4. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  5. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    Les Origines du REST

    View Slide

  6. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  7. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  8. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  9. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  10. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  11. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  12. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    Les Origines du REST

    View Slide

  13. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    ARPA
    1958
    Les Origines du REST

    View Slide

  14. @gheb_dev @gregoirehebert
    1945 vannevar bush
    Les Origines du REST

    View Slide

  15. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  16. @gheb_dev @gregoirehebert
    ARPA (1957-1958)
    Possède 2 milliards de $ pour concurrencer l'URSS dans la conquête de l’espace.
    Les Origines du REST

    View Slide

  17. @gheb_dev @gregoirehebert
    ARPA

    National Aeronotic and Space Administration
    séparation des missions et du budget le plus conséquent de l'ARPA

    Les Origines du REST

    View Slide

  18. @gheb_dev @gregoirehebert
    ARPA
    Réassignation des compétences
    La communication comme nerf de la guerre en période thermonucléaire

    Les Origines du REST

    View Slide

  19. @gheb_dev @gregoirehebert
    ARPA
    Seront inventées les technologies réseaux d'aujourdhui
    Les Origines du REST

    View Slide

  20. @gheb_dev @gregoirehebert
    1945 vannevar bush
    Les Origines du REST

    View Slide

  21. @gheb_dev @gregoirehebert
    1945 vannevar bush
    Les Origines du REST

    View Slide

  22. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    ARPA
    1958
    Les Origines du REST

    View Slide

  23. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    ARPA
    1958
    Semantic Memory
    1970
    Les Origines du REST

    View Slide

  24. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  25. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  26. @gheb_dev @gregoirehebert
    1945 vannevar bush
    Les Origines du REST

    View Slide

  27. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  28. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    ARPA
    1958
    Semantic Memory
    1970
    Les Origines du REST

    View Slide

  29. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    ARPA
    1958
    Semantic Memory
    1970
    Tim berners-Lee
    1980
    Les Origines du REST

    View Slide

  30. @gheb_dev @gregoirehebert
    Les Origines du REST
    Photo récente

    View Slide

  31. @gheb_dev @gregoirehebert
    Les Origines du REST
    HTTP - HTML - URI

    View Slide

  32. @gheb_dev @gregoirehebert
    Les Origines du REST
    HTTP - HTML - URI
    WWW -

    View Slide

  33. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  34. @gheb_dev @gregoirehebert
    Les Origines du REST
    Notre programme, qui êtes en mémoire
    Que ton nom soit appelé;
    Que ton Operating System tourne;
    Que ton execution de production soit identique au développement;
    Donne nous nos logs quotidiens;
    Pardonne nous de notre duplication de code;
    Pardonne ceux qui dupliquent notre code à leur insu;
    Ne nous conduit pas à la frustration mais délivre nous des goto;
    Au nom du bel algorithme
    de la compilation et du résultat
    Bouclant à jamais;
    Return;
    Au nom du compilateur et de l’assembleur;
    Amend;

    View Slide

  35. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  36. @gheb_dev @gregoirehebert
    Les Origines du REST
    HTTP - HTML - URI
    WWW - W3C

    View Slide

  37. @gheb_dev @gregoirehebert
    Les Origines du REST
    HTTP - HTML - URI
    Web Sémantique - Ontologies
    WWW - W3C

    View Slide

  38. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  39. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  40. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  41. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  42. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    ARPA
    1958
    Semantic Memory
    1970
    Tim berners-Lee
    1980
    Les Origines du REST

    View Slide

  43. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    ARPA
    1958
    Semantic Memory
    1970
    Tim berners-Lee
    1980
    Roy T. Fielding
    2000
    Les Origines du REST

    View Slide

  44. @gheb_dev @gregoirehebert
    Les Origines du REST

    View Slide

  45. @gheb_dev @gregoirehebert
    Les Origines du REST
    Fondation Apache

    View Slide

  46. @gheb_dev @gregoirehebert
    Les Origines du REST
    Fondation Apache
    Premiers serveurs web

    View Slide

  47. @gheb_dev @gregoirehebert
    Les Origines du REST
    Fondation Apache
    Premiers serveurs web
    HTTP - URI

    View Slide

  48. @gheb_dev @gregoirehebert
    Les Origines du REST
    1994
    Pas d’indication de cache, de proxy 

    Beaucoup d’extensions indépendantes

    View Slide

  49. @gheb_dev @gregoirehebert
    Les Origines du REST
    1994
    Pas d’indication de cache, de proxy 

    Beaucoup d’extensions indépendantes
    Début de la commercialisation d’internet

    View Slide

  50. @gheb_dev @gregoirehebert
    Les Origines du REST
    1994
    Pas d’indication de cache, de proxy 

    Beaucoup d’extensions indépendantes
    Début de la commercialisation d’internet 


    Une architecture web plus moderne est nécessaire

    View Slide

  51. @gheb_dev @gregoirehebert
    Les Origines du REST
    De quoi a-t-on besoin ?
    Doit être facile d’usage.

    avec une interface utilisateur Hypermédia 

    avec un protocole simple pour gérer les autorisation et les transferts de données
    simple réutilisable et extensible

    View Slide

  52. @gheb_dev @gregoirehebert
    Les Origines du REST
    De quoi a-t-on besoin ?
    Doit être facile d’usage.

    avec une interface utilisateur Hypermédia 

    avec un protocole simple pour gérer les autorisation et les transferts de données
    simple réutilisable et extensible

    Le système hypermédia doit être distribué, centré sur les données, et performant

    View Slide

  53. @gheb_dev @gregoirehebert
    Les Origines du REST
    De quoi a-t-on besoin ?
    Doit être facile d’usage.

    avec une interface utilisateur Hypermédia 

    avec un protocole simple pour gérer les autorisation et les transferts de données
    simple réutilisable et extensible

    Le système hypermédia doit être distribué, centré sur les données, et performant

    Ne doit pas être fermé à l’extérieur.
    N’importe quel organisation doit pouvoir y ajouter un élément.
    modulable, extensible, portable, evolutif, sûr, visible, personnalisable, configurable.

    View Slide

  54. @gheb_dev @gregoirehebert
    Les Origines du REST
    Cache proxy
    Clients
    Serveurs / 

    Gateways (reverse-proxy)
    Serveurs d’application
    Datas

    View Slide

  55. @gheb_dev @gregoirehebert
    Les Origines du REST
    Composants
    User-agents, intermédiaires

    navigateurs, proxies, passerelles, serveurs

    View Slide

  56. @gheb_dev @gregoirehebert
    Les Origines du REST
    Composants
    Connecteurs 


    HTTP : Un protocole standard de transfert idéal.
    User-agents, intermédiaires

    navigateurs, proxies, passerelles, serveurs

    View Slide

  57. @gheb_dev @gregoirehebert
    Les Origines du REST
    Composants
    Connecteurs 


    Données
    HTTP : Un protocole standard de transfert idéal.
    URI : Identification unique standardisée

    HTML, XML, RDF, PDF, JPEG, JSON :

    Représentation pour décrire et lier les ressources
    User-agents, intermédiaires

    navigateurs, proxies, passerelles, serveurs

    View Slide

  58. @gheb_dev @gregoirehebert
    Les Origines du REST
    Qu’est-ce qu’une architecture ?

    View Slide

  59. @gheb_dev @gregoirehebert
    Les Origines du REST
    Qu’est-ce qu’un style architectural ?

    View Slide

  60. @gheb_dev @gregoirehebert
    Les Origines du REST
    Qu’est-ce qu’un style architectural ?
    Une abstraction couvrant plusieurs architectures
    Utilise à répétition un pattern architectural
    Se défini à travers des contraintes de conception

    View Slide

  61. @gheb_dev @gregoirehebert
    Les Origines du REST
    Qu’est-ce qu’un style architectural ?
    REST est un style architectural pour les applications
    basées sur un réseau informatique qui exploite
    les même propriétés de l’architecture du World Wide Web

    View Slide

  62. @gheb_dev @gregoirehebert
    Les Origines du REST
    En résumé
    Un style peut être appliqué a plusieurs architecture 

    Une architecture peut être composée de plusieurs styles

    View Slide

  63. @gheb_dev @gregoirehebert
    Les Origines du REST
    Quelles contraintes composent REST ?

    View Slide

  64. @gheb_dev @gregoirehebert
    Les Origines du REST
    REST
    U
    VM
    COD
    LCODC$SS
    LC$SS
    LCS
    LS
    CS
    CSS
    C$SS
    RR
    $

    View Slide

  65. @gheb_dev @gregoirehebert
    Les Origines du REST
    REST
    U
    VM
    COD
    LCODC$SS
    LC$SS
    LCS
    LS
    CS
    CSS
    C$SS
    RR
    $
    Uniform interface
    Stateless
    Separated Layered
    Programmable
    Mobile
    Réplicated
    On-demand
    Contraintes

    View Slide

  66. @gheb_dev @gregoirehebert
    Les Origines du REST
    REST
    U
    VM
    COD
    LCODC$SS
    LC$SS
    LCS
    LS
    CS
    CSS
    C$SS
    RR
    $
    Simple

    visible
    Reusable
    Extensible
    Shared
    Reliable
    Cacheable
    Scalable
    Multi
    Orga
    Intermediare

    processing
    Contraintes
    Propriétés
    Uniform interface
    Stateless
    Separated Layered
    Programmable
    Mobile
    Réplicated
    On-demand

    View Slide

  67. @gheb_dev @gregoirehebert
    Les Origines du REST
    VM
    COD
    LCODC$SS
    LC$SS
    LCS
    LS
    CS
    CSS
    C$SS
    RR
    $
    Extensible
    Shared
    Reliable
    Cacheable
    Scalable
    Multi
    Orga
    Intermediare

    processing
    Contraintes
    Propriétés
    Stateless
    Separated Layered
    Programmable
    Mobile
    Réplicated
    On-demand
    REST
    U
    Simple

    visible
    Reusable
    Uniform interface

    View Slide

  68. @gheb_dev @gregoirehebert
    Les Origines du REST
    Uniform Interface
    Toutes les ressources principales sont identifiées par un mécanisme 

    d’identifiant uniforme de ressource. (Uniform Resource Identifier - URI)

    View Slide

  69. @gheb_dev @gregoirehebert
    Les Origines du REST
    Uniform Interface
    Toutes les ressources principales sont identifiées par un mécanisme 

    d’identifiant uniforme de ressource. (Uniform Resource Identifier - URI)
    Les méthodes d’accès (actions) signifient la même action toute 

    ressource confondue (sémantique universelle)

    View Slide

  70. @gheb_dev @gregoirehebert
    Les Origines du REST
    Uniform Interface
    Toutes les ressources principales sont identifiées par un mécanisme 

    d’identifiant uniforme de ressource. (Uniform Resource Identifier - URI)
    Les méthodes d’accès (actions) signifient la même action toute 

    ressource confondue (sémantique universelle)
    Les ressources sont manipulées au travers d’échanges de leur représentations

    View Slide

  71. @gheb_dev @gregoirehebert
    Les Origines du REST
    Uniform Interface
    Toutes les ressources principales sont identifiées par un mécanisme 

    d’identifiant uniforme de ressource. (Uniform Resource Identifier - URI)
    Les méthodes d’accès (actions) signifient la même action toute 

    ressource confondue (sémantique universelle)
    Les ressources sont manipulées au travers d’échanges de leur représentations
    Les ressources sont échangées sous forme de messages 

    auto-descriptifs

    View Slide

  72. @gheb_dev @gregoirehebert
    Les Origines du REST
    Uniform Interface
    Hypertext As The Engine Of Application State

    View Slide

  73. @gheb_dev @gregoirehebert
    Les Origines du REST
    Uniform Interface
    Une réponse sans erreur, indique ou contient la représentation de la 

    ressource identifiée. La ressource elle même reste cachée.
    Hypertext As The Engine Of Application State

    View Slide

  74. @gheb_dev @gregoirehebert
    Les Origines du REST
    Uniform Interface
    Une réponse sans erreur, indique ou contient la représentation de la 

    ressource identifiée. La ressource elle même reste cachée.
    Hypertext As The Engine Of Application State
    Une représentation peut contenir des liens vers de potentiels nouveaux 

    états de l’application, en incluant des redirection indiquant comment 

    effectuer la modification pour obtenir ce nouvel état.

    View Slide

  75. @gheb_dev @gregoirehebert
    Les Origines du REST
    REST
    U
    VM
    COD
    LCODC$SS
    LC$SS
    LCS
    LS
    CS
    CSS
    C$SS
    RR
    $
    Simple

    visible
    Reusable
    Extensible
    Shared
    Reliable
    Cacheable
    Scalable
    Multi
    Orga
    Intermediare

    processing
    Contraintes
    Propriétés
    Uniform interface
    Stateless
    Separated Layered
    Programmable
    Mobile
    Réplicated
    On-demand

    View Slide

  76. @gheb_dev @gregoirehebert
    Vannevar Bush
    1945
    ARPA
    1958
    Semantic Memory
    1970
    Tim berners-Lee
    1980
    Roy T. Fielding
    2000
    Les Origines du REST

    View Slide

  77. @gheb_dev @gregoirehebert
    No respect
    Pic of humility
    Enlightment
    Wisdom
    Knows nothing Guru
    Humility
    Hébert effect

    View Slide

  78. Merci !

    View Slide