[Oslc-Automation] Oslc-Automation Digest, Vol 8, Issue 4

Charles Rankin rankinc at us.ibm.com
Thu Oct 13 11:05:23 EDT 2011


oslc-automation-bounces at open-services.net wrote on 10/13/2011 02:13:27 AM:

> Pramod K Chandoria <pchandor at in.ibm.com>
>
> Broadly speaking, proposed scenario does not go out of synch with 
> what we have been talking about the AutomationPlan, Automation 
> Request and Automation Result. 
> It just fits into the right position and answers "How to get 
> Automation Result from AutomationPlan". 
> It does not introduce any new resources here. Although if consider 
> Tool Registeration step(fist step of the scenario) to be 
> standardized, it might define another resource say "AutomationTool". 

I'm not sure I'm using the right words here, but this scenario feels more 
like we are standardizing how to create automation providers than how to 
standardize the way automation providers integrate with the rest of the 
world.  I postulate that most consumers of this spec are looking to 
understand what work (i.e., the AutomationPlan) can be done by an 
automation provider, how to invoke it (likely via the AutomationRequest 
mechanism), and what the results are (i.e., the AutomationResult).  At 
present (and I believe it is important to realize this is a point-in-time 
statement) I don't believe they are looking for a standardized way to add 
a new agent to an automation provider.  Having said that, I think a lot of 
this scenario gets enabled by the rest of the work that needs to be done 
to accomplish that first goal.  Thus, I think it is a good scenario to 
discuss, but we may not (want or) be able to accommodate the entirety of 
the scenario in the first version of the spec.  And, I think the 
definition and semantics around an "AutomationTool" are likely to be too 
much to tackle this time around. 

> 
> To answer to Charles comments and questions: 
> 3. Exactly this is where this scenario fits into, Automation tool 
> picks up the Automaton Request created out of AutomationPlan to 
'execute' it 

I think I'm going to touch on this again down below in the discussion 
about AutomationResults, but it may (my concerns about standardizing 
AutomationTool interactions not withstanding) be time to start talking 
about cardinality of relationships here.  An AutomationPlan represents an 
arbitrarily large amount of work that may be distributed across an 
arbitrarily large number of systems.  The AutomationRequest was being 
discussed as a means to "execute" an AutomationPlan. So, it is a 
many-to-1, but each AutomationRequest represented a new "instance" of the 
AutomationPlan (as a whole) being executed.  In your scenario, I think the 
AutomationRequest is almost necessarily being tied to a more fine grained 
unit of work directed at a single system (or agent).  So, there feels like 
a bit of a disconnect between an AutomationRequest being a thing that 
represents the execution of the whole AutomationPlan and an 
AutomationRequest being a thing that represents a portion of the execution 
of an AutomationPlan.  Maybe the distinction ends up being irrelevant, but 
it feels "off" to me at the moment.

> 4. Automation tool query for work, query url provided by Automation 
> provider. It is automation server which decides where to look for work. 
[Snip]
>         4.2 Automaton request is not bound to any tool. Any tool 
> which polls first gets work assigned and then Automaton Request is 
> bound to that "ready" tool . 

I'm being picky here, but I want to poke on "gets work assigned".  Does 
the work get assigned simply because the agent updates the 
AutomationRequest to mark itself as the owner?  Or, was there something in 
the polling that was supposed to assign it to the agent (and then the 
agent goes back looking for static assignments to really get the work)? 
Or, perhaps some other undescribed mechanism?

> 5. I think most of these information are custom to the tool expect 
> some common properties I have observed 

The custom information is one of the things that bothers me with trying to 
standardize the server<-->agent communication.  If it's really custom, 
then we haven't actually standardized the interaction in a meaningful way 
(such that I can just use the spec to create a new agent to work with an 
arbitrary OSLC Automation provider).  But, trying to standardize it seems 
really difficult, as there are a *lot* of different agents running around 
out in the wild with varying different semantics and capabilities.

> 6. It is more about updating the progress of the Automation Request 
> we have been talking about. 
> I believe progress update (including taken), would be import part of
> Automation Request. 
> Essentially Automation Request has got a life cycle 
> Queued -> Taken -> In Progress ( 0%< progress <100%) -> Complete 
> (progress=100% or cancelled)
> 
> 9. Assuming there is an OSLC API to create AutomationResult, it 
> might be both either created or updated by the Automation tool 
> depending upon the need. 
>     An Automation Provider might create a place holder 
> AutomationResult and let Tool update it or just let Tool create the 
> result and update it back to Automation Request to link the data. 
>     e.g. An Automation Request might get cancelled before it can 
> complete. In that case it might not make sense always create resultsup 
front.
> Automation Result is not the place holder for anything else except 
> the actual result of running the automation. It make sense to 
> persist any temporary data like (status, messages, error, variables,
> snapshots etc) in the 
> Automation Request which relates to the governance of the the 
> execution activity. Automation Result is purely a result out of 
execution. 

I strongly disagree here (in particular with the comments about the 
purpose of the AutomationResult).  I believe the AutomationResult should 
always exist and represent the current state of the AutomationPlan 
"execution".  We have the notion of AutomatinContributions which will 
allow attaching (relatively) arbitrary information to the result.  And 
while we shouldn't limit the spec to only what current tools are capable 
of, I have big concerns with attaching to much information to the 
AutomationRequest resource as some of our key tools (Build Forge and RTC) 
aren't equipped to deal with it.  Build Forge doesn't even have the notion 
of this type of resource, and RTC has it, but doesn't store any real 
information there (only an indicator of whether the "automation" has been 
"taken" yet).  For both of these, the real status information is stored in 
the AutomationResult.

I'm getting a little ahead of myself, but I think we are going to 
ultimately want AutomationRequest to be somewhat loosely governed (e.g., 
you can create them, but they may not persist).  Perhaps it would be 
useful to talk about another resource, something like AutomationTask, that 
can hold status information related to a specific activity that is 
occurring as part of the larger AutomationPlan "execution".  I could see 
us spec'ing that an implementation doesn't have to support AutomationTasks 
at all, but, if they do, they must support XYZ capabilities.  Whereas for 
AutomationRequest, all tools MUST (or maybe just SHOULD) support it, but 
with much looser restrictions (lots of MAYs) around what it has to 
support.

Charles Rankin
Rational CTO Team -- Mobile Development Strategy
101/4L-002 T/L 966-2386


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


More information about the Oslc-Automation mailing list