Microsoft's Cloud-Based SQL Services Redefined
Microsoft is evolving its strategy for relational data services in the cloud
As the company's vision for cloud-based computing is shared with over 6,000 developers this week at its Professional Developers Conference, Microsoft is announcing that SQL Server Data Services is now the storage component of a broader suite of data-related services called "SQL Services." SQL Server Data Services is renamed SQL Data Services (SDS).
SQL Services is part of the Azure Services Platform for building cloud applications intended to run on Windows Azure, Microsoft's new cloud-based operating system, unveiled on Monday. The Azure Services Platform consists of Live Services, .NET Services, SQL Services, SharePoint Services, and Dynamic CRM Services. PDC attendees can register for the Azure Services Platform and request .NET Services, Live Services, and SDS provisioning (SDS is still in private beta).
Microsoft's data storage in the cloud is an evolving technology that faces a nascent market despite some early success by Amazon's DB2.
"We've been focused on the back-end infrastructure for several years," said Dave Campbell, Microsoft Technical Fellow and SDS team leader. Microsoft is using its back-end infrastructure for its own internal services, some of which will roll out early next year, according to Campbell.
"The interesting thing about the front-end [is that] we are learning so much," he said. "What are the use cases? What are the optimal design points? So we are still trying to sort that out.
"Now, once we make the call there," he continued, "we will be able to settle that down quite quickly because most of investment and the long tail of settling things out has been in the back end."
The SDS team is looking at issues such as balance in the data model, approachability versus flexibility, ways to separate physical and logical data administration, the power required to run it in an automated fashion without runaway queries, and so on.
"We are looking at, 'Where do we draw the line?' and that line will shift over time," Campbell said.
SQL Services Labs Portal
A closer look at some of the projects that Microsoft has underway is available at the SQL Services Labs portal, which went live on Monday. Microsoft is working on several incubation projects, many of which are likely to become part of SQL Services, the Microsoft Synchronization Framework or Live Mesh in the future. These projects include work on a data access interface for ADO.NET Data Services (JSON and AtomPub) as well as offline data synchronization using the Microsoft Sync Framework. Other projects focus on reporting against SQL Data Services and Data Mining.
SQL Data Services started as an incubation project about two years ago with participation from both Microsoft Research and the SQL Server team. SDS today is developed on an eight-week sprint, according to Campbell.
"We found that we were able to really innovate quickly because we can put something out there and get feedback immediately ... and eight weeks later have something that addresses it," Campbell said. "Where it was two, three, or four years with the shrink-wrapped product, it is a matter of weeks here."
The SDS data model, which is based on flexible entities, is inherently multi-tenant, Campbell explained. It supports REST and SOAP wire formats. An authority (DMS domain name) can have a number of containers and entities within those containers. Each entity has an identity (Id), a distinguished attribute called a Kind and a number of properties associated with it. "You can look at entities within that container as if they were logical tables discriminating on the Kind," Campbell said.
"At PDC, as we have evolved the service, we have announced support for relational joins across Kinds and containers," he said. "The beauty of this is it's very, very approachable and very, very friendly for people who are designing, sort of, outside-in and really want schema flexibility in the system."
SQL Data Services is described by Microsoft as an open platform. To that end, the SDS team announced support for a Ruby toolkit, released sample source code for the SDS SDK including a REST Library, ResourceProvider and ActiveProvider. The source code is available for download at Github and as gems on RubyForge. Support for PHP is planned, according to Campbell.
The SDS public beta is likely to become available in a matter of weeks or months, according to Campbell, with a general availability target in 2009.
-- Kathleen Richards