[tdwg-tapir] More on versioning of TAPIR

Javier de la Torre jatorre at gmail.com
Mon Jul 31 02:19:50 CEST 2006


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.






More information about the tdwg-tag mailing list