One of the the coolest things about Data Services is its provider model.

Any data-source can be exposed as an OData Data Service simply by implementing a few interfaces. SharePoint 2010 implements these interfaces to expose list data, and you can too, to expose just about anything: Facebook? Twitter? You name it.

Once you've done that you can query the data using any of the OData clients, including PowerPivot, LINQ over Data Services etc etc.
 
Now Data Services ships a couple of providers in the box, including one for the Entity Framework and one that works against in memory objects using reflection.

In this series of posts I will walk through creating a Custom Data Service Provider (DSP) slowly layering in more and more capabilities.

DSP Interfaces

There are 5 new interfaces:

If you simply want a read-only service you only need to implement IDataServiceMetadataProvider and IDataServiceQueryProvider.

Next time

In Part 2 we'll see how Data Services learns about your custom DSP and gets hold of your implementation of these interfaces...