Sage-ST ä Notes


Abstract

Sage-ST ä , formerly known as AdaSAGE, is a comprehensive set of reusable application development tools that combine synergistically to form a highly efficient persistent-object oriented development paradigm. Many questions have been asked regarding the characteristics of Sage-ST ä . Herein several such questions are posed and answered.

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
Mr. Jeff Mobley, Mgr.
(208) 526-0556
E-mail: mobljw@inel.gov

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
System


Sage-ST ä
Version

Compiler
Vendor

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
System


Sage-ST ä
Version

Compiler
Vendor

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
(Solaris 1.1)

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.


Category


Constraint

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 127­1), 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 ANSI­SQL 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

 

 

ANSI­GKS Level ma

 

 

 

 

Intermediate level support

 

 

Primitive Calls ­ Rotatable Arc, PolyLine, Rectangle, Rotatable, Scalable Text and Bit­Mapped Text

 

 

Input, System, Window, Device, Font, and 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

 

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

The current version of Sage-ST allows a DOS Sage-ST application to run in a DOS box under Windows. This simply requires recompiling the application using a newer version of Sage-ST.

2)

 

SAGETerm

The current version of Sage-ST allows a DOS Sage-ST application to be run in text mode in a true Windows window called a SAGETerm. This allows the program to be a Windows application rather than a DOS application running in a DOS box under Windows. This may require a minimal code change (1-2 lines/program) and recompilation of the application using a Windows compiler. User interfaces do not require changes; all current forms and keyboards are supported.

3)

 

Build your own Windows

The current version of Sage-ST allows an application to be ported to Windows by using the underlying program logic with a traditional approach to building a Windows user interface. All application user interface elements must be redone using Windows resources. This option may require considerable code changes depending on the number of user interfaces the application contains. This solution requires knowledgeable Windows programmers to build and maintain the user interface.

4)

 

THOR Windows

The current versions of Sage-ST allows the application developer to develop the Windows user interface using THOR. Form translation from existing text based forms to Windows resources is provided and is a normal starting point for the conversion of a text based application into windows.

With the ability to produce user interfaces integrated into Sage-ST, application developers will be able to produce Sage-ST Windows applications without extensive knowledge of traditional Windows programming.

5)

 

THOR Windows Sequences

Sage-ST version 5.1 provides the developer with a visual object development environment using Sequence Object Technology (SOT). Objects provided within SAGE and external objects may be integrated using this technology to graphically design and develop partial or full systems which are completely compatible with other levels of the SAGE system.

 

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