Introduzione a Railo Open Source
Railo è un server di applicazioni Java open source che implementa CFML (ColdFusion Markup Language), un linguaggio basato su tag dal prodotto commerciale di Adobe “ColdFusion.”Le sue prestazioni sono eccellenti e includono funzionalità che aumentano significativamente la produttività.
Railo è un relativamente nuovo arrivato, ma ha fatto alcune increspature impressionanti nel settore ultimamente. Questo articolo è un primer su alcuni dei vantaggi critici di Railo e perché vale la pena uno sguardo serio per lo sviluppo di applicazioni web.
ColdFusion non è morto?
Alcuni anni fa, è stato pubblicato un articolo che nominava 10 tecnologie che erano morte o morenti, e con sorpresa di molte persone, ColdFusion era in quella lista. Che ha causato un sacco di onde. Una cosa su sviluppatori CFML-sono appassionati di loro linguaggio di programmazione!
ColdFusion ha visto un moderato successo in specifici mercati verticali, ma è stato notevolmente ben accettato dal governo degli Stati Uniti. Rispetto ai linguaggi di sviluppo dominanti, CFML non sembrava mai trovare un vero favore con le masse. Dal momento che ColdFusion è stato riprogettato per funzionare interamente su Java, e con l’arrivo di Adobe Flex a pochi anni fa, che integra Flash e ColdFusion, questo è cambiato un po’. Il prodotto ColdFusion di Adobe si integra così bene con Flex che ha generato un nuovo interesse.
Una delle più grandi lamentele su Adobe ColdFusion è sempre stato il prezzo. È stata la mia esperienza che gli sviluppatori CFML si considerano pari del settore degli sviluppatori LAMP (Linux, Apache, MySQL, PHP), che utilizzano tutti gli strumenti open source. La maggior parte degli sviluppatori di LAMP considera le proprie abilità molto più elevate di quelle degli sviluppatori CFML. Questo ha alimentato solo la furia nel corso degli anni degli sviluppatori CFML che affermano che l’investimento nell’acquisto di ColdFusion è un rapido ritorno sull’investimento poiché CFML è molto più produttivo.
Ora arriva Railo, che offre una soluzione gratuita e open source per i sogni degli sviluppatori CFML. Non solo è gratuito, ma anche esegue fantastico, è stabile, e viene aggiornato ragionevolmente frequentemente. Questa è una buona notizia per CFML, che è, a mio parere, altamente sottovalutato, soprattutto a causa di marketing poveri e punti di prezzo di vendita nel corso degli anni. CFML è in realtà piuttosto un linguaggio potente e sorprendentemente produttivo, ed è stato progettato per essere uno strumento RAD (Rapid Application Development). È cresciuto in un prodotto significativamente migliore, e certamente merita più rispetto di quanto non abbia avuto. Ma basta con CFML, parliamo del perché trovo Railo è così impressionante e ciò che si distingue dalla concorrenza.
Cosa puoi fare con Railo?
Forse il modo migliore per rispondere a questo è dire: “Cosa NON puoi fare con Railo?”Il linguaggio CFML è essenzialmente una grande libreria di tag java. CFML è cresciuto in una libreria impressionante nel corso degli anni e Railo supporta tutto ciò che supporta il prodotto di Adobe che è in uso mainstream. (C’è qualche differenza tra il supporto come sia Railo e Adobe rilasciare nuove versioni dei loro prodotti).
Le caratteristiche principali del linguaggio Railo forniscono tag facili da imparare per tutto, dalle query di database all’invio di messaggi e-mail dinamici alle connessioni di scripting con ftp e Amazon s3 storage. Praticamente tutto ciò che puoi fare con PHP puoi fare con Railo. Ecco il problema: in generale, ci vuole meno tempo per implementare una soluzione usando CFML rispetto a PHP, ASP.net o Java puro.
Usa CFML per le basi; Estendi usando Java.
Mentre Railo ti offre molte funzioni integrate, la vera verità della situazione è che è Java sotto il cofano. Tutti i tag e le funzioni alla fine vengono compilati ed eseguiti come codice byte Java. Il linguaggio è ben progettato, tuttavia, in modo da poter combinare il codice CFML e Java.
Ad esempio, se si desidera leggere in un file di testo, è possibile utilizzare il tag CFFILE integrato:
<cffile action = "leggi" file= " c: messaggio web.txt " variable = "strContent" ></cffile>
Questo legge nel contenuto del file di testo e lo memorizza nella variabile specificata.
Per visualizzare quel contenuto nel browser Web, lo si emette in questo modo:
<cfoutput>#strContent#</cfoutput>
Per illustrare il funzionamento di Java può essere utilizzato direttamente nel codice, questo stesso compito può essere fatto utilizzando oggetti Java al posto di quello integrato in CFML tag come:
<cfobject type="Java" class=" java.io.FileReader" Action="Creare" name="myFileReader"><cfset Risultato = fileReader.init ("c: messaggio web.txt"); < cfoutput > # strContent#< / cfoutput>
Questi due piccoli pezzi di codice raggiungono gli stessi obiettivi. Il mio punto è che il linguaggio CFML non è limitato al solo CFML, è possibile istanziare e utilizzare qualsiasi oggetto Java ovunque all’interno del codice.
Questo rende il linguaggio incredibilmente flessibile, dal momento che è possibile utilizzare i tag CFML per attività rapide e facili e utilizzare Java per il sollevamento di carichi pesanti dove necessario.
Ambienti di distribuzione e sviluppo
Tutte le versioni di Railo possono essere scaricate come distribuzione “express”, “server” o “personalizzata”. L’edizione express è estremamente facile per gli sviluppatori di ottenere installato e funzionante e di solito comporta solo decomprimere un file zip sul sistema locale e avviarlo. Il pacchetto server viene fornito con Caucho Resin, un server di applicazioni java ad altissime prestazioni. (Nota a margine-alcuni degli strumenti inclusi con Resin sono piuttosto impressionanti, inclusa la loro implementazione all-java di PHP!). Il pacchetto di distribuzione personalizzato è per l’avvio di Railo su altri contenitori servlet Java come Tomcat o Weblogic.
Configurare Railo su un server di produzione non è stato difficile, dato che è un po ‘ più complicato dell’installazione di RPM della versione PHP preferita, ma la documentazione è stata facilmente trovata sul sito di Railo e su altri siti trovati tramite Google.
Come il prodotto Adobe, Railo è dotato di strumenti di amministrazione Web per gestire le impostazioni e le risorse specifiche del server e dell’applicazione. Questo è un grande passo avanti rispetto al mondo PHP e Linux, dove normalmente è necessario configurare molte delle impostazioni dell’applicazione (ad esempio le origini dati) nei file di configurazione. L’amministratore Railo va anche oltre Adobe e rende disponibili console di amministrazione specifiche per il contesto, in modo che singole applicazioni e siti Web possano definire le proprie origini dati in modalità sandbox, mappature virtuali e altro ancora. Questo è davvero un bel tocco, ed è stata una caratteristica richiesta per molto tempo.
Dove Railo brilla
Ho già esaminato alcuni dei motivi per cui Railo è impressionante. Oltre ad essere un RAD molto potente, con prestazioni che rivaleggia o batte Adobe, Railo si distingue ulteriormente con alcune caratteristiche impressionanti.
Virtual File system e Mapping
Come sviluppatori, tutti abbiamo avuto a che fare con la gestione di file remoti o compressi in un momento o nell’altro. Questa funzione in Railo fa in pochi clic del mouse ciò che richiede centinaia di righe di codice. Railo ti consente di mappare i file system remoti, come FTP, condivisioni di unità e persino bucket Amazon S3 e assegnarli a un percorso virtuale nella tua applicazione! Ciò significa che è possibile utilizzare le semplici funzioni integrate per la manipolazione dei file e trattare quei file come se fossero seduti direttamente sul file system locale. Il supporto va anche oltre, e consente di mappare i file jar Java e .file zip, in modo da poter fare riferimento in modo dinamico ed eseguire il codice seduto all’interno di archivi compressi.
L’impostazione di nuove mappature è un affare point-and-click nell’amministratore Railo o può essere eseguita a livello di programmazione.
Distribuzione delle applicazioni e sicurezza del codice sorgente
Il mondo Java è sempre stato un passo avanti (va bene, diversi passaggi) rispetto agli sviluppatori di applicazioni Web nel packaging e nella distribuzione di applicazioni. Molti sviluppatori hanno i propri metodi home-grown per la distribuzione di un sito e molte applicazioni di sviluppo web, come Dreamweaver, hanno un metodo di distribuzione basato su FTP. In definitiva, di solito significa consegnare il codice sorgente non protetto.
Lo sviluppo di CFML è stato allo stesso modo (sì, Adobe ha avuto un modo per compilare .modelli cfm, ma la mia ricerca mostra che è sia goffo da usare e non molto popolare). Railo porta la distribuzione del pacchetto “Java world” allo sviluppo CFML. È possibile compilare un’intera applicazione in codice byte Java, comprimerlo in un file jar e distribuirlo su qualsiasi altro server Railo. Railo è anche abbastanza intelligente da consentire di mappare un file jar remoto su un sito FTP ed eseguirlo come applicazione Web locale. Ciò significa che hai tutti gli strumenti necessari per distribuire applicazioni Web e non esporre la tua fonte.
Supporto AMF integrato per le applicazioni Flex/Flash
Dal momento che Adobe ha aperto i loro strumenti AMF BlazeDS, Railo li ha integrati creando un sistema facile da usare che “funziona solo” con le applicazioni Flash.
Integrazione tra applicazioni, PDF e manipolazione video
CFML ha già una grande capacità di integrazione con un numero enorme di sistemi di database e può essere espanso per utilizzare qualsiasi numero enorme di progetti Java open source.
Railo può essere utilizzato per parlare con Amazon Web Services, come EC2 e S3 per le applicazioni di cloud computing. Railo ha anche costruito in caratteristiche per le conversioni di file, come ad esempio la generazione dinamica di PDF, e l’editing programmatico e le conversioni di formato di video digitale. Poche semplici righe di codice in grado di convertire i file video in diversi formati, estrarre le miniature per le anteprime web, e poi si potrebbe avere loro caduto su Amazon S3 per essere servito dal cloud. Roba molto cool, e vale la pena guardare alcuni degli esempi sul sito Railo.
Mentre guardi il codice che utilizza queste funzionalità, sembra abbastanza semplice ed è sorprendente che Railo le faccia sembrare un gioco da ragazzi, ma c’è una seria integrazione tra sistemi in corso dietro le quinte. Railo rende così molto facile aggiungere queste funzionalità a qualsiasi applicazione web.
Infinitamente espandibile con Java
Come accennato in precedenza, è facile richiamare classi Java dalle pagine CFML. Poiché Railo stesso viene eseguito in un contenitore Java, ciò significa che qualsiasi classe o codice dal mondo Java può essere integrato e utilizzato con un’applicazione Railo.
La mia esperienza nella costruzione di un progetto Railo
La mia azienda ha utilizzato ColdFusion per diversi progetti. Uno dei nostri prodotti commerciali è costruito su di esso ed è stato originariamente progettato per Adobe ColdFusion. Il nostro prodotto fa un sacco di lavoro pesante con database, internazionalizzazione, conversioni di formati di documento, anteprime PDF e molto altro ancora.
All’inizio del 2009 abbiamo fatto una conversione completa della sorgente per essere compatibile con Railo. C’erano solo aree minori in cui il nostro codice doveva cambiare, e la maggior parte di esse erano con codice Java personalizzato che abbiamo scritto che doveva semplicemente essere aggiornato per essere compatibile con le librerie Java di Railo. La piacevole sorpresa è arrivata quando abbiamo finito e abbiamo notato un significativo aumento delle prestazioni in esecuzione su Railo.
Sommario
In sintesi, sono rimasto molto colpito da Railo. È guidato dalla comunità; le persone di Railo sono reattive e si preoccupano veramente della comunità degli sviluppatori, e il prodotto offre davvero ciò che afferma. Essi hanno fornito una piattaforma di sviluppo di applicazioni che è sia industria compatibile e innovativo. Penso che tutti gli sviluppatori di applicazioni web esperti saranno in grado di apprezzare ciò che Railo ha da offrire. Credo che un’integrazione così potente fatta così facilmente con solo poche righe di codice attirerà molta attenzione. Questa è sicuramente una tecnologia che si dovrebbe tenere d’occhio.
Leave a Reply