       OVERVIEW OF THE ISIGHT DEVELOPMENT EXAMPLES SET


This directory contains a set of Isight development examples.
The Isight framework is designed to be extensible, allowing
users to develop Isight parts that incorporate the tools of
their own disciplines, and so to build Isight models which
drive these tools to compute solutions to their problems.

New Isight parts are implemented as a collection of Java
classes which use Isight API routines to get data, perform
computations on the data, and return calculated results.
These Java classes, and supporting files, are packaged as
Java JAR files; these are added to Isight by publication
in a Library (which may be local or shared).

Each example directory contains a set of Java source files
which define the design-time and run-time behavior of the
illustrated Isight part.  The directory also contains any
auxiliary files: icon GIF-files, C files and Makefiles for
JNI libraries (when parts are implemented outside Java),
and so on.  A REAMDE file describes the part and how to
build the part using the Isight 'sdkGenerator' tool.


LAYOUT:

This directory contains one subdirectory corresponding to
each type of Isight part that can be built.  Under each
subdirectory is a set of directories containing specific
examples of that type of part.  The supported types and
their directories are:

components:

    Isight components are the building blocks of Isight
    models, which join component instances in workflows
    so that each instance contributes a unique act of
    computation towards solving a specific problem.
    Any given Isight component may perform a computation
    within itself (e.g Calculator, Script), may drive
    an external tool to perform it (e.g Simcode, Excel),
    or may drive a workflow built from other components
    (e.g Task, DOE).

    The components directory contains the following
    example subdirectories:

    plate - This component evaluates the properties of
            a simple metal plate.  Model developers may
            fix a shape (circle, rectangle, or triangle)
            and a material (aluminum, steel, etc); then
            for any given plate thickness this component
            computes the plate area, volume, and weight.


datatypes:

    Every Isight component has a set of Isight parameters
    which hold the inputs, outputs, and intermediate
    values of a calculation.  Isight datatypes define
    how the data in these parameters is organized for
    computation, and how it is presented to component
    users.  Each datatype must implement a specific
    Java interface according to predefined protocols,
    so that Isight may transfer data to and from any
    parameter of that type.

    There are currently no Isight datatype examples.


plug-ins:

    Sometimes a set of particular computing procedures
    are seen to be different instances of one class of
    procedures.  For example, there are many different
    optimization algorithms, but all formulate their
    computation in terms of design variables, input
    and output constraints, and objectives.  In Isight
    these cases are implemented by a single component
    for the class, combined with one or more plug-ins
    for each instance.  Each plug-in must implement a
    specific Java interface, according to protocols
    which depend on the component that will be using
    the plug-in.

        Calculation - example of defining additional 
                functions for the Calculation engine.
        External Executable Optimizer - example of an 
                optimization plug-in implemented as an 
                external executable program.
        External Executable Approximation - example of an 
                approximation plug-in implemented as an 
                external executable program.


visuals:

    The Isight Runtime Gateway includes a framework
    for presenting run results in graphs, tables,
    or other forms of display.  Isight provides a
    moderately large set of standard display tools,
    and users may incorporate their own application
    specific display tools.  Each visual must imp-
    lement a specific Java interface according to
    predefined protocols, so that Isight may send
    run results to any instance of the visual.


    There are currently no Isight visual examples.
