Integrated OGC Web Service Delivery with the COWS Framework
-
Upload
hunter-blankenship -
Category
Documents
-
view
23 -
download
0
description
Transcript of Integrated OGC Web Service Delivery with the COWS Framework
Philip Kershaw[on behalf of Stephen Pascoe]
GO-ESSP Seattle18 September 2008
Integrated OGC Web Service Delivery with the COWS Framework
18 September 2008 GO-ESSP Seattle
Overview
Brief Introduction to OGC WebServices
Motivation and High-level design of COWS
COWS services in the wild
NERC Portals Project
UKCIP (UK Climate Impacts Project) Data Delivery
Portal
18 September 2008 GO-ESSP Seattle
OGC Web Services
Open Geospatial Consortium
Specifications
Web Map Service (WMS)
Web Feature Service (WFS)
Web Coverage Service (WCS)
Web Processing Service (WPS)
KML !
EU INSPIRE will mandate OGC Web Services
18 September 2008 GO-ESSP Seattle
COWS Motivation
Develop lightweight OGC Services in Python
Support integration with bespoke Web
Applications
Support multiple OGC services in one
application
18 September 2008 GO-ESSP Seattle
COWS Features
Layered design. Implement your service at the level of
abstraction that suites you.
Complete flexibility in underlying data model.
Deals with the protocol “bureaucracy” of OWS-compliant
HTTP request/response
metadata model (OWS-Common)
Exceptions
INCOMPLETE
18 September 2008 GO-ESSP Seattle
Building Blocks for Layered Approach
WSGI – Web Server Gateway Interface standardized pattern for web application middleware defines standard i/o interface enabling chaining of WSGI
middleware components to apply multiple passes over HTTP request and response
Solution for multiplicity of Python frameworks
Pylons web framework a Ruby on Rails for Python – enables rapid development
approach Built on WSGI based architecture
COWS Plugin
18 September 2008 GO-ESSP Seattle
WSGI Middleware
Add security to a COWS Application by adding security middleware
Python Paste package enables inclusion of middleware via a config file – no change to COWS code required:
CowsApplication
AnotherFilter
AuthenticationFilter
[pipeline:CowsApplication]pipeline = AuthenticationFilter AnotherFilter CowsApplication
Example middleware chain:
HTTP Request
HTTP Response
18 September 2008 GO-ESSP Seattle
HTTP Server
Past
e
Pylons
Middleware
WebApplication
COWS
WMS WCS W*S
Data Model
WSGI
WSGI
Apache + mod_python, FastCGI, Python HTTPD
e.g. Authentication
Idealised COWS Application
Library
Standard Interface
Application-specific Code
18 September 2008 GO-ESSP Seattle
COWS Components
cows.model implements The OWS
Common data model for describing
your service and it's contents
cows.pylons provides pylons-specific
code
Service controllers
templates (XML rendering)
cows.service provides service
interfaces and implementations
18 September 2008 GO-ESSP Seattle
COWS Flexibility
Data dimensions/parameters
Climatological dimensions
Probabilistic
e.g. WMS layer supports extra WMS dimensions by default
Custom Co-ordinate transformations
UKMO UM rotated pole grid
Custom rendering backend
Custom URL layout
Multiple URL endpoints for services
18 September 2008 GO-ESSP Seattle
COWS
Service Controller
Implementation Plugin
COWS
WMSController
CSML WMS-impl.
COWS Interface Evolution
NetCDF Data
Data Model
Current Design
COWS
Custom Controller
Data Model
Plugin Design WMS With CSML Backend
18 September 2008 GO-ESSP Seattle
WMS Plugin Details
18 September 2008 GO-ESSP Seattle
NERC Portals: HiGEM WMS
Portion of HiGEM dataset over
WMS
Uses COWS CSML Plugin
OpenLayers as WMS Client
Climatological time selectable
as a dimension on the WMS
KML generator links to WMS
endpoint
Enables display on
GoogleEarth
18 September 2008 GO-ESSP Seattle
NERC Portals Project
2 Different Station datasets
Integrate with CSML
Pylons Application plots
CSML Features
2 visualisation interfaces
KML references plot service
COWS WMS provides in-
browser support.
18 September 2008 GO-ESSP Seattle
Station time series via COWS WMS
WMS Browser Client GoogleEarth Client
Times Series displayed viaplot service
18 September 2008 GO-ESSP Seattle
UKCIP08 DDP
Highly Dimensional Dataset
Time Period
Emission Scenario
Percentile (CDF)
Meaning Period
UKMO UM Rotated Grid but
we need to plot it on
GoogleMaps (Transverse
Mercator)
Custom WMS operation to
serve Grid-box values as
JSON