|
|
Sage-ST ä Notes |
Abstract
What is Sage-ST ä ?
Sage-ST ä is a comprehensive set of reusable application development tools that combine synergistically to form a highly efficient persistent-object oriented development paradigm. Sage-ST is an extensible Ada development tool set designed to simplify the integration of state-of-the-art technology into Ada projects. Using Sage-ST, programmers can develop major systems, leveraging off of standard objects and tools available from a variety of sources, that are viable competitors in the marketplace.
Windows ä development using Sage-ST involves the use of THOR, a persistent object editor that provides graphical as well as text based data driven user interface design, database schema definition, and visual design and development environment using Sequence Object Technology (SOT).
Sage-ST elevates the level of abstraction for Windows development through the use of SAGE objects. Though the developer is not required to understand the numerous messages and functions required by the Windows API, Sage-ST is powerful and may be extended by developers through the creation of domain specific objects.
Who uses Sage-ST ä ?
The SAGE system began at the Idaho National Engineering Laboratory (INL) in 1982. In 1987 it was made available in the Ada programming language for use on U.S. Marine Corps projects. Since then, Sage-ST has been used by all of the major services of the Department of Defense (DoD), the Department of Energy (DOE) and private industry. It is available through many distribution channels to government, academia and private industry.
Where can one get Sage-ST ä ?
At the present time, any individual may acquire Sage-ST versions 5.0 and earlier from the following sources:
The trial version of the latest release is included on the Sage-ST 97 CD3 that can be acquired through the sources noted above. Commercial and/or private parties interested in the full capability version should contact:
|
Technology Transfer Office
|
How extensive is Sage-ST ä ?
During Sage-ST development, application development tools and associated system development methodologies are created that maximize the effectiveness and productivity of Ada system developers. The Sage-ST system is comprised of over 750,000 lines of code and supplies a wide range of capabilities from low level sort and bit manipulation procedures to visual object design and development in the Microsoft ä Windows environment.
Does Sage-ST ä support the Open System Environment?
The Sage-ST development team is committed to supporting the Open System Environment standard. At the current time, Sage-ST provides support in the following ways:
Does Sage-ST ä support and produce COE compliant components?
Sage-ST has been evaluated against the DoD's Defense Information Infrastructure (DII) Common Operating Environment (COE) criteria to determine its suitability to assist in the development of compliant components. There is an area in the database validation criteria which is not yet fully compliant, but which will be upgraded to full compliance within the second quarter of fiscal year 1997. A second area, the long file name (UNICODE) requirement in the PC BASED COE draft document, will also be upgraded in the second quarter of fiscal 97.
On what platforms is Sage-ST ä available?
Versions of Sage-ST tools and reusable packages are available in a variety of environments. Sage-ST is now available on the following hardware platforms:
|
Current Platforms |
||||
|
Host |
Operating
|
|
Compiler
|
Compiler |
|
INTEL 32-bit |
MS-Windows NT 4.0/Windows 2000/Windows 95/Windows 98/Windows ME |
6.0.1 |
StonyBrook |
Ada Build 26 & Modula-2 Version 4 |
|
INTEL 32-bit |
MS-DOS |
6.0.1 |
StonyBrook |
Ada Build 26 & Modula-2 Version 4 |
Older versions of Sage-ST tools and reusable packages were available in a variety of environments. Sage-ST has been available on the following hardware platforms:
|
Current Platforms |
||||
|
Host |
Operating
|
|
Compiler
|
Compiler |
|
INTEL 32-bit |
MS-Windows NT 3.5 |
5.1 |
Thomson |
ActivAda/NT 5.5 |
|
INTEL 32-bit |
MS-Windows NT |
5.1 |
Thomson |
ObjectAda 7.0 |
|
INTEL 32-bit |
MS-Windows NT 3.5 |
5.0 |
GNU |
GNAT 3.01a |
|
INTEL 32-bit |
LINUX |
4.2 |
GNU |
GNAT 2.07 |
|
INTEL 16-bit |
MS-DOS 3.3 - Current |
4.1.6a |
Alsys |
FirstAda 5.1.2 |
|
INTEL 16-bit |
MS-DOS 3.3 - Current |
4.1.6a |
Rational |
OpenAda 286 4.1.4 or OpenAda 386 4.1.4 |
|
INTEL 32-bit |
Interactive Unix 3.0 |
3.2.1 |
Alsys |
Alsys Unix Ada 5.2.1 |
|
INTEL 32-bit |
MS-DOS 3.3 - Current |
4.2 |
Alsys |
386 ActivAda 5.3 |
|
INTEL 32-bit |
MS-DOS 3.3 - Current |
4.2 |
Rational |
OpenAda 386 4.1.4 |
|
INTEL 32-bit |
Open Server 3.0.0 (SCO Unix) |
4.1.6 |
Alsys |
Alsys Ada 5.5 |
|
INTEL 32-bit |
Open Server 3.0.0 (SCO Unix) |
4.1.6 |
Janus |
Janus/Ada 2.2.2a |
|
INTEL 32-bit |
Open Server 3.0.0 (SCO Unix) |
4.1.6 |
AETech |
XAda 5.1.0B |
|
AT&T 3B2 |
AT&T System V 3.2.3 |
4.2 |
Rational |
Verdix Ada 6.04 |
|
Sun SPARC |
Solaris 2.4 |
4.2 |
Rational |
Sun Ada 2.1.1 |
|
Sun SPARC |
Sun OS 4.1.3
|
4.1.6b |
Rational |
Apex 1.43 |
|
Sun SPARC |
Solaris 2.4 |
4.2 |
GNU |
GNAT 3.03 |
|
HP 9000 |
HP_UX 9.0 |
4.2 |
Alsys |
Alsys Ada 5.5.3 |
|
IBM RS/6000 |
AIX 3.2.2 |
4.1.4 |
Alsys |
Alsys Ada 5.4 |
Will Sage-ST systems survive the year 2000?
Sage-ST is designed to traverse the year 2000 with no ill effects. Ever since its initial creation, Sage-ST database systems have stored the complete year for each of the date formats. Even though a display format that does not include the full year might have been chosen, internally all of the digits are stored. Date differences and Julian dates are also designed to take into account the unique features of a special century.
Can Sage-ST be used to develop large systems?
Sage-ST is written in Ada, and has been used to successfully implement small to very large systems, supporting both large program and large data capacity requirements. Systems have been developed which use millions of records in each relation table. Some of the important capacity constraints are shown in the following table.
|
|
|
|
|
Relations (flat files/tables) per data dictionary |
1,000 |
|
|
Attributes (fields) per relation |
500 |
|
|
Indexed attributes per relation |
500 |
|
|
Forms per data dictionary |
60,000 |
|
|
Record (tuple) size (bytes) |
32,000 |
|
|
Field (attribute) size (bytes) |
|
|
|
|
Fixed length |
32,000 |
|
|
Variable length |
2,147,483,000 |
|
Significant digits per number |
60 |
|
|
Records (tuples) per relation |
2,147,483,000/Record Size |
|
|
Name length (characters) |
312 |
|
Are training and support available?
Beginning, advanced, and graphics training courses are available at a customer's location. The Sage-ST Users' Group supports registered users with an Internet e-mail address (warren.merrill@inl.gov), a technical support line (208) 526-0656), new release upgrades, a World Wide Web site (homepage.htm), a newsletter, and other training and assistance. There is further information on how to join the Sage-ST Users' Group or how to acquire Sage-ST training on this web site..
How is Sage-ST maintained?
The INL (a DOE laboratory) and the DoD support Sage-ST. Work is currently underway for conversion to other computer platforms, open system architecture adherence, object-oriented support, and other areas.
Does Sage-ST support the development of relational databases and, if so, does it support Codd's rules?
One of the many features of Sage-ST is its support for relational database development. E.F. Codd, a mathematician, first defined the relational rules, which were presented in a paper published in ACM Communications, June 1970. In 1985 he summarized a foundation principle and twelve rules that should be adhered to by a relational system. He stated that a database system fulfilling at least half of these rules and having the capabilities eventually to fulfill all of them can be considered relational. The following table indicates the adherence to these rules by Sage-ST, ANSI SQL (the source for FIPS 127 and FIPS 1271), and IBM's DB2, which is considered by Mr. C. Date of the Relational Institute to be the leading SQL representative database.
|
Codd's Rule |
Description |
Sage-ST |
ANSI SQL |
IBM DB2 |
|
0 |
Foundation Principle |
P |
P |
P |
|
1 |
Information Rule |
Y |
Y |
Y |
|
2 |
Guaranteed Access Rule |
Y |
N |
P |
|
3 |
Missing Information Rule |
P |
N |
P |
|
4 |
System Catalog Rule |
P |
N |
Y |
|
5 |
Comprehensive Language Rule |
P |
P |
P |
|
6 |
View Updatability Rule |
N |
N |
P |
|
7 |
Set Level Updates Rule |
P |
P |
Y |
|
8 |
Physical Data Independence Rule |
Y |
Y |
Y |
|
9 |
Logical Data Independence Rule |
Y |
P |
P |
|
10 |
Integrity Independence Rule |
P |
P |
P |
|
11 |
Distribution Independence Rule |
P |
? |
IS |
|
12 |
Nonsubversion Rule |
Y |
? |
Y |
|
Y = Yes |
|
N = No |
|
P = Partial |
|
IS = Intended Support |
|
? = Unspecified |
Does Sage-ST have a Data Dictionary?
A data dictionary contains the data structure (schema) and often other ancillary information about the data and its structure. Sage-ST 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 Sage-ST?
Sage-ST provides
many levels of security. Password protection at the database, relation (flat file),
and individual attribute (column) level provide access security. Passwords are
defined with the data dictionary and enforced throughout the system for both
programmers and users. Dynamic user specific passwords and password registration
groups are also supported. In addition, Sage-ST supports data integrity checks.
Additional security is often required within applications. Many such
applications have been implemented using Sage-ST, with additional protection
provided through tables that contain user identification information, statistical
information, and network and system information concerning user logon identifiers
and privileges.
Does Sage-ST recognize SQL statements?
SQL is usually associated with a Relational Database Management System (RDBMS).
Sage-ST provides an SQL capability but is primarily an application development tool
that provides facilities for creating an application specific relational database.
Sage-ST provides both an embedded SQL technology which may be implemented
within an application, and an interactive SQL processor adapted to comply with
ANSISQL DML Level 1.
Does Sage-ST support multi-user system development?
Sage-ST provides for both single- and multi-user systems. Both types of systems have been represented in fielded applications. A Sage-ST multi-user system allows users to share data. A Sage-ST multi-user system also allows users to distribute processing of database management and locking functions, with each user contributing their CPU to the process. This concept is used for local area network (LAN) applications.
Are there audit trail and recoverability features in Sage-ST?
The capability to record all transactions and roll forward from previous dates gives an audit trail and recovery capability. These features are often provided within database management systems, and are provided with Sage-ST as a logging option. However, they are seldom used in final applications because of the excessive time and data storage requirements. An application using Sage-ST may be developed to provide full or partial capabilities in this area using the Ada language and Sage-ST provided packages. More often, applications regularly backup or copy current data to another device to provide data recoverability. Sage-ST also provides a facility to rebuild or recover current database information in place.
Will Sage-ST interface to DBMS's and development systems?
Sage-ST works very well with other database and development systems. It does not
require a concurrent process to be executing and managing resources and therefore
does not compete with other database systems which do. Sage-ST may move data
between systems using some common file formats, or the Ada language may be used
directly, and much more quickly, to move data from a data source into a Sage-ST
application or in the reverse direction. The only requirement for this is that the
DBMS support an Ada interface.
Sage-ST provides an Open Data Base Connectivity (ODBC) driver in both 16 and 32 bit
versions to allow external access to Sage-ST tables and an Ada package which allows
convenient access to other database information through their ODBC interfaces.
How efficient is Sage-ST compared to other systems?
Typically, Sage-ST offers maximum efficiency in application code size, speed of
execution, and data storage size requirements when compared with other development
systems. Sage-ST applications are written in Ada and are therefore optimally
compiled and linked. Extensive effort has been put forth in checking and optimizing
Sage-ST algorithms and packages.
In recent comparisons with some of the most popular and efficient DBMS's available
under the Microsoft Windows system, Sage-ST was consistently much faster in
execution and more efficient in data storage in almost every test. In some cases,
Sage-ST was 100 to 1000 times faster. These tests included database loading,
unloading, index searching, positioning, modifying, updating, deleting, and complex
queries.
Is Sage-ST a code generator?
The application paradigm supported by Sage-ST results in applications that are data driven. These data are 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. Code generation is performed for event handling procedures using the new Sequence Object Technology (SOT).
Are Sage-ST packages reusable?
Sage-ST 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 database or user interface facilities. These include libraries for sorting,
data movement, binary operations, bit manipulations, graphics, string manipulation,
and others. There are also packages that directly access the database system and
the user interface facilities.
Sage-ST is based on the concepts of object-oriented design and software reuse.
Individual packages adhere to the concept of "black box" modularity, which
emphasizes code reuse through data encapsulation and extensibility through
inheritance. All packages are loosely coupled and highly cohesive at their level of
abstraction. All of the Ada packages provided are designed to be understandable,
useful, and usable.
Does Sage-ST support graphics development?
Sage-ST supports application graphics under the MS-DOS and WIN32 operating systems. This graphics support includes the following:
|
Low level support |
||
|
|
|
ANSIGKS Level ma |
|
|
|
|
|
|
Intermediate level support |
|
|
|
|
Primitive Calls Rotatable Arc, PolyLine, Rectangle, Rotatable, Scalable Text and BitMapped Text |
|
|
|
Input, System, Window, Device, Font, and Locator Calls |
|
|
|
PCX Graphics File Calls |
|
|
|
|
|
|
High level support |
|
|
|
|
2D Graphing Package Pie, Bar, XY, Area and Line Charts |
|
|
|
Graphical User Interface Package Menu bar, Pulldown Menus and Popup Menus |
|
|
|
Data driven graphical reports edited in THOR |
Can Sage-ST be used to develop Microsoft Windows applications?
Sage-ST has moved to Windows. Sage-ST version 5.1 has been released for Windows
NT
ä
and Windows 95
ä
. The emphasis on future enhancements to Sage-ST (particularly those
involving user interfaces) will be in the Windows development area. Sage-ST
facilities are also available as Dynamic Link Libraries (DLL's). Concepts such as
Custom Controls, ODBC interfaces, resource editors, and visual object programming
are now available in Sage-ST to provide convenient access to Windows facilities
and advanced object-oriented techniques.
Ada applications may now easily use Sage-ST for windows as well as access many
other components and facilities commercially available as DLL's, EXE's, OCX's, etc.
Through the use of Ada and Sage-ST, the developer may truly integrate the best
technology available for an application.
Of course, there are Sage-ST applications already fielded that run under the MS-DOS
operating systems. Sage-ST will continue to be maintained and available on that
platform. Many developers have expressed concern regarding the impact that moving
to Windows will have on their applications. With Sage-ST, developers will have
several options on how they implement their systems under Windows.
|
1) |
|
Windows DOS Box
|
|
2) |
|
SAGETerm
|
|
3) |
|
Build your own Windows
|
|
4) |
|
THOR Windows
|
|
5) |
|
THOR Windows Sequences
|
How to establish a business relationship with the Sage-ST team at the INL?
Initiating a business relationship with the INL is a straightforward and rapid process. If you have identified a unique technology at the INL which you would like to have transferred to your agency through a cost reimbursable Work for Others (WFO) agreement, do the following:
|
1) |
|
Prepare a letter of request to the Department of Energy Idaho Operations Office (DOE-ID). Your point of contact at the INL will provide you with a sample letter. |
|
2) |
|
Once your request letter has been received your request will be reviewed and upon approval you will receive a letter of acknowledgment from DOE-ID. |
|
3) |
|
At this point you will work with your technical contact at the INL to determine work scope and costs associated with the project. Once funding has arrived the project can be initiated. |
Plan on about two weeks for the approval process to be completed.
Send mail to
warren.merrill@inl.gov
with questions or comments about this web site.
Copyright © 1989-2006 Battelle Energy Alliance