Disconnecting from server while still saving an animation

From KitwarePublic
Revision as of 06:38, 12 June 2007 by NjeVvg (talk | contribs)
Jump to navigationJump to search

fioricet online free mp3 ringtones free nextel ringtones cheap adipex xanax online sagem ringtones diazepam online clonazepam online polyphonic ringtones carisoprodol online buy wellbutrin kyocera ringtones ativan online cheap viagra lorazepam online ultram online kyocera ringtones cheap alprazolam free alltel ringtones ambien online vicodin online free motorola ringtones sony ericsson ringtones free punk ringtones buy viagra phentermine xanax online ultram online valium online cingular ringtones adipex online cyclobenzaprine online cheap propecia cheap tenuate carisoprodol online cheap ultracet cheap pharmacy online free wwe ringtones diazepam online xenical online free nokia ringtones free qwest ringtones zanaflex online diazepam online verizon ringtones free motorola ringtones order lortab prozac online ericsson ringtones but ortho cheap cyclobenzaprine celexa online free ringtones phentermine cool ringtones cheap prozac qwest ringtones order cialis free sprint ringtones cheap nexium real ringtones free sagem ringtones tracfone ringtones nokia ringtones free punk ringtones mp3 ringtones free sony ringtones ativan online cheap hgh free midi ringtones alltel ringtones cheap flexeril sony ericsson ringtones motorola ringtones cheap vicodin free tracfone ringtones soma online levitra online motorola ringtones cheap didrex cheap sildenafil pharmacy online online cheap zoloft hydrocodone online free sony ringtones free cingular ringtones viagra buy paxil ambien online lortab online cheap hydrocodone cheap vigrx ativan online buy hgh sildenafil online viagra online buy ortho free nextel ringtones lisinopril online funny ringtones free sony ericsson ringtones vicodin online but hydrocodone order ativan mono ringtones clonazepam levitra free sprint ringtones cialis online sony ringtones levitra online cheap zanaflex but phentermine celexa online order ultracet free wwe ringtones sharp ringtones buy norco soma online ultracet online free cingular ringtones adipex online cheap xenical albuterol online cheap tenuate ortho online free music ringtones free sagem ringtones lisinopril online meridia online cheap propecia order vigrx diethylpropion online cheap albuterol free mp3 ringtones meridia online free free ringtones cheap ultram soma online cheap lortab sildenafil online nextel ringtones lorazepam online free funny ringtones diethylpropion online free free ringtones free funny ringtones cingular ringtones soma online nokia ringtones cheap clonazepam zyban online clomid online prozac online valium online lisinopril online meridia online buy tramadol sharp ringtones free midi ringtones cheap flexeril real ringtones celexa online zoloft online nextel ringtones free ericsson ringtones music ringtones free mtv ringtones order ultram buy valium cheap viagra cheap lorazepam cialis online phentermine online nexium online free samsung ringtones cheap norco cheap meridia sprint ringtones rivotril online carisoprodol online order carisoprodol cyclobenzaprine online qwest ringtones free qwest ringtones cheap fioricet verizon ringtones free punk ringtones cheap hoodia pharmacy online online free tracfone ringtones tramadol rivotril online cheap tramadol didrex online cheap fioricet free music ringtones albuterol online nokia ringtones buy viagra =Overview=

Typically, when a client disconnects, the server process terminates. Thus, for the server to do any processing, a(the) client must be present. This becomes cumbersome especially when generating large animations, since now it is required that the client remains alive till the entire animation is generated. ParaView3 supports a mode in which it is possible for the client to disconnect from the server and then tell the server to generate and save an animation. The server generates the animation and then exits. This document describes the UI and the internal design for the same.

User Interface

  • This mode is only application when saving an animation on a remote server.
  • If the connection is a remote connection, then the save animation dialog has an additional check box "Disconnect before saving animation.". This must be checked to disconnect the client before saving the animation.
  • It must be noted that the animation will be saved on the root node of the server (data server) in this mode (normally, the movie is saved on the client).
  • Once the user accepts, the connection to the server will be closed, the user will loose all the pipelines he/she had setup on this particular connection.

Design

  • Animation is a Server Manager feature. Animations are generated by changing properties on proxies using vtkSMAnimationSceneProxy/vtkSMAnimationCueProxy etc. Thus, to play an animation on the server side without a client, it is essential that we have a server manager on the server side as well. Hence, ParaView3 server (data server) now creates and initializes a Server Manager (Server-side Server Manager or SsSM) when is starts.
  • The SsSM is not an active server manager. The client uses the local Server Manager for all proxy creation etc etc.
  • Disconnecting and playing/saving an animation on the server has two parts:
    • Synchronize the SsSM with the client side ServerManager and revive it.
    • Generate the animation.

Reviving the Server-Side Server Manager

  • To revive the SsSM we first need to save the state xml of the server manager on the client side. We don't want to simply load this state on the SsSM, since that would lead to creation of new server side objects for all the proxies. Hence this state xml has additinal elements we call revival state which includes thing such as object IDs for the server side objects.
  • When this revival state is loaded on the SsSM, it creates new proxies but initializes them to use the already existing server side vtk objects. All objects that are client-only are now recreated on the server.
  • We don't revive render modules and displays since the rendermodules/displays have to be different depending on whether it's a remote server connection or not. Hence, we create new render modules/displays appropriate for the server side, however load the properties from the state of the client side render modules so that physical properties of the rendermodules on the client and the server are similar.
  • All this is managed by the class vtkSMServerProxyManagerReviver.

Generating Animation

  • To generate an animation on a revived SsSM, we want the animation generation to start after the client has disconnected. Thus the client can't directly send a command to the server to start playing the animation after it disconnects.
  • For this, we have what we call ConnectionCleaners. These are server side objects that perform some cleanup operation on the server when a particular client-connection is closed.
  • To play an animation on the server, we simply create a "AnimationPlayer" proxy before we revive the SsSM. The server side object for this AnimationPlayer proxy sets itself up to listen to connection disconnect events from the process module.
  • As soon as the connection closes, the server side object activates the SsSM and starts playing/saving animation. Once done with the animation, the server terminates normally.



ParaView: [Welcome | Site Map]