Here are my raw, unedited notes from Stu Charlton‘s QCon San Francisco 2008 talk.
- Challenge is applying REST to enterprises – enterprises haven’t figured it out yet, particularly since they’re in the MOM/Component/SOAP space – major headache is hypermedia
- Hypermedia is simply a different kind of abstraction between systems, and is a layer atop message passing
- REST is not file transfer – more than CRUD, is a solution for general purpose systems
- Enterprise architecture is tiered (data, business services, presentation)
- Web architecture blurs these silos, but doesn’t solve every problem and has some trade offs
- Web architecture has visibility, transactions, syndication which map onto classic enterprise constraints
- Interfaces for classic services have a producer mentality, with interfaces resembling that mentality a la Conway’s Law
- Move towards consumer driven contracts instead – Ian Robinson in audience agrees :-)
- Hypermedia is about consumer driven contracts – creating state machines which are independent of any particular consumer
- Problem domain: cloud -> rapid enterprise deployment
- Governance will save SOA, but assumes a federation with a chief, but the Web is a confederation of self interest
- Web of metadata notion – hyperlinked, decentralised infrastructure
- Agents (clients) surf a shared information space with explicit instructions on how to change things – hypermedia is a mix of data and control
- Semantics are in the context of a link
- Agent stores representation history (e.g. cache)
- Elasta has its own content type which has hypermedia capabilities (to allow agents to understand and traverse links to machine descriptions)
- How to start? Newbies try XML schema with minOccurs > 0, tightly coupled. Better to go with dynamically generated schemas, edit link relations (AtomPub)
- Federated identity is needed, best bet is to treat it as an orthogonal concern, rather than dealing with it within the hypermedia world (SAML, WS-Federation). OAuth is young, but has promise (see it on Facebook as a way of delegating credentials to apps)
- Semantic Web is just layering stuff on the Web, to query a big graph
- RDFa is just the W3C’s approach to microformats, SPARQL useful for querying the Web
- Hypermedia bursts silos; SemWeb practical today for early adopters for SPARQL, RDFa, GRDDL
- Question: Why custom media type over xhtml? Answer: XHTML would be an odd fellow in enterprises, which prefer domain specific XML – also support RDFa and JSON RDF
- Question: If you have a legacy DB, how would you expose it? Answer: start by exposing as-is, then perform syntactic transformation to canonical format, then semantics can be layered on
- Question: Have you come across any useful ontologies? Answer: Yes, but domain specific
- Comment: Stanford has an ontological Web site
- Clarification: Is edml elasta specific? Answer: Yes. It’s an ontology with an XML serialisation
- Question: Action links and URIs represent actions, why not a single URI for the resource, and then HTTP verbs to operate on it? Answer: The URI points to a resource, not an action. Actions are not embedded in URIs.
- Comment: Received criticism for failing to distinguish between resource and application state – but these are co-mingled. But it seems consistent with Stu’s hypermedia model which are context-free and canonical. Stu responds: a description of a human interaction media format (or C2C format) along with a process format to integrate it. Need a media type and a set of resources, media type which sets this out.
- Question: How does SAML work RESTfully? Answer: Turn it into a cookie, and use that. Or create a SAML profile to map minimal assertions into a HTTP header (a la Amazon Web Services)


