New Features Early Discussion - lisasoft/geowebcache GitHub Wiki
I'm going to keep a record of work I'm doing on GeoWebCache here as useful notes on the design and any worthwhile relevant discussions. It's mainly for my own reference but it's useful to point people here when it comes to discussing the work.
Scope
The two main goals of this work are:
- Improve usability and robustness of cache pre-seeding and purging tasks
- Improve management and administration of GeoWebCache tasks
To achieve these goals we propose to add the following features:
- Add simple time and space estimates when creating a task
- Make the execution priority of tasks settable on creation
- Allow for a max throughput setting (tiles per second) on tasks
- Add the ability to set a schedule for tasks using something like cron4j
- Improve user interface for creating tasks
- Improve user interface for displaying existing and scheduled tasks
- Improve on reporting the List of currently executing tasks
- Improve reporting on task warnings and errors
- Easy user interface to reattempt failed tiles
- Persistence of running tasks on GWC shutdown, restoration on startup
Mockups
Following are a couple of mockups to help convey our planned features. We are keen for any comments from the community on the best approach for implementing these features in GeoWebCache. As we are keen for these features to make it onto GWC trunk, any comments on potential barriers to acceptance of our contribution would also help greatly.
UI Approach
After feedback from Gabriel Roldán we have a good direction on our approach to expanding on the existing GeoWebCache UI.
Currently GWC doesn't have a strong UI subsystem, it's mainly concatenated strings generated from servlets, following a Spring MVC approach. Gabriel suggested we look into Wicket or perhaps a Javascript based REST client as a replacement for the GWC UI.
We like the JavaScript REST API client because it removes the duplicated capability of the server to be manipulated via the user interface and the RESTful interface.
We don't have budget to completely swap the subsystem over, but we do need to do one full new page (the task list) and a fair amount of work on another (the new task form), so we will put in place a REST based JavaScript client for these two pages and leave the framework in place for the rest of GeoWebCache to be swapped over. Ideally the rest of the current GWC web admin UI would be migrated to this JavaScript client at some point in the future. Then there would be only one way to interact with the server - via REST API.
Where appropriate there will have to be links from the old UI to the new and vice-versa.
JavaScript Client Details
For the client itself, a minimalist JQuery ( MIT or GPL2 ) / OpenLayers ( 2 Clause BSD ) implementation was used on the seed form page, but the JobManager has a fresh new ExtJS 4 framework.
This interface will likely use FAMFAMFAM Silk icons ( CC Attribution 2.5 or 3 ).
The client will wrap interaction with the GWC REST API into a separate js file, forming the start of a JavaScript client API for GWC. This will have a couple of objects like a GWC Service with error / warning information, and tasks.