共用方式為


Astoria FAQ from MIX

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.

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.

Can Astoria expose data from data sources other than databases?

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.

How tightly integrated is Astoria to SQL Server?

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.

This looks really similar to SQLXML. What is the relationship between the two technologies?

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.

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.

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.

The documents say "semantics" all over the place, but not "semantic web", is there any relationship between Astoria and the semantic web?

The "semantic web" is a broad space of specifications, technologies and concepts. The goals of the semantic web are far-reaching.

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.

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.

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.

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.

What is the security model for Astoria?

I’m putting this here for completeness, but let me defer the answer to a future post.

No business logic? Data directly exposed? How do you architect applications on top of Astoria?

Same as above. I’ll do a write up soon.

 

If you have more questions feel free to send them, I'll do another round of FAQs once I get a few more together.

-pablo

Comments

  • Anonymous
    May 03, 2007
    The comment has been removed

  • Anonymous
    May 04, 2007
    I learned about codename Jasper today. So, Jasper is the answer to most of my questions, right? :)

  • Anonymous
    May 04, 2007
    Diego: we do not have a fully-baked mechanism for exposing metadata yet; that said, since we needed for the client-side code-gen tool as you mentioned, we do have a way of obtaining an EDM schema for a given service. It's definitely not the final plan long term (I'm not sure if EDM/XML is the right way of describing a service), but it enabled the scenario for the CTP. The short story is that you can use a "special" option that is "/$sys_GetEdmSchema" (against a given svc/rse service entry point) and you get the schema. I'll drill down a bit more on this in a future post. -pablo

  • Anonymous
    May 05, 2007
    At MIX07 I've seen a presentation by Pablo Castro from the ADO.NET team on a new project codenamed "Astoria".

  • Anonymous
    May 07, 2007
    I agree, EDM/XML doesn’t seem good for this. On one side, there is the advantage of reuse. But on the other side, EDM/XML is full of CLR types (Astoria aims to output neutral formats, I think). Also, the original EDM/XML would not contain any operations you could have added to the service.

  • Anonymous
    May 09, 2007
    Last week at Mix07 Microsoft announced a project code named Astoria. The technology code named Astoria

  • Anonymous
    May 14, 2007
    Last week at MIX07 Microsoft announced a project code named Astoria. The technology code named Astoria

  • Anonymous
    May 15, 2007
    Pablo I just wanted to say how much I enjoyed your Mix07 session. Even though it was the last session of the conference for me, it was wonderful to see this RESTful approach for getting at data. I understand that people will look at the issues raised by this, but I just see a lot of opportunities for encouraging RESTful data access and making it easier to build web services to access business data. I'll definitely keep Astoria on my radar screen going forward.