state of geoserver 2015

87
State of GeoServer 2015 FOSS4G Seoul

Upload: jody-garnett

Post on 21-Jan-2017

3.597 views

Category:

Software


0 download

TRANSCRIPT

Page 1: State of GeoServer 2015

State ofGeoServer 2015

FOSS4G Seoul

Page 2: State of GeoServer 2015

WelcomeJody GarnettSenior Software Engineer [email protected]@jodygarnett

Open Source ProjectsGeoToolsGeoServeruDig

OSGeo FoundationOSGeo Incubation ChairGeoTools Project Officer

Eclipse FoundationLocationTech Steering CommitteeLocationTech Technology Project

BoundlessProvides geospatial tools and services for managing data and building applications.

Page 3: State of GeoServer 2015

WelcomeAndrea AmieTechnical [email protected]@geowolf

Open Source ProjectsGeoToolsGeoServerImageIO-ExtJAI-ExtJAI Tools

OSGeo FoundationGeoServer Project OfficerCharter Member

GeoSolutionsInnovative, robust and cost-effective solutions leveraging best-of-breed Open Source products.

Page 4: State of GeoServer 2015

GeoServer 2015

Page 5: State of GeoServer 2015

Java Web Application to share and edit geospatial data.

Publish data from any major spatial data source using open standards.

Core Protocols• WMS – maps• WFS – vector • WFS-T – editing • WCS – coverage• WPS – processTile Protocols• WMTS – tiles• TileService – tiles• WMS-C – tiles

GeoServer at a Glance

Page 6: State of GeoServer 2015

GeoServer: Health Checkup● 28 members of team geoserver

o 624 members on geoserver-develo New contributors being addedo Wider base of active contributors this year

● How about team user-list?o 1983 geoserver-userso 171 geoserver-italiao Also espanol and opengeo.cn mailing lists

Page 7: State of GeoServer 2015

Active Well Managed Codebase● Over 500 pull requests this year

Page 8: State of GeoServer 2015

Current PSC members:• Alessio Fabiani• Andrea Aime• Ben Caradoc-Davies• Christian Mueller• Jody Garnett• Jukka Rahkonen• Phil Scadden• Simone Giannecchini

Prior PSC members:• Chris Holmes• Brent Owens• Gabriel Roldan• Justin Deoliveira

Project Steering Committee Update

Page 9: State of GeoServer 2015

Welcome New Committers Part I

Page 10: State of GeoServer 2015

Welcome New Committers Part II

Page 11: State of GeoServer 2015

Revised Release Schedule

Page 12: State of GeoServer 2015

Overview of Releases● GeoServer 2.6: released September 2014

o Java 7 requiredo Year of stable / maintenance releaseso Final GeoServer 2.6.4 release made .. this week!

● GeoServer 2.7: released March 2015o Just entering maintenance nowo Expect an additional release for GeoNode

● GeoServer 2.8: expected September 2015o A little response to the beta .. please helpo Working with GeoMesa for accumulo accesso Community helping to test security issueso Release Candidate issued on Monday!

Page 13: State of GeoServer 2015

SourceForge July InfocalypseGeoServer has used Source Forge from 2003• host mailing lists, download artifactsWhat went wrong this year:• A number of poor policy changes• Extended period of down time in JulyWe have an exit strategy if required.

Page 14: State of GeoServer 2015

CodeHaus Shutdown

Page 15: State of GeoServer 2015

Jira moved to osgeo-org.atlassian.netOSGeo boardhired consultantto quickly graba backup.

Result nowavailable onatlassian cloudhosting.

Great: All issues and attachments savedEeek: No release notes (versions/components missing)

Harrison Grundy OSGeo

Page 16: State of GeoServer 2015

Open Source Geospatial Foundation● Strong relationship with OSGeo Foundation

o Incubation to 2009 to 2013o Transfer copyright in 2014o Vendor Neutral custodian

● Assistance in 2015o OSGeo helped mount the “rescue” of issue tracker

contents after CodeHaus shutdown

Page 17: State of GeoServer 2015

Security Vulnerabilities

Page 18: State of GeoServer 2015

Please keep in Mind

YOUare not a

CUSTOMER

Page 19: State of GeoServer 2015

Please keep in Mind

YOUare part of a

TEAM

Page 20: State of GeoServer 2015

Responsible DisclosureDo:• Keep exploit details out of issue report• Be prepared to work with PSC on solution• Keep in mind PSC members are volunteers

(fix may require fundraising / resources)

Page 21: State of GeoServer 2015

XEE VulnerabilityOGC protocols parsing XML tricked into returning the contents of any file on the server.

Resulted in the release of:• GeoSever 2.7.1.1 (patch release)• GeoServer 2.6.4

Additional support provided a patch release of:• GeoServer 2.5.5.1

Page 22: State of GeoServer 2015

REST API Remote ExecutionAdministrator could be tricked into running executable when editing configuration.

Resulted in the release of:• GeoSever 2.8-RC• GeoServer 2.6.5

And will be available in• GeoServer 2.7.3

Page 23: State of GeoServer 2015

Features and FixesKeeping up with the GeoServer Community

Customer ReleaseImplementor

Page 24: State of GeoServer 2015

Java 7● We have updated build boxes for Java 7

o Linux (boundless): Oracle JDK, OpenJDKo Windows (geosolutions): o OSX (travis): new experiment

● Recommended?o The build boxes build and test each commit,

why take on the extra testing effort yourself?o Boundless and GeoSolutions each run build servers

to support the community

Community PSC 2.6.0

Page 25: State of GeoServer 2015

WFS Cascade: New implementation!● GeoServer uses new wfs-ng to “cascade”

from remote (or internal) WFS Servers● Performing 2.6 preflight testing wfs-ng was a

marked improvement over the originalo We have cut over “cold turkey”o We asked the geoserver-users list for help testing all

those tricky INSPIRE services● wfs-ng includes configuration overrides

o You can account for several common mistakes(such as servers that get confused about axis order)

Boundless Niels Charlier 2.7.x

Page 26: State of GeoServer 2015

WFS Cascade: Stored Queries

Volunteer Sampo 2.7.x

Page 27: State of GeoServer 2015

Use ENV variables in TemplatesAccess system properties, environment variables and context parameters:

request${request.LAYERS}${request.ENV.PROPERTY}

environment${environment.GEOSERVER_DATA_DIR}${environment.WEB_SITE_URL}

GeoSolutions Mauro 2.7.x

Page 28: State of GeoServer 2015

GML Performance• GML 3 encoding speed is improved

GeoSolutions Justin/Andrea 2.8.x

Page 29: State of GeoServer 2015

ReferencingSpatial Reference Systems and Reprojection

Customer ReleaseImplementor

Page 30: State of GeoServer 2015

Chilling beauty of polar stereographics

Before After

GeoSolutions Andrea Aime 2.6

Page 31: State of GeoServer 2015

Crossing the dateline with rasters

GeoSolutions Andrea Aime 2.6

Page 32: State of GeoServer 2015

General “Referencing” ImprovementsNew Projections:• sinusoidal, gnomonic, meteosat second

generation, general oblique• “AUTO” codes for gnomic and sterographic

Deep Internal Changes• New matrix math EJML implementation

Community Team Effort 2.7

Page 33: State of GeoServer 2015

Vector ImprovementsDrawing the world a vertex at time

Page 34: State of GeoServer 2015

● Circular arc by 3 points, CircularString, CompoundString and Polygons

● When rendering, linearize according to the rendering resolution

Smart Linearization

Vienna Andrea Aime 2.7.0

Page 35: State of GeoServer 2015

Oracle Input GML Output

Initial Implementation Oracle

Vienna Andrea Aime 2.7.0

Page 36: State of GeoServer 2015

Reading Curves from PostGIS

Helsinki Andrea Aime 2.8.0

Page 37: State of GeoServer 2015

Rasterpushing pixels further and faster

Page 38: State of GeoServer 2015

Coverage Views / Band SelectionRestructure your rasters in GeoServer

GeoSolutions Daniele Romagnoli 2.6.0

Page 39: State of GeoServer 2015

● Drill down in the various dimensions● Interact with slices, list, filter, add, update,

delete (GranuleSource/GranuleStore)● Harvest entire new files into the sources

(mosaic only)

Structured Raster Data

DLR/Eumetsat Daniele Romagnoli 2.6.0

Page 40: State of GeoServer 2015

● Many coverages per reader● read and advertise metadata

for multiple coverages

Structured NetCDF/Grib Formats

DLR/Eumetsat Daniele Romagnoli 2.6.0

Page 41: State of GeoServer 2015

● Publish NetCDF/Grib as any other format● Configure WMS-T dimensions● Return a multidimensional array via WCS

2.0 NetCDF output format

Structured WCS Support

http://localhost:8080/geoserver/wcs?request=GetCoverage&service=WCS&version=2.0.1&coverageId=geosolutions__NO2&Format=NetCDF&subset=http://www.opengis.net/def/axis/OGC/0/Long(5,20)&subset=http://www.opengis.net/def/axis/OGC/0/Lat(40,50)&subset=http://www.opengis.net/def/axis/OGC/0/elevation(300,1250)&subset=http://www.opengis.net/def/axis/OGC/0/time ("2013-03-01T10:00:00.000Z","2013-03-01T22:00:00.000Z")

DLR/Eumetsat Daniele Romagnoli 2.6.0

Page 42: State of GeoServer 2015

Raster NODATA with JAI-Ext LibraryJAI-EXT library now directly supports raster NODATA and footprints.

This is available in 2.8 (but is off by default).

Rewrite of oracle image processing operations• Support region of interest (ROI)• Support for No Data

GeoSolution Team Effort 2.8.0

Page 43: State of GeoServer 2015

Styling and RenderingPresentation counts!

Page 44: State of GeoServer 2015

Well-known Text Symbols● Create symbols using WKT <WellKnownName> wkt://LINESTRING(0.0 0.25, 0.25 0.25, 0.5 0.75, 0.75 0.25, 1.00 0.25)</WellKnownName>

● Bulk symbols using properties file <WellKnownName> wktlib://symbol.properties#wiggle</WellKnownName>

geotools-users Group Effort! 2.6

symbol.properties

wiggle=LINESTRING(0.0 0.25, 0.25 0.25, 0.5 0.75, 0.75 0.25, 1.00 0.25)block=POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))

Page 45: State of GeoServer 2015

New mark factory for windbarbs● Use WMO compliant wind barbs● Well known name template:

windbarbs://$(value)[m/s]?emisphere=(n/s)

● E.g.: windbarbs://25[m/s]?emisphere=n

GeoSolutions Simone 2.6

Page 46: State of GeoServer 2015

SLD Alpha Composition

Cleveland Metroparks Andrea Aimie 2.7

Page 47: State of GeoServer 2015

SLD Color Blending

Cleveland Metroparks Andrea Aimie 2.7

Page 48: State of GeoServer 2015

Composite Base

Cleveland Metroparks Andrea Aimie 2.7

Page 49: State of GeoServer 2015

Single layer z-order controlUse sortBy to control the order in which features are retrieved (and thus drawn) within a single layer.

<FeatureTypeStyle> … <VendorOption name=”sortBy”> attribute1 A,attribute2 D </VendorOption></FeatureTypeStyle>

DLR Andrea Aime 2.8.0

Page 50: State of GeoServer 2015

Cross layer z-order controlGroup layers together, draw with consistent z-order.

<FeatureTypeStyle> … <VendorOption name=”sortBy”> attribute1 A,attribute2 D </VendorOption> <VendorOption name=”sortByGroup”>linesGroup</VendorOption></FeatureTypeStyle>

DLR Andrea Aime 2.8.0

Page 52: State of GeoServer 2015

Dynamic Arrow Generation• <WellKnownName>

extshape://arrow?hr=[hr]&t=[t]&ab=[ab]</WellKnownName>

• hr: height over width ratio (0 to 1)

• t: thickness

• ab: area head base ratio

GeoSolutions Andrea Aime 2.8.0

Page 53: State of GeoServer 2015

New Contrast EnhancementsChoice of• ClipToMinimumMaximum• StretchToMinimumMaximum• ClipToZero <ContrastEnhancement> <Normalize> <VendorOption name="algorithm"> StretchToMinimumMaximum </VendorOption> <VendorOption name=”minValue”>50</VendorOption>` <VendorOption name=”maxValue”>800</VendorOption>` </Normalize>` </ContrastEnhancement>`

GeoSolutions Team Effort 2.8.0

Page 54: State of GeoServer 2015

New Contrast Enhancements

GeoSolutions Team Effort 2.8.0

Page 55: State of GeoServer 2015

New Hill Shade

GeoSolutions Team Effort 2.8.0

raster-channels: auto;raster-color-map:  color-map-entry(darkBlue, 0)  color-map-entry(darkGreen, 1)  color-map-entry(green, 300)  color-map-entry(yellow, 1800)  color-map-entry(maroon, 4000)  color-map-entry(white, 5000);raster-relief-factor: 20;raster-relief-brightness-only: false;

Page 56: State of GeoServer 2015

ClusteringEfficient cluster deployment

GeoSolutions Andrea Aime 2.7.0

Page 57: State of GeoServer 2015

Clustering GeoServer configuration● Instantly propagate config changes● two community modules available

GeoSolutionsBoundless 2.7.xGeoSolutions

Boundless

GS1 GS2 GS3

Load balancer

Message passing bus

Page 58: State of GeoServer 2015

Web Processing ServiceGeoServer WPS is now Production Ready

Page 59: State of GeoServer 2015

WPS Process Security

GeoSolutions Andrea Aime 2.7.0

Page 60: State of GeoServer 2015

WPS Execution Limits

GeoSolutions Andrea Aime 2.7.0

Page 61: State of GeoServer 2015

WPS Process List and Dismiss

GeoSolutions Andrea Aime 2.7.0

Page 62: State of GeoServer 2015

WPS Clustering (Asynchronous)● The only OGC operation maintaining state● Improve GS so that the state gets shared

across cluster nodes

GeoSolutions 2.7.xGeoSolutions

WPS1 WPS2 WPS3

Shared async state

Load balancer

Page 63: State of GeoServer 2015

WPS Hazelcast Clustering

GeoSolutions 2.7.xGeoSolutions

Page 64: State of GeoServer 2015

CSS ExtensionGeoServer styling for Humans

Page 65: State of GeoServer 2015

CSS Rewrite● Port of the GeoScript Scala

version to Java allowingmore people to contribute

● Faster translation to SLD● Adding LessCSS

features down the road

/* @title Population < 2M */[PERSONS < 2000000] { fill: #4DFF4D; fill-opacity: 0.7;}/* @title 2M < Population < 4M */[PERSONS > 2000000] [PERSONS < 4000000] { fill: #FF4D4D; fill-opacity: 0.7;}/* @title Population > 4M */[PERSONS > 4000000] { fill: #4D4DFF; fill-opacity: 0.7;}

Andrea Aime 2.7.xVolunteer

Page 66: State of GeoServer 2015

CSS Editor has Improved workflow

Andrea Aime 2.7.xVolunteer

Page 67: State of GeoServer 2015

Improved Documentation

Jody Garnett 2.7.xBoundless

Page 68: State of GeoServer 2015

REST APIRemote configuration of GeoServer

Page 69: State of GeoServer 2015

/security/acl/layers.<format>/security/acl/services.<format>/security/acl/rest.<format>

REST API for Access Control

DLR Christian Mueller 2.8.0

Page 70: State of GeoServer 2015

CREATE…/coveragestores/temperature/file.imagemosaic

GET …/coveragestores/polyphemus/coverages/NO2/index.xml…coveragestores/polyphemus/coverages/NO2/index/granules.xml? limit=1&filter=time='2013-03-03T00:00:00Z

REST API for Image Moasic Granule

DLR Andrea Aime 2.8.0

Page 71: State of GeoServer 2015

{"dataStore” {"name":"st… { "dataStore": { "name": "states_shp", "description": "Polygons.. "type": "Directory of .. "enabled": true, "workspace": { "name": "usa", "href": "http:\/\/localh…

Pretty Print!

Boundless Torben 2.8.0

Page 72: State of GeoServer 2015

GeoFence ExtensionAdvanced Security for GeoServer

2.8.0

Page 73: State of GeoServer 2015

GeoFence Internal Server● Advanced security rules in GeoServer● GS plugin to drive security● Donated by GeoSolutions● Fully open source:

https://github.com/geoserver/geofence

GeoServer GeoFence Embded

GeoSolutionsBoundless Team Effort 2.8.0

Page 74: State of GeoServer 2015

GeoFence Configuration● Integrated Wicket GUI● REST API

/rest/usergroup/[service/<serviceName>/]users/

{"username": "..", "password": "..", enabled: true/false}

Boundless Niels 2.8.0

Page 75: State of GeoServer 2015

Importer ExtensionData driven configuration and setup

Page 76: State of GeoServer 2015

Process raster data during importVector import has supported data processing during import for some time.

The same functionality is now available for raster data.• Warp to a new spatial reference system• Transform to a new data format• Create “overviews” for better performance

GeoSolutions Anrea Aime 2.8.0

Page 77: State of GeoServer 2015

Raster Prep GdalWarpTransform{ "type": "GdalWarpTransform", "options": [ "-t_srs", "EPSG:4326” ]}

GeoSolutions Anrea Aime 2.8.0

Page 78: State of GeoServer 2015

Raster Prep GdalTranslateTransform{ “type”: “GdalTranslateTransform”, “options”: [ “-co”, “TILED=YES”, “-co”, “BLOCKXSIZE=512”, “-co”, “BLOCKYSIZE=512” ]}

GeoSolutions Anrea Aime 2.8.0

Page 79: State of GeoServer 2015

Raster Prep GdalAddoTransform{ "type": "GdalAddoTransform", "options": [ "-r", "average"], "levels" : [2, 4, 8, 16]}

GeoSolutions Anrea Aime 2.8.0

Page 80: State of GeoServer 2015

RoadmapFeatures and Ideas for 2016

Page 81: State of GeoServer 2015

Java 8● Planned for GeoServer 2.9

o No more “PermGen” space errors

● Java 7 support ended in May

Community PSC 2.9.0

Page 82: State of GeoServer 2015

Update CITE Tests● CITE Tests are the OGC conformance tests● Pass them and you get a cool sticker for

your websiteo Well only if you payo Idea: Ask OSGeo Board to talk to OGC?

● Tests keep us all safe!o We would like some time to upgrade / fixo Help out at the Code Sprint this weekend

Volunteer Andrea Aime 2.9.0

Page 83: State of GeoServer 2015

JDBC ResourceStore● Store resources in JDBC Database

o In addition to “Catalog” configuration …o Store styles, icons, and fontso GetFeatureInfo templates

● Approach usedo Direct access to database BLOBo Great for clustered configurations

Boundless Niels Charlier 2.9.x

Page 84: State of GeoServer 2015

Layer Group OptionsWhen including layers in a group:- CQL_FILTER- INTERPOLATION- SCALE_RANGE- Etc…

Boundless Kevin Smith 2.9.0

Page 85: State of GeoServer 2015

Custom Legend Graphics● Use your own icon as legend graphic

Boundless Boundless 2.9.x

Page 86: State of GeoServer 2015

Vector Tiles• New community module for publishing vector tiles • Great solution for modern High Definition Screens• Use for GeoWebCache for “MapBox without MapBox”

Boundless Gabriel 2.9.x

See lower resolutiontile in the procesingof loading

Page 87: State of GeoServer 2015

Questions?Thank you - for another amazing year!