Rich: I’m speaking with Justin Deoliveira, who is involved with the GeoServer project. GeoServer is a little over 10 years old and … almost 11 years old actually … and is a Java server for geospatial data.
Rich: Justin, can you tell us a bit more about what that means. How someone would actually use this product.
Justin: Sure, and thanks for having me on, Rich. As you mentioned, GeoServer is a GIS data server written in Java. What it allows for is the publishing and sharing of GIS, or geospatial data, on the web.
When I say GIS or geospatial data, what I mean is data that has location associated with it. When you’re looking at a map and you see a road or a building on a map, that building has some geospatial representation of it, that allows us to place it on a map accordingly.
The analogy I usually use is GeoServer is sort of a specialized Web server for geospatial data. Typically where we see it used is with web mapping. So using it as a backend to create a Google Maps type web map, but with full control over things like cartography and styling
Rich: The data that’s included in this – where does that come from?
Justin: GeoServer ships with what we call a vanilla or demo data, and that’s data that’s been gathered from all over the place. I believe there’s a subset of it that comes from New York City. But you’re certainly not constrained to that data. Typically people use GeoServer with their own data. So it might be a government agency that has satellite imagery or something like that, that they want to publish on the web. They can use GeoServer to connect to that data and serve it up for them.
Rich: Can you give me some examples of sites are using this?
Justin: Certainly. We’ve seen a lot of update in GeoServer in the last two years. A lot of it we see in the government sector, from federal all the way down to municipal. For instance, the FCC uses it in something called their Broadband Map, which is essentially a map of high speed Internet connectivity across the United States. You can go to the map and see things like high-speed Internet density at a country scale. You can also go down to the state and county scales as well. And that is all using GeoServer on the back-end.
The city of Portland uses GeoServer in their transportation authority call TriMet. If you go to the TriMet site – TriMet.org, you’ll see a map of the Portland transportation network, with all the routes and stops, and that stuff on it. And it also comes with trip planner, where you put in a source and destination where you want to go, and the route is calculated and displayed on a map. That all comes with GeoServer on the back end.
A final example is, New York City uses it in something called their SCOUT program. SCOUT stands for street conditions observation unit. Essentially how it works is, inspectors will go out in New York, and drive the streets, and they’ll report on conditions and events that they see, and those reports are fed back into their system, and displayed on a map, served by GeoServer in real time. That map is used by other agencies to allocate and dispatch resources accordingly.
Rich: The route finding stuff … is that included in to GeoServer as well?
Justin: The way Portland uses it is that they have their own route trip software that they use. So they do the route calculation and then push the result into GeoServer. However I should mention that it’s using something called Open Trip Planner, which is another Open Source project, and that’s an Open Source based trip planning multi-modal project.
Rich: I see that you have a fairly sizeable developer pool. What’s the process for somebody becoming a full developer on a project like this?
Justin: Good question. We don’t just hand commit access out, obviously, as most Open Source projects do. It’s all based on trust for us. What we encourage developers who interested in contributing, is to submit as many patches as they can. And we have formal review process for patches. Patches are commented on. We get the patch submitter to clean things up. Or we just apply the patch if it’s good enough. And once a developer has submitted enough patches, gaining the trust of the core developer community – we don’t have a specific number – they’re granted commit access.
We also have a module system in GeoServer. Someone might want to contribute just a module, and then they become the maintainer of that specific module. That gives them commit access for that specific module, but not necessarily to some of the other core modules.
Rich: Do you have a formal vote, or is it just consensus on the mailing list?
Justin: For things like patches, it’s pretty informal in terms of voting. We require that at least two core committers review a patch. They give their two plus-ones, and then the patch can be submitted. We also have a formal improvement proposal process, which we call GeoServer Improvement Proposal, and that’s more formal, and it’s really designed for larger changes. Things like architectural changes, breaking backwards compatibility, stuff like that. And that’s a formal process. We require the whole project steering committee to vote on that, and there has to be more positive votes than negative.
Certainly it didn’t start off like that. In the early years – back in the early two-thousands – is was pretty informal, and it was one or two developers doing things pretty ad-hoc. As the development community grew, and people were doing more and more contributions, it really became more critical. And now it’s a framework we rely upon to move things on the project smoothly.
Rich: I noticed that there’s also commercial support available for GeoServer. Can you tell me about that.
Justin: I work for a company called OpenGeo, who essentially does that. We offer offer products that bundle GeoServer, and we provide support and training, customization for GeoServer. So it’s a pretty typical model of company monetizing open source – Red Hat or JBoss – having this Open Source core that’s based on GeoServer and other Open Source mapping projects, and then offering commercial support on top of that.
And there’s other organizations that do as well – there’s a company in Italy called GeoSolutions that also offers the same level of commercial support as well.
Rich: Where’s this project going in the future?
Justin: The current stable version of GeoServer is 2.1, and the 2.2 release is coming probably within the next six months. A few pretty major themes have been focused on for 2.2: One is the cloud and clustering – working on features that make GeoServer scale better and making it easier to deploy GeoServer in a clustered environment.
As we see GeoServer adopted by more agencies – especially government agencies at the Federal level, obviously security becomes a major concern. 2.2 comes with a complete revamp of the GeoServer security system. It allows for more flexibility for hooking up to external security system that might be in place, like LDAP servers and things like that. But also things like better password encryption.
Dealing with geospatial data means … there’s a wide variety of formats of geospatial data, so we try to support as many of them as we can. 2.2 will also come with improvements to existing formats, and also support for new formats as well.
And then the final one might be … this is pretty experimental at this stage … We’re seeing more asking for true 3-D. Typically maps that you and I are used to looking are all two-dimensional. But there are people with 3-D data out there, and they do want to visualize it on a map, so providing 3-D capabilities as well.
Rich: I’m particularly interested in the Open Street Map project. Is there any overlap whatsoever between what you’re doing and what they’re doing?
Justin: Not really. The Open Street Maps initiative is really on the data side of things, and GeoServer lives on the tool side of things. Open Street Map is this rich, really good crowdsourced data set, and then GeoServer would load Open Street Map data, and push it onto the web.
Rich: So, I could use the Open street Map data within GeoServer?
If I were interested in getting involved in your project … I may have some Java experience or I may not. Tell me how I could plug into what you’re doing.
Justin: There are certainly numerous levels that people can get involved. The easiest one is probably just filing bugs in the issue tracker. Whenever users report issues or problems that they’re having in the forum, we encourage them to file those as bug reports. And if they do have some programming experience we certainly encourage them to submit a patch along with that bug report.
For those that might not have coding skills we also accept documentation patches. So if you’re a user who is familiar with a certain feature, and that feature might not be documented all that well, we certainly encourage you to submit a documentation patch, and help us with continually improving the documentation.
I’ll also mention translations. GeoServer comes with a web interface for doing administration. That interface needs to be internationalized into different languages. I think we support four or five different languages now, and we’re always looking for new people to do translations.
Rich: Thanks so much for speaking with me.
Justin: Thanks a lot for having me, Rich.