ori amiga group program manager microsoft corporation
TRANSCRIPT
![Page 1: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/1.jpg)
![Page 2: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/2.jpg)
Live Framework: Architecture and Insights
Ori AmigaGroup Program ManagerMicrosoft Corporation
![Page 3: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/3.jpg)
Azure™ Services Platform
Azure™ Services Platform
![Page 4: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/4.jpg)
Agenda
Hard Problems Execution Engine Programming Model Summary Q & A
![Page 5: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/5.jpg)
Observations
Devices Diversity of devices on the rise My Computer My Mesh
Data Users’ data is everywhere, in cloud,on devices Data is often shared
Applications Span devices Are getting social
People An integral part of our digital life
![Page 6: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/6.jpg)
Hard problems
Composing data across cloud services and devices
Overlay ‘uber’ schema Making data available, efficiently and
consistently Synchronized consistent cache Writing robust communication code Dealing with async and managing state Dealing with disjoint programming models Centralized resource management
![Page 7: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/7.jpg)
Live Operating Environment
Live Framework’s service composition engine Provides a programmable schema in the cloud
“cached reflection” on all my devices Takes care of the hard problems…
Offline and sync Centralized Resource management Communication Device management, user/device presence, notifications
Exists in cloud and on all devices All the incarnations look and feel the same Architected the same way
Provides a unified and consistent programming model to all the apps
![Page 8: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/8.jpg)
Live Operating Environment…
http://<storage>
http://<directory>
http://<contacts>
<peer devices>
[Client|Cloud] Live Operating Environment
Provides applications unified access to user’s data
Is everywhere On local device (Client LOE) In the cloud (Cloud LOE) All incarnations share an identical architecture
![Page 9: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/9.jpg)
Its just HTTP
demo
![Page 10: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/10.jpg)
WL ServicesWL
ServicesWL ServicesLive
Services
Web Apps
HTTPHTTPHTTP
HTTP
Device
Cloud
Always Online
AJAX/SL/FlashApps
DesktopApps Mobile Apps
Live Operating Environment
(http://user.windows.net)
![Page 11: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/11.jpg)
AJAX/SL/FlashApps
DesktopApps Local
Cache
WL ServicesWL
ServicesWL ServicesLive
Services
Device
Cloud
Occasionally Connected
P2P to another device
HTTP
HTTP
Live Operating Environment
(http://localhost:2048)
Live Operating Environment
(http://user.windows.net)
HTTP
![Page 12: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/12.jpg)
Cloud and Client Symmetry
demo
![Page 13: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/13.jpg)
Inside Live Operating Environment
Host (Web/desktop)
(Full /Min) CLR
Live Operating Environment Engine
Scheduler
Sync EnginesSync Engines
Sync Engines
Cache
Sync EnginesSync EnginesService Proxies
Formatters
Notifications
FS Manager Auth/AuthZ
Analytics
API Throttler
App Engine
Resource Manager
Script Engine
P2P Comms
HTTP Comms Device Mgmt
Live Framework Programming Model
![Page 14: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/14.jpg)
Live Framework Infoset
Programming Model – Building Blocks
ResourceExtensibility
Resources & Relationships
Naming & Addressing
IntrospectionURI-LINQ Query
Script/TriggersCRUDWire
Formats Sync Auth
![Page 15: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/15.jpg)
Nouns
Everything interesting is a resource Data, applications, news,
subscriptions/notifications, social graph… Resources
are URL addressable based on a simple infoset (properties, records,
collections) projected onto wire as Atom, JSON, POX, RSS can come from various data sources MeshObject -- a distinguished resource meant
for domain specific extensibility Relationships
Hyperlink based across resources Can be in-lined
![Page 16: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/16.jpg)
Verbs
Standard HTTP methods and their interpretation POST Create a new resource entity PUT Update an existing resource entity GET Read a resource entity/collection DELETE Delete a resource entity OPTIONS Discover the capabilities HEAD {GET – entity body}
Consistent across the entire Resource Model
AtomPub for CRUD and FeedSync for sync URI-LINQ mappings for queries
![Page 17: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/17.jpg)
Resource Scripts
A domain specific language to do AtomPub and FeedSync
Grammar includes statements for CRUD, sync, control flow and data binding
Usage patterns Powerful batching model Pre/Post Triggers associated with resources
Programs serialized in JSON and POX in v0.1 Native XAML and DLR bindings in future Compensation!
Late binding of execution locality (local vs. remote) Allows you to Visually design Live Framework
programs
![Page 18: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/18.jpg)
AtomPub statements (Request/Response) CreateResource ReadResource/ReadResourceCollection UpdateResource DeleteResource CreateMediaResource ReadMediaResource UpdateMediaResource DeleteMediaResource
FeedSync statements SynchronizeResourceCollection
Resource Scripts
![Page 19: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/19.jpg)
Control Flow statements Sequence ala {…} block, executed sequentially Interleave ala spawning a thread and executing
each statement in the block on a separate thread. Conditional ala If and If Else statement. The
conditional expression is a Expression<Func<Statement, bool>> and is a lambda expression which returns a bool.
While looping construct
Assign statements Allows for assigning properties of two statements
Resource Scripts
![Page 20: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/20.jpg)
Basic authoring involves: Build the statement DOM, either from Compile the DOM Execute the Script
Use cases: Help avoiding chattiness/roundtrips.
Single POST can execute a large program. Modularization mechanism.
Allows for factoring out all LOE interactions in a separate unit. Can be used as triggers and sprocs.
Native Silverlight, DLR, JS support on the radarwindow.livefx.scripting.createResourceScript(/*JSON*/).compile().run();
Resource Scripts
![Page 21: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/21.jpg)
Bringing data in the Mesh using Resource Scripts
demo
![Page 22: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/22.jpg)
Data Extensibility
demo
![Page 23: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/23.jpg)
Blow away the DB/MR/Assembler directory to start “fresh”. [Client re-downloads everything on first sign-in)
Local metadata store is in SQLCE (hint hint)[make sure to copy before peaking]
RMB against client/cloud helps differentiate client bugs vs. app bugs.
Monitoring the size of the Assembler vs. MR directory is a lightweight way to measure progress of enclosure fetch.
Collect logs when you run into issues. We absolutely use them.
Tips n' Tricks
![Page 24: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/24.jpg)
Summary
Service composition engine on all devices (cloud is treated as a special device)
A symmetric cloud and client programming model Platform agnostic, and lowest common
denominator approach Resource oriented approach
Everything is a resource Resources are URL addressable Standard HTTP verbs for CRUD, sync and
scripting Simple and open
![Page 25: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/25.jpg)
Related Sessions
Code Date/Time Room Session
BB19 Wed – 10:30am 153 Live Framework Architecture and Insights
BB51 Wed – 1:15pm 501B Programming using non-Microsoft technologies
BB06 Wed – 3:00pm 153 Mesh Services Architecture and Concepts
BB30 Wed – 4:45pm 153 Mesh-Enabled Web Applications
BB31 Thu – 8:30am 153 FeedSync and Mesh Synchronization Services
BB35 Thu – 10:15am 411 The Future of the Device Mesh
BB34 Thu – 12noon 153 Notifications, Awareness, and Communications
BB10 Thu – 1:45pm 408A Deep Dive on Microsoft Virtual Earth
![Page 27: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/27.jpg)
q & a
![Page 28: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/28.jpg)
Evals & Recordings
Please fill
out your
evaluation for
this session at:
This session will be available as a recording at:
www.microsoftpdc.com
![Page 29: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/29.jpg)
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
![Page 30: Ori Amiga Group Program Manager Microsoft Corporation](https://reader030.vdocuments.site/reader030/viewer/2022032708/56649e595503460f94b524ae/html5/thumbnails/30.jpg)
Live Framework Resource Model
Devices
Media Resources
Data Entry
Members Mappings Data Feeds News Subscription
Applications News Notification Queue
Mesh Objects
Scripts ProfilesMesh Contacts
Live Operating Environment
Data Entry