khoros yongqun he dept. of computer science, virginia tech
TRANSCRIPT
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
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
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
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/