[Oslc-Automation] Advertising actions on the Result from the Plan
John Arwe
johnarwe at us.ibm.com
Wed Oct 16 17:54:34 EDT 2013
Looking at
http://open-services.net/wiki/automation/Exposing-arbitrary-actions-on-RDF-resources/#Advertising-actions-on-the-Result-from-the-Plan
, some comments.
Without the parameterised plan:
- there's not enough here for a client to know it is capable of knowing
how to invoke the future Action. Automation would have to add that
requirement; i.e. that the action on the result MUST at least support the
Automation Plan implementation type, using the current terms. If we do
so, not much practical difference between these two options that I can
see.
- the Result might offer multiple Actions, with duplicate rdf:type sets,
some supporting the Automation Plan implementation type and others not
supporting it. I'm allowing, for example, that the Plan and Result are
owned by different providers, which is a case I remember at least one
implementation saying they had; the Result provider could offer a stop
action (that the Plan provider somehow knows about - how, I don't care)
and a second stop action implemented by a third provider. This seems like
a stretch, but if the Result provider allows updates (put/patch) that add
actions, there you are. We don't have to solve that, but if there's an
option that clearly does/not it would be useful to keep in mind.
With the parameterised plan:
- the "orchestration composition time" problem I think is that the
requestURI value is unknown on the Plan. Reusing core:Action with
requestURI 0:1 (or 0:0) seems right to solve that.
- dcterms:identifier is only going to be useful if both Plan-Action and
Result-Action are somehow known to come from the same Provider, which
Automation does not guarantee (tolerable) but also does not give the
client any iron-clad always-available way to know (less attractive - I
don't think we Require oslc:serviceProvider links). It really wants to be
a URI, but it seems likely that (ala requestURI) the correct URI (to the
Result-Action of interest, which is inherently scoped to 1 request) cannot
be reliably known from the Plan (which is scoped to 0:n Results). In
cases where the resource context is supplied outside the request URI (e.g.
in a fixed body), I can see a URI working.
- I don't see any way to link them reliably in the case where Plan and
Result come from different providers, using current Automation means. I
think we also had implementation cases where the Request and Result came
from different providers (potentially separated by queueing and
delegation), which Does Not Help at all.
"without" + adding the MUST support AP implementation type seems like the
minimum that Could work, so I'm tempted to start there and say any
improvements in robustness/reliability are implementation extensions.
Which is vaguely unsatisfying.
I wonder out loud: if the Result-Actions (as in the "with" option, fully
fleshed out with the final requestURI) were linked via actionOnResult from
the Request, would that satisfy the scenario? The scoping problem is
solved there at least. Not all implementations would necessarily have the
information available that early, but for those that do the consumer could
build the full stop request "immediately" upon receipt of a representation
of the Automation Request if it so desired. Implementations wishing to
have fully reliable matching could also assign a proper URI (possibly hash
URI) to the Action, once there is a Request with matching scope... given
that, consumers would have zero doubt that they got the intended Action.
Once blank nodes are allowed as Actions, there is just no reliable way to
match, best anyone could do is duck-typing it.
(Wild thought, again requiring that a single provider own the Plan and
Results) we could also say that the requestURI on the Plan is a URI
*template* (RFC 6570), which through some Jedi mind trick we know how to
resolve fully (perhaps using the final request parameters... inputs +
outputs... as input name/value pairs to resolve the template). This
quickly gets too complex again.
Net: I do see how some particular implementations could accomplish this. I
do not see how it can be done using Automation alone by *all* the
implementations I remember us discussing in the past as being either
permissible or real. Simply too many degrees of freedom in the general
case.
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/20131016/b8b53ab0/attachment-0003.html>
More information about the Oslc-Automation
mailing list