Building on what we already have

by Simon St. Laurent

During a conversation about Web Services today, it struck me that a lot of what people find really exciting is stuff they've already had, sometimes for a decade. The fun part is that they often don't know it.

I've been in the XML community long enough that the cycling of old material seeming new is starting to become obvious. Even a few years ago, Web Services felt a lot like a recycling of the early claims about what XML would do to liberate data, which themselves reiterated the old claims of SGML. I came in as the SGML/XML transition was in full swing, so I no doubt made a lot of those same claims.

Now, as I'm developing a small system for collecting and distributing geographic data, I'm having a lot of fun playing with new technologies:

  • The .NET Compact Framework - yes, I've been writing some C#, the first real, non-demo C# I've ever done.

  • MapServer and PostGIS - I'm really only getting started with these, but I need a good place to store my data and a way to share it, and since I already spent the budget on the data collection side...

  • Bluetooth and GPS - My Earthmate BlueLogger gives me more data than I presently know how to manage, something I'm working on.

There are a few key pieces here that let me connect all of this up, and most of those pieces are old. I'm using Apache as the web server, both to act as the interface between my incoming data and PostGIS and as a host so Web Server can present that data attractively. NMEA 0183 lets me interpret the stream of data from my GPS without getting locked in to a particular vendor.

At the heart of the system, however, are two rapidly aging but critical components: HTTP and XML. Both of these reached the form that I'm using (1.1, XML with namespaces) in 1999. Over the wire, it could be 1999. Even beyond that, I'm only using a little RELAX NG validation - no need for any of the various official "Web Services". These two combined make it easy to get data from Microsoft PocketPC to a open source Linux-based database and web server system and from there to whatever other system you want.

The next time you're contemplating major technological improvements to your existing architecture, look around for spare parts you already know. They don't need to be new. Build the core of the system on those. That might spare you the cash for some extra spiffy parts in the places people see.

Can mixing old and new keep everything new from being old again?


2004-12-16 06:14:54
Common XML
Simon omits mention his own contribution to the "building on what we already have" idea a few years ago.

"Common XML begins with a frequently used and thoroughly reliable subset of the
features provided by the XML 1.0 and Namespaces in XML W3C Recommendations.
Common XML defines a very small core, but allows developers to move beyond that
core if needed. Additional features from XML 1.0 and Namespaces are still
available. This specification includes descriptions of the impact of features
beyond the core on interoperability."