January 19, 1998
DR. WEBSITE: A Server Need Not Be Used As a Web Server; It Can Be a Simple File Server
By David Fiedler and Scott Clark
Dear Dr. Website: We have a company Intranet and have received some free programs from
our vendors. We would like to have only one copy of these programs (for ease of
maintenance) reside on the Web server. My question is, how do you create a hyperlink
with HTML to these programs and have them execute on the Web server? They are .exe
files and are DOS-based executable files. Is it possible to have the program run and display
to the local machine and accept input from the local machine without the browser (we're
using Microsoft Internet Explorer 4.0)? If so, what are the HTML commands that allow
you to do this?
A Web browser is basically a viewer for an HTML file. Everything else on your browser,
from multimedia plug-ins to bookmarks, is secondary to that. The first Web browser,
Lynx, displayed text and let you click on hyperlinks to get to other pages. The addition of
image support to browsers meant that you could view graphics on pages as they were
designed, rather than open up a separate program to see each one.
All these HTML and graphics files reside on a Web server. The prime purpose of a Web
server is simply to "serve" files on request to browser users. The Web server doesn't
generally do much with the files; it's the browser software that decides whether to display it
(for HTML pages or most graphics), save it (for ZIP files or other archives meant to be
downloaded), or execute a secondary program to view it (for many multimedia files,
VRML, .PDF files, etc.).
While there are programs that execute on the Web server, this is generally reserved for CGI
programs that process data, or server-side Java programs.
It's technically possible to do many of the things you want, but not all at once. For
instance, your browser software could be configured to execute, or run, .exe files. That
way, an employee clicking on the hyperlink pointing to the .exe file will download the file
and run it locally. In general, this would be a security risk--running random files found on
the Web is dangerous--but in an Intranet-only environment it could be OK.
A second option involves bypassing Web technology altogether. You simply have files
stored on a server and execute them remotely, such as via Windows 95 networking. Just
set up an icon on users' machines that points to them; they will stay on the server and will
be executed on users' machines.
But you said you wanted to physically run them on the server. This is only possible if your
servers are capable of running .exe files, which means they'd have to be x86 architecture
machines running Windows NT, or Unix machines running a Windows emulator. Both
will require a connection to the remote machine for input and output.
You'll need to use something like the X Window System, so that the program can run on
one system but display on another. This has nothing to do with Web servers per se; you're
using the server as both a file server and a place to execute your programs. And the
additional CPU load of X Window will slow down your systems.
It seems what you are really looking for is the second option. Put the program on your
Web servers, but forget the fact that they're Web servers and use them as simple file
servers instead.