Archive for July, 2009

Europe Virtual ALT.NET, July 20th

July 18th, 2009  |  Published in Consumer-Driven Contracts, Events, REST, SOA by Ian Robinson

On Monday 20th July, Jim Webber and I, the golem and the frog, will be participating in the European Virtual ALT.NET (E-VAN). Colin Jack has already assembled a bunch of interesting questions, covering not only REST, but Guerrilla SOA, ESBs, consumer-driven contracts, and capability modeling.

The session will be on Live Meeting, at http://snipr.com/virtualaltnet.

Please join us on Monday, times below:

  • France/Germany/Belgium: 8:00PM
  • UK is: 7:00PM
  • EST in the US: 2:00PM
  • PST in the US: 11:00AM

Atom   RSS 2.0   Email

How Do You Link?

July 16th, 2009  |  Published in REST by Ian Robinson

Consider these links:

Example 1

<preceding>http://iansrobinson.com/0F449B535C2C</preceding>
<following>http://iansrobinson.com/796DC49C644E</following>

and

Example 2

<link rel="http://iansrobinson.com/resources/link-relations/preceding" href="http://iansrobinson.com/0F449B535C2C"/>
<link rel="http://iansrobinson.com/resources/link-relations/following" href="http://iansrobinson.com/796DC49C644E"/>

Functionally equivalent?

There are two separate concerns at play here: finding links, and understanding links. An application’s semantic space – the set of link relations it uses to annotate links – is extensible. Understanding targets an open set. The capability to find links, on the other hand, ought ideally target a closed set.

In Example 1, each element bears the weight of addressing both concerns. The ability to find links is pinned to an open set. In Example 2, by contrast, the link element belongs to a closed set, with the semantic variance broken out and herded into the rel attribute value. Much easier to find links belonging to Example 2 using an application-agnostic function, a LINQ for Links, as it were.

What happens when we extend an application’s semantic space?

Example 3

<preceding>http://iansrobinson.com/0F449B535C2C</preceding>
<following>http://iansrobinson.com/796DC49C644E</following>
<all>http://iansrobinson.com/22F4D1881C36</all>

Example 4

<link rel="http://iansrobinson.com/resources/link-relations/preceding" href="http://iansrobinson.com/0F449B535C2C"/>
<link rel="http://iansrobinson.com/resources/link-relations/following" href="http://iansrobinson.com/796DC49C644E"/>
<link rel="http://iansrobinson.com/resources/link-relations/all" href="http://iansrobinson.com/22F4D1881C36"/>

A client of Example 3 will likely only be able to report: “foreign markup found.” A client of Example 4 will be able to recognize the new link, though not necessarily understand the new rel value.

Atom   RSS 2.0   Email