NA-MIC National Alliance for Medical Image Computing ParaView Server Manager Berk Geveci Andy Cedilnik.

Slides:



Advertisements
Similar presentations
National Alliance for Medical Image Computing Slicer3 Architecture.
Advertisements

Real-time Collaborative Scientific WebGL Visualization with WebSocket Julien Jomier & Charles Marion Web3D Conference 2012.
Session 13 Active Server Pages (ASP) Matakuliah: M0114/Web Based Programming Tahun: 2005 Versi: 5.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Interactive Modules Steve Pieper, PhD.
1 CS 502: Computing Methods for Digital Libraries Lecture 22 Web browsers.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved L22 (Chapter 25) Networking.
Definitions, Definitions, Definitions Lead to Understanding.
WNT Client/Server SDK Tony Vaccaro CS699 Project Presentation.
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Networking with Java CSc 335 Object-Oriented Programming and Design Spring 2009.
1 ParaView Current Architecture and History Current Architecture and History Issues with the Current Design Issues with the Current Design.
UNIT-V The MVC architecture and Struts Framework.
Remote Visualization of Large Datasets with MIDAS & ParaViewWeb Web3D – Paris 2011 Julien Jomier, Kitware
INTRODUCTION TO WEB DATABASE PROGRAMMING
 2000 Deitel & Associates, Inc. All rights reserved. Chapter 24 – Web Servers (PWS, IIS, Apache, Jigsaw) Outline 24.1Introduction 24.2Microsoft Personal.
1 Servlet How can a HTML page, displayed using a browser, cause a program on a server to be executed?
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
MVC pattern and implementation in java
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
XHTML Introductory1 Forms Chapter 7. XHTML Introductory2 Objectives In this chapter, you will: Study elements Learn about input fields Use the element.
JavaScript, Fourth Edition Chapter 12 Updating Web Pages with AJAX.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
Developing Axis based Web Services using Eclipse 3.3 Saurabh Mittal Feb 28, 2008.
An program As a simple example of socket programming we can implement a program that sends to a remote site As a simple example of socket.
DNA REASSEMBLY Using Javaspace Sung-Ho Maeung Laura Neureuter.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
CSCI 6962: Server-side Design and Programming Web Services.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
Lecture 15 Introduction to Web Services Web Service Applications.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 6 - Tutorial Guided Tutorial.
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
Grid Security in a production environment: 4 years of running Andrew McNab University of Manchester.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Title Carolina First Steering Committee October 9, 2010 Online Voting System Design Yinpeng Li and Tian Cao May 3, 2011.
Extraction Tools and Relational Database Schemas for CVS, SVN, and Bazaar Revision Control Systems.
WebObjects Matt Aguirre Lally Singh. What Is It? A Java based development platform specifically designed for database-backed web applications.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
1 ParaView Future, vision, …. 2 ParaView Architecture.
NetChat Communications Systems Steven Fuqua Barnett Trzcinski Andy Street.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
Network Programming. These days almost all devices.
Introduction to Group Policy Lesson 7. Group Policy Group Policy is a method of controlling settings across your network. – Group Policy consists of user.
11 DEPLOYING AN UPDATE MANAGEMENT INFRASTRUCTURE Chapter 6.
In-situ Visualization using VisIt
Chapter 27 WWW and HTTP.
Introduction to Group Policy
Snippet Engine as a Database Server
Presentation transcript:

NA-MIC National Alliance for Medical Image Computing ParaView Server Manager Berk Geveci Andy Cedilnik

National Alliance for Medical Image Computing Outline Evolution of ParaView –Early ParaView –Server manager Server Manager –Design –Implementation

National Alliance for Medical Image Computing Parallel visualization application for large data Open source, cross-platform Distributed data model

National Alliance for Medical Image Computing ParaView Basics Uses MPI for server inter-node communication Uses sockets for client-server communication Clients using KWWidgets, Qt as well as web browser Server manager: –C++ API –XML configuration –Tcl, Python or Java scripting (optional) KWWidgets client: –Tcl scripting of GUI –XML configuration of GUI

National Alliance for Medical Image Computing Early ParaView No client. First node of the server also hosts GUI All nodes, including client (first) node have all process objects (readers, filters, mappers…) and Tcl commands to access them First node translates GUI actions to VTK Tcl commands and all nodes process these commands The state of the pipeline is read back using VTK Tcl commands

National Alliance for Medical Image Computing Early ParaView 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

National Alliance for Medical Image Computing Lessons Learned: Client-Server Separation It is not always possible to access the display of the first node of a supercomputer Separate client. Client connects to server through TCP/IP socket Client does not hold data, only GUI Client has a dummy, empty pipeline to store state Client sends VTK Tcl commands to server

National Alliance for Medical Image Computing Client-Server Separation MPI TCP/IP On accept: vtkSphereSource sphere0 sphere0 SetPhiResolution 256 On reset: this->Script(“sphere0 GetResolution”); this->SetValue(this->GetLastResult);

National Alliance for Medical Image Computing Lessons Learned: Issues Tcl based communication: –String based. Imprecise and inefficient. –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. –Communication with server is still necessary to obtain information about distributed data. –Client must be linked to all VTK + VTK Tcl libs.

National Alliance for Medical Image Computing Server Manager Objectives: Binary communication with server where possible Replace empty pipeline on client with a proxy representation 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

National Alliance for Medical Image Computing Client-Server Streams Simple communication mechanism Binary (except method names) Only allows access to selected VTK objects (can be made secure) vtkClientServerStream stream; stream << vtkCSS::New << “vtkSphereSource” << id << vtkCSSEnd; stream << vtkCSS::Invoke << id << “SetResolution” << 256 << vtkCSS:End; interpreter->ProcessStream(stream); or communicator->Send(stream);

National Alliance for Medical Image Computing Server Manager - Proxies Based on proxy design pattern 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

National Alliance for Medical Image Computing Server Manager - Properties Maintain the state of the server-side objects Each property has a set of values and one or more commands to set or get them

National Alliance for Medical Image Computing Server Manager – Proxy Manager Responsible of maintaining proxies Configured through xml description files Provides API to create and initialize proxies Provides API to save state as xml

National Alliance for Medical Image Computing Server Manager - Example <IntVectorProperty name="PhiResolution" command="SetPhiResolution" number_of_elements="1" default_values="8" >

National Alliance for Medical Image Computing Server Manager Example vtkSMProxy* sphereProxy = vtkSMObject::GetProxyManager()->NewProxy(“sources”, “SphereSource”)); vtkSMIntVectorPropery* prop = sphereProxy->GetProperty(“PhiResolution”); int curVal = prop->GetElement(0); cout << “Current value: “ << curVal << endl; int val=256; int res = prop->SetElement(0, val); if (!res) { cerr << “Value “ << val << “ is not valid” << endl; return; } sphereProxy->UpdateVTKObjects();

National Alliance for Medical Image Computing Server Manager Example NewProxy(): Creates a proxy and associated properties based on xml, client side only UpdateVTKObjects(): –First time: Creates actual VTK objects on all associated server nodes –Pushes modified property values to all nodes

National Alliance for Medical Image Computing Server Manager - Summary Creates and maintains VTK objects on one or more server nodes Maintains state on the client side and synchronizes the state with server (push or pull) Provides domain checking Animation support Specially designed to work with parallel VTK Has default composite proxies designed for –parallel processing –rendering: sort-first, sort-list, large tiled display modules Helper classes to gather information from server (for example, total bounds or total number of points of a distributed data object) Configurable through xml (compile-time or run-time) Supports loading of modules in the form of dynamic libraries (libraries are loaded on server side)

National Alliance for Medical Image Computing Resources ParaView mailing list ParaView Guide