SlideShare a Scribd company logo
LO10 – UTT
Cours sur REST
Alexandre Monnin (Origens Medialab)
 Le Web est-il un hypertexte?
F
Le réseau
comme
hypertexte
Bien sûr!
• protocole : “HyperText Transfer Protocol” (HTTP)
• langage : “HyperText Markup Language” (HTML)
F
Bien sûr !
Le « Web » fut presenté lors de la 3e conférence ACM
Hypertext en 1991 (San Antonio, Texas)
F
Bien sûr!
• A lire sur le site du CERN : “On 6 August 1991, Tim Berners-Lee
posted a summary of the World Wide Web project on several
internet newsgroups, including alt.hypertext, which was for
hypertext enthusiasts. The move marked the debut of the web
as a publicly available service on the internet”.
• Berners-Lee et Cailliau ont tous deux reconnu l’influence des
pionnier de l’hypertexte.
• En particulier Vannevar Bush et Ted Nelson – même si le
Memex de Bush n’était pas véritablement un hypertexte (cf.
Alexandre Serres, “Hypertexte”). Il faudrait également ajouter
Doug Engelbart.
F
Sauf que non…
Les fonctionnalités de Xanadu, caractéristiques des
hypertexts, ont disparu avec le Web :
• les liens bidirectionnels (pas de liens cassés!)
• la transclusion (Nelson: “A link connects two things which
are different. . A transclusion connects two things which
are the same”).
• la gestion du copyright, du micropaiement, et la sécurité
• le “version-management”
• le “content management”
REST et l’architecture du Web
a naming system (UDI/URI/URL /URN/URC/IRL/IRI)
http://wimmics.inria.fr
communication / protocol (HTTP)
GET /team HTTP/1.1
Host: wimmics.inria.fr
representation language (HTML, XML, JSON,…)
Fabien is a member of
<a href="http://wimmics.inria.fr">Wimmics</a>
Architecture du Web ?
a Web of amateurs?
Alan Kay a dit un jour : “the Internet was done so well that most people think of it
as a natural resource like the Pacific Ocean, rather than something that was man-
made. When was the last time a technology with a scale like that was so error-
free? The Web, in comparison, is a joke. The Web was done by amateurs.”
Un contributeur de Stack Overflow, Stephen Crawley, apporte la réponse suivante :
“In a sense he was right. The original (pre-spec) versions of HTML, HTTP and URL
were designed by amateurs (not standards people). And there are aspects of the
respective designs ... and the subsequent (original) specs ... that are (to put it
politely) not as good as they could have been. (…) However, the web has
succeeded magnificently despite these things. And all credit should go to the
people who made it happen. Whether or not they were "amateurs" at the time,
they are definitely not amateurs now.”
La naissance du W3C et la
standardization du Web
• 1994
• Partir des prototypes pour aller vers les standards
• Les premiers standards :
• Entre 1994 et 1995 : URLs, URNs, URCs and IRLs
• Février 1996 : HTTP 1.0
F
Des URI aux URI
21 AVRIL 2015 - 11
Uniform Resource Locators Uniform Resource Names
- Adresses de choses
accessibles. (« pages
Web »)
- Des choses qui changent
sans cesse.
- Noms d’objets dans le
monde ou de concepts
intangibles (inaccessibles)
- Des choses qui ne changent
pas (ex. : La recherche du
temps perdu).
http://www.inria.fr
http://ns.inria.fr/fabien.gan
don#me
ldap://[2001:db8::7]/c=GB?obj
ectClass?one
- 12
Uniform Resource Locators
a) Les URL ne donnent pas seulement accès à des
contenus « en ligne » mais permettent également de
donner accès à des descriptions de tous types d’objets
(ceci inclut les objets réputés « inaccessibles »).
b)Il n’est donc pas interdit de donner accès à des
descriptions de contenus jugés accessibles (la page
d’accueil du Monde par ex.).
 Aussi n’y a-t-il pas de différence, du point de vue des
URL, entre contenus accessibles et inaccessibles, et les
URL peuvent-elles désigner autant d’objets (voire les
mêmes) que les URN.
Uniform Resource Names
a) Les objets désignés par les URN sont considérés comme
immuables car les URN ont été conçues sur le modèles
des identifiants bibliothéconomiques, elles désignent des
réalités traitées de manières artificiellement stables dans
l’univers de la documentation (éditions, exemplaire,
articles, etc.)
b) Comment accéder à des informations à propos de ces
réalités ?
 Soit, chaque les gestionnaires de chaque schéma d’URN
élabore un protocole dédié.
 Soit on utilise le protocole Http, le protocole du Web et
alors il ne subsiste plus de différences avec les URL.
• Des controverses ont surgi concernant sur le fait de scinder les URI en URN et
URL.
• Cette opération reposait sur une distinction entre documents et choses
• Ce qui est « sur » le Web et ce qui est « en dehors » du Web
• Cette distinction, réactivée à l’époque du Web Sémantique, est largement
inconsistante
• Les standards furent révisés dès 1997 (HTTP 1.1) et 1998 (URI – un standard
fut dédié aux seules URL pendant à peine 3 ans).
« Web Resources »
Vers REST
• A partir de 19985 : Roy Fielding tente d’éclairer les grands principes du Web en
terme de design
• Principal éditeur de la recommendation sur HTTP 1.1 (1997) et les URI (1998)
• REST (pour REpresentational State Transfer : 1995 – 2000).
• REST a rendu explicites et les grands principes découverts déjà présents dans le
Web (vision réaliste)
• Il s’est aussi évertué d’implémenter ces principes dans le Web modernes (point
de vue constructiviste).
• Il a participé activement à la réécriture des standards du Web afin de les rendre compatibles
avec les principes mis à jour dans REST
• Ces principes avaient été abstraits et affinés à partir des premiers prototypes et standards,
standards qui furent à leur tour réécrits du fait de leur « Restfulness » insuffisante !
REST : un historique
• Pour un bref historique, voir la première section de Reflections on the
REST Architectural Style and “Principled Design of the Modern Web
Architecture” (Fielding et al. 2017).
• Voir aussi Alexandre Monnin, « Vers une Philosophie du Web Le Web
comme devenir-artefact de la philosophie (entre URIs, Tags,
Ontologie(s) et Ressources) ». Thèse de doctorat, Université Paris 1
Panthéon-Sorbonne, 2013.
“The first version of what eventually became “Principled Design of the
Modern Web Architecture” was submitted to FSE99. It was rejected,
with reviewer comments including “Over all, the originality of the
paper is quite low. There is only little to learn from it.” and “- the web is
old technolgoy [sic] now. - lots of jargon make the paper difficult to
understand. ... - I can’t find a novel lessons [sic] for software engineers
in this paper.”
(Fielding et al. 2017)
L’œuf ou la poule ?
t1) Http – Un modèle de REST ?
t2) REST – Principes extraits du modèle
t3) REST – Principes affinés, autonomisés, deviennent une norme
t4) Http – Devient une instance partielle de REST
 Fielding a oeuvre pour rendre le Web coherent avec lui-même.
“> Logically, REST really had to predate HTTP 1.1 in order for HTTP 1.1 to be so RESTful. No?
No. That is more of a philosophical question than a logical one. HTTP/1.1 is a specific
architecture that, to the extent I succeeded in applying REST-based design, allows people to
deploy RESTful network-based applications in a mostly efficient way, within the constraints
imposed by legacy implementations. The design principles certainly predated HTTP, most of
them were already applied to the HTTP/1.0 family, and I chose which constraints to apply
during the pre-proposal process of HTTP/1.1, yet HTTP/1.1 was finished long before I had the
available time to write down the entire model in a form that other people could understand.
All of my products are developed iteratively, so what you see as a chicken and egg problem is
more like a dinosaur-to-chicken evolution than anything so cut and dried as the conceptual
form pre-existing the form. HTTP as we know it today is just as dependent on the
conceptual notion of REST as the definition of REST is dependent on what I wanted HTTP to
be today.”
Roy T. Fielding/
Tim Berners-Lee
Credits Paul Downey
Saint Paul/
Jésus
(?)
REST = Transfert d’états représentationnels
▪la ressource
▪l’état de la ressource
▪l’état représentationnel
ou représentation de la ressource
- 22
« … »
“7.1.2 Manipulating Shadows. Defining resource such that a URI
identifies a concept rather than a document leaves us with another
question: how does a user access, manipulate, or transfer a concept
such that they can get something useful when a hypertext link is
selected? REST answers that question by defining the things that are
manipulated to be representations of the identified resource, rather
than the resource itself. An origin server maintains a mapping from
resource identifiers to the set of representations corresponding to
each resource. A resource is therefore manipulated by transferring
representations through the generic interface defined by the resource
identifier.”
(Roy T. Fielding & Richard Taylor, 2002)
Qu’est-ce qu’une URI nomme ou désigne?
• le Web n’a ni système de gestion des versions, ni système intégré d’archivage
(tout, sur le Web, disparaît par défaut) : il ne donne pas un identifiant à chaque
version d’une représentation (qu’il ne conserve pas !)
• les contenus changement au fil du temps (variations diachroniques)
• les contenus sont susceptibles de changer à chaque fois qu’une URI est sollicitée
(une URI peut identifier un service, gérer une représentation qui croise une
multitude d’appels à d’autres ressources, être le résultat de nombreux appels
générant un résultat comparables à un mashup, les « pages » contiennent des
compteurs, varient en fonction de la négociation de contenu ou de la
personnalisation, etc.) (variations synchroniques)
• les pointeurs peuvent cesser d’être déréférençables (« les liens se cassent »)
• n’importe quel objet peut être désigné (rompant avec la distinction en ligne/hors
ligne)
Un Web de
documents
?
Non ! Un Web de
Ressources !
« … »
Dé-spatialiser les URI
(adresses vs identifiants)
Quelques conséquences
"Resources are angels,
URIs pins" (Larry Masinter)
Web Sémantique : Principe AAA  Anyone can say anything about Anything
Web : Principe ADA  Anyone Can designate Anything (any Resource)
Hypertexte ?
http://roy.gbiv.com/untangled/2008
/rest-apis-must-be-hypertext-driven
Les principales propriétés du
style REST
“As an architectural style for network-based applications, its definition is
presented in the dissertation incrementally, as an accumulation of design
constraints that derive from nine pre-existing architectural styles and fi ve
additional constraints unique to the Web. Figure 1 shows the style derivation
graph for REST and highlights the associated constraints and induced
properties. Each style induces specific architectural properties, some positive
and some negative (a.k.a., trade-offs). Some of the styles are implied by the
Web’s requirements; others were chosen for their beneficial properties, or to
counteract the trade-off s of another style. The detailed discussion of this
derivation can be found on pages 76-86 of the dissertation.”
(Fielding et al. 2017)
Fielding et al. 2017.
Fielding et al. 2017.
Fielding et al. 2017.
REST (Erenkrantz et al. 2007)
RP1 The key abstraction of information is a resource, named by an URL.
RP2 The representation of a resource is a sequence of bytes, plus representation
metadata to describe those bytes.
RP3 All interactions are context-free.
RP4 Only a few primitive operations are available.
RP5 Idempotent operations and representation metadata are encouraged in
support of caching.
RP6 The presence of intermediaries is promoted.
REST
RP1 : The key abstraction of information is a resource, named by an URL.
• “Any information that can be named can be a resource: a document or
image, a temporal service (e.g., “today’s weather in Dubrovnik”), a
collection of other resources, a moniker for a nonvirtual object (e.g., a
person), and so on.”
REST
RP2 : The representation of a resource is a sequence of bytes, plus
representation metadata to describe those bytes.
• “Hence, REST introduces a layer of indirection between an abstract
resource and its concrete representation. Of particular note, the particular
form of the representation can be negotiated between REST components.”
REST
RP3 : All interactions are context-free.
• “This is not to imply that REST applications are without state, but that each
interaction contains all of the information necessary to understand the
request, independent of any requests that may have preceded it.”
REST
RP4 : Only a few primitive operations are available.
• “REST components can perform a small set of well-defined methods on a
resource producing a representation to capture the current or intended
state of that resource and transfer that representation between
components. These methods are global to the specific architectural
instantiation of REST—for instance, all resources exposed via HTTP are
expected to support each operation identically.”
REST
RP5 : Idempotent operations and representation metadata are encouraged
in support of caching.
• “Caches are important to the goal of reducing latency. The metadata
included in requests and responses permits REST components (such as user
agents, caching proxies) to make sound judgements of the freshness and
lifespan of representations. Additionally, the repeatability (idempotence) of
specific request operations (methods) permits representation reuse.”
REST
RP6 : The presence of intermediaries is promoted.
• “Filtering or redirection intermediaries may also use both the metadata and
the representations within requests or responses to augment, restrict, or
modify requests and responses in a manner that is transparent to both the
client and the origin server.”
L’évolution de REST
Fielding et al. 2017.
Fielding et al. 2017.
Institute for Software Research, UC Irvine
• Fielding, Roy Thomas. « Architectural Styles and the Design of Network-Based
Software Architectures ». PhD Thesis, University of California, Irvine, 2000.
• Whitehead, Emmet James. « An Analysis of the Hypertext Versioning Domain ».
PhD Thesis, UC Irvine, 2000.
• Oreizy, Peyman. « Open Architecture Sofware: A Flexible Approach to
Decentralized Software Evolution ». PhD Thesis, UC Irvine, 2000.
• Khare, Rohit. « Extending the Representational State Transfer (REST) Architectural
Style for Decentralized Systems ». PhD Thesis, UC Irvine, 2003.
• Erenkrantz, Justin Ryan. « Computational REST: A New Model for Decentralized,
Internet-Scale Applications ». PhD Thesis, University of California Irvine, 2009.
• Michael Martin, Gorlick. « Computational State Transfer: An Architectural Style
for Decentralized Systems ». PhD Thesis, UC Irvine, 2016.
CREST : Computational REST (Erenkrantz et al. 2007)
CP1 : The key abstraction of computation is a resource, named by an URL.
CP2 : The representation of a resource is a program, a closure, a continuation, or a
binding environment plus
metadata to describe the program, closure, continuation, or binding environment.
CP3 : CP3 All computations are context-free.
CP4 : Only a few primitive operations are always available, but additional per-
resource operations are also encouraged.
CP5 : The presence of intermediaries is promoted.
CREST
CP1 : The key abstraction of computation is a resource, named by an URL.
• “Any computation that can be named can be a resource: word processing or
image manipulation, a temporal service (e.g., “the predicted weather in
London over the next four days”), a generated collection of other resources,
a simulation of an object (e.g., a spacecraft), and so on.”
CREST
CP2 : The representation of a resource is a program, a closure, a
continuation, or a binding environment plus
metadata to describe the program, closure, continuation, or binding
environment.
• “CREST introduces a layer of indirection between an abstract resource and
its concrete representation.”
CREST
CP3 : All computations are context-free.
• “This is not to imply that applications are without state, but that each in-
teraction contains all of the information necessary to understand the
request, independent of any requests that may have preceded it. Prior
representations can be used to transfer state between computations; for
example, a continuation (representation) provided earlier by a resource can
be used to resume a computation at a later time merely by presenting that
continuation.”
CREST
CP4 : Only a few primitive operations are always available, but additional
per-resource operations are also encouraged.
• “Participant A sends a representation p to URL u hosted by participant B for
interpretation. These p are interpreted in the context of operations defined
by u ’s specific binding environment. The outcome of the interpretation will
be a new representation—be it a program, a continuation, or a binding
environment (which itself may contain programs, continuations, or other
binding environments). Of note, a common set of primitives are expected
to be exposed for all CREST resources, but each u ’s binding environment
may define additional resource-specific operations.”
CREST
CP5 : The presence of intermediaries is promoted.
• “Filtering or redirection intermediaries may also use both the metadata and
the computations within requests or responses to augment, restrict, or
modify requests and responses in a manner that is transparent to both the
client and the origin server.”
Fielding et al. 2017.
Quelques mots sur cette évolutions :
• “REST was but one member of a family of architectural styles whose
instantiations had been hiding in plain sight all along and that variations in,
or deviations from, REST were not necessarily flaws or shortcomings but
merely examples of natural and useful, domain-specific variations.”
• “CREST took REST-like systems in a new direction by emphasizing the
primacy of computation over content and relegating content to a side-
effect of computation.”
CREST
• “CREST reflects the idiom of computation exchange: it elevates
computations to first-class representations of a resource and designates
context-free state exchange (including computational state reified as
closures, continuation, or binding environments) as the sole form of
information exchange among clients and servers.”
• “CREST resolved several outstanding puzzles in the evolution of the web
including web mashups, session management, the (misplaced) role of
cookies in client/server interactions, and the rationale for time-dependent
resources such as weather forecasts or time-series responses like a stock
ticker.”
COAST
• “Many reviewers of CREST observed that exchanging and evaluating
computations (mobile code) among peers appears patently unsafe, leaving
peers open to service theft or denial of service attacks, and easy prey for
hostile takeovers where the peer is used as a launchpad for attacks against
other peers in the network. COmputAtional State Transfer (COAST) also
pursues the idiom of computation exchange but directly addresses these
concerns, this time cast in an architectural style where security and peer
safety are first-order concerns.”
Les Règles de COAST
• Services: “All services are computations whose only interactions are the
asynchronous messaging of primitive values, closures, continuations, and binding
environments.”
• Execution: “All computations execute within the confines of some execution site ⟨
E, B ⟩ where E is an execution engine and B a binding environment.”
• Messaging: “Computation x can transmit a message to a computation y only if
there exists a unidirectional communication channel t such that x holds a CURL u
denoting an ingress point of t and y holds an egress point of t.”
• Interpretation: “The interpretation of a message delivered to computation y via
CURL u is y- and u-dependent.”
Bibliographie
• Fielding, Roy Thomas. « Architectural Styles and the Design of Network-Based
Software Architectures ». PhD Thesis, University of California, Irvine, 2000.
• Fielding, Roy Thomas, et Richard N. Taylor. « Principled Design of the Modern
Web Architecture ». ACM Transactions on Internet Technology (TOIT) 2, no 2
(2002): 115–150.
• Erenkrantz, Justin R, Michael M Gorlick, Girish Suryanarayana, et Richard N.
Taylor. « From Representations to Computations: The Evolution of Web
Architectures ». In ACM SIGSOFT Symposium on The Foundations of Software
Engineering (FSE’07), 255–264, 2007.
• Fielding, Roy T, Richard N Taylor, Justin R Erenkrantz, Michael M Gorlick, Jim
Whitehead, Rohit Khare, et Peyman Oreizy. « Reflections on the REST
Architectural Style and “Principled Design of the Modern Web Architecture” »,
2017.

More Related Content

Similar to Cours sur REST

Introduction to REST and Jersey
Introduction to REST and JerseyIntroduction to REST and Jersey
Introduction to REST and Jersey
Chris Winters
 
Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Web Introduction
Web IntroductionWeb Introduction
Web Introduction
asim78
 
Open for Business Open Archives, OpenURL, RSS and the Dublin Core
Open for Business  Open Archives, OpenURL, RSS and the Dublin CoreOpen for Business  Open Archives, OpenURL, RSS and the Dublin Core
Open for Business Open Archives, OpenURL, RSS and the Dublin Core
Andy Powell
 
The Dynamic Web
The Dynamic WebThe Dynamic Web
The Dynamic Web
Dave Wallace
 
Dynamic Web
Dynamic WebDynamic Web
Dynamic Web
Dave Wallace
 
Web Information Systems Lecture 1: Introduction
Web Information Systems Lecture 1: IntroductionWeb Information Systems Lecture 1: Introduction
Web Information Systems Lecture 1: Introduction
Katrien Verbert
 
World wide web An Introduction
World wide web An IntroductionWorld wide web An Introduction
World wide web An Introduction
Sidrah Noor
 
Material Cultures2010 Alexandre Monnin
Material Cultures2010 Alexandre MonninMaterial Cultures2010 Alexandre Monnin
Material Cultures2010 Alexandre Monnin
Alexandre Monnin
 
09 berners lee
09 berners lee09 berners lee
Autonomous Agents on the Web: Beyond Linking and Meaning Mike Amundsen Keynot...
Autonomous Agents on the Web: Beyond Linking and Meaning Mike Amundsen Keynot...Autonomous Agents on the Web: Beyond Linking and Meaning Mike Amundsen Keynot...
Autonomous Agents on the Web: Beyond Linking and Meaning Mike Amundsen Keynot...
CA API Management
 
RDTF Metadata Guidelines: an update
RDTF Metadata Guidelines: an updateRDTF Metadata Guidelines: an update
RDTF Metadata Guidelines: an update
Andy Powell
 
Webtech
WebtechWebtech
Episode 3(3): Birth & explosion of the World Wide Web - Meetup session11
Episode 3(3): Birth & explosion of the World Wide Web - Meetup session11Episode 3(3): Birth & explosion of the World Wide Web - Meetup session11
Episode 3(3): Birth & explosion of the World Wide Web - Meetup session11
William Hall
 
Ruby and Sinatra's Shotgun Wedding
Ruby and Sinatra's Shotgun WeddingRuby and Sinatra's Shotgun Wedding
Ruby and Sinatra's Shotgun Wedding
Jamin Guy
 
Hypertext2007 Wendy Hall - "Whatever Happened to Hypertext?"
Hypertext2007 Wendy Hall - "Whatever Happened to Hypertext?"Hypertext2007 Wendy Hall - "Whatever Happened to Hypertext?"
Hypertext2007 Wendy Hall - "Whatever Happened to Hypertext?"
hypertext2007
 
What happened to the Semantic Web?
What happened to the Semantic Web?What happened to the Semantic Web?
What happened to the Semantic Web?
Peter Mika
 
Mind the gap! Reflections on the state of repository data harvesting
Mind the gap! Reflections on the state of repository data harvestingMind the gap! Reflections on the state of repository data harvesting
Mind the gap! Reflections on the state of repository data harvesting
Simeon Warner
 
MADS4007_Fall2022-Intro to Web Technologies.docx.pptx
MADS4007_Fall2022-Intro to Web Technologies.docx.pptxMADS4007_Fall2022-Intro to Web Technologies.docx.pptx
MADS4007_Fall2022-Intro to Web Technologies.docx.pptx
awadalsabbah
 
www module 1.pptx
www module 1.pptxwww module 1.pptx
www module 1.pptx
MattFlordeliza1
 

Similar to Cours sur REST (20)

Introduction to REST and Jersey
Introduction to REST and JerseyIntroduction to REST and Jersey
Introduction to REST and Jersey
 
Introduction to the Semantic Web
Introduction to the Semantic WebIntroduction to the Semantic Web
Introduction to the Semantic Web
 
Web Introduction
Web IntroductionWeb Introduction
Web Introduction
 
Open for Business Open Archives, OpenURL, RSS and the Dublin Core
Open for Business  Open Archives, OpenURL, RSS and the Dublin CoreOpen for Business  Open Archives, OpenURL, RSS and the Dublin Core
Open for Business Open Archives, OpenURL, RSS and the Dublin Core
 
The Dynamic Web
The Dynamic WebThe Dynamic Web
The Dynamic Web
 
Dynamic Web
Dynamic WebDynamic Web
Dynamic Web
 
Web Information Systems Lecture 1: Introduction
Web Information Systems Lecture 1: IntroductionWeb Information Systems Lecture 1: Introduction
Web Information Systems Lecture 1: Introduction
 
World wide web An Introduction
World wide web An IntroductionWorld wide web An Introduction
World wide web An Introduction
 
Material Cultures2010 Alexandre Monnin
Material Cultures2010 Alexandre MonninMaterial Cultures2010 Alexandre Monnin
Material Cultures2010 Alexandre Monnin
 
09 berners lee
09 berners lee09 berners lee
09 berners lee
 
Autonomous Agents on the Web: Beyond Linking and Meaning Mike Amundsen Keynot...
Autonomous Agents on the Web: Beyond Linking and Meaning Mike Amundsen Keynot...Autonomous Agents on the Web: Beyond Linking and Meaning Mike Amundsen Keynot...
Autonomous Agents on the Web: Beyond Linking and Meaning Mike Amundsen Keynot...
 
RDTF Metadata Guidelines: an update
RDTF Metadata Guidelines: an updateRDTF Metadata Guidelines: an update
RDTF Metadata Guidelines: an update
 
Webtech
WebtechWebtech
Webtech
 
Episode 3(3): Birth & explosion of the World Wide Web - Meetup session11
Episode 3(3): Birth & explosion of the World Wide Web - Meetup session11Episode 3(3): Birth & explosion of the World Wide Web - Meetup session11
Episode 3(3): Birth & explosion of the World Wide Web - Meetup session11
 
Ruby and Sinatra's Shotgun Wedding
Ruby and Sinatra's Shotgun WeddingRuby and Sinatra's Shotgun Wedding
Ruby and Sinatra's Shotgun Wedding
 
Hypertext2007 Wendy Hall - "Whatever Happened to Hypertext?"
Hypertext2007 Wendy Hall - "Whatever Happened to Hypertext?"Hypertext2007 Wendy Hall - "Whatever Happened to Hypertext?"
Hypertext2007 Wendy Hall - "Whatever Happened to Hypertext?"
 
What happened to the Semantic Web?
What happened to the Semantic Web?What happened to the Semantic Web?
What happened to the Semantic Web?
 
Mind the gap! Reflections on the state of repository data harvesting
Mind the gap! Reflections on the state of repository data harvestingMind the gap! Reflections on the state of repository data harvesting
Mind the gap! Reflections on the state of repository data harvesting
 
MADS4007_Fall2022-Intro to Web Technologies.docx.pptx
MADS4007_Fall2022-Intro to Web Technologies.docx.pptxMADS4007_Fall2022-Intro to Web Technologies.docx.pptx
MADS4007_Fall2022-Intro to Web Technologies.docx.pptx
 
www module 1.pptx
www module 1.pptxwww module 1.pptx
www module 1.pptx
 

More from Alexandre Monnin

La 5G comme "commun négatif"
La 5G comme "commun négatif"La 5G comme "commun négatif"
La 5G comme "commun négatif"
Alexandre Monnin
 
The (de)feasibility of smart cities
The (de)feasibility of smart citiesThe (de)feasibility of smart cities
The (de)feasibility of smart cities
Alexandre Monnin
 
What Future for ICT?
What Future for ICT?What Future for ICT?
What Future for ICT?
Alexandre Monnin
 
Quel avenir pour le numérique
Quel avenir pour le numériqueQuel avenir pour le numérique
Quel avenir pour le numérique
Alexandre Monnin
 
The Future Web (we can afford)
The Future Web (we can afford)The Future Web (we can afford)
The Future Web (we can afford)
Alexandre Monnin
 
Quel rôle pour le design à l'heure de l'Anthropocène/Effondrement ?
Quel rôle pour le design à l'heure de l'Anthropocène/Effondrement ?Quel rôle pour le design à l'heure de l'Anthropocène/Effondrement ?
Quel rôle pour le design à l'heure de l'Anthropocène/Effondrement ?
Alexandre Monnin
 
L'obsolescence à programmer
L'obsolescence à programmer L'obsolescence à programmer
L'obsolescence à programmer
Alexandre Monnin
 
Approcher en pragmatiste les mondes en train de se défaire
Approcher en pragmatiste les mondes en train de se défaireApprocher en pragmatiste les mondes en train de se défaire
Approcher en pragmatiste les mondes en train de se défaire
Alexandre Monnin
 
​Le numérique est notre futur mais quel est notre avenir ? (R)évolution num...
​Le numérique est notre futur  mais quel est notre avenir ?  (R)évolution num...​Le numérique est notre futur  mais quel est notre avenir ?  (R)évolution num...
​Le numérique est notre futur mais quel est notre avenir ? (R)évolution num...
Alexandre Monnin
 
Quel avenir pour le Web et le numérique à l’heure de l’Anthropocène ?
Quel avenir pour le Web et le numérique à  l’heure de l’Anthropocène ? Quel avenir pour le Web et le numérique à  l’heure de l’Anthropocène ?
Quel avenir pour le Web et le numérique à l’heure de l’Anthropocène ?
Alexandre Monnin
 
Présentation du projet ValueModels (Académie 1 de l'Idex UCA JEDI)
Présentation du projet ValueModels (Académie 1 de l'Idex UCA JEDI)Présentation du projet ValueModels (Académie 1 de l'Idex UCA JEDI)
Présentation du projet ValueModels (Académie 1 de l'Idex UCA JEDI)
Alexandre Monnin
 
 Asynchronous futures: Digital technologies at the time of the Anthropocene
 Asynchronous futures: Digital technologies at the time of the Anthropocene Asynchronous futures: Digital technologies at the time of the Anthropocene
 Asynchronous futures: Digital technologies at the time of the Anthropocene
Alexandre Monnin
 
La question de la durabilité des technologies de calcul et de télécommunication
La question de la durabilité des technologies de calcul et de télécommunicationLa question de la durabilité des technologies de calcul et de télécommunication
La question de la durabilité des technologies de calcul et de télécommunication
Alexandre Monnin
 
Le monde devient numérique, a-t-il les moyens de le rester ?
Le monde devient numérique, a-t-il les moyens de le rester ?Le monde devient numérique, a-t-il les moyens de le rester ?
Le monde devient numérique, a-t-il les moyens de le rester ?
Alexandre Monnin
 
A quoi peuvent servir les technologies « smart » en regard d’une vision réa...
A quoi peuvent servir les  technologies « smart » en regard  d’une vision réa...A quoi peuvent servir les  technologies « smart » en regard  d’une vision réa...
A quoi peuvent servir les technologies « smart » en regard d’une vision réa...
Alexandre Monnin
 
Transition numérique et effondrement écologique : quel monde d'après ?
Transition numérique et effondrement écologique : quel monde d'après ?Transition numérique et effondrement écologique : quel monde d'après ?
Transition numérique et effondrement écologique : quel monde d'après ?
Alexandre Monnin
 
Façonner les données. Travail et valeur de l'information
Façonner les données. Travail et valeur de l'informationFaçonner les données. Travail et valeur de l'information
Façonner les données. Travail et valeur de l'information
Alexandre Monnin
 
Routines et improvisation, à propos de Computation and Human Experience de Ph...
Routines et improvisation, à propos de Computation and Human Experience de Ph...Routines et improvisation, à propos de Computation and Human Experience de Ph...
Routines et improvisation, à propos de Computation and Human Experience de Ph...
Alexandre Monnin
 
The Knowledge ecology: Epistemic Credit and the Technologically Extended Mind
The Knowledge ecology: Epistemic Credit and the Technologically Extended MindThe Knowledge ecology: Epistemic Credit and the Technologically Extended Mind
The Knowledge ecology: Epistemic Credit and the Technologically Extended Mind
Alexandre Monnin
 
Thinking with your body and other things
Thinking with your body and other thingsThinking with your body and other things
Thinking with your body and other things
Alexandre Monnin
 

More from Alexandre Monnin (20)

La 5G comme "commun négatif"
La 5G comme "commun négatif"La 5G comme "commun négatif"
La 5G comme "commun négatif"
 
The (de)feasibility of smart cities
The (de)feasibility of smart citiesThe (de)feasibility of smart cities
The (de)feasibility of smart cities
 
What Future for ICT?
What Future for ICT?What Future for ICT?
What Future for ICT?
 
Quel avenir pour le numérique
Quel avenir pour le numériqueQuel avenir pour le numérique
Quel avenir pour le numérique
 
The Future Web (we can afford)
The Future Web (we can afford)The Future Web (we can afford)
The Future Web (we can afford)
 
Quel rôle pour le design à l'heure de l'Anthropocène/Effondrement ?
Quel rôle pour le design à l'heure de l'Anthropocène/Effondrement ?Quel rôle pour le design à l'heure de l'Anthropocène/Effondrement ?
Quel rôle pour le design à l'heure de l'Anthropocène/Effondrement ?
 
L'obsolescence à programmer
L'obsolescence à programmer L'obsolescence à programmer
L'obsolescence à programmer
 
Approcher en pragmatiste les mondes en train de se défaire
Approcher en pragmatiste les mondes en train de se défaireApprocher en pragmatiste les mondes en train de se défaire
Approcher en pragmatiste les mondes en train de se défaire
 
​Le numérique est notre futur mais quel est notre avenir ? (R)évolution num...
​Le numérique est notre futur  mais quel est notre avenir ?  (R)évolution num...​Le numérique est notre futur  mais quel est notre avenir ?  (R)évolution num...
​Le numérique est notre futur mais quel est notre avenir ? (R)évolution num...
 
Quel avenir pour le Web et le numérique à l’heure de l’Anthropocène ?
Quel avenir pour le Web et le numérique à  l’heure de l’Anthropocène ? Quel avenir pour le Web et le numérique à  l’heure de l’Anthropocène ?
Quel avenir pour le Web et le numérique à l’heure de l’Anthropocène ?
 
Présentation du projet ValueModels (Académie 1 de l'Idex UCA JEDI)
Présentation du projet ValueModels (Académie 1 de l'Idex UCA JEDI)Présentation du projet ValueModels (Académie 1 de l'Idex UCA JEDI)
Présentation du projet ValueModels (Académie 1 de l'Idex UCA JEDI)
 
 Asynchronous futures: Digital technologies at the time of the Anthropocene
 Asynchronous futures: Digital technologies at the time of the Anthropocene Asynchronous futures: Digital technologies at the time of the Anthropocene
 Asynchronous futures: Digital technologies at the time of the Anthropocene
 
La question de la durabilité des technologies de calcul et de télécommunication
La question de la durabilité des technologies de calcul et de télécommunicationLa question de la durabilité des technologies de calcul et de télécommunication
La question de la durabilité des technologies de calcul et de télécommunication
 
Le monde devient numérique, a-t-il les moyens de le rester ?
Le monde devient numérique, a-t-il les moyens de le rester ?Le monde devient numérique, a-t-il les moyens de le rester ?
Le monde devient numérique, a-t-il les moyens de le rester ?
 
A quoi peuvent servir les technologies « smart » en regard d’une vision réa...
A quoi peuvent servir les  technologies « smart » en regard  d’une vision réa...A quoi peuvent servir les  technologies « smart » en regard  d’une vision réa...
A quoi peuvent servir les technologies « smart » en regard d’une vision réa...
 
Transition numérique et effondrement écologique : quel monde d'après ?
Transition numérique et effondrement écologique : quel monde d'après ?Transition numérique et effondrement écologique : quel monde d'après ?
Transition numérique et effondrement écologique : quel monde d'après ?
 
Façonner les données. Travail et valeur de l'information
Façonner les données. Travail et valeur de l'informationFaçonner les données. Travail et valeur de l'information
Façonner les données. Travail et valeur de l'information
 
Routines et improvisation, à propos de Computation and Human Experience de Ph...
Routines et improvisation, à propos de Computation and Human Experience de Ph...Routines et improvisation, à propos de Computation and Human Experience de Ph...
Routines et improvisation, à propos de Computation and Human Experience de Ph...
 
The Knowledge ecology: Epistemic Credit and the Technologically Extended Mind
The Knowledge ecology: Epistemic Credit and the Technologically Extended MindThe Knowledge ecology: Epistemic Credit and the Technologically Extended Mind
The Knowledge ecology: Epistemic Credit and the Technologically Extended Mind
 
Thinking with your body and other things
Thinking with your body and other thingsThinking with your body and other things
Thinking with your body and other things
 

Recently uploaded

Decentralized Justice in Gaming and Esports
Decentralized Justice in Gaming and EsportsDecentralized Justice in Gaming and Esports
Decentralized Justice in Gaming and Esports
Federico Ast
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
3a0sd7z3
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
thezot
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
3a0sd7z3
 
cyber crime.pptx..........................
cyber crime.pptx..........................cyber crime.pptx..........................
cyber crime.pptx..........................
GNAMBIKARAO
 
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
dtagbe
 
Bangalore Call Girls 9079923931 With -Cuties' Hot Call Girls
Bangalore Call Girls 9079923931 With -Cuties' Hot Call GirlsBangalore Call Girls 9079923931 With -Cuties' Hot Call Girls
Bangalore Call Girls 9079923931 With -Cuties' Hot Call Girls
narwatsonia7
 
KubeCon & CloudNative Con 2024 Artificial Intelligent
KubeCon & CloudNative Con 2024 Artificial IntelligentKubeCon & CloudNative Con 2024 Artificial Intelligent
KubeCon & CloudNative Con 2024 Artificial Intelligent
Emre Gündoğdu
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
APNIC
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
rtunex8r
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
APNIC
 
How to make a complaint to the police for Social Media Fraud.pdf
How to make a complaint to the police for Social Media Fraud.pdfHow to make a complaint to the police for Social Media Fraud.pdf
How to make a complaint to the police for Social Media Fraud.pdf
Infosec train
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
Tarandeep Singh
 

Recently uploaded (13)

Decentralized Justice in Gaming and Esports
Decentralized Justice in Gaming and EsportsDecentralized Justice in Gaming and Esports
Decentralized Justice in Gaming and Esports
 
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
快速办理(Vic毕业证书)惠灵顿维多利亚大学毕业证完成信一模一样
 
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
一比一原版新西兰林肯大学毕业证(Lincoln毕业证书)学历如何办理
 
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
快速办理(新加坡SMU毕业证书)新加坡管理大学毕业证文凭证书一模一样
 
cyber crime.pptx..........................
cyber crime.pptx..........................cyber crime.pptx..........................
cyber crime.pptx..........................
 
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
一比一原版(uc毕业证书)加拿大卡尔加里大学毕业证如何办理
 
Bangalore Call Girls 9079923931 With -Cuties' Hot Call Girls
Bangalore Call Girls 9079923931 With -Cuties' Hot Call GirlsBangalore Call Girls 9079923931 With -Cuties' Hot Call Girls
Bangalore Call Girls 9079923931 With -Cuties' Hot Call Girls
 
KubeCon & CloudNative Con 2024 Artificial Intelligent
KubeCon & CloudNative Con 2024 Artificial IntelligentKubeCon & CloudNative Con 2024 Artificial Intelligent
KubeCon & CloudNative Con 2024 Artificial Intelligent
 
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...Securing BGP: Operational Strategies and Best Practices for Network Defenders...
Securing BGP: Operational Strategies and Best Practices for Network Defenders...
 
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
怎么办理(umiami毕业证书)美国迈阿密大学毕业证文凭证书实拍图原版一模一样
 
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
Honeypots Unveiled: Proactive Defense Tactics for Cyber Security, Phoenix Sum...
 
How to make a complaint to the police for Social Media Fraud.pdf
How to make a complaint to the police for Social Media Fraud.pdfHow to make a complaint to the police for Social Media Fraud.pdf
How to make a complaint to the police for Social Media Fraud.pdf
 
Bengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal BrandingBengaluru Dreamin' 24 - Personal Branding
Bengaluru Dreamin' 24 - Personal Branding
 

Cours sur REST

  • 1. LO10 – UTT Cours sur REST Alexandre Monnin (Origens Medialab)
  • 2.  Le Web est-il un hypertexte? F Le réseau comme hypertexte
  • 3. Bien sûr! • protocole : “HyperText Transfer Protocol” (HTTP) • langage : “HyperText Markup Language” (HTML) F
  • 4. Bien sûr ! Le « Web » fut presenté lors de la 3e conférence ACM Hypertext en 1991 (San Antonio, Texas) F
  • 5. Bien sûr! • A lire sur le site du CERN : “On 6 August 1991, Tim Berners-Lee posted a summary of the World Wide Web project on several internet newsgroups, including alt.hypertext, which was for hypertext enthusiasts. The move marked the debut of the web as a publicly available service on the internet”. • Berners-Lee et Cailliau ont tous deux reconnu l’influence des pionnier de l’hypertexte. • En particulier Vannevar Bush et Ted Nelson – même si le Memex de Bush n’était pas véritablement un hypertexte (cf. Alexandre Serres, “Hypertexte”). Il faudrait également ajouter Doug Engelbart. F
  • 6. Sauf que non… Les fonctionnalités de Xanadu, caractéristiques des hypertexts, ont disparu avec le Web : • les liens bidirectionnels (pas de liens cassés!) • la transclusion (Nelson: “A link connects two things which are different. . A transclusion connects two things which are the same”). • la gestion du copyright, du micropaiement, et la sécurité • le “version-management” • le “content management”
  • 8. a naming system (UDI/URI/URL /URN/URC/IRL/IRI) http://wimmics.inria.fr communication / protocol (HTTP) GET /team HTTP/1.1 Host: wimmics.inria.fr representation language (HTML, XML, JSON,…) Fabien is a member of <a href="http://wimmics.inria.fr">Wimmics</a> Architecture du Web ?
  • 9. a Web of amateurs? Alan Kay a dit un jour : “the Internet was done so well that most people think of it as a natural resource like the Pacific Ocean, rather than something that was man- made. When was the last time a technology with a scale like that was so error- free? The Web, in comparison, is a joke. The Web was done by amateurs.” Un contributeur de Stack Overflow, Stephen Crawley, apporte la réponse suivante : “In a sense he was right. The original (pre-spec) versions of HTML, HTTP and URL were designed by amateurs (not standards people). And there are aspects of the respective designs ... and the subsequent (original) specs ... that are (to put it politely) not as good as they could have been. (…) However, the web has succeeded magnificently despite these things. And all credit should go to the people who made it happen. Whether or not they were "amateurs" at the time, they are definitely not amateurs now.”
  • 10. La naissance du W3C et la standardization du Web • 1994 • Partir des prototypes pour aller vers les standards • Les premiers standards : • Entre 1994 et 1995 : URLs, URNs, URCs and IRLs • Février 1996 : HTTP 1.0 F
  • 11. Des URI aux URI 21 AVRIL 2015 - 11 Uniform Resource Locators Uniform Resource Names - Adresses de choses accessibles. (« pages Web ») - Des choses qui changent sans cesse. - Noms d’objets dans le monde ou de concepts intangibles (inaccessibles) - Des choses qui ne changent pas (ex. : La recherche du temps perdu). http://www.inria.fr http://ns.inria.fr/fabien.gan don#me ldap://[2001:db8::7]/c=GB?obj ectClass?one
  • 12. - 12 Uniform Resource Locators a) Les URL ne donnent pas seulement accès à des contenus « en ligne » mais permettent également de donner accès à des descriptions de tous types d’objets (ceci inclut les objets réputés « inaccessibles »). b)Il n’est donc pas interdit de donner accès à des descriptions de contenus jugés accessibles (la page d’accueil du Monde par ex.).  Aussi n’y a-t-il pas de différence, du point de vue des URL, entre contenus accessibles et inaccessibles, et les URL peuvent-elles désigner autant d’objets (voire les mêmes) que les URN. Uniform Resource Names a) Les objets désignés par les URN sont considérés comme immuables car les URN ont été conçues sur le modèles des identifiants bibliothéconomiques, elles désignent des réalités traitées de manières artificiellement stables dans l’univers de la documentation (éditions, exemplaire, articles, etc.) b) Comment accéder à des informations à propos de ces réalités ?  Soit, chaque les gestionnaires de chaque schéma d’URN élabore un protocole dédié.  Soit on utilise le protocole Http, le protocole du Web et alors il ne subsiste plus de différences avec les URL.
  • 13. • Des controverses ont surgi concernant sur le fait de scinder les URI en URN et URL. • Cette opération reposait sur une distinction entre documents et choses • Ce qui est « sur » le Web et ce qui est « en dehors » du Web • Cette distinction, réactivée à l’époque du Web Sémantique, est largement inconsistante • Les standards furent révisés dès 1997 (HTTP 1.1) et 1998 (URI – un standard fut dédié aux seules URL pendant à peine 3 ans). « Web Resources »
  • 14. Vers REST • A partir de 19985 : Roy Fielding tente d’éclairer les grands principes du Web en terme de design • Principal éditeur de la recommendation sur HTTP 1.1 (1997) et les URI (1998) • REST (pour REpresentational State Transfer : 1995 – 2000). • REST a rendu explicites et les grands principes découverts déjà présents dans le Web (vision réaliste) • Il s’est aussi évertué d’implémenter ces principes dans le Web modernes (point de vue constructiviste). • Il a participé activement à la réécriture des standards du Web afin de les rendre compatibles avec les principes mis à jour dans REST • Ces principes avaient été abstraits et affinés à partir des premiers prototypes et standards, standards qui furent à leur tour réécrits du fait de leur « Restfulness » insuffisante !
  • 15. REST : un historique • Pour un bref historique, voir la première section de Reflections on the REST Architectural Style and “Principled Design of the Modern Web Architecture” (Fielding et al. 2017). • Voir aussi Alexandre Monnin, « Vers une Philosophie du Web Le Web comme devenir-artefact de la philosophie (entre URIs, Tags, Ontologie(s) et Ressources) ». Thèse de doctorat, Université Paris 1 Panthéon-Sorbonne, 2013.
  • 16. “The first version of what eventually became “Principled Design of the Modern Web Architecture” was submitted to FSE99. It was rejected, with reviewer comments including “Over all, the originality of the paper is quite low. There is only little to learn from it.” and “- the web is old technolgoy [sic] now. - lots of jargon make the paper difficult to understand. ... - I can’t find a novel lessons [sic] for software engineers in this paper.” (Fielding et al. 2017)
  • 17. L’œuf ou la poule ? t1) Http – Un modèle de REST ? t2) REST – Principes extraits du modèle t3) REST – Principes affinés, autonomisés, deviennent une norme t4) Http – Devient une instance partielle de REST  Fielding a oeuvre pour rendre le Web coherent avec lui-même.
  • 18. “> Logically, REST really had to predate HTTP 1.1 in order for HTTP 1.1 to be so RESTful. No? No. That is more of a philosophical question than a logical one. HTTP/1.1 is a specific architecture that, to the extent I succeeded in applying REST-based design, allows people to deploy RESTful network-based applications in a mostly efficient way, within the constraints imposed by legacy implementations. The design principles certainly predated HTTP, most of them were already applied to the HTTP/1.0 family, and I chose which constraints to apply during the pre-proposal process of HTTP/1.1, yet HTTP/1.1 was finished long before I had the available time to write down the entire model in a form that other people could understand. All of my products are developed iteratively, so what you see as a chicken and egg problem is more like a dinosaur-to-chicken evolution than anything so cut and dried as the conceptual form pre-existing the form. HTTP as we know it today is just as dependent on the conceptual notion of REST as the definition of REST is dependent on what I wanted HTTP to be today.”
  • 19. Roy T. Fielding/ Tim Berners-Lee Credits Paul Downey
  • 21.
  • 22. REST = Transfert d’états représentationnels ▪la ressource ▪l’état de la ressource ▪l’état représentationnel ou représentation de la ressource - 22 « … »
  • 23. “7.1.2 Manipulating Shadows. Defining resource such that a URI identifies a concept rather than a document leaves us with another question: how does a user access, manipulate, or transfer a concept such that they can get something useful when a hypertext link is selected? REST answers that question by defining the things that are manipulated to be representations of the identified resource, rather than the resource itself. An origin server maintains a mapping from resource identifiers to the set of representations corresponding to each resource. A resource is therefore manipulated by transferring representations through the generic interface defined by the resource identifier.” (Roy T. Fielding & Richard Taylor, 2002)
  • 24. Qu’est-ce qu’une URI nomme ou désigne? • le Web n’a ni système de gestion des versions, ni système intégré d’archivage (tout, sur le Web, disparaît par défaut) : il ne donne pas un identifiant à chaque version d’une représentation (qu’il ne conserve pas !) • les contenus changement au fil du temps (variations diachroniques) • les contenus sont susceptibles de changer à chaque fois qu’une URI est sollicitée (une URI peut identifier un service, gérer une représentation qui croise une multitude d’appels à d’autres ressources, être le résultat de nombreux appels générant un résultat comparables à un mashup, les « pages » contiennent des compteurs, varient en fonction de la négociation de contenu ou de la personnalisation, etc.) (variations synchroniques) • les pointeurs peuvent cesser d’être déréférençables (« les liens se cassent ») • n’importe quel objet peut être désigné (rompant avec la distinction en ligne/hors ligne)
  • 25. Un Web de documents ? Non ! Un Web de Ressources ! « … »
  • 28.
  • 29. "Resources are angels, URIs pins" (Larry Masinter)
  • 30. Web Sémantique : Principe AAA  Anyone can say anything about Anything Web : Principe ADA  Anyone Can designate Anything (any Resource)
  • 33. “As an architectural style for network-based applications, its definition is presented in the dissertation incrementally, as an accumulation of design constraints that derive from nine pre-existing architectural styles and fi ve additional constraints unique to the Web. Figure 1 shows the style derivation graph for REST and highlights the associated constraints and induced properties. Each style induces specific architectural properties, some positive and some negative (a.k.a., trade-offs). Some of the styles are implied by the Web’s requirements; others were chosen for their beneficial properties, or to counteract the trade-off s of another style. The detailed discussion of this derivation can be found on pages 76-86 of the dissertation.” (Fielding et al. 2017)
  • 37. REST (Erenkrantz et al. 2007) RP1 The key abstraction of information is a resource, named by an URL. RP2 The representation of a resource is a sequence of bytes, plus representation metadata to describe those bytes. RP3 All interactions are context-free. RP4 Only a few primitive operations are available. RP5 Idempotent operations and representation metadata are encouraged in support of caching. RP6 The presence of intermediaries is promoted.
  • 38. REST RP1 : The key abstraction of information is a resource, named by an URL. • “Any information that can be named can be a resource: a document or image, a temporal service (e.g., “today’s weather in Dubrovnik”), a collection of other resources, a moniker for a nonvirtual object (e.g., a person), and so on.”
  • 39. REST RP2 : The representation of a resource is a sequence of bytes, plus representation metadata to describe those bytes. • “Hence, REST introduces a layer of indirection between an abstract resource and its concrete representation. Of particular note, the particular form of the representation can be negotiated between REST components.”
  • 40. REST RP3 : All interactions are context-free. • “This is not to imply that REST applications are without state, but that each interaction contains all of the information necessary to understand the request, independent of any requests that may have preceded it.”
  • 41. REST RP4 : Only a few primitive operations are available. • “REST components can perform a small set of well-defined methods on a resource producing a representation to capture the current or intended state of that resource and transfer that representation between components. These methods are global to the specific architectural instantiation of REST—for instance, all resources exposed via HTTP are expected to support each operation identically.”
  • 42. REST RP5 : Idempotent operations and representation metadata are encouraged in support of caching. • “Caches are important to the goal of reducing latency. The metadata included in requests and responses permits REST components (such as user agents, caching proxies) to make sound judgements of the freshness and lifespan of representations. Additionally, the repeatability (idempotence) of specific request operations (methods) permits representation reuse.”
  • 43. REST RP6 : The presence of intermediaries is promoted. • “Filtering or redirection intermediaries may also use both the metadata and the representations within requests or responses to augment, restrict, or modify requests and responses in a manner that is transparent to both the client and the origin server.”
  • 47. Institute for Software Research, UC Irvine • Fielding, Roy Thomas. « Architectural Styles and the Design of Network-Based Software Architectures ». PhD Thesis, University of California, Irvine, 2000. • Whitehead, Emmet James. « An Analysis of the Hypertext Versioning Domain ». PhD Thesis, UC Irvine, 2000. • Oreizy, Peyman. « Open Architecture Sofware: A Flexible Approach to Decentralized Software Evolution ». PhD Thesis, UC Irvine, 2000. • Khare, Rohit. « Extending the Representational State Transfer (REST) Architectural Style for Decentralized Systems ». PhD Thesis, UC Irvine, 2003. • Erenkrantz, Justin Ryan. « Computational REST: A New Model for Decentralized, Internet-Scale Applications ». PhD Thesis, University of California Irvine, 2009. • Michael Martin, Gorlick. « Computational State Transfer: An Architectural Style for Decentralized Systems ». PhD Thesis, UC Irvine, 2016.
  • 48. CREST : Computational REST (Erenkrantz et al. 2007) CP1 : The key abstraction of computation is a resource, named by an URL. CP2 : The representation of a resource is a program, a closure, a continuation, or a binding environment plus metadata to describe the program, closure, continuation, or binding environment. CP3 : CP3 All computations are context-free. CP4 : Only a few primitive operations are always available, but additional per- resource operations are also encouraged. CP5 : The presence of intermediaries is promoted.
  • 49. CREST CP1 : The key abstraction of computation is a resource, named by an URL. • “Any computation that can be named can be a resource: word processing or image manipulation, a temporal service (e.g., “the predicted weather in London over the next four days”), a generated collection of other resources, a simulation of an object (e.g., a spacecraft), and so on.”
  • 50. CREST CP2 : The representation of a resource is a program, a closure, a continuation, or a binding environment plus metadata to describe the program, closure, continuation, or binding environment. • “CREST introduces a layer of indirection between an abstract resource and its concrete representation.”
  • 51. CREST CP3 : All computations are context-free. • “This is not to imply that applications are without state, but that each in- teraction contains all of the information necessary to understand the request, independent of any requests that may have preceded it. Prior representations can be used to transfer state between computations; for example, a continuation (representation) provided earlier by a resource can be used to resume a computation at a later time merely by presenting that continuation.”
  • 52. CREST CP4 : Only a few primitive operations are always available, but additional per-resource operations are also encouraged. • “Participant A sends a representation p to URL u hosted by participant B for interpretation. These p are interpreted in the context of operations defined by u ’s specific binding environment. The outcome of the interpretation will be a new representation—be it a program, a continuation, or a binding environment (which itself may contain programs, continuations, or other binding environments). Of note, a common set of primitives are expected to be exposed for all CREST resources, but each u ’s binding environment may define additional resource-specific operations.”
  • 53. CREST CP5 : The presence of intermediaries is promoted. • “Filtering or redirection intermediaries may also use both the metadata and the computations within requests or responses to augment, restrict, or modify requests and responses in a manner that is transparent to both the client and the origin server.”
  • 55. Quelques mots sur cette évolutions : • “REST was but one member of a family of architectural styles whose instantiations had been hiding in plain sight all along and that variations in, or deviations from, REST were not necessarily flaws or shortcomings but merely examples of natural and useful, domain-specific variations.” • “CREST took REST-like systems in a new direction by emphasizing the primacy of computation over content and relegating content to a side- effect of computation.”
  • 56. CREST • “CREST reflects the idiom of computation exchange: it elevates computations to first-class representations of a resource and designates context-free state exchange (including computational state reified as closures, continuation, or binding environments) as the sole form of information exchange among clients and servers.” • “CREST resolved several outstanding puzzles in the evolution of the web including web mashups, session management, the (misplaced) role of cookies in client/server interactions, and the rationale for time-dependent resources such as weather forecasts or time-series responses like a stock ticker.”
  • 57. COAST • “Many reviewers of CREST observed that exchanging and evaluating computations (mobile code) among peers appears patently unsafe, leaving peers open to service theft or denial of service attacks, and easy prey for hostile takeovers where the peer is used as a launchpad for attacks against other peers in the network. COmputAtional State Transfer (COAST) also pursues the idiom of computation exchange but directly addresses these concerns, this time cast in an architectural style where security and peer safety are first-order concerns.”
  • 58. Les Règles de COAST • Services: “All services are computations whose only interactions are the asynchronous messaging of primitive values, closures, continuations, and binding environments.” • Execution: “All computations execute within the confines of some execution site ⟨ E, B ⟩ where E is an execution engine and B a binding environment.” • Messaging: “Computation x can transmit a message to a computation y only if there exists a unidirectional communication channel t such that x holds a CURL u denoting an ingress point of t and y holds an egress point of t.” • Interpretation: “The interpretation of a message delivered to computation y via CURL u is y- and u-dependent.”
  • 59. Bibliographie • Fielding, Roy Thomas. « Architectural Styles and the Design of Network-Based Software Architectures ». PhD Thesis, University of California, Irvine, 2000. • Fielding, Roy Thomas, et Richard N. Taylor. « Principled Design of the Modern Web Architecture ». ACM Transactions on Internet Technology (TOIT) 2, no 2 (2002): 115–150. • Erenkrantz, Justin R, Michael M Gorlick, Girish Suryanarayana, et Richard N. Taylor. « From Representations to Computations: The Evolution of Web Architectures ». In ACM SIGSOFT Symposium on The Foundations of Software Engineering (FSE’07), 255–264, 2007. • Fielding, Roy T, Richard N Taylor, Justin R Erenkrantz, Michael M Gorlick, Jim Whitehead, Rohit Khare, et Peyman Oreizy. « Reflections on the REST Architectural Style and “Principled Design of the Modern Web Architecture” », 2017.