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 [email protected] 919-254-4170 John Arwe/Poughkeepsie /IBM@IBMUS To Sent by: [email protected], oslc-automation-b cc ounces@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 [email protected] http://open-services.net/mailman/listinfo/oslc-automation_open-services.net
