Mr. Komarov tells us how he used Linux to give an old database new capabilities and thereby saved his government money.
by Dmitrie Komarov
Recently I've found a new unusual use for Linux, which I have used successfully at work. Here is a list of machines and software I had to work with:
This database application was written for a stand-alone DOS workstation about five years ago, and the most powerful computer we had at that time was a 386SX with 2MB of RAM. At one point we patched this program to add a little network support. The main database migrated to the NetWare file server, and the program worked with the server as if it were a local drive (Z:). Data is added to this database every day, and it has grown to more than 300MB in size. There are now 15 users connected to it, but the program itself remains the same as it was five years ago.
Each time a user searches the database, his workstation uses about 30 to 100MB of network traffic. The NetWare server shows 100% utilization and searches can last for hours. One day (it was a beautiful spring morning to be precise) my boss asked me to connect 10 more workstations to the database and to add remote access to the database via the Internet and dial-ups. I just about had a heart attack.
Of course, we needed to rewrite our database from scratch with client server and Intranet support. Yes, we had to, but we are a government organization with a very limited budget. When I asked local software developers about the possible cost for this rewrite, they told me that because it would be a mission-critical client-server application, with extended network and Internet support, as well as maintenance, the price would be about $20,000 to $40,000. Now my boss had the heart attack. That's not all--our database is very special. It was written for very specific tasks and was tested for a long time with bug fixes added during the experimentation period. We just couldn't afford to write such an application ourselves from the beginning, going through all the same problems once again. And even more--we needed to add remote access to the database immediately, so we needed another solution.
I have used our Linux box to solve some of these problems in the following ways:
Our DOS/Windows workstations can continue using the database in the old manner. All that has changed is that the file server for the database is now Linux, and clients can be connected to the database not only via NetWare protocol but also via the Microsoft Network using Samba--not bad.
Since more than one copy of the DOS emulator can be run at one time on Linux, it is possible for users to access the database from the Linux console, the X Window System, an X terminal, a serial terminal, a remote TELNET connection and a remote dial-up connection. Note that if the database application is started from dosemu, it works 10 times faster because, in this case, it uses data not on the network but on a local drive.
After using this configuration for about two months, I've found running the application from dosemu on Linux is more stable than running it from Windows 3.11. There are some tricks to prevent data loss in case of a broken remote connection to dosemu. By the way, while experimenting with MARS_NWE, I found it to be very stable, powerful and fast. Data transfer speed from Linux via MARS_NWE remains almost as fast as it was from the native NetWare 4.10 file server, so users connected from DOS/Windows workstations do not see much difference. And all this was accomplished during one night without any programming or additional capital investment.
Dmitrie Komarov is the Network and System Administrator of the Police Department of Riga, Latvia. He wrote his first programs in BASIC when he was 11 years old and had never seen a computer. He has been a Linux fan since kernel 1.2.13 and expects to remain one forever. He can be reached via e-mail at dmit@rgpp.gov.lv.