<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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>Pablo Castro's blog : MIX07</title><link>http://blogs.msdn.com/pablo/archive/tags/MIX07/default.aspx</link><description>Tags: MIX07</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Astoria FAQ from MIX</title><link>http://blogs.msdn.com/pablo/archive/2007/05/03/astoria-faq-from-mix.aspx</link><pubDate>Thu, 03 May 2007 22:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2398781</guid><dc:creator>pabloc</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/pablo/comments/2398781.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pablo/commentrss.aspx?PostID=2398781</wfw:commentRss><description>&lt;P&gt;We announced Microsoft Codename Astoria at Mix this week, and we did two sessions on the technology during the event. This was great because we got a chance to talk 1:1 with a lot of folks that were interested in the topic. We also got a ton of feedback online through blogs and emails.&lt;/P&gt;
&lt;P&gt;Here are some of the most common questions we got since we announced Astoria. Again, this is a very early release, so not all is nice and baked and fully designed yet. Also, there are some topics that need some in-depth discussions, and I’ll tackle those separately in future posts in the next few days. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Can Astoria expose data from data sources other than databases?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Astoria is built on top of the Entity Framework. Currently the EFx only works on top of databases (or things that have ADO.NET providers and look at lot like databases), so Astoria has this restriction as well for its default data services. Astoria also has ability to expose service operations (which are just WCF service operations); those can gather data from anywhere (we won't look at the code inside the operation implementation) but you don't get the nice automatic URI mapping for entities and relationships, and you don't get automatic create/modify/delete support.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;How tightly integrated is Astoria to SQL Server?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;It is not. I do have an emotional attachment with SQL Server as I worked (still do) in the product for several years :), but Astoria hasn't really anything specific to SQL Server. As I mentioned in the previous answer, Astoria builds on top of the ADO.NET Entity Framework, so if you have an up-to-date ADO.NET provider for your database you should be able to use Astoria with it.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;This looks really similar to SQLXML. What is the relationship between the two technologies?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;They way I see it, these are very similar technologies that are designed to tackle quite different scenarios. The goal of SQLXML was to provide an XML view on top of a SQL Server database, preserving many (all?) aspects of the XML data model. The goal of Astoria is to provide a service for data that can be web facing and AJAX/RIA applications can use as their back-end.&lt;/P&gt;
&lt;P&gt;This difference in goals surfaces in many forms. For example, SQLXML used XPath for queries, where in Astoria we’ve specifically stayed away from it. SQLXML was, well…about XML, where as Astoria is about data services and formats come second (Astoria currently does XML, RDF+XML and JSON, and I was given some great ideas for new formats at Mix). As a last example, Astoria has several mechanisms built-in for introducing business logic in the data service, so it results in a web-facing entry point that client agents can interact with without compromising the integrity of the application.&lt;/P&gt;
&lt;P&gt;On a more practical note, I work in what would be the current form of the team that created SQLXML among other things. I regularly talk with the folks that built it, such as Andy Conrad and Michael Rys. We'll "reuse" as many good ideas as we can, and we’ll avoid things that didn’t turn out that well.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;The documents say "semantics" all over the place, but not "semantic web", is there any relationship between Astoria and the semantic web?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The "semantic web" is a broad space of specifications, technologies and concepts. The goals of the semantic web are far-reaching. &lt;/P&gt;
&lt;P&gt;Astoria does heavily rely on understanding more semantics on the data it handles than a flat "blob store". In Astoria we get semantics off of the Entity Data Model schema that a given data service uses. However, Astoria doesn’t not currently tackle all of the elements that would be required to say that it’s a tool to directly support semantic web constructs.&lt;/P&gt;
&lt;P&gt;It does have some pieces though. The fact that everything is pointed at by a URI and looks like a resource is an important building block. The fact that it supports RDF+XML, with entities modeled as sets of triplets and associations modeled as resources, is also another step there.&lt;/P&gt;
&lt;P&gt;Now, there are things such as not supporting RDF Schema or OWL ontologies that will quickly come up when you look at this with a semantic web perspective. You could imagine generating ontologies based on the EDM schema information (we have information about types, inheritance, associations, etc.). Astoria also does not support SPARQL or any other RDF query language. &lt;/P&gt;
&lt;P&gt;Bottom line: I do think Astoria brings a small little contribution to the goal of adding semantics to the web, but it’s not a full on semantic web tool. Whether it will evolve into something closer to it or not it’s something that time will tell, and user feedback will influence.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is the security model for Astoria?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I’m putting this here for completeness, but let me defer the answer to a future post. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;No business logic? Data directly exposed? How do you architect applications on top of Astoria?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Same as above. I’ll do a write up soon.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;If you have more questions feel free to send them, I'll do another round of FAQs once I get a few more together.&lt;/P&gt;
&lt;P mce_keep="true"&gt;-pablo&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2398781" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pablo/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/pablo/archive/tags/Web/default.aspx">Web</category><category domain="http://blogs.msdn.com/pablo/archive/tags/MIX07/default.aspx">MIX07</category><category domain="http://blogs.msdn.com/pablo/archive/tags/Astoria/default.aspx">Astoria</category></item><item><title>Codename "Astoria": Data Services for the Web</title><link>http://blogs.msdn.com/pablo/archive/2007/04/30/codename-astoria-data-services-for-the-web.aspx</link><pubDate>Mon, 30 Apr 2007 20:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2341873</guid><dc:creator>pabloc</dc:creator><slash:comments>37</slash:comments><comments>http://blogs.msdn.com/pablo/comments/2341873.aspx</comments><wfw:commentRss>http://blogs.msdn.com/pablo/commentrss.aspx?PostID=2341873</wfw:commentRss><description>&lt;P&gt;The "data programmability" team at Microsoft is responsible for the various technologies developers use in applications to access and manipulate data. One of the topics we have been looking at lately is how "new" internet applications use data in the web environment. Project codename "Astoria" reflects our current thinking on the topic. Instead of telling "what we are going to build", we decided to make the bits and infrastructure public for the development community to look at and give us feedback.&lt;/P&gt;
&lt;P&gt;Today we are making a very early experimental release of Project Codename "Astoria". This Community Tech Preview (CTP) release has a dual nature; we are shipping both CTP bits you can download, install and run on your own systems; we are also making available an experimental online service that we hope will help better understand the requirements and use cases of data interfaces in the web.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;So, what does it do?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Astoria exposes "data services" that enable applications to access and manipulate data over regular HTTP connections, using URIs to identify pieces of information within the data service, and simple payload formats such as XML and JSON to represent the data exchanged between the client and the server.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;What is it useful for?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;There are a number of scenarios that we think are interesting for this technology. Most of the scenarios are related to the way new web applications are built.&lt;/P&gt;
&lt;P&gt;If you look at AJAX-based web applications, one interesting aspect of the way they are delivered to the client is that typically the presentation and client-side behavior is delivered on the initial hit to a given web page, and then the code in that page (typically Javascript) turns back and fetches data as the user interacts with the user interface. This brings a strong separation between presentation and data. What is more, this means that now we require a server-side piece that the javascript code can "talk to". Of course, you can always roll you own server-side entry points for data access; however, not only that is expensive but also it greatly reduces the chances to build tooling and user-interface controls that can work generically on any data access entry point into the server.&lt;/P&gt;
&lt;P&gt;This separation is even stronger in rich internet applications built on technologies such as Silverlight and Flash. The code that is delivered to the client when a user hits the web application is pre-compiled and it contains no data at all other than any hardcoded information. Again, these applications talk back to their servers to retrieve data, manipulate it and push changes back into the service for storage.&lt;/P&gt;
&lt;P&gt;Astoria data services are designed to address this space. They present data in a uniform way that can be consumed by any client that can connect over HTTP and parse XML or JSON. The uniform URI and payload format patterns mean that user-interface widgets can be built so they work against any particular shape of data (“schema” if you will) that is exposed through the service.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Where is it?&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The main site is here: &lt;A href="http://astoria.mslivelabs.com/"&gt;http://astoria.mslivelabs.com&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://astoria.mslivelabs.com/Overview.doc" target=_blank mce_href="http://astoria.mslivelabs.com/Overview.doc"&gt;This document&lt;/A&gt; introduces the concepts and motivations for Astoria.&lt;/P&gt;
&lt;P&gt;You can also see and interact with several sample data-sets that are already available on the experimental online service. Click on the "Online Service" link in the link bar.&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Looking forward to hearing your feedback.&lt;/P&gt;
&lt;P&gt;-pablo&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2341873" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/pablo/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/pablo/archive/tags/Web/default.aspx">Web</category><category domain="http://blogs.msdn.com/pablo/archive/tags/MIX07/default.aspx">MIX07</category><category domain="http://blogs.msdn.com/pablo/archive/tags/Astoria/default.aspx">Astoria</category></item></channel></rss>