VAPOR 3.0 Architecture Overview. Purpose of this document Provide understandable overview of 3.0 architecture Enable the development team to maintain.

Slides:



Advertisements
Similar presentations
Introduction to Eclipse. Start Eclipse Click and then click Eclipse from the menu: Or open a shell and type eclipse after the prompt.
Advertisements

OO Programming in Java Objectives for today: Overriding the toString() method Polymorphism & Dynamic Binding Interfaces Packages and Class Path.
NA-MIC National Alliance for Medical Image Computing 3D Slicer Interactive Modules Steve Pieper, PhD.
1 Chapter 12 Working With Access 2000 on the Internet.
AJAX & By – Anupama Sharma. Defining Ajax Ajax isn’t a technology. It’s really several technologies, each flourishing in its own right, coming together.
Mark Graves Leveraging Existing DBMS Storage for XML DBMS.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Tutorial 11: Connecting to External Data
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
Abstraction: Polymorphism, pt. 1 Abstracting Objects.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Jason Morrill NCOAUG Training Day February, 2008
Written by Liron Blecher
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 9 JavaServer Pages (JSP) (Based on Møller.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
JDBC Vs. Java Blend Presentation by Gopal Manchikanti Shivakumar Balasubramanyam.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Module 3: Table Selection
Java Beans.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
OOPs Object oriented programming. Based on ADT principles  Representation of type and operations in a single unit  Available for other units to create.
An Object-Oriented Approach to Programming Logic and Design
Posting XML Data From the Client to a Server Eugenia Fernandez IUPUI.
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Working with the XML Document Object Model ©NIITeXtensible Markup Language/Lesson 7/Slide 1 of 44 Objectives In this lesson, you will learn to: *Identify.
© 2005 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. Data Structures for Java William H. Ford William R. Topp Appendix E The EZJava.
Murach’s ASP.NET 4.0/VB, C1© 2006, Mike Murach & Associates, Inc.Slide 1.
Tot 15 LTPDA Graphic User Interface summary and status N. Tateo 26/06/2007.
Chapter One An Introduction to Visual Basic 2010 Programming with Microsoft Visual Basic th Edition.
MERCURY BUSINESS PROCESS TESTING. AGENDA  Objective  What is Business Process Testing  Business Components  Defining Requirements  Creation of Business.
Oracle 10g Database Administrator: Implementation and Administration Chapter 2 Tools and Architecture.
Oracle Data Integrator Procedures, Advanced Workflows.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Object-to-Relational Mapping: The Crossing Chasms Pattern and Implementation Considerations Use of Meta Data in the Java Persistence Layer Presented by.
INTERFACES More OO Concepts. Interface Topics Using an interface Interface details –syntax –restrictions Create your own interface Remember polymorphism.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
Overview of Vapor GUI 3.0. Overview Current code is “work in progress”: – Demonstration of feasibility of 3.0 API – Needs more work to become a framework.
Geospatial Systems Design and UML Or Looking at “OMT-G: An Object-Oriented Data Model for Geographic Applications” by Karla A.V. Borges, Clodoveu A. Davis.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
Connect. Communicate. Collaborate PerfsonarUI plug-in tutorial Nina Jeliazkova ISTF, Bulgaria.
1 Class Diagrams. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are for visualizing, specifying and documenting.
Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad.
OOPs Object oriented programming. Abstract data types  Representationof type and operations in a single unit  Available for other units to create variables.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
S11-1 ADM , Section 11, August 2005 Copyright  2005 MSC.Software Corporation SECTION 11 MACROS: OVERVIEW.
JDBC CS 260 Database Systems. Overview  Introduction  JDBC driver types  Eclipse project setup  Programming with JDBC  Prepared statements  SQL.
Hardware process When the computer is powered up, it begins to execute fetch-execute cycle for the program that is stored in memory at the boot strap entry.
Linux Operations and Administration
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Level 1-2 Trigger Data Base development Current status and overview Myron Campbell, Alexei Varganov, Stephen Miller University of Michigan August 17, 2000.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
 It is a pure oops language and a high level language.  It was developed at sun microsystems by James Gosling.
Java FX: Scene Builder.
INTRODUCING Adams/CHASSIS
SECTION 3 MACROS: OVERVIEW.
Types of Programming Languages
Testing REST IPA using POSTMAN
COMMON CONTROLS A control is a child window that an application uses in conjunction with another window to enable user interaction. Controls are most often.
Main Memory Background Swapping Contiguous Allocation Paging
Using JDeveloper.
LTPDA Graphic User Interface summary and status
Using Templates and Library Items
A QUICK START TO OPL IBM ILOG OPL V6.3 > Starting Kit >
Preference Activity class
Presentation transcript:

VAPOR 3.0 Architecture Overview

Purpose of this document Provide understandable overview of 3.0 architecture Enable the development team to maintain the 3.0 code base Show how to implement extensions to the 3.0 design Should be used in conjunction with Doxygen documentation of 3.0 API

Goals of 3.0 architecture refactoring Improved maintainability (with better O-O design, removal of obsolete code, consistent interfaces) Extensibility for external developers Support various UI’s (scripting, Qt, spherical) Better design understanding for internal developers.

Control Executive API Centralized location for developer API Support functionality needed for anticipated UI’s Implemented based on methods in Params and Render libraries.

Library Dependencies CommonVDFFlowParamsRenderGUI 1GUI 2 Scripting UI Etc.

Params library Main purpose: provide a database for all the parameters used by the application Also supports: Undo/Redo, Parsing and loading of sessions, validation of settings, Python-derived variables

ParsedXML ParamsBase Params RenderParams XMLNode DataStatus ArrowParams Thick arrows indicate inheritance Thin arrows indicate “reference to” Params class diagram TransferFunction ParamNode Box Viewpoint BasicParams Region Animation Etc.

Params class Container for parameters used in visualization Basic unit for undo/redo E.g. all parameters shown in a GUI tab Params parameters are represented as XML node Principal subclasses: – RegionParams, AnimationParams, ViewpointParams – RenderParams (pure virtual) Associated with rendering Supports instancing – BasicParams (pure virtual) Single instance (contains general state of app) Not associated with GUI tab

ParamsBase Parent of Params class Support (parsing, saving) for an object instance being associated with an XML node. – The XML node (rootNode) is a ParamNode instance Session load and save are performed by using parse/save functionality of ParamsBase. Child classes are Params plus various classes that can be embedded in Params classes, (e.g. Box, TransferFunction, Viewpoint), so that these classes also have their state defined by an XML tree.

ParamNode An XML node used for containing parameters in ParamsBase instances. Each ParamsBase instance has an associated ParamNode, obtained by GetRootNode(), which contains all the data values of the ParamsBase instance. Support for various SetValue(), GetValue() methods, accessing vectors of long, double, or strings.

Params subclasses RegionParams, ViewpointParams, AnimationParams, VizFeatureParams – Support sharing (can be local or global depending on whether state applies to one or all visualizers) RenderParams – Has associated renderer, draws in a visualizer – Applies in just one visualizer – Supports multiple instances in each visualizer BasicParams – One unique instance for global state; e.g. MouseModeParams, VizWinParams, InstanceParams

Other classes in Params lib Command: support for undo/redo queue DataStatus: Maintains information about currently loaded data

Undo/Redo Command class maintains a circular queue of recent Params changes Each Command is a (before,after) pair of ParamNode’s, associated with the state change of a Params instance. Whenever a SetValue occurs in a Params instance, an associated Command is inserted in the Command queue When user requests Undo or Redo, the appropriate ParamNode is installed as the rootNode of the proper Params instance.

Static Params Access At run time, all Params instances currently in use are maintained in static Params tables associated with the Params class. Any Params instance can be obtained from its XML tag, visualizer (int), and instance (int) using Params::GetParamsInstance() Params tables are populated on startup, on session load, and during creation of visualizer or renderer instance.

Implementing a Params class Define a tag (name) of the Params class Specify XML tree structure consisting of: – Vectors of string, long, double, with tags – ParamsBase instances for embedded classes (e.g. transfer functions) Implement GetValue, SetValue methods using methods on Params (SetValue automatically validates, and handles undo/redo) Implement all pure virtual Params (or RenderParams) methods Provide Params registration method (RegisterParamsBaseClass) in ControlExec::createAllDefaultParams().

Important virtual Params methods In addition to providing SetValue, GetValue methods, the following must be implemented: Params::Validate() – Ensure that all the values in the object are consistent with currently loaded data; optionally set all values to default values for current data. Params::restart() – Initialize object, defining the XML tree associated with root node. Other required methods are fairly trivial to implement. See ArrowParams implementation.