Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 ParaView Current Architecture and History Current Architecture and History Issues with the Current Design Issues with the Current Design.

Similar presentations


Presentation on theme: "1 ParaView Current Architecture and History Current Architecture and History Issues with the Current Design Issues with the Current Design."— Presentation transcript:

1 1 ParaView Current Architecture and History Current Architecture and History Issues with the Current Design Issues with the Current Design

2 2 ParaView Project Goals Develop an open-source, multi- platform visualization application Develop an open-source, multi- platform visualization application Support distributed computation models to process large datasets Support distributed computation models to process large datasets Create an open, flexible and intuitive user interface Create an open, flexible and intuitive user interface Develop an extensible architecture based on open standards Develop an extensible architecture based on open standards

3 3 ParaView Architecture Parallel VTK as IO, processing and rendering engine Parallel VTK as IO, processing and rendering engine MPI and TCP/IP as network communication MPI and TCP/IP as network communication Tcl as scripting language Tcl as scripting language KW widgets as GUI KW widgets as GUI

4 4 ParaView Architecture XML configurable, extensible GUI XML configurable, extensible GUI User extensible, open source engine (VTK) User extensible, open source engine (VTK) Tool for end-users as well as developers who want to deploy algorithms Tool for end-users as well as developers who want to deploy algorithms

5 5 Evolution of Architecture Old architecture Old architecture MPI On accept: vtkSphereSource sphere0 sphere0 SetPhiResolution 256 On reset: this->Script(“sphere0 GetResolution”); int val = atoi(this->SetValue(this->GetLastResult)); vtkSphereSource sphere0 sphere0 SetPhiResolution 256 vtkSphereSource sphere0 sphere0 SetPhiResolution 256

6 6 Evolution of Architecture Added client/server support Added client/server support

7 7 Motivation Problems with old architecture Problems with old architecture –Tcl based communication: String based. Imprecise and inefficient. String based. Imprecise and inefficient. Standard Tcl interpreter is not secure. Standard Tcl interpreter is not secure. –Dummy pipeline on client: VTK pipeline objects are not designed to only store state. Some objects misbehave when disconnected or empty. VTK pipeline objects are not designed to only store state. Some objects misbehave when disconnected or empty. Communication with server is still necessary to obtain information about distributed data. Communication with server is still necessary to obtain information about distributed data. Client must be linked to all VTK + VTK Tcl libs Client must be linked to all VTK + VTK Tcl libs

8 8 Goals Binary communication with server where possible Binary communication with server where possible Replace empty pipeline on client with a proxy representation Replace empty pipeline on client with a proxy representation Separation of pipeline management from GUI to support multiple client types Separation of pipeline management from GUI to support multiple client types Provide default implementation of complicated, parallel pipeline and rendering architecture to make client development easy and to reuse code Provide default implementation of complicated, parallel pipeline and rendering architecture to make client development easy and to reuse code

9 9 ParaView Architecture

10 10 ParaView Architecture Data/render server: Data/render server: –C++ –Client/server wrapping –No direct access Server manager: Server manager: –C++ API –XML configuration –Tcl, Python or Java scripting (optional)

11 11 ParaView Architecture Desktop Client: Desktop Client: –KWWidgets (Tcl/Tk and C++) –Tcl scripting of GUI –XML configuration of GUI Web Client: Web Client: –DHTML/JavaScript –Server code uses Python

12 12 ServerManager Design Proxies – VTK objects Proxies – VTK objects –Example: Sphere Properties – Attributes of VTK objects Properties – Attributes of VTK objects –Example: Radius Domains – Restrictions on values Domains – Restrictions on values –Example: Numbers greater than 0

13 13 Server Manager Design

14 14 SM: Proxies Based on proxy design pattern Based on proxy design pattern Proxies are responsible of Proxies are responsible of –Creating server-side VTK objects –Maintaining references to server-side VTK objects using ids –Maintaining a copy of the state of the server-side objects using properties

15 15 SM: Properties Maintain the state of the attributes of the server-side objects Maintain the state of the attributes of the server-side objects Each property has a set of values and one or more commands to set or get them Each property has a set of values and one or more commands to set or get them Regular and information properties Regular and information properties

16 16 SM: Properties

17 17 GUI Design – Main Classes vtkPVApplication vtkPVApplication vtkPVWindow (main window) vtkPVWindow (main window) vtkPVRenderView (render window, interaction) vtkPVRenderView (render window, interaction) vtkPVSource (source/filter proxy) vtkPVSource (source/filter proxy) vtkPVDisplayGUI (display proxy) vtkPVDisplayGUI (display proxy) vtkPVWidget (property) vtkPVWidget (property)

18 18 GUI Architecture vtkPVSource and sub-classes implement : vtkPVSource and sub-classes implement : –Accept() : push GUI values to server manager then push server manager values to server –Reset() : update the GUI from the server manager vtkPVWidget and sub-classes follow the same pattern with SM properties. vtkPVWidget and sub-classes follow the same pattern with SM properties.

19 19 GUI Architecture PVSources and PVWidgets are created on the fly based on GUI XML description PVSources and PVWidgets are created on the fly based on GUI XML description GUI events are stored in trace files. GUI events are stored in trace files. GUI state is stored in state files. GUI state is stored in state files.

20 20 GUI Design Issues Incomplete implementation of MVC pattern: Incomplete implementation of MVC pattern: –GUI (view) can be only partially updated from SM (model) –PVSource can be updated using Reset() –Other pages cannot be updated from SM –GUI pages corresponding to proxy should exist to be updated

21 21 GUI Design Issues Inconsistent access of SM proxies: Inconsistent access of SM proxies: –PVSource and PVWidgets use Accept()/Reset() –PVDisplayGUI and other pages push values immediately

22 22 GUI Design Issues Rigid GUI design Rigid GUI design –Access to different types of proxies is different and hard-coded –Proxy/property interface is simple –GUI elements to access any type of proxy should be uniform, simple and XML configurable

23 23 GUI Design Issues Code duplication Code duplication –Many sub-classes of vtkPVWidget that duplicate functionality of KWWidgets –Trace, state and batch follow separate paths although they perform very similar functions


Download ppt "1 ParaView Current Architecture and History Current Architecture and History Issues with the Current Design Issues with the Current Design."

Similar presentations


Ads by Google