geoserver, the open source solution for the interoperable...
TRANSCRIPT
GeoServer, The Open Source Solution
for the interoperable management of geospatial data
Ing. Andrea Aime, GeoSolutions
Ing. Simone Giannecchini, GeoSolutions
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
Focus on Consultancy
agencies, large private companies, etc…
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Outline
GeoSolutions
GeoServer
Quick introduction
OGC services
Data access news
Security
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
GeoServer quick intro
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
KML, GeoSearch, etc..
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Fo
rma
ts a
nd
Pro
toc
ols
Ge
oS
erv
er
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+world Mosaic MrSID JPEG 2000 ECW,Pyramid, Oracle GeoRaster, …
Raster files
Raw raster data
GeoTIFF ArcGrid GTopo30 Img+World
GWC (WMTS,
TMS, WMS-C)
KML superoverlays Google maps tiles OGC tiles OSGEO tiles
WFSv*
Google*
WPS 1.0.0
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Architecture
GeoTools
JTS ImageIO
GDAL
WCS
JAI
WMS WFS WPS REST Google
Vector Raster
GWC
Style
Kakadu JAITools
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Administration GUI
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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), gsconfig.py (Python)
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
RESTful Configuration
GeoServer
Javascript client
Desktop app
GeoBatch
Server side scripts
Styles
Layers Publishing
Automatic Configuration of recurring flows of data
Mass publishing of Layers
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Virtual 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:
Single administrator for the whole server
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
OGC Protocols
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
KML/KMZ
TEMPORAL SERIES
KML EXTRUDE KML SUPEROVERLAY
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
New projections
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Advanced Projection Handling
Management of dateline Change and map-wrapping
Cutting un-reprojectable geometries
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Advanced Styling
Filter Functions Geometry
Transformations
Drop Shadow Number
Formatting
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Rendering transformations
On-the-fly data transformations
Calling WPS processes from SLD docs
Optimized for performance
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Rendering transformations
Point feature extraction from two band raster data (e.g. Wind(u,v))
Computation of direction and module from SLD
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Time and elevation support
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Available on 2.2.x
Supports both vector (fields) and rasters (mosaics with time/elevation associated to tiles)
…GetMap&time=2001-08-01T18:00:00Z/ 2001-09-01T00:00:00Z
…GetMap&time=2003-08-01T18:00:00Z/ 2003-10-01T00:00:00Z
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&aparam=time&avalues=2004-01-01T00:00:00.000Z,,2004-07-01T00:00:00.000Z&format=image/gif;subtype=animated&format_options=gif_loop_continuosly:true
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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)
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
INSPIRE
INSPIRE community module
Adds new layer metadata fields
Integrate the WMS capabilities documents to support the INSPIRE requirements
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
Support for secured remote WMS services
GRASS e GFOSS Meeting 2012, Trieste
16 Febbraio 2012
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
GRASS e GFOSS Meeting 2012, Trieste
16 Febbraio 2012
WFS paging
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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,6457339 states.20,South Carolina,3486703
WCS*
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
ELEVATION as band management*
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
WCS: request builder and limits
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
Reuse processes as rendering transformations
GRASS e GFOSS Meeting 2012, Trieste
16 Febbraio 2012
WPS: news
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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)
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Data
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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*
*: new/experimental
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
Validation with regular expressions
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
ImageIO-Ext Support
JAI ImageIO Extension
Plugins:
BigTiff
netCDF-CF, GriB1
MatFile 5
HDF4
JP2000 (Kakadu)
GDAL 1.8.1
GDAL 1.8.1 integration via ImageIO-ext
JPEG2000,MrSID, ECW
BigTIFF, ERDAS Image, HDF4
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Image 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!
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Security
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Integrated Security
namespace.layer.mode=role1,role2,...
A name, or * to mean “any”
r: read w: write
The roles that will be authorized to access the data under this rule
Spring Security
RBAC on layers and services
Built-in version with simplified rules
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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, GeoShield
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
GeoRepository
GeoRepository
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
Password encryption in configuration files
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Raster Symbolizer
65536 Colors
256 Colors
Raw Data
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Administration GUI
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
GUI: security configuration
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Integrated Security
private.* topp.*
TRUSTED_ROLE r/w r r r
(no access) r r/w r
(no access) r r r
topp.
districts
Other
layers
LEGISLATORS
(all other users)
*.*.r=*
*.*.w=NO_ONE
private.*.r=TRUSTED_ROLE
private.*.w=TRUSTED_ROLE
topp.districts.w=LEGISLATORS
RDONLY lock down
Per-layer override
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Security 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
IPTables-like
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Complex Feature*
Application/community schemas
Complex Features
Attributes as sub-features
Attributes as list of features
Tree-like structure
Heterogeneous data sources
INSPIRE!
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Dynamic symbolizers
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
Advanced Styling
Advanced Labeling
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
WMS - CQL
GeoServer WMS – CQL Examples
STATE_NAME = 'Montana'
MALE > FEMALE
LAND_KM > 300000
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
WMS TIME and ELEVATION
TIME = 20100512T0000000Z ELEVATION = 0.0
FeatureType Editor
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
GRASS e GFOSS Meeting 2012, Trieste
16 Febbraio 2012
WPS: demo builder
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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 precision
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
GeoWebCache Integration
GeoServer
GeoWebCache
Persistent raster/KML tile cache
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
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012
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
Shell available for braves!
GRASS e GFOSS Meeting 2012, Trieste 16 Febbraio 2012