WEBmatix is an online database engine and scripting tool which we have developed over a period
of several years mostly for our own internal use and for work on client websites.
The database used is one which we developed back in the early 1980's when the processing power available
was far less than what is currently available. Consequently it is very lean, mean and lightning fast which
makes it far more suitable for web cgi applications than slower more cumbersome alternatives. This database
has been proven in very large applications with millions of records, and uses the B+ tree algorithm for
fast indexing and retrieval. This same database is the heart of our Point of Sale software, SELLmatix and is
extremely reliable.
In developing cgi applications, there is a core range of functionality that is used time after time by
different applications, and we found that in writing these applications, 90% of the code for any new
application could be copied from other applications we had previously written.
Normal programs run for an indeterminate length of time after they are started, until some action
is taken to terminate the program. CGI programs are invoked by a Web Server in response to a request
from a Web Browser. CGI program can only receive input from the Server, they must process the
data quickly, and their output is html which they pass back to the server, and which the server in turn
passes on to the web browser. Once this is done, the CGI program terminates.
This means that in a typical web based cgi programs, several small cgi programs would be used. For example,
one program might generate the html to display a list of records on the client's browser. When the client
selected a record to edit, another cgi program would generate the html to display a form so that
the record could be edited. When the client chose to save the changes, another cgi program would save the record
and generate the html for the next screen.
This means that there are normally a lot of small cgi programs to perform a task. On this site for example,
there were over 40 different cgi programs, and keeping track of which program does what starts to become painful.
Changes with the traditional approach involve changing these cgi programs which generate the html and the syntax
required in programs that generate interpreted scripts such as html is obscure.
WEBmatix is the technique we developed to simplify this process and make maintenance and coding easier. Instead of having
multiple cgi programs, WEBmatix runs as a single program that has many modules. When invoked, it is passed the name of a configuration
file that resides on the server. The configuration file is stored in a secure directory on the server and cannot be viewed or changed
over the web which eliminates security problems.
When WEBmatix loads, it reads this configuration file, in order to determine what to do. Depending on the commands in the configuration file
it can send email, update databases, or display almost anything on the user's browser. In the update sequence described above where several different
CGI programs were required, WEBmatix would be used each time, using a different configuration file.
Instead of WEBmatix containing the html that is output to the browser, we use templates which are ordinary html files. In the configuration
file, you can specify any html file to be output. WEBmatix however parses these html files so that variables can also be output. For example,
the configuration file can be told to open a database, find a particular record and the output a parsed html file.
In the parsed html file, you can have variables where WEBmatix replaces the variable name with a field in a database record, GET, POST or Cookie
entry etc. The same can be done with email templates which can be sent to any email address.
WEBmatix has dramatically slashed the development time it takes us maintaining our own sites and made it far easier
to provide high quality html using style sheets that allow easy changes to the look and feel.
At the moment we are using it for our own in house use, but plan to release the product to a broader market of web developers after
beta testing with a selected list of other web developers. If you are interested in further information, or using WEBmatix, please contact us
via the Contact page on this site.
Back to top