Simon Davies Microsoft UK simondaviesmicrosoftcom Data Services what are they what is the motivation for building them What types of data services are available how do I build and access them ID: 781293
Download The PPT/PDF document "Data Access in a Software + Services Wor..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Slide2Data Access in a Software + Services World
Simon Davies
Microsoft UK
simon.davies@microsoft.com
Slide3Data Services - what are they , what is the motivation for building them?
What types of data services are available how do I build and access them?
Other issues ?Wrap Up
Agenda
Slide4Data in The Web
HTML +
Javascript
Data (XML,JSON,…)
DLL + XAML
Data (XML,JSON,…)
Data (XML,JSON,…)
Mashup
UI
Data Feeds
AJAX Applications
Silverlight Applications
Online Services
Mashups
Slide5Service Interfaces
Operation-centric
vs data-centric interface style depending on the nature of the service
Data Centric
Spaces Photos, …
Application-Based
Storage
SQL Data Services …
Operations Centric
Messenger
Live ID
Alerts
…
Slide6Data Services Vision
SYNC
SYNC
SYNC
SYNC
ADO.Net
Data Services Framework
On Premises
Internet Standard Interfaces and Protocols (REST/APP/SOAP)
Mobile and
Desktop
Client Applications
Web Services
Software
SQL Server Data Services (SSDS)
ADO.Net Data Services
Windows Live Services
+ Services
Slide7Unified Development Story
Visual Studio
.NET and
Silverlight
2
ASP.NET Integration
AJAX library
3
rd
party components
Data Services & AtomPub
AtomPub
Consumer Services
e.g.:
Windows Live Spaces (Photos)
Infrastructure Services
e.g.:
Application-
Based Storage
SQL Server Data
Services
On-Premises Services
e.g.:
Data Services framework against local SQL Server
Slide8The Atom Syndication Format
IETF RFC 4287
XML format
Organized in
feeds
, entries and linksExtensible data and metadata
<feed
xmlns="…/Atom"> <id>…/Folders</id> <
title>Folders</title> <updated>…</updated>
<author> <name>John Doe</
name> </
author> <
entry>
<id
>…/Folders(123)</id> <title>Cool Pics</title> <updated>…</
updated> <link rel="self" … />
<link rel="related" …
/> <content
type="app/xml"> < … content … >
</content
> </
entry></feed>
Slide9The Atom Publishing Protocol
IETF RFC 5023
Protocol for publishing and editing resources
Atom representations over HTTP
Simple
RESTful interaction model
DELETE
PUT
POST
GET
Server w/
AtomPub
interface
Slide10Accessing AtomPub Services
Slide11URL Conventions
AtomPub
does not specify URL formatWe follow a predictable, uniform pattern
Description
Example URL
Top-level container
/FoldersAddress single entry by ID/Folders(123)Traverse a link/Folders(123)/PhotosAddressing can nest as appropriate/Folders(123)/Photos(456)/ImageStreams
Access primary value/Folders(123)/Photos(456)/$valuePresentation control **$orderby, $filter, $top, $skip, $expandService metadata/$metadata
Slide12Building your own Data Services
ADO.Net
Data Services AKA “Project Astoria”
Slide13Data Access Layer
Creating Data Services
Create services directly from Visual Studio
Various data sources
Entity Framework
LINQ providers
Model-drivenStructural description in Entity Data ModelMetadata shapes service
Entity Framework
Custom LINQ provider
Relational database
Other sources
Service Runtime
Hosting/HTTP listener
IQueryable
[+
IUpdatable
]
Slide14Refining and Securing Services
Slide15Modern Data-Driven Web Apps
AJAX integration
AJAX-friendly JSON format in services
Javascript
library that integrates with the ASP.NET AJAX toolkit
Silverlight support.NET programming model for data servicesObject based, LINQ enabled API
Code-gen entity types from metadata
Slide16"Traditional" Applications
Web applications
Data services client can be used in ASP.NET
ASP.NET data source control for accessing remote services
Desktop applications
Fully-featured .NET client librarySame API in desktop and Silverlight environments
Slide17Roadmap
Where do we go from here?
Beta 1 will ship shortlyVersion 1 Production Release Mid 2008
Windows Live Photos
Photos is part of Windows Live Spaces
New experimental
AtomPub
interface
https://cumulus.services.live.com/{id}/AtomSpacesPhotos
Authorization via LiveIDMore information at
http://dev.live.com/liveidCheck out the delegated authentication SDKBrowse and create folders and photosFolders/Photos as Atom feeds and entriesPhotos are Atom “media link entries”
Slide19SQL Server Data Services
Scales without Limits
S
torage and processing
scales without restrictions
Businesses pay only for
the resources consumed
Application Agility
Simple, flexible data
model
REST and SOAP
protocols support
Business Ready SLA
Built using robust Microsoft
SQL Server technology
SLA for business continuity
Highly available, reliable
and secure
Microsoft
®
SQL Server
®
Data Services (SSDS) is aWeb facing data storage and processing utility
Slide20SQL Server Data Services
High Level Architecture
Global Foundation Services
Distributed
Fabric
Mgmt.
Services
SQL
Services
Distributed
Fabric
Mgmt.
Services
SQL
Services
Distributed
Fabric
Mgmt.
Services
SQL
Services
Distributed
Fabric
Mgmt.
Services
SQL
Services
Distributed
Fabric
Mgmt.
Services
SQL
Services
Distributed
Fabric
Mgmt.
Services
SQL
Services
Distributed
Fabric
Mgmt.
Services
SQL
Services
SQL Server Data Services Platform
ACE Logic
Client Library
REST / SOAP
ACE Logic
Client Library
REST / SOAP
ACE Logic
Client Library
REST / SOAP
ACE Logic
Client Library
REST / SOAP
ACE Logic
Client Library
REST / SOAP
ACE Logic
Client Library
REST / SOAP
ACE Logic
Client Library
REST / SOAP
SQL Server Data Services
Slide21The 'ACE' Concepts
A
uthority
Unit of geo-location and billing
Collection of containers
ContainerUnit of consistency/search
Collection of entitiesNo schema required EntityProperty bag of name/value pairsUnit of update/change
Slide22Concepts: Entity (Example)
Entity properties may differ in type and instance
Property
Type
Value
Metadata
IDEntityIdVWGOLF-01KindEntityKindCar
FlexPropsDescriptionStringReliable, one owner, …PriceNumeric12000.00
ListingDateDatetime01-01-2008LocationZipString98052
PropertyTypeValueMetadataID
EntityIdMINICOOPER-264
KindEntityKindFunCar
FlexPropsDescription
StringReliable, one owner, …
PriceNumeric12000.00ListingDateString1st January, 2008LocationZipString98052
EngineSizeNumeric1600
Additional property
Different instance
types
Different Kinds
Slide23Roadmap
Sign up for Invitation only beta
No charge for use during beta period
Next step – open beta within 4 months
Service refresh every 8 weeks
New functionality based on customer feedback
Go Live in H1’09Published SLAPricing and licensing model TBD
Slide24Other Issues: Disconnected\Offline
Core problem is synchronization:
How do I keep a local cache of data in sync with a remote endpoint?
Many hard cases: conflicts, interruptions
Correct synchronization algorithms are non-trivial
Answer: Microsoft Sync Framework
This lets you do:offline:synchronize a data set between client and serverpeer-to-peer / roaming:synchronize a data set between endpoints, rather than just hub-spoke with a server
collaboration / sharing:synchronize a data set between multiple users (either peer-to-peer, or via a shared server)
Slide25Sync Framework is Powerful
Solves hard sync problems so you don’t have to
Conflict detection and resolution
Connection and storage errors
Numerous corner cases
Supports unreliable networks, i.e. interruptions/partial syncsEasy-to-use and performant
Native support for FeedsyncPrototyping Offline ADO.Net Data Services
Slide26Microsoft Sync Framework
RTM Date Q3/2008;
CTP2 available now – visit msdn.com/sync
Windows Mobile CTP Q3/2008
Support for multiple development languages
Managed Code (C#, Visual Basic, etc..)
Native/Unmanaged Code (C++, etc..)
Slide27Summary
Service alignment
We’re aligning our services on AtomPub
First experimental interfaces available
Windows Live Spaces Photos
Application-Based Storage (experimental service)SQL Server Data Services (soon)Your own services can easily follow the same interface using
ADO.Net Data ServicesRich developer storyUnified conventions for URLs and data modelGrowing tools/components ecosystemSynchronisation FeedSync for bi-directional ATOM and RSS Microsoft Sync Framework
Slide28