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.
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.