api strategy workshop - seoul presented by layer 7's principal api architect mike amundsen

71
Follow Your Nose vs. Hold Your Nose Mike Amundsen @mamund @layer7 @CAInc Observations on the state of service description on the Web

Upload: ca-api-management

Post on 14-Jul-2015

469 views

Category:

Technology


1 download

TRANSCRIPT

Follow Your Nose vs.

Hold Your Nose

Mike Amundsen@mamund

@layer7 @CAInc

Observations on the state of service description on the Web

The Paper

Observations

Observations

● The Web● Service Descriptions● Something Else

The Web

The Web

The Disney Dog Rule

"I have just met you and I love you!" - Dug

The Disney Dog Rule

"HyperText provides a single user-interface to many large classes of stored information…"

- Berners-Lee / Cailliau, 1990

The Disney Dog Rule

"HyperText provides a single user-interface to many large classes of stored information…"

- Berners-Lee / Cailliau, 1990

The Disney Dog Rule

"We propose the implementation of a simple scheme to incorporate several different servers of

machine-stored information already available." - Berners-Lee / Cailliau, 1990

The Disney Dog Rule

"We propose the implementation of a simple scheme to incorporate several different servers of

machine-stored information already available." - Berners-Lee / Cailliau, 1990

The Disney Dog Rule

"Squirrel!" - Dug

The Disney Dog Rule

"[A] web of nodes in which the user can browse at will." - Berners-Lee / Cailliau, 1990

The Disney Dog Rule

"[A] web of nodes in which the user can browse at will." - Berners-Lee / Cailliau, 1990

The Disney Dog Rule

"[A]bility for humans and crawlers to follow their noses ... makes for a powerfully simple discovery heuristic"

- Ed Summers, 2008

The Disney Dog Rule

"[A]bility for humans and crawlers to follow their noses ... makes for a powerfully simple discovery heuristic"

- Ed Summers, 2008

Linking

Linking

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

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

Linking

Linking

Linking

The Web

● I love you● Squirrel● Power Law

Service Descriptions

Interface Description Language (IDL)

Legacy IDLs

Web IDLs

Web IDLs

On the Web...

"The interfaces are defined by the data formats and protocols..." - Tim Berners-Lee 1998

Web IDLs

Rarely support multiple formats and almost always use only HTTP.

On the Web...

"[A] web of nodes rather than a hierarchical tree is the basic concept behind HyperText."

- Berners-Lee/Cailliau, 1990

Web IDLs

Almost all Web IDLs define a hierarchy of resources (nodes).

On the Web...

"[O]ne can go from one concept to another..."

- Berners-Lee/Cailliau, 1990

Web IDLs

Clients are led to accept only the pre-defined links from just one service.

Service Description

Service Description

The Web

But there may be something else...

Something Else

Something Else

Something Else

The Solution

The Problem

Modeling the problem domain

The Solution

Serendipity

"Web architecture is all about serendipity." - Stu Charlton, 2007

So let's do this...

Describe the domain without specifying format or protocol...

Allow clients and servers to negotiate format and protocols

Describe the domain as a set of nodes, not a hierarchy.

Allow clients and servers to establish their own workflows

Describe the domain as a scale-free network.

Encourage clients and servers to link however they wish.

Something Else

● Open formats and protocols (I love you…)● Nodes, not hierarchies (Squirrel!)● Open linking for apps (Power Law)

Application-Level Profile Semantics

Application-Level Profile Semantics

Application-Level Profile Semantics

Application-Level Profile Semantics

"I have just met you and I love you!" - Dug

Application-Level Profile Semantics

Application-Level Profile Semantics

"Squirrel!" - Dug

Application-Level Profile Semantics

Application-Level Profile Semantics

"[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

So what does this mean?

ALPS Specification Draft

If you build it...

Conclusions

● The Web is great● Service Descriptions are not the Web● ALPS describes problem domains for the Web

Let's build Linked Open Apps (LOA)

Follow Your Nose vs.

Hold Your Nose

Mike Amundsen@mamund

@layer7 @CAInc

Observations on the state of service description on the Web

http://g.mamund.com/follow-v-hold