rest, hypermedia and the semantic gap · rest, hypermedia and the semantic gap ... http apis &...

61
REST, Hypermedia and the Semantic Gap +MikeAmundsen @mamund Why "RMM Level-3" is not good enough.

Upload: others

Post on 08-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

REST, Hypermedia

and the Semantic Gap

+MikeAmundsen

@mamund

Why "RMM Level-3" is not good enough.

Page 2: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Let's talk about...

• Fielding's REST

• HTTP APIs & CRUD

• Hypermedia APIs

• The Semantic Gap

Page 6: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

REST - The Short Story

Page 7: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

REST in one slide

Properties

• Performance

• Scalability

• Simplicity

• Modifiability

• Visibility

• Portability

• Reliability

Page 9: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

HTTP APIs - The Shared Story

Page 15: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Richardson Maturity Model (RMM)

Page 17: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Richardson Maturity Model (RMM)

Page 18: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Richardson Maturity Model (RMM)

Page 19: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Richardson Maturity Model (RMM)

Page 20: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Richardson Maturity Model (RMM)

Page 21: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Richardson Maturity Model (RMM)

Page 22: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Richardson Maturity Model (RMM)

Page 23: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

CRUD in one slide

Page 24: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do CRUD App Demo

Page 27: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do CRUD App Demo

Page 28: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do CRUD App Demo

Page 29: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Hypermedia APIs - The Linked Story

Page 30: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

H-Factors (2010)

Link Factors

• LO

• LE

• LT

• LN

• LI

Page 32: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

H-Factors

Control Factors

• CR

• CU

• CM

• CL

Page 33: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

H-Factors

Page 34: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do Hypermedia Demo App

Page 36: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do Hypermedia Demo App

Page 37: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do Hypermedia Demo App

Page 38: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

The Semantic Gap - The Future

Story

Page 39: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Shared Understanding

Page 42: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Shared Understanding

Page 43: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Shared Understanding

Page 44: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Affordance Aspects

Page 46: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Linking

Page 49: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Linking

Page 50: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do ALPS-driven Demo App

Page 52: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do ALPS-driven Demo App

Page 53: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do ALPS-driven Demo App

Page 54: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

To-Do ALPS-driven Demo App

Page 55: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Summary

Page 56: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

Summary

• REST

• HTTP APIs

• Hypermedia APIs

• The Semantic Gap

Page 57: REST, Hypermedia and the Semantic Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

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 Gap · REST, Hypermedia and the Semantic Gap ... HTTP APIs & CRUD • Hypermedia APIs • The Semantic Gap. REST - The Short Story. Fielding's Dissertation

REST, Hypermedia

and the Semantic Gap

+MikeAmundsen

@mamund

Why "RMM Level-3" is not good enough.