[163] in DCNS Development
[Dennis.Aylward@East.Sun.COM (Dennis Aylward - Account Executive):
daemon@ATHENA.MIT.EDU (Peter Roden)
Wed Feb 5 11:12:27 1992
Date: Wed, 05 Feb 92 11:11:42
From: roden@MIT.EDU (Peter Roden)
To: developers@MIT.EDU
------- Forwarded Message
Date: Wed, 5 Feb 92 10:58:02 EST
From: Dennis.Aylward@East.Sun.COM (Dennis Aylward - Account Executive)
To: mar@MIT.EDU, roden@MIT.EDU
Subject: KHOROS
I suspect that this is already familiar to you but I thought I would pass
it along FYI, just in case...
--Dennis Aylward
----------------------------------------------------------------------------
The Florida SunFlash
KHOROS
SunFLASH Vol 38 #3 February 1992
----------------------------------------------------------------------------
This is an announcement about a public domain image processing (and
more) project from the Department of Electrical and Computer
Engineering at the University of New Mexico. Ftp and mail instructions
are included. -johnj
----------------------------------------------------------------------------
AN ENVIRONMENT FOR INFORMATION PROCESSING,
DATA VISUALIZATION, AND SOFTWARE DEVELOPMENT
THE KHOROS PROJECT
The main goal of the Khoros software project is to create and provide
an integrated software development environment for information pro-
cessing and data visualization. The Khoros software system is now
being used as a foundation to improve productivity and promote
software reuse in a wide variety of application domains. A powerful
feature of the Khoros system is the high-level, abstract visual
language that can be employed to significantly boost the productivity
of the researcher.
Central to the Khoros system is the need for a consistent yet flexible
user interface development system that provides cohesiveness to the
vast number of programs that make up the Khoros system. Automated
tools assist in maintenance as well as development of programs. The
software structure that embodies this system provides for extensibil-
ity and portability, and allows for easy tailoring to target specific
application domains and processing environments.
OVERVIEW
The Khoros system integrates multiple user interface modes, code gen-
erators, instructional aids, data visualization, distributed computing
and information processing. The result is a comprehensive tool for
computational research and development. The Khoros infrastructure
consists of six major subsystems:
(1) A high-level visual language that may be extended to fit the
application domain.
(2) A user interface development system consisting of a User Inter-
face Specification (UIS) and code generators that use the UIS to
generate code for all programs created under the Khoros system.
(3) An interoperable data exchange format (VIFF) supported by a
comprehensive automatic storage conversion library.
(4) Application specific data display and processing libraries; image
processing, digital signal processing, numerical analysis, data
and file conversion, graphics display, and image display.
(5) A set of interactive X Windows-based programs address such areas
as image display, colormap manipulation, animation, plotting,
warping of image data, and surface visualization.
(6) A set of meta-system calls provide a foundation for distributed
computing and efficient data transport. Khoros provides user
selectable compute locations via the visual language, computer
supported cooperative work via a distributed X mechanism, and
remote access to data via a distributed data transport server.
The software structure that embodies this system provides for extensi-
bility and portability, and allows for easy tailoring to target
specific application domains and processing environments. Khoros is a
successful demonstration of how research programming, application pro-
gramming, information processing, data visualization, instruction,
documentation, and maintenance can be integrated to build a state-of-
the-art software environment.
THE VISUAL LANGUAGE
The visual language of Khoros, cantata, is a graphically expressed,
data-flow oriented language. The user builds a cantata application
program ("workspace") by connecting processing nodes ("glyphs") to
form a data flow graph. Glyphs are selected from the many library
routines available with Khoros; the user may also create new library
routines using the Khoros user interface development system, and make
them available to cantata. The visual language is considered to be
large-grain because each glyph represents an entire program. "Con-
trol" glyphs (providing if/else conditions, loops, etc) and a expres-
sion parser extend the functionality of the underlying data flow
methodology.
Visual "procedures", each representing a segment of the network of
glyphs in a workspace, can be used to add structure to the visual
language and help to manage the complexity often associated with
visual programming. A dynamic execution scheduler allows the user to
interactively execute the entire flow graph across a heterogeneous
computer network. The execution can be set to either a demand driven
or data driven model depending on the application and desired level of
interactivity.
USER INTERFACE DEVELOPMENT SYSTEM
The framework of every program in the Khoros system is defined by a
User Interface Specification. This high-level specification is used
with automatic code generators that allow Khoros programs to combine a
UNIX-like command line user interface (CLUI) with an X-Windows based
graphical user interface (GUI). Khoros programs can be easily
incorporated into the visual language that is an integral part of the
Khoros system; the use of the code generators ensures that program
user interfaces and documentation are consistent and correct. In
addition, the user interface development system provides a means of
quickly prototyping new algorithms, encourages standard coding styles
and methods, and can potentially make the user as productive in
extending the system as the original programmers were in creating it.
The software development tools listed below allow an end-user to act
as a developer to extend the system.
Program Name Description
-----------------------------------------------------
preview GUI display tool
composer GUI editor
conductor code generation tool for a GUI's
ghostwriter code generation tool for CLUI's
kinstall source configuration & management tool
The Khoros user interface development system provides features common
to all applications, such as: (1) journal recording/playback & distri-
buted user interfaces for X-Windows based applications, (2) re-
arrangement of the graphical user interface without recompiling, (3)
consistency of use, (4) standardized documentation format, and (5)
consistent structured programming methodology and styles.
INTEROPERABLE DATA EXCHANGE FORMAT
The Khoros Visualization and Image File Format (VIFF) or data struc-
ture supports general geometric objects, multidimensional data, and a
robust mapping scheme. Storage type conversion between different
architecture platforms is automatically performed by the meta-system
read and write utilities; for example, DEC VAX floating point data is
automatically converted to IEEE format if read on a SUN computer. The
consistent use of the Khoros data structure promotes an algorithm
library that can be used in many disciplines and supports data
exchange.
As Khoros expands, there will be a need to support a set of "standard"
file formats. Currently, Khoros provides for data interchange with
other systems via file format converters. Khoros supports the follow-
ing file formats: TIFF, pbm, BIG, DEM, DLG, ELAS, FITS, Matlab, SUN
raster, TGA, and xbm.
DATA PROCESSING LIBRARIES
Khoros includes libraries of programs that can operate on point data,
one-dimensional data, two-dimensional data, multiband data or N-
dimensional vector data. These operators are designed to be
polymorphic, or in other words they function on bit, byte, short,
integer, float and complex data types. The term also implies that the
functions know to operate differently depending on the dimensionality
or organization of the data.
There are two interface levels defined in the library functions in
Khoros; the program or process interface and the function call or pro-
cedure interface. The program interface is determined completely by
the high-level user interface specification described above. The pro-
cedure interface is currently not as well defined, but allows the pro-
cedures (functions) to be easily combined into a single program. As a
note, visual programs are built by executing a set of programs using
the program interface.
The libraries contain over 260 programs, in the following categories:
arithmetic, classification, color conversion, data conversion, file
format conversion, feature extraction, frequency filtering, spatial
filtering, morphology filtering, geometric manipulation, histogram
manipulation, statistics, signal generation, linear operations, seg-
mentation, spectral estimation, subregion, and transforms.
In addition, high-level graphics and display libraries are available
to those who wish to create new X-Windows based applications under
Khoros. These libraries act as a "visualization toolkit" that is lay-
ered on top of Xlib, Xtk and the Athena Widgets.
Library Description
---------------------------------------------
forms graphical user interface
utils pop-up browsers, errors, help, etc.
gaphics 2D/3D graphics; X, Postscript, HPGL
display image display & editing
X WINDOWS APPLICATIONS
The interactive graphical user interface programs that are part of
Khoros are based on MIT X11R4 and the Athena widgets. Such applica-
tions written under the Khoros system are automatically endowed with a
journal record and playback capability that is useful for demonstra-
tion and instructional purposes. Taken a step farther, the journal
record/playback capability was extended to work on multiple displays
simultaneously with a "distributed user interface controller". This
distributed user interface empowers users to execute a Khoros applica-
tion which not only will appear on multiple displays simultaneously,
but which can also receive input from each of the users.
Still under development, the distributed user interface controller
will provide a more sophisticated mechanism for instructional and
demonstration purposes, as well as a powerful tool for a long-
distance, collaborative approach to problem solving.
Program Name Description
-----------------------------------------------------------
cantata visual programming language
editimage image display & manipulation
animate image sequence display
xprism2 and xprism3 2D and 3D plotting packages
viewimage surface visualization
warpimage image registration and warping
concert distributed user interface controller
META-SYSTEM FOUNDATION
Khoros is designed to operate and fully utilize a heterogeneous com-
puting environment. The meta-system library provides a set of func-
tion calls that extend the standard UNIX system calls to provide a
network level interface. As an example, the kopen() function can open
a standard file on the local host as well as open access to: a remote
file, a socket, shared memory, a pipe, a stream, or SUN's Virtual
Memory. This simple interface provides access to network wide data
transport.
The application programmer benefits from the meta-system because the
task of writing distributed applications is simplified. The end user
benefits from the meta-system by being able to select compute loca-
tions via cantata and by being able to access remote data
transparently.
The careful integration of the six Khoros subsystems summarized above
allow it to act as a distributed collaboration environment.
HISTORY
The Khoros project has been underway at the Department of Electrical
and Computer Engineering at the University of New Mexico since January
of 1987. Previously named "XVision", the project has undergone
tremendous changes in focus and scope since its beginning. Originally
conceived as a tool to improve the productivity of research, initial
software was developed to provide a consistent command line user
interface for an existing library of image processing programs. The
project quickly expanded to contain an image display program, a plot-
ting package, and code generators to automate the creation of code
that was common to all programs.
A visual language was developed to provide users with a more con-
venient and intuitive access to the capabilities offered by the bur-
geoning image processing library. Other libraries were developed to
address problems in digital signal processing, numerical analysis,
data conversion, and remote sensing. A number of new graphical and
image display packages were developed to meet the demands of the
users, while the user interface development system matured in order to
meet the demands of the rapidly growing project. The distributed user
interface was implemented experimentally, to support the concept of
groupware; reactions have been extremely favorable so far.
CURRENT STATUS OF KHOROS (Patch Level 4)
The Khoros system has been applied to a diverse spectrum of areas
including medical research, ecological studies, remote sensing, vir-
tual reality, telecommunications, and optics. The Khoros project con-
tinues to evolve as new developments occur in the continued research
and development of software environments for information processing,
data visualization and software development. Khoros is being used as
a teaching tool at several Universities. Release 1.0 of Khoros was
offered free of charge via public ftp access on May 10, 1991; updates
have since been provided in patch form. Release 2.0 of Khoros is
expected to be out in late 1992.
The documentation for the system is a combination of on-line help
and printed manuals. The manual is made up of three separate volumes:
User's Manual, Programmer's Manual, and Reference Guide. Also, jour-
nal playback files are provided to give the new user "live" demonstra-
tions of the various applications.
Khoros currently runs on APOLLO, CRAY, DEC, HP, IBM, OMRON, MIPS,
NeXT, SGI and SUN platforms, and there are porting efforts for
386/486, CONVEX, DG and MacII platforms. Khoros is now available via
anonymous ftp at no charge (from pprg.eece.unm.edu, 129.24.24.10, in
the /pub/khoros directory), or a tape and printed documentation can be
ordered for $250.00. Support is provided via both a mail user's group
and USENET News in which hundreds of users are now members. For more
information, send e-mail to khoros-request@chama.eece.unm.edu.
=======================================================================
=======================================================================
KHOROS 1.0 (Patch Level 4) RELEASE ANNOUNCEMENT
INTRODUCTION
Khoros is an integrated software development environ-
ment for information processing and visualization, based on
X11R4. Khoros components include a visual programming
language, code generators for extending the visual language
and adding new application packages to the system, an
interactive user interface editor, an interactive image
display package, an extensive library of image processing,
numerical analysis and signal processing routines, and 2D/3D
plotting packages.
X Windows Applications
Animate - Interactive Image Sequence Display Tool
Cantata - Extensible Visual Programming Language
Concert - A system for distributed X user interfaces (groupware)
Editimage - Interactive Image Display & Manipulation Program
Xprism2 and Xprism3 - Comprehensive 2D and 3D Plotting Packages
Viewimage - A basic interactive program for surface rendering
Warpimage - An interactive program for registering and warping images
Data Processing Algorithms
Khoros contains over 260 programs, in the following
categories: arithmetic, classification, color conversion,
data conversion, file format conversion, feature extraction,
frequency filtering, matrix algebra (LINPACK and EISPACK),
spatial filtering, morphology filtering, geometric manipula-
tion, histogram manipulation, statistics, signal generation,
linear operations, segmentation, spectral estimation, sub-
region, and transforms. Khoros supports the following file
formats: TIFF, pbm, BIG, DEM, DLG, ELAS, FITS, MATLAB, Sun
raster, TGA, and xbm.
User Interface Tools
Preview - Graphical User Interface Display Tool
Composer - Interactive Graphical User Interface Editor
Conductor - Code Generation Tool for a Graphical User Interface
Ghostwriter - Code Generation Tool for a Command Line User Interface
Source Configuration & Management - Tools to install and maintain a
distributed source tree.
KHOROS DISTRIBUTION METHODS
1) Anonymous FTP
Khoros is available via anonymous ftp from pprg.eece.unm.edu
(129.24.24.10). Use your e-mail address as the password
(for example, ralph@whizbang.wmu.edu). Once you have logged
in, cd to the "pub/khoros/release" directory and get the
ascii file install.ftp. This file will give you complete
instructions on how to get Khoros and install it on your
system. To get this file, execute the following commands or
steps:
a. Use ftp to connect to pprg.eece.unm.edu.
% ftp pprg.eece.unm.edu
-or-
% ftp 129.24.24.10
b. Use "anonymous" or "ftp" as the user name.
Name (pprg.eece.unm.edu:login): anonymous
-or-
Name (pprg.eece.unm.edu:): ftp
c. Use your e-mail address as the password; please
carefully use a valid e-mail address, as this ver-
sion site logs all anonymous ftp's.
Password (pprg.eece.unm.edu:user): {your valid e-
mail address}
331 Anonymous login ok, use your E-MAIL address as
the password.
230 Guest login ok, access restrictions apply.
d. Get the release notes for acquiring Khoros via
anonymous ftp (note that "install.ftp" is the
plain text file - both ".ms" and ".ps" files are
available for those who would like them).
ftp> cd /pub/khoros/release
ftp> get install.ftp
2) Tape and Printed Documentation
If you would like to order a tape and printed documentation,
fill out the order form below (last page). The cost is,
$250.00 (US and Canada) and $350.00 (International). Please
include a check or purchase order payable to UNM EECE Dept.,
in U.S. funds. If you need additional information or
confirmation of your order, call the Khoros Group at
505-277-0806 and leave a message.
All communication to the Khoros group should be via e-
mail. If you have questions, comments or problems of a gen-
eral nature, then either mail the Khoros mailing list
(khoros@chama.eece.unm.edu), or post to the Khoros USENET
news group (comp.soft-sys.khoros). To subscribe to the
mailing list, mail to khoros-request@chama.eece.unm.edu.
Once you have the system and want to report bugs, mail to
khoros-bugs@chama.eece.unm.edu.
KHOROS REQUIREMENTS AND LIMITATIONS
To run Khoros, you must have a UNIX platform running
the X11R3, X11R4, X11R5, or OpenWindows servers. The Khoros
system consists of ~450,000 lines of C code; you will need
a maximum of 120 Megabytes of storage for source, documenta-
tion and binaries. To compile Khoros, the system requires
X11R4 (patch levels 1-18) or X11R5 client software from MIT
and an additional 50 Megabytes of storage.
----------------------------------------------------------------------------
-
Khoros 1.0, patch level 4 Compiles On These Machines
(MIT X unless otherwise noted)
----------------------------------------------------------------------------
--
Vendor Name Configuration
--------+--------------------------+----------------------------------------
---
Apollo | DN10000 | OS 10.3, Fortran 10.8, cc 6.8
| |
CRAY | XMP, YMP, Cray 2 | UNICOS 6.1
| |
DEC | 5000/3100 | Ultrix 4.2, mips cc 2.0, DEC f77
V3.0-2
| |
DEC | Vax 3600 | Ultrix 4.1, cc1.37.1
| |
HP | HP9000/* | HP-UX 7.05, HP-UX 8.05
| |
IBM | RS/6000 | AIX v3.x
| |
OMRON | Luna88k | Mach 2.5, gcc 1.37, f77 1.8.5
| |
MIPS | Magnum 3000 | RISCOS 4.51, cc 2.11, f77 2.11, X 4.0
| |
NeXT | 68030,40 | MACH 2.0, gcc 1.37, Absoft f77 2.0,
| | Pensoft X
| |
SGI | All | OS 3.3.2, OS 4.0, X11 1.2, f77 3.3
| |
SUN | SPARCstations, SUN4/* | SUN OS 4.1.1, f77 1.3.1
| |
SUN | SUN3/* | SUN OS 4.1.1, f77 1.3.1, gcc 1.39
----------------------------------------------------------------------------
---
The Khoros user community has ported Khoros to various
other platforms such as the Convex, the Sequent, Data Gen-
eral Aviion, MacII, and 386/486 machines. At this time,
these platforms are not directly supported by the Khoros
Group.
KHOROS CONSORTIUM
If your organization is interested in distributing the
Khoros software system, and/or supporting further research
and development of software environments for data processing
and visualization please contact Tom Sauer at the address
below or e-mail consort@chama.eece.unm.edu.
Tom Sauer, Khoros Consortium
Department of EECE, Room 110, University of New Mexico
Albuquerque, NM 87131
============================================================================
=
C U T H E R E
============================================================================
=
KHOROS
Room 110
Department of EECE
University of New Mexico
Albuquerque, NM 87131
SHIP TO:
-----------------------------------------------------------
-----------------------------------------------------------
-----------------------------------------------------------
-----------------------------------------------------------
PHONE NUMBER:
-----------------------------------------------------------
E-MAIL ADDRESS:
-----------------------------------------------------------
PURCHASE ORDER NUMBER:
-----------------------------------------------------------
CREDIT CARD ORDERS - Please include the type of credit card, your
credit card number, and its expiration date.
In order to process your order, we
need to have your full name (as it
appears on the card) and also a number
where we can reach you during the day.
NAME (as it appears on credit card):
-----------------------------------------------------------
CREDIT CARD NUMBER:
-----------------------------------------------------------
EXPIRATION DATE and CARD TYPE:
-----------------------------------------------------------
Media: (Please circle one of the following types of media)
1) DC600A cartridge tape
2) DC6250 cartridge tape
3) 9-track tape (1/2 inch, 1600bpi)
4) 9-track tape (1/2 inch, 6250bpi)
5) DAT 4mm tape
Binaries: (If you would like a compiled version of Khoros,
please circle one of the following machine architectures)
1) DEC MIPS (Ultrix 4.2)
2) SUN3 (SunOS 4.1.1)
3) SUN4, SPARCstation (SunOS 4.1.1b)
4) SGI (OS 4.0)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++
For information send mail to info-sunflash@sunvice.East.Sun.COM.
Subscription requests should be sent to
sunflash-request@sunvice.East.Sun.COM.
Archives are on solar.nova.edu, paris.cs.miami.edu, uunet.uu.net,
src.doc.ic.ac.uk and ftp.adelaide.edu.au
All prices, availability, and other statements relating to Sun or third
party products are valid in the U.S. only. Please contact your local
Sales Representative for details of pricing and product availability in
your region. Descriptions of, or references to products or publications
within SunFlash does not imply an endorsement of that product or
publication by Sun Microsystems.
John McLaughlin, SunFlash editor, flash@sunvice.East.Sun.COM. (305)
776-7770.
------- End of Forwarded Message