Roxen (web server)
Encyclopedia
Roxen is a free software
web server
produced by Roxen Internet Software, a company based in Linköping
, Sweden
and named after the nearby lake Roxen
. It is released under the GNU General Public License
. Roxen originally appeared as Spinner in the mid-1990s and was written in a C-like language called uLPC or Pike. During its heyday Roxen was used by large companies such as RealNetworks
, Granada Media, Xmission and MCI.
(GUI) administration interface, loadable modules that could be written in several languages including Pike and later Java
, dynamic content generation with a comprehensive caching system, replication systems for multi-headed servers, an embedded SQL server for data-heavy server operations (as well as broad support for other databases). Roxen was built to meet the needs of content creators, so its features and facilities were superb, its performance was good and continually improved until 2001. It failed to get itself taken seriously by a large enough base of mainstream sites.
Roxen's largest obstacle was probably that English was only a second language to the people documenting it. Roxen uses an auto-doc style system that means it is heavily and well documented. But the wording can sometimes take a number of passes to understand.
pattern.
Roxen modules typically provide their functionality by extending RXML, but the suite provided off-the-shelf was pretty comprehensive:
Notable tags include:
All RXML tags contain inline documentation which is used to fill out the online manual that is included on both and with every default server installation.
RXML also provides a variable system; all variables exist within a domain or "scope", e.g. form fields passed to the query are accessible as form.fieldname, user defined variables are stored in the var scope. Unfortunately, in its attempt to explain the two methods of variable instantiation, the documentation confuses most people.
In most cases variables are referred to by name, but it is also possible to instantiate (insert the value of) a variable anywhere, in- or out-side of tags/markup, using an XML entity-style markup, e.g. &page.path;. Optionally you can specify encoding/escaping of the instance, e.g. &form.username:mysql; to insert a user-submitted value from a form safely into an SQL database or &page.path:js; to make a variable javascript safe.
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
web server
Web server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....
produced by Roxen Internet Software, a company based in Linköping
Linköping
Linköping is a city in southern middle Sweden, with 104 232 inhabitants in 2010. It is the seat of Linköping Municipality with 146 736 inhabitants and the capital of Östergötland County...
, Sweden
Sweden
Sweden , officially the Kingdom of Sweden , is a Nordic country on the Scandinavian Peninsula in Northern Europe. Sweden borders with Norway and Finland and is connected to Denmark by a bridge-tunnel across the Öresund....
and named after the nearby lake Roxen
Roxen
Roxen is a medium-sized lake in south central Sweden, east of lake Vättern, part of the waterpath Motala ström and the Göta Canal. South of lake Roxen is the city Linköping....
. It is released under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
. Roxen originally appeared as Spinner in the mid-1990s and was written in a C-like language called uLPC or Pike. During its heyday Roxen was used by large companies such as RealNetworks
RealNetworks
RealNetworks, Inc. is a provider of Internet media delivery software and services based in Downtown Seattle, Washington, United States. The company is the creator of RealAudio, a compressed audio format; RealVideo, a compressed video format; RealPlayer, a media player; RealDownloader, a download...
, Granada Media, Xmission and MCI.
Features
Roxen was often ahead of its time featuring a web-based Graphical user interfaceGraphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
(GUI) administration interface, loadable modules that could be written in several languages including Pike and later Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, dynamic content generation with a comprehensive caching system, replication systems for multi-headed servers, an embedded SQL server for data-heavy server operations (as well as broad support for other databases). Roxen was built to meet the needs of content creators, so its features and facilities were superb, its performance was good and continually improved until 2001. It failed to get itself taken seriously by a large enough base of mainstream sites.
Roxen's largest obstacle was probably that English was only a second language to the people documenting it. Roxen uses an auto-doc style system that means it is heavily and well documented. But the wording can sometimes take a number of passes to understand.
RXML
Much of Roxen's power is in an innocuous feature that was borne in Roxen's early history: a server-side markup/scripting language called RXML (RoXen Macro Language). This language provides much of the richness of a scripting language like Java or Perl but did so in a language meaningful and familiar to content creators. And because it was extensible, many Roxen sites were developed using the MVCModel-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...
pattern.
Roxen modules typically provide their functionality by extending RXML, but the suite provided off-the-shelf was pretty comprehensive:
Notable tags include:
- <if> for conditional content (as well as tags for else, case, for, etc)
- <tablify> for automatically transforming data into pretty tables
- <cache> for controlling the caching of dynamic content to reduce page fetch times/server loading
- <gbutton> and <gtext> image generation tags
- <diagram> for converting data into graphical charts/graphs
- <emit> for generating content based on LDAP, SQL or filesystem queries (its trivial to build your own photo gallery with thumbnails using Roxen)
All RXML tags contain inline documentation which is used to fill out the online manual that is included on both and with every default server installation.
RXML also provides a variable system; all variables exist within a domain or "scope", e.g. form fields passed to the query are accessible as form.fieldname, user defined variables are stored in the var scope. Unfortunately, in its attempt to explain the two methods of variable instantiation, the documentation confuses most people.
In most cases variables are referred to by name, but it is also possible to instantiate (insert the value of) a variable anywhere, in- or out-side of tags/markup, using an XML entity-style markup, e.g. &page.path;. Optionally you can specify encoding/escaping of the instance, e.g. &form.username:mysql; to insert a user-submitted value from a form safely into an SQL database or &page.path:js; to make a variable javascript safe.