Around a year ago in the Mix 2007 conference we announced Project Astoria, an overall initiative to understand how data is used on the web and what frameworks, tools and services could we create to enable new and better applications in this space. Several things resulted from that effort already.
One of these results is a unified pattern for exposing and manipulating data across various data-centric services using the Atom format and the AtomPub protocol, plus a set of common conventions for constructing URLs to point to resources. This pattern is shared by some Windows Live services as announced here and articulated in more detail here, and also by any services created with the ADO.NET Data Services Framework.
The ADO.NET Data Services Framework is another one of the results of this project. It’s a set of libraries and tools for the .NET Framework to create and consume data services over various data sources, from relational databases to XML content to arbitrary web services. These data services expose the same AtomPub-based interface and same URL conventions, so clients and tools equally apply to online services and to your own services, on the web or on-premises.
The other piece we discussed at Mix 2007 was an experimental online service. As we explained when we first announced it, this service wasn’t a real “online service” in the sense that it wasn’t backed by an internet-scale infrastructure and such. The goal of the service was to learn about data interfaces for online services.
Now, at Mix 2008, we announced our plans to offer a real internet-scale data service called SQL Server Data Services (SSDS). General information about SSDS can be found here, and you can also watch the talk that Nigel Ellis gave at Mix about it. SSDS is a real service that is being made available in a closed beta release. We are now taking registrations for participation in the SSDS beta program. Please go here to sign up. Customers are being accepted into the beta program on a rolling basis.
As part of our unified Data Services vision, we will provide a solution that enables seamless integration between on-promise deployments (software) and cloud based deployments (services). We’re working on aligning aspects of SSDS and Astoria and this alignment will come over a series of updates to both Astoria and SSDS. For example, we will likely add AtomPub and JSON support to SSDS to match the results encoding of Astoria and are already working on extensions to EDM to incorporate the open content model of SSDS. We’ll be working to extend Astoria as needed to ensure it provides a great development experience over the SSDS service. It’s also worth noting how the Microsoft Sync Framework can be used to tie multiple deployments together – Nigel covers this in his talk. Stay tuned for more details.
Given that we have SSDS out there now, in the next week or so we will take down the experimental service we’ve hosted at http://astoria.sandbox.live.com for the last year. That service uses an old interface (it’s not even compatible with the current Astoria patterns), and it’s not meant for real use anyway.
Having a service out there with sample data is really handy though, so we’re exploring options to host a few read-only services somewhere for everybody to access for experimentation and demo purposes.
Are we done? Absolutely not. You’ll see more coming from Project Astoria over time. An example of things we’re exploring for the future is synchronization/offline capabilities for services and service clients, as we demo’ed in this Mix session (Astoria-related stuff starts at minute 35 or so, but the whole talk is really interesting).