Articulo de referencia

Ferrocarril

Railo Server , comúnmente conocido como Railo ( / ˈr aɪ l oʊ / RY -loh ), es un software de código abierto que implementa el lenguaje de programación del lado del servidor CFML ...

Railo Server , comúnmente conocido como Railo ( / ˈr l / RY -loh ), es un software de código abierto que implementa el lenguaje de programación del lado del servidor CFML de propósito general , que se utiliza a menudo para crear sitios web dinámicos , aplicaciones web y sistemas de intranet . CFML es un lenguaje dinámico que admite múltiples paradigmas de programación y se ejecuta en la máquina virtual Java (JVM).

Railo fue creado por la empresa suiza Railo Technologies GmbH, con la intención de ofrecer una alternativa de alto rendimiento a Adobe ColdFusion . En 2008, Railo cambió a un modelo de código abierto impulsado por la comunidad y se convirtió en un proyecto de JBoss . El proyecto Railo Open Source está dirigido por Railo Technologies, y el trabajo de desarrollo se financia mediante contratos de consultoría y soporte, pero cualquiera puede contribuir con código para su consideración.

Nombramiento

Railo recibió su nombre de un perro extraterrestre de Star Trek: Enterprise . El perro en realidad se llama Rhylo, pero escrito fonéticamente en alemán es Railo. [1] Por lo tanto, Railo se puede pronunciar como rhy-lo o como rai-lo; ambas son aceptables.

Los principales lanzamientos de Railo tienen un nombre en clave de perros notables y leales de la historia.

Historia

Railo comenzó en 2002 como un proyecto estudiantil de Michael Offner y Gert Franz para compilar código CFML en PHP , una elección hecha debido a la ubicuidad de PHP, sin embargo, se descubrió que esto no brindaba el rendimiento y la estabilidad deseados, y se tomó la decisión de cambiar a la plataforma Java en su lugar. [1]

El proyecto tuvo tanto éxito que se decidió continuar con el desarrollo hasta convertirlo en un producto completo. Se realizaron varias versiones alfa y beta antes del lanzamiento oficial de la versión 1.0 en abril de 2006. Railo continuó desarrollándose, pero era relativamente desconocido para muchos desarrolladores de CFML, hasta junio de 2008, en la conferencia Scotch on the Rocks en Edimburgo , cuando Railo Technologies utilizó la presentación del segundo día para anunciar una asociación con JBoss y un cambio al código abierto. [2]

En mayo de 2012, en la conferencia CF. Objective, se anunció la fundación de "The Railo Company Ltd", una sociedad de responsabilidad limitada , compuesta por la empresa suiza Railo Technologies GmbH junto con otras cinco empresas que operaban en la industria CFML. [3]

Horquilla Lucee

El 29 de enero de 2015, el proyecto Lucee , una bifurcación del código base de Railo 4.2, fue anunciado por el desarrollador original de Railo, quien declaró que no seguiría trabajando en Railo. Los otros desarrolladores han confirmado que también se centrarán exclusivamente en Lucee y, aunque The Railo Company no ha hecho ninguna declaración oficial, el consenso de la comunidad es que es poco probable que se siga desarrollando el proyecto Railo. [4] [5]

El 19 de julio de 2016, The Railo Company se disolvió. [6]

Historial de versiones

Plataformas y licencias

Railo se ejecuta en la JVM como un servlet y funcionará con cualquier contenedor de servlets (por ejemplo, Apache Tomcat , Eclipse Jetty ) o servidor de aplicaciones (por ejemplo, JBoss AS , GlassFish ). Es posible conectar un servidor web (por ejemplo , Apache , IIS , nginx , Cherokee ) por adelantado, utilizando conectores como mod jk , mod proxy o equivalentes, pero Railo no lo requiere.

Railo tiene un instalador para Linux , macOS y Windows , que incluye Apache Tomcat . También hay una descarga de Railo Express preconfigurada que utiliza Jetty .

A partir de la versión v4.0, Railo tendrá una versión de línea de comandos , lo que permitirá utilizar CFML como un lenguaje de propósito general, fuera del entorno de servlets. [10]

Railo desde la v3.1 tiene licencia LGPL v2.1, [11] con el código fuente disponible en GitHub [12]

Filosofía

Un objetivo principal de Railo era proporcionar la funcionalidad de ColdFusion utilizando menos recursos y ofreciendo un mejor rendimiento, y el equipo de Railo Technologies sigue considerando la lentitud como un error como una filosofía de desarrollo fundamental. Muchas pruebas de rendimiento han demostrado que Railo funciona más rápido que otros motores CFML. [13]

Además de esto, Railo intenta resolver muchas inconsistencias encontradas en el CFML tradicional. Estas son cambios forzados en el comportamiento u opciones configurables en el Administrador de Railo.

El equipo de Railo Technologies siempre ha estado abierto a recibir comentarios y activo en los eventos de la comunidad CFML, y está dispuesto a recordar a las personas que Railo es un proyecto comunitario.

Railo Technologies también crea sólidas alianzas tecnológicas con empresas de software CFML, entre las que se incluyen Blue River Interactive Group (desarrolladores de Mura CMS), CONTENS Software GmbH [14] (desarrolladores de CONTENS CMS) e Intergral GmbH [15] (desarrolladores de FusionReactor y FusionDebug ), para garantizar que su software funcione bien con Railo. Además, Railo Technologies ofrece "Programas de socios" formales para soluciones (desarrollo), alojamiento y capacitación. [16]

Uso

El servidor de aplicaciones Railo actualmente tiene un promedio de 7.000 descargas (y sigue creciendo) por mes. [17]

Railo es utilizado por varias empresas, entre las que se incluyen:

Características

  • Admite programación orientada a objetos con herencia , mixins y metaclases.
  • Tipado dinámico y tipado pato
  • Notación literal para matrices y estructuras
  • Incrustar variables en cadenas ( interpolación )
  • Argumentos con nombre , argumentos opcionales y argumentos predeterminados
  • Tres niveles de alcance de variable de objeto: Este (objeto público), Variables (objeto privado), Local (función privada)
  • Ámbito de variables globales múltiples: Solicitud, Sesión, Cliente, Aplicación, Servidor, Clúster
  • Ámbitos de variables distintos proporcionados por el usuario: Formulario (publicación), URL (obtener), Cookie, CGI
  • Recolección automática de basura (a través de JVM)
  • Manejo de excepciones globales y locales (a través de onErrory try/catch)
  • Comportamiento de envío personalizado (a través de onMissingMethodmétodos getter y setter implícitos)
  • Conversión de objetos implícita (a través de _toString, _toNumeric, _toBoolean, _toDate) [28]
  • Hilos nativos
  • Compatibilidad con Unicode , codificaciones de caracteres múltiples e i18n
  • Gran biblioteca estándar que cubre las necesidades comunes de desarrollo web
  • Railo Extension Store [29] y Extension Manager [30] para una fácil instalación de software y extensiones adicionales
  • API de complemento nativo en CFML o Java [31]
  • Manejo nativo para crear y consumir fácilmente servicios web
  • Administradores de GUI independientes para contextos web individuales, además de un administrador de servidor global
  • Todas las configuraciones de administración se pueden configurar mediante programación o mediante la edición de archivos de configuración XML .
  • Recursos nativos para todas las etiquetas y funciones del sistema de archivos integrado. [32]
  • Agrupamiento y sincronización para servidores tradicionales y en la nube
  • Administrador de tareas para programar acciones repetidas o volver a intentar eventos fallidos [33]
  • Soporte nativo para Hibernate ORM
  • Gran cantidad de funciones de manipulación de imágenes.
  • Pasarelas de eventos para ejecución de código asincrónico [34]
  • Soporte nativo para una variedad de diferentes mecanismos de almacenamiento en caché [35]
  • Gestión de sesiones nativas (sesiones CFML o sesiones J2EE) con onSessionStarty onSessionEndactivadores.
  • Funcionalidad de roles y autenticación de usuarios incorporada.

Seguridad

CFML tiene una funcionalidad incorporada para evitar la inyección de código, a través de la cfqueryparametiqueta, y funciones como HtmlEditFormat, XmlFormat, JsStringFormat. También existen implementaciones CFML de terceros de la API de seguridad empresarial de OWASP , [36] y el proyecto AntiSamy. [37]

Una de las decisiones clave de arquitectura de Railo fue seguir el modelo de servlet JEE, con soporte para múltiples contextos web independientes en un único servidor. Este es un factor de seguridad clave, ya que evita que aplicaciones no relacionadas interfieran entre sí, como puede suceder en un servidor ColdFusion compartido (que solo tiene un único contexto web).

Sintaxis

Railo implementa el lenguaje CFML (consulte la sección de sintaxis CFML para ver ejemplos, así como CFScript) .

Diferencias

Diferencias con otros idiomas

CFML tiene una sintaxis basada en etiquetas que es visualmente diferente de la de la mayoría de los otros lenguajes, aunque aparte de esto es similar a otros lenguajes dinámicos, con las siguientes excepciones:

  • CFML contiene dos sintaxis, una sintaxis basada en etiquetas (no compatible con XML) y una sintaxis de estilo C llamada cfscript.
  • Las matrices en CFML se indexan desde uno, no desde cero.
  • CFML admite argumentos de funciones tanto ordenados como nombrados, o una combinación.
  • CFML no tiene variables estáticas.

Diferencias con Adobe ColdFusion

Si bien Railo implementa CFML y generalmente es compatible con Adobe ColdFusion (ACF), el motor CFML original, existen algunas diferencias notables entre ambos:

  • Railo es un software LGPL v2.1 de código abierto . ACF es una tecnología patentada .
  • Railo utiliza una arquitectura de contexto web múltiple, en comparación con el contexto web único de ACF.
  • Railo le permite crear funciones definidas por el usuario "integradas", utilizando CFML estándar.
  • Railo no puede descifrar (ni ejecutar) plantillas que hayan sido cifradas con el mecanismo de cifrado de ACF.
  • Railo tiene un ciclo de lanzamiento significativamente más rápido para versiones principales, secundarias y parches.
  • En Railo, los ámbitos siempre tienen prioridad. En ACF, la creación de una variable denominada "Url" puede bloquear el acceso al ámbito Url. En Railo, solo se puede acceder a la variable como "Variables.Url".
  • Railo solo busca CFC dentro de la ruta de etiqueta personalizada si se define correspondientemente en el administrador (en su lugar, tiene una ruta CFC distinta).
  • Railo 4.x presenta una interfaz de línea de comandos (CLI) que permite ejecutar scripts CFML desde la línea de comandos
  • Railo permite utilizar métodos de objeto. Por lo tanto, en lugar de utilizar la matriz Append (arr, "value"), se puede escribir: arr.append("value").append("anotherValue").

Véase también

  • Lucee : bifurcación de Railo actualmente compatible con los desarrolladores originales de Railo.
  • Adobe ColdFusion : el motor CFML original.
  • CFML : el lenguaje que utiliza Railo.

Referencias

  1. ^ ab "Los 10 mejores sitios de tragamonedas de Bitcoin | Las mejores máquinas tragamonedas de criptomonedas 2021".
  2. ^ "Railo se une a JBoss.org". Infoq.com. 18 de junio de 2008. Consultado el 27 de enero de 2023 .
  3. ^ "Railo en cf.Objective(): La evolución de Railo — Railo Blog". Archivado desde el original el 18 de febrero de 2015 . Consultado el 17 de febrero de 2015 .
  4. ^ "Railo y Lucee: Preguntas candentes de Hunka Hunka".
  5. ^ "Lucee".
  6. ^ "Historial de presentación de THE RAILO COMPANY LIMITED - Buscar y actualizar información de la empresa - GOV.UK".
  7. ^ ab "Railo - el motor CFML". www.railo.ch . Archivado desde el original el 31 de octubre de 2005 . Consultado el 15 de enero de 2022 .
  8. ^ "Lanzamiento de Railo 3.1". Archivado desde el original el 30 de junio de 2011. Consultado el 2 de octubre de 2011 .
  9. ^ "Los 10 mejores sitios de tragamonedas de Bitcoin | Mejor casino en línea 2022".
  10. ^ "Hoja de ruta ferroviaria". Archivado desde el original el 26 de septiembre de 2011. Consultado el 2 de octubre de 2011 .
  11. ^ "Wiki de documentación Railo CFML - Licencia Railo". Archivado desde el original el 31 de octubre de 2011 . Consultado el 2 de octubre de 2011 .
  12. ^ "Motor Railo CFML". GitHub . 30 de abril de 2022.
  13. ^ "Guardar archivos de clase en ColdFusion". Archivado desde el original el 13 de agosto de 2013 . Consultado el 7 de septiembre de 2013 .
  14. ^ CONTENIDO Software GmbH
  15. ^ Intergral GmbH
  16. ^ "Programas de socios". Archivado desde el original el 1 de octubre de 2011 . Consultado el 2 de octubre de 2011 .
  17. ^ "Estadísticas de Railo". Archivado desde el original el 13 de enero de 2013. Consultado el 24 de julio de 2013 .
  18. ^ "Utiliza Mura CMS con tecnología Railo". Archivado desde el original el 16 de enero de 2012. Consultado el 2 de octubre de 2011 .
  19. ^ Utiliza internamente Mura CMS con tecnología Railo.
  20. ^ "Philip Kaplan lanza oficialmente Distrokid". Tech Crunch. 10 de octubre de 2013.
  21. ^ Railo impulsa los sitios web alemanes de IDG
  22. ^ "Tengo 404.772 usuarios. ¿Y ahora qué?". News.ycombinator.com . Consultado el 8 de noviembre de 2012 .
  23. ^ "La NASA logra los objetivos de datos para el explorador de Marte con software de código abierto". opensource.com . Consultado el 8 de noviembre de 2012 .
  24. ^ Sitio web público de Railo Powers
  25. ^ Utiliza Railo internamente, también utiliza CONTENS CMS impulsado por Railo para generar sitios web públicos.
  26. ^ Poderes ferroviarios
  27. ^ Poderes ferroviarios
  28. ^ "Los 10 mejores sitios de tragamonedas de Bitcoin | Mejor casino en línea 2022".
  29. ^ "¡La tienda Railo Extension Store está abierta! — Blog Railo". Archivado desde el original el 3 de septiembre de 2011. Consultado el 2 de octubre de 2011 .
  30. ^ "Extension Manager — Railo Blog". Archivado desde el original el 25 de abril de 2012. Consultado el 2 de octubre de 2011 .
  31. ^ "Railo 3.1: Construyendo su propia función integrada — Blog de Railo". Archivado desde el original el 7 de octubre de 2011 . Consultado el 2 de octubre de 2011 .
  32. ^ "Railo 3.0: Recursos". Archivado desde el original el 25 de abril de 2012. Consultado el 2 de octubre de 2011 .
  33. ^ "Railo 3.0 lanzado - Características Parte IV - Administrador de tareas, Sincronización remota - Blog de Railo". Archivado desde el original el 24 de octubre de 2011 . Consultado el 2 de octubre de 2011 .
  34. ^ "Los 10 mejores sitios de tragamonedas de Bitcoin | Mejor casino en línea 2022".
  35. ^ "Caché (avanzado) Parte 2 — Blog de Railo". Archivado desde el original el 1 de marzo de 2012 . Consultado el 2 de octubre de 2011 .
  36. ^ "Archivo de código de Google: almacenamiento a largo plazo para alojamiento de proyectos de código de Google".
  37. ^ "Usando AntiSamy con ColdFusion".
  • Sitio web oficial
Obtenido de "https://es.wikipedia.org/w/index.php?title=Railo&oldid=1230540497"