Welcome to Roxen WebServer. In this chapter we will give an overview
of the philosophy behind Roxen WebServer's design. To make full use of Roxen
it is helpful to know the ideas behind its design as well as how to use it.
Why Roxen?
The short answer is that Roxen tries to be a server that behaves like
the web. Its user interface is accessed from a web browser from anywhere in
the world, like a web site. Furthermore like the web Roxen is platform
independent, it can run equally well on a number of operating systems. It is
even possible to move a Roxen web site to another computer with no changes.
Another way to answer is to look at the internals of Roxen. Roxen WebServer
is highly modular; to do the simplest task Roxen needs at least a couple of
modules. That might seem unnecessary at first, but it makes it possible to
customize every aspect of the Roxen server.
Writing the actual modules is made simple because Roxen WebServer handles
complicated tasks such as the user interface. The module writer can
concentrate on the actual functions in her module. This approach also
ensures that the user interface works the same way, regardless of what
new modules are invented.
The best way to illustrate the advantages of the module interface is by
taking a look at the FTP protocol module. Even the HTTP
protocol handler is a module in Roxen. So by making a protocol module for
FTP, Roxen became a FTP server as well. But it did not become just a plain
FTP server since all scripting and database connectivity features are still
available through FTP.
Properties of Roxen
Apart from the three important properties we have already mentioned,
platform independence, a browser based administration interface
and a modular architecture, Roxen is designed with scripting
and database connectivity in mind. There are several ways to run
scripts in Roxen. Standards such as CGI, FastCGI and Java Servlets are
supported as well as the XML based macro language RXML.
RXML (Roxen Macro Language) is an easy-to-learn, easy-to-extend XML language.
It makes it significantly easier to embed dynamic parts in HTML
pages. Web designers can use the RXML tags themselves without having to
learn programming, and programmers can create new RXML tags that can be
reused on any number of pages with a minimum of effort.