SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
1.
Distributed
Affordance
An Open-World Assumption
for Hypermedia
Ruben Verborgh, Michael Hausenblas,
Thomas Steiner, Erik Mannens,
Rik Van de Walle
The three princes of Serendip
2.
RESTarchitectural style
different?
What makes the
3.
HATEOAS
Hypermedia As The Engine
Of Application State
4.
Representations contain
the links to next steps.
How can the server know
what the client’s next steps are?
5.
Distributed Affordance
An Open-World Assumption
for Hypermedia
Problem statement
Concept and Architecture
Demo
6.
Distributed Affordance
An Open-World Assumption
for Hypermedia
Problem statement
Concept and Architecture
Demo
7.
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
8.
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
9.
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
10.
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
11.
A handle affords opening a door.
The handle is an affordance
through which you can open the door.
13.
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
14.
Hypertext [is] the simultaneous presentation
of information and controls such that
the information becomes the affordance
through which the user (or automaton)
obtains choices and selects actions.
— Roy T. Fielding
16.
SC
REST
SC
SC
Loose conversational coupling
Enabling clients to discover
at runtime how to correctly
interact with a service is
a loosely coupled design practice
— Cesare Pautasso & Erik Wilde
17.
SC
REST
SC
SC
The server has to provide
the affordance towards
next steps the client can take.
It is impossible
for the server to know all steps
any client might want to take.
Tight affordance coupling
18.
SC
SC SC SC
closed world open world open world
“today’s weather in Rio”
“tomorrow’s weather in Rio” “plane tickets to Rio” “hotels in Rio”
Weather API
19.
Distributed Affordance
An Open-World Assumption
for Hypermedia
Problem statement
Concept and Architecture
Demo
20.
C
P
S
user
publisher
provider
distributed
affordance
21.
S
Publishers offer representations
that contain semantic annotations.
HTML
&
Microdata
22.
Providers offer semantic descriptions
of the actions they support.
RESTdescP
23.
Based on the semantic annotations,
matching service descriptions are instantiated.
P
P
P
HTML
&
Microdata
+ =
24.
Based on the semantic annotations,
matching service descriptions are instantiated.
+ =Rio
Rio
Rio
25.
Based on the semantic annotations,
matching service descriptions are instantiated.
Rio
Rio
26.
* 1
*
1
Representation RepresentationEnricher
«use»
ResourceExtractor
«use»
Resource
«instantiate»
APICatalogAPIDescription
«instantiate»
PreferenceManager
ActionGeneratorAction
«instantiate»
«use»
Figure 1: The resources inside a representation are extracted 1 and combined with api d
based on the user’s preferences 3 , into actions 4 , for which affordances are added to the repr
4. ARCHITECTURE
4.1 Components
the role of the PreferenceManager can be
the APICatalog, which then only includes
that match the user’s preferences.
27.
Distributed Affordance
An Open-World Assumption
for Hypermedia
Problem statement
Concept and Architecture
Demo
28.
<div id="book" itemscope itemtype="http://schema.org/Book">
<span itemprop="name">The Catcher in the Rye</span> -
by <a itemprop="author" href="#salinger">J.D. Salinger</a>
<div itemprop="aggregateRating" itemscope>
<span itemprop="ratingValue">4</span> stars -
<span itemprop="reviewCount">3077</span> reviews
</div>
<div class="affordances" data-for="book">
<em>the browser will insert affordances here</em>
</div>
</div>
29.
centralized affordance
distributed affordance
publisher-driven
mostly within application
user-driven
on the entire Web
tight
affordance coupling
loose
affordance coupling
30.
Hypermedia as the engine of application state
only works to the extent by which the publisher
can predict what affordance the client needs.
Distributed affordance uses semantic technologies
to generate the needed affordance at runtime.
31.
Distributed
Affordance
An Open-World Assumption
for Hypermedia
@RubenVerborgh
distributedaffordance.org