Product Background
The Galaxy Application Environment
-----------------------------------------------------------------
Visix Software Inc.
11440 Commerce Park Drive
Reston, VA 22091
703.758.8230/Telephone
800.832.8668/Toll Free
703.758.0233/Facsimile
-----------------------------------------------------------------
The Galaxy Application Environment

INTRODUCTION

The Galaxy Application Environment is the most advanced application
development environment available for building large-scale,
mission-critical, distributed applications. Galaxy frees application
developers from having to manage programming differences among operating
systems, window systems, and networks, and enables developers to build
applications that can be ported and distributed across all major system
platforms. Galaxy is the high-end programming environment for professional
application developers working on the most challenging in-house corporate
applications, commercial applications, or complex system integration
projects.

Galaxy offers an integrated development environment that enables
application developers to create rich, scalable, extensible applications
that can be ported and distributed across UNIX, Windows, Windows NT,
Macintosh, OpenVMS, and OS/2 system platforms without code changes. Galaxy
addresses the problem of developer uncertainty by providing the same
advanced system features on every target platform.

Vendors and industry consortia continue to proliferate new operating
systems, window systems, distributed computing paradigms--and confusion.
There is, however, one certainty: winners and losers will emerge over
time. Developing on a losing platform can be a strategic disaster, while
waiting for the dust to settle could result in a competitive disadvantage.
Galaxy cuts through the confusion with a practical, field proven
alternative for developers who want to build the next generation of
applications today.

GALAXY ARCHITECTURE AND TECHNOLOGY

Galaxy Abstraction Model

The Galaxy architecture leverages object-oriented technology to provide
developers with a uniform set of system services--operating system
services, window system services, and network services--across all system
platforms. Galaxy accomplishes this feat through an advanced multi-layer
abstraction model. Galaxy abstractions map platform-specific
functionality, such as file system or memory management calls, to object
classes accessible through common Galaxy application programming interface
(API) calls, in a many-to-one relationship. This model has been developed
specifically to support the development of portable, large-scale,
mission-critical applications. For each platform service, the lowest
Galaxy abstraction layers sit directly on low-level native services, while
the highest layers provide the developer a single programming interface
for that service across all system platforms. This architecture isolates
the internals of Galaxy from the details of particular system platforms,
and enables total application portability without compromising application
functionality.

Galaxy ensures a uniform set of services are available to the application
at runtime. If a native implementation lacks a particular primitive
function, Galaxy compensates for that deficiency. For example, Galaxy can
scale and rotate text on an X Window System display by using numerous Xlib
calls. However, when Display PostScript is supported on the platform,
Galaxy can accomplish the same task with only a few Display PostScript
calls. With Galaxy, the application developer writes an application once,
and Galaxy ensures that the application behaves comparably on every
platform.

Extensibility and Compatibility

Extensible applications cost less to maintain over the application
lifecycle. Galaxy implements its abstraction model at every level,
ensuring the extensibility of both the product and Galaxy-built
applications. The abstraction model and fine-grained object-oriented
design enable Visix to easily evolve Galaxy--both to take advantage of
platform-level innovation and to enhance the functionality of Galaxy
objects--without affecting the API or the operation of Galaxy
applications. Galaxy methods read or modify only one attribute of each
object, so any number of new features can be added to Galaxy objects
without affecting existing entry points. This fundamental architectural
commitment makes Galaxy a safe choice for developers concerned about the
ability of a development environment to keep pace with change and provide
continuity for existing applications. Galaxy object interfaces reflect
this state-of-the-art approach, exposing implementation details to Galaxy
applications in only a few specific cases.

The Galaxy Resource Model

Galaxy implements an innovative Resource Model to enable application
portability. The Galaxy Resource Model manages all application non-code
resources as machine independent, binary Resource Files, which are highly
portable. Non-code resources include dialog windows, user interface
objects, text, color images, and information about internationalization
and geometry management. The Galaxy Resource Model offers a powerful
abstraction for managing structured binary data. It can also be extended
to store and operate on any type of structured or variable-size data, such
as video or audio. The Galaxy Resource Manager even includes built-in
compression/decompression routines for large object types such as images.

Imaging Model

The Galaxy Imaging Model provides the application developer with an "ideal"
imaging abstraction. The Galaxy developer programs for a graphics output
device with infinite resolution, unlimited colors, and algorithmic fonts.
Since these capabilities exceed current display hardware, Galaxy renders
the most accurate depiction possible through a variety of image processing
operations, including error-diffusion, dithering, resampling, and color
mapping. The developer may prioritize the trade off between color matching
and image processing speed.

Drawing Model

Galaxy implements the Display PostScript drawing model to provide the
closest match possible between screen and printer output without specific
programmer involvement. Display PostScript does not depend on display
hardware, allowing developers to use the same code to draw on any number
of raster devices. Galaxy's drawing model supports monochrome, grayscale,
color-mapped, true-color, and direct-color displays of any depth. It also
supports high-resolution printers and phototypesetters.

Internationalization

Galaxy addresses internationalization issues by providing a fixed-width
internal character set with no dependencies on a specific encoding
mechanism. Galaxy modules that deal with text handle conversions
internally, so the application rarely, if ever, has to deal with character
set issues. For example, the Resource Manager always returns strings in
the internal character set format, regardless of which variable-width
character set is used for representation in the resource file itself.
Galaxy supports the Unicode character set, along with many specific named
character sets.

Command Model

Galaxy provides a high-level command model that allows application function
to be separated from user interface function. A Galaxy application
receives a stream of messages from user interface objects, which can be
located anywhere in the network. An application based on the Galaxy
Command Model can be written without user interface code, enabling the
developer to enhance the features of visual resource objects while
maintaining compatibility with existing applications.

Enhanced Productivity: The Galaxy Object Model

Galaxy is built around a flexible object model that provides the
productivity benefits of object-oriented code reuse while offering a
choice between a C or C++ language interface. The Galaxy Object Model
allows Galaxy to be extended by subclassing Galaxy application objects or
by creating new application objects from the ground up. The Galaxy Object
Model has been designed specifically for the typical application
programmer. A Galaxy developer can realize significantly enhanced
application quality and increased productivity through Galaxy's
object-orientation, without becoming an "object-oriented guru".

GALAXY PRODUCT OVERVIEW

The Galaxy Application Environment encompasses object-oriented libraries,
distributed application services, and a powerful set of integrated tools.
Galaxy Libraries consist of an extremely comprehensive set of C or C++
programs which implement the Galaxy API. Galaxy Application Services are
delivered to the application by a set of Galaxy Application Servers, such
as the hypertext-based Galaxy Global Help Server. The Galaxy Tools include
the Visual Resource Builder and Color Image Editor, which provide the
programmer a highly productive visual programming environment.

The Galaxy Libraries: Productivity and Performance

The Galaxy Libraries combine state-of-the art object-oriented technology
with breadth of function and application performance only possible with a
third-generation product. Galaxy Libraries have been designed and
implemented specifically for developers who are striving to efficiently
build high-performance applications. Galaxy Libraries are implemented as
shared library stubs on platforms that support shared libraries, reducing
memory overhead and boosting application performance. Galaxy Libraries are
supplied as a set of shareable Dynamic-Link Libraries (DLLs) for the
Microsoft Windows version of Galaxy.

Galaxy application source code is compiled using the native platform C or
C++ compiler and the Galaxy header files. The native linker is used to
bind in the Galaxy Libraries. Galaxy Libraries are compatible with a wide
range of third party development tools, including incremental
compiler/linkers, interpreters, and testing tools.

Distributed Computing Today: Galaxy Application Services

Galaxy Application Services supply distributed runtime services to Galaxy
applications running on the network. Galaxy applications make API calls to
access Galaxy Application Services, such as the Galaxy Global Help System,
which can run anywhere on the network. Galaxy Global Help offers
application developers a powerful distributed hypertext help system that
provides indexing, retrieval, and document management functions across the
network in realtime. Galaxy Global Help can include text in multiple
fonts, sizes and styles, live links, and embedded images. The Global Help
Server can directly access documents in several formats, as well as run
"translators" on demand to convert documents from any format. Galaxy
Application Services are network-enabled by Galaxy Distributed Application
Services (DAS).

Galaxy Distributed Application Services (DAS)

The Global Help Server and other network services are located and accessed
by Galaxy applications through Galaxy Distributed Application Services
(DAS). DAS uses an asynchronous, non-blocking symmetrical, peer-to-peer
communications protocol for efficient, high performance message-based
inter-application communication. DAS allows Galaxy applications to locate
and communicate with each other in peer-to-peer or client-server
configurations through a state-of-the-art dynamic services registration
and lookup model. DAS locates and provides services based on matching the
operations implemented by the services with the operations requested by
client applications.

DAS underpins the Galaxy Open Tools Backplane API that is used to
seamlessly integrate Galaxy tools, and third-party tools, into the Galaxy
environment. DAS is also designed as a configurable gateway to external
inter-application communication services, providing open interoperability
with major distributed computing architectures.

Galaxy Tools: Designed for the Next Generation of Mission-Critical
Applications

Powerful, interactive development tools make the full depth and breadth of
the Galaxy API accessible to the typical application developer. Each
Galaxy tool supports operations on specific types of information, and
exports those operations to other Galaxy tools through the distributed
capabilities of DAS. The Galaxy architecture supports seamless integration
between tools, allowing the developer to move instantly from one tool to
another. The Galaxy Open Tools Backplane protocol and API enable the
integration of third-party tools by application developers and tools
developers.

Visual Resource Builder

The Galaxy Visual Resource Builder is a state-of-the-art tool for building
portable graphical user interfaces. The Visual Resource Builder includes a
complete visual resource editor for creating and revising all non-code
resources used by an application. Some of the standard resources are
windows, dialogs, strings, sound, graphical images, error messages, and
help documents. The Visual Resource Builder provides an interactive visual
metaphor to display and define the innovative Galaxy Spring and Strut
geometry management mechanism. Springs and Struts are used to describe the
size and positioning constraints of user interface objects.

In addition to providing visual editors for all pre-defined resource types,
the user interface builder can import and export resources in a variety of
formats. For example, the image resource editor understands popular image
formats, including GIF, XBM, PGM, PPM, PBM, MacPaint, and Windows bitmap.

The Visual Resource Builder outputs binary, machine-independent Galaxy
Resource Files that dramatically simplify application portability.

Color Image Editor

The Color Image Editor is a full-palette editing tool used to create and
revise bitmapped color images of any size and depth. Color images in GIF,
XBM, PPM, PBM, PGM, MacPaint, and other formats can be easily imported and
exported.

Future Galaxy tools will include a Programmable Text Editor, Help Writer,
and Project Manager. Although any text editor may be used to create Galaxy
applications, the Galaxy Programmable Text Editor will streamline many
aspects of the application development process.

API FEATURE OVERVIEW

The Galaxy object-oriented API can be divided into three categories: Window
System Abstractions, Operating System Abstractions, and Network
Abstractions.

Window System Abstractions

Galaxy provides an extremely rich cross-platform superset API for rendering
and window management. The Galaxy Window System abstraction builds on the
lowest-level native graphics, imaging, and event processing APIs of each
native window system to offer portable application services that meet or
exceed the capabilities and performance of native toolkits. The Galaxy API
provides high-level abstractions that allow applications to automatically
take advantage of special capabilities, such as accelerated graphics
hardware, Display PostScript, and outline fonts, without writing
special-purpose code. Galaxy includes a broad array of graphics operations
ranging from low-level line drawing to full-color images and virtual
coordinate systems.

The Galaxy architecture insulates developers from differences among native
look-and-feel APIs by offering a single look-and-feel API. Galaxy users
can select, at runtime, any standard look-and-feel on any platform. Galaxy
implementations strictly adhere to official published style guides and
conformance criteria for the following look-and-feel standards:

* OSF/Motif
* Sun/AT&T/Unix International OPEN LOOK
* Microsoft Windows 3.x
* Apple Macintosh (only available on Apple hardware)
* OS/2 Common User Access (CUA)

Fonts

A Galaxy application developer can specify a font by name, or as a
combination of attributes. When an application requests a font, Galaxy
Application Services respond with the closest match possible, based on the
priorities set by the application request. For example, a request for ITC
Stone Sans 15 point will be met if available at that size, either in a
bitmap or scalable form. If the font size has priority over the typeface,
another sans serif typeface such as Helvetica, will be provided if
available in the specified size. If the typeface has priority, Stone Sans
is provided in the closest possible size. If no match can be found, Galaxy
returns a font that matches as many attributes as it can, such as weight
and style. The application developer does not have to manage the intricate
details of the runtime environment across platforms, because Galaxy
handles the differences transparently to the user.

Colors

Galaxy application developers can specify colors in one of several ways:
RGB, HLS, CMY, or by name. Galaxy matches application color requests as
closely as possible. For example, on a 24-bit true color display, an
extremely faithful rendering of the color is produced. On an 8-bit
color-mapped display, the requested color is often not in the display
color map, in which case Galaxy automatically uses existing colors to
construct a dithered color or return the closest match available. On a
grayscale display, a gray level corresponding to the luminance of the
color is automatically computed. On a monochrome display, a dithered
pattern, black, or white is used. The application developer can specify
the priority of color matching criteria to maximize contrast, legibility,
or color fidelity, but does not have to manage the intricate details of
the runtime environment across platforms, because Galaxy handles the
differences transparently to the user.

Standard Dialogues

Galaxy provides an extensive set of highly functional, portable Standard
Dialogues that dramatically ease the task of writing a style-guide
compliant graphical application. Standard Dialogues include the Standard
Color Chooser, Standard Command Chooser, Standard File Chooser, and
Standard Font Chooser. Galaxy manages standard chooser look-and-feel
differences across platforms, without programmer involvement.

Operating System Abstractions

Major operating systems offer similar capabilities, hidden behind a myriad
of different programming interfaces and protocols. Galaxy unifies these
disparate functions into an Operating System Abstraction layer that
provides the application developer with a single API for operating systems
services such as error messages, timers, and file management, including
abstractions for file protection and byte-level file locking services.
Galaxy applications can search directories, create and delete files and
directories, and read or write files sequentially or randomly without
regard to file system type or pathname syntax. Aliases or symbolic links
are supported when implemented by the underlying file system.

Network Abstractions

Galaxy operates internally as a distributed environment, and Galaxy
architecturally supports the development of distributed applications. By
presenting developers a uniform communications API for generic
connectionless and connection-oriented services, Galaxy shields developers
from the necessity of writing low-level networking code or having to
understand the specific nature of the underlying network. Galaxy always
uses the fastest available transport mechanism, such as shared memory,
when available on the system platform.

GALAXY: DEPTH OF ARCHITECTURE FOR THE NEXT GENERATION OF CORPORATE
APPLICATIONS

Galaxy has been designed specifically for developers who are building the
next generation of large-scale corporate applications. Galaxy is uniquely
suited to this task because of the range and depth of functions available
to the developer through the object-oriented Galaxy Libraries. Galaxy
boosts developer productivity in two significant ways. First, Galaxy
defines binary resource objects such that application behavior is
specified visually in the Visual Resource Builder, instead of procedurally
through modifying and recompiling application code. Second, Galaxy's class
managers provide much of the functionality previously written by
developers to build large-scale graphical applications. Some selected
examples of Galaxy s architectural depth follow:

Class Managers

Galaxy Libraries are organized into a set of class managers in the C
language version and true AT&T standard-compliant C++ classes in the C++
version. Each Galaxy class manager is a relatively self-contained group of
functions (or methods) and associated data that provide a distinct class
of operations, such as the Text Manager, described below. In Galaxy, each
class manager accesses only the public, documented interface of the
lower-level services it requires. This policy ensures that abstractions
have been rigorously researched and that no entry points are present
simply to satisfy a specific need of a higher-level manager. Also, making
all entry points public allows Galaxy developers to add value to any
services that fail to satisfy their specialized needs. Galaxy can be
extended without source code. The C version of Galaxy includes a Galaxy
Class Manager that is used to perform operations on the other class
managers. With the Galaxy Class Manager, it is easy and straightforward to
subclass existing Galaxy objects to create custom Galaxy objects. With
Galaxy C++, standard C++ mechanisms are used to operate on Galaxy
objects.

The Command Manager

The Command Manager works in conjunction with the Class Manager to separate
application code from the implementation of the user interface. The
linkage between the user interface and the actions implemented by the
application is expressed visually in the Galaxy Visual Resource Builder,
without application code. An application simply defines the set of actions
it can perform and "exports" these actions in the form of a command table.
The Command Manager provides flexible mechanisms for managing the stream
of commands delivered to Galaxy applications, including other Galaxy
applications residing on the network.

The Text Manager

Nearly every application allows the user to enter text. Galaxy includes a
Text Manager--an extremely high-quality text field--as a standard user
interface object. The Galaxy Text Manager handles text processing,
formatting, and editing of large bodies of text. Since text storage
functions are separated from the actual editing process, the Text Manager
can be used as a text engine. The Text Manager supports embedded graphics,
multi-styled text, multiple fonts and font sizes, and interactive rulers
with multiple tab and margin types. The Text Manager can be used as the
heart of any text editing application.

The Spring Manager

The Galaxy Spring Manager provides the application developer with an
extremely sophisticated yet intuitive geometry management system called
"Springs and Struts". Springs and Struts are flexible and rigid
connections, and relationships, among user interface objects and windows.
Through the Visual Resource Builder, the developer uses Springs and Struts
to quickly and easily create graphical user interfaces with outstanding
functionality and complete portability. Galaxy manages all cross-platform
differences, including re-sizing windows based on the sizes of the objects
in the window, the nature of the connections among them, and the
user-selected look-and-feel. Galaxy applications can even re-size user
interface objects to accommodate text label size changes caused by local
languages--automatically and without developer involvement.

SUMMARY

The forces shaping the computer industry have converged on the problem of
developing the next generation of corporate applications. Many new tools
have entered the market to solve this problem. The Galaxy Application
Environment breaks through the clutter in the tools marketplace with a
field-proven solution. Galaxy enables application developers to build the
next generation of large-scale, mission-critical applications that are
portable, distributed and cross-platform.

Galaxy customers include corporations from a wide range of industries that
are developing applications for strategic advantage, as well as
significant commercial software developers in markets from CASE to CAD.
Developers across industries have committed to Galaxy because its mature
object-oriented architecture provides concrete support for overcoming the
most challenging obstacles in the application backlog in a cost-effective
manner. Galaxy customers have consistently discovered greater
functionality, greater performance, and greater productivity than they
thought possible, allowing them to complete critical application projects
on-time and under-budget.

The current wave of departmental client/server applications has already
begun to find its limits in terms of both scalability and performance.
Galaxy provides a compelling means of building the next generation of
mission-critical applications capable of satisfying the demands of the
downsizing need. The Galaxy architecture, object-oriented technology, and
distributed design have distinguished this environment as the only
cross-platform development product for building graphical, distributed,
mission-critical applications. Visix is dedicated to establishing and
maintaining Galaxy at the forefront of this market by making Galaxy
application developers the most productive in the marketplace.

 ============================================================
 From the  'New Product Information'  Electronic News Service
 ============================================================
 This information was processed from data provided by the
 above mentioned company. For additional details, contact 
 the company at the address or telephone number indicated.
 OmniPage Pro is now used for converting all printed input! 
 ============================================================
 All submissions for this service should be addressed to:
 BAKER ENTERPRISES,  20 Ferro Dr,  Sewell, NJ  08080  U.S.A.
 Email: RBakerPC (AOL/Delphi), rbakerpc@delphi.com (Internet)
 ============================================================
