Experimenting with Spatial Data in the Cloud: First Impressions of Microsoft’s Azure
One of the things I most enjoy about what I do is that I get to play with new technology. With the FME 2011 release coming out soon and its new support for Microsoft’s various Azure data storage services – namely Windows Azure, OGDI (based on Windows Azure), and SQL Azure – I set out to answer a few questions about Microsoft’s latest advances and how they impact the geospatial realm.
My first question was a basic one, what is Azure? I knew it was related to cloud-based storage, but how did all the various Azure-named services relate to each other? My first step of course was to look online through documentation and also read the Windows Azure blog.
The first thing that I discovered was that SQL Azure and Windows Azure are not related to each other, other than that they are both cloud storage services from Microsoft. (One definition of Azure, by the way, is “the clear, cloudless sky!” Hmmm.) SQL Azure in fact is SQL Server in the cloud complete with spatial capabilities! This led me to start also reading the SQL Azure blog.
The second thing that I discovered was that the Windows Azure table storage (which is not spatial) is schema-less, or more accurately consists of Entity-Attribute-Value (EAV) tables.
OGDI essentially leverages Windows Azure and defines a standard way for geometry to be stored in its Azure tables. To test this theory I wrote to the same Windows Azure table using both OGDI and non-OGDI techniques with no difficulty at all. I was also then able to read the table back using both the Windows Azure OGDI Reader and the Windows Azure Reader. Using the Windows Azure OGDI Reader I was returned geometry which I could then work with or visualize. Using the non-OGDI reader I see the attribute name kmlsnippet which contains the geometry.
What is this? Microsoft adopting KML to represent geometry within OGDI! I like it.
Cloud Storage for Sharing and SQL Azure
For no reason other than I had more early success in our beta cycle with SQL Azure than Windows Azure/OGDI, I have spent more time playing (I mean working!) with SQL Azure. In fact for the past few months I have not used a local install of SQL Server at all. I have done all my SQL Server demos, testing, and scenario building using SQL Azure instead.
In the past I have talked about the “Cloud” but only in the context of a new deployment model for applications within organizations. Leveraging the “Cloud” to deploy new solutions is a complicated step for organizations. Using the cloud for storage of data is a less complicated step. Using cloud storage for data sharing or communication is a much easier step and has my mind racing with possibilities.
Having used SQL Azure, I can see the value of this easier step as a way to share data while providing the data’s consumers with the ability to leverage the full power of a database when working with the data. On our recent roadshow I showed this when I created a scenario that used SQL Azure and wrote out notifications of interesting events. With SQL Azure anyone from anywhere can access these notifications. I was even able to control the locations that have access to my database through SQL Azure firewall technology, giving me security beyond standard userid and password.
I am continuing to experiment with these new cloud storage environments and would love to hear from anyone who is also looking into, or using these exciting new technologies. What new applications or solutions do you see that can leverage these technologies?