dkFlyer

Presentation


The Total Solution and Beyond


(Original writing: June, 1996.)

Programming for a Changing Industry

Choosing Hardware

Choosing the Right Operating System

Software Programming

DataBase

DataBase Programming

DataBase Wish List

Linux as an Alternative

Raid Server


Programming for a Changing Industry

Hardware

Nobody knows what Hardware Technologies will come within the next five (5) years.
The introduction of �MMX� has overnight made all PC�s absolutely obsolete - even the most expensive Pentium Pro 200�s. 3-D video technology has raised the bar on graphic processing. NC�s (Network Computers) and WebTV are changing the way we view the PC.

Software

Nobody knows which Operating Systems or what Software will dominate the industry five (5) years from now. The current wave of Operating Systems includes Microsoft Windows 95 and UNIX. The last wave included VAX and Macintosh, while �DOS was dead�. Now, VAX is �passé�, while Macintosh is staggering.

Total Design

Choosing the Total Design for Hardware, Operating System(s), Programming Language(s) and DataBase(s) must be done for this rapidly changing industry!
The alternative is to repurchase or completely rewrite the entire application "every couple of years".

Choosing Hardware

Build PC�s

It takes twenty (20) minutes to build a PC Computer.
Building the PC Computer (compared with purchasing whole systems):
  • should save hundreds of dollars per computer,
  • could save hundreds of dollars more by building lesser systems (for example, without sound cards),
  • could save hundreds of dollars more by utilizing standard components,
  • would be much more upgradable,
  • would be much more serviceable,
  • would make the systems components transferable between computers.
Then, if the Total Design would support it, hardware could be replaced and passed down to lesser uses (such as Print Servers) once they have become too obsolete to keep up with current technology.

Super Servers

The Super Servers can also be built at considerable savings of literally thousands of dollars.
Hardware Search Engines exist that dramatically speed up DataBase Applications. It includes String Comparison Algorithms and Memory Caching to perform up to 500 times faster than normal systems. It also includes drivers to allow most SQL Engines to access the card and includes the "C" source code for directly accessing the card.
Symmetrical Multi-Processor Servers and Parallel Processing Servers also increase Server Speed (although you have to program for them using a Parallel / Symmetrical Compiler).
The Motorola Chip is outperforming the Intel Chip. The RS6000 Chip is outperforming the Motorola Chip. The Alpha Chip is outperforming the RS6000 Chip.

Choosing the Right Operating System

Servers

Every Operating System has it�s own advantages and disadvantages.
As a result, choosing one Operating System on a large network for every computer, from Servers all of the way down to the DeskTop is not the best choice for the Server.
DeskTop computers could run with Windows, Windows for WorkGroups, Windows 95, Windows NT WorkStation, OS/2, Macintosh, UNIX or Terminals.
Small Group Servers could run Windows NT Server, OS/2 Server, Mac Server or UNIX (preferable).
But, Large Network Servers and Large Network Print Servers should both run on UNIX, only.
UNIX has proven to be the only Operating System capable of running dependably in a Mini or Micro Multi-User and Multi-Tasking Environment.

Software Programming

Inter-Connectivity

Mixing Operating Systems requires the ability to Inter-Connect the DeskTop Computer with the different Servers. TCP/IP Networking (with NFS) has become the Singular Network of choice to this mix.
But, just as important is the ability for Application Software to Inter-Connect, too.
It would be extremely advantageous to have the Software Programs perform tasks on the Operating System that would make that particular task the most efficient.

Cross-Platform Programming

Cross-Platform Programming could allow for Any Operating System to be included in the Total Design. The only True Cross-Platform DataBase and Programming Language is in the "C-Family" (C to C++ to Java).
By utilizing "C", the Total Design could include ANYTHING! There would be no "Site Licenses". There would be no "Per-User Purchases".

Software Coding

There are literally thousands of Libraries available for the "C-Family".
There are Libraries available for everything from Databases, Images, Graphics, Networking, Communications, Spreadsheets, Word Processing, Browsers - all the way up to Virtual Reality and Artificial Intelligence.
Many of these Libraries are Free to copy and use, while some have to be purchased (but for pennies on the dollar compared with the alternative of actually writing them from scratch). Most of these Libraries are constantly being improved by the teams involved in maintaining them.
Many of these Libraries are extremely valuable to creating an Application based on the Total Design concept. Some can be directly included and modified (such as "J-Peg" file reading/writing), while others (such as Libraries that are being maintained by a vendor) should be "Inherently" included by adding the original, unmodified code to the program, then creating modified, Inherited Functions for specific purposes. In this manner, a vendor can periodically update without major concern of overwriting specific modified coding.

DataBase

The Perfect DataBase

No "Perfect DataBase" currently exists.
Some are too complicated. Some are too slow. Some are too restricted either in commands or operating systems or both. Some are too intense.
None have even half of all the capabilities that we need although most allow programmers to extend the DataBase language by using "C".
Although ODBC is a helpful Band-Aid, it is NOT the answer.
The only way to get the Perfect DataBase is to create one. The question is "How?".

The Relational DataBase (Tables and Indexes)

The Primary Issues in creating a Relational DataBase include compatibility and speed.
In tests performed by myself and by leading journals, the FoxPro structure has proven to be one of the fastest formats for actually storing information into Indexed Tables.
In addition, FoxPro allows for Compound Indexes (storing multiple indexes into one index file), Compound Indexes - again (storing indexes of combining two or more fields), "Blob" style fields (storing unlimited text or images, sounds, etc), multiple data and index files (allowing storage across multiple devices / hard drives), storing virtually unlimited record numbers and can be accessed through FoxPro (of course) as well as ODBC connections, if necessary to provide versatility.
Further, the Source Code for FoxPro Databases (Tables and Indexes as well as FoxPro normal and SQL routines) can be purchased in Cross Platform for "C" and "C++" to fit the Total Design Concept, as well as for Pascal (including Delphi) and Basic (including Visual Basic) to provide additional versatility.
So, the "How?" begins with choosing the combination of the FoxPro Database Style with the Source Code for FoxPro Databases.

The DataBase Application

The Primary Issues in creating a DataBase Application include versatility, expandability, ease of development and ease of use, as well as the ability to enhance the DataBase Application to other Software Applications.
Although it is the primary target to develop all software applications in the Cross-Platform C-Family, the ability of the FoxPro Relational DataBase, combined with availability the source code for four (4) additional languages and with the availability of ODBC make it the best choice of the DataBase to create the DataBase Application.

DataBase Programming

DataBase Coding

The DataBase Application should not modify the default FoxPro DataBase (Tables and Indexes). This will allow compatibility with external applications, such as FoxPro and ODBC. This will also allow updates to the general DataBase Structures to not interfere with the Enhanced DataBase Functionality.
However, it should include Parallel Definitions for Defaults including Formatting, Field Defaults, Help, etc. It should include a Dictionary of the entire DataBase including Relations between Tables. It should include Management Functions and Back-Up Functions.

Advantages

  • Speed of application vs. DataBase languages - any program compiled in "C" will significantly outperform a similarly written program written in any DataBase language.
  • No language limitations - by utilizing "C", the DataBase could include ANYTHING!
  • Can run on DOS, Windows, VAX, Macintosh, Mainframes, OS/2, Windows NT, UNIX (Linux, HP-UX, Sun, SCO, Univel, AIX, A/UX, etc), etc.
  • The "C" program can be compiled from the same source code starting from an 8-Bit Compiler all of the way through to a 64-Bit Parallel Processed Compiler and to the 128-Bit Mainframe.

DataBase Wish List

Coding

  • Object Oriented (C / C++ / Java including inheritance)
  • Cross Platform - Portable and Expandable

Data and Data Security

  • Cross Device Storage
  • Data Compression
  • Data Encryption

Dictionary

  • Data Dictionary to include:
    • Default Format
    • Default Verification
    • Default Labels and Help From Lookup Table for Multi-Lingual Label, Quick Help, Full Help

Style

  • SQL and 4GL routines
  • C-ISAM capabilities
  • Preset Relations
  • Default Open and Close of Tables
  • Client and File Server
  • Client to allow return of 'Partial Data' (similar to Internet Search)
    • for example,
      • 'ST = "OH", 1, 23' to return first 23 records,
      • 'ST = "OH", 24, 23' to return next 23 records,
      • 'ST = "OH", -11, 24, 11' to return 23 records around a match
  • 24-7 Operation
  • Back-Up operations allowing for:
    • Sorting Data (defragmentation)
    • Holding Data
    • RAID #5 (Mirror)
  • Local or Designated Storage for Temporary Files (per user)
  • "Who" Tracking
  • Self Monitoring
  • Record Locking only when necessary with comparisons - real record, comparison record, changed record
  • Access Restrictions (from outside DataBase)
  • Store Procedure for Insert vs. Update

Misc

  • Report Writer (to also be used as Word Processor)
  • Screen Generator (Monitor and Printer)
  • Swapped Executables

Linux as an Alternative

Advantages

  • Linux is an extremely well written, dependable Operating System.
  • Linux is easily networkable for both Linux to Linux and Linux to everything else.
  • Internet capable.
  • More security than DOS / Windows.
  • Browser user friendly.
  • Can run Linux Browser, Netscape, Mosaic, etc
  • Can potentially utilize WebTV.
  • Can connect via e-mail or fax.
  • Can allow for multi-user logins.
  • Virtually no technical obsolescence.
  • Developed by the "Whole World".
  • Ability to enhance relatively easily and without restrictions.
  • Can be run in character mode on multi-user UNIX with terminals.
  • Object Oriented Development.
  • Comes with Source Code (can be re-used for other Applications).
  • Includes number of programs.
  • Practically "FREE" for all computers.
  • Totally customizable for each computer / user.
  • Can run on minimal 8088 through maximum 64-Bit Super Server and everything in-between.
  • Distributed Inter-Process Communication (DIPC).
    It enables you to build and program multi-computers very easily.
    It provides, among other things, Transparent Distributed Shared Memory (DSM).

Raid Server

Especially the Main Server (but perhaps the Minor Servers, too) should Replicate to a �Little Sister� Raid #5 (Mirror) Server. This Server does not have to have the full power of the Main Server, but should store an identical copy of the File System. The cost should be relatively insignificant since it should be able to replace the necessary Raid Hard Drives on the Main Server. It could also act as an Operational Server in an Emergency and could be additionally used to create the back-up tapes.


Author: Dennis Kennedy
Copyright © 1996 dkFlyer
If you have any questions, email me.

Hosted by www.Geocities.ws

1