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.