Presentation is loading. Please wait.

Presentation is loading. Please wait.

 Emre Kıcıman Researcher Microsoft Corporation  Ethan Jackson Post Doc Researcher Microsoft Corporation.

Similar presentations


Presentation on theme: " Emre Kıcıman Researcher Microsoft Corporation  Ethan Jackson Post Doc Researcher Microsoft Corporation."— Presentation transcript:

1  Emre Kıcıman Researcher Microsoft Corporation  Ethan Jackson Post Doc Researcher Microsoft Corporation

2 Ajax View Doloto BAM

3  Ethan Jackson RiSE – MSR Redmond Microsoft Corporation  Wolfram Schulte RiSE – MSR Redmond Microsoft Corporation

4 1. Distributed Systems Programming 2. Web Development 3. Uncertainty of Computer Fabric 1. Distributed Systems Programming 2. Web Development 3. Uncertainty of Computer Fabric We want the “Internet-as-a-Platform,” but how can we: (1)Master necessary implementation technologies ? (2)Predict behavior of the overall application?

5 BAM provides technology-independent abstractions for modeling cloud applications. Ask the model how the system behaviors, pre-implementation. Then, synthesize implementation from the model.

6 A node is an independent process containing some structured data. The type of the node determines the type of data it can contain. MP3s Maps User Credentials Nodes can (logically) connect, making point- to-point information exchange possible. A cloud is a collection of these nodes. Operations modify data. Invariants check data for consistency. Nodes can initiate operations; one or more nodes may violate invariants.

7 Evolving Cloud Invariants and operations are understood over the maximal cliques; i.e. the largest pair-wise connected subgraphs. Union data on {2,6} then check invariants Union data on {0,1,2} then check invariants The system is stable is all maximal cliques satisfy invariants.

8 The maximal cliques are regions of the network that can directly work together to perform operations. Architect understands specs over highly symmetric, logically local regions of the cloud

9

10 Data Specs Operation Specs Access Policies Abstract database schema Declarative queries that identify inconsistent databases Set of operations that can manipulate the database Types of agents in the cloud Data access rights of each agent Communication capabilities of each agent Analysis, Simulation, Code generation BAM Technology-Independent Abstractions

11 1.Authorized users can view, create, and modify their documents, from a local client. (Data, Operations, Access Control) 2.Authorized users can manage their documents, even if not connected to a server. (Asymmetry, Connectivity) 3.One or more servers synchronize with clients to record the latest versions of document. (Consistency) Document Management System

12 We do not specify foreign keys or specific implementation of containment, etc…

13

14

15 Operations also query the database, but then modify it for each successful query.

16 Operations can be used to model synchronization actions.

17 The legal communication paths between agent types Data access rights for agent types.

18 Operations are extended over the cliques, but by applying data access rights first. Synchronize Operation Synchronize Operation Synchronize Operation Synchronize Operation Create New Document

19

20 Data Specs Operation Specs Access Policies Abstract Database Consistency Extension over maximal cliques What you provide – A BAM Model What it means – Powerful technology-independent abstraction What you get – Simulation and synthesized solution BAM Simulation and Implementation

21 We solve the integration problem once, and reuse through code generators and frameworks. Implementation time was 3 months by a summer intern.

22

23 Internet boundary PRNP allows one BAM node to discover other nodes with which it may interact..NET Remoting serves as the primary protocol layer by which nodes request connections and exchange data. Maximal cliques are calculated using a distributed algorithm with heartbeat messages to improve robustness of the overall system.

24 Microsoft Volta uses IL-level rewriting to automatically split a system into browser-side and server side tiers. Internet boundary Browser with single origin restriction Local lightweight web server Volta

25

26

27 70k lines of JavaScript code downloaded to the client. 2855 Functions ~ 1 MB code Talks to >14 backend services (traffic, images, search, directions, ads, …) Talks to >14 backend services (traffic, images, search, directions, ads, …)

28 Performance  Performance profiling  String optimization; cache placement; …  Code splitting and joining Debugging  Report function arguments, app state, errors  Memory leak checking  Statistical debugging Test  Code coverage  A/B tests Operations  Measure RPC network latencies User interaction feedback  What features are being used / discovered? Ajax View Power Tool coming soon ASP.Net plugin VS integration Cross-browser Focus: Perf profiling in test Ajax View Power Tool coming soon ASP.Net plugin VS integration Cross-browser Focus: Perf profiling in test

29 Goal: Detailed visibility into app behavior on client Approach: “On-the-fly” rewriting to add instrumentation No client-side changes. Work with existing web applications Low Overhead: Adapt/distribute instr. across users Ajax View Plugin/Proxy Ajax View Plugin/Proxy Instrumented Applications Instrumented Applications Logs

30 Users My Service 3 rd Party Service (Mashup, Ads, Gadgets, etc) Ajax View

31

32

33

34 LogTime(); FastFunc1(); FastFunc2(); SlowFunc(); LogTime(); LogTime(); FastFunc1(); LogTime(); FastFunc2(); LogTime(); SlowFunc(); LogTime(); If it’s slow FastFunc1(); FastFunc2(); SlowFunc(); … function SlowFunc() { // drill-down continues } Found it!

35 SiteCode Size (kB)# of FunctionsExec Time (ms) Maps maps.google.com2951935530 maps.live.com9242855190 Portals msn.com124592300 yahoo.com2781097670 google.com/ig135960190 protopages.com599186213780

36 Avg 30% reduction in CPU Overhead 95% Avg Reduction in Logging Bandwidth

37 1. Fine-grained control of per-user overhead 2. Trades-off detection time Baseline

38 End-to-end visibility into client-side web applications Requires no client-side/server-side changes Distribution and adaptation controls overhead While maintaining high coverage & detail Variety of instrumentation policies Performance profiler, memory leak checker, cache placement, … Download and extend the prototype http://research.microsoft.com/projects/ajaxview/ Supports plug-ins for new instrumentation policies

39

40 Up to 90% of a Web 2.0 app is JavaScript code!

41

42

43 1. [training] Runtime training to collect access profile (AjaxView Fiddler plugin) 2.[rewriting] Function rewriting or “stubbing” for on-demand code loading 3.[prefetch] Background prefetch of clusters as the application is running

44 Automated Function Splitting eval($exp(“f1”), “”); // 21 chars

45 Size Savings With Doloto

46 Runtime Savings With Doloto

47

48 For papers, presentations, and downloads: http://research.microsoft.com/~ejackson/bam.htm http://research.microsoft.com/projects/ajaxview/ http://research.microsoft.com/projects/doloto/

49 Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com

50

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

52


Download ppt " Emre Kıcıman Researcher Microsoft Corporation  Ethan Jackson Post Doc Researcher Microsoft Corporation."

Similar presentations


Ads by Google