+ All Categories
Home > Documents > Ori Amiga Group Program Manager Microsoft Corporation.

Ori Amiga Group Program Manager Microsoft Corporation.

Date post: 28-Dec-2015
Category:
Upload: claire-welch
View: 219 times
Download: 0 times
Share this document with a friend
Popular Tags:
30
Transcript
Page 1: Ori Amiga Group Program Manager Microsoft Corporation.
Page 2: Ori Amiga Group Program Manager Microsoft Corporation.

Live Framework: Architecture and Insights

Ori AmigaGroup Program ManagerMicrosoft Corporation

Page 3: Ori Amiga Group Program Manager Microsoft Corporation.

Azure™ Services Platform

Azure™ Services Platform

Page 4: Ori Amiga Group Program Manager Microsoft Corporation.

Agenda

Hard Problems Execution Engine Programming Model Summary Q & A

Page 5: Ori Amiga Group Program Manager Microsoft Corporation.

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.

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.

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.

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.

Its just HTTP

demo

Page 10: Ori Amiga Group Program Manager Microsoft Corporation.

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.

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.

Cloud and Client Symmetry

demo

Page 13: Ori Amiga Group Program Manager Microsoft Corporation.

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.

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.

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.

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.

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.

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.

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.

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.

Bringing data in the Mesh using Resource Scripts

demo

Page 22: Ori Amiga Group Program Manager Microsoft Corporation.

Data Extensibility

demo

Page 23: Ori Amiga Group Program Manager Microsoft Corporation.

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.

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.

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.

q & a

Page 28: Ori Amiga Group Program Manager Microsoft Corporation.

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.

© 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.

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


Recommended