[Oslc-Automation] Actions 2.0 - Dialog RDF

John Arwe johnarwe at us.ibm.com
Wed Nov 20 09:13:01 EST 2013


action:request [ a oslc:Dialog ] seems like it would work, and certainly 
re-uses existing concepts & artifacts in what looks like a completely 
sensible way.

Are these scenarios heading to a wiki page?

I'm a *bit* confused when you say that scenarios B and C are "specific to 
the Automation profile".
It is true that the Automation *spec* defines what usage=template means. 
Automation is the only spec I'm aware of that overloaded resource creation 
with additional semantics (flogs self Again for missing that in 2.0 review 
phase), but I'd hope that we're drafting the usage URI in such a way that 
another spec Could re-use it if a similar situation arose.  Being defined 
by the Automation spec alone therefore does not tie templates to the 
Automation profile.

Put another way: if we assume that action:request [ a oslc:Dialog ] is the 
syntax, and the semantic of action:request is "contains instructions for 
executing the Action", then if a particular set of instructions includes 
usage=template do we consider that an error (since usage=template 
conflicts somehow with ... I'm not sure what, but maybe I'm missing 
something) ?  The reason we needed usage=template is that there is a 
semantic "create means create now" carried by creation factories in 
general, but *the knowledge that the dialog was for a creation factory* 
came from following a oslc:creationDialog link in a service provider 
document, a context/semantic that Actions does not have.  I think this is 
the reason Steve suggested calling these "action dialogs", to clearly 
distinguish them (and along the way give us the opportunity to define the 
semantics differently if needed).

We could, for example, create usage URIs like "execute immediately" for 
actions, and require 1:* usage URIs on action dialogs; all URIs on a given 
dialog must be "compatible" in the same sense that Automation uses to 
enable logical subclassing of verdicts/states, and a client must not use a 
dialog unless it understands at least one of those URIs.

That allows profiles (defined in Core, or elsewhere) to define dialogs 
with different semantics without having to worry about (compliant) clients 
getting unexpected results. 

One such profile might be called "deferred execution".  For the moment, 
I'll assume that's defined separately from the Automation profile 
(combining them later if we decide they must be is always easier than 
untangling things after the fact).  What we need for this is actually 2 
dialogs: one to create the template, and one that accepts a template as 
pre-fill (using existing terminology) and executes it immediately (a 
standard creation dialog that accepts pre-fill; we need to think through 
what the interaction pattern (responses) should be).  We *could* define a 
single "execute immediately" interaction pattern that works for both 
cases, I think...strawman off the cuff would be:

200 or 204 = succeeded already; poll the resource being acted upon to find 
current state.
202 = queued for execution (accepted but not yet completed).  HTTP says 
the response payload contains a "monitor" in this case, but not what a 
monitor is - left completely open; we could say that the monitor (if 
you're using our usage URI) SHOULD be an Automation Request, with a 
Location header (allowed by HTTP, but no meaning assigned to that in 
HTTP).  IF the client wants to know when/if the request completes (and its 
ultimate status), THEN the client needs to poll the monitor resource (no 
query, no service provider needed, just GET the Location URI) and use the 
state/verdict properties in the result per Automation 2.0.  The provider 
is required to clean these up w/o any client DELETE request (my strawman - 
not the client's fault that the server queues the request, the client 
wasn't really Trying to create some new resource it would be responsible 
for).

All other status codes exactly as HTTP uses them.
Particular implementations might never return the 202, but clients still 
need to cope with 202.  I would not be averse to giving "202 capable" 
implementations their own usage URI, if the perceived burden on clients is 
too high.  There's an argument to be made that any HTTP client already 
MUST deal with 202 anyway, possibly by treating it as a generic 2xx, thus 
ignoring all the polling/monitor specifics, but I'd bet that no all are 
correctly coded in practice.

Automation 2.1 could require that implementations support both Automation 
Plans as implementations and template dialogs (in which case maybe it is 
just one Automation profile), or it could treat them separately. 
Personally I lean toward flexibility.

Best Regards, John

Voice US 845-435-9470  BluePages
Tivoli OSLC Lead - Show me the Scenario

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-automation_open-services.net/attachments/20131120/6627c86c/attachment-0003.html>


More information about the Oslc-Automation mailing list