- From: Jan Algermissen <jalgermissen@topicmapping.com>
- Date: Wed, 1 Jun 2005 21:41:28 +0200
- To: public-web-http-desc@w3.org
Hi,
some feedback regarding Mark's posting:
I see two purposes of a description langauge: Generating code and
keeping documentation
about services. Especially in an IT service management or software
portfolio management
context, such documentation is key anyhow. If it is standardized, so
much the better.
IMHO, code generation only makes sense for the service implementation
while consumers
should only implement MIME type semantics (and not knowledge about
the service's state
machine which is discovered at runtime in the Web's application model).
Regarding the question *what* should be described, I think that Web
services are simply
RESTful applications[1] and that these can be described as a state
machine, where each
state definition is a pattern or predicate (expressed in terms of a
common data model[2])
and each allowed transition is a combination of HTTP method and a
definition of what may
be sent as a message body (aka form) and optionally what role
(expressed as a group URI)
may perform that transition.
As an example, consider a trouble ticket: in the DL I could state
that for all states of
the ticket (expressed as an RDF graph) that 'match'
the-ticket-uri tts:status 'new'
there is an allowed transition
POST
the-ticket-uri tts:status 'open'
I can imagine generating all the backend code (except the data
storage of course) and
the UI portions (if desired) from such descriptions.
Jan
[1] see here for my favorite definition of the term:
http://groups.yahoo.com/group/rest-discuss/message/4578
[2] RDF or XML or Topic Maps (though not directly suitable in Web
context due to
their duality of URI semantics)
________________________________________________________________________
____________________
Jan Algermissen, Consultant & Programmer
http://jalgermissen.com
Tugboat Consulting, 'Applying Web technology to enterprise IT'
http://www.tugboat.de
Received on Wednesday, 1 June 2005 19:41:37 UTC