1 / 37

Design and Implementation of Frameworks for Distributed Interactive Applications

Design and Implementation of Frameworks for Distributed Interactive Applications. Peter A. Dinda. Outline. Interactive application model Distributing interactive applications Method invocation framework Mapping engine framework Early IDL Extensions Early Performance measurements.

brianwoods
Download Presentation

Design and Implementation of Frameworks for Distributed Interactive Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. What’s 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. Stream Sender Stream Receiver Mapping Engine Resource Manager (REMULAC) Distributed Shared State System The Framework Behind The Call Quality Modulator State Calling Object Object

  9. Stream Sender Stream Receiver Calling Object Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Shared State Objects Quality Modulator Object Section Object Section Object Section Object

  10. Shared State Objects Stream Sender Stream Receiver Object Section Object Section Calling Object Object Section Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Quality Modulator Object

  11. Stream Sender Stream Receiver Object Section Object Section Object Section Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Method Invocation Begins Quality Modulator Method Invocation Calling Object User Action Object

  12. Stream Sender Stream Receiver Object Section Calling Object Object Section Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Mapping the Invocation Quality Modulator Object Section Map Request Resource Info Dist. Info Object

  13. Mapping the Invocation Stream Sender Stream Receiver Object Section Object Section Calling Object Object Section Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Quality Modulator Adjust Quality Select Move Args Redistribute Object

  14. Data Movement Stream Sender Stream Receiver Object Section Calling Object Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Quality Modulator Object Section Object Section Move State Object

  15. Execution Stream Sender Stream Receiver Calling Object Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Quality Modulator Object Section Object Section Object Section Object

  16. Execution Completed Stream Sender Stream Receiver Calling Object Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Quality Modulator Object Section Object Section Object Section Object

  17. Data Movement Stream Receiver Calling Object Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Quality Modulator Stream Sender Object Section Object Section Object Section Object

  18. Data Display Stream Receiver Calling Object Mapping Engine Resource Manager (REMULAC) Distributed Shared State System Quality Modulator Stream Sender 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 User Prefs Measured User Satisfaction Resource Info

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

  22. AQP1 AQP2 … … … Satisfaction Estimator AQPn Compression Estimator Response Time Estimator Mapping Binding User Prefs User Satisfaction Distribution Resources

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

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

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

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

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

  28. When a method is invoked on the model, choose AQP1…AQPn, mapping, and binding such that the satisfaction estimate is maximized given the contraints imposed by the ranges of AQP1…AQPn , 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 sample[variable:numsamples]; };

  33. State Declarations interface AudioSimulation2D [Nannyed, Distributed] { state SpaceAttributes { unsigned long numboundaryrects; unsigned long sizex; unsigned long sizey; }; state SimulationSpace { double space[3][variable:sizey][variable:sizex]; }; state ImpulseResponses { ImpulseResponse responses[variable:num_sources] [variable:num_listeners]; };

  34. State Use Declarations interface AudioSimulation2D [Nannyed, Distributed] { void Compute(in unsigned long numiters) reads {SpaceAttributes,SourceAttributes, ListenerAttributes,BoundaryInfo} 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 • …

More Related