40
Open Data Services Architectural Choices and Considerations Dominiek ter Heide May, 2008

Open API Architectural Choices Considerations

Embed Size (px)

DESCRIPTION

Building API's for a web 2.0 / web 3.0 aspiring service is very different than providing a tight integrated RPC service for some corporate client. It requires completely different ways of thinking and embracing new standards. I've composed a quick slideshow of all the architectural choices and considerations I've come across.

Citation preview

Page 1: Open API Architectural Choices Considerations

Open Data ServicesArchitectural Choices and Considerations

Dominiek ter HeideMay, 2008

Page 2: Open API Architectural Choices Considerations

Common Usages

Developer Center

Platform Setup

Call Routing

Data Structure

Format

Page 3: Open API Architectural Choices Considerations

Data Service Goals

stimulate an explosion of new data/content

repurpose our data off-site and increase activity

potentially generate revenue from services

Page 4: Open API Architectural Choices Considerations

Separate?

Tied in with Service Separated Platform

Page 5: Open API Architectural Choices Considerations

Common Usages

The fruits of Data Services

Page 6: Open API Architectural Choices Considerations

Common Usages

Web embedable widgets

PC applications

Graphing applications

Page 7: Open API Architectural Choices Considerations

Web WidgetsFlash HTML

Page 8: Open API Architectural Choices Considerations

PC Applications

Desktop Dashboard

Page 9: Open API Architectural Choices Considerations

Graphing AppsRelationships

Page 10: Open API Architectural Choices Considerations

Graphing AppsTrends

Page 11: Open API Architectural Choices Considerations

Developer Center

A place for geeks to gather.

Page 12: Open API Architectural Choices Considerations

A place to

provide tutorials and examples

allow people to document (wiki)

provide usage and key administration

provide licensing information

Page 13: Open API Architectural Choices Considerations

Last.fm Resources/Support

audioscrobbler.net

Page 14: Open API Architectural Choices Considerations

Flickr Resources/Support

flickr.com/services

Page 15: Open API Architectural Choices Considerations

Twitter Resources/Support

twitter.com/help/api

Page 16: Open API Architectural Choices Considerations

Tumblr Resources/Support

tumblr.com/api

Page 17: Open API Architectural Choices Considerations

Platform Setup

How to structure your universe.

Page 18: Open API Architectural Choices Considerations

Platform Setup

URL of great importance

Profit / Non-profit considerations

Platform As A Service?

Page 19: Open API Architectural Choices Considerations

the URI

http://ws.audioscrobbler.com/1.0/user/dx00/recenttracks.xml

syntaxmedia to use mental models /data structure

protocol domain version path format

Page 21: Open API Architectural Choices Considerations

Licensing

For service

For data

Choose a data license early

Page 22: Open API Architectural Choices Considerations

Licencesservice data

flickr non-commercial user specified

last.fm non-commercial non-commercial CC

twitter none none

tumblr none none

Page 23: Open API Architectural Choices Considerations

Call Routing

How to locate our stuff.

Page 24: Open API Architectural Choices Considerations

Loose / Tight Integration

How much do third parties need to know about your system?

How easy is it to use your data services?

Page 25: Open API Architectural Choices Considerations

Integration

xmlrdf

xml

standardized customized

restrpc

restful

ease of integration

json

rss

html

html microformats

Loose

Tight

corba

xmlrpc

soap serialization

Page 26: Open API Architectural Choices Considerations

RESTfulGET /get_user.xml?username=dominiek

HTTP standard?Status codes?

Using correct method calls?

YesYes

AlmostNoIdentifying URI for resource

Variety of response formats? Yes

Page 27: Open API Architectural Choices Considerations

RESTDELETE /users/dominiek.xml

HTTP standard?Status codes?

Using correct method calls?

YesYes

Identifying URI for resource

Variety of response formats? YesYesYes

Page 28: Open API Architectural Choices Considerations

API Keys

provide usage tracking

take away ad hoc integration

ideally in request headers

Page 29: Open API Architectural Choices Considerations

Authentication

different from the User Interface

OAuth for user data?

Page 30: Open API Architectural Choices Considerations

Data Structure

What are we even talking about?

Page 31: Open API Architectural Choices Considerations

Structuring Goals

Talk about the same Domain

Understandability for other Developers

Understandability for other Architectures

Page 32: Open API Architectural Choices Considerations

Standardize Structure

Your Standards

+

Open Standards

last.fm’s XML XSPF

or...

Page 33: Open API Architectural Choices Considerations

Standardize Structure

Your Standards extend Open Standards

Youtube’s API feed

yes!

Page 34: Open API Architectural Choices Considerations

Content vs Communication

Page 35: Open API Architectural Choices Considerations

URI’s in Content Data

No knowledge about URL structure required

Ability support external Entities

RDF and Semantic Web Ready

Page 36: Open API Architectural Choices Considerations

Format

In what language do we speak?

Page 37: Open API Architectural Choices Considerations

Formatting Goals

facilitate implementation variety

performance

Page 38: Open API Architectural Choices Considerations

Desired Formats

XML for tight server-side integration

JSON for easy web integration (widgets)

Page 39: Open API Architectural Choices Considerations

Optional Formats

HTML Human readable debug output

Serializations like PHP and YAML

RDF for advanced integration