GeoServer,
The Open Source Solution
for the interoperable management
of geospatial data
Ing. Andrea Aime, GeoSolutions
GeoSolutions
Founded in Italy in late 2006 Expertise
• Image Processing, GeoSpatial Data Fusion
• Java, Java Enterprise, C++, Python
• JPEG2000, JPIP, Advanced 2D visualization
Supporting/Developing FOSS4G projects GeoTools, GeoServer
GeoNetwork, GeoBatch ImageIO-Ext
Outline
GeoSolutions
GeoServer
Quick introduction OGC services
Data access news Security
GeoServer
GeoSpatial enterprise gateway
Java Enterprise
Management of raster and vector data
Standards compliant
OGC WCS 1.0 - 1.1.1 (RI) OGC WFS 1.0 - 1.1 (RI), 2.0 OGC WMS 1.1.1, 1.3.0
OGC WPS 1.0.0
Google Earth/Maps support
Formats
and
Protocols
Geo
Serve
r
WFS 1.0, 1.1, 2.0 WMS 1.1.1 1.3.0 PostGIS Oracle H2 DB2 SQL Server MySql Spatialite GeoCouch Shapefile --- --- --- --- --- --- --- --- --- --- --- --- ArcSDE WFS PNG, GIF JPEG TIFF, GeoTIFF SVG, PDF KML/KMZ Shapefile GML2 GML3 GeoRSS GeoJSON CSV/XLS Raw vector data Servers Styled maps DBMS Vector files WCS 1.0 1.1.1 GeoTIFF WMS ArcGrid GTopo30 Img+worldMosaic Raster files
Raw raster data GeoTIFF ArcGrid GTopo30 Img+World GWC (WMTS,
TMS, KML superoverlays Google maps tiles WFSv*
Google*
WPS 1.0.0
Architecture
GeoTools
JTS
ImageIO
GDAL
WCS
JAI
WMS WFS WPS REST Google
Vector
Raster
GWC
Style
Kakadu
JAITools
RESTful Configuration
Programmatic configuration of layers via REST
service calls
Workspaces
DataStores/CoverageStores Layers and Styles
Exposing internal configuration to remote clients
Integrated Security
Admin credentials required for modifications
Client libraries:
GeoServer Manager
(Java),
RESTful Configuration
GeoServer
Javascript
client
Desktop
app
GeoBatch
Server side
scripts
Styles Automatic Configuration of recurring flows of data Mass publishing ofVirtual Services
Expose multiple OGC service endpoints per installation One virtual service per workspace
Expose only layers defined in such workspace
Configure service metadata (point of contacts and the like) per
workspace (only on 2.2.x)
Use cases:
Provide clients with focused/theme centered data sets
Provide each department of a single organization with its own set
of services
Limitations:
WMS
Dissemination of Maps
Fusing raster and vector data seamlessly With styling!
WMS 1.1.1 and 1.3 support
SLD
Basic support for SLD 1.1 and SE 1.1 Full support for SLD 1.0
Geo-CSS (community module)
Many rendering extensions available!
Integration with GeoWebCache
KML/KMZ
TEMPORAL SERIES
Advanced Projection Handling
Management of dateline Change and map-wrapping Cutting un-reprojectable geometriesAdvanced Styling
Filter Functions
Geometry
Transformations
Drop Shadow Number FormattingRendering transformations
On-the-fly data transformations
Calling WPS processes from SLD docs
Rendering transformations
Point feature extraction from two band raster data
(e.g. Wind(u,v))
Time and elevation support
Available on 2.2.x
Supports both vector (fields) and rasters (mosaics with time/elevation associated to tiles)
WMS Animator
Animations for WMS requests across custom GetMap params
Controlled via aparam/avalues couples
Generates multiple frames through multiple GetMap requests
http://localhost:8080/geoserver/wms/animate?LAYERS=topp%3Aworld&apara
m=time&avalues=2004-01-01T00:00:00.000Z,,2004-07-01T00:00:00.000Z&format=image/gif;subtype=animated&format_options=gif_l oop_continuosly:true
Cross-Layer filtering
“querylayer” community module
“Find all sites within 100 meters from roads” Single CQL filter with WMS:
DWITHIN( the_geom, collectGeometries( queryCollection('roads', 'the_geom', 'INCLUDE') ), 200, meters)
INSPIRE
INSPIRE community module
Adds new layer metadata fields
Integrate the WMS capabilities documents to support the INSPIRE requirements
WMS Cascading
Cascade WMS 1.1 and WMS 1.3
Auto-fill metadata based on caps document
GetMap and GetFeatureInfo Cascading
Support for reprojection on-the-fly
GUI based mass import of remote layers
WFS
Dissemination and filtering of vector data
WFS 1.0 and 1.1 support with transactions
WFS 2.0 on the 2.2.x series
Formats:
GML 2, 3.1 e 3.2, CSV, GeoRSS, GeoJSON
Shapefile (zipped), OGR (via ogr2ogr, configurable)
Extensions
CQL
WFS 1.0 with on-the-fly reprojection Paging and sorting in WFS 1.0 and 1.1
WFS paging
http://myserver/geoserver/topp/ows? service=WFS&version=1.0.0&request=GetFeature &typeName=topp:states&outputFormat=csv &propertyName=STATE_NAME,PERSONS &maxFeatures=10&startIndex=10 #FID,STATE_NAME,PERSONS states.11,Arizona,3665228 states.12,Oklahoma,3145585 states.13,North Carolina,6628629 states.14,Tennessee,4829958 states.15,Texas,17122020 states.16,New Mexico,1379559 states.17,Alabama,4040587 states.18,Mississippi,2573216 states.19,Georgia,6457339WCS*
Raster data dissemination
Raw raster data useful for analysis, no maps!
Support for TIME and ELEVATION (via ImageMosaic plugin)
WCS 1.0 e 1.1.1
Output formats
GeoTiff, ArcGrid
GDAL based formats*
Extensions
WPS
WPS 1.0
Official Extension
Raster and Vector data support
High performance processes development (raster/vector statistics, raster/vector format conversions and more) Supports asynchronous requests
Integrated WPS
Automatic publishing of results
Embedding processes into SLD styles
WPS*
Deficiencies
Missing request limits enforcements (e.g. input/output maximum dimensions)
Wish list:
Scripting (Jython, GeoScript)
Sextante, IDL, JGrass (Grass?) integration Improved robustness
Jiffle (jai-tools) based raster algebra
Create new layers as dynamic WPS processes (computing data on the fly as requested)
New/improved vector stores
Teradata
(large databases + analytics/business
intelligence)
SQL Server: improved performance, added support for SQL Azure
GeoCouch* (couch db)
GeoGit* (distributed versioning)
Simple Feature Service* client (aka MapFish++ protocol) New OGR data store*
Aggregating data store
N layers, remote or local, sharing the same structure Aggregating store puts them together dynamically, the
client will think there is just one layer Parallel data fetching
Can be configured to tolerate
temporarily unreachable data sources
SQL Parametric Views
SQL View as a GeoServer Layer
No need to actually creating a view in the database View can be parametric
WMS and WFS allow parameter substitution
….&request=GetMap&viewparams=low:2000000;high:5000000 Default values for parameters
ImageIO-Ext Support
JAI
ImageIO Extension Plugins:
BigTiff netCDF-CF, GriB1 MatFile 5 HDF4 JP2000 (Kakadu) GDAL 1.8.1Image Server*
Turning GeoServer into an Image Server Serving pure Imagery
No geo-reference need/available/(would make sense!) Special Coordinate Reference Systems defined
Interoperability with WMS clients Respecting EPSG conventions
EPSG:404000 See here
Improved support for data with bad/missing geo-reference!
Integrated Security
namespace.layer.mode=role1,role2,... A name, or * to mean “any” r: read w: writeThe roles that will be authorized to access the data
Spring Security
RBAC on layers and services
Security Developments in 2.1
Security Management at the feature level (record
in DBMS)
read and write filtering
Hide sensible attributes
Discriminate visible areas on a per-user basis
Rules for services and layers
Server side framework available, but no integrated
solution leveraging it.
External tools available: GeoRepository,
GeoRepository
Database level security
Some enterprises want to control security at
the database level (instead of at the
application level)
The connection pool user gets very limited
rights
Pass down the
current GeoServer
user to the database
via SQL script
Security Developments in 2.2.x
Some new security advances are in the works on
the unstable series, will be available in 2.2.0:
Pluggable authentication layer (use
authentications others than HTTP BASIC
ones)
Pluggable user/roles database
The End
Questions?
Raster Symbolizer
65536 Colors 256 Colors Raw DataIntegrated Security
private.* topp.* TRUSTED_ROLE r/w r r r topp. districts Other layers*.*.r=*
*.*.w=NO_ONE
private.*.r=TRUSTED_ROLE
private.*.w=TRUSTED_ROLE
topp.districts.w=LEGISLATORS
RDONLY lock down Per-layer overrideSecurity Developments in 2.1
GSIP 57
extended authorization management
GeoRepository
Role Base Access Control Services
Operations Layers
Attributes (alphanumeric and geospatial) External Web Application
Web Services + UI Rule-based
Complex Feature*
Application/community schemas Complex Features
Attributes as sub-features Attributes as list of features Tree-like structure
Heterogeneous data sources INSPIRE!
Advanced Styling
WMS - CQL
GeoServer WMS – CQL Examples STATE_NAME = 'Montana'
MALE > FEMALE
WMS TIME and ELEVATION
TIME = 20100512T0000000Z ELEVATION = 0.0
Raster Pyramids
Preprocessing raster data for performance Multiple resolutions levels
Scale decide best resolution level Multiple file (tiles) per resolutions level File Based Pyramids Support
DBMS-based Pyramids Postgis
DB2
Oracle (GeoRaster) MySQL
Improved Raster Reprojection
Raster reprojection complex process
Idea:
try to approximate the overall
transformation with a simpler one, either a single affine
transformation or a piecewise composition of them (grid warp)
Ability to specify threshold for error acceptance
Iterative approach (local optimization) Trade off between speed and
GeoWebCache Integration
GeoServer
GeoWebCache
Direct calls to GeoServer rendering engine
Support for layers modified through WFT-T
Support for various tile protocols
GMap, Gearth
OpenLayers, VEarth, Bing
Speed-up factor 10/100 Disk quota support
GeoServer in da Cloud
Standing Cloud
Admin-Free Cloud Infrastructure
Paas from Amazon, GoGrid, Linode, etc… Pay per use
Elastic resources at hand GeoServer SaaS
Deploy and admin with UI No sysadmin skills