[tdwg-tapir] More on versioning of TAPIR
![](https://secure.gravatar.com/avatar/c284280780b9f2ccfab1a95ea0640675.jpg?s=120&d=mm&r=g)
Hi again,
Sorry. I forgot something that might be interesting. If we want to have the possibility to do Version number negotiation between clients and servers, OGC standards define a way to do it through the getCapabilities operation.
Here is explained, taken directly from the WFS Implementation specifications (replace OWS for TAPIR):
"An OWS Client may negotiate with a Service Instance to determine a mutually agreeable specification version. Negotiation is performed using the GetCapabilities operation [sec. 13] according to the following rules.
All Capabilities XML must include a protocol version number. In response to a GetCapabilities request containing a version number, a web feature service must either respond with output that conforms to that version of the specification, or negotiate a mutually agreeable version if the requested version is not implemented on the server. If no version number is specified in the request, the server must respond with the highest version it understands and label the response accordingly. Version number negotiation occurs as follows:
1. If the server implements the requested version number, the server must send that version.
2. If the client request is for an unknown version greater than the lowest version that the server understands, the server must send the highest version less than the requested version.
3. If the client request is for a version lower than any of those known to the server, then the server must send the lowest version it knows.
4. If the client does not understand the new version number sent by the server, it may either cease communicating with the server or send a new request with a new version number that the client does understand, but which is less than that sent by the server (if the server had responded with a lower version).
5. If the server had responded with a higher version (because the request was for a version lower than any known to the server), and the client does not understand the proposed higher version, then the client may send a new request with a version number higher than that sent by the server.
The process is repeated until a mutually understood version is reached, or until the client determines that it will not or cannot communicate with that particular server. "
Javi.
![](https://secure.gravatar.com/avatar/10fe360516d03002c45ebdc343062121.jpg?s=120&d=mm&r=g)
I think this is a good idea, worth considering now rather than later. It will end up saving work for providers, in the end, and will promote more responsive schema maintenance, because we'll be less afraid of breaking applications.
On 7/30/06, Javier de la Torre jatorre@gmail.com wrote:
Hi again,
Sorry. I forgot something that might be interesting. If we want to have the possibility to do Version number negotiation between clients and servers, OGC standards define a way to do it through the getCapabilities operation.
Here is explained, taken directly from the WFS Implementation specifications (replace OWS for TAPIR):
"An OWS Client may negotiate with a Service Instance to determine a mutually agreeable specification version. Negotiation is performed using the GetCapabilities operation [sec. 13] according to the following rules.
All Capabilities XML must include a protocol version number. In response to a GetCapabilities request containing a version number, a web feature service must either respond with output that conforms to that version of the specification, or negotiate a mutually agreeable version if the requested version is not implemented on the server. If no version number is specified in the request, the server must respond with the highest version it understands and label the response accordingly. Version number negotiation occurs as follows:
- If the server implements the requested version number, the server
must send that version.
- If the client request is for an unknown version greater than the
lowest version that the server understands, the server must send the highest version less than the requested version.
- If the client request is for a version lower than any of those
known to the server, then the server must send the lowest version it knows.
- If the client does not understand the new version number sent by
the server, it may either cease communicating with the server or send a new request with a new version number that the client does understand, but which is less than that sent by the server (if the server had responded with a lower version).
- If the server had responded with a higher version (because the
request was for a version lower than any known to the server), and the client does not understand the proposed higher version, then the client may send a new request with a version number higher than that sent by the server.
The process is repeated until a mutually understood version is reached, or until the client determines that it will not or cannot communicate with that particular server. "
Javi.
tdwg-tapir mailing list tdwg-tapir@lists.tdwg.org http://lists.tdwg.org/mailman/listinfo/tdwg-tapir
participants (2)
-
Javier de la Torre
-
John R. WIECZOREK