Inleiding tot Railo Open Source
Railo is een open source Java-toepassingsserver die CFML (ColdFusion Markup Language) implementeert, een taggebaseerde taal van Adobe ‘ s commerciële product “ColdFusion.”De prestaties zijn uitstekend, en het bevat functies die de productiviteit aanzienlijk verhogen.Railo is een relatief nieuwkomer, maar heeft de laatste tijd een aantal indrukwekkende rimpelingen in de industrie gemaakt. Dit artikel is een inleiding op een aantal van de cruciale voordelen van Railo en waarom het de moeite waard een serieuze zoektocht naar web applicatie ontwikkeling.
is ColdFusion niet dood?Een paar jaar geleden werd een artikel gepubliceerd waarin 10 technologieën werden genoemd die dood of stervende waren, en tot grote verbazing stond ColdFusion in die lijst. Dat veroorzaakte veel golven. Een ding over CFML ontwikkelaars – ze zijn gepassioneerd over hun programmeertaal!Het succes van ColdFusion op specifieke verticale markten was gematigd, maar werd door de Amerikaanse regering met name goed geaccepteerd. In vergelijking met dominante ontwikkelingstalen leek CFML nooit echte gunst te vinden bij de massa. Sinds ColdFusion werd opnieuw ontworpen om volledig te draaien op Java, en met de komst van Adobe Flex een paar jaar geleden die Flash en ColdFusion integreert, Dit is nogal veranderd. Het ColdFusion-product van Adobe integreert zo goed met Flex dat het nieuwe interesse heeft gewekt.
een van de grootste klachten over Adobe ColdFusion is altijd de prijs geweest. Het is mijn ervaring dat CFML-ontwikkelaars zichzelf beschouwen als branchegenoten van LAMP (Linux, Apache, MySQL, PHP) ontwikkelaars, die alle open source tools gebruiken. De meerderheid van de LAMP ontwikkelaars beschouwen hun vaardigheden veel hoger dan die van CFML ontwikkelaars. Dit heeft alleen gevoed de woede over de jaren van CFML-ontwikkelaars die beweren dat de investering in de aankoop van ColdFusion is een snelle return on investment, omdat CFML is zo veel productiever.
nu komt Railo, het aanbieden van een gratis en open source oplossing voor de dromen van de CFML-ontwikkelaars. Niet alleen is het gratis, maar ook het presteert fantastisch, is stabiel en wordt redelijk vaak bijgewerkt. Dit is goed nieuws voor CFML, dat is, naar mijn mening, zeer ondergewaardeerd, vooral als gevolg van slechte marketing en verkoopprijzen door de jaren heen. CFML is eigenlijk een vrij krachtige en verrassend productieve taal, en werd ontworpen om een RAD (Rapid Application Development) tool. Het is uitgegroeid tot een aanzienlijk beter product, en verdient zeker meer respect dan het heeft gehad. Maar genoeg over CFML, laten we het hebben over waarom ik Railo zo indrukwekkend vind en wat zich onderscheidt van de concurrentie.
Wat kunt u doen met Railo?
misschien is de beste manier om dit te beantwoorden te zeggen: “wat kan je niet doen met Railo?”De CFML taal is in wezen een grote java tag bibliotheek. CFML is in de loop der jaren uitgegroeid tot een indrukwekkende bibliotheek en Railo ondersteunt alles wat Adobe ‘ s product ondersteunt dat in mainstream gebruik. (Er is een verschil tussen de ondersteuning als zowel Railo en Adobe release nieuwe versies van hun producten).
de Kernfuncties van Railo ‘s taal bieden eenvoudig te leren tags voor alles, van database query’ s tot het verzenden van dynamische e-mailberichten tot scripting verbindingen met ftp en Amazon S3 opslag. Vrijwel alles wat je kunt doen met PHP kun je doen met Railo. Hier is de catch-over het algemeen duurt het minder tijd om een oplossing te implementeren met behulp van CFML dan met PHP, ASP.net of pure Java.
gebruik CFML voor de basis; uitbreiden met Java.
terwijl Railo je veel ingebouwde functies geeft, is de echte waarheid van de situatie dat het Java onder de motorkap is. Alle tags en functies worden uiteindelijk gecompileerd en uitgevoerd als Java byte code. De taal is goed ontworpen, echter, zodat u kunt mixen en overeenkomen met uw CFML en Java-code.
als u bijvoorbeeld in een tekstbestand wilt lezen, kunt u de ingebouwde tag CFFILE gebruiken:
<cffile action=" read"file =" c:webmessage.txt "variable=" strContent " >< / cffile>
dit leest in de inhoud van het tekstbestand en slaat het op in de opgegeven variabele.
om die inhoud in de webbrowser weer te geven, zou u het zo uitvoeren:
<cfoutput> # strContent # </cfoutput>
om te illustreren hoe Java direct in uw code kan worden gebruikt, kan dezelfde taak worden uitgevoerd met Java-objecten in plaats van de ingebouwde CFML-tags zoals dit:
<cfobject type= "Java" class= "java. io. FileReader" Action= "Create" name= "myFileReader" ><cfset Result = fileReader.init ("c: webmessage.txt");<cfoutput> # strContent # </cfoutput>
deze twee kleine stukjes code bereiken dezelfde doelen. Mijn punt is dat de CFML taal is niet beperkt tot alleen CFML, u kunt instantiate en gebruik elk Java-object overal binnen uw code.
dit maakt de taal ongelooflijk flexibel, omdat u de CFML-tags kunt gebruiken voor snelle en eenvoudige taken, en Java kunt gebruiken voor zwaar tillen waar nodig.
implementatie-en ontwikkelomgevingen
alle versies van Railo kunnen worden gedownload als een “express”, “server” of “custom” implementatie. De express edition is zeer eenvoudig voor ontwikkelaars om up and running te krijgen en gaat meestal om het decomprimeren van een zip-bestand op uw lokale systeem en het opstarten. De server pakket wordt geleverd samen met Caucho Resin, een zeer hoge prestaties java applicatie server. (Kant opmerking-sommige van de tools opgenomen met hars zijn vrij indrukwekkend, met inbegrip van hun all-java implementatie van PHP!). Het aangepaste implementatiepakket is voor het lanceren van Railo op andere Java servlet containers zoals Tomcat of Weblogic.
het opzetten van Railo op een productieserver was niet moeilijk, toegegeven het is een beetje meer betrokken dan het installeren van RPM ‘s van uw favoriete PHP-versie, maar documentatie was gemakkelijk te vinden op Railo’ s site en andere sites gevonden via Google.
net als Adobe ‘s product, wordt Railo geleverd met webbeheerprogramma’ s om de server-en toepassingsspecifieke instellingen en bronnen te beheren. Dit is een grote stap vooruit ten opzichte van de PHP en Linux wereld, waar je normaal gesproken veel van de instellingen van je applicatie moet configureren (gegevensbronnen bijvoorbeeld) in configuratiebestanden. De Railo-beheerder gaat ook een paar stappen verder dan Adobe en maakt contextspecifieke beheerconsoles beschikbaar, zodat individuele applicaties en websites hun eigen sandboxed-gegevensbronnen, virtuele toewijzingen en meer kunnen definiëren. Dit is echt een leuke touch, en is een gevraagde functie voor een lange tijd.
waar Railo schittert
heb ik al een aantal redenen besproken waarom Railo indrukwekkend is. Naast het feit dat een zeer krachtige RAD, met prestaties die rivalen of verslaat Adobe, Railo onderscheidt zich verder met een aantal indrukwekkende functies.
virtuele bestandssystemen en Mappings
als ontwikkelaars hebben we allemaal te maken gehad met het beheren van remote of gecomprimeerde bestanden op een of ander moment. Deze functie in Railo doet in een paar muisklikken wat kost honderden regels code. Railo kunt u kaart remote bestandssystemen, zoals FTP, drive shares, en zelfs Amazon S3 emmers en wijs ze toe aan een virtueel pad in uw applicatie! Dit betekent dat je de eenvoudige ingebouwde functies kunt gebruiken voor bestandsmanipulatie, en die bestanden kunt behandelen alsof ze op het lokale bestandssysteem zitten. De ondersteuning gaat nog verder, en kunt u kaart Java jar bestanden en .zip-bestanden, zodat u dynamisch kunt verwijzen en uitvoeren code zittend in gecomprimeerde archieven.
het opzetten van nieuwe mappings is een point-and-click aangelegenheid in de Railo administrator of kan programmatisch worden gedaan.
Applicatiedistributie en Broncodebeveiliging
de Java-wereld is altijd een stap (goed, meerdere stappen) voor de ontwikkelaars van webapplicaties geweest bij het verpakken en distribueren van applicaties. Veel ontwikkelaars hebben hun eigen eigen methoden voor het implementeren van een site en veel web development applicaties, zoals Dreamweaver, hebben een FTP-gebaseerde methode van deployment. Uiteindelijk betekent het meestal het overhandigen van onbeschermde broncode.
CFML ontwikkeling is dezelfde manier geweest (ja, Adobe had een manier om te compileren .cfm templates, maar mijn onderzoek toont aan dat het zowel onhandig om te gebruiken en niet erg populair). Railo brengt” Java world ” pakket implementatie om CFML ontwikkeling. U kunt een hele applicatie naar Java byte code compileren, comprimeren naar een jar-bestand en implementeren op een andere Railo server. Railo is zelfs slim genoeg om u te laten kaart een externe jar-bestand op een FTP-site en voer het uit als een lokale webapplicatie. Dit betekent dat je alle tools hebt die je nodig hebt om webapplicaties te implementeren en je bron niet bloot te leggen.
ingebouwde AMF-ondersteuning voor Flex/Flash-applicaties
sinds Adobe open-source hun BlazeDS AMF-tools heeft Railo deze geà ntegreerd om een eenvoudig te gebruiken systeem te maken dat “gewoon werkt” met Flash-applicaties.
Inter-Application Integration, PDF and Video Manipulation
CFML heeft al een grote mogelijkheid voor integratie met een groot aantal databasesystemen en kan worden uitgebreid met een van de enorme aantal open source Java-projecten.
Railo kan worden gebruikt om te praten met Amazon Web Services, zoals EC2 en S3 voor cloud computing applicaties. Railo heeft ook ingebouwde functies voor bestandsconversies, zoals dynamisch genereren van PDF ‘ s, en programmatische bewerking en formaat conversies van digitale video. Een paar eenvoudige regels code kan uw videobestanden converteren naar verschillende formaten, extraheren miniaturen voor web previews, en dan kun je ze laten vallen op Amazon S3 te worden geserveerd vanuit de cloud. Zeer coole dingen, en de moeite waard om te kijken naar een aantal van de voorbeelden op de Railo website.
als je de code bekijkt die deze functies gebruikt, ziet het er vrij eenvoudig uit en het is verbazingwekkend dat Railo ze kinderspel laat lijken, maar er is serieuze inter-systeem integratie gaande achter de schermen. Railo maakt het zo heel eenvoudig om deze mogelijkheden toe te voegen aan elke webapplicatie.
oneindig uitbreidbaar met Java
zoals hierboven vermeld, is het gemakkelijk om Java-klassen aan te roepen vanuit CFML-pagina ‘ s. Omdat Railo zelf draait in een Java container, dat betekent dat alle klassen of code uit de Java wereld kan worden geïntegreerd en gebruikt met een Railo applicatie.
mijn ervaring met het bouwen van een spoorwegproject
mijn bedrijf heeft ColdFusion voor verschillende projecten gebruikt. Een van onze commerciële producten is erop gebouwd en is oorspronkelijk ontworpen voor Adobe ColdFusion. Ons product doet veel zwaar tillen met databases, internationalisering, document formaat conversies, PDF previews en nog veel meer.Begin 2009 deden we een volledige conversie van de bron om compatibel te zijn met Railo. Er waren slechts kleine gebieden waar onze code moest veranderen, en de meeste van hen waren met aangepaste Java-code die we schreven die gewoon moest worden bijgewerkt naar compatibel met Railo ‘ s Java-bibliotheken. De aangename verrassing kwam toen we klaar waren en een aanzienlijke prestatieverhoging merkten op Railo.
samenvatting
samenvattend ben ik erg onder de indruk van Railo. Het is community-driven; de mensen bij Railo zijn responsief en echt de zorg over de developer community, en het product echt levert wat het beweert. Ze hebben een applicatieontwikkelingsplatform geleverd dat zowel industriecompatibel als innovatief is. Ik denk dat alle doorgewinterde webapplicatie ontwikkelaars in staat zal zijn om te waarderen wat Railo te bieden heeft. Ik denk dat zo ‘ n krachtige integratie die zo gemakkelijk wordt gedaan met slechts een paar regels code veel aandacht zal trekken. Dit is zeker een technologie die je in de gaten moet houden.
Leave a Reply