State of GeoServer 2024
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 156 | |
Author | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/68543 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
FOSS4G Europe 2024 Tartu122 / 156
6
33
35
53
55
59
61
67
70
87
97
99
102
103
104
105
107
111
121
122
123
124
125
126
127
128
134
144
150
151
155
00:00
Presentation of a groupSoftwareProduct (business)Open sourcePresentation of a groupBuildingDirectory serviceLink (knot theory)Extension (kinesiology)Information securityInternet service providerRight angleSoftware developerSoftware maintenanceModule (mathematics)AreaElectronic mailing listBitMathematicsState transition systemFunctional (mathematics)Projective planeWeb pageWeb 2.0Product (business)AdditionService (economics)Open sourceDigital photographyMultiplication signWave packetCore dumpStandard deviationPersonal digital assistantLine (geometry)Java appletProcess (computing)Shared memoryMoving averageSelf-organizationRange (statistics)Sheaf (mathematics)Different (Kate Ryan album)Attribute grammarFunction (mathematics)QuicksortSoftware bugCodeLevel (video gaming)SpacetimeComputer programmingWeb applicationRegular graphComputer clusterNetwork topologyStability theory1 (number)FreewareBootingAuthenticationGrass (card game)Server (computing)Student's t-testMusical ensembleDiallyl disulfideOpen setModal logicCommunications protocolTable (information)Goodness of fitLecture/ConferenceComputer animation
06:46
Revision controlInformation securityInstallation artStability theoryChemical equationSlide ruleComputer iconOnline chatPixelTable (information)Attribute grammarRaster graphicsDivision (mathematics)BootingTexture mappingExtension (kinesiology)Office suiteNetwork operating systemPlug-in (computing)SatelliteAxonometric projectionParameter (computer programming)CodeModule (mathematics)Coordinate systemSystem programmingPresentation of a groupFile viewerVideoconferencingDisintegrationVector spaceMultiplicationClient (computing)Transformation (genetics)Level (video gaming)Point (geometry)Table (information)Module (mathematics)Extension (kinesiology)Server (computing)View (database)Electronic mailing listMereologyOrbitParallel portPoint (geometry)Product (business)Direction (geometry)Graph coloringFunction (mathematics)CodeTraffic reportingNumberSoftware bugBitAttribute grammarProjective planeCASE <Informatik>SatelliteDesign by contractMultiplication signMoment (mathematics)Service (economics)Data miningDirectory serviceCuboidAuthorizationBlogConfiguration spaceGreatest elementBootingPresentation of a groupoutputDemo (music)Vector spaceRevision controlInformation securityResultantWeb pageMusical ensembleIntegerSlide ruleQuicksortMultiplicationRaw image formatType theorySocial classPoint cloudEmailCore dumpDefault (computer science)Software developerCodeRight angleRaster graphicsMappingStability theoryComputer clusterConsistencySet (mathematics)Structural loadRadical (chemistry)Computer animationLecture/Conference
12:17
Module (mathematics)Salem, IllinoisTransformation (genetics)Level (video gaming)Point (geometry)File formatOpen sourceTheory of everythingRaster graphicsImplementationStatisticsVolumenvisualisierungService (economics)PolygonDefault (computer science)Physical systemException handlingTopologyVariable (mathematics)Process (computing)Artistic renderingMeta elementUsabilityWhiteboardParallel computingCache (computing)Ext functorDisintegrationPoint cloudMassOperations researchAreaString (computer science)Radical (chemistry)InfinitySoftware testingData storage deviceSoftware development kitGreen's functionStandard deviationMountain passWorld Wide Web ConsortiumCollaborationismBuildingTemporal logicDatabaseLibrary catalogData typeTemplate (C++)Computer-generated imageryState of matterFunction (mathematics)FreewareMultiplication signParameter (computer programming)MathematicsContent (media)Server (computing)Presentation of a groupTransformation (genetics)Point (geometry)Term (mathematics)Open sourceComputer filePlug-in (computing)File formatAlgorithmVolumenvisualisierungData managementData storage deviceCache (computing)Directory serviceFlow separationIntegrated development environmentView (database)Statistical dispersionFreewareModule (mathematics)QuicksortFunction (mathematics)Point cloudGeometryZoom lensProgram slicingSound effectDatabasePolygonDegree (graph theory)BitSingle-precision floating-point formatCodeNumberFlagVector spaceMereologyLevel (video gaming)Interactive televisionService (economics)Table (information)Extension (kinesiology)FeedbackDevice driverDigitizingTesselationInfinityPhotographic mosaicParallel portGeneric programmingWhiteboardStatisticsEnumerated typeMassWebsiteRaster graphicsSoftware frameworkComputer animationLecture/Conference
17:47
Distribution (mathematics)Module (mathematics)GUI widgetAsynchronous Transfer ModeModul <Datentyp>Point cloudTerm (mathematics)Distribution (mathematics)DatabaseModule (mathematics)Information securityPlug-in (computing)Process (computing)Point cloudData managementType theoryComputer animation
18:17
Information securityVulnerability (computing)Software maintenancePatch (Unix)TelecommunicationNumberCodeRevision controlCovering spacePlanningSoftware developerCore dumpService (economics)Open sourceProduct (business)Term (mathematics)Internet service providerJava appletTraffic reportingSoftware bugOnline helpProcess (computing)Translation (relic)Information securitySpring (hydrology)Vulnerability (computing)Electronic mailing listMultiplication signCodeRevision controlPatch (Unix)Remote procedure callProjective planeFrictionDecision theorySoftware developerTelecommunicationPosition operatorPresentation of a groupServer (computing)Game controllerPlanningBuildingHuman migrationData structureInternet forumComputer animationLecture/Conference
21:03
Computer-assisted translationServer (computing)Computer animation
Transcript: English(auto-generated)
00:00
As I said, so the presentation is a joint effort between Andrea and me. You'll notice neither of us use proper photos in our talks. It's because Jody's not here, he always makes us use proper photos. Quick plug for the Geospatial Data Sites Group. We have some funded PhD studentships and we're going to have some research posts coming up soon if anybody's interested.
00:25
Keep an eye on us. And Geosolutions, which I thank for bringing me here. We provide support and custom development and core development for GeoServer in other open source projects as, well, our main activity.
00:40
So, quick overview of GeoServer. It's a Java web application that allows you to share and edit geospatial data. We publish data from almost any spatial standard using open standards. We're very big on open standards. So, WMS, WFS, WFS-T, WCS, WMTS, TMS, WSC, you know.
01:02
If you can think of an OGC protocol, then we've probably implemented it, at least at community module level. So, quick update on the team. Project Steering Committee has grown by one new member. Peter Smythe basically showed up, did some commits, looked promising.
01:22
So, we press-ganged him onto the steering committee. Sort of warning to anybody who turns up with code. We will press-gang you onto the committee. We have basically 25 regular committers. And we've had several other people committing this year that have appeared and fixed one problem and gone away again.
01:44
Which was fine. We love that too. Yeah, we have this very long tail of contributors that maybe show up once a year to do little things. And that keeps the project open, in my opinion. And it helps people see that they can participate, that there is an open process to get involved.
02:05
So, we've clarified the way our service providers list works. So, we have now core contributors to companies, these that employ maintainers, that regularly contribute to fixing security fixes, releases, doing maintenance activities.
02:22
We have experienced providers who are people that have contributed some functionality to the project on behalf of their customers. And we have some additional service providers who provide training and setup and other assistance with GeoServer. So, depending on what you would like somebody to do to GeoServer for you, there's a range of different organisations you might want to go and talk to.
02:47
So, at the base of our tree is the community modules. We have a community space that lets people do experiments, add new exciting functionality that they think is exciting, and maybe nobody else in the world cares about. But they're hoping that somebody else will feel interested in it after it's been demonstrated.
03:05
Most of our new work starts out as a community module. It's the simplest way of adding the code to the project. If one of the PSC thinks it's a good idea, then we'll give you access to that directory in the GitHub.
03:22
They have to compile. That's the only thing we really ask for in a community module, that it doesn't actually break the build. We're quite strict about that. And once everybody's happy with it, it's finished, you can propose it to become an extension. Extensions get produced with every release, get stored, get a link on the main page for downloads.
03:46
Community ones, you have to hunt a bit harder to find out where to get them. They're interesting enough, quite a lot of, well, what some people rely on in production are community modules. Indeed. So, incoming community modules this year, free maker to output for the web services,
04:04
graticules for WMSs, feature auto-population, JDPG headers authentication, Kafka monitor and a data de-loader. Raster attribute tables, which was the community module last year, has progressed to being an extension.
04:22
More than one production area is using it. It's got good community support. It's got good documentation. We didn't downgrade any extensions last year, and we didn't kick out any community modules last year. It's about time I have a look. Well, yes. So, Andrea every so often goes through and looks at things that haven't been modified for some years,
04:45
don't look like they're being kept up to date, and he kicks them out. And then occasionally people will turn up and say, why can't I find the module for such and such? And we go, because nobody was looking after it. Here's your chance to step up and become a community developer. It's not me waking up in the morning and saying, yeah, this module has to go.
05:00
I compile a list, send to the user list and to the developer list. We are about to kick out these modules. Are you okay? Nobody answers. And then six months later, hey, it depends on this module. Well, I did ask six months ago. Pay attention. So, hint. If you're using GeoServer in production and you rely on things working, you should probably be on the user list at least so you find out when Andrea is about to kick things you rely on out of the build.
05:26
So, releases for this year, as in every other year, we have a three-way rolling release program. So, we've always got a maintenance release, a stable release, and a development release.
05:42
And you should be running on one of the green or blue lines in that middle section where it says you are here. If you're still running 2.24X, then you've got until September for an upgrade. Otherwise, we're going to stop doing bug fixes on that. We'll stop doing security fixes on it.
06:00
You will be on your own. You should be running on 2.25X now. Between September and March, you've got six months to think about moving to 2.26 before we stop supporting that. So, keep up to date. Just because you're on the stable release now doesn't mean it's the stable release next month or the month after.
06:21
And that seems to confuse people sometimes. We don't do a long-term stable release. We have a rolling release program. You need to upgrade regularly. It's not a difficult thing to do. Right. The development pace of GeoServer is still high enough that it's kind of difficult to keep up on LTS. We get so many changes in.
06:42
We're already running into problems backporting into maintenance sometimes. So, if you're using an older version, you really, really, really need to go home and upgrade now. Because we just did a bunch of security fixes and we told everybody what those security fixes were yesterday.
07:01
So, everybody in the world, theoretically, and you can guess the bad guys are probably reading our user list to discover this, knows what those bugs are, what those major security problems are. You should be upgrading. So, if you're not running on 24 or 25 and 23 because we were generous, please upgrade.
07:28
It's also if you start asking questions about version 2.18, the first thing we're going to say is upgrade to stable release that we're supporting. And then we'll start thinking about answering your question. We haven't got time to go back through all the bug fixes for the last three years to see whether that bug you're reporting has been fixed or not.
07:45
So, we're not going to answer questions about older versions. Unless, of course, you bought a support contract, in which case Andrea will support you forever. Not forever. So, what's in it for you if you want to upgrade? There's lots.
08:00
There's a what's new on our blog. Each release tells you what the new stuff are. We're going to go through most of them now. You will see at the bottom of each slide, there's a little yellow bit that tells you who the sponsor was, silver box that tells you who the author of it was, and a green bit that tells you which version that it appeared in.
08:20
So, improvements for configuration setup. The demo request page has been completely rewritten by Dave Baysby for Geocat. That's come in at 25.2. That's partly as a result of a security problem. There were all sorts of things. By providing people with a raw JavaScript page, it turned out there were all sorts of things they could do and it wasn't good.
08:43
So, that's all much more secure now. He's also switched the WPS and WCS request builders. And there's big improvements so you can see what the request headers and bodies are. Things that you used to have to open the developer tools to find out and it was really annoying. So, that's a great step forward for us.
09:04
So, you can see the input and output. It's well worth having a play with if that's something you use regularly. As I say, he's rebuilt the WCS, WPS request builders. So, they work much more smoothly and more securely now.
09:21
The OGC new APIs, so called WFS 3.0. That shows how old I am, isn't it? I can remember when it was called that. Now appear in the same list as all the other services. And again, thanks to Geocat for providing us with that. That's currently in 2.26x.
09:44
Dreybiel at Camp2Camp, as part of his Geocat Cloud project, improved the data directory loading. It's now much faster. So, 5 or 60 times faster depending on your setup. To be honest, I've never come across anybody who had 100,000 layers and 100 workspaces.
10:04
I would always suggest they break their geoservers up at that point. For the moment, this is a community module, so it's not part of the core yet. But we have a poor request to make the new default loader for 2.26. All the config will still work in exactly the same way. But it will go much faster now.
10:23
So, mapping. We now have, is that you? Yes. Okay, so the raster attribute table support module, it's an extension now. It graduated from community. It allows rasters to have attributes just like vectors. Well, the idea is that you have one column, one band that has integer numbers.
10:45
And those integer numbers, they map onto the entries of a table. And so you can have multiple attributes and you can make classifications with them. The raster attribute table can also contain pre-classified and pre-colored classes. So it's easy to create consistent styling across various products with multiple types of classification, right?
11:08
Instead of having just one possible color output. We added support for an extra autocode. It's a vendor autocode. Autocodes are these projections that are parametric. You can choose your central meridian, your standard parallel and so on.
11:24
And we made one for the geostationary satellite projection. Because it's becoming quite common when you have satellite products. We did it for a human set. And yeah, it gives you the point of view of a geostationary satellite in orbit.
11:41
And you can choose your central meridian and thus make the Earth flip. The MapML module has been improved quite a bit through our contract with the National Resources Canada that me and a colleague of mine have been working on. I'm not going to go into many details because there is a dedicated presentation just for this.
12:02
Tomorrow, I think. So have a look at the schedule. Ian has been working on WMS radicals. So this is currently a community module. So we're looking for some people to test it out before it gets promoted to extension hopefully. Needs a little bit of code clean up as well.
12:23
But there's been an ongoing question about how you could write an SLD or something that would build your graticule. And that changed as you zoomed in and out and always put the numbers on the edge of the thing. And there were some really wild solutions out there that people have tried. We finally built it in as a new, effectively as a data store.
12:43
You can specify that you want graticules to go from every 20 degrees to 10 degrees to 5 degrees to 1 degree as people zoom in. And it comes with a rendering transformation that gives you label points that go around the edge of the map. And that was sponsored by UMA.
13:02
So again, please, people try it out. See whether you like it. Let me know. We'll look for feedback on that. Thank you. Some news about the data sources and format. We have been getting some funding to speed up the interaction between GeoServer and digital drivers.
13:22
So now it's faster to load up the data. And if you're asking for statistics, it used to compute them on the fly, which was expensive. Now they are returned only if they are actually present. We used to open the data source twice per render. Now it doesn't do that anymore, only once.
13:44
And hopefully we have in the pipe, if the customer confirms it, a generic GDAL raster store. So right now, when you install the GDAL plugin, you have an enumeration of various formats. But maybe GDAL has added 15 other formats in the meantime that we don't expose.
14:01
Or that we would like to have just a generic driver that can read them all. So you just upgrade GDAL and you get the new formats and that's it. We have been working on the vector mosaic in store. I provided a presentation about it this morning. The idea is that you might have a massive vector dataset which is organized in sort of slices.
14:22
And you don't want to spend all the money needed to store everything in a database. Because especially if you are on the cloud, that can become pretty expensive. And so the idea is that we just keep a summary table in the database and point to external files which are stored in S3 instead. To get much better cost-effectiveness and without ruining performance.
14:48
FlageoBuff got a lot faster. It's now the single fastest format for GeoServer. So if you really need to render a lot of geometries altogether. Like in this example that I have here with three zoom levels going down.
15:04
I actually have 4 million polygons to make that picture at the top. And FlageoBuff is the single fastest format to render them all in a single shot. And it's also cloud friendly so you can store the files in S3 or whatever.
15:21
In terms of services, you did not see it probably and that was the point. But we enabled the JTS fast intersection algorithm like six months ago. We didn't have any complaints so apparently it's working fine.
15:44
We did a significant improvement at the storage of tiles for the filter parameters management. You want to create a tile cache for all your styles, for all your times, for all your view params or environment variables.
16:01
GeoCache has to create several directories to store the different tiles. And the way we managed the filter parameters was inefficient. Now we made it a lot more scalable and reportedly it's somewhere in between two times and twelve times faster. At the same time an external contributor provided a significant speed up to the tile seeding algorithm.
16:28
As you can see it's almost twice as fast by making changes all across the board. PNG encoding, GWC locking contention and better parallelization in GeoServer which is the one bit which is not yet merged.
16:41
But we have a poor request out. We made a critical fix on Azure Blob Store. Something changed in the dependencies on us and when we were trying to mass delete the tiles it would never end. It would just keep on making API requests. An infinite number of API requests tend to be pretty expensive on the cloud. And so we fixed it.
17:03
The OGC API community module keeps on kicking. OGC API features is now site compliant for part one and part two. We have the stack API which is also growing. It's customizable and we are racking up a few extensions to add on top of it.
17:24
We have a new WFS HTML framework output format that allows you to render HTML as a WFS output. We have a new WFS auto populate module which you can think of as a trigger in the database that adds or modifies data after you committed it.
17:44
But it works with every sort of data store, not just databases. In terms of distribution management, we work completely how the community modules are packaged in an effort to separate their dependency because there are so many and sometimes they have incompatible dependencies.
18:00
So right now we did it to improve the COG plugin so that we have now HTTP, Azure, Google and S3 plugins which are separate depending on the type of cloud you are targeting. But we reworked all of them in the process. In terms of security vulnerabilities, we have a new disclosure policy process which you should be following when reporting any vulnerability.
18:29
Please read it carefully before making any report. Don't ever report a security bug on the user list or on the ticket tracker because they are public. And just yesterday we announced CD 2024-3641 which is an unauthenticated remote code execution which
18:49
basically allows someone to send a request and make some code execute in GeoServer without your control. That's bad. You should be upgrading as soon as possible. We made updates for 225, 224 and 223 and my company also provided patches for
19:04
selected versions which our customers are using and they are not in a position to upgrade. In terms of community building, sponsorship, we invite everyone to sponsor the project. If the GeoServer PSC has some money, we can take decisions on where the project go.
19:24
If we don't, then it's our customers that take the decision for us. That's kind of important. We are trying to reduce the friction on communication channels so GeoServer users is going to be migrated over to this course so that you have a forum-like experience.
19:42
In terms of roadmap planning, everyone is free to join and push for something, especially if you can provide development resources or funding. Those are the two things that get things done. We have one effort underway by Jodi Garnett to switch the docs from a structured text to markdown which is just easier to edit.
20:12
We need help to test it before and after to see that the translation went well. We are going to migrate GeoServer to Jakarta EE, Spring 6, Wicket 10, Imagen and Java 17 as the base.
20:27
It's a long effort that currently doesn't have funding. We are already doing something but we need help to go across the river. And that will be it.
20:46
Thanks a lot for your presentation. It was impressive to see what went on in the last months. Now it's time for questions. Let's see whether there are questions.
21:12
Everything was said maybe. As you heard, you are invited to join the community and to contribute to GeoServer.
21:21
Thanks a lot again.