|
Programming for a Changing IndustryChoosing HardwareChoosing the Right Operating SystemSoftware ProgrammingDataBaseDataBase ProgrammingDataBase Wish ListLinux as an AlternativeRaid ServerProgramming for a Changing IndustryHardwareNobody 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. SoftwareNobody 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 DesignChoosing 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 HardwareBuild PC�sIt takes twenty (20) minutes to build a PC Computer.Building the PC Computer (compared with purchasing whole systems):
Super ServersThe 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 SystemServersEvery 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 ProgrammingInter-ConnectivityMixing 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 ProgrammingCross-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 CodingThere 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. DataBaseThe Perfect DataBaseNo "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 ApplicationThe 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 ProgrammingDataBase CodingThe 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
DataBase Wish ListCoding
Data and Data Security
Dictionary
Style
Misc
Linux as an AlternativeAdvantages
Raid ServerEspecially 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. |