Cloud computing, however you chose to define it, is fulfilling the promise of hosting highly scalable applications on a pay-as-you-go model. Some of these applications are based on or include maps: they display and analyze spatial data in interesting ways.
Developers of these applications have had to be creative – the storage services provided by cloud vendors achieve their scalability in part by staying simple – and so additional techniques are required to store and query spatial data effectively. For example, this post explores the use of Geohashes to query spatial data in Google’s App Engine. Another alternative has been to simply host a spatial database like Oracle Spatial on a virtual machine (or machines) in the cloud.
This month brings the promise of a new option for developers of these applications: Microsoft announced near-future support for spatial data in SQL Azure, a cloud database service based on SQL Server. I’m excited about spatial in SQL Azure because all of the great query and analysis capabilities of SQL Server spatial work the same, which also means that FME can read and write spatial data in SQL Azure today. (One minor caveat: You need to precreate tables for FME to write to – FME doesn’t create the now prerequisite indices – but this is good motivation for us to add that capability soon.) Ed Katibah has a great post on the subject, and suggests that SQL Azure may become “the first pure cloud database to offer spatial support.”
One area I find interesting about Microsoft’s contribution to spatial computing is their spatial types for .NET (scroll down to “Microsoft SQL Server System CLR Types”). These .NET classes form the basis for flat-earth and round-earth spatial data in SQL Server and provide a serialization for spatial data along with powerful analytical capabilities. These types are usable in SQL Server, in your app, and now, in the cloud.
Location is becoming an important part of the super-scalable applications running in the cloud, and it’s fascinating to watch the debate and competition over the best way to make that happen.