Menu / Roadmap
There are a number of improvements that we would really like to implement, but which have to take a backseat to funded projects and therefore have no anticipated completion date. This page is a non-exhaustive list of new features that we would like to add. This page will hopefully make it easy for you to get an idea of how much improvements cost to implement. You can also express interest in providing partial funding for a feature, and see whether other users would like to pool resources towards it.
The hours listed in parentheses below include architecture changes, documentation, automated and manual testing to have the changes accepted into core and maintained by OpenGeo. In many cases it is possible to pick out a few points instead of doing the entire section. The exact price depends on the amount of features you are willing to fund, please contact us with a list of items and we will be happy to provide you with a quote. Enterprise customers of OpenGeo may also use their allotted hours towards these features. Installation assistance will of course be provided to users who fund new features.
Note: The links above currently go to OpenGeo, the main contributors to GeoWebCache. But there may be other user or companies willing to make these improvements, the geowebcache-users mailinglist is a good place to ask. All developers / companies interested in the matter are strongly encouraged to bid if such a request is voiced on the mailinglist.
Your favorite item goes here
- We are happy to do custom development to meet your needs, providing custom builds or merge improvements you have made back into core. Please contact OpenGeo directly or send an email to the geowebcache-users mailinglist.
GWC Cascading / Content Delivery Network
Check the GWC Cascading Proposal page for details.
Clustering / lateral cache synchronization / high reliability (60 hours total)
- Cache-miss interceptor, alternatively revamp storagebroker (8 hours)
- UDP multicast / broadcast service (24 hours)
- Service to provide tiles, need a canonical way to represent tiles (8 hours)
- Additional configuration / documentation (8 hours)
- Remote configuration (12 hours)
WFS-T / WFSV aware expiration (32 hours)
- Allow two client modes, one for WFS-T / WFSV that uses ETags to automatically have the client expire changed tiles (24 hours)
- Could be done directly by listening for transactions in GeoServer (8 hours)
- or through GeoRSS (see above)
WMTS optional (proposed spec, 24 hours total)
- RESTful interface (8 hours)
- SOAP interface (16 hours)
Queued requests to backend servers to control load on them (16 hours total)
- Separate out backend URLs, use references in configuration (8 hours)
- Create a dispatcher for each URL (8 hours)
- Optional: Prioritize requests according to type (seed or client request), ip of client or similar information (24 hours)
Seeding improvements (pick)
- Allow simple polygons in addition to normal bounding boxes. Dramatically reduces seeding time for non-rectangular areas. (32 hours)
- Depth-first seeding: Get the center metatile for all zoom levels, then one metatile around the center for all zoom levels, then increase the radius etc. (16 hours)
Statistics (pick)
- Heat map for each layer / parameter combination (16 hours total)
General runtime statistics, like requests per time, total number of requests, response time distribution (8 hours)- Historical logs for the above, with graphs (16 hours each, depending on required admin functions)
- Bandwidth accounting for layers
ArcXML backend (18 hours total)
- Implement translator, rework code abstraction (12 hours)
- Extend configuration system (4 hours)
- Testing, documentation (2 hours)
Per-layer security (Not reviewed, please request quote)
- Excluding WFS?
- Switch to Spring Security (new name for Acegi)
- What backends? At least file and LDAP
Google Earth (Not reviewed, please request quote)
- Switch between raster and vector (KML) for busy layers
- Display a combination of raster polygons and KML placemarks
Distributed caching (Not reviewed, please request quote)
- A geographically distributed network og GWC instances, operates similar to bittorrent, you can provide bandwidth
- Depends on bandwidth accounting
AJAX configuration utility (Not reviewed, please request quote)
- GeoExt based client with the ability to configure layers, seed and preview
- Based on RESTful configuration interface
Don't store empty tiles (Not reviewed, please request quote)
- Possibility to define a multipolygon (WKT or DB select) which describes where data are available for rendering - all tiles which do not overlap is by default empty tiles.
- Analysis of a rendered tile - if it is empty, that info should ONLY be recorded in the database and NOT on the filesystem.
- When a tile is requested, if outside multipolygon return empty tile. If tile marked as empty in database return empty tile else do normal tile request processing.
Items in Progress
Completed Items
Expiration of tiles based on GeoRSS feed
- Sponsored by Grontmij | Carl Bro GIS&IT
- Fetch and parse RSS feed
- Cron job
or before request with limit? - RSS URL + filter for each layer, to determine whether an entry applies?
Pingback interface?
Ability to act as a normal WMS service by recombining raster tiles
- Sponsored by the Geomatics and Cartographic Research Centre at Carleton University (Amos Hayes)
- Completed in GeoWebCache 1.2.2
- Additions to configuration subsystem
- Catch tile misses at earlier stage
- Determine best zoom level, recombine tiles (using JAI if available)
Optional: getCapabilities document
WMTS core
- Sponsored by Anonymous
- Separate out grid definitions to make them reusable
- Support arbitrary tile sizes (heigh/width in pixels)
- GetTile
- GetCapabilities / ServiceMetadata
- GetFeatureInfo
Reduce quality loss due to compression
- Sponsored by Statens Kartverk, the Norwegian Mapping and Cadastre Authority
- Completed in GeoWebCache 1.1.3
- Example: JPEG to client, but 24 bit PNG metatile from backend to avoid loss of quality
- JPEG quality control
Old Roadmap for GeoWebCache
1.0.2
- Maintenance release, probably the last one of 1.0.x branch
- Package separate release of ndim branch ?
1.1.0
- WMS: Create new tile sets for specific parameters or combinations of parameters. Separate metadata from binary image blobs.
- WFS: Basic WFS caching
- Ability to store everything to JDBC backend (requires new blob module, the default will still be files, but this is trivial)
1.1.1
- Two modes, edit or normal. Provide last modified and etags for normal
- Test WFS hashes used for indexing to guarantee uniqueness
- Add support for specifying parameters in seeder interface. List parameters used previously ?
Make the modifiable parameters pluggable. I.e. be able to replace regex expressions with a floating point comparator- Compress WFS blobs while saving to disk
- Utility function to better maintain cache (prune old tiles, check sync), simple form-based interface
- Merge improvements from ndim branch that are not covered by 1.1.0
- Reduce GeoWebCacheDispatcher, maybe Spring URL mapper.
Responses from backend should be size limited while reading, or go via temporary files(WFS is streamed, Tiles will not be that big)- Save tiles to S3 and other services (TMS?)
- Make use of meta data to store access times and number of acccesses.
- Has to be configurable
- Be able to report
- Prune objects based on various criteria, including LRU, but also ratios
GeoServer module:
- Attach directly to catalog instead of through GetCapabilities
1.1.2
- Full WMS capability for raster formats, i.e. ability to merge and downsample tiles on the fly
- Support for multiple WFS backend servers
- Proper GetCapabilities response
- Some of the expiration timestamps did not transfer cleanly to 1.1, should be reviewed
- Turn the demo generator into a restlet
- Make automatic demos for Google Maps and Virtual Earth
1.1.3
- "Per-typename" WFS controls, i.e. make it more like WMS in the sense that we can expire all data related to a specific layer
- Sort WFS parameterized requests, parse query blobs to make it indifferent to order and whitespace differences
Beyond 1.1.x
- AJAXy configuration utility?
- Distributed caching across the world, like torrents
- Have RESTful interface for seeding accept polygons, use case is OSM, do seeding for cities down to zoomlevel 15