rest, hypermedia and the semantic gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf ·...
TRANSCRIPT
![Page 1: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/1.jpg)
REST, Hypermedia
and the Semantic Gap
+MikeAmundsen
@mamund
Why "RMM Level-3" is not good enough.
![Page 2: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/2.jpg)
Introductions
• Mike Amundsen
• 25 years in computing
• 14 books on programming
• 10 years w/ "REST"
• "RESTful Web APIs"
w/ Leonard Richardson
![Page 3: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/3.jpg)
Learning Hypermedia Clients
• Focus on the client side code
• Covers human-driven & M2M
• Lots of code!
• Due in fall 2015
• @LCHBook #LCHProject
![Page 4: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/4.jpg)
Hallway Conversations Podcast
Hosted by Phil Japikse, Steve Bohlen, Lee Brandt, James Bender
Website: www.hallwayconversations.com
iTunes: http://bit.ly/hallway_convo_itunes
Feed Burner: http://bit.ly/hallway_convo_feed
Also available through Windows Store
![Page 5: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/5.jpg)
Let's talk about...
• Fielding's REST
• HTTP APIs & CRUD
• Hypermedia APIs
• The Semantic Gap
![Page 6: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/6.jpg)
REST - The Short Story
![Page 7: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/7.jpg)
Fielding's Dissertation
"This dissertation defines a framework for
understanding software architecture via
architectural styles and demonstrates how
styles can be used to guide the architectural
design of network-based application
software."
- Fielding, 2000
![Page 8: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/8.jpg)
REST in one slide
Properties
• Performance
• Scalability
• Simplicity
• Modifiability
• Visibility
• Portability
• Reliability
![Page 9: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/9.jpg)
REST in one slide
Properties
• Performance
• Scalability
• Simplicity
• Modifiability
• Visibility
• Portability
• Reliability
+ Requirements
• Low-Entry Barrier
• Extensibility
• Distributed Hypermedia
• Internet Scale
![Page 10: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/10.jpg)
REST in one slide
Properties
• Performance
• Scalability
• Simplicity
• Modifiability
• Visibility
• Portability
• Reliability
+ Requirements
• Low-Entry Barrier
• Extensibility
• Distributed Hypermedia
• Internet Scale
= Constraints
• Client-Server
• Stateless
• Cache
• Uniform Interface
• Layered System
• Code on Demand
![Page 11: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/11.jpg)
Affordances
"When I say hypertext, I mean 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." - Fielding, 2008
![Page 12: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/12.jpg)
Affordances
"When I say hypertext, I mean 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." - Fielding, 2008
![Page 14: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/14.jpg)
HTTP APIs - The Shared Story
![Page 15: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/15.jpg)
RESTful Web Services - 2007
"Our ultimate goal in this book is to reunite the
programmable web with the human web. We
envision a single interconnected network: a
World Wide Web that runs on one set of
servers, uses one set of protocols, and obeys
one set of design principles."
- Richardson & Ruby, 2008
![Page 16: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/16.jpg)
Richardson Maturity Model (RMM)
![Page 17: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/17.jpg)
Richardson Maturity Model (RMM)
![Page 18: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/18.jpg)
Richardson Maturity Model (RMM)
![Page 19: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/19.jpg)
Richardson Maturity Model (RMM)
![Page 20: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/20.jpg)
Richardson Maturity Model (RMM)
![Page 21: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/21.jpg)
Richardson Maturity Model (RMM)
![Page 22: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/22.jpg)
Richardson Maturity Model (RMM)
![Page 23: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/23.jpg)
CRUD in one slide
![Page 24: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/24.jpg)
Gregorio's Four Questions (2006)
1. What are the URIs?
2. What are the formats?
3. What methods are supported at each URI?
4. What status codes could be returned?
![Page 25: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/25.jpg)
Common CRUD Guidance
• URI design is the primary
taskhttp://{server}/{collection}/{id}
• Focus on serializing domain
objects{customer: {name:"mike",...}}
• Use URIs to express object
relationshipshttp://example.com/users/abc/friends/xyz
• Use controller URIs to handle service
taskshttp://example.com/reports/1
![Page 26: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/26.jpg)
To-Do CRUD App Demo
![Page 27: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/27.jpg)
To-Do CRUD App Demo
![Page 28: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/28.jpg)
To-Do CRUD App Demo
![Page 29: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/29.jpg)
Hypermedia APIs - The Linked Story
![Page 30: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/30.jpg)
RESTful Web APIs - 2013
"RESTful Web Services covered
hypermedia, but it wasn’t central to the book.
It was possible to skip the hypermedia parts
of the book and still design a functioning API.
By contrast, RESTful Web APIs is effectively
a book about hypermedia." - Richardson &
Amundsen
![Page 31: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/31.jpg)
H-Factors (2010)
Link Factors
• LO
• LE
• LT
• LN
• LI
![Page 32: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/32.jpg)
H-Factors
Control Factors
• CR
• CU
• CM
• CL
![Page 33: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/33.jpg)
H-Factors
![Page 34: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/34.jpg)
Hypermedia in one slide
• {"link" :
{"rel" : "help", "href" : "..."}
}
• {"image" :
{"rel" : "logo", "href" : "..."}
}
• {"form" :
{"rel" : "edit",
"href" : "...",
"method" : "put",
"data" : [{"name":"...","value":"..."}]
}
}
![Page 35: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/35.jpg)
To-Do Hypermedia Demo App
![Page 36: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/36.jpg)
To-Do Hypermedia Demo App
![Page 37: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/37.jpg)
To-Do Hypermedia Demo App
![Page 38: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/38.jpg)
The Semantic Gap - The Future
Story
![Page 39: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/39.jpg)
Profiles - from XMDP to ALPS
• Dublin Core (2000)
• XMDP for HTML (2003)
• Microformats for HTML (2005)
• Activity Streams (2011)
• Schema.org (2011)
• ALPS for HTML (2011)
• Profile Link Relation (2013)
• ALPS Stand-alone (2013)
![Page 40: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/40.jpg)
Shared Understanding
• Focus on the domain vocabulary
• Independent of protocol (HTTP, XMPP, etc.)
• Independent of format (HTML, Cj, HAL, etc.)
![Page 41: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/41.jpg)
Shared Understanding
![Page 42: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/42.jpg)
Shared Understanding
![Page 43: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/43.jpg)
Shared Understanding
![Page 44: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/44.jpg)
Affordance Aspects
For the purposes of applying affordances to
hypermedia, there are four aspects to
consider:
<proto
safe="true|false"
idempotent="true|false"
mutable="true|false"
transclusion="true|false" />
![Page 45: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/45.jpg)
Affordance Aspects
![Page 46: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/46.jpg)
Linking
"[Links are] necessary to connect the data we have into
a web, a serious, unbounded web in which one can find
all kinds of things." - Tim Berners-Lee, 2006-09
![Page 47: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/47.jpg)
Linking
"[Links are] necessary to connect the data we have into
a web, a serious, unbounded web in which one can find
all kinds of things." - Tim Berners-Lee, 2006-09
![Page 48: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/48.jpg)
Linking
![Page 49: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/49.jpg)
Linking
![Page 50: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/50.jpg)
ALPS in one slide
SoC is key
• Format
• Protocol
• Domain
• Workflow
<alps>
<doc/>
<descriptor
type="semantic"/>
<descriptor
type="safe|idempotent|unsafe"/>
</alps>
![Page 51: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/51.jpg)
To-Do ALPS-driven Demo App
![Page 52: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/52.jpg)
To-Do ALPS-driven Demo App
![Page 53: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/53.jpg)
To-Do ALPS-driven Demo App
![Page 54: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/54.jpg)
To-Do ALPS-driven Demo App
![Page 55: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/55.jpg)
Summary
![Page 56: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/56.jpg)
Summary
• REST
• HTTP APIs
• Hypermedia APIs
• The Semantic Gap
![Page 57: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/57.jpg)
Summary - REST
• Network Architecture
• Properties + Requirements = Constraints
• Data is an architectural element
• Uniform API for all
• Use hypermedia to change state
• Information is the affordance
![Page 58: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/58.jpg)
Summary - CRUD
• Resource Oriented Architecture
• URI + Object = Resource
• Focus on URIs
• Manipulate Resources w/ HTTP Methods
• Use objects to change state
• URI is the affordance
![Page 59: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/59.jpg)
Summary - Hypermedia
• Task Oriented Architecture
• Data + Instructions = Representation
• Focus on Tasks
• Manipulate state via hypermedia controls
• Message is the affordance
![Page 60: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/60.jpg)
Summary - Semantic Gap
• Problem Domain Modeling
• Data + Transitions = Model
• Focus on open world (power law)
• Separate domain model from o protocol
o format
o workflow
![Page 61: REST, Hypermedia and the Semantic Gapmamund.com/talks/2015-04-codepalousa/gap-slides.pdf · 2015-10-24 · Layered System • Code on Demand ... a web, a serious, unbounded web in](https://reader034.vdocuments.mx/reader034/viewer/2022050312/5f74e362d4e1ae7f5d10fdbd/html5/thumbnails/61.jpg)
REST, Hypermedia
and the Semantic Gap
+MikeAmundsen
@mamund
Why "RMM Level-3" is not good enough.