260 likes | 400 Vues
BB34. Live Services Notifications and Communications. John Macintyre Group Program Manager Microsoft Corporation. Live Framework (Live fx). Libraries. .NET FX APIs. Silverlight ™ APIs. JavaScript APIs. Client Controls. Web Controls. Other. Resource Model. ATOM. JSON. POX. RSS.
E N D
BB34 Live ServicesNotifications and Communications John Macintyre Group Program Manager Microsoft Corporation
Live Framework (Live fx) Libraries .NET FX APIs Silverlight™ APIs JavaScript APIs Client Controls Web Controls Other Resource Model ATOM JSON POX RSS Binary XML Atom Pub FeedSync Tools & Services CRUD URI-LINQ Triggers Auth/Z Introspection Resource Scripts Operations Developer Portal Data Applications Communications Developer Sandbox Profile Groups Folders Catalog Peer-to-Peer Contacts Calendars Photos Application Settings Notifications Provisioning/Account Management Custom Data Types Application Management Presence Identity News User System Geospatial Search Analytics Visual Studio® Tools/ Designers Mesh User Mesh Device Mesh Application Mesh Synchronization Live Operating Environment CRUD Resource Script Engine Cache Analytics Sync Engine Auth/Z CRUD Resource Script Engine Sync Engine Auth/Z Files System Peer-to-Peer Cash/Local Store Resource Manager Peer-to-Cloud :Cloud_ :Client_ Windows Other Windows® Azure ™ Embedded Windows Mobile
Agenda • Connected Experiences • Live Services Communications Services • Connected data through change notification • Connected devices through seamless P2P • Connected users through presence and activities
Connected Experiences • User Expectations • Integrated experiences that span devices, applications, browser-rich client • Device optimized experiences • Engineering Reality • Bootstrapping even simple scenarios is difficult • Lots of infrastructure required to get off the ground • Lack of common interoperable services • Result for users • Devices, applications and services create islands on which users must survive
Getting Off The Island … • Services and devices working together to deliver connected experiences • Unlock data for anywhere access • Light up devices with consistent capabilities • Connect data and devices through services • Connectivity and communication is key • Proximity - close the gaps between data and devices • Engaging - relevant information to enliven experiences • Communication Services • Connecting devices, data and users through a consistent, approachable framework
demo Connected Media Center Experience
Communication Services • Powering connected experiences • Connected Data • Subscription and Change Notification Servicesto connect applications to the data that matters • Connected Devices • Overlay Communication Network and P2Pto connect devices and enable data transfer • Connected Users • Awareness and Activity Services to connect users through presence and shared activities
Subscriptions and Notifications Simple … Scalable … Resilient
Subscriptions and Notifications Overview Subscription Service Queue Service Fanout Subscribe Change Storage Storage Storage Resource Managers Storage Device Connectivity Others Transports Http Tcp … Live fx Notification Subscribe Devices
Scale and Recovery • Notifications Scale • Horizontal scale through partitioning and instance management • Consistent hashing for resource addressing • All stored as in-memory tables, TTLs enforced • Failure Modes and Recovery • State loss – Subscription instances go down • Queue loss – Queue service instances go down • Notification service will alert and recover
Lessons learned … Patch Tuesday + fixed TTLs == badness • Load on services after patch Tues • Rinse and repeat every 2hrs for Pub/Sub service
Notification ResoucresQueues and Subscriptions User Contacts Profiles Mesh n n Notification Queues News Items Apps Devices Mesh Objects n n n n n Mesh Object Notification Queue News n Subscribable Resources Members n Activities n Mappings n Data Feeds n Subscriptions n
demo Notification Queues and Subscriptions
P2P Communication Seamless … Secure … Reliable
P2P Connectivity Overview Live ID Messenger Identity Authority Live ID Relay Signal Channel Data Channel Device Connectivity Status Notification Queues Device Connectivity Notifications Accounts Signaling Data: Relay BobWork DougWork Data: LAN BobHome
P2P Scenario: Live Mesh Folders Live ID Messenger Live ID Relay Device Connectivity Status Notification Queues Storage Device Connectivity Notifications Accounts Signaling Data: Relay BobWork DougWork Data: LAN BobHome
.. Live/Mesh/Devices • <feed xml:base="https://www.mesh.com/Live/V0.1/" xmlns="http://www.w3.org/2005/Atom"> • <title type="text">Devices</title> • <id>uuid:426d06ca-34f8-4af7-bc69-2f21b2dc77a3;id=6981</id> • <updated>2008-10-22T18:33:55Z</updated> • … • <entry> • <id>3bacd7ab-bb32-4266-8165-71ce23999787</id> • <title type="text">JOHNMACLAPTOP</title> • <published>2008-09-24T18:21:59Z</published> • <updated>2008-09-24T18:21:59Z</updated> • <link rel="LiveFX/Subscription" title="LiveFX/Subscription" href="[subscription link]" /> • <link rel="self" title="self" href="[self link]" /> • <link rel="edit" title="edit" href="[edit link]" /> • <category term="Device" label="Device" scheme="LiveFX/Categories" /> • <content type="application/xml"> • <DeviceContentxmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://user.windows.net"> • <IsOnline>true</IsOnline> • <IsRemoteConnectionActive>true</IsRemoteConnectionActive> • <Type>computer</Type> • </DeviceContent> • </content> • </entry> • <entry> • <id>10e4a229-37eb-493e-a573-9218a6eaca9d</id> • <title type="text">JOHNMACTHINK</title> • … • </entry> • <entry> • <id>4362dfe2-a1d5-4ef5-ae58-dfc9a2476681</id> • <title type="text">JOHNMACRED</title> • … • </entry> • </feed> <title type="text">JOHNMACLAPTOP</title> <title type="text">JOHNMACTHINK</title> <title type="text">JOHNMACRED</title>
.. Live/Mesh/MeshObjects/[ID]/Mappings • <feed xml:base="https://www.mesh.com/Live/V0.1/" xmlns="http://www.w3.org/2005/Atom"> • <title type="text">Mappings</title> • <id>uuid:bf05a498-8cb2-44d5-8d10-ac27f3be15ee;id=1193</id> • … • <entry> • <id>urn:uuid:a1ee7458-9a08-469c-8b5d-e25034309c01</id> • <title type="text">Live Mesh Product Group</title> • <summary type="text"> • </summary> • <published>2008-10-13T16:54:25Z</published> • <updated>2008-10-13T16:54:25Z</updated> • <author> • <name>John Macintyre</name> • </author> • <link rel="LiveFX/MeshObject" title="LiveFX/MeshObject" href=[Mesh Object Link]" /> • <link rel="LiveFX/Device" title="LiveFX/Device" href=“[Device Link]" /> • <link rel="self" title="self" href=“[Self Link]" /> • <link rel="edit" title="edit" href=“[Edit Link]" /> • <link rel="LiveFX/AuthorProfile" title="LiveFX/AuthorProfile" href=“[Email Link]" /> • <category term="Mapping" label="Mapping" scheme="LiveFX/Categories" /> • <content type="application/xml"> • <MappingContentxmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://user.windows.net"> • <DataFeedMappings> • <DataFeedMapping> • <LocalPath>C:\Users\johnmac.000\Desktop\Live Mesh-Main\Live Mesh Product Group-meshmain</LocalPath> <Uri>Mesh/MeshObjects/LZFJK5REBNJENC3A6TUGBURBAI/DataFeeds/45636NMJZH6E5BS6W3QCTKOM7I</Uri> • </DataFeedMapping> • </DataFeedMappings> • <GhostingPolicy>UnghostedByDefault</GhostingPolicy> • </MappingContent> • </content> • <rights type="text"> • </rights> • </entry> • </feed> Title=“Livefx/Device" href="Mesh/Devices/ETFLJUTHSM5ENIEWOHYQK3NFIQ-4LPWEQ6VUH2U5LSY37E2ER3GQE"
Activity and News Services • Connecting Users through activities • High performance service for transient state • Presence information “Hey I’m online!” … “look at me now … interesting stuff over here!” • Publishers should also subscribe – state loss • Connecting Users through News • Durable “news worthy” state or state changes • Resource centric news items. “Bob added milk to the grocery list” • Common experiences and aggregation
demo Connecting Users through News
Key Takeaways Connected Data Intrinsic to the Livefx resource model is are notification and subscription services providing proximity to the data you care about Connected Devices Livefx platform provides a rich communication network to enable connected experiences bridging devices and the web Connected Users Activities, news and awareness servicesenable connected experiences that connect users through presence and activities
Call To Action • Get on the Live fx Tech Preview • Build new and extend existing experiences through Live fx • Sign up for the Live Mesh Beta • Most importantly … Give us your feedback please!
Evals & Recordings Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com
© 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.