Introduction à Railo Open Source

Railo est un serveur d’applications Java open source qui implémente CFML (ColdFusion Markup Language), un langage basé sur des balises du produit commercial d’Adobe “ColdFusion.”Ses performances sont excellentes et il comprend des fonctionnalités qui augmentent considérablement la productivité.

Railo est un nouveau venu, mais a fait des vagues impressionnantes dans l’industrie ces derniers temps. Cet article est une introduction sur certains des avantages critiques de Railo et pourquoi il vaut la peine d’examiner sérieusement le développement d’applications Web.

ColdFusion n’est-elle pas morte ?

Il y a quelques années, un article a été publié nommant 10 technologies mortes ou mourantes, et à la surprise de beaucoup de gens, ColdFusion figurait dans cette liste. Cela a causé beaucoup de vagues. Une chose à propos des développeurs CFML – ils sont passionnés par leur langage de programmation!

ColdFusion a connu un succès modéré sur des marchés verticaux spécifiques, mais a été particulièrement bien accepté par le gouvernement américain. Par rapport aux langages de développement dominants, CFML n’a jamais semblé trouver une réelle faveur auprès des masses. Depuis que ColdFusion a été repensé pour fonctionner entièrement sur Java, et avec l’arrivée d’Adobe Flex il y a quelques années qui intègre Flash et ColdFusion, cela a beaucoup changé. Le produit ColdFusion d’Adobe s’intègre si bien à Flex qu’il a suscité un nouvel intérêt.

L’une des plus grandes plaintes concernant Adobe ColdFusion a toujours été le prix. D’après mon expérience, les développeurs CFML se considèrent comme des pairs de l’industrie des développeurs LAMP (Linux, Apache, MySQL, PHP), qui utilisent tous les outils open source. La majorité des développeurs LAMP considèrent leurs compétences beaucoup plus élevées que celles des développeurs CFML. Cela n’a fait qu’alimenter la fureur au fil des ans des développeurs CFML qui affirment que l’investissement dans l’achat de ColdFusion est un retour sur investissement rapide car CFML est beaucoup plus productif.

Maintenant vient Railo, offrant une solution gratuite et open source aux rêves des développeurs CFML. Non seulement il est gratuit, mais il fonctionne également de manière fantastique, est stable et est mis à jour assez fréquemment. C’est une bonne nouvelle pour CFML, qui est, à mon avis, très sous-estimée, principalement en raison de la faiblesse du marketing et des prix de vente au fil des ans. CFML est en fait un langage assez puissant et étonnamment productif, et a été conçu pour être un outil RAD (Rapid Application Development). Il est devenu un produit nettement meilleur et mérite certainement plus de respect qu’il n’en a eu. Mais assez sur CFML, parlons des raisons pour lesquelles je trouve Railo si impressionnant et de ce qui se distingue de la concurrence.

Que pouvez-vous faire avec Railo?

La meilleure façon de répondre à cela est peut-être de dire : ” Qu’EST-ce que tu ne PEUX pas faire avec Railo?”Le langage CFML est essentiellement une grande bibliothèque de balises java. CFML est devenue une bibliothèque impressionnante au fil des ans et Railo prend en charge tout ce que le produit Adobe prend en charge et qui est couramment utilisé. (Il y a une certaine différence entre le support car Railo et Adobe publient de nouvelles versions de leurs produits).

Les fonctionnalités principales du langage Railo fournissent des balises faciles à apprendre pour tout, des requêtes de base de données à l’envoi de messages électroniques dynamiques en passant par les connexions de script avec le stockage ftp et Amazon s3. À peu près tout ce que vous pouvez faire avec PHP, vous pouvez le faire avec Railo. Voici le hic – de manière générale, il faut moins de temps pour implémenter une solution en utilisant CFML qu’avec PHP, ASP.net ou Java pur.

Utilisez CFML pour les bases; Étendez en utilisant Java.

Alors que Railo vous donne BEAUCOUP de fonctions intégrées, la vraie vérité de la situation est que c’est Java sous le capot. Toutes les balises et fonctions sont finalement compilées et exécutées en tant que code d’octet Java. Le langage est cependant bien conçu pour que vous puissiez mélanger et assortir votre code CFML et Java.

Par exemple, si vous souhaitez lire dans un fichier texte, vous pouvez utiliser la balise intégrée CFFILE:

< cffile action= "lire" fichier="c:webmessage.txt"variable="strContent" > </cffile > 

Lit le contenu du fichier texte et le stocke dans la variable spécifiée.

Pour afficher ce contenu dans le navigateur Web, vous devez le sortir comme suit:

 < cfoutput > #strContent# < /cfoutput > 

Pour illustrer comment Java peut être utilisé directement dans votre code, cette même tâche peut être effectuée en utilisant des objets Java au lieu des balises CFML intégrées comme ceci:

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

Ces deux petits morceaux de code atteignent les mêmes objectifs. Mon point est que le langage CFML ne se limite pas à CFML, vous pouvez instancier et utiliser n’importe quel objet Java n’importe où dans votre code.

Cela rend le langage incroyablement flexible, car vous pouvez utiliser les balises CFML pour des tâches rapides et faciles, et utiliser Java pour le levage de charges lourdes si nécessaire.

Environnements de déploiement et de développement

Toutes les versions de Railo peuvent être téléchargées en tant que déploiement ” express “, ” serveur ” ou ” personnalisé “. L’édition express est extrêmement facile à utiliser pour les développeurs et consiste généralement à décompresser un fichier zip sur votre système local et à le démarrer. Le package serveur est livré avec Caucho Resin, un serveur d’applications java très performant. (Note latérale – certains des outils inclus avec Resin sont également assez impressionnants, y compris leur implémentation entièrement java de PHP!). Le package de déploiement personnalisé permet de lancer Railo sur d’autres conteneurs de servlets Java tels que Tomcat ou Weblogic.

La configuration de Railo sur un serveur de production n’a pas été difficile, certes, c’est un peu plus compliqué que d’installer des RPM de votre version PHP préférée, mais la documentation était facile à trouver sur le site de Railo et d’autres sites trouvés via Google.

Comme le produit Adobe, Railo est livré avec des outils d’administration Web pour gérer les paramètres et les ressources spécifiques au serveur et à l’application. C’est un grand pas en avant par rapport au monde PHP et Linux, où vous devez normalement configurer de nombreux paramètres de votre application (sources de données par exemple) dans des fichiers de configuration. L’administrateur Railo va également au-delà d’Adobe et met à disposition des consoles d’administration spécifiques au contexte, afin que les applications et les sites Web individuels puissent définir leurs propres sources de données en bac à sable, mappages virtuels, etc. C’est une touche vraiment agréable, et c’est une fonctionnalité demandée depuis longtemps.

Là où Railo brille

J’ai déjà passé en revue certaines des raisons pour lesquelles Railo est impressionnant. En plus d’être un RAD très puissant, avec des performances qui rivalisent ou battent Adobe, Railo se distingue davantage avec des fonctionnalités impressionnantes.

Systèmes de fichiers virtuels et mappages

En tant que développeurs, nous avons tous dû gérer des fichiers distants ou compressés à un moment ou à un autre. Cette fonctionnalité de Railo fait en quelques clics de souris ce qui prend des centaines de lignes de code. Railo vous permet de mapper des systèmes de fichiers distants, tels que FTP, des partages de disques et même des compartiments Amazon S3 et de les affecter à un chemin virtuel dans votre application ! Cela signifie que vous pouvez utiliser les fonctions intégrées simples pour la manipulation de fichiers et traiter ces fichiers comme s’ils se trouvaient directement sur le système de fichiers local. Le support va encore plus loin, et vous permet de mapper les fichiers jar Java et.fichiers zip, de sorte que vous pouvez référencer et exécuter dynamiquement du code dans des archives compressées.

La configuration de nouveaux mappages est une affaire de pointer-cliquer dans l’administrateur Railo ou peut être effectuée par programme.

Distribution des applications et Sécurité du Code Source

Le monde Java a toujours été une étape (d’accord, plusieurs étapes) en avance sur les développeurs d’applications Web dans le packaging et la distribution des applications. De nombreux développeurs ont leurs propres méthodes de déploiement d’un site et de nombreuses applications de développement Web, comme Dreamweaver, ont une méthode de déploiement basée sur FTP. En fin de compte, cela signifie généralement la remise de code source non protégé.

Le développement de CFML a été le même (oui, Adobe avait un moyen de compiler.modèles cfm, mais mes recherches montrent qu’il est à la fois maladroit à utiliser et peu populaire). Railo apporte le déploiement de paquets ” Java world ” au développement CFML. Vous pouvez compiler une application entière en code d’octets Java, la compresser dans un fichier jar et la déployer sur n’importe quel autre serveur Railo. Railo est même assez intelligent pour vous permettre de mapper un fichier jar distant sur un site FTP et de l’exécuter en tant qu’application Web locale. Cela signifie que vous disposez de tous les outils dont vous avez besoin pour déployer des applications Web et ne pas exposer votre source.

Prise en charge intégrée de l’AMF pour les applications Flex/Flash

Depuis qu’Adobe a ouvert ses outils AMF BlazeDS, Railo les a intégrés, ce qui en fait un système facile à utiliser qui “fonctionne ” avec les applications Flash.

Intégration Inter-applications, manipulation PDF et Vidéo

CFML a déjà une grande capacité d’intégration avec un grand nombre de systèmes de base de données et peut être étendu pour utiliser n’importe lequel des nombreux projets Java open source.

Railo peut être utilisé pour communiquer avec Amazon Web Services, comme EC2 et S3 pour les applications de cloud computing. Railo dispose également de fonctionnalités intégrées pour les conversions de fichiers, telles que la génération dynamique de PDF, l’édition programmatique et les conversions de format de vidéo numérique. Quelques lignes de code simples peuvent convertir vos fichiers vidéo en différents formats, extraire des vignettes pour des aperçus Web, puis vous pouvez les déposer sur Amazon S3 pour les servir depuis le cloud. Des trucs très cool, et qui valent la peine de regarder certains des exemples sur le site Web de Railo.

Lorsque vous regardez le code qui utilise ces fonctionnalités, cela semble assez simple et il est étonnant que Railo les fasse ressembler à un jeu d’enfant, mais il y a une intégration inter-système sérieuse en coulisses. Railo facilite l’ajout de ces fonctionnalités à n’importe quelle application Web.

Extensible à l’infini avec Java

Comme mentionné ci-dessus, il est facile d’invoquer des classes Java à partir de pages CFML. Puisque Railo s’exécute lui-même dans un conteneur Java, cela signifie que toutes les classes ou tous les codes du monde Java peuvent être intégrés et utilisés avec une application Railo.

Mon expérience dans la construction d’un projet Railo

Mon entreprise a utilisé ColdFusion pour plusieurs projets. L’un de nos produits commerciaux est construit dessus et a été conçu à l’origine pour Adobe ColdFusion. Notre produit fait beaucoup de travail avec les bases de données, l’internationalisation, les conversions de format de document, les aperçus PDF et bien plus encore.

Début 2009, nous avons effectué une conversion complète de la source pour qu’elle soit compatible avec Railo. Il n’y avait que des zones mineures où notre code devait changer, et la plupart d’entre elles étaient avec du code Java personnalisé que nous avons écrit et qui devait simplement être mis à jour pour être compatible avec les bibliothèques Java de Railo. L’agréable surprise est venue lorsque nous avons terminé et avons remarqué une augmentation significative des performances sur Railo.

Résumé

En résumé, j’ai été très impressionné par Railo. Il est axé sur la communauté; les gens de Railo sont réactifs et se soucient vraiment de la communauté des développeurs, et le produit offre vraiment ce qu’il prétend. Ils ont fourni une plate-forme de développement d’applications à la fois compatible avec l’industrie et innovante. Je pense que tous les développeurs d’applications Web chevronnés seront en mesure d’apprécier ce que Railo a à offrir. Je crois qu’une intégration aussi puissante faite si facilement avec seulement quelques lignes de code attirera beaucoup d’attention. C’est certainement une technologie sur laquelle vous devriez garder un œil.

Leave a Reply