Introducción a Railo Open Source

Railo es un servidor de aplicaciones Java de código abierto que implementa CFML (Lenguaje de marcado ColdFusion), un lenguaje basado en etiquetas del producto comercial de Adobe “ColdFusion”.”Su rendimiento es excelente e incluye características que aumentan significativamente la productividad.

Railo es un recién llegado, pero ha estado haciendo algunas ondas impresionantes en la industria últimamente. Este artículo es una introducción a algunas de las ventajas críticas de Railo y por qué vale la pena una mirada seria para el desarrollo de aplicaciones web.

¿ColdFusion no está muerto?

Hace unos años, se publicó un artículo en el que se nombraban 10 tecnologías que estaban muertas o moribundas, y para sorpresa de muchas personas, ColdFusion estaba en esa lista. Eso causó muchas olas. Una cosa sobre los desarrolladores de CFML – ¡son apasionados por su lenguaje de programación!

ColdFusion ha tenido un éxito moderado en mercados verticales específicos, pero ha sido notablemente bien aceptado por el Gobierno de los Estados Unidos. En comparación con los lenguajes de desarrollo dominantes, CFML nunca pareció encontrar el favor real de las masas. Desde que ColdFusion se rediseñó para ejecutarse completamente en Java, y con la llegada de Adobe Flex hace unos años, que integra Flash y ColdFusion, esto ha cambiado bastante. El producto ColdFusion de Adobe se integra tan bien con Flex que ha generado un nuevo interés.

Una de las mayores quejas sobre Adobe ColdFusion siempre ha sido el precio. Ha sido mi experiencia que los desarrolladores de CFML se consideran compañeros de la industria de los desarrolladores de LAMP (Linux, Apache, MySQL, PHP), que usan todas las herramientas de código abierto. La mayoría de los desarrolladores de LAMP consideran que sus habilidades son mucho más altas que las de los desarrolladores de CFML. Esto solo ha alimentado la furia a lo largo de los años de los desarrolladores de CFML que afirman que la inversión en la compra de ColdFusion es un rápido retorno de la inversión, ya que CFML es mucho más productivo.

Ahora viene Railo, que ofrece una solución gratuita y de código abierto para los sueños de los desarrolladores de CFML. No solo es gratis, sino que también tiene un rendimiento fantástico, es estable y se actualiza con una frecuencia razonable. Esta es una buena noticia para CFML, que, en mi opinión, está muy subestimada, principalmente debido a los pobres puntos de precios de marketing y ventas a lo largo de los años. CFML es en realidad un lenguaje bastante potente y sorprendentemente productivo, y fue diseñado para ser una herramienta RAD (Desarrollo Rápido de Aplicaciones). Se ha convertido en un producto significativamente mejor, y ciertamente merece más respeto del que ha tenido. Pero basta de CFML, hablemos de por qué me parece que Railo es tan impresionante y qué se distingue de la competencia.

¿Qué puedes hacer con Railo?

Quizás la mejor manera de responder a esto es decir, “¿Qué NO puedes hacer con Railo?”El lenguaje CFML es esencialmente una gran biblioteca de etiquetas java. CFML se ha convertido en una impresionante biblioteca a lo largo de los años y Railo es compatible con todo lo que admite el producto de Adobe que se utiliza habitualmente. (Hay alguna diferencia entre el soporte, ya que tanto Railo como Adobe lanzan nuevas versiones de sus productos).

Las características principales del lenguaje de Railo proporcionan etiquetas fáciles de aprender para todo, desde consultas de base de datos hasta envío de mensajes de correo electrónico dinámicos y conexiones de scripting con almacenamiento ftp y Amazon s3. Casi todo lo que puedes hacer con PHP lo puedes hacer con Railo. Aquí está el truco: en términos generales, se necesita menos tiempo para implementar una solución utilizando CFML que con PHP, ASP.net o Java puro.

Use CFML para lo básico; Extienda usando Java.

Mientras que Railo le ofrece muchas funciones integradas, la verdad de la situación es que es Java debajo del capó. Todas las etiquetas y funciones finalmente se compilan y se ejecutan como código de bytes Java. Sin embargo, el lenguaje está bien diseñado para que pueda mezclar y combinar su código CFML y Java.

Por ejemplo, si desea leer en un archivo de texto, puede usar la etiqueta incorporada CFFILE:

<cffile action = "read" file = " c: webmessage.txt "variable =" strContent " > < / cffile> 

Esto se lee en el contenido del archivo de texto y lo almacena en la variable especificada.

Para mostrar ese contenido en el navegador web, debería mostrarlo de la siguiente manera:

 < cfoutput> #strContent # < / cfoutput> 

Para ilustrar cómo se puede usar Java directamente en su código, esta misma tarea se puede hacer utilizando objetos Java en lugar de las etiquetas CFML incorporadas como:

<cfobject type=" Java" class=" java.io.FileReader"Action=" Create"name = "myFileReader" ><cfset Result = FileReader.init ("c: webmessage.txt");<cfoutput>#strContent#</cfoutput>

Estas dos pequeñas piezas de código logran los mismos objetivos. Mi punto es que el lenguaje CFML no se limita solo a CFML, puede crear instancias y usar cualquier objeto Java en cualquier lugar dentro de su código.

Esto hace que el lenguaje sea increíblemente flexible, ya que puede usar las etiquetas CFML para tareas rápidas y fáciles, y usar Java para tareas pesadas donde sea necesario.

Entornos de implementación y desarrollo

Todas las versiones de Railo se pueden descargar como una implementación “express”, “server” o “personalizada”. La edición express es extremadamente fácil de poner en marcha para los desarrolladores y, por lo general, solo implica descomprimir un archivo zip en su sistema local e iniciarlo. El paquete de servidor viene con Caucho Resin, un servidor de aplicaciones java de muy alto rendimiento. (Nota al margen: algunas de las herramientas incluidas con Resin también son bastante impresionantes, ¡incluida su implementación de PHP totalmente java!). El paquete de implementación personalizado es para lanzar Railo en otros contenedores de servlets Java como Tomcat o Weblogic.

Configurar Railo en un servidor de producción no fue difícil, dado que es un poco más complicado que instalar RPMs de su versión de PHP favorita, pero la documentación se encontró fácilmente en el sitio de Railo y otros sitios encontrados a través de Google.

Al igual que el producto de Adobe, Railo viene con herramientas de administración web para administrar la configuración y los recursos específicos del servidor y de la aplicación. Este es un gran paso adelante con respecto al mundo de PHP y Linux, donde normalmente necesita configurar muchas de las configuraciones de su aplicación (fuentes de datos, por ejemplo) en archivos de configuración. El administrador de Railo también va unos pasos más allá de Adobe y pone a disposición consolas de administración específicas para cada contexto, de modo que las aplicaciones y los sitios web individuales puedan definir sus propios orígenes de datos aislados, asignaciones virtuales y mucho más. Este es un toque realmente agradable, y ha sido una característica solicitada durante mucho tiempo.

Donde Railo brilla

Ya he repasado algunas de las razones por las que Railo es impresionante. Además de ser un RAD muy potente, con un rendimiento que rivaliza o supera a Adobe, Railo se distingue aún más con algunas características impresionantes.

Sistemas de archivos virtuales y asignaciones

Como desarrolladores, todos hemos tenido que lidiar con la administración de archivos remotos o comprimidos en un momento u otro. Esta característica de Railo hace con unos pocos clics de ratón lo que requiere cientos de líneas de código. Railo le permite asignar sistemas de archivos remotos, como FTP, unidades compartidas e incluso depósitos de Amazon S3, y asignarlos a una ruta virtual en su aplicación. Esto significa que puede usar las funciones integradas simples para la manipulación de archivos y tratar esos archivos como si estuvieran ubicados en el sistema de archivos local. El soporte va aún más allá, y le permite asignar archivos jar de Java y .archivos zip, para que pueda hacer referencia y ejecutar código de forma dinámica dentro de archivos comprimidos.

Configurar nuevas asignaciones es un asunto de apuntar y hacer clic en el administrador de Railo o se puede hacer mediante programación.

Distribución de aplicaciones y Seguridad del Código fuente

El mundo Java siempre ha estado a un paso (muy bien, varios pasos) por delante de los desarrolladores de aplicaciones web en el empaquetado y distribución de aplicaciones. Muchos desarrolladores tienen sus propios métodos caseros para implementar un sitio y muchas aplicaciones de desarrollo web, como Dreamweaver, tienen un método de implementación basado en FTP. En última instancia, generalmente significa entregar código fuente sin protección.

El desarrollo de CFML ha sido de la misma manera (sí, Adobe tenía una forma de compilar .plantillas cfm, pero mi investigación muestra que es torpe de usar y no muy popular). Railo lleva la implementación de paquetes” Java world ” al desarrollo de CFML. Puede compilar una aplicación completa en código de bytes Java, comprimirla en un archivo jar e implementarla en cualquier otro servidor Railo. Railo es lo suficientemente inteligente como para permitirle asignar un archivo jar remoto en un sitio FTP y ejecutarlo como una aplicación web local. Esto significa que tiene todas las herramientas que necesita para implementar aplicaciones web y no exponer su fuente.

Soporte AMF integrado para aplicaciones Flex/Flash

Desde que Adobe creó sus herramientas BlazeDS AMF de código abierto, Railo las ha integrado para crear un sistema fácil de usar que “solo funciona” con aplicaciones Flash.

Integración entre aplicaciones, manipulación de PDF y vídeo

CFML ya tiene una gran capacidad para integrarse con un gran número de sistemas de bases de datos y se puede ampliar para usar cualquiera de los numerosos proyectos Java de código abierto.

Railo se puede utilizar para hablar con Amazon Web Services, como EC2 y S3 para aplicaciones de computación en la nube. Railo también cuenta con funciones integradas para conversiones de archivos, como la generación dinámica de archivos PDF y la edición programática y las conversiones de formato de vídeo digital. Unas pocas líneas de código simples pueden convertir sus archivos de vídeo a diferentes formatos, extraer miniaturas para vistas previas web y, a continuación, hacer que se suelten en Amazon S3 para que se sirvan desde la nube. Cosas muy interesantes, y vale la pena mirar algunos de los ejemplos en el sitio web de Railo.

Al revisar el código que utiliza estas características, parece bastante simple y es increíble que Railo las haga parecer un juego de niños, pero hay una integración entre sistemas seria entre bastidores. Railo hace que sea muy fácil agregar estas capacidades a cualquier aplicación web.

Ampliable infinitamente con Java

Como se mencionó anteriormente, es fácil invocar clases Java desde páginas CFML. Dado que Railo se ejecuta en un contenedor Java, esto significa que cualquier clase o código del mundo Java se puede integrar y usar con una aplicación Railo.

Mi experiencia Construyendo un Proyecto Railo

Mi empresa ha utilizado ColdFusion para varios proyectos. Uno de nuestros productos comerciales se basa en él y fue diseñado originalmente para Adobe ColdFusion. Nuestro producto hace mucho trabajo pesado con bases de datos, internacionalización, conversiones de formato de documento, vistas previas de PDF y mucho más.

A principios de 2009 hicimos una conversión completa del código fuente para que fuera compatible con Railo. Solo había áreas menores en las que nuestro código necesitaba cambiar, y la mayoría de ellas tenían código Java personalizado que escribimos y que simplemente necesitaba actualizarse para que fuera compatible con las bibliotecas Java de Railo. La agradable sorpresa llegó cuando terminamos y notamos un aumento significativo del rendimiento corriendo en Railo.

Resumen

En resumen, me ha impresionado mucho Railo. Está impulsado por la comunidad; las personas de Railo son receptivas y realmente se preocupan por la comunidad de desarrolladores, y el producto realmente ofrece lo que afirma. Han proporcionado una plataforma de desarrollo de aplicaciones que es compatible con la industria e innovadora. Creo que todos los desarrolladores de aplicaciones web experimentados podrán apreciar lo que Railo tiene para ofrecer. Creo que una integración tan poderosa hecha tan fácilmente con solo unas pocas líneas de código atraerá mucha atención. Esta es definitivamente una tecnología que debes vigilar.

Leave a Reply