MPE Based Web Server on the HP e3000

It gets even crazier when you find out that this web server was written in Cobol...well almost all of it. What isn't in Cobol is in Pascal, and its not the parts you would think. In fact, all the HTTP message parsing, CGI interface, etc. is in Cobol. The only thing in Pascal is a set of core routines for doing TCP/IP network stuff. And this could have been written in Cobol, but we already had them written in Pascal so why not use them....

Configuration of this System

This system is a A400, 2gb main memory, 90gb disk (72 mirrored). It is running MPE/iX 7.0. We have about 40 Virtual Terminal sessions logged on doing development (in Cobol) at any one time. In addition we have about 12 Server jobs running providing test servers for our gui/web/pda application clients. We are connected to the internet via a T-1 line (Sprint). BTW - the Sprint line is reasonably priced and is more reliable (corporate and line) than our previous DSL circuit. However, I would rate Sprint customer service as mediocre.

How is it Done?

It turns out that you don't need MPE 5.0, Posix, or any of that new fangled Unix look-a-like stuff to do network programming for the HP e3000. The HP e3000 supports TCP/IP and comes with an application interface called NetIPC which is HP's original idea of sockets programming. You can use NetIPC to create network servers that look and act just like any other network server. So, we downloaded the RFC's for HTTP and wrote a web server in Cobol that followed the specifications. We call it QWEBS, which stands for 'QSS Web Server'. When we first wrote QWEBS our system was on 4.0. Now its running 7.0, but QWEBS can run on any version of MPE since 4.0.

Why Bother... Just use Apache

When we wrote QWEBS there wasn't a commerically available web server for the 3000. Then Open Market became available, but was dropped because OMI got out of the server business. Then HP announced a port of Netscape Fastrack Server. But this was never delived and Netscape got bought by AOL. Finally we got a port of Apache, which is a very good Posix based web server. But keep in mind that we didn't write QWEBS to become rich and famous vendors of web server software. We wrote it because we wanted something that was easy to interface to TurboImage, KSAM, etc for the average Cobol programmer. If Apache and Posix gets improved to allow easy and good performing Cobol/MPE cgi then we might use it. But for now we have a nice web server that seamlessly interfaces with the environemnt we work in daily - MPE, TurboImage, and KSAM.



Copyright © 2001 Quintessential School Systems