khoros yongqun he dept. of computer science, virginia tech

22
Khoros Yongqun He Dept. of Computer Science, Virginia Tech

Upload: vernon-gallagher

Post on 01-Jan-2016

217 views

Category:

Documents


1 download

TRANSCRIPT

Khoros

Yongqun He

Dept. of Computer Science, Virginia Tech

What is Khoros

Definition: Khoros is a software integration and development environment that emphasizes information processing and data exploration.

Goal: provide a complete application development environment that redefines the software engineering process to include all members of the project group, from the application end-users to the infrastructure programmer.

What Khoros Offers

Solutions for scientific and engineering problems

Visual programming environment for solution creation and problem solving

Software development environment and tools

Libraries for portability, scalability, data access, GUI creation, data visualization

Visualization applications More than 90,000 lines of code

History of Khoros

Originated as a research project at the Univ. of New Mexico Khoros Pro 2001: by Khoral Inc. – no longer free

2001

Khoros for End Users

Offers > 300 Programs (operators) for: Information processing Data exploration Data visulization

All programs are available via Cantata Cantata: visual programming environment

Khoros for Developers

The Khoros Toolbox Programmer’s System Programming services Software development tools

The Software Development Environment Direct manipulation GUI design tool Automatic code generation Standardized user interface and documentation Interactive configuration management Software integration: bring in existing programs

Organization of Khoros

Toolbox – collection of programs and/or libraries that are managed as a single entity, or object.

Data Models

Khoros Toolboxes

Bootstrap -- Installation & make utilities. Required Dataserv -- Data services. Required Design -- Software development system. Required Support – Utilities for software development system Datamanip -- Polymorphic Data Processing

Operators Envision -- Interactive Data Exploration Tools Geometry -- 3D Scalar and Vector Visualization Image -- Image Processing & Analysis Operators Matrix -- Matrix Operators Migration – Utilities for migration from K1 to K2 Sample Data -- Sample Workspaces and Data

Khoros Toolbox Dependencies

Bootstrap must be installed first Dataserv depends on Bootstrap Similarly, … Sampledata contains only data, independent

The Bootstrap Toolbox

Contains the base utilities for installing the Khoros software:

Installit: the installation script Kconfigure: configures the user environment Kgenimake: generates Imakefiles Kgenmake: generates Makefiles Kimake: on which kgenmake depends

Also includes the lowest-level libraries in the Khoros system

The Dataserv Toolbox

Consists of a collection of libraries which together comprise Data Services, a powerful system for accessing and manipulating data.

Objective of Data Services: access and operate on data independent of its file format or its physical characteristics such as size or data type

The Design Toolbox -- Programming Tools

The Khoros Toolbox Programmer’s System

Cantata – Advanced data flow visual language Craftsman – toolbox and software objects

manager; create software objects Composer – edit, manipulate, and compile

existing software objects Guise – GUI specification editor Khelp – displays online hellp pages

Also includes GUI and Visualization Services Libraries

Khoros Data Models

Polymorphic Data Model: up to N dimensions width, height, depth, time, and elements.

Geometry Data Model: dimensions Spheres, triangles, lines, …

Color Data Model

Data Operators in Toolboxes

Address needs of many application domains

Cantata

Definition: a graphically expressed, data flow visual language which provides a visual programming environment within the Khoros system.

Data flow: a "naturally visible" approach in which a visual program is described as a directed graph, where each node represents an operator or function and each directed arc represents a path over which data flows.

Icons (Glyphs) represent programs: hundreds Glyphs executed locally or remotely Glyphs process data in both blocks and streams Develop interactive programs visually by combining

glyphs into a complete program

Standard Glyph Components (Fig)

Standard Glyph Components

Input (Output) Data Connection Node: Zero to many Yellow: required; Blue: optional

Input (Output) Control Connection Node: One for each glyph Delay execution of the glyph until another

(this) glyph is executed. Pane Access Button:

One for each glyph in the upper-left corner Display the GUI (pane), specify argument

values Run Button:

Execute the program (operator) by the glyph

Input/Output: Glyph Connections

Output of one operator becomes input of another one

Prevent the 2nd glyph from executing until the 1st one has done so

Ready to Play ?

What is the order to execute ?

Manipulating Connections

Click left mouse button: Delete Connection Save Data to File: for data flow connections only Connection Options: line width, color, connection

type.

Control Structures

Conditional constructs If/Else Merge: merge two separate data flow paths Switch Trigger: execute under certain condition Expression: set a variable value

Looping constructs Count Loop While Loop:

References

Khoros Manuals: http://rab.ict.pwr.wroc.pl/khoros_root/topmost_toc.html

Khoral Inc: -- Khoros Pro 2001 IDE: http://www.khoral.com/

Wei Yu Presentation in 1999 for CS6704: http://ei.cs.vt.edu/~cs6704/Khoros_C.pdf

Khoros Information at LBNL: http://www-vis.lbl.gov/software/khoros.html

Khoros Programming Tutorial: http://www.cab.u-szeged.hu/local/doc/khoros/Tutorial/

Khoros Pro 2000 Programming Tutorial http://www.cse.sc.edu/~kubota/csce763/KhorosTutorial/manual/

Khoros 1 and 2 Information: http://www.tnt.uni-hannover.de/js/soft/imgproc/khoros/