CEDA OGC WebServices Framework - Go-ESSP

bricklayerbelchedInternet and Web Development

Feb 5, 2013 (4 years and 8 months ago)

101 views

Philip Kershaw

[on behalf of Stephen Pascoe]


GO
-
ESSP Seattle

18 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

Paste

Pylons

Middleware

Web

Application

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 via

plot 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