There was some news over the weekend that probably went under the radar of most of you but I think its pretty important to know about.
Microsoft released an experimental version of a hosted data service built upon their data service technology, Astoria. Basically this service provides a very easy way of hosting your data in the cloud. That data is then accessible via a URI over HTTP and can be returned to the data in a number of formats including XML (that's the default), JSON or RDF.
That might be alot of techno mumbo-jumbo to some of you so it'd be better to see it working. All you need is a web browser. I have set up a demo data service called 'Quote me happy'. The username and password (which you will be prompted for) are:
This demo service stores a list of people and a list of quotes that those people have made. Pretty noddy stuff but good for a demo.
Here's how you list all the people in the service:
If you want to see a list of quotes for a particular person then here's some I created earlier:
If you want to view a particular quote:
All people and all of their quotes:
List all quotes in descending order
Return the top 5
OK, you probably get the idea by now. I like to think of it as "Writing SQL statements in a URI". That's probbably not a great analogy because you can do alot of things with SQL that you cannot (yet) do in Astoria, but I think its a useful elevator statement. What is important to realise is that in setting up the 'Quote me happy' service I haven't written a single line of code. Yes, it was fairly technical, but still pretty much clicking through a wizard.
Ask yourself how much time is spent on a project setting up databases, installing database software, doing DBA tasks etc... time that could be better spent doing UI development... and you start to see where this could become really useful.
Any thoughts? Do hosted data services have a future? I asked the same question internally at Conchango and there were concerns about security (will an enterprise want their data hosted in the cloud where they are not in control of it) and the lack of manipulation predicates such as JOIN or UNION. Me? I think its an exciting concept but my concerns are around having access to the physicalised data model so that I can tune it (e.g. If I have large data volumes I will want to build covering indexes).
What do you think?
If you want to have a go at building your own service then go and read the announcement about hosted data services here. Other people have been talking about this announcement, most noticably Joshua Allen and Steve Clayton. Steve though is a little off beam when he says "Windows Live Data Centers are starting their engines". As Pablo says here, the hosted data service is nothing more than an experiment at this stage. Don't assume that this will one day appear as a proper product in its current incarnation.
If you want to insert data yourself into 'Quote me happy' then you can do so, and its pretty easy. I'd appreciate it if you could as well cos I'd like to see how it performs with a lot of data in it. The Astoria team have provided a client tool here: http://astoria.sandbox.live.com/Tools/raw.htm
that enables you to select (GET), insert (POST), update (PUT) and delete (DELETE) data from the service. [Note that the tool is pretty flaky, I've tried it on quite a few machines and on a lot of them it doesn't work. If it doesn't then any tool that can send HTTP POST requests will do the job.]
To insert data, set the following (change the values you're inserting though obviously) and click 'GO'
HTTP Verb: POST
<PersonName>George W Bush</PersonName>
To insert a quote:
HTTP verb: POST
<QuoteText>Duck. Its ***!</QuoteText>
<PersonID href="Person[PersonName eq 'George W Bush']" />
To delete a person
HTTP verb: DELETE