Title: Design and Implementation of Frameworks for Distributed Interactive Applications
1Design and Implementation of Frameworks for
Distributed Interactive Applications
2Outline
- Interactive application model
- Distributing interactive applications
- Method invocation framework
- Mapping engine framework
- Early IDL Extensions
- Early Performance measurements
3Interactive Application Model
Display This Response
View
Model (Simulation)
User Action
Controller
Execute This Code
4Whats Important
How Does It Look?
View
How Long Does It Take?
Model (Simulation)
Controller
5Digging Deeper
View
User Action
Activation Tree
Controller
Procedure Call or Method Invocation, pick your
poison
6Concentration
View
User Action
Controller
Controller
Rest of Talk
7Distributed Interactive Applications Freedom and
Complexity
Flexible Data Movement
?
Controller
Controller
?
?
Flexible Binding
Flexible Mapping
8The Framework Behind The Call
Quality Modulator
State
Calling Object
Object
9Shared State Objects
Quality Modulator
Object Section
Object Section
Object Section
Object
10Shared State Objects
Quality Modulator
Object
11Method Invocation Begins
Quality Modulator
Method Invocation
Calling Object
User Action
Object
12Mapping the Invocation
Quality Modulator
Object Section
Map Request
Object
Resource Info
Dist. Info
13Mapping the Invocation
Quality Modulator
Adjust Quality
Select
Move Args
Redistribute
Object
14Data Movement
Quality Modulator
Object Section
Object Section
Move State
Object
15Execution
Quality Modulator
Object Section
Object Section
Object Section
Object
16Execution Completed
Quality Modulator
Object Section
Object Section
Object Section
Object
17Data Movement
Stream Sender
Quality Modulator
Object Section
Object Section
Object Section
Object
18Data Display
Stream Sender
Quality Modulator
Object Section
Object Section
Object Section
Object
19Mapping 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
20The Mapping Engine
Mapping Request
Application Quality Parameters
Application Quality Parameter Constraints
Binding
Available Implementations
Mapping
Dist. Info
Measured User Satisfaction
User Prefs
Resource Info
21Structure 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
22AQP1
AQP2
Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
23AQP1
AQP2
Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
24AQP1
AQP2
Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
25AQP1
AQP2
Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
26AQP1
AQP2
Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
27AQP1
AQP2
Satisfaction Estimator
AQPn
Compression Estimator
Response Time Estimator
Mapping
Binding
User Satisfaction
User Prefs
Distribution
Resources
28When 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.
29Extending OMG CORBA IDL for My Nefarious Purposes
- Interface options
- Variable size arrays
- State declarations
- Operation state use declarations
30Interface Options
- Object attributes
- Serializeable, Mobile, Persistent, Secure,
Replicable - Communication attributes
- HTTP, UDP, TCP
- ConnectionOriented
- Nannyed
- Distributed
31Interface Option Examples
- interface Quoter TCP, HTTP
- interface AudioSimulation2D Nannyed,
Distributed - interface ConvolutionEngine Nannyed, Replicable
-
32Variable sized arrays
- struct ImpulseResponse
- unsigned long numsamples
- double samplevariablenumsamples
33State 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 -
34State Use Declarations
- interface AudioSimulation2D Nannyed,
Distributed - void Compute(in unsigned long numiters)
- reads SpaceAttributes,SourceAttributes,
- ListenerAttributes,Bound
aryInfo - writes SimulationSpace,
ImpulseResponses - modifies SimulationAttributes
35Method Invocation Throughput
Null Call, No Arguments, 200 MHz Ppro, NT 4.0,
VC 4.2
36Data Transfer Throughput
Process to Process, 256 KB argument, No
Conversion, 200 MHz Ppro, NT 4.0, VC 4.2
37Conclusions
- IDL compiler supports extensions
- Currently extending run-time