Read: Server View  
   Read: Web Server  
   ▶ WebHub Runners  
   Open: The Hub  

WebHub Runners: ISAPI, cgi-win and cgi-bin

Diagram of a dynamic site

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.

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.

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.

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.
Running: WebHub-v3.286 compiled with d28_win32 on Microsoft-IIS/10.0,
Sat, 30 Sep 2023 18:21:33 UTC
Session 1001, 0 pages sent to CCBot/2.0 ( at;
Time to produce this page: 0msec.