[Oslc-Automation] how does a client find the automation result corresponding to the request it created?
Michael F Fiedler
fiedler at us.ibm.com
Wed Apr 4 09:20:24 EDT 2012
I reviewed the discussions on this topic and there was an assumption that
query would be used when we established the direction of the link as
AResult -> ARequest. The reasoning for setting the link in that direction
was the potential for ARequests to be transient in some service providers.
In the transient case, the client could still query the AResults for a
given ARequestURL even if the ARequest is no longer GET-able.
The proposal for the 201 returning Location=ARequestURL, Body=AResult
assumes the AResult is created at the time the ARequest is POSTed. One of
the scenarios supporting having ARequests in addition to AResults was the
case where the ARequest could be queued and the AResult not created until
sometime later.
In my opinion, we need to revisit the assumption clients can use query to
find results, especially in light of the recent comments on-list around the
simplest possible providers and consumers. I've added entries to the
issue list [1] to reflect some of these concerns and suggest we make them a
priority for workgroup discussion.
[1] - http://open-services.net/bin/view/Main/AutoSpecificationV2Issues
Regards,
Mike
Michael Fiedler
IBM Rational Software
fiedler at us.ibm.com
919-254-4170
John
Arwe/Poughkeepsie
/IBM at IBMUS To
Sent by: oslc-automation at open-services.net,
oslc-automation-b cc
ounces at open-servi
ces.net Subject
[Oslc-Automation] how does a client
find the automation result
04/03/2012 04:25 corresponding to the request it
PM created?
Still working this very simple automation implementation.
1: My client creates an Automation Request via the factory.
2: ?
3: My client GETs the corresponding Automation Result to see if has
finished, etc.
In step 1, client POSTs an AReq representation to the creation factory URL.
The 201 response is a pointer (HTTP Location header) to the newly created
AReq. At some future time, it wants to poll and see if the request has
completed (generically, what is its current state). By what magic in step
2 does it find the ARes's (sic) URL? I had expected a link from the
Request to the Result, but I see none (I see the opposite link). Is the
expectation that the client has to query the AResult collection using the
query parameters (where) to find the AResult corresponding to the request,
and no other implementation models need apply?
In the simplest possible case, the request could have already completed by
the time the create-request flow is ready to build the response. It would
be nice if the 201 response did not require any additional flows for the
client to examine the AResult. Core and HTTP would let me provide a 201
response, Location=ARequestURL, body=AResult (sic), which accomplishes that
(without forcing it on anyone - clients preferring to query still could,
and ignore this "optimized" case). Which is nice, but does not address the
mainline case where completion really is asynch.
If the spec's current intent is to require that clients can search through
Results via query capabilities, I don't think the spec actually says that.
It says >=1 QC is required, but not which resource types that QC is
required to expose. Creation Factories are likewise pretty open; >=1 is
required, but no restriction on what types it manufactures. ARequest seems
likely (in addition to just intellectually, also by inference from the
SHOULD on delegated creation dialog).
Best Regards, John
Voice US 845-435-9470 BluePages
Tivoli OSLC Lead - Show me the Scenario
_______________________________________________
Oslc-Automation mailing list
Oslc-Automation at open-services.net
http://open-services.net/mailman/listinfo/oslc-automation_open-services.net
More information about the Oslc-Automation
mailing list