I’m pleased to announce the release of the first draft of RDF Forms. This is the first usable specification to emerge from some ideas that have been floating around in my head for a couple of years (in various guises). It looks brain-dead simple now, so I think (hope?!) that means that I probably got it right.

As an example of an RDF Form, here’s a query (aka GET) based one for the “Top downloads” service of Mark’s RESTful MS Web services front end;

<rf:Indexable xmlns:rf="http://www.markbaker.ca/2003/rdfforms/"
               xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
               rdf:about="http://www.diveintomark.org/msweb/TopDownloads">
  <rf:indexedBy rdf:resource="http://diveintomark.org/msweb/?WSDL#topType" rf:shortName="topType"/>
  <rf:indexedBy rdf:resource="http://diveintomark.org/msweb/?WSDL#topN" rf:shortName="topN"/>
  <rf:indexedBy rdf:resource="http://diveintomark.org/msweb/?WSDL#cultureID" rf:shortName="cultureID"/>
</rf:Indexable>

Thanks to Jan Algermissen and Aaron Swartz for their help (though Aaron didn’t know he was helping on this when he answered a question for me 8-).

Greg’s asking for comments on the using a feed URI scheme to identify a subscription action for the feed, e.g. “feed://http://example.org/rss.xml”.

I think we can do better. Here’s two big reasons why I don’t like this proposal;

  • “Clicking” on a URI should always be safe, and provide information about the identified resource, not take an action upon it. This enables humans and automata to be able to trust that they’re not entering into an obligation by dereferencing a URI (any URI, not just http URIs).
  • The resource really is “http://example.org/rss.xml”, and putting “feed://” on the front obfuscates that from parties who don’t know what “feed://” means.

So what’s the better proposal? For one, get folks to start using an RSS-specific media type so that the client knows it’s RSS. Then you just need to register your aggregator as the application that handles that media type. Within the aggregator, I would expect to see that feed after clicking on the URI, but with a BIG “SUBSCRIBE” button in plain site when it realizes that I’m not already subscribed to that feed. As a bonus, there’s no need for a different “subscription URI”.

Kudos to Mark for putting a Web front end on the SOA based Microsoft Web Services API. Very nice!

I saw a BEA press release the other day, and was feeling a bit cheeky tonight, so I threw this together. April is just too far away. 8-)

Press Release

BEA embraces the Web for integration
Friday April 1, 2005 6:00 am ET
Regrets role in Web services.  Vows to get down to business to solving
customer integration problems.

SAN JOSE, Calif. -- BEA Systems, Inc., the world's leading application
infrastructure software company, today announced that it was
discontinuing any further support of "Web services", and was announcing
sweeping organizational changes that will better position it to produce
high quality products that enable the creation of services built on the
architectural principles that have made the Web such a success,
including the constraints of the REST architectural style.

"It boggles the mind to realize what a huge mistake had been made with
Web services, and how this awesome integration platform - the Web - was
right under our noses the whole time.", said CTO Scott Dietzen.  "In
retrospect, it's all so obvious, but that's small consolation when you
consider how much time and money we've wasted these past few years".
CEO Alfred Chuang added, "BEA is proud to be the first major application
infrastructure software company to close the book on this dark chapter
of IT history.  We apologize to our existing customers for our role in
this debacle, and look forward to working with them to help put their
services where they belong, on the Web".

The company also announced that David Orchard had accepted the role of
Chief Architect of the newly formed Semantic Web group, whose mission
will be to integrate the W3C's Resource Description Framework into BEA's
products, enabling customers to further simplify data integration tasks.
"That's still XML, right?", Dave was heard to say shortly after learning
of his new assignment.

About BEA

BEA Systems, Inc. is the world's leading application infrastructure
software company, providing the enterprise software foundation for more
than 15,000 customers around the world, including the majority of the
Fortune Global 500. BEA and its WebLogic(R) brand are among the most
trusted names in business.

Headquartered in San Jose, Calif., BEA has 77 offices in 31 countries
and is on the Web at www.bea.com.

Sean points to an old (June) post by Bill on Foundations for component and service models. I’m not sure why I missed this one, but it’s more or less bang on from my POV.

One quick comment …

“Calls should return documents not objects”; if the calls returned the serialized state of objects, would that be ok? Oh, right, documents are serialized object state P-)

Broken record, me?

Radovan Janacek writes;

However, in large scale scenarios, or in complex integration scenarios (many services, complex processes, evolution, independent participants) I definitely vote for REST-based approach.

Awesome. Conventional Web services wisdom has always been – until now – that this kind of scenario is exactly where you need Web services. I look forward to seeing how WASP ends up incorporating his ideas.