Ticket #2384 (closed enhancement: fixed)
support OWS updateSequence attribute
| Reported by: | tomkralidis | Owned by: | tomkralidis |
|---|---|---|---|
| Priority: | normal | Milestone: | 5.2 release |
| Component: | SOS Server | Version: | svn-trunk (development) |
| Severity: | normal | Keywords: | ows updateSequence |
| Cc: | dmorissette, assefa, bartvde@…, sdlime, warmerdam |
Description
(I've tagged this under SOS as the intial calling implementation, but this will apply and be available to all OWS support.)
This is in OWS Common 1.0.0 ( http://portal.opengeospatial.org/files/?artifact_id=8798), subclause 7.3.4.
From a MapServer OWS point of view, this would have two changes:
1./
Default Capabilities XML output:
Say, for an SOS Server, when responding to a GetCapabilities request, the SOS would include @updateSequence in the root element of the XML document.
Since updateSequence can be anything, we could implement an msOWSGetUpdateSequence(), which returns an integer based on the mtime of the mapfile. However, this may not be as indicative, i.e.:
- what if the underlying data is updated, and a change occurs to the bbox of the layer, but the mtime of the mapfile is the same
- what if the mapfile is using INCLUDE'd mapfiles which are modified (but this is not evident in the calling mapfile's mtime
As a result, we can support MAP/WEB/METADATA/???_updatesequence. If this is set, then this overrides the mapfile's mtime.
2./
Handling updatesequence from client requests. See psuedocode:
// in Capabilities handler
if (pszUpdateSequence) {
if (pszUpdateSequence > msOWSGetUpdateSequence(map)) {
// return exception
}
if (pszUpdateSequence == msOWSGetUpdateSequence(map)) {
// return an XML document with JUST the version and updateSequence, like:
// <sos:Capabilities xmlns:sos="http://www.opengis.net/sos/1.0" version="1.0.0" updateSequence="x"/>
// hence there is no need to send the ENTIRE document back, nor for the client to process it
}
else {
// proceed as normal
}
}
This would benefit catalogs and harvesting mechanisms in managing caches of Capabilities, and reduce client/server communications on such use cases.
