<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://alexbarnett.net/blog/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Alex Barnett blog : Astoria</title><link>http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx</link><description>Tags: Astoria</description><dc:language>en</dc:language><generator>CommunityServer 2007 (Build: 20416.853)</generator><item><title>Why OData Matters (IMHO)</title><link>http://alexbarnett.net/blog/archive/2010/03/19/why-odata-matters-imho.aspx</link><pubDate>Fri, 19 Mar 2010 15:24:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:44845</guid><dc:creator>alexbarnett</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=44845</wfw:comment><comments>http://alexbarnett.net/blog/archive/2010/03/19/why-odata-matters-imho.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://resource.org/8_principles.html" mce_href="http://resource.org/8_principles.html"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Earlier this week I was in the MIX10 crowd as Douglas Purdy announced the &lt;A href="http://www.odata.org/" mce_href="http://www.odata.org/"&gt;Open Data Protocol&lt;/A&gt; (it was a great presentation - &lt;A href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx" mce_href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx"&gt;summarized here&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;I want to share with you why I think OData could be a very big deal…But before we go there...let's start with the basics...&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.odata.org/images/OData-logo.png" mce_src="http://www.odata.org/images/OData-logo.png"&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is OData? Where Did OData Come From?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;To understand the history of how OData came to be, you need to understand how project "Astoria" came to be...&lt;A href="http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx" mce_href="http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx"&gt;I won't go over that again&lt;/A&gt; as this is already pretty &lt;A href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx"&gt;well documented&lt;/A&gt;. &lt;STRIKE&gt;Astoria&lt;/STRIKE&gt; OData has come a long way since.&lt;/P&gt;
&lt;P&gt;In a nutshell: Today, OData builds on a few conventions, popularized by AtomPub (see &lt;A href="http://www.odata.org/developers/protocols/atom-format" mce_href="http://www.odata.org/developers/protocols/atom-format"&gt;OData AtomPub Format&lt;/A&gt;), to using REST-based data services. These services allow resources, identified using Uniform Resource Identifiers (URIs) and defined in an abstract data model (see &lt;A href="http://www.odata.org/developers/protocols/uri-conventions" mce_href="http://www.odata.org/developers/protocols/uri-conventions"&gt;OData URI Conventions&lt;/A&gt;, to be &lt;B&gt;read&lt;/B&gt; and &lt;B&gt;edited&lt;/B&gt; by web clients using simple HTTP messages (see &lt;A href="http://www.odata.org/developers/protocols/operations" mce_href="http://www.odata.org/developers/protocols/operations"&gt;OData Operations&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;An Open Data Protocol for the Web&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;OData offers a standardized way for &lt;EM&gt;programmable &lt;/EM&gt;data to be made available across the web and in turn allowing "consumers" of that data to rely on a set of conventions to be followed that in turn allows many interesting things to happen if widely adopted...&lt;/P&gt;
&lt;P&gt;...And to this end:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx" mce_href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx"&gt;As announced&lt;/A&gt;, OData has been released by Microsoft under the Open Specification Promise (&lt;A href="http://www.microsoft.com/Interop/osp/default.mspx" mce_href="http://www.microsoft.com/Interop/osp/default.mspx"&gt;OSP&lt;/A&gt;) "to allow anyone to freely interoperate with OData implementations" . Since then, the &lt;A href="http://www.w3.org/QA/2010/03/microsoft_bring_odata_to_a_w3c.html" mce_href="http://www.w3.org/QA/2010/03/microsoft_bring_odata_to_a_w3c.html"&gt;W3C has invited&lt;/A&gt; the OData team to Bring OData to a W3C Incubator (I haven't seen a public response yet but I urge the team to do so.).&lt;/LI&gt;
&lt;LI&gt;OData is not a Microsoft-only thing and it won’t succeed if it is. The originating philosophy was about &lt;A href="http://blogs.msdn.com/astoriateam/archive/2007/07/20/transparency-in-the-design-process.aspx" mce_href="http://blogs.msdn.com/astoriateam/archive/2007/07/20/transparency-in-the-design-process.aspx"&gt;transparency&lt;/A&gt; in the design process, with an Open end-point as the goal - not a .NET lock-in play (“agree on standards and compete on implementation”). This approach has &lt;A href="http://blogs.msdn.com/interoperability/archive/2010/03/16/odata-interoperability-with-net-java-php-iphone-and-more.aspx" mce_href="http://blogs.msdn.com/interoperability/archive/2010/03/16/odata-interoperability-with-net-java-php-iphone-and-more.aspx"&gt;already&lt;/A&gt; yielded an initial set of clients, servers, services, and tools. &lt;EM&gt;Today&lt;/EM&gt;, a number of &lt;A href="http://www.odata.org/developers/odata-sdk" mce_href="http://www.odata.org/developers/odata-sdk"&gt;OData SDKs and libraries&lt;/A&gt; are available for .NET, Java, PHP, iPhone (Objective-C) and more – and there’ll be more coming.&lt;/LI&gt;
&lt;LI&gt;There is a small but growing ecosystem of non-Microsoft "producers" and "consumers" - (where&amp;nbsp; OData "&lt;A href="http://www.odata.org/producers" mce_href="http://www.odata.org/producers"&gt;producers&lt;/A&gt;" include &lt;A href="http://developer.netflix.com/docs/oData_Catalog" mce_href="http://developer.netflix.com/docs/oData_Catalog"&gt;Netflix’s catalog as OData&lt;/A&gt; and the VanGuide (a social map of Vancouver Open Data) and Public data from the city of &lt;A href="http://data.edmonton.ca/Developers.aspx" mce_href="http://data.edmonton.ca/Developers.aspx"&gt;Edmonton as OData&lt;/A&gt;) and OData “&lt;A href="http://www.odata.org/consumers" mce_href="http://www.odata.org/consumers"&gt;consumers&lt;/A&gt;”&amp;nbsp; - standard web browsers, RIA "data explorers" – such as &lt;A href="http://metasapiens.com/sesame/data-browser/preview/" mce_href="http://metasapiens.com/sesame/data-browser/preview/"&gt;Sesame OData Browser&lt;/A&gt;, and the client libraries mentioned above – p.s. somebody build a javascript-only data browser please!) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Where can OData take us?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The clue is in the OData icon (next to the RSS feed icon. Can you see the similarities?&lt;/P&gt;
&lt;P&gt;&lt;IMG alt="odata icon" src="http://farm5.static.flickr.com/4024/4444628827_0d08302f14_o.jpg" width=56 height=57 mce_src="http://farm5.static.flickr.com/4024/4444628827_0d08302f14_o.jpg"&gt; &lt;IMG alt="rss icon" src="http://farm5.static.flickr.com/4063/4444623305_4ef69e3398_o.jpg" width=58 height=58 mce_src="http://farm5.static.flickr.com/4063/4444623305_4ef69e3398_o.jpg"&gt;&lt;/P&gt;
&lt;P&gt;The big idea here is that in the same way we have the "RSS" feed icon, we'll get used to seeing the "OData" icon on commercial and non-commercial websites everywhere (especially for government-related data). So in the same way you know today that the RSS icon means "get an XML feed for this content", the "OData" icon means "get this web data" - you'll know (and your client will know) what to expect in terms of how to read in, and &lt;EM&gt;navigate&lt;/EM&gt; through and &lt;EM&gt;query &lt;/EM&gt;structured web data sets - and in many cases write against them - using a common syntax.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q: Right, But So What?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A1:&lt;/STRONG&gt; Open Government OData. From &lt;A href="http://resource.org/8_principles.html" mce_href="http://resource.org/8_principles.html"&gt;Open Government Data Principles&lt;/A&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;The Internet is the public space of the modern world, and through it governments now have the opportunity to better understand the needs of their citizens and citizens may participate more fully in their government. Information becomes more valuable as it is shared, less valuable as it is hoarded. Open data promotes increased civil discourse, improved public welfare, and a more efficient use of public resources.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;That’s great, but it needs to be practicable…And number 5 of the &lt;A href="http://resource.org/8_principles.html" mce_href="http://resource.org/8_principles.html"&gt;8 Principles of Open Government Data&lt;/A&gt; sensibly states that the data should be (via &lt;A href="http://eaves.ca/2009/09/30/three-law-of-open-government-data/" mce_href="http://eaves.ca/2009/09/30/three-law-of-open-government-data/"&gt;David Eaves&lt;/A&gt;):&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;5. &lt;/EM&gt;&lt;A href="http://wiki.opengovdata.org/index.php/Talk:OpenDataPrinciples/machine_processable" mce_href="http://wiki.opengovdata.org/index.php/Talk:OpenDataPrinciples/machine_processable"&gt;&lt;EM&gt;Machine processable&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Data is reasonably structured to allow automated processing.&lt;/EM&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It'll be down to each government agency (and local government) as to how they decide to implement this principle, but wouldn't it be great if they agreed to a standard (and a powerfully simple, web-oriented one at that)? This is what Jon Udell &lt;A href="http://blog.jonudell.net/2010/01/29/odata-for-collaborative-sense-making/" mce_href="http://blog.jonudell.net/2010/01/29/odata-for-collaborative-sense-making/"&gt;concluded here&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"The open data movement, in government and elsewhere, aims to help people engage with and participate in processes represented by the data. When you publish data in a fully articulated way, you build a framework for engagement, a trellis for participation. This is a huge opportunity, and it’s what most excites me about OData" &lt;/EM&gt;&lt;/P&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;A2:&lt;/STRONG&gt; To ODatarize your data is to RESTify your data. &lt;/P&gt;
&lt;P&gt;As more data-oriented web APIs come online, each team responsible for the design of each web API is confronted by the same kinds of questions, and each team answers these in their own particular way. Increasingly, “RESTful” is a design goal of web APIs. Great…&lt;EM&gt;but what does that mean&lt;/EM&gt;? &lt;EM&gt;How&lt;/EM&gt; do you expose the data, &lt;EM&gt;the relationships&lt;/EM&gt; between the entities inside the model, and what should the querying syntax look like? Unfortunately, there are as many answers to these questions as there are RESTful web APIs. And there needn’t be. &lt;/P&gt;
&lt;P&gt;For to ODatarize your data is to RESTify your data. &lt;EM&gt;Do&lt;/EM&gt; spend the time at the value layer - figure out the way your developers / consumers want to see the data and expose it that way. &lt;EM&gt;Do&lt;/EM&gt; make it easy for devs / consumers to learn / navigate about the data and use it. &lt;EM&gt;Do not&lt;/EM&gt; make them learn about the unique idiosyncrasies you’ve built into your API (or those that leak out of your originating store) :-)&lt;/P&gt;
&lt;P&gt;From a developer’s standpoint, OData is ultimately about&amp;nbsp; productivity. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;For the OData “Production Developer”: Point at your data store – define your entity model and map it to the data model you already have (so your developers consume / program against the data that makes most sense to them – effectively &lt;A href="http://en.wikipedia.org/wiki/Object-relational_mapping" mce_href="http://en.wikipedia.org/wiki/Object-relational_mapping"&gt;ORM&lt;/A&gt;’ing) and expose as an OData service, inheriting: all the REST characteristics; entity relationship self-discovery; and querying goodness.&lt;/LI&gt;
&lt;LI&gt;For the OData “Consuming Developer”: If you know the web API is OData…great! Pick up a client library, get to the API end-point (data.foo.org/blah.svc). Point and Shoot: Traverse the data model, query it (and bookmark as needed – it’s a URI)…play!&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;(see links at the bottom of this post to technical content that provides details on all this)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;A3:&lt;/STRONG&gt; Since the announcement, I’ve seen quite a bit of excitement around the web (&lt;A href="http://www.google.com/search?q=odata&amp;amp;hl=en&amp;amp;safe=off&amp;amp;sa=X&amp;amp;tbo=1&amp;amp;tbs=mbl:1,mbl_sv:0&amp;amp;ei=gYSjS_jNMJLysQPUjZ29BA&amp;amp;oi=tool&amp;amp;resnum=0&amp;amp;ct=tlink&amp;amp;ved=0CBcQpwU" mce_href="http://www.google.com/search?q=odata&amp;amp;hl=en&amp;amp;safe=off&amp;amp;sa=X&amp;amp;tbo=1&amp;amp;tbs=mbl:1,mbl_sv:0&amp;amp;ei=gYSjS_jNMJLysQPUjZ29BA&amp;amp;oi=tool&amp;amp;resnum=0&amp;amp;ct=tlink&amp;amp;ved=0CBcQpwU"&gt;especially Twitter&lt;/A&gt;) by developers who see the potential here…there is plenty of experimentation going on. At Intuit, my team is also experimenting with ODatarizing some of our data services, exploring how it might be applied across a number of our cloud based data services. And when our team’s &lt;A href="http://twitter.com/jcollins21/status/10621450099" mce_href="http://twitter.com/jcollins21/status/10621450099"&gt;architect Tweets&lt;/A&gt; that “Looks like &lt;A href="http://twitter.com/search?q=%23odata" mce_href="http://twitter.com/search?q=%23odata"&gt;#odata&lt;/A&gt; is going to be a good fit for our data services”, I know there’s something interesting going on here…&lt;/P&gt;
&lt;P&gt;So I encourage you to find out more about &lt;A href="http://www.odata.org/" mce_href="http://www.odata.org/"&gt;OData&lt;/A&gt; and get involved. &lt;/P&gt;
&lt;P&gt;&lt;A title=OData.org href="http://odata.org/" mce_href="http://odata.org/"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 src="http://www.odata.org/images/OData-logo.png" mce_src="http://www.odata.org/images/OData-logo.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;More Resources&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.stephenforte.net/PermaLink,guid,36354241-a64d-4413-a68f-79e30b20cb20.aspx" mce_href="http://www.stephenforte.net/PermaLink,guid,36354241-a64d-4413-a68f-79e30b20cb20.aspx"&gt;An easy way to set up an OData feed from your SQL Azure database&lt;/A&gt; - Stephen Forte&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/interoperability/archive/2010/03/16/odata-interoperability-with-net-java-php-iphone-and-more.aspx" mce_href="http://blogs.msdn.com/interoperability/archive/2010/03/16/odata-interoperability-with-net-java-php-iphone-and-more.aspx"&gt;OData interoperability with .NET, Java, PHP, iPhone and more&lt;/A&gt; - MSFT Interop team&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.w3.org/QA/2010/03/microsoft_bring_odata_to_a_w3c.html" mce_href="http://www.w3.org/QA/2010/03/microsoft_bring_odata_to_a_w3c.html"&gt;Microsoft, Bring OData to a W3C Incubator&lt;/A&gt; - W3C blog - &lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/brada/archive/2010/03/16/silverlight-4-ria-services-ready-for-business-exposing-odata-services.aspx" mce_href="http://blogs.msdn.com/brada/archive/2010/03/16/silverlight-4-ria-services-ready-for-business-exposing-odata-services.aspx"&gt;Silverlight 4 + RIA Services - Ready for Business: Exposing OData Services-4-ria-services-ready-for-business-exposing-odata-services.aspx&lt;/A&gt; - Brad Abrams (MSFT)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx" mce_href="http://microsoftontheissues.com/cs/blogs/mscorp/archive/2010/03/16/open-data-for-the-open-web.aspx"&gt;Open Data for the Open Web&lt;/A&gt; - Douglas Purdy (MSFT)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blog.jonudell.net/2010/02/09/producing-and-consuming-odata-feeds-an-end-to-end-example/" mce_href="http://blog.jonudell.net/2010/02/09/producing-and-consuming-odata-feeds-an-end-to-end-example/"&gt;Producing and consuming OData feeds: An end-to-end example&lt;/A&gt; - Jon Udell (MSFT)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blog.jonudell.net/2010/01/29/odata-for-collaborative-sense-making/" mce_href="http://blog.jonudell.net/2010/01/29/odata-for-collaborative-sense-making/"&gt;OData for collaborative sense-making&lt;/A&gt; - Jon Udell&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://eaves.ca/2009/09/30/three-law-of-open-government-data/" mce_href="http://eaves.ca/2009/09/30/three-law-of-open-government-data/"&gt;The three laws of open government data&lt;/A&gt; – David Eaves&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://resource.org/8_principles.html" mce_href="http://resource.org/8_principles.html"&gt;8 Open Government Data Principles&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.hanselminutes.com/default.aspx?ShowID=223" mce_href="http://www.hanselminutes.com/default.aspx?ShowID=223"&gt;Open Data Protocol (OData) with Pablo Castro&lt;/A&gt; - Hanselminutes podcast interview with Pablo Castro (MSFT – Architect for OData)&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://andytson.com/blog/2010/03/odata-a-restful-contender-for-your-api/" mce_href="http://andytson.com/blog/2010/03/odata-a-restful-contender-for-your-api/"&gt;OData, a RESTful contender for your API&lt;/A&gt; - Andy Thompson&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://weblogs.asp.net/fmarguerie/archive/2010/03/17/announcing-sesame-data-browser.aspx" mce_href="http://weblogs.asp.net/fmarguerie/archive/2010/03/17/announcing-sesame-data-browser.aspx"&gt;Announcing Sesame Data Browser&lt;/A&gt; - Fabrice Marguerie&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/brian_swan/archive/2010/03/18/using-the-odata-sdk-for-php.aspx" mce_href="http://blogs.msdn.com/brian_swan/archive/2010/03/18/using-the-odata-sdk-for-php.aspx"&gt;Retrieving Data with the OData SDK for PHP&lt;/A&gt; - Brian Swann&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.odata.org/blog/2010/3/18/got-sql-azure-then-you've-got-odata" mce_href="http://www.odata.org/blog/2010/3/18/got-sql-azure-then-you've-got-odata"&gt;Got SQL Azure? Then you've got OData&lt;/A&gt; - OData blog&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/pablo/archive/2010/01/26/implementing-only-certain-aspects-of-odata.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2010/01/26/implementing-only-certain-aspects-of-odata.aspx"&gt;Implementing only certain aspects of OData-only-certain-aspects-of-odata.aspx&lt;/A&gt; - Pablo Castro&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/pablo/archive/2009/10/19/every-sharepoint-2010-server-is-a-data-services-server.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2009/10/19/every-sharepoint-2010-server-is-a-data-services-server.aspx"&gt;Every SharePoint 2010 server is a Data Services server&lt;/A&gt; - Pablo Castro&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://www.cmswire.com/cms/web-cms/microsoft-creates-new-odataorg-website-for-open-data-protocol-007006.php" mce_href="http://www.cmswire.com/cms/web-cms/microsoft-creates-new-odataorg-website-for-open-data-protocol-007006.php"&gt;Microsoft Creates New OData.org Website for Open Data Protocol&lt;/A&gt; – CMS Wire&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.zdnet.com/microsoft/?p=5582" mce_href="http://blogs.zdnet.com/microsoft/?p=5582"&gt;Microsoft delivers updates on OData, Houston, Dallas&lt;/A&gt; - ZDNet&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx"&gt;Timeline of Project Astoria&lt;/A&gt; - Pablo Castro&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx" mce_href="http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx"&gt;How ADO.NET Data Services came to be (formerly known as Project Astoria)&lt;/A&gt; - Alex Barnett&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx" mce_href="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx"&gt;previous Astoria / OData posts&lt;/A&gt; - Alex Barnett&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=44845" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Intuit/default.aspx">Intuit</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/OData/default.aspx">OData</category><category domain="http://alexbarnett.net/blog/archive/tags/OpenSource/default.aspx">OpenSource</category><category domain="http://alexbarnett.net/blog/archive/tags/platforms/default.aspx">platforms</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/RIA/default.aspx">RIA</category><category domain="http://alexbarnett.net/blog/archive/tags/ROA/default.aspx">ROA</category><category domain="http://alexbarnett.net/blog/archive/tags/RSS/default.aspx">RSS</category><category domain="http://alexbarnett.net/blog/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/semanticweb/default.aspx">semanticweb</category><category domain="http://alexbarnett.net/blog/archive/tags/SOA/default.aspx">SOA</category><category domain="http://alexbarnett.net/blog/archive/tags/WOA/default.aspx">WOA</category><category domain="http://alexbarnett.net/blog/archive/tags/XML/default.aspx">XML</category></item><item><title>How ADO.NET Data Services came to be (formerly known as Project Astoria)</title><link>http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx</link><pubDate>Thu, 21 Aug 2008 02:16:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:42218</guid><dc:creator>alexbarnett</dc:creator><slash:comments>3</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=42218</wfw:comment><comments>http://alexbarnett.net/blog/archive/2008/08/20/how-ado-net-data-services-came-to-be-formerly-known-as-project-astoria.aspx#comments</comments><description>&lt;p&gt;Pablo Castro has &lt;a href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2008/08/20/timeline-of-project-astoria.aspx"&gt;recounted some of his timelined memories&lt;/a&gt; about how "Project Astoria" evolved from a lunch time conversation to bits in &lt;a href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx" mce_href="http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx"&gt;.NET 3.5 SP1 and Visual Studio 2008 SP1&lt;/a&gt; now known as &lt;a href="http://msdn.microsoft.com/en-us/data/bb931106.aspx" mce_href="http://msdn.microsoft.com/en-us/data/bb931106.aspx"&gt;ADO.NET Data Services Framework&lt;/a&gt;). Nice write up.&lt;/p&gt;  &lt;p&gt;Three memories of my own to add to the story: &lt;/p&gt;  &lt;p&gt;1. I was reading up on the whole REST thing in the summer of 2006 - its origins, philosophy and design patterns. I knew there was something interesting going on and some potential dots to join, but I wasn't sure which dots...So I collated and circulated a bunch of research / links to the team, &lt;a href="http://blogs.msdn.com/alexbarn/archive/2006/07/21/674395.aspx" mce_href="http://blogs.msdn.com/alexbarn/archive/2006/07/21/674395.aspx"&gt;then blogged the links&lt;/a&gt; (I liked &lt;a href="http://naeblis.cx/rtomayko/2004/12/12/rest-to-my-wife" mce_href="http://naeblis.cx/rtomayko/2004/12/12/rest-to-my-wife"&gt;How I explained REST to my wife&lt;/a&gt;. More recently see &lt;a href="http://www.25hoursaday.com/weblog/2008/08/17/ExplainingRESTToDamienKatz.aspx" mce_href="http://www.25hoursaday.com/weblog/2008/08/17/ExplainingRESTToDamienKatz.aspx"&gt;Explaining REST to Damien Katz&lt;/a&gt;). I got a few proverbial (and some literal) blank stares as I shared my enthusiasm for REST, asking how we could apply the ideas to the various projects we were working on. It was Pablo, and (as Pablo attests) Britt Johnston (now a PUM for SQL Business) who were able to develop the initial conceptual leaps into something more concrete like &lt;a href="http://www.eweek.com/c/a/Windows/What-Is-Bill-Gates-Thinking/" mce_href="http://www.eweek.com/c/a/Windows/What-Is-Bill-Gates-Thinking/"&gt;a Think Week Paper&lt;/a&gt; and a prototype demo. &lt;/p&gt;  &lt;p&gt;2. When it came to brainstorming the code name, the team agreed on a&amp;nbsp; "cloud" theme. A number of proposals were floated around along with their rationales, including "cumulus" and "cirrus". We were then advised that city and town code names were legal-safe. So there we were, struggling to agree on some city or town name we all liked (or at least not hate nor be confused by..."how about &lt;a href="http://www.amusingfacts.com/cgi-bin/surf/surf_pass.cgi?template=weird.html&amp;amp;cfile=nameless.html" mce_href="http://www.amusingfacts.com/cgi-bin/surf/surf_pass.cgi?template=weird.html&amp;amp;cfile=nameless.html"&gt;Nameless&lt;/a&gt;?"...), and then &lt;a href="http://blogs.msdn.com/data/archive/2006/12/05/data-access-api-of-the-day-part-i.aspx" mce_href="http://blogs.msdn.com/data/archive/2006/12/05/data-access-api-of-the-day-part-i.aspx"&gt;Mike Pizzo's&lt;/a&gt; proposal came in: "Astoria - hey, it's the cloudiest city in the USA!" (&lt;a href="http://www.farmersalmanac.com/weather_chatter/2006/10/06/the-10-worst-weather-cities/" mce_href="http://www.farmersalmanac.com/weather_chatter/2006/10/06/the-10-worst-weather-cities/"&gt;at least it was in 2006&lt;/a&gt;). Sold.&lt;/p&gt;  &lt;p&gt;3. I think my favorite memory of all is the reaction &lt;a href="http://flakenstein.net/" mce_href="http://flakenstein.net/"&gt;Gary Flake&lt;/a&gt; provided (of Microsoft's &lt;a href="http://livelabs.com" mce_href="http://livelabs.com"&gt;Live Labs&lt;/a&gt;) to the prototype Pablo demo'd at one of the pitch meetings: "As God himself would have designed it!" Dr Flake exclaimed..."Cool", I thought to myself - "but does that mean no REST for the wicked?"&lt;/p&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=42218" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/.NET/default.aspx">.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/platforms/default.aspx">platforms</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/ROA/default.aspx">ROA</category><category domain="http://alexbarnett.net/blog/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/Web/default.aspx">Web</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category><category domain="http://alexbarnett.net/blog/archive/tags/WOA/default.aspx">WOA</category><category domain="http://alexbarnett.net/blog/archive/tags/XML/default.aspx">XML</category></item><item><title>Astoria at MIX08 (REST in Vegas)</title><link>http://alexbarnett.net/blog/archive/2008/03/04/astoria-at-mix08-rest-in-vegas.aspx</link><pubDate>Wed, 05 Mar 2008 02:11:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40802</guid><dc:creator>alexbarnett</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40802</wfw:comment><comments>http://alexbarnett.net/blog/archive/2008/03/04/astoria-at-mix08-rest-in-vegas.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;As much as I'd love to make&amp;nbsp;it to MIX08 this week, time will not&amp;nbsp;allow me...But if I were, then I'd be going to &lt;A class="" href="http://blogs.msdn.com/astoriateam/archive/2008/02/29/mix08-is-almost-here.aspx" mce_href="http://blogs.msdn.com/astoriateam/archive/2008/02/29/mix08-is-almost-here.aspx"&gt;the following three sessions&lt;/A&gt; related to the &lt;A class="" href="http://astoria.mslivelabs.com/" mce_href="http://astoria.mslivelabs.com/"&gt;Project Formerly Known as Astoria&lt;/A&gt;:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Wed, March 5th - RESTful Data Services with the ADO.NET Data Services Framework&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;Fri, March 7th - Accessing Windows Live Services via AtomPub&lt;/LI&gt;
&lt;LI&gt;Fri, March 7th - Building RESTful Real World Applications with the ADO.NET Data Services Framework&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40802" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/.NET/default.aspx">.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Atom/default.aspx">Atom</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Mashup/default.aspx">Mashup</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/ROA/default.aspx">ROA</category><category domain="http://alexbarnett.net/blog/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/SOA/default.aspx">SOA</category><category domain="http://alexbarnett.net/blog/archive/tags/SQL/default.aspx">SQL</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category><category domain="http://alexbarnett.net/blog/archive/tags/WindowsLive/default.aspx">WindowsLive</category><category domain="http://alexbarnett.net/blog/archive/tags/WOA/default.aspx">WOA</category><category domain="http://alexbarnett.net/blog/archive/tags/XML/default.aspx">XML</category></item><item><title>Podcast with John Musser of ProgrammableWeb.com</title><link>http://alexbarnett.net/blog/archive/2007/09/19/podcast-with-john-musser-of-programmableweb-com.aspx</link><pubDate>Wed, 19 Sep 2007 16:38:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40442</guid><dc:creator>alexbarnett</dc:creator><slash:comments>3</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40442</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/09/19/podcast-with-john-musser-of-programmableweb-com.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;A couple of weeks back &lt;A class="" href="http://blog.programmableweb.com/" mce_href="http://blog.programmableweb.com/"&gt;John Musser&lt;/A&gt; of &lt;A class="" href="http://www.programmableweb.com/" mce_href="http://www.programmableweb.com/"&gt;ProgrammableWeb.com&lt;/A&gt; joined me and &lt;A class="" href="http://reverendted.wordpress.com/" mce_href="http://reverendted.wordpress.com/"&gt;Ted&lt;/A&gt; for a chat to discuss the state of web APIs and the API trends as he sees them.&lt;/P&gt;
&lt;P mce_keep="true"&gt;We've now&amp;nbsp;&lt;A class="" href="http://bungeelabs.wordpress.com/2007/08/31/featureinterview001/" mce_href="http://bungeelabs.wordpress.com/2007/08/31/featureinterview001/"&gt;recorded the conversation and published&lt;/A&gt; as the first of a newly launched&amp;nbsp;Bungee Line podcast series.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Topic covered include &lt;A class="" href="http://developers.facebook.com/" mce_href="http://developers.facebook.com/"&gt;Facebook APIs&lt;/A&gt;, Amazon's&amp;nbsp;recently launched&amp;nbsp;&lt;A class="" href="http://www.amazon.com/b?ie=UTF8&amp;amp;node=342430011" mce_href="http://www.amazon.com/b?ie=UTF8&amp;amp;node=342430011"&gt;Flexible Payment Service (FPS)&lt;/A&gt; , &lt;A class="" href="http://base.google.com/" mce_href="http://base.google.com/"&gt;Google Base&lt;/A&gt;, &lt;A class="" href="http://alexbarnett.net/blog/archive/2007/08/03/astoria-data-services-for-the-web-part-2.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/08/03/astoria-data-services-for-the-web-part-2.aspx"&gt;Microsoft's Astoria&lt;/A&gt; and relational-data-in-the-cloud programming models and services, SaaS models and API SLAs, &lt;A class="" href="http://www.prescod.net/rest/rest_vs_soap_overview/" mce_href="http://www.prescod.net/rest/rest_vs_soap_overview/"&gt;REST vs SOAP&lt;/A&gt;,&amp;nbsp;&amp;nbsp;"&lt;A class="" href="http://alexbarnett.net/blog/archive/2007/08/17/closed-is-still-the-old-closed.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/08/17/closed-is-still-the-old-closed.aspx"&gt;Closed is Still the Old Closed&lt;/A&gt;" and plenty more.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Thanks to John for his time.&lt;/P&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40442" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/Amazon/default.aspx">Amazon</category><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/BungeeLabs/default.aspx">BungeeLabs</category><category domain="http://alexbarnett.net/blog/archive/tags/Facebook/default.aspx">Facebook</category><category domain="http://alexbarnett.net/blog/archive/tags/Google/default.aspx">Google</category><category domain="http://alexbarnett.net/blog/archive/tags/Mashup/default.aspx">Mashup</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/podcast/default.aspx">podcast</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/SOAP/default.aspx">SOAP</category><category domain="http://alexbarnett.net/blog/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category></item><item><title>ADO.NET Entity Framework video- 1 year later</title><link>http://alexbarnett.net/blog/archive/2007/08/30/ado-net-entity-framework-video-1-year-later.aspx</link><pubDate>Thu, 30 Aug 2007 14:04:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40381</guid><dc:creator>alexbarnett</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40381</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/08/30/ado-net-entity-framework-video-1-year-later.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Some old &lt;A class="" href="http://msdn2.microsoft.com/data/default.aspx" mce_href="http://msdn2.microsoft.com/data/default.aspx"&gt;Data Programmability&lt;/A&gt;&amp;nbsp;teammates of mine, Britt Johnston, &lt;A class="" href="http://blogs.msdn.com/pablo/" mce_href="http://blogs.msdn.com/pablo/"&gt;Pablo Castro&lt;/A&gt; and Mike Pizzo (well, Mike's not &lt;EM&gt;that&lt;/EM&gt; old), are interviewed by Charles Torre &lt;A class="" href="http://channel9.msdn.com/showpost.aspx?postid=338257" mce_href="http://channel9.msdn.com/showpost.aspx?postid=338257"&gt;in this Channel 9 video&lt;/A&gt; to discuss their progress, challenges and customer feedback in the last year since announcing &lt;A class="" href="http://blogs.msdn.com/adonet/archive/2006/08/15/701479.aspx" mce_href="http://blogs.msdn.com/adonet/archive/2006/08/15/701479.aspx"&gt;the first&amp;nbsp;ADO.NET Entity Framework CTP&lt;/A&gt;, including some details on project &lt;A class="" href="http://astoria.mslivelabs.com/" mce_href="http://astoria.mslivelabs.com/"&gt;Astoria&lt;/A&gt;&amp;nbsp;and &lt;A class="" href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/08/03/9558.aspx" mce_href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2007/08/03/9558.aspx"&gt;LINQ to Entities&lt;/A&gt; support, &lt;A class="" href="http://blogs.msdn.com/adonet/archive/2007/08/27/entity-framework-beta-2-the-1st-entity-framework-tools-ctp-released.aspx" mce_href="http://blogs.msdn.com/adonet/archive/2007/08/27/entity-framework-beta-2-the-1st-entity-framework-tools-ctp-released.aspx"&gt;details on the Beta 2 and Tools CTP&lt;/A&gt;&amp;nbsp;released earlier this week (the entity model designer is v.cool), plus&amp;nbsp;the future of the &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa697427(VS.80).aspx"&gt;Entity Framework&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;P.S. Michael -&amp;nbsp;in case you're&amp;nbsp;reading: reconsider the shorts for the next interview :-P&lt;/P&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40381" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/.NET/default.aspx">.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/ADO.NET/default.aspx">ADO.NET</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Dev/default.aspx">Dev</category><category domain="http://alexbarnett.net/blog/archive/tags/DP/default.aspx">DP</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/VisualStudio/default.aspx">VisualStudio</category></item><item><title>Astoria: Data Services for the Web - Part 2</title><link>http://alexbarnett.net/blog/archive/2007/08/03/astoria-data-services-for-the-web-part-2.aspx</link><pubDate>Sat, 04 Aug 2007 02:17:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40328</guid><dc:creator>alexbarnett</dc:creator><slash:comments>2</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40328</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/08/03/astoria-data-services-for-the-web-part-2.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Back in April,&amp;nbsp;the Data Programmability&amp;nbsp;team at Microsoft&amp;nbsp;announced &lt;A class="" href="http://blogs.msdn.com/pablo/archive/2007/04/30/codename-astoria-data-services-for-the-web.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2007/04/30/codename-astoria-data-services-for-the-web.aspx"&gt;"Astoria": Data Services for the Web&lt;/A&gt;, an incubation project exploring programming models for data over the web. As part of the announcement, the team deployed an online implementation&amp;nbsp;of&amp;nbsp;&lt;A href="http://astoria.mslivelabs.com/OnlineService.aspx" mce_href="http://astoria.mslivelabs.com/OnlineService.aspx"&gt;Astoria here&lt;/A&gt;, providing some sample read-only datasets for you to play with (see &lt;A class="" href="http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx"&gt;this post for examples&lt;/A&gt;).&amp;nbsp; They also mentioned&amp;nbsp;that plans were underway&amp;nbsp;to allow&amp;nbsp;web developers&amp;nbsp;to define their own data model&amp;nbsp;and have&amp;nbsp;their own&amp;nbsp;data stored as read-write relational data service "in the cloud", programmable over a RESTful API.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;What's New&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Today, Mike Flasko, Astoria Program Manager&amp;nbsp;&lt;A href="http://blogs.msdn.com/astoriateam/archive/2007/08/03/create-your-own-hosted-astoria-data-service.aspx" mce_href="http://blogs.msdn.com/astoriateam/archive/2007/08/03/create-your-own-hosted-astoria-data-service.aspx"&gt;announced&lt;/A&gt; the delivery of&amp;nbsp;this &lt;A href="http://astoria.mslivelabs.com/OnlineService.aspx" mce_href="http://astoria.mslivelabs.com/OnlineService.aspx"&gt;second piece of Astoria online service&lt;/A&gt;, where&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"web developers can create custom structured data stores (up to 100MB in size) on the web and access them from anywhere that they have Internet access. These data services can then be the storage or data source for mashups, or the backing store for Internet enabled applications, or be applied to any other scenario where a rich data service on the web is required, independently of where it is hosted.&amp;nbsp;"&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;(Astoria Program Manager? This is incubation project is going somewhere... :-)&lt;/P&gt;
&lt;P&gt;You create your own&amp;nbsp;data model&amp;nbsp;for the Astoria online service by web-based tool that lets you define your data model (entities, properties and associations). Be warned - it's&amp;nbsp;a little rough at the edges, but good enough. Once you've you've defined your data model the service&amp;nbsp;generates the data store for you and hands you an URL...Yes! Your&amp;nbsp;very own read/write REST interface&amp;nbsp;to your own data store.&lt;/P&gt;
&lt;P&gt;So now I've got my own relational data service going&amp;nbsp;(note: will&amp;nbsp;you require a username / password, which I ain't going to give you :-) at &lt;EM&gt;https://astoria.sandbox.live.com/users/alexrest/alexrest.rse&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And all this without requiring the installation of Microsoft bits - no Visual Studio, no SQL Server, nada!&lt;/P&gt;
&lt;P&gt;I'll be experimenting a little more with the new service and hope to share some interesting possibilities in the future, but I think it is fair to say that this incubation project&amp;nbsp;has some&amp;nbsp;seriously interesting and broad&amp;nbsp;potential. Congrats to the team for pulling this off!&lt;/P&gt;
&lt;P&gt;More at:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/astoriateam/archive/2007/08/03/create-your-own-hosted-astoria-data-service.aspx" mce_href="http://blogs.msdn.com/astoriateam/archive/2007/08/03/create-your-own-hosted-astoria-data-service.aspx"&gt;Astoria team blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/pablo/archive/2007/08/03/we-ll-host-an-experimental-astoria-data-service-for-you.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2007/08/03/we-ll-host-an-experimental-astoria-data-service-for-you.aspx"&gt;Pablo Castro's blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://geekswithblogs.net/ejohnson/archive/2007/08/03/114391.aspx" mce_href="http://geekswithblogs.net/ejohnson/archive/2007/08/03/114391.aspx"&gt;Elisa Johnson's blog&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;(8/6/07) Mary Jo Foley - &lt;A class="" href="http://blogs.zdnet.com/microsoft/?p=623" mce_href="http://blogs.zdnet.com/microsoft/?p=623"&gt;Microsoft Code Name of the Day: Astoria&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;(8/8/07) Jamie Thomson &lt;A class="" href="http://blogs.conchango.com/jamiethomson/archive/2007/08/08/Microsoft-trial-hosted-data-services.aspx" mce_href="http://blogs.conchango.com/jamiethomson/archive/2007/08/08/Microsoft-trial-hosted-data-services.aspx"&gt;has been playing and got his own service running&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Previous Astoria posts:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/2007/07/13/restpectful-comparison-of-microsoft-s-astoria-and-google-base-data-apis.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/07/13/restpectful-comparison-of-microsoft-s-astoria-and-google-base-data-apis.aspx"&gt;RESTpectful comparison of Microsoft's Astoria and Google Base Data APIs&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/2007/07/03/astoria-podcast-jon-udell-interviews-pablo-castro.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/07/03/astoria-podcast-jon-udell-interviews-pablo-castro.aspx"&gt;Astoria podcast - Jon Udell interviews Pablo Castro &lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/2007/05/24/rest-roa-astoria-soa.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/05/24/rest-roa-astoria-soa.aspx"&gt;REST / ROA / Astoria / SOA &lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/2007/05/22/mashup-design-patterns.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/05/22/mashup-design-patterns.aspx"&gt;Mashup design patterns&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/2007/04/30/interview-with-pablo-castro-on-astoria-data-services-for-the-web.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/04/30/interview-with-pablo-castro-on-astoria-data-services-for-the-web.aspx"&gt;Interview with Pablo Castro on Astoria - Data Services for the Web&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx"&gt;Microsoft Codename "Astoria": Data Services for the Web&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;-&lt;/P&gt;
&lt;P&gt;&lt;A title="Bookmark using any bookmark manager!" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=alexbarnett&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target=_blank mce_href="http://www.addthis.com/bookmark.php"&gt;&lt;IMG height=16 alt="AddThis Social Bookmark Button" src="http://s9.addthis.com/button1-bm.gif" width=125 border=0 mce_src="http://s9.addthis.com/button1-bm.gif"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40328" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/Programming/default.aspx">Programming</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category></item><item><title>Ozzie's "Cloud OS" Raises More Questions than Answers</title><link>http://alexbarnett.net/blog/archive/2007/07/27/ozzie-s-quot-cloud-os-quot-raises-more-questions-than-answers.aspx</link><pubDate>Fri, 27 Jul 2007 20:04:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40295</guid><dc:creator>alexbarnett</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40295</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/07/27/ozzie-s-quot-cloud-os-quot-raises-more-questions-than-answers.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&lt;A class="" href="http://www.microsoft.com/msft/speech/FY07/OzzieFAM2007.mspx" mce_href="http://www.microsoft.com/msft/speech/FY07/OzzieFAM2007.mspx"&gt;Ray Ozzie's&amp;nbsp;briefing&lt;/A&gt;&amp;nbsp;this week provided quite a bit more detail around Microsoft's "Software&amp;nbsp;Plus Services" strategy. It's definitely &lt;A class="" href="http://www.microsoft.com/msft/speech/FY07/OzzieFAM2007.mspx" mce_href="http://www.microsoft.com/msft/speech/FY07/OzzieFAM2007.mspx"&gt;worth a read&lt;/A&gt; (or &lt;A class="" href="http://microsoft.shareholder.com/webcast/MediaPresentation.asp?MediaID=26652&amp;amp;MediaUserID=0" mce_href="http://microsoft.shareholder.com/webcast/MediaPresentation.asp?MediaID=26652&amp;amp;MediaUserID=0"&gt;a look&lt;/A&gt;, and if you're feeling too lazy for either you can read &lt;A class="" href="http://www.roughtype.com/archives/2007/07/microsofts_fore.php" mce_href="http://www.roughtype.com/archives/2007/07/microsofts_fore.php"&gt;Nick Carr's summary&lt;/A&gt;).&lt;/P&gt;
&lt;P mce_keep="true"&gt;It's been a year since Ozzie took over the role as Chief Software Architect from Bill Gates, and&amp;nbsp;I think it is&amp;nbsp;exciting to&amp;nbsp;see&amp;nbsp;his&amp;nbsp;influence further emerge throughout the&amp;nbsp;business, architectural and experential direction of Microsoft.&amp;nbsp;The 30 year old company needs&amp;nbsp;this injection - a shot in the arm. And his vision is the right one. It is the only one that has any chance of seeing Microsoft through its need for growth.&lt;/P&gt;
&lt;P mce_keep="true"&gt;However, as the Ozzie's "Cloud OS" story slowly becomes more concrete, the future&amp;nbsp;influence that&amp;nbsp;Microsoft will have&amp;nbsp;throughout the&amp;nbsp;software and internet services ecosystem is becoming less clear. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Yes, we know Software as a Service (Saas) is becoming an increasingly significant trend, and we know that the enabling role Web Services (SOAP and REST based) has to play as part of the overall move to&amp;nbsp;a distributed computing&amp;nbsp;model is becoming ever more central, and we know that the browser will continue to further its dominance as the primary interface between humans and data, functionality and people, but what is not so clear is how many "major players" there will be in that future, what their roles will be, nor what the roles of the "everyone elses" will be.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Microsoft Partners have been assured a place by Microsoft's side in this future, but does anyone really know? How will all this fall out? How will Microsoft's traditional partner profile fit into&amp;nbsp;Ozzie's new brave future? What kind of ecosystems will emerge? Will&amp;nbsp;Microsoft's ecosystem of tomorrow look&amp;nbsp;radically different to its&amp;nbsp;ecosystem of today? Who are the&amp;nbsp;Microsoft partners of today&amp;nbsp;who will find themselves competing head-to-head&amp;nbsp;with Microsoft tomorrow? What will Microsoft's competition of the future even look like?&lt;/P&gt;
&lt;P mce_keep="true"&gt;The answers to some of these question&amp;nbsp;may surprise us. How many people, for example,&amp;nbsp;would have imagined a just few years ago that search engine providers or an online bookseller or online university network would emerge to become a serious potential competitor in the computing and software space of Microsoft? Not many. In the second internet age Microsoft's future competition&amp;nbsp;and partners can&amp;nbsp;literally come from any direction at any time. And they often do. In many respects, the future&amp;nbsp;looks bright, but I suspect that for many in the software / computing industry the future is also very&amp;nbsp;cloudy indeed.&lt;/P&gt;- &lt;!-- AddThis Bookmark Button BEGIN --&gt;&lt;A title="Bookmark using any bookmark manager!" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=alexbarnett&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target=_blank&gt;&lt;IMG height=16 alt="AddThis Social Bookmark Button" src="http://s9.addthis.com/button1-bm.gif" width=125 border=0&gt;&lt;/A&gt; &lt;!-- AddThis Bookmark Button END --&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40295" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/Amazon/default.aspx">Amazon</category><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/CRM/default.aspx">CRM</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Dev/default.aspx">Dev</category><category domain="http://alexbarnett.net/blog/archive/tags/Internet/default.aspx">Internet</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/PaaS/default.aspx">PaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/Programming/default.aspx">Programming</category><category domain="http://alexbarnett.net/blog/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/search/default.aspx">search</category><category domain="http://alexbarnett.net/blog/archive/tags/Tech/default.aspx">Tech</category><category domain="http://alexbarnett.net/blog/archive/tags/trends/default.aspx">trends</category><category domain="http://alexbarnett.net/blog/archive/tags/Web/default.aspx">Web</category><category domain="http://alexbarnett.net/blog/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category><category domain="http://alexbarnett.net/blog/archive/tags/Windows/default.aspx">Windows</category><category domain="http://alexbarnett.net/blog/archive/tags/WindowsLive/default.aspx">WindowsLive</category></item><item><title>RESTpectful comparison of Microsoft's Astoria and Google Base Data APIs</title><link>http://alexbarnett.net/blog/archive/2007/07/13/restpectful-comparison-of-microsoft-s-astoria-and-google-base-data-apis.aspx</link><pubDate>Fri, 13 Jul 2007 06:36:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40242</guid><dc:creator>alexbarnett</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40242</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/07/13/restpectful-comparison-of-microsoft-s-astoria-and-google-base-data-apis.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Dare has written up RESTpectful comparison of the programming&amp;nbsp;models&amp;nbsp;of&amp;nbsp;&lt;A class="" href="http://astoria.mslivelabs.com/" mce_href="http://astoria.mslivelabs.com/"&gt;Microsoft's Astoria&lt;/A&gt; and &lt;A class="" href="http://code.google.com/apis/base/" mce_href="http://code.google.com/apis/base/"&gt;Google Base Data API&lt;/A&gt;&amp;nbsp;for&amp;nbsp;querying relational data over the web (RESTful data services).&lt;/P&gt;
&lt;P mce_keep="true"&gt;Both these APIs&amp;nbsp;also happen to&amp;nbsp;support operations for changing the data - inserting, updating, and deleting - Google's details &lt;A class="" href="http://code.google.com/apis/base/starting-out.html#insupdel" mce_href="http://code.google.com/apis/base/starting-out.html#insupdel"&gt;here&lt;/A&gt; and Astoria's in this&amp;nbsp;&lt;A class="" href="http://astoria.mslivelabs.com/UsingMicrosoftCodenameAstoria.doc" mce_href="http://astoria.mslivelabs.com/UsingMicrosoftCodenameAstoria.doc"&gt;.doc&lt;/A&gt;, where in addition Astoria allows associations between&amp;nbsp;entities&amp;nbsp;to be&amp;nbsp;created and deleted). These aren't mentioned in Dare's analysis (I'm sure he knows of the&amp;nbsp;ability to &lt;EM&gt;change &lt;/EM&gt;the data via the APIs, not just query), however &lt;A class="" href="http://www.25hoursaday.com/weblog/2007/07/13/GoogleBaseDataAPIVsAstoriaTwoApproachesToSQLlikeQueriesInARESTfulProtocol.aspx" mce_href="http://www.25hoursaday.com/weblog/2007/07/13/GoogleBaseDataAPIVsAstoriaTwoApproachesToSQLlikeQueriesInARESTfulProtocol.aspx"&gt;the article&lt;/A&gt; is worth a read nonetheless.&lt;/P&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40242" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/APIs/default.aspx">APIs</category><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Google/default.aspx">Google</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://alexbarnett.net/blog/archive/tags/SOA/default.aspx">SOA</category><category domain="http://alexbarnett.net/blog/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category></item><item><title>Astoria podcast - Jon Udell interviews Pablo Castro </title><link>http://alexbarnett.net/blog/archive/2007/07/03/astoria-podcast-jon-udell-interviews-pablo-castro.aspx</link><pubDate>Tue, 03 Jul 2007 21:13:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40225</guid><dc:creator>alexbarnett</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40225</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/07/03/astoria-podcast-jon-udell-interviews-pablo-castro.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Here's something I've been &lt;A class="" href="http://alexbarnett.net/blog/archive/2007/05/24/rest-roa-astoria-soa.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/05/24/rest-roa-astoria-soa.aspx"&gt;looking forward to&lt;/A&gt; for a while - &lt;A class="" href="http://channel9.msdn.com/showpost.aspx?postid=321735" mce_href="http://channel9.msdn.com/showpost.aspx?postid=321735"&gt;Jon Udell interviewing Pablo Castro&lt;/A&gt; on the topic of &lt;A class="" href="http://astoria.mslivelabs.com/" mce_href="http://astoria.mslivelabs.com/"&gt;Astoria&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;After the interview &lt;A class="" href="http://blog.jonudell.net/2007/07/03/a-conversation-with-pablo-castro-about-astorias-restful-data-services/" mce_href="http://blog.jonudell.net/2007/07/03/a-conversation-with-pablo-castro-about-astorias-restful-data-services/"&gt;Jon wrote&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;EM&gt;"I’m not even close to being an expert in the underlying data access technologies, including ADO.NET, the Entity Data Model, and LINQ, so parts of the discussion quite frankly went over my head. Nor am I yet familiar with the tooling that’s required to wrap this kind of services layer around a plain data source. But I’m 100% clear that it’s a good idea,&lt;/EM&gt; &lt;EM&gt;and a great example of &lt;/EM&gt;&lt;A href="http://blog.jonudell.net/2007/05/24/restful-web-services/"&gt;&lt;EM&gt;RESTful&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; &lt;/EM&gt;&lt;A href="http://www.itconversations.com/shows/detail1830.html"&gt;&lt;EM&gt;web services&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; — a book that Pablo Castro says is “required reading” for members of the Astoria team."&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;If you like the sound of Astoria keep an eye on &lt;A class="" href="http://blogs.msdn.com/pablo/archive/2007/07/03/podcast-interview-with-jon-udell.aspx" mce_href="http://blogs.msdn.com/pablo/archive/2007/07/03/podcast-interview-with-jon-udell.aspx"&gt;Pablo's blog&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40225" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/podcast/default.aspx">podcast</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category></item><item><title>REST / ROA / Astoria / SOA </title><link>http://alexbarnett.net/blog/archive/2007/05/24/rest-roa-astoria-soa.aspx</link><pubDate>Thu, 24 May 2007 22:46:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40133</guid><dc:creator>alexbarnett</dc:creator><slash:comments>6</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40133</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/05/24/rest-roa-astoria-soa.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Jon Udell, rightly so, &lt;A class="" href="http://blog.jonudell.net/2007/05/24/restful-web-services/" mce_href="http://blog.jonudell.net/2007/05/24/restful-web-services/"&gt;is getting excited&lt;/A&gt; about the new book &lt;A href="http://www.oreilly.com/catalog/9780596529260/"&gt;RESTful Web Services&lt;/A&gt;, by &lt;A class="" href="http://www.crummy.com/" mce_href="http://www.crummy.com/"&gt;Leonard Richardson&lt;/A&gt; and &lt;A class="" href="http://intertwingly.net/blog/" mce_href="http://intertwingly.net/blog/"&gt;Sam Ruby&lt;/A&gt; - a book I myself got excited about in November (&lt;A class="" href="http://alexbarnett.net/blog/archive/2006/11/04/REST-Web-Services-and-ROA.aspx" mce_href="http://alexbarnett.net/blog/archive/2006/11/04/REST-Web-Services-and-ROA.aspx"&gt;REST Web Services and ROA&lt;/A&gt;)&amp;nbsp;when I wrote at the time:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;EM&gt;"My bet is that this&amp;nbsp;project, the book&amp;nbsp;and the concept of ROA as an effort to standardize aspects of RESTful architecture design is going to do very well, because I agree&amp;nbsp;this is&amp;nbsp;needed. Example provided:&lt;/EM&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;""REST" is an abused term. Many alleged REST services (such as Flickr's, which says REST right on the website) are actually HTTP+POX: service-oriented APIs that happen to use nothing more the basic technologies of the web. Classifying services as resource-oriented or service-oriented makes it easy to see which ones are more and which less RESTful, without wasting time on minutiae.""&lt;/EM&gt;&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;(more links to &lt;A class="" href="http://intertwingly.net/blog/2007/05/23/Link-Bait" mce_href="http://intertwingly.net/blog/2007/05/23/Link-Bait"&gt;reviews here&lt;/A&gt;)&lt;/P&gt;
&lt;P mce_keep="true"&gt;I don't know if John, Leonard or Sam have&amp;nbsp;spent any time to look at the &lt;A class="" href="http://astoria.mslivelabs.com/" mce_href="http://astoria.mslivelabs.com/"&gt;Astoria project&lt;/A&gt; (think - RESTful data services) - &lt;A class="" href="http://oakleafblog.blogspot.com/2007/05/mix07-session-videos-with-linq-ef-or.html" mce_href="http://oakleafblog.blogspot.com/2007/05/mix07-session-videos-with-linq-ef-or.html"&gt;see links here&lt;/A&gt;, but would love to know what they think - in particular regarding the query syntax (good? bad? too complex? too simple?) and where it sits on the &lt;A class="" href="http://blogs.zdnet.com/Hinchcliffe/?p=107" mce_href="http://blogs.zdnet.com/Hinchcliffe/?p=107"&gt;ROA (WOA?) to SOA continuum&lt;/A&gt; (&lt;A class="" href="http://www.google.com/search?q=nick+gall+woa" mce_href="http://www.google.com/search?q=nick+gall+woa"&gt;WOA links&lt;/A&gt;) they discussed.&lt;/P&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40133" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/ROA/default.aspx">ROA</category><category domain="http://alexbarnett.net/blog/archive/tags/SOA/default.aspx">SOA</category><category domain="http://alexbarnett.net/blog/archive/tags/WOA/default.aspx">WOA</category></item><item><title>Mashup design patterns</title><link>http://alexbarnett.net/blog/archive/2007/05/22/mashup-design-patterns.aspx</link><pubDate>Tue, 22 May 2007 16:27:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40118</guid><dc:creator>alexbarnett</dc:creator><slash:comments>4</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40118</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/05/22/mashup-design-patterns.aspx#comments</comments><description>&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&amp;lt;warning: the following&amp;nbsp;post &lt;/EM&gt;&lt;/STRONG&gt;&lt;A href="http://en.wikipedia.org/wiki/Meanders" mce_href="http://en.wikipedia.org/wiki/Meanders"&gt;&lt;STRONG&gt;&lt;EM&gt;meanders&lt;/EM&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;EM&gt;, is unstrucutured&amp;nbsp;and doesn't arrive at any conclusion&amp;gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In the middle of last year, I invited Dion to meet with me and other members of Microsoft's Data Programmability team to discuss REST in the context of data access over the web. Dion's&amp;nbsp;perspective&amp;nbsp;is one of the reasons our team was able to&amp;nbsp;recognise&amp;nbsp;the&amp;nbsp;potential of a&amp;nbsp;RESTful programming model against relational data, manifested today as &lt;A href="http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx"&gt;Project Astoria&lt;/A&gt;.&amp;nbsp; 
&lt;P&gt;I've been waiting to read &lt;A href="http://blogs.zdnet.com/Hinchcliffe/?p=107" mce_href="http://blogs.zdnet.com/Hinchcliffe/?p=107"&gt;Dion's thoughts&lt;/A&gt; on &lt;A href="http://astoria.mslivelabs.com/" mce_href="http://astoria.mslivelabs.com/"&gt;Project Astoria&lt;/A&gt; (via &lt;A href="http://blog.programmableweb.com/2007/05/21/salesforcecom-soa-and-web-apis/" mce_href="http://blog.programmableweb.com/2007/05/21/salesforcecom-soa-and-web-apis/"&gt;John Musser&lt;/A&gt;).&amp;nbsp;It's an interesting&amp;nbsp;take,&amp;nbsp;contextualizing Astoria within the overall architectural trends we're seeing take place. 
&lt;P&gt;I liked this diagram and got me thinking (dangerous...): 
&lt;P&gt;&lt;A title="SOA Web 2.0 COnvergence Revision 2" href="http://blogs.zdnet.com/Hinchcliffe/images/soaweb20convergence_update2.png" mce_href="http://blogs.zdnet.com/Hinchcliffe/images/soaweb20convergence_update2.png"&gt;&lt;IMG title="SOA Web 2.0 COnvergence Revision 2" alt="SOA Web 2.0 COnvergence Revision 2" src="http://blogs.zdnet.com/Hinchcliffe/images/soaweb20convergence_update2.png" border=0 mce_src="http://blogs.zdnet.com/Hinchcliffe/images/soaweb20convergence_update2.png"&gt;&lt;/A&gt; 
&lt;P&gt;Dion warns that the diagram&amp;nbsp;like this&amp;nbsp;could&amp;nbsp;never be&amp;nbsp;complete representation of the concepts discussed &lt;A class="" href="http://blogs.zdnet.com/Hinchcliffe/?p=107" mce_href="http://blogs.zdnet.com/Hinchcliffe/?p=107"&gt;in his post&lt;/A&gt; and&amp;nbsp;is work in progress. The mapping done here for the&amp;nbsp;3 types of applications (Composite Applications, Recombinant Software and&amp;nbsp;Mashups)&amp;nbsp;makes some&amp;nbsp;sense to me. However, it reminds me that I have&amp;nbsp;used the terms "Composite applications" and "Mashups" interchangeably (but never Recombinant Software) depending on who I'm speaking to and&amp;nbsp;without really thinking through what I mean by these terms.&amp;nbsp;To try and clarify my own thinking on this, here's my effort to do so... 
&lt;P&gt;Here are&amp;nbsp;the&amp;nbsp;Wikipedia definitions of Composite Applications, Recombinant Software and&amp;nbsp;Mashups. 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://en.wikipedia.org/wiki/Composite_applications" mce_href="http://en.wikipedia.org/wiki/Composite_applications"&gt;&lt;STRONG&gt;&lt;EM&gt;Composite applications&lt;/EM&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"the term &lt;B&gt;composite application&lt;/B&gt; expresses a perspective of software engineering that defines an application built by combining multiple services. A composite application consists of functionality drawn from several different sources within a &lt;/EM&gt;&lt;A href="http://en.wikipedia.org/wiki/Service_oriented_architecture" mce_href="http://en.wikipedia.org/wiki/Service_oriented_architecture"&gt;&lt;EM&gt;service oriented architecture&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; (SOA). The components may be individual &lt;/EM&gt;&lt;A href="http://en.wikipedia.org/wiki/Web_services" mce_href="http://en.wikipedia.org/wiki/Web_services"&gt;&lt;EM&gt;web services&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;, selected functions from within other applications, or entire systems whose outputs have been packaged as web services (often legacy systems)."&lt;/EM&gt; 
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Recombinant software&lt;/EM&gt;&lt;/STRONG&gt; 
&lt;P&gt;&lt;EM&gt;&amp;lt;none&amp;gt;&lt;/EM&gt; 
&lt;P&gt;&lt;A href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)" mce_href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)"&gt;&lt;STRONG&gt;&lt;EM&gt;Mashup&lt;/EM&gt;&lt;/STRONG&gt;&lt;/A&gt; 
&lt;P&gt;&lt;EM&gt;"A &lt;B&gt;mashup&lt;/B&gt; is a website or application that combines content from more than one source into an integrated experience."&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;So nothing in Wikipedia for "Recombinant software", but&amp;nbsp;in searching for&amp;nbsp;a definition I&amp;nbsp;did come another post by Dion written in June 2006 -&amp;nbsp;&lt;A href="http://blogs.zdnet.com/Hinchcliffe/?p=49" mce_href="http://blogs.zdnet.com/Hinchcliffe/?p=49"&gt;"Is IBM making enterprise mashups respectable?"&lt;/A&gt;.&amp;nbsp; Here Dion asserted: 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"Accepting that information, visuals, and software can be remixed and combined at multiple levels in an application stack means that there are (at least) five places that mashups can take place."&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Dion then&amp;nbsp;went on to define 5 mashup types: 
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;&lt;B&gt;Presentation Mashup:&lt;/B&gt; This is the shallowest form of mashup in the sense that underlying data and functionality don’t meet.&amp;nbsp; Information and laout is retrieved and either remix or just placed next to each other.&amp;nbsp; Many of the &lt;/EM&gt;&lt;A href="http://blogs.zdnet.com/Hinchcliffe?p=8" mce_href="http://blogs.zdnet.com/Hinchcliffe?p=8"&gt;&lt;EM&gt;Ajax desktops&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; today fall into this category and so do portals and other presentation mashup techniques. &lt;/EM&gt;
&lt;LI&gt;&lt;EM&gt;&lt;B&gt;Client-Side Data Mashup:&lt;/B&gt; A slight deeper form of mashup is the data mashup which takes information from remote Web services, feeds, or even just plain HTML and combines it with data from another source. New information that didn’t exist before can result such as when addresses are geocoded and display on a map to create a visualization that could exist without the underlying combination of data. &lt;/EM&gt;
&lt;LI&gt;&lt;EM&gt;&lt;B&gt;Client-Side Software Mashup:&lt;/B&gt; This is where code is integrated in the browser to result in a distinct new capability.&amp;nbsp; While a component model for the browser is only now being hashed out as part of Open Ajax, there is considerable potential in being able to easily wire together pieces of browser-based software into brand new functionality. &lt;/EM&gt;
&lt;LI&gt;&lt;EM&gt;&lt;B&gt;Server-Side Software Mashup: &lt;/B&gt;Recombinant software is probably easier right now on the server since Web services can more easily use other Web services and there are less security restrictions and cross domain issues.&amp;nbsp; As a result, server-side mashups like those that in turn use things like Amazon’s &lt;/EM&gt;&lt;A href="http://web2.wsj2.com/amazon_understands_harnessing_collective_intelligence.htm" mce_href="http://web2.wsj2.com/amazon_understands_harnessing_collective_intelligence.htm"&gt;&lt;EM&gt;Mechanical Turk&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; or any of the &lt;/EM&gt;&lt;A href="http://programmableweb.com/apis" mce_href="http://programmableweb.com/apis"&gt;&lt;EM&gt;hundreds of open Web APIs&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; currently available, are quite common. &lt;/EM&gt;
&lt;LI&gt;&lt;EM&gt;&lt;B&gt;Server-Side Data Mashup:&lt;/B&gt; Databases have been linking and connecting data for decades, and as such, they have relatively powerful mechanisms to join or mashup data under the covers, on the server-side.&amp;nbsp; While it’s still harder to mashup up data across databases from different vendors, products like Microsoft SQL Server increasingly make it much easier to do.&amp;nbsp; This points out that many applications we have today are early forms of mashups, despite the term.&amp;nbsp; Of course, the more interesting and newer aspects of mashups happen above this level.&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Back to the plot... 
&lt;P&gt;When speaking&amp;nbsp;with an "enterprisey" architect I use the term "Composite applications". "Enterprisey" architects&amp;nbsp;think and talk in terms of governance, security, scale and complexity. They also like to hear and use technical sounding terms that confound non-IT folks ;-) 
&lt;P&gt;When speaking&amp;nbsp;with a developer, I tend to use the term "Mashups". Developers&amp;nbsp;are smart and&amp;nbsp;lazy -&amp;nbsp;they want to write fewer lines of code, do more with less and love to impress. In my mind at least, the term "mashup" implies a speedy development / test / deploy cycle,&amp;nbsp;design flexibility and simplicity in the sense that its "less hard to do". 
&lt;P&gt;Now, if I'm talking to a developer who works in the enterprise context (enterprise as in a&amp;nbsp;large business) the term "enterprise mashup" can connect the "enterprisey" values - governance, security, scale but &lt;EM&gt;without&lt;/EM&gt; the complexity&amp;nbsp;AND&amp;nbsp;&lt;EM&gt;with&lt;/EM&gt; the "mashup" values - speed, flexibility and simplicity.&lt;/P&gt;
&lt;P&gt;Reviewing the 5 mashup&amp;nbsp;design patterns&amp;nbsp;above, there is reasonably defined line: Client-side vs. Server-side. Some of the fall into the WOA space - referring to Dion's diagram above: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"Another important item: The bottom of the overlapping circle contains a cryptic &lt;/EM&gt;&lt;A&gt;&lt;/A&gt;&lt;EM&gt;acronym near the edge of the circle: WOA. This stands for Web-Oriented Architecture, a concept that I’ve written about several times &lt;/EM&gt;&lt;A href="http://blogs.zdnet.com/Hinchcliffe/?p=27" mce_href="http://blogs.zdnet.com/Hinchcliffe/?p=27"&gt;&lt;EM&gt;here&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; and &lt;/EM&gt;&lt;A href="http://blogs.zdnet.com/Hinchcliffe/?p=43" mce_href="http://blogs.zdnet.com/Hinchcliffe/?p=43"&gt;&lt;EM&gt;here&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; in this blog. It’s an idea that basically states that software that goes naturally with the “grain” of the Web, extending the core infrastructure of the Web in natural ways, works the best."&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40118" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/enterprise2.0/default.aspx">enterprise2.0</category><category domain="http://alexbarnett.net/blog/archive/tags/Mashup/default.aspx">Mashup</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/SOA/default.aspx">SOA</category><category domain="http://alexbarnett.net/blog/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category><category domain="http://alexbarnett.net/blog/archive/tags/WOA/default.aspx">WOA</category></item><item><title>Interview with Pablo Castro on Astoria - Data Services for the Web</title><link>http://alexbarnett.net/blog/archive/2007/04/30/interview-with-pablo-castro-on-astoria-data-services-for-the-web.aspx</link><pubDate>Tue, 01 May 2007 05:49:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40020</guid><dc:creator>alexbarnett</dc:creator><slash:comments>7</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40020</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/04/30/interview-with-pablo-castro-on-astoria-data-services-for-the-web.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I caught up with Pablo Castro, who announced Codename &lt;A class="" href="http://astoria.mslivelabs.com/" mce_href="http://astoria.mslivelabs.com"&gt;Astoria&lt;/A&gt; - Data Services for the Web &lt;A class="" href="http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx"&gt;earlier today at MIX07&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Here's the video of our chat together.&lt;/P&gt;
&lt;P&gt;
&lt;OBJECT height=350 width=425&gt;&lt;PARAM NAME="movie" VALUE="http://www.youtube.com/v/s4J5cCjNmQ4"&gt;&lt;PARAM NAME="wmode" VALUE="transparent"&gt;
&lt;embed src="http://www.youtube.com/v/s4J5cCjNmQ4" mce_src="http://www.youtube.com/v/s4J5cCjNmQ4" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/OBJECT&gt;&lt;/P&gt;
&lt;P&gt;In the meantime, there have been a number of blog posts commenting on the Astoria announcement &lt;A class="" href="http://www.techmeme.com/070430/p99#a070430p99" mce_href="http://www.techmeme.com/070430/p99#a070430p99"&gt;via TechMeme&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://blog.programmableweb.com/2007/05/01/microsoft-astoria-for-web-data-services/" mce_href="http://blog.programmableweb.com/2007/05/01/microsoft-astoria-for-web-data-services/"&gt;John Musser at ProgrammableWeb.com&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"Although it’s an early experimental release, it’s quite an interesting approach using a very RESTful set of patterns and infrastructure for web data services."&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;A class="" href="http://www.redmonk.com/cote/2007/04/30/microsofts-rest-moves-project-astoria/" mce_href="http://www.redmonk.com/cote/2007/04/30/microsofts-rest-moves-project-astoria/"&gt;Michael Coté of Redmonk&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"If you’re interested in REST, SOA (hopefully, of &lt;/EM&gt;&lt;A href="http://twitter.com/DannoHung/statuses/45018142"&gt;&lt;EM&gt;the REST type&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;), SaaS, or (though I shudder to type it) “the semantic web,” take a look at Astoria yourself. Like I said, it’s all at the “labs”/”project” stage now. But, that means there’s a chance to get in there and influence what the final release turns out to be. Does the interface and use model “work”? Do you like it?"&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;A class="" href="http://dannyayers.com/2007/05/01/astoria--microsoft-approaches" mce_href="http://dannyayers.com/2007/05/01/astoria--microsoft-approaches"&gt;Danny Ayers&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"They've totally gone to town on URIs and HTTP access - very much leaning towards REST. What's exposed is proper web stuff. There's a fair bit of innovation there that looks useful, it'll be interesting to see what RESTafarian gurus make of it. So the insides will be good for MS-heads - great, anything that encourages building web-friendly services has to be a good thing."&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;A class="" href="http://www.base4.net/Blog.aspx?ID=392" mce_href="http://www.base4.net/Blog.aspx?ID=392"&gt;Alex James&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;"&lt;FONT face=Tahoma&gt;Combine REST with a conceptual model and well you get &lt;/FONT&gt;&lt;/EM&gt;&lt;A href="http://www.base4.net/blog.aspx?Tag=Data2.0"&gt;&lt;FONT face=Tahoma&gt;&lt;EM&gt;Data 2.0&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Tahoma&gt;&lt;EM&gt;.&lt;BR&gt;&lt;BR&gt;Astoria leverages &lt;B&gt;REST +&lt;/B&gt; &lt;B&gt;Entity Data Model&lt;/B&gt; to expose &lt;B&gt;data to the web&lt;/B&gt;.&lt;BR&gt;&lt;BR&gt;Very cool."&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40020" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/MIX07/default.aspx">MIX07</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/Web+2.0/default.aspx">Web 2.0</category></item><item><title>Microsoft Codename "Astoria": Data Services for the Web</title><link>http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx</link><pubDate>Tue, 01 May 2007 01:28:00 GMT</pubDate><guid isPermaLink="false">0a97a1d1-9921-457b-8bd7-ce5530d7bd45:40018</guid><dc:creator>alexbarnett</dc:creator><slash:comments>17</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://alexbarnett.net/blog/commentapi.aspx?PostID=40018</wfw:comment><comments>http://alexbarnett.net/blog/archive/2007/04/30/microsoft-codename-quot-astoria-quot-data-services-for-the-web.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Pablo Castro has &lt;A href="http://blogs.msdn.com/pablo/archive/2007/04/30/codename-astoria-data-services-for-the-web.aspx"&gt;announced a very cool project&lt;/A&gt;, Microsoft Codename "Astoria": Data Services for the Web.&lt;/P&gt;
&lt;P&gt;So, if:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;You build data-aware web applications (are there web devs that don't?)&lt;/P&gt;
&lt;P&gt;You are interested in data access over the web (data over the web &lt;EM&gt;is&lt;/EM&gt; what makes the web interesting)&lt;/P&gt;
&lt;P&gt;You have been asking: "What is the programming model for data&amp;nbsp;over web?" (I have)&lt;/P&gt;
&lt;P&gt;You want more that simple file storage in the sky - you want &lt;EM&gt;relational data&lt;/EM&gt; in the cloud you can program against - read and write (every developer I've spoken to wants this)&lt;/P&gt;
&lt;P&gt;You like REST ('nuff said)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Then...read on.&lt;/P&gt;
&lt;P&gt;Codename "Astoria" is&amp;nbsp;&lt;EM&gt;the&lt;/EM&gt; project I was working on before I left Microsoft. Astoria was probably the single hardest reason for me to leave as the momentum of the project was really picking up speed and the potential of Astoria was being grokked by a number of teams inside Microsoft. So to see Pablo's presentation today at MIX07 was nothing short of glorious.&lt;/P&gt;
&lt;P&gt;On to "What is Astoria?"&lt;/P&gt;
&lt;P&gt;Astoria is the cloudiest city in North America. Astoria is also the codename for an incubation project started some months ago attempting to answer the following questions: &lt;EM&gt;if you could provide a dead-simple way of programming against a relational data store that resides on the internet, what&amp;nbsp;should the programming model look like? Could it be simpler than SOAP-based data access programming?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;There are two parts (well, more -&amp;nbsp;but we'll start with two) to the Astoria story.&lt;/P&gt;
&lt;P&gt;The first part is the more traditional Microsoft CTP thing. What the downloadable bits allow you to do is to very rapidly&amp;nbsp;provide a&amp;nbsp;REST-based API - URLs- to an existing SQL Server database. That's right - REST to SQL in a jiffy! You download the bits for Visual Studio Orcas, do a couple of wizzy things and before you know it you have your data available through http. If you want, can then apply your own security model, constraints, etc. &lt;A href="http://astoria.mslivelabs.com/downloads.aspx"&gt;Downloads info and links here.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The second part is what I consider to be the coolest thing in data over web the&amp;nbsp;today. The Microsoft team&amp;nbsp;has deployed an online implementation&amp;nbsp;of&amp;nbsp;&lt;A href="http://astoria.mslivelabs.com/OnlineService.aspx"&gt;Astoria here&lt;/A&gt;, providing some sample read-only datasets for you to play with. There are plans to allow anyone to define their own data model and then have your data stored the same way as read-write, but it's not there today, and when that goes online it'll be for experimental use only, not the real-deal, yet.&lt;/P&gt;
&lt;P&gt;There are currently four datasets for you to play with:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$NorthwindButton", "", false, "", "./termsOfUseNorthwind.aspx?returnURL=Northwind", false, true))'&gt;&lt;EM&gt;Northwind Data Service&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/EM&gt;&lt;BR&gt;&lt;EM&gt;Northwind is a classic database example, so we had to make it part of the sample set for the Astoria online service. &lt;/EM&gt;
&lt;P&gt;&lt;A href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$AdventureWorksButton", "", false, "", "./termsOfUseAdventureWorks.aspx?returnURL=AdventureWorks", false, true))'&gt;&lt;EM&gt;AdventureWorks Data Service&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/EM&gt;&lt;BR&gt;&lt;EM&gt;AdventureWorks is the new sample database that comes with Microsoft SQL Server 2005 and has a rich schema and a lot of data. &lt;/EM&gt;
&lt;P&gt;&lt;A href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$EncartaButton", "", false, "", "./termsOfUseEncarta.aspx?returnURL=Encarta", false, true))'&gt;&lt;EM&gt;Encarta Data Service&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/EM&gt;&lt;BR&gt;&lt;EM&gt;The Microsoft® Encarta® team was nice enough to let us use a subset of their Encarta Encyclopedia article base and expose it as a data service. &lt;/EM&gt;
&lt;P&gt;&lt;A href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$TagSpaceButton", "", false, "", "./termsOfUseTagSpace.aspx?returnURL=TagSpace", false, true))'&gt;&lt;EM&gt;TagSpace Data Service&lt;/EM&gt;&lt;/A&gt;&lt;BR&gt;&lt;EM&gt;The folks at Microsoft TagSpace were also kind enough to let us borrow their data (without user information, of course); this data service exposes the Tags, Tagged Items, Bookmarks and the relationships between them.&lt;/EM&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Let's look at the &lt;A href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$TagSpaceButton", "", false, "", "./termsOfUseTagSpace.aspx?returnURL=TagSpace", false, true))'&gt;&lt;EM&gt;TagSpace Data Service&lt;/EM&gt;&lt;/A&gt;&amp;nbsp;as an example. Here's the entry point (data service root): &lt;A title=http://astoria.sandbox.live.com/tagspace/tagspace.rse href="http://astoria.sandbox.live.com/tagspace/tagspace.rse"&gt;http://astoria.sandbox.live.com/tagspace/tagspace.rse&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;What you see returned are the entities you can begin to browse though as an XML payload back (you can request JSON or simple RDF too): The&amp;nbsp;three entities: &lt;STRONG&gt;Tags&lt;/STRONG&gt;, &lt;STRONG&gt;TaggedItems &lt;/STRONG&gt;&lt;EM&gt;and &lt;/EM&gt;&lt;STRONG&gt;UserBookmarks.&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;A href="http://astoria.sandbox.live.com/#"&gt;&lt;FONT color=#ff0000&gt;-&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ff0000&gt; &amp;lt;DataService xml:base="&lt;B&gt;&lt;FONT color=#000000&gt;http://astoria.sandbox.live.com/tagspace/tagspace.rse&lt;/FONT&gt;&lt;/B&gt;"&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;A href="http://astoria.sandbox.live.com/#"&gt;&lt;FONT color=#ff0000&gt;-&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ff0000&gt; &amp;lt;TagSpaceEntities uri="&lt;B&gt;.&lt;/B&gt;"&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;Tags href="&lt;B&gt;&lt;FONT color=#000000&gt;Tags&lt;/FONT&gt;&lt;/B&gt;" /&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;TaggedItems href="&lt;B&gt;&lt;FONT color=#000000&gt;TaggedItems&lt;/FONT&gt;&lt;/B&gt;" /&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;UserBookmarks href="&lt;B&gt;&lt;FONT color=#000000&gt;UserBookmarks&lt;/FONT&gt;&lt;/B&gt;" /&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;/TagSpaceEntities&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;/DataService&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;So, let's look at the all the tags. Simple add "&lt;STRONG&gt;/tags&lt;/STRONG&gt;" to the end of the entry point URL: &lt;A title=http://astoria.sandbox.live.com/tagspace/tagspace.rse/tags href="http://astoria.sandbox.live.com/tagspace/tagspace.rse/tags"&gt;http://astoria.sandbox.live.com/tagspace/tagspace.rse/tags&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;One of the tags&amp;nbsp;listed in the XML playload returned is &lt;STRONG&gt;vista:&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://astoria.sandbox.live.com/#"&gt;&lt;FONT color=#ff0000&gt;-&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ff0000&gt; &amp;lt;Tag uri="&lt;B&gt;&lt;FONT color=#000000&gt;Tags[vista]&lt;/FONT&gt;&lt;/B&gt;"&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;TagName&amp;gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;vista&lt;/STRONG&gt;&lt;/FONT&gt;&amp;lt;/TagName&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;CreatedDate&amp;gt;11/6/2006 11:40:31 AM&amp;lt;/CreatedDate&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;TaggedItems href="&lt;B&gt;&lt;FONT color=#000000&gt;Tags[vista]/TaggedItems&lt;/FONT&gt;&lt;/B&gt;" /&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Now let's replace "&lt;STRONG&gt;/tags&lt;/STRONG&gt;" with "/&lt;FONT color=#000000&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;Tags[vista]/TaggedItems"&lt;/STRONG&gt; in the URL to get all the items tagged with 'vista': &lt;A title=http://astoria.sandbox.live.com/tagspace/tagspace.rse/Tags[vista]/TaggedItems href="http://astoria.sandbox.live.com/tagspace/tagspace.rse/Tags[vista]/TaggedItems"&gt;http://astoria.sandbox.live.com/tagspace/tagspace.rse/Tags[vista]/TaggedItems&lt;/A&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Now we see all the the items tagged 'vista'. In the payload back,&amp;nbsp;we see that&amp;nbsp;'TaggedItem' is another entity that is made up of a number of elements: the item ID (in this case '2'), the item title, the item description and the url to the item:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;A href="http://astoria.sandbox.live.com/#"&gt;&lt;FONT color=#ff0000&gt;-&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ff0000&gt; &amp;lt;TaggedItem uri="&lt;/FONT&gt;&lt;B&gt;TaggedItems[2]&lt;/B&gt;"&amp;gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;TaggedItemId&amp;gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/FONT&gt;&amp;lt;/TaggedItemId&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;Title&amp;gt;&lt;STRONG&gt;&lt;FONT color=#000000&gt;How do I change Windows Vista Media Center's Record folder...&lt;/FONT&gt;&lt;/STRONG&gt;&amp;lt;/Title&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;Description&amp;gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;Well, currently I installed Windows Vista Ultimate on my PC.&amp;nbsp; I have two harddrives, a 80gig, and a...&lt;/STRONG&gt;&lt;/FONT&gt;&amp;lt;/Description&amp;gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&amp;lt;Uri&amp;gt;&lt;STRONG&gt;&lt;FONT color=#000000&gt;http://beta.communities.microsoft.com/Forums/thread.aspx?ThreadId=6abaf29f-81e0-4cbb-bcab-93541e49f0ea&amp;amp;MessageId=ddf043cb-903f-437a-9aa3-730c92398b37&lt;/FONT&gt;&lt;/STRONG&gt;&amp;lt;/Uri&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#000000&gt;Now I know the ID (the 'key')&amp;nbsp;of a specific item, I can ask just for that item back by replacing "/&lt;FONT color=#000000&gt;&lt;FONT color=#000000&gt;&lt;STRONG&gt;Tags[vista]/TaggedItems"&lt;/STRONG&gt; with &lt;B&gt;TaggedItems[2]" &lt;/B&gt;in the URL hitting &lt;/FONT&gt;&lt;/FONT&gt;the data service: &lt;A title=http://astoria.sandbox.live.com/tagspace/tagspace.rse/Tags[vista]/TaggedItems[2] href="http://astoria.sandbox.live.com/tagspace/tagspace.rse/Tags[vista]/TaggedItems[2]"&gt;http://astoria.sandbox.live.com/tagspace/tagspace.rse/Tags[vista]/TaggedItems[2]&lt;/A&gt;&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;The underlining technology that allows the data to be viewed at entities is the &lt;A class="" href="http://msdn2.microsoft.com/en-us/data/aa937723.aspx" mce_href="http://msdn2.microsoft.com/en-us/data/aa937723.aspx"&gt;ADO.NET Entity Framework&lt;/A&gt;, so the data model you are traversing is an &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa697428(vs.80).aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa697428(vs.80).aspx"&gt;Entity Data Model&lt;/A&gt; (the EDM consists of the high-level constructs “entities” and “associations”). The cool thing is, as a consumer of the data for your app (or as a human navigating through the URLs), you don't need to anything installed, you just hit the URLS and off you go. The payload returns enough information for you to then start navigating the data model and the data itself and use&amp;nbsp;the data it for your apps. 
&lt;P&gt;The are a number of other very cool aspects to all this, and more detail is avaiable to read through in this .doc - &lt;A href="http://astoria.mslivelabs.com/UsingMicrosoftCodenameAstoria.doc"&gt;&lt;FONT color=#669966&gt;Using Microsoft Codename Astoria&lt;/FONT&gt;&lt;/A&gt;, but to summarise just a few point here: 
&lt;P&gt;The data service is reachable over regular HTTP requests, and standard HTTP verbs such as GET, POST, PUT and DELETE are used to perform operations against the service. 
&lt;P&gt;The URL-based query syntax supports a number of operators. Examples: 
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;B&gt;eq&lt;/B&gt; 
&lt;P&gt;Equal 
&lt;P&gt;/Customers[City eq 'London'] 
&lt;P&gt;&lt;B&gt;ne&lt;/B&gt; 
&lt;P&gt;Not equal 
&lt;P&gt;/Customers[City ne 'London'] 
&lt;P&gt;&lt;B&gt;gt&lt;/B&gt; 
&lt;P&gt;Greater than 
&lt;P&gt;/Orders[OrderDate gt '1998-5-1'] 
&lt;P&gt;&lt;B&gt;gteq&lt;/B&gt; 
&lt;P&gt;Greater than or equal 
&lt;P&gt;/Orders[Freight gteq 800] 
&lt;P&gt;&lt;B&gt;lt&lt;/B&gt; 
&lt;P&gt;Less than 
&lt;P&gt;/Orders[Freight lt 1] 
&lt;P&gt;&lt;B&gt;lteq&lt;/B&gt; 
&lt;P&gt;Less than or equal 
&lt;P&gt;/Orders[OrderDate lteq '1999-5-4']&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;There are plenty more operators too. You can also create new entities using HTTP POST request and delete entites using HTTP DELETE against the URLs and manage associations between entities through URIs. 
&lt;P&gt;Powerful stuff, but to&amp;nbsp;point out here: the team is &lt;A class="" href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1430&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1430&amp;amp;SiteID=1"&gt;looking for&lt;/A&gt; &lt;A class="" href="http://blogs.msdn.com/adonet/archive/2007/04/30/project-codename-astoria-announced-at-mix-07.aspx" mce_href="http://blogs.msdn.com/adonet/archive/2007/04/30/project-codename-astoria-announced-at-mix-07.aspx"&gt;feedback&lt;/A&gt;. It's actually pretty unusual to have a project reveal so much at&amp;nbsp;this early stage of a&amp;nbsp;technology's development, but the team was itching to get feedback as early as possible in the design process. 
&lt;P&gt;If you are at MIX07, Pablo is repeating his session on Wedesday May 2, 11:30 AM - 12:45 PM, Lando 4201. 
&lt;P&gt;Can't wait for the team to update the service so we can start hosting our own data up there too...&lt;/P&gt;
&lt;P&gt;--&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update&lt;/STRONG&gt; - 11:19pm&lt;/P&gt;
&lt;P&gt;I caught up with Pablo and video'd our chat together. Also, blog reactions so far have been positive. &lt;A class="" href="http://alexbarnett.net/blog/archive/2007/04/30/interview-with-pablo-castro-on-astoria-data-services-for-the-web.aspx" mce_href="http://alexbarnett.net/blog/archive/2007/04/30/interview-with-pablo-castro-on-astoria-data-services-for-the-web.aspx"&gt;New post here&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://alexbarnett.net/blog/aggbug.aspx?PostID=40018" width="1" height="1"&gt;</description><category domain="http://alexbarnett.net/blog/archive/tags/Astoria/default.aspx">Astoria</category><category domain="http://alexbarnett.net/blog/archive/tags/Data/default.aspx">Data</category><category domain="http://alexbarnett.net/blog/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://alexbarnett.net/blog/archive/tags/MIX07/default.aspx">MIX07</category><category domain="http://alexbarnett.net/blog/archive/tags/REST/default.aspx">REST</category><category domain="http://alexbarnett.net/blog/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://alexbarnett.net/blog/archive/tags/webservices/default.aspx">webservices</category></item></channel></rss>