RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013
-
Upload
ca-api-management -
Category
Technology
-
view
2.411 -
download
1
description
Transcript of RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013
![Page 1: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/1.jpg)
RESTing in the ALPSGeneric Hypermedia and Domain-Specific
APIs
@mamundMike Amundsen
Principal API Architect, Layer 7 Technologies
![Page 2: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/2.jpg)
A simple story In three parts...
![Page 3: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/3.jpg)
The bona fidesHow we got here...
![Page 4: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/4.jpg)
The confessionI left some stuff out...
![Page 5: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/5.jpg)
Where I make amendsThe payoff
![Page 6: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/6.jpg)
Ok, let's begin...
![Page 7: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/7.jpg)
How we got here...The bona fides
![Page 8: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/8.jpg)
Let's start with a quote from 2002
![Page 9: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/9.jpg)
Fielding and Taylor, 2002
"REST provides [this] by focusing on a shared understanding
of data types with metadata..."
![Page 10: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/10.jpg)
That phrase struck me.
![Page 11: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/11.jpg)
It has become a prime motivator for me.
![Page 12: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/12.jpg)
focusing
![Page 13: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/13.jpg)
focusingon
![Page 14: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/14.jpg)
focusingon
shared understanding
![Page 15: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/15.jpg)
shared understanding
![Page 16: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/16.jpg)
How do we share understanding on the Web?
![Page 17: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/17.jpg)
protocols
![Page 18: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/18.jpg)
protocols
httpftp
smtpdns
ws xmpp
![Page 19: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/19.jpg)
But that's not all...
![Page 20: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/20.jpg)
Fielding & Taylor, 2002
"REST components communicate by transferring a representation of the data
in a format matching one of an evolving set of standard data types..."
![Page 21: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/21.jpg)
standard data types
htmlcsv
halatom
json Cj
![Page 22: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/22.jpg)
registered media types
htmlcsv
halatom
json Cj
![Page 23: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/23.jpg)
messages
htmlcsv
halatom
json Cj
![Page 24: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/24.jpg)
We share understanding via messages.
![Page 25: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/25.jpg)
Description
![Page 26: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/26.jpg)
Discovery
![Page 27: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/27.jpg)
Hypermedia
![Page 28: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/28.jpg)
These messages tell us what protocol actions are possible.
![Page 29: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/29.jpg)
These messages tell us what protocol actions are possible.
![Page 30: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/30.jpg)
How is this done in a message?
![Page 31: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/31.jpg)
affordances
![Page 32: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/32.jpg)
hypermediaaffordances
![Page 33: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/33.jpg)
protocolhypermediaaffordances
![Page 34: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/34.jpg)
Back in 2010, I called those...
![Page 35: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/35.jpg)
H-Factors
![Page 36: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/36.jpg)
H-Factors
![Page 37: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/37.jpg)
H-Factors
Identify nine features for sharing understanding about protocol actions.
![Page 38: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/38.jpg)
H-Factors
![Page 39: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/39.jpg)
H-Factors
![Page 40: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/40.jpg)
H-Factors
![Page 41: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/41.jpg)
H-Factors
Identify the affordances
![Page 42: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/42.jpg)
H-Factors
![Page 43: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/43.jpg)
H-Factors
Categorize them.
![Page 44: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/44.jpg)
H-Factors
![Page 45: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/45.jpg)
H-Factors
For lots of media type designs.
![Page 46: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/46.jpg)
H-Factors
![Page 47: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/47.jpg)
H-Factors
![Page 48: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/48.jpg)
H-Factors
![Page 49: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/49.jpg)
H-Factors
![Page 50: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/50.jpg)
H-Factors
This gives us a tool for lots of tasks...
![Page 51: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/51.jpg)
H-Factors
We can analyze existing designs
![Page 52: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/52.jpg)
H-Factors
We can categorize types for 'best fit' implementations
![Page 53: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/53.jpg)
H-Factors
We can use H-Factors to model prototype designs
![Page 54: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/54.jpg)
H-Factors
![Page 55: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/55.jpg)
H-Factors
We now have a shared understanding
about protocol affordances
![Page 56: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/56.jpg)
H-Factors
![Page 57: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/57.jpg)
H-Factors
![Page 58: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/58.jpg)
H-Factors
And this is all good.
![Page 59: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/59.jpg)
H-Factors
But...
![Page 60: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/60.jpg)
H-Factors
There's a problem here.
![Page 61: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/61.jpg)
H-Factors
An important piece is missing.
![Page 62: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/62.jpg)
H-Factors
There is a "gap" between theory and practice
![Page 63: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/63.jpg)
H-Factors
There is a "gap" between H-Factors and "the real world"
![Page 64: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/64.jpg)
I ignored this "gap" when identifying H-Factors.
![Page 65: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/65.jpg)
I side-stepped the "gap" in the last book.
![Page 66: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/66.jpg)
H-Factors
![Page 67: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/67.jpg)
And this "gap" is a key theme in the next book.
![Page 68: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/68.jpg)
H-Factors
Yep, you might say...
![Page 69: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/69.jpg)
I left some stuff out.The confession
![Page 70: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/70.jpg)
The confession
I ignored the "hard" parts ...
![Page 71: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/71.jpg)
The confession
![Page 72: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/72.jpg)
The confession
What are those?
![Page 73: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/73.jpg)
The confession
![Page 74: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/74.jpg)
The confession
They're rather specific.
![Page 75: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/75.jpg)
The confession
![Page 76: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/76.jpg)
The confession
affordances?
![Page 77: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/77.jpg)
The confession
![Page 78: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/78.jpg)
The confession
Well, they are not protocol affordances
![Page 79: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/79.jpg)
The confession
I call them application affordances
![Page 80: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/80.jpg)
The confession
But there is another name for these...
![Page 81: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/81.jpg)
VocabulariesSrsly?
![Page 82: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/82.jpg)
Vocabularies
On the Web, representations contain
protocol AND application affordances
![Page 83: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/83.jpg)
Vocabularies
We share understandingat the application-level, too.
![Page 84: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/84.jpg)
Vocabularies
Well, "we" means us humans.
![Page 85: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/85.jpg)
Vocabularies
Do we share app-level understanding?
![Page 86: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/86.jpg)
Vocabularies
How about now?
![Page 87: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/87.jpg)
Vocabularies
How about now?
![Page 88: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/88.jpg)
Vocabularies
Human app-level affordances
![Page 89: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/89.jpg)
Vocabularies
Machine app-level affordances
![Page 90: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/90.jpg)
Vocabularies
Of course, we've known this for quite a while.
![Page 91: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/91.jpg)
Vocabularies
There has been quite a bit of work on vocabularies
dublin core
microformatsactivity streams
schema.org
VoID
![Page 92: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/92.jpg)
Vocabularies
Vocabularies can provide shared understanding
of the application-specific affordances
![Page 93: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/93.jpg)
Vocabularies
And this is all good.
![Page 94: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/94.jpg)
Vocabularies
But...
![Page 95: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/95.jpg)
Vocabularies
There's a problem here.
![Page 96: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/96.jpg)
Vocabularies
An important piece is missing.
![Page 97: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/97.jpg)
Vocabularies
There is a "gap" between theory and practice
![Page 98: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/98.jpg)
Vocabularies
There is a "gap" between Vocabularies and "the real world"
![Page 99: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/99.jpg)
Vocabularies
Vocabularies only model the "what"
state
![Page 100: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/100.jpg)
Vocabularies
Vocabularies only model the "what"
not the "how"
state
transitions
![Page 101: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/101.jpg)
Vocabularies
I know what a Person is, but how can I interact with it?
![Page 102: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/102.jpg)
Vocabularies
I know what an hProduct is, but how can I interact with it?
![Page 103: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/103.jpg)
Vocabularies
I know what an ActivityStream is, but how can I interact with it?
![Page 104: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/104.jpg)
The payoffWhere I make amends
![Page 105: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/105.jpg)
The payoff
What if we combined the "what" of vocabularies
state
![Page 106: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/106.jpg)
The payoff
What if we combined the "what" of vocabularies
withthe "how" of protocols?
state
transitions
![Page 107: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/107.jpg)
The payoff
What would that look like?
state
transitions
![Page 108: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/108.jpg)
The payoff
XHTML Meta Data Profiles (XMDP)Tantek Celik, 2003
![Page 109: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/109.jpg)
The payoff
A few years on, a similar approach...
![Page 110: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/110.jpg)
The payoff
ALPS - Microblogging with XHTMLMike Amundsen, 2011
![Page 111: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/111.jpg)
The payoff
ALPS includes both state and transitions
![Page 112: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/112.jpg)
The payoff
ALPS(mb) hackathon at 2011 RESTFest.
Initial experiment was a success.Independently built apps could interop.
![Page 113: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/113.jpg)
The payoff
Microblogging site rstatus implements ALPS(mb) in 2012
![Page 114: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/114.jpg)
The payoff
ALPS(mb) was a good ideabut we can do better.
![Page 115: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/115.jpg)
The payoff
How about a profile specthat includes both
state and transitionsthat works for a wide range
of media types?
![Page 116: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/116.jpg)
Application-Level Profile Semantics
The sequel
![Page 117: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/117.jpg)
ALPS
Warning!What follows is early-stage,
tentative design
![Page 118: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/118.jpg)
ALPS
Design and register two media types for describing problem domains.
application/alps+xml (or +json)
![Page 119: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/119.jpg)
ALPS
![Page 120: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/120.jpg)
ALPS
![Page 121: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/121.jpg)
ALPS
![Page 122: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/122.jpg)
ALPS
![Page 123: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/123.jpg)
ALPS
Four possible descriptor types:1. semantic (data)2. safe (HTTP.GET)3. unsafe (HTTP.POST)4. idempotent (HTTP.PUT & HTTP.DELETE)
![Page 124: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/124.jpg)
ALPS
![Page 125: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/125.jpg)
ALPS
ALPS 'id' properties become representation identifiers● @class, @rel, @name (HTML)● @rel, @name (Cj, HAL)● @rel (Atom)
![Page 126: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/126.jpg)
ALPS
Apply these semantics to a wide range of existing media types
![Page 127: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/127.jpg)
ALPS
![Page 128: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/128.jpg)
ALPS
There will be a set of rules for applying ALPS semantics
to each media type.
![Page 129: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/129.jpg)
ALPS
![Page 130: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/130.jpg)
ALPS
By applying semantic descriptors consistently...
![Page 131: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/131.jpg)
ALPS
![Page 132: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/132.jpg)
ALPS
selecting an implementation media type
can be independent of the state and transition
semantics.
![Page 133: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/133.jpg)
ALPS
![Page 134: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/134.jpg)
ALPS
selecting a reference vocabularycan be independent of the
protocol semantics
![Page 135: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/135.jpg)
ALPS
![Page 136: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/136.jpg)
ALPS
ALPS spec will provide several markup elements
![Page 137: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/137.jpg)
ALPS
Now we have a way to share understanding
![Page 138: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/138.jpg)
ALPS
Now we have a way to share understandingabout a problem domain
![Page 139: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/139.jpg)
ALPS
Now we have a way to share understandingabout a problem domain
Not a service document (WSDL)
![Page 140: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/140.jpg)
ALPS
Now we have a way to share understandingabout a problem domain
Not a discovery document (Google, @mnot)
![Page 141: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/141.jpg)
ALPS
Now we have a way to share understandingabout a problem domain
Not a hypermedia type (HAL, Cj, Siren, etc.)
![Page 142: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/142.jpg)
ALPS
Now we have a way to share understandingabout a problem domain
Not a vocabulary repository
![Page 143: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/143.jpg)
ALPS
Now we have a way to share understandingabout a problem domain
Not an object graph
![Page 144: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/144.jpg)
ALPS
This could give us tools for lots of tasks...
![Page 145: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/145.jpg)
ALPS
Describing a domain profile
![Page 146: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/146.jpg)
ALPS
Analyzing domain profiles
![Page 147: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/147.jpg)
ALPS
Matching domain profiles to media types
![Page 148: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/148.jpg)
ALPS
Sharing selected state with multiple services
schema.org/Persongift lists
contacts
photosancestry tree
matchmaker
school pals
![Page 149: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/149.jpg)
ALPS
Documenting domain profiles
![Page 150: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/150.jpg)
ALPS
Driving server-side representation engines
![Page 151: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/151.jpg)
ALPS
Driving client-side processing engines
![Page 152: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/152.jpg)
ALPS
Possible benefits of ALPS Repositories:● Share your domain profiles● Search for profiles by topic● Match abstracts w/ favored vocabularies● Reflect aggregate profile use/reference data
![Page 153: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/153.jpg)
So, where are we headed now?
Summary
![Page 154: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/154.jpg)
Snowflakes still commonprogrammableWeb, 2012
Summary
![Page 155: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/155.jpg)
How many data types here?programmableWeb, 2012
Summary
![Page 156: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/156.jpg)
How much shared understanding here?programmableWeb, 2012
Summary
![Page 157: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/157.jpg)
Fielding & Taylor, 2002
"REST components communicate by transferring a representation of the data
in a format matching one of an evolving set of standard data types..."
![Page 158: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/158.jpg)
standard data types includes both
state and transition types
Summary
![Page 159: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/159.jpg)
shared understanding includes both
state and transition types
Summary
![Page 160: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/160.jpg)
because the Web includes both
state and transition types
Summary
![Page 161: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/161.jpg)
protocols
httpftp
smtpdns
ws xmpp
![Page 162: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/162.jpg)
media types
htmlcsv
halatom
json Cj
![Page 163: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/163.jpg)
dublin core
microformatsactivity streams
schema.org
VoIDvocabularies
![Page 164: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/164.jpg)
micro-blogging
hProductPerson
vCard
accounting
domain profiles
![Page 165: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/165.jpg)
Summary
● ALPS IETF I-D will be posted in March● Watch my blog/twitter for details● Looking for feedback/contributions
![Page 166: RESTing in the ALPS Mike Amundsen's Presentation from QCon London 2013](https://reader034.fdocuments.in/reader034/viewer/2022042814/555e0e42d8b42a99188b4d39/html5/thumbnails/166.jpg)
RESTing in the ALPSGeneric Hypermedia and Domain-Specific
APIs
@mamundMike Amundsen
Principal API Architect, Layer 7 Technologies
Let's talk!