|Symmetry Group Home Page| |Sapphire| |Std Object Types| |Updates & Maintenance| |Compilers & Platforms| |Terms & Conditions| |Sapphire License Agreements| |Price List & Ordering Information| |Sapphire Demo| |Support@SymmetryGroup.com|





What is Sapphire?


Sapphire is a complete and extensible Rapid Application Development system.

Complete: The Sapphire system integrates the screen display, data entry, data access, and application code access into a seamless with interactive design tools.

Unlike some systems that provide only the visual aspects, Sapphire automatically provides data access, display, and storage after data entry with no additional code.

Unlike most database systems, Sapphire allows access to data from an unlimited number of sources. It also provides seamless access to application specific code to perform any operations necessary without the typical "kludges" required by most database systems.

Unlike code generation systems, Sapphire requires no alteration to the generated code to access data or add features (alterations that are a nightmare to maintain when the screen modifications are necessary).

Rapid Application Design: Sapphire provides a Rapid Application Design system that allows the user interface and data access to be designed very quickly. After designing and testing the user interface, more complex application code can be generated and integrated into the system.

The Screen and Data are defined interactively in a Design Database using the Sapphire Designer. The Data Dictionary system allows existing databases to be accessed or new databases to be defined. Existing program variables can be accessed, or memory data can be defined and allocated.

Once the data is defined, screens are generated by simply specifying the Screen Objects that make up the screen, the Data Objects that they interact with, where they are to be located, and how they are to appear.

The Sapphire Designer provides a preview of the screen as it will appear in the application and allows interactive editing of the Screen Objects.

High Level Development: The development process proceeds at a high level with most of the platform and operating system details hidden. In fact, most developers will not need to have a detailed knowledge of the GUI (Graphical User Interface) or operating system API (Application Interface) to build Sapphire applications.

Once the application is defined, it is built into a Runtime Database. The code to create a simple application is limited to a few lines of code to initialize the system and start Sapphire. This code is provided in the form of demo programs that can be used with little or no modification.

Extensible: Sapphire can be extended in almost any direction.

New Screen Object Types can be added to provide new screen features. When the Screen Object Type has been defined, it can be placed on any screen. It can interact with any existing (or extended) Data Object.

The Data Dictionary can be extended to include new databases or other sources of data. After the extension has been defined, the extended Data Objects can be included in any existing (or extended) Screen Object.

Extending Event Handlers provides the simplest way to extend Sapphire. Event handlers can be created to access data in a unique way, to do major computations or analysis, to print reports, etc. Once a new Event Handler is defined, it can be attached to any Screen Object and made to respond to any Event message.

Seamless Development: The key to all the extensions is that they work seamlessly within the Sapphire Designer. The extended Screen Objects, Data Objects, and Event Handlers can be selected from lists of options. When they are selected, the design screens describe any necessary parameters, and the interactive help system contains detailed information about the new extensions.

This works particularly nicely with development teams. A senior developer can make the extensions that may be necessary. Once the extension are defined in the Design Database, they become available to all the team members without requiring each member to dig into the details of the interface or the complexity of the extension.

Powerful: The full features and power of C and C++ language (or other supported language) subroutines are available smoothly and without complicated "kludges" required by many 4GL systems. Simply make these subroutines Event Handler extensions and activate them from the application at the appropriate time.

Platform Independent: The Design Database is independent of the platform. After developing an application on one platform, it can be moved to another supported platform with minimal effort.

How does Sapphire Operate?

Runtime Database: The Runtime Database contains the definitions for the Data Dictionary, Screens, and Event Handling. The Runtime Database is created from the Design Database by the Sapphire Designer program.

Application Program: The application program consists of the Sapphire System runtime library elements shown in the figure, additional drivers, and application specific code.

The actual application program usually consists of a few lines of code to initialize the system and start Sapphire. This code is provided in the form of demo programs that can be used with little or no modification.

In most cases when additional application code is required, it is called by the Sapphire System via the Event Handlers in response to Event messages and other conditions.

Data Dictionary: To display data the Screen Executive sends commands to the Data Dictionary to get data from data storage (disk or memory) and convert it to the proper format for display. It also issues commands to move to the proper record or array element.

After new data is entered, the Screen Executive sends commands to the Data Dictionary to put data back to data storage.

The Runtime Database provides the definition of each Data Object, the Data Dictionary Driver required, and the parameters necessary for its access.

The individual Data Dictionary Drivers provide data access for various types of data. Sapphire comes with drivers for memory, SFILE (the Symmetry Group hierarchical database), Xbase databases, and text files. The Data Dictionary can be extended by adding drivers.

Image System: The Image System is organized quite similar to the Data Dictionary.

To display images the Screen Executive sends commands to the Image System to get image data from either the Runtime Database or a file and convert it to the proper format for display.

The Runtime Database provides the definition of each Image Object, the Image Driver required, and the parameters necessary for its access.

The individual Image Drivers provide data access for various types of images. Sapphire comes with drivers for cursors, icons, and bitmap images. The Image System can be extended by adding drivers.

Screen Executive: The Screen Executive controls the screen display and accepts Event messages to allow data entry and screen navigation.

The Runtime Database provides the definition of each Screen Object, the Screen Driver required, the related Data Object, and the parameters necessary for display and data entry.

The Screen Drivers are platform specific. A standard set of Screen Drivers are provided for each supported platform. The Screen Executive can be extended by adding drivers.

Event Router: The Event Router accepts messages from the keyboard and mouse (via the Operating System) as well as messages from the Screen Executive, the Operating System, and other sources and converts them to Event messages.

It then uses Screen Object Event definitions in the Runtime Database to route the Event messages to the Screen Executive or the proper Event Handler as necessary.

Normally application code is attached to the Sapphire System as a custom Event Handler that responds to appropriate Event messages.

Other Systems: There are a number of small systems included in the Sapphire System in addition to the major systems described above.

The Global Attributes are used by the Data Dictionary to provide national language and national data format conversion data for time, dates, etc.

The Name Lists are used to convert data codes to and from the text strings that they represent.

The Standard Text system provides text strings for use by the Event Handlers to display messages, headings, etc.

The Font system provides a selection of Fonts that can be used in Screen Objects.

The Color system provides a selection of Colors that can be used to set the text and background colors of Screen Objects.

Bar
Symmetry Group, PO Box 26195, Columbus OH 43226, 614-431-2667, 
800-346-3938, Fax: 614-431-5734
Bar

3/16/97