Database Application Development Tool for Ada

Move to top-level taxonomy
Move to keyword list


See docs
Howard D. Stewart
Kenneth D. Russell
Paul H. Whittington
Idaho National Engineering Laboratory (INEL)
Special Applications Unit
P.O. Box 1625, Idaho Falls ID 83415-1609
Released to the Ada community - unlimited distribution
Copyright 1987-1994 INEL
Not documented in PAL database


Directory Display

  File Name                 Size
  ---------                 ----
  cdrom#001/                 512
  dos/                       512
  emg/                       512
  newsletters/               512
  unix/                      512

  ==============  ==============
    5 Files                2,560


                              AdaSAGE Notes
                            Howard D. Stewart
                           Kenneth D. Russell
                           Paul H. Whittington
                  Idaho National Engineering Laboratory
                        Special Applications Unit
               P.O. Box 1625, Idaho Falls  ID  83415-1609
                             January 1, 1993
     AdaSAGE is an application development tool for Ada programmers
     implemented as a set of Ada packages and a set of executable
     programs used as support utilities during application development
     and operation.  Many questions have been asked regarding the
     characteristics of AdaSAGE (i.e. Is AdaSAGE relational?). Herein
     several such questions are posed and answered.
     AdaSAGE is an application development tool that provides facilities
     for creating an application specific relational data base.

What is the purpose of AdaSAGE?
AdaSAGE was designed to provide tools and an environment for Ada
programmers to develop major non-proprietary systems completely in Ada
which are as good as or better than systems developed using alternate

Who uses AdaSAGE?
The SAGE system began at the INEL (Idaho National Engineering
Laboratory) in 1982.  In 1987, it was made available in the Ada
programming language for use on U.S.  Marine Corps projects.  Since
then, it has been used by all of the major services of the DOD
(Department of Defense) and for system development within the DOE
(Department of Energy).  It has been made available through a variety of
distribution channels to both government and private industry.

Does AdaSAGE require a license?
AdaSAGE is a non-proprietary government domain product which does not
require a license for development or application sites.  It may be
acquired from one of the following sources (a user group fee or handling
fee may be required):

  AdaSAGE Users' Group
  Idaho National Engineering Laboratory

  Office Of Scientific Technology Information
  P.O. Box 62 
  Oak Ridge, TN  37831
  (615) 576-1166

Is AdaSAGE written in Ada?
AdaSAGE reusable Ada packages are 100% Ada code.  In the MS-DOS
environment, approximately 5% of AdaSAGE is written in assembly language
to provide optimal interface to low level hardware that is not readily
available to MS-DOS.

How extensive is AdaSAGE?
During AdaSAGE development, extensive effort is expended to create
application development tools and associated system development
methodologies that maximizes the effectiveness and productivity of Ada
system developers.   The AdaSAGE system is comprised of over 300,000
lines of code representing over 250 person-years of effort with an
average cyclomatic complexity of 4, as measured by a standard code
metric analysis tool.   

Does AdaSAGE support the Open System Environment?
The AdaSAGE development team is committed to supporting the Open System
Environment standard.  At the current time AdaSAGE provides support in
the following ways:

  Ada AdaSage is written in Ada. 
  SQL Interactive and imbedded SQL is provided. 
  GKS Standard GKS is provided. 
  POSIX AdaSAGE is available on POSIX systems. 
  GOSIP AdaSAGE supports multi-user development on GOSIP networks
On what platforms is AdaSAGE available?
Versions of AdaSAGE tools and reusable packages are available within a
variety of environments.  AdaSAGE is now available or will be available
soon on the following hardware platforms:
  Intel 8088
  Intel 8086
  Intel 80286 Real and Protected Mode
  Intel 80386 Real and Protected Mode
  Intel 80486 Real and Protected Mode
  AT&T 3B2
  AdaSAGE runs under the following operating systems:

The AdaSAGE application development system is available for the
following Ada compilers:

Is training and support available?
Beginning, advanced and graphics training courses are available at the
INEL or at a requested location if a sufficient number of students is
available.  The AdaSAGE Users' Group supports registered users with a
technical support line, new release upgrades, a bulletin board, a
newsletter and other training and assistance. For more information,
contact the AdaSAGE Users' Group at (208)526-0656.

Is AdaSAGE maintained?
AdaSAGE is supported by the Idaho National Engineering Laboratory (a DOE
laboratory) with funds supplied by the AJPO (Ada Joint Program Office)
and other DOD agencies.  A long term agreement is in place between the
DOE and DOD for continual support in the future. Work is currently
underway for conversion to other computer platforms, open system
architecture adherence, and other areas.

Does AdaSAGE have a Data Dictionary?
A data dictionary contains the data structure (schema) and often other
ancillary information about the data and its structure.  AdaSAGE
supports an independent data dictionary and a facility for defining,
modifying, and reporting on this information.  This capability allows
many different applications to access the same data dictionary and
provides physical and logical data independence as specified in rules 8
and 9 of Codd's Rules.

What security support is included in AdaSAGE?
AdaSAGE provides many levels of security.  Even though data integrity
checks are a form of security and provided by AdaSAGE, they will not be
discussed here.  Access security is provided by password protection at
the database, relation (flat file), and the individual attribute
(column) level.  These are defined within the data dictionary and
enforced throughout the system for both programmers and users. 
Additional security is often required within applications.  Many such
applications have been provided using AdaSAGE with additional protection
through user tables which contain user identification information,
statistical information, and network and system information concerning
user logon identifiers and privileges. 

Does AdaSAGE speak SQL?
Speaking SQL usually refers to an RDBMS, AdaSAGE is not an RDBMS.
AdaSAGE is an application development tool that provides facilities for
creating an application specific relational data base. There are two
aspects of SQL dialog to consider. First is listening to SQL and
responding by executing the requested command. Second is issuing SQL to
get a foreign system to execute some process on your behalf.  In the
first case AdaSAGE provides both an imbedded SQL technology and an
interactive SQL system adapted to comply with ANSI-SQL DML Level 1. In
the second case AdaSAGE does not provide any capabilities for creating
SQL commands, but since AdaSAGE is a set of Ada packages there is no
reason that a package could not be developed to do so.

Does AdaSAGE support multiuser system development?
AdaSAGE provides for both single user and multiuser systems.  Both types
of systems have been represented in fielded applications.  A unique
feature of the AdaSAGE multiuser system (MultSage) is the distribution
of not only the data to be shared by many users, but also the
distributed processing concept where each user contributes his CPU to
the multiuser database management and locking functions.  This concept
is used for LAN (local area network) type applications.

Are there audit trail and recoverability features in AdaSAGE?
The capability to record all transactions and roll forward from previous
dates gives an audit trail and recover capability.  These features are
often provided within data base management systems, and are provided
with AdaSAGE as a logging option, but seldom if ever are they used in
final applications because of the excessive time and data storage
requirements.  An application using AdaSAGE may be developed to provide
full or partial capabilities in this area using the Ada language and
AdaSAGE provided packages.  More often, applications regularly backup or
copy current data to another device to provide data recoverability.  As
well, AdaSAGE provides a facility to rebuild or recover current data
base information in place.

Will AdaSAGE interface to DBMS's?
Neither Codd's rules for a relational system nor ANSI SQL specifies the
physical storage format of data.  Logically, it must appear to be two
dimensional and is often referred to as being composed of relations (or
a less precise term, flat files).  Each data base system, therefore,
tends to have its own unique method of physical data storage.  A method
to move data between different systems is often required.  There are
some commonly used formats of files from which many DBMS's load and
unload data.  This is one method of interface between two DBMS's and is
supported by AdaSAGE.  With AdaSAGE, the Ada language may also be used
to directly and much more quickly move data from a DBMS into an AdaSAGE
relation or in the reverse direction.  The only requirement is that the
DBMS support an Ada interface.

Is AdaSAGE a code generator?
Currently there are no components of the AdaSAGE system that generate
code. The application paradigm supported by AdaSAGE results in
applications that are data driven. This data is contained in a data
dictionary containing information about the relational structure of the
application's data,  the application's user presentation  and various
other application specific information.

Are AdaSAGE packages reusable?
AdaSAGE provides many Ada packages, all of which are reusable.  Many of
them are independent and may be used within any Ada system without
causing the inclusion of the data base or user interface facilities. 
These include libraries for sorting, data movement, binary operations,
bit manipulations, graphics, string manipulation, and others.  There are
also packages which directly access the data base system and others
which access the user interface facilities.  AdaSAGE adheres to the
concept of "black box" modularity which emphasizes the reuse of code
through data encapsulation and extensibility through inheritance.  All
of the provided Ada packages are designed to be understandable, useful
and usable, and  are loosely coupled and highly cohesive at their level
of abstraction.

Does AdaSAGE support graphics development?
AdaSAGE graphics support is available on some platforms.  The graphics
support includes the following:
  Low level support
          ANSI-GKS Level ma 
  Intermediate level support
          Primitive Calls - Rotatable Arc, PolyLine, Rectangle, Rotatable,
  Scalable Text and Bit-Mapped Text
          Input Calls - Keyboard and Mouse
          System Calls
          Window Calls
          Device Calls
          Font Calls
          Locator Calls
          PCX Graphics File Calls
  High level support
          2-D Graphing Package - Pie, Bar, X-Y, Area and Line Charts
          Graphical User Interface Package - Menu bar, Pull-down Menus and
  Pop-up Menus
          Data driven graphical reports edited in THOR
  Device support
          Video - CGA, EGA, VGA
          Printers - EPSON-FX, EPSON-LQ, HPCL,  Postscript
          Mouse - Microsoft Mouse Driver
  Support Utilities
          Resource Compiler
          Stroke Font Editor
          Bit-Mapped Font Editor
          Cursor Editor

Note: due to the large size of AdaSAGE, a full directory display is
not provided in the PAL database.


June 3, 1993   Jon Jensen    Initial release to PAL
Sep 11, 1993   Jon Jensen    4.11 update
Nov 30, 1993   Jon Jensen    4.14 update
Sep 8, 1994    Jon Jensen    PAL Mirror of NAVAIR1 established
Now controlled by INEL thru SAGEFTP.INEL.GOV


This prologue must be included in all copies of this software.
Restrictions on use or distribution:  NONE


	This software and its documentation are provided "AS IS" and
without any expressed or implied warranties whatsoever.  No warranties
as to performance, merchantability, or fitness for a particular
purpose exist.
	The user is advised to test the software thoroughly before
relying on it.  The user must assume the entire risk and liability of
using this software.  In no event shall any person or organization of
people be held responsible for any direct, indirect, consequential or
inconsequential damages or lost profits.