Web Interfaces
A surfer sends a request through HTTP to a web server. If the surfer requests a dynamic page,
the web server hands the request over to a program using a pre-defined interface. The
three popular interfaces used on the Windows platform are cgi-win, cgi-bin, and ISAPI. WebHub
includes runners for all three interfaces so that you can use a wide selection of web servers.
You can change runners and your site will run with a different web interface, without
recompiling the Application Server.
cgi-bin
The cgi-bin interface started on the Unix platform and uses the "standard input" and "standard
output" streams to send data between the web server and the program (EXE). The WebHub
cgi-bin runner is named runbin.exe.
cgi-win
The cgi-win interface was developed by Robert Denny, author of
WebSite in 1995. It is optimized for
simple web applications (EXEs) on the Windows platform. The WebHub cgi-win runner
is named runwin.exe.
ISAPI
The ISAPI interface was developed as a further optimization for the Windows platform. It is
yet another interface for passing data back and forth between the web server and the program
(DLL). The WebHub ISAPI runner is named runisa.dll.
HREF's in-house testing shows the ISAPI interface to be roughly 10 times faster than cgi-win.
Since Microsoft NT server bundles a "free" copy of Microsoft IIS,
most commercial application developers use the IIS web server with the ISAPI interface.
Benefits to Using WebHub's ISAPI runner
Using a WebHub System and an ISAPI runner you can avoid having to write a DLL.
The drawbacks of having to write your own DLL includes:
- The DLL is trickier to debug than an EXE.

- The DLL needs to be multi-user and thread-safe.

- The DLL must be perfect: 24hrs a day, 7 days a week. If a bug in your DLL causes it to crash,
it will take the web server down with it, preventing static and dynamic page requests
from being filled.
By using the WebHub System and its ISAPI runner, you not only avoid all these DLL problems,
but additionally get:
- Automatic surfer tracking through the WebHub URL standard (?AppID:PageID:SessionID:Command)
- Support for multiple surfers per second.
- Optimized use of HTTPS (secure http)
- Automatic system messages in case of problems elsewhere in the architecture
- Access to the complete WebHub architecture.
The WebHub Runner is just part of the overall WebHub System. The
Hub
works as the process controller and the real action happens inside an application server,
which you write with Delphi and the WebHub VCL.