Pragmatic service development and customisation with the CEDA OGC Web Services framework (COWS) Stephen Pascoe, Ag Stephens, and Dominic Lowe British Atmospheric Data Centre, Rutherford Appleton Laboratory, UK (Stephen.Pascoe@stfc.ac.uk) Application: UK Climate Projections '09 User Interface http://ukclimateprojections-ui.defra.gov.uk COWS Architecture The CEDA OGC Web Services framework (COWS) emphasises rapid service development by providing a lightweight layer of OGC web service logic on top of Pylons, a mature web application framework for the Python language. This approach gives developers a flexible web service development environment without compromising access to the full range of web application tools and patterns: Model-View-Controller paradigm, XML templating, Object-Relational-Mapper integration and authentication/authorization. Application: QESDI Data Portal http://phobos.badc.rl.ac.uk/qesdi/ The QUEST Earth System Data Initiative (QESDI) facilitates exchange of data within the QUEST thematic programme. It provides access to a diverse range of data products produced within QUEST and complementary external datasets. The QESDI portal's data visualisation interface is driven by COWS WMS server and client components. Data download is available through WCS. Features: ●Overlay WMS layers from internal and external WMS servers ●Browse arbitrary WMS dimensions ●Integrates with COWS Server to provide extended capabilities ●Styling Options: contouring, colourmap configuration ●Data download via WCS KVP request ●Publication quality plot generation ●Intuitive display of Climatology dimensions QESDI map view showing WMS layer selection and styling options discovered from WMS GetCapabilities extensions. The contour plotting feature of COWS server facilitates overlay of overlapping layers. Geoserver (Java) Geoserver (Java) UI (PHP) UI (PHP) COWS-WPS (Python) COWS-WPS (Python) COWS-WMS (Python) COWS-WMS (Python) UKCP Data lib UKCP Data lib geoplot geoplot chartplot chartplot Weather Generator Weather Generator Threshold Detector Threshold Detector Sun Grid Engine Sun Grid Engine cdat_lite, matplotlib, rpy, nappy cdat_lite, matplotlib, rpy, nappy User Interface Layer Application Layer Library Layer Processing Layer ddp-ps1 ddp-ps2 ddp-ps3 ddp-ui1 UI (php) geoserver (tomcat) spatialdb (postgres) ddp-app1 WMS (python) WPS (python) ddp-store1 SGE execd archive ddp-u2i UI (php) geoserver (tomcat) spatialdb (postgres) ddp-app2 WMS (python) WPS (python) ddp-store2 SGE execd archive ddp-ui3 UI (php) geoserver (tomcat) spatialdb (postgres) ddp-app3 WMS (python) WPS (python) ddp-store3 SGE execd archive acache 1 acache 2 acache 3 Master server and backup Physical servers Virtual Machines ddp-ps5 ddp-admin1 haproxy SGE master userdb (postgres) cache ddp-ps4 ddp-adminbak1 mirror state cachebak haproxy The UK Climate Projections 2009 are a set of probabilistic data products for the UK climate over the 21st century. The UKCP09 UI provides a rich, interactive user experience including map-based selections and outputs. The implementation integrates and extends Open Source GIS technologies including GeoServer, PostGIS, OpenLayers and Tilecache. Where necessary new components have been developed using the COWS framework. The UKCP-UI graphics page allows geospatial and probabilistic plots to be customised by the user. Requests for publication quality plots or the underlying data can then be sent to the WPS for processing before arriving in the user's download area. The UKCP09 UI was designed from the outset to be highly scalable and fault tolerant. The system is deployed as a cluster of XEN Virtual Machines, dividing the system into a set of functional VM types. These VMs are spread over multiple physical servers to provide both physical and virtual system failover. Load-balanced VM types are deployed in parallel allowing the system to scale up and down according to load, whereas the VMs managing state employ a separate hot-backup failover strategy