Roxen es un servidor web de software libre producido por Roxen Internet Software, una empresa con sede en Linköping , Suecia , que debe su nombre al cercano lago Roxen . Se distribuye bajo la Licencia Pública General de GNU . Roxen apareció originalmente como Spinner a mediados de la década de 1990 y está escrito en uLPC o Pike . Durante su apogeo, Roxen fue utilizado por grandes empresas como RealNetworks , [1] Granada Media, [2] Xmission [3] y MCI. [4] [ aclaración necesaria ]
Roxen se adelantó a su tiempo en muchos aspectos, [5] presentando una interfaz de administración de interfaz gráfica de usuario (GUI) basada en web, [6] módulos cargables que podían escribirse en varios lenguajes, incluyendo Pike y posteriormente Java , generación de contenido dinámico con un sistema de almacenamiento en caché integral, sistemas de replicación para servidores multi-cabezal y un servidor SQL integrado para operaciones de servidor con gran cantidad de datos (así como un amplio soporte para otras bases de datos). [7] Roxen fue creado para satisfacer las necesidades de los creadores de contenido. [8]
RXML (RoXen Macro Language [9] ) es un lenguaje de programación del lado del servidor integrado en Roxen. Este lenguaje tiene capacidades de lenguajes de programación como Perl, pero la sintaxis similar a HTML lo hace más familiar para los creadores de contenido. Muchos sitios de Roxen se desarrollaron utilizando el patrón MVC . [ cita requerida ]
Las etiquetas notables incluyen:
<if>
[10] para contenido condicional (así como etiquetas para else, case, for, etc.)<tablify>
[11] para transformar automáticamente los datos en bonitas tablas<cache>
[12] para controlar el almacenamiento en caché de contenido dinámico para reducir los tiempos de obtención de páginas/carga del servidor<gbutton>
Etiquetas de generación de imágenes [13] y <gtext>
[14]<diagram>
[15] para convertir datos en gráficos/diagramas gráficos<emit>
[16] para generar contenido basado en consultas LDAP, SQL o del sistema de archivos (es trivial construir tu propia galería de fotos con miniaturas usando Roxen)Los módulos Roxen generalmente proporcionan su funcionalidad ampliando RXML.
Todas las etiquetas RXML contienen documentación en línea que se utiliza para completar el manual en línea que se incluye tanto en el sitio de documentación de Roxen [17] como con cada instalación de servidor predeterminada.
RXML también proporciona un sistema de variables; todas las variables existen dentro de un dominio o "ámbito", por ejemplo, los campos de formulario que se pasan a la consulta son accesibles como , las variables definidas por el usuario se almacenan en el ámbito. Desafortunadamente, en su intento de explicar los dos métodos de instanciación de variables, la documentación confunde a la mayoría de las personas.form.fieldname
var
En la mayoría de los casos, se hace referencia a las variables por su nombre, pero también es posible instanciar (insertar el valor de) una variable en cualquier lugar, dentro o fuera de las etiquetas/marcado, utilizando un marcado de estilo de entidad XML, por ejemplo &page.path;
. Opcionalmente, se puede especificar la codificación/escape de la instancia, por ejemplo, &form.username:mysql;
para insertar un valor enviado por el usuario desde un formulario de forma segura en una base de datos SQL o &page.path:js;
para hacer que una variable sea segura para JavaScript.