ProLinga-Web Project

The ProLinga-Web is a small project that focusses on the development of a CGI applications. These applications generate an XML request file based on the URL given by a user or application. This request file will be send to a ProLinga-4GL Run-Time processor, which processes the request and then sends a response back. This response is an XML document which can contain any type of information in its response body. Most likely this body information will be HTML or XML, that will be displayed in an Internet Web Browser. If the content of the response file is XML, it can be transformed using an built-in XSLT transformer. Managing and processing of the requests and responses is controlled by Web Commands (WC). A WC request is an XML document containing a command generated from an URL. A command can be to run a block of logic in the ProLinga Runner.

The current CGI application prolingaweb is a standalone CGI application that lives in a script (prolinga-cgi) directory on a Web Server. The flow and processing of incoming and outgoing requests and responses can either be controlled by a sophisticated SOAP layer on top or direct links using the C++ API of the software component to connect to. Since all code is written in C++, it can be ported to all modern UNIX systems, GNU/Linux variants as well as MS-Windows. ProLinga-Web as a communication channel is extremely fast and very reliable.

Main purpose for the creation of this project, is to provide an easy way to access 4GL run-time processing engine using a Web browser as the user interface.

ProLinga-Web has been built and tested on many popular GNU/Linux platforms as RedHat Fedora, Mandriva Linux, Ubuntu, Debian and openSUSE. Since all code is written in C++, it can be ported to all modern UNIX systems, GNU/Linux variants as well as MS-Windows and Mac O/S platforms.

Portions of code are lifted from the CGI tutorial written by James Marshall.

Web Command

Web Commands are used to retrieve data from an URL, manage and return data to the browser or requesting party.

Web Commands have the following format:

<Command Name="webcmd" Mode="Request" SessionId="sessid" Format="format">
  <Object Service="svc" Application="appn" Name="name">
    <Parameters>
      <Parameter Name="name">value</Parameter>
       . . .
       . . .
    </Parameters>
  </Object>
</Command>

Since Web Commands will be passed on to other services, no Web Commands besides a Ping command are pre-defined. URL details will be placed into a Web Request enveloppe.