Design and Implementation of Frameworks for Distributed Interactive Applications - PowerPoint PPT Presentation

About This Presentation
Title:

Design and Implementation of Frameworks for Distributed Interactive Applications

Description:

Design and Implementation of Frameworks for Distributed Interactive ... Digging Deeper. User Action. Controller. View. Procedure Call or. Method Invocation, ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 38
Provided by: petera45
Category:

less

Transcript and Presenter's Notes

Title: Design and Implementation of Frameworks for Distributed Interactive Applications


1
Design and Implementation of Frameworks for
Distributed Interactive Applications
  • Peter A. Dinda

2
Outline
  • Interactive application model
  • Distributing interactive applications
  • Method invocation framework
  • Mapping engine framework
  • Early IDL Extensions
  • Early Performance measurements

3
Interactive Application Model
Display This Response
View
Model (Simulation)
User Action
Controller
Execute This Code
4
Whats Important
How Does It Look?
View
How Long Does It Take?
Model (Simulation)
Controller
5
Digging Deeper
View
User Action
Activation Tree
Controller
Procedure Call or Method Invocation, pick your
poison
6
Concentration
View
User Action
Controller
Controller
Rest of Talk
7
Distributed Interactive Applications Freedom and
Complexity
Flexible Data Movement
?
Controller
Controller
?
?
Flexible Binding
Flexible Mapping
8
The Framework Behind The Call
Quality Modulator
State
Calling Object
Object
9
Shared State Objects
Quality Modulator
Object Section
Object Section
Object Section
Object
10
Shared State Objects
Quality Modulator
Object
11
Method Invocation Begins
Quality Modulator
Method Invocation
Calling Object
User Action
Object
12
Mapping the Invocation
Quality Modulator
Object Section
Map Request
Object
Resource Info
Dist. Info
13
Mapping the Invocation
Quality Modulator
Adjust Quality
Select
Move Args
Redistribute
Object
14
Data Movement
Quality Modulator
Object Section
Object Section
Move State
Object
15
Execution
Quality Modulator
Object Section
Object Section
Object Section
Object
16
Execution Completed
Quality Modulator
Object Section
Object Section
Object Section
Object
17
Data Movement
Stream Sender
Quality Modulator
Object Section
Object Section
Object Section
Object
18
Data Display
Stream Sender
Quality Modulator
Object Section
Object Section
Object Section
Object
19
Mapping a Method Invocation to Optimize User
Satisfaction
  • Degrees of freedom
  • Binding of call to implementation
  • Mapping of execution to a node
  • Quality modulation parameters
  • Constraints
  • Available resources and implementations
  • Space of quality modulation parameters

20
The Mapping Engine
Mapping Request
Application Quality Parameters
Application Quality Parameter Constraints
Binding
Available Implementations
Mapping
Dist. Info
Measured User Satisfaction
User Prefs
Resource Info
21
Structure of the Mapping Engine
AQP Constraints
Implementation Constraints
Mapping Request
Selection Heuristic
User Satisfaction Estimate
Objective Function (Estimates User Satisfaction)
Current State
Dist. Info
Measured User Sat.
User Prefs
Resource Info
  • AQPs
  • Binding
  • Mapping

22
AQP1
AQP2



Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
23
AQP1
AQP2



Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
24
AQP1
AQP2



Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
25
AQP1
AQP2



Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
26
AQP1
AQP2



Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
27
AQP1
AQP2



Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
28
When a method is invoked on the model, choose
AQP1AQPn, mapping, and binding such that the
satisfaction estimate is maximized given the
contraints imposed by the ranges of AQP1AQPn ,
the available candidate mappings, and resource
availability and state distributions.
Over the lifetime of application execution,
modify the user satisfaction transfer functions
based on changing User Preferences, improve the
Satisfaction Estimator based on actual measured
Satisfaction, and improve the Response Time
Estimator based on actual response time
measurements.
29
Extending OMG CORBA IDL for My Nefarious Purposes
  • Interface options
  • Variable size arrays
  • State declarations
  • Operation state use declarations

30
Interface Options
  • Object attributes
  • Serializeable, Mobile, Persistent, Secure,
    Replicable
  • Communication attributes
  • HTTP, UDP, TCP
  • ConnectionOriented
  • Nannyed
  • Distributed

31
Interface Option Examples
  • interface Quoter TCP, HTTP
  • interface AudioSimulation2D Nannyed,
    Distributed
  • interface ConvolutionEngine Nannyed, Replicable

32
Variable sized arrays
  • struct ImpulseResponse
  • unsigned long numsamples
  • double samplevariablenumsamples

33
State Declarations
  • interface AudioSimulation2D Nannyed,
    Distributed
  • state SpaceAttributes
  • unsigned long numboundaryrects
  • unsigned long sizex
  • unsigned long sizey
  • state SimulationSpace
  • double space3variablesizeyvariablesizex
  • state ImpulseResponses
  • ImpulseResponse responsesvariablenum_sources

  • variablenum_listeners

34
State Use Declarations
  • interface AudioSimulation2D Nannyed,
    Distributed
  • void Compute(in unsigned long numiters)
  • reads SpaceAttributes,SourceAttributes,
  • ListenerAttributes,Bound
    aryInfo
  • writes SimulationSpace,
    ImpulseResponses
  • modifies SimulationAttributes

35
Method Invocation Throughput
Null Call, No Arguments, 200 MHz Ppro, NT 4.0,
VC 4.2
36
Data Transfer Throughput
Process to Process, 256 KB argument, No
Conversion, 200 MHz Ppro, NT 4.0, VC 4.2
37
Conclusions
  • IDL compiler supports extensions
  • Currently extending run-time
Write a Comment
User Comments (0)
About PowerShow.com