11.09.07

GeoServer community happenings

Posted in Developer notes at 12:06 pm by Chris Holmes

One thing we’ve wanted to do with this blog is use it as a forum to allow people to follow what’s going on in the world of GeoServer without having to dive in to hundreds of messages per month on the lists. I’ve been blogging long enough to know that I should never make promises about how often posts will come, but I will say that more of these will come in the future.

The most exciting things to me are a few new contributions that are becoming community modules, with their authors joining the community. The first one to bubble up has been adding support for GeoServer to create an html image map, there were several discussions on the lists, with a couple different approaches developed simultaneously. The result is that Mauro Bartolomeoli is in the process of putting his code in to a community module, there is a wiki page describing it, and the code is currently attached to the jira issue tracking it. We hope to get the code in svn and get a plugin release relatively soon. This feature enables users to make a map with tooltips and pop-ups and the like, having it directly composed by GeoServer. Since it is html that is returned this can scale a lot better than returning features and having pure javascript display them.

The other contribution in the works is some great stuff by the Ominiverde team, focusing on styling and a RESTful service for SLD. No wiki page or code yet, but they sent an email to the list describing the work, with a link to a test live service. This should be the basis of a nice thematic mapping gui based on openlayers. The cool thing is it will leverage code from uDig, to enable all the nice work they’ve done there, but in a web environment.

The other thing I’ll mention here, that I think hasn’t spread very widely, is that the latest version of GeoNetwork includes an embedded GeoServer. This is being used as a base map on top of which other layers can be added. The integration is still pretty minimal, GeoServer is basically just providing a nicer base map. But there is some work coming soon to do a tighter integration, so that users will be able to upload a shapefile or geotiff through GeoNetwork and have it automatically available through GeoServer as WMS and WFS or WCS, picking up all the service metadata properly. Andrea Aime is currently in Rome, discussing this with developers and users at the GeoNetwork conference this week, where he also gave a workshop on GeoServer.

There’s much more happening, on a variety of fronts, but we’ll save it for another post.

07.09.07

GeoJSON output for GeoServer

Posted in Announcements, Developer notes at 4:33 pm by Chris Holmes

I’ve just uploaded a new GeoJSON plug-in for GeoServer, enabling JSON output for any WFS request.  The plug-in is definitely compatible with all versions of GeoServer 1.5.x, and will likely work with 1.4.x as well.  This was a breeze to write, which is a testament to the nice design of GeoServer and to the strength of the Java open source world.  I made use of json-lib, and extended the JSONBuilder to handle geometries.  Then hooked that up as an output format plugin for WFS, and we can now plug it in to existing GeoServer installations.  Please give us feedback on how it’s working, and if we get a positive response we’ll likely include it in the default release.

The plug-in can be downloaded from sourceforge, and there’s a bit of a write-up in the GeoServer documentation.  For more information on GeoJSON, see http://geojson.org.  The spec is not yet finalized as 1.0, but is a first release candidate.  So hopefully it will hold up, but if not we’ll definitely stay up to date with the latest versions.

06.20.07

GeoRSS Coming Soon!

Posted in Announcements, Developer notes at 3:33 pm by Justin Deoliveira

The GeoServer team has been hard at work fixing bugs for the upcoming 1.5.2 release. However its not all bug fixes. One very exciting new feature is the addition of GeoRSS as an output format.

The addition of GeoRSS makes the process of creating your own map mashup with GeoServer as simple as ever. Simply point Google Maps, Yahoo! Maps, or Microsoft Virtual Earth at a GeoServer GeoRSS overlay and observe as your data is visualized.

Here is a sample screen shot. More screen shots and information are available here.

Yahoo! Maps Mashup with GeoServer GeoRSS Overlay

06.04.07

Welcome SoC Students

Posted in Developer notes at 2:31 pm by Justin Deoliveira

As many may know GeoServer is one of the many open source projects involved in this years Google Summer of Code initiative. We are very pleased to announce that two GeoServer based projects were accepted and would like to congratulate those students who submitted proposals on a job well done.

Christopher Whitney will be working on a Java port of the popular TileCache library written in Python. This is an exciting project for GeoServer as the topic of tile caching has become a very hot one these days. A port of TileCache to Java will allow for tight integration of a tile cache directly into GeoServer so tile caching can be acheived out of the box without the need to set up an external tiling server.

Anthony Manfredi will be creating a style editor for GeoServer which will allow users to directly edit SLD documents from the GeoServer web interface. A styling component directly integrated into the web ui is something everyone has wanted for quite some time and will a long way in terms of usability.

So a warm welcome to the community for both Christopher and Anthony, we look forward to having you with us this summer!

05.09.07

GeoServer and DB2 Express-C plus Spatial Extender

Posted in Developer notes at 2:51 pm by Chris Holmes

We recently learned about IBM’s DB2 Express-C database, a free version of DB2 that comes with less restrictions than the free Oracle XE (which GeoServer also supports through Oracle Locator).  Our main curiosity is if it will work with GeoServer.  So we got in touch with David Adler, our community member from IBM, to ask if it will work out of the box.  The answer is that it’s not quite ‘out of the box’, but that one only needs to download and install the spatial extender, which is also a free download.  David additionally assures us that the information on this developerworks article is wrong, and that spatial extender is available with the Express-C edition.  The only restrictions on it are related to the capacity of the machine you’re running it on, only 2 dual core chips and up to 4 gigabytes of ram.  But there are no restrictions on the size of the database.  If you have some good experience with Express-C and GeoServer please let us know, in the comments or an email.

04.30.07

256 color images

Posted in Developer notes at 10:17 am by Andrea Aime

Geoserver WMS has been know so far for the beautiful looking maps it’s able to generate. This is the result of true color rendering, antialiasing, and SLD expressiveness.
Yet, there is a price to pay for such an output: size. Image files generated by the current WMS are big, and this shows up quite evidently when serving maps over slow links. When images are mostly satellite imagery, jpeg can be used with good results, but the same does not apply to vector image, where compression introduces visible artifacts.

To cope with such environments, we decided to go for a different compromise, allowing the user to choose for speed and size, while giving up some of the beauty.
The current 1.5.x branch, setting the stage for the 1.5.1 release, contains a new WMS vendor parameter, “palette”, that allows the user to choose a 256 color palette to be used during rendering and image generation.

As a result, image generation is faster, and files are up to 4 times smaller. This is especially compelling for vector layers where most of the space is filled with uniform color.
By default we ship with the internet safe palette, but you can provide your own, by example: just drop a 256 colors GIF or PNG in the GEOSERVER_DATA_DIR/palettes directory, and refer it from the GetMap request, asking for a PNG or GIF output.

For further details, see the paletted images research page and the WMS vendor parameters page. If you’re eager to test it, grab a recent Geoserver 1.5.x nightly here, and let us know if you enjoyed it: http://geo.openplans.org/nightly/1.5.x/

04.24.07

Roadmap scorecard

Posted in Developer notes at 6:21 pm by Chris Holmes

So I’m about to update the GeoServer Roadmap, since the short term projects currently listed should be done. And I thought before doing that I’d see how we did against the previous goals. Of course we don’t make any promises about delivery of these, unless of course someone funds a core developer to meet a hard deadline. But it’s worthwhile to see how we measured up, to get a progress report on where everything is at.

GeoServer 1.5.x

1.5.0 Released! Woo hoo! This took a good bit longer than expected, but I think everyone is quite satisfied. It’s our most stable and scalable release yet, with lots of good bug fixes and improvements for users, in addition to the incredible new raster support. We’re planning for more 1.5.x releases, back porting the fixes and smaller improvements from 1.6.x, including using openlayers for demos and some very nice KML improvements, and a contributed Chinese translation of the web admin.

Further Tiling Infrastructure

So unfortunately our research on this didn’t yield the results we were hoping for, as we wanted a rendering option that worked better with tiling. But it turns out that doing meta-tiles (rendering an image much bigger than the tiles then splitting them up). There is great news on this front, though, which is that Google’s Summer of Code has funded Chris Whitney to make a JTileCache, a pure java port of TileCache, backed in his initial implementation by JCS, which will let us make distributed caches very easily. Since it’s java we’ll be able to ship with GeoServer, and it will function as a stand-alone.

Speed Improvements to WMS Renderer

Most of the speed improvements of the past few months have actually been made on the WFS side of the fence. Chris Tweedie has some information on his blog, the main work done is not so much on speed improvements, but on setting up a framework for stress tests so we can measure things much more easily. But Andrea also found some great improvements that doubled the WFS output in some cases.

GeoCollaborator (Geowiki) experimental implementation

The server side implementation is close to done, we’ve got a working interface, which we encourage to try out and write clients against. We’ve got it working against existing WFS-T implementations, but we’re working to collaborate on a ‘version-aware’ client. The one remaining piece we need to do on the server side is a bit orthogonal, but necessary, and that’s a security framework. Andrea is gathering requirements and evaluating right now, if you have any feedback throw it on the wiki. Our needs are minor at the moment, but we’d like to pick something that can expand for future uses.

LGPL for the core

I’m still working on this. We’ve decided to just push on getting contributor agreements first that will give us the flexibility to re-license by having all the legal pieces in place, and then we’ll figure out LGPL for the core at a separate time. But I hope to have progress on this relatively soon, so that potential users can license GeoServer under non-GPL licenses.

WFS 1.1 / architecture improvements

Justin finished this up. It is on trunk and will be one of the main pieces of 1.6.0. It’s currently available in an alpha release, and hopefully a beta release pretty soon. Other developers have had good feedback on the new dispatching architecture.

New Geotools Feature Model

Gabriel has made some great progress on this. Hopefully he’ll give us all a full update soon. We also got some great news on this front, as TOPP has been awarded a CAP grant to work on uDig, making it able to accept WFS 1.1 with US Framework Schemas, which will entail getting on to trunk the GeoTools feature model that GeoServer fully depends upon.

So overall I feel we did pretty well.  In the next week I’ll update the roadmap and talk a bit more about the exciting stuff coming down the pipeline.  And hopefully we’ll get the developers talking more about what they’ve been working on, since there’s even more than what I’ve managed to mention here.

03.14.07

The 37 gigabyte GML file

Posted in Developer notes at 11:00 am by Chris Holmes

As GeoServer matures one of the main focuses becomes the ability to scale - dealing with both large amounts of data and large amounts of users. I got a bit of time to play with GeoServer a week or so ago, and wanted to test out a bit of the large data side of things. On our geoserver demo site, we’ve got about 19 gigabytes of data that we’re serving up. It’s all available through the WMS with OpenLayers on the front end, but the data is never exposed all at once. One of GeoServer’s strengths is the WFS, which provides access to the raw vector data, so I wanted to try to download the whole dataset.

GeoServer has some great fundamental design, as its built in such a way that data is never really held in memory, it streams from the database in to GeoTools java objects and then out to the appropriate output format. So in theory we should be able to stream GML from databases of any size. So that’s what I did, and there were absolutely no memory errors or other problems. Due to the verbose nature of GML the file GeoServer produced was about 37 gigabytes - containing road, landmark, and water data for the whole US, and country boundaries and place names for the world. The data was came down at 4.97 MB/s, which I don’t think is too bad for transforming it to GML on the fly. One interesting thing I noticed that with larger datasets there’s a noticeable pause before the data starts returning. With small datasets the streaming nature of GeoServer tends to produce results right away. So we’ll have to do some investigation to see what’s taking that time - hopefully it’s something we have control over and not buried in PostGIS or some such. I do believe that GeoServer can handle databases of any size, and would love to hear reports from people out there working with even bigger sets of data.

In the next couple weeks we’re also going to have Justin set up a better testing suite for scalability, using JMeter. A number of people have done testing against GeoServer with it before, but in a more ad hoc way. This will build the tests in to the source distribution, so that we are sure it gets run with every release, so we don’t have any regressions. There have been many speed improvements of late, and many more to come, so we want to be sure that other changes in the code don’t accidentally affect things. One more tidbit of scalability news, Gabriel reported that he attended a meeting where someone reported some GeoServer benchmarks, successfully supporting 1000 requests.

12.21.06

GeoServer Roadmap updated

Posted in Developer notes at 6:27 pm by Chris Holmes

So this may be about as close as I’m going to get to ‘Developers notes‘ for awhile (though I may let myself work on some GeoJSON or GeoRSS output over the holidays), but wanted to let everyone know that I updated the GeoServer Roadmap in an attempt to capture the latest directions of the community. If I’ve missed anything please don’t hesitate to update it (all our docs are wikis). The roadmap had fallen out of date - the ’short term’ projects were set to complete in september - so I’ll try to be more vigilant about updating it more regularly.

But I must say it was quite satisfying doing the update, as the GeoServer community had actually managed to hit most of the things we said we would. The demo site is up, GeoCollaborator stuff has moved from discussions to the beginning of an implementation. 1.4.0 is out, and the WCS branch not only got up a release, but is a part of the GeoServer main line as 1.5.0-beta1. We’ve also had some work on tiling/caching with a tutorial on running OSCache. The only thing we didn’t get to was an improved SLD editor, but I’m hoping we can do it after our web gui overhaul - which made it’s way up to ‘medium term’, as we’ve been feeling the pain too long. If people have suggestions of a good web framework let us know, the ones we’re likely going to look at are Wicket, WebWork2, and Google Web Toolkit.

Elsewhere on the horizon we’ve got WFS 1.1 (which includes GML 3.1.1 simple features) from OWS-4 coming home, and Justin’s made some nice improvements on that branch. And 3d and 4d support in WCS will be in the works as the 2D version works towards the stability of 1.5.0. Also Social Change Online and Axios are likely going to be doing some more work on bring the new Feature Model home, which should be a huge step forward. On the non-technical side of things we’re also going to be working on changing the license of the ‘core’ of GeoServer (configuration of data and access to GeoTools) to LGPL, which should enable others to build even more interesting services on top.

So stay tuned, there’s lots of fun coming from the edges to the mainstream of GeoServer, and there are some other fun things that may be in the works. It’s going to be an exciting year for sure.

Happy Holidays from all of us working on GeoServer!

11.27.06

Hello GeoServer World

Posted in Tips and Tricks, Announcements, Developer notes, Tutorials at 11:42 am by Brent Owens

Hello GeoServer fans and developers, this is our first of many GeoServer blog posts. Here we will tell you about the latest news and updates, along with open discussions on where GeoServer is headed. You will also find posts about the latest tutorials and documentation, as well as our new screencasts. For the technically savvy reader, this blog will also contain posts from the developers discussing everything from software design, frameworks, services, and of course, GIS.

This blog is ideal for those who don’t want to sift through the email list to see what is going on in GeoServer-land. And to make your life easier there are four categories of blog posts that you can filter:

- Announcements: Releases, updates, patches, and major decisions will be here.

- Tutorials: New tutorials and FAQ entries will be announced on this thread.

- Tips and Tricks: Tips from the developers and user community on how to tweak GeoServer.

- Developer Notes: Mostly technical notes from the developer community. Topics such as design decisions, frameworks, OGC standards, and various technical discussions.

You can read the About page to find out more information on subscribing to particular message feeds..

Suggestions for blog entries are definitely welcome. And if you would like to be an author to this blog, we invite you to contact the administrator to get registered.