state of geoserver 2015
TRANSCRIPT
State ofGeoServer 2015
FOSS4G Seoul
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.
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.
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
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
Active Well Managed Codebase● Over 500 pull requests this year
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
Welcome New Committers Part I
Welcome New Committers Part II
Revised Release Schedule
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!
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.
CodeHaus Shutdown
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
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
Security Vulnerabilities
Please keep in Mind
YOUare not a
CUSTOMER
Please keep in Mind
YOUare part of a
TEAM
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)
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
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
Features and FixesKeeping up with the GeoServer Community
Customer ReleaseImplementor
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
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
WFS Cascade: Stored Queries
Volunteer Sampo 2.7.x
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
GML Performance• GML 3 encoding speed is improved
GeoSolutions Justin/Andrea 2.8.x
ReferencingSpatial Reference Systems and Reprojection
Customer ReleaseImplementor
Chilling beauty of polar stereographics
Before After
GeoSolutions Andrea Aime 2.6
Crossing the dateline with rasters
GeoSolutions Andrea Aime 2.6
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
Vector ImprovementsDrawing the world a vertex at time
● 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
Oracle Input GML Output
Initial Implementation Oracle
Vienna Andrea Aime 2.7.0
Reading Curves from PostGIS
Helsinki Andrea Aime 2.8.0
Rasterpushing pixels further and faster
Coverage Views / Band SelectionRestructure your rasters in GeoServer
GeoSolutions Daniele Romagnoli 2.6.0
● 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
● Many coverages per reader● read and advertise metadata
for multiple coverages
Structured NetCDF/Grib Formats
DLR/Eumetsat Daniele Romagnoli 2.6.0
● 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
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
Styling and RenderingPresentation counts!
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))
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
SLD Alpha Composition
Cleveland Metroparks Andrea Aimie 2.7
SLD Color Blending
Cleveland Metroparks Andrea Aimie 2.7
Composite Base
Cleveland Metroparks Andrea Aimie 2.7
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
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
Z-order Example
DLR Andrea Aime 2.8.0
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
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
New Contrast Enhancements
GeoSolutions Team Effort 2.8.0
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;
ClusteringEfficient cluster deployment
GeoSolutions Andrea Aime 2.7.0
Clustering GeoServer configuration● Instantly propagate config changes● two community modules available
GeoSolutionsBoundless 2.7.xGeoSolutions
Boundless
GS1 GS2 GS3
Load balancer
Message passing bus
Web Processing ServiceGeoServer WPS is now Production Ready
WPS Process Security
GeoSolutions Andrea Aime 2.7.0
WPS Execution Limits
GeoSolutions Andrea Aime 2.7.0
WPS Process List and Dismiss
GeoSolutions Andrea Aime 2.7.0
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
WPS Hazelcast Clustering
GeoSolutions 2.7.xGeoSolutions
CSS ExtensionGeoServer styling for Humans
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
CSS Editor has Improved workflow
Andrea Aime 2.7.xVolunteer
Improved Documentation
Jody Garnett 2.7.xBoundless
REST APIRemote configuration of GeoServer
/security/acl/layers.<format>/security/acl/services.<format>/security/acl/rest.<format>
REST API for Access Control
DLR Christian Mueller 2.8.0
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
{"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
GeoFence ExtensionAdvanced Security for GeoServer
2.8.0
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
GeoFence Configuration● Integrated Wicket GUI● REST API
/rest/usergroup/[service/<serviceName>/]users/
{"username": "..", "password": "..", enabled: true/false}
Boundless Niels 2.8.0
Importer ExtensionData driven configuration and setup
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
Raster Prep GdalWarpTransform{ "type": "GdalWarpTransform", "options": [ "-t_srs", "EPSG:4326” ]}
GeoSolutions Anrea Aime 2.8.0
Raster Prep GdalTranslateTransform{ “type”: “GdalTranslateTransform”, “options”: [ “-co”, “TILED=YES”, “-co”, “BLOCKXSIZE=512”, “-co”, “BLOCKYSIZE=512” ]}
GeoSolutions Anrea Aime 2.8.0
Raster Prep GdalAddoTransform{ "type": "GdalAddoTransform", "options": [ "-r", "average"], "levels" : [2, 4, 8, 16]}
GeoSolutions Anrea Aime 2.8.0
RoadmapFeatures and Ideas for 2016
Java 8● Planned for GeoServer 2.9
o No more “PermGen” space errors
● Java 7 support ended in May
Community PSC 2.9.0
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
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
Layer Group OptionsWhen including layers in a group:- CQL_FILTER- INTERPOLATION- SCALE_RANGE- Etc…
Boundless Kevin Smith 2.9.0
Custom Legend Graphics● Use your own icon as legend graphic
Boundless Boundless 2.9.x
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
Questions?Thank you - for another amazing year!