Hey all,

As part of the GeoNode/GeoServer/GWC integration work I'm doing, I'm working on 
the ability for the integrated GWC to sit in front of the regular GeoServer WMS 
so that tile requests that happen to fit a GWC tile get served by GWC, 
providing automatic caching for the regular WMS.

(planning to make it an opt-in configuration option, and accompanied by the GWC 
diskquota module so that you're in control of the cache size, don't worry :) )

Thing is, if my understanding is correct, that the regular WMS acts as a 
liberal tiling server in that it can create tiles of any dimension and for any 
"tileOrigin", which is great. But this tighter GWC integration will only work 
when a tile requested fits into a configured gwc griset for the requested 
layer. Beware I'm _not_ saying to keep the regular WMS from being as flexible 
as it currently is. Only thing I'm looking for is for an easier way to get 
clients "the right" gridsets.

Would love to hear your opinions on the following ideas then:
- How about improving the WMS GetCapabilities so that if TILED=true is passed 
over, the integrated GWC contributes to the document with the WMS-C vendor 
specific capabilities elements?
- It would really help if the layer preview page (actually the 
OpenLayersMapProducer) generated the OL client in a way consistent with how GWC 
generates default gridsets
- As a starting point for my future GWC UI enhancements in GeoServer, I would 
replace the current direct link to the GWC REST forms by a wicket page with the 
same links to the seeder etc, but allowing to set a couple minimum 
configuration options like the opt-in checkbox to enable this kind of WMS 
integration
- Tiling clients (OL based ones at least) usually need to parse the GetCaps 
document to figure out a sensible tilesOrigin parameter based on the layer 
bounds, and set up a set of resolutions that match the layer bounds. I think 
it'd be easier and more effective (thinking that the primary usage for tiled 
layers is to create mash ups where the tileset is a property of the map?) to 
always use CRS area of validity corner as tileOrigin, and to use grisets based 
on the whole CRS area of validity instead of on per layer bounds. There's the 
issue of a layer occupying only a tiny part of its CRS area of validity, which 
I don't think is such a big problem as: the number of tiles for the higher zoom 
levels is gonna be really small anyways, and we should be able of configuring a 
layer cache to cache only a range of zoom levels.

If you're thinking why not direct the clients to the GWC WMS GetCapabilities 
URL and that's it... that's a valid question. First, I think this would tell a 
much better story wrt _integration_ with GWC. Then, you could still use the GWC 
WMS url directly, difference is that the GWC WMS and the GeoServer WMS don't 
necessarily contain the same set of Layers (as you can add more layers to GWC 
through geowebcache.xml), and in the near future you'll also be able to opt-out 
from caching GeoServer layers (on a layer by layer basis), so the two keep 
being completely different beasts.

Any thought's much appreciated.

Cheers,
Gabriel


Gabriel Roldan
[email protected]
Expert service straight from the developers


------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to