SRU VERSION 1.1 ARCHIVE
SRU Version
Introduction
In any actively developed protocol or piece of software, there is a
concern about interoperability between different versions. In SRU, there
is an explicit interoperability mechanism, with precisely defined semantics.
The mechanism defined allows for clients and servers using different
versions to interact without protocol level errors. Versions of SRU will
always be recorded as strings of the format 'major.minor' where major
and minor are independent integers.
Operations
All SRU operations have a version parameter, with the exception of
the parameterless explain GET request.
The version parameter on a request both indicates the version of the
request and is a statement by the client that it wants the response to
be less than, or preferably equal to, that version. The version parameter
in the response message is the version of the response. If the server
cannot supply a response in that version or lower, then it must return
a diagnostic. If possible this diagnostic would be in the version requested
or lower, but that is not a requirement.
Here are some examples of how this works in practice. If a 2.0 client
asks a 1.1 server for a 2.0 response, then the server is able to respond
with a 1.1 response as it is lower than version 2.0. If a 1.1 client
asks a 2.0 server for a 1.1 response then the server is able to reduce
its response version to accomodate the client. If a 1.1 client asks a
1.1 server for a 1.1 response, then there is no version mismatch and
the server is able to accomodate the request.
Version 1.0
Version 1.0 was an experiment, and has been officially deprecated.
The version 1.0 implementation trial was very useful informing the development
of version 1.1, the first non-experimental version. Version 1.0 does
not have a version parameter in any of the requests or responses and
hence cannot be considered to be part of this version interoperability
system. If a client requests version 1.0, then the server may return
a 1.0 response but is under no obligation to do so.
Version Documentation and Changes
Documentation for all versions of SRU will be maintained such that
server and client authors are able to track changes between versions.
A summary document of changes between versions will also be maintained.
This version interoperability solution will only work so long as there
are no additional mandatory parameters added to a request, and as such
the SRW editorial board will endeavor to only ever add optional elements.
If there is a requirement to add a mandatory parameter to a request,
then this will be announced with as much prior warning as possible.
While only the documentation for the most recent version of the protocol
is maintained, the changes between versions are listed below. Note that
although version 1.0 is officially abandoned, the changes from 1.0 to
1.1 are listed, for the benefit of those who have already implemented
1.0.
|