Fielding Has A Repositories Posse

February 19, 2008

Andrew Walkingshaw came back from semantic camp brimming with enthusiasm and bearing gifts; stickers bearing a likeness of Roy Fielding and the slogan “Fielding has a posse” and “RFC 2616” (the HTTP 1.1 spec of course!). I could stick it on my trusty powerbook, apparently all the cool semantic/web/2.0 kids have stickers all over their macs these days. My instinct to preserve the pure clean lines is evidently old hat, and as we know, old hat don’t dance.

This is timely since Roy Fielding now has a blog, and there’s been a flurry of RESTful repository discussion in the wake of Andy Powell’s keynote at VALA (responses a, b, c, d).

From Andy’s original post: –

Finally, that the ‘service oriented’ approaches that we have tended to adopt in standards like the OAI-PMH, SRW/SRU and OpenURL sit uncomfortably with the ‘resource oriented’ approach of the Web architecture and the Semantic Web. We need to recognise the importance of REST as an architectural style and adopt a ‘resource oriented’ approach at the technical level when building services.

In the comments there’s the fashionable spat over whether the word “repository” should be pejorative, but I’m surprised nobody’s trodden on the “service-oriented” banana skin. Andy does clarify with “at the technical level” at the end of the point, but care is needed since SOA is a historically infamous weasel phrase: –

“… that’s a service oriented approach for you.”

“I don’t know what you mean by service oriented approach” said Alice

Humpty Dumpty smiled contemptuously “Of course you don’t, until I tell you.”

Repositories Thru the Looking Glass, missing chapter, with apologies to A. Powell and L. Carroll

There are (at least) three distinct meanings of “service oriented” in the repositories context.

The Good
Services as in “a set of services that a university offers to the members of its community for the management and dissemination of digital materials” (Cliff Lynch).

The Bad
Protocols such as those Andy mentions (OAI-PMH, SRW/SRU, OpenURL). These are also sometimes referred to as STREST interfaces (Service Trampled REST) as they work using the same URL and HTTP mechanisms as REST, but do so in a way that doesn’t take advantage of the web architecture (or rather, that doesn’t observe the constraints of the web architecture).
The Ugly
Snake Oil Architecture. SOAP, WSDL, WS-*, standards documentation as thick as your arm. Bleuch.

At a certain level, thinking about services makes sense. The mistake is to be too literal and carry it through to implementation. The JISC e-Framework animation describing SOA looks like they were thinking about resource oriented services – it’s all about common formats, GET and PUT. From a techie’s point of view, your manager can take a Service Oriented Approach and you can implement it RESTfully.

Advertisements

2 Responses to “Fielding Has A Repositories Posse”

  1. PeteJ Says:

    Hi Jim,

    Nothing much to add except “yes!” but on the business SOA v technical SOA, I found these contributions (one weblog post, one presentation (w video)) by Stefan Tilkov quite helpful:

    http://www.innoq.com/blog/st/2007/09/27/faqentrywhatsthisrestvssoadebateabout.html
    http://www.parleys.com/display/PARLEYS/The+State+of+REST+vs.+SOA

    Pete


  2. I think this debate gets tangled up in the “agile” versus “a bunch of planning and standards and requirements” argument. I think you can do an agile SOA, doing only enough architecture to guide your development. I don’t think you can do an ad hoc SOA, in which you design and develop services one by one as needed and hope (or declare) that they form an architecture.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: