[Oslc-Automation] Automation Template Scenarios
Martin P Pain
martinpain at uk.ibm.com
Fri Jul 12 04:40:09 EDT 2013
The Automation Template Scenarios wiki page [1] says the the problem it is
trying to solve is that "Automation added “execution” as an immediate
consequence of Automation Request creation".
However, it then later says "the “template” of the automation request [is]
saved in a resource on the consumer".
To me these sound like two different problems. The suggested solution
achieves the two scenarios by addressing the first issue, by delaying (or
preventing) execution once the request has been created on the provider.
However, if we were to address the second issue - by never saving the
template request on the provider in the first place - then this would also
achieve the two scenarios.
Solving the first problem would - as the wiki page states - only relate to
the Automation domain. However, the second problem might be useful in
other domains too.
There is a way we could solve the second problem. If we used a
"templateDialog", as was originally mentioned, and returned the RDF graph
of the templated resource through the "oslc-response" data [2] passed back
through postMessage() (window.name might not support strings long enough)
then the resource would not need to be created on the provider at
template-creation time at all.
This would allow providers to avoid having to create a resource that only
needs to be requested once. I do not like the idea of forcing providers to
create such a short-lived resource, as it adds a burden of maintaining and
cleaning up short-term persisted data which it might otherwise not need to
do. Without that requirement, it would be fairly simple to support a
templateDialog. (And providers who are happy to create such a short-lived
resource could return the standard "oslc-response" data containing a URL
anyway.)
I raised a similar concern not long ago about synchronous execution (about
creating resources that will only be requested a single time), and am glad
that in that case there is an alternative to creating a short-lived
resource. I think we should consider if we can provide an alternative
here, such as the "oslc-response" suggestion above.
Also, if we went ahead with using the creation dialog for template
creation, I presume the new means of identifying that a dialog supports
pre-fill would also be used to say whether or not we support template
creation? Otherwise a client that wants template creation might use the
pre-fill on the creation dialog with the appropriate "don't execute"
status set, running the risk that the status will be ignored by the
provider and the request executed anyway! (That would be in the case where
the provider supports pre-fill but not template creation.) Using a
templateDialog would avoid that need.
While if we were to add the new "don't execute yet" state that would allow
for the "scheduling/approval smarts" to be either on the client or the
server, these scenarios are already achievable if the smarts are on the
provider end. It's up to the provider implementation when a request gets
executed anyway, so whether or not it has an additional "waiting" state,
or a separate property indicating what it's waiting for, or nothing at
all, it can still wait until the trigger or approval before executing it.
(If the execution happens by workers/agents, then the provider-worker
relationship is currently provider-implementation-specific anyway, so it
can still define its own way to delay execution).
My point is that using the creation dialog & a new state for template
creation shouldn't be done solely because it allows for the "smarts" to be
on either the provider or consumer - although we do need to consider both.
(I know this wasn't directly the motivation for it - I'm just addressing
one possible argument.)
It's possible that there's room for both a templateDialog and a new
"waiting"/"don't execute yet" state. This would allow the consumer to
create a template and save it itself (not on the provider); or to create a
resource in "don't execute yet" state on the provider and then change that
state when it's ready (both of these put the consumer in control); or for
the provider to expose the scheduling settings in the creation dialog and
control the "don't execute yet" state on its own (this is where the
provider's in control - and is possible in v2, but might be better
communicated to consumers by a new state).
Do you think there would be any benefit to a templateDialog for these
reasons, or would it be extra complexity for too little gain? (Is there
anything new here, or have we already addressed these issues?)
Thanks,
Martin
[1]
http://open-services.net/wiki/automation/Automation-Template-Scenarios/
[2]
http://open-services.net/bin/view/Main/OslcCoreSpecification#The_UI_Provider_s_responsibiliti
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-automation_open-services.net/attachments/20130712/6ad7995d/attachment-0003.html>
More information about the Oslc-Automation
mailing list