Introduktion til Railo Open Source

Railo er en open source Java-applikationsserver, der implementerer CFML (ColdFusion Markup Language), et tagbaseret sprog fra Adobes kommercielle produkt “ColdFusion.”Dens ydeevne er fremragende, og den indeholder funktioner, der øger produktiviteten betydeligt.

Railo er en relativ nykommer, men har lavet nogle imponerende krusninger i branchen for nylig. Denne artikel er en primer på nogle af de kritiske fordele ved Railo, og hvorfor det er værd at se Seriøst efter udvikling af applikationer.

er ColdFusion ikke død?

et par år tilbage blev der offentliggjort en artikel, der navngav 10 teknologier, der var døde eller døende, og til mange menneskers overraskelse var ColdFusion på listen. Det forårsagede mange bølger. En ting ved CFML-udviklere-de brænder for deres programmeringssprog!

ColdFusion har oplevet moderat succes på specifikke vertikale markeder, men er især blevet godt accepteret af den amerikanske regering. I sammenligning med dominerende udviklingssprog syntes CFML aldrig at finde reel fordel hos masserne. Da ColdFusion blev ombygget til at køre helt på Java, og med ankomsten af Adobe fleks for et par år siden, som integrerer Flash og ColdFusion, har dette ændret sig ganske lidt. Adobes ColdFusion-produkt integreres så godt med fleks, at det har skabt ny interesse.

en af de største klager over Adobe ColdFusion har altid været prisen. Det har været min erfaring, at CFML-udviklere anser sig for at være branchekammerater af LAMP-udviklere, der bruger alle open source-værktøjer. De fleste LAMP-udviklere anser deres færdigheder meget højere end CFML-udviklere. Dette har kun fodret raseri gennem årene af CFML-udviklere, der hævder, at investeringen i at købe ColdFusion er et hurtigt investeringsafkast, da CFML er så meget mere produktiv.

nu kommer Railo, der tilbyder en gratis og open source-løsning til CFML-udviklernes drømme. Det er ikke kun gratis, men det fungerer også fantastisk, er stabilt og opdateres med rimelighed ofte. Dette er gode nyheder for CFML, som efter min mening er meget undervurderet, hovedsagelig på grund af dårlige marketing-og salgsprispoint gennem årene. CFML er faktisk en ganske kraftfuld og overraskende produktivt sprog, og var designet til at være en rad (Rapid Application Development) værktøj. Det er vokset til et betydeligt bedre produkt, og fortjener bestemt mere respekt, end det har haft. Men nok om CFML, lad os tale om, hvorfor jeg finder Railo så imponerende, og hvad der adskiller sig fra konkurrencen.

Hvad kan du gøre med Railo?

måske er den bedste måde at besvare dette på at sige, “hvad kan du ikke gøre med Railo?”CFML-sproget er i det væsentlige et stort java-tagbibliotek. CFML er vokset til et imponerende bibliotek gennem årene, og Railo understøtter alt, hvad Adobes produkt understøtter, der er i almindelig brug. (Der er en vis forskel mellem supporten, da både Railo og Adobe frigiver nye versioner af deres produkter).

kernefunktionerne i Railos sprog giver nemme at lære tags til alt fra databaseforespørgsler til afsendelse af dynamiske e-mails til scriptforbindelser med FTP og S3-lagring. Stort set alt hvad du kan gøre med PHP, kan du gøre med Railo. Her er fangsten-generelt tager det mindre tid at implementere en løsning ved hjælp af CFML end det gør med PHP, ASP.net eller ren Java.

brug CFML til det grundlæggende; Udvid ved hjælp af Java.

mens Railo giver dig en masse indbyggede funktioner, er den virkelige sandhed i situationen, at det er Java under hætten. Alle tags og funktioner i sidste ende få kompileret og køre som Java byte kode. Sproget er dog godt designet, så du kan blande og matche din CFML og Java-kode.

for eksempel, hvis du ønskede at læse i en tekstfil, kan du bruge den indbyggede tag CFFILE:

<cffile action=" Læs "fil=" c:besked.tekst "variabel=" strContent " ></cffile>

dette læses i indholdet af tekstfilen og gemmer den i den angivne variabel.

for at vise dette indhold i internetsøgeren, ville du udsende det som sådan:

<cfoutput>#strContent#< / cfoutput> 

for at illustrere, hvordan Java kan bruges direkte i din kode, kan den samme opgave udføres ved hjælp af Java-objekter i stedet for de indbyggede CFML-tags som så:

<cfobject type=" Java" class=" java.io.FileReader"Action=" Opret"name="myFileReader" ><cfset resultat = fileReader.init ("c: besked.");< cfoutput>#strContent # </cfoutput>

disse to små stykker kode opnår de samme mål. Mit punkt er, at CFML-sproget ikke er begrænset til bare CFML, du kan instantiere og bruge ethvert Java-objekt hvor som helst i din kode.

dette gør sproget utroligt fleksibelt, da du kan bruge CFML-tags til hurtige og nemme opgaver og bruge Java til tunge løft, hvor det er nødvendigt.

Deployment and Development Environments

alle versioner af Railo kan hentes enten som en “ekspres”, “server” eller “brugerdefineret” implementering. Ekspresudgaven er ekstremt let for udviklere at komme i gang og involverer normalt bare dekomprimering af en lynlåsfil på dit lokale system og start af den. Serverpakken leveres sammen med Caucho Resin, en meget højtydende java-applikationsserver. (Side note – Nogle af de værktøjer, der følger med harpiks, er også ret imponerende, herunder deres all-java implementering af PHP!). Den brugerdefinerede installationspakke er til lancering af Railo på andre Java servlet-containere som f.eks.

opsætning af Railo på en produktionsserver var ikke svært, da det er lidt mere involveret end at installere RPMs af din yndlings PHP-version, men dokumentation blev let fundet på Railos hjemmeside og andre sider fundet via Google.

ligesom Adobes produkt leveres Railo med internetadministrationsværktøjer til styring af server-og applikationsspecifikke indstillinger og ressourcer. Dette er et stort skridt op fra PHP-verdenen, hvor du normalt skal konfigurere en masse af din applikations indstillinger (f.eks. datakilder) i konfigurationsfiler. Railo-administratoren går også et par skridt ud over Adobe og gør kontekstspecifikke administrationskonsoller tilgængelige, så individuelle applikationer og hjemmesider kan definere deres egne sandkassede datakilder, virtuelle kortlægninger og meget mere. Dette er en rigtig flot touch, og har været en anmodet funktion i lang tid.

hvor Railo skinner

jeg har allerede gennemgået nogle af grundene til, at Railo er imponerende. Bortset fra at være en meget kraftfuld RAD, med ydeevne, der rivaler eller slår Adobe, Railo adskiller sig yderligere med nogle imponerende funktioner.

virtuelle filsystemer og kortlægninger

som udviklere har vi alle været nødt til at håndtere styring af eksterne eller komprimerede filer på et eller andet tidspunkt. Denne funktion i Railo gør i et par museklik, hvad der tager hundredvis af linjer kode. Railo kan du kortlægge eksterne filsystemer, som FTP, drive aktier, og endda S3 spande og tildele dem til en virtuel sti i din ansøgning! Dette betyder, at du kan bruge de enkle indbyggede funktioner til filmanipulation og behandle disse filer, som om de sad lige på det lokale filsystem. Støtten går endnu længere, og lader dig kortlægge Java jar filer og .lynlås filer, så du dynamisk kan referere og køre kode sidder inde komprimerede arkiver.

opsætning af nye tilknytninger er en peg-og-klik-affære i Railo-administratoren eller kan udføres programmatisk.

Applikationsdistribution og Kildekodesikkerhed

Java-verdenen har altid været et skridt (okay, flere trin) foran applikationsudviklere inden for emballering og distribution af applikationer. Mange udviklere har deres egne hjemmedyrkede metoder til implementering af et site, og mange internetudviklingsapplikationer, som FTP, har en FTP-baseret metode til implementering. I sidste ende betyder det normalt at aflevere ubeskyttet kildekode.

CFML udvikling har været på samme måde (Ja, Adobe havde en måde at kompilere .cfm skabeloner, men min forskning viser, at det både er klodset at bruge og ikke særlig populært). Railo bringer “Java verden” pakke implementering til CFML udvikling. Du kan kompilere en hel applikation til Java byte-kode, komprimere den til en jar-fil og implementere den på enhver anden Railo-server. Railo er endda smart nok til at lade dig kortlægge en ekstern jar-fil på et FTP-sted og køre den som en lokal internetapplikation. Dette betyder, at du har alle de værktøjer, du har brug for til at implementere internetapplikationer og ikke udsætte din kilde.

indbygget Amf-understøttelse til fleks/Flash-applikationer

siden Adobe open-sourced deres flammede AMF-værktøjer, har Railo integreret dem, hvilket gør et brugervenligt system, der “bare fungerer” med Flash-applikationer.

Integration mellem applikationer, PDF og Videomanipulation

CFML har allerede stor kapacitet til at integrere med et stort antal databasesystemer og kan udvides til at bruge et hvilket som helst af det enorme antal open source Java-projekter.

Railo kan bruges til at tale med EC2 og S3 til cloud computing-applikationer. Railo har også indbyggede funktioner til filkonverteringer, såsom dynamisk generering af PDF-filer og programmatisk redigering og formatkonverteringer af digital video. Et par enkle kodelinjer kan konvertere dine videofiler til forskellige formater, udtrække miniaturebilleder til forhåndsvisninger på nettet, og så kan du få dem til at falde på S3 for at blive serveret fra skyen. Meget cool ting, og værd at se på nogle af eksemplerne på Railo hjemmeside.

når du ser over kode, der bruger disse funktioner, ser det ganske enkelt ud, og det er forbløffende, at Railo får dem til at ligne børns leg, men der foregår seriøs inter-systemintegration bag kulisserne. Railo gør det så meget nemt at tilføje disse funktioner til enhver internetapplikation.

uendeligt udvideligt med Java

som nævnt ovenfor er det let at påberåbe sig Java-klasser fra CFML-sider. Da Railo selv kører i en Java-container, betyder det, at alle klasser eller koder fra Java-verdenen kan integreres og bruges med en Railo-applikation.

min erfaring med at bygge et Railo-projekt

mit firma har brugt ColdFusion til flere projekter. Et af vores kommercielle produkter er bygget på det og blev oprindeligt designet til Adobe ColdFusion. Vores produkt gør en masse tunge løft med databaser, internationalisering, dokument format konverteringer, PDF forhåndsvisninger og meget mere.

tidligt i 2009 foretog vi en komplet konvertering af kilden for at være kompatibel med Railo. Der var kun mindre områder, hvor vores kode skulle ændres, og de fleste af dem var med brugerdefineret Java-kode, som vi skrev, der simpelthen skulle opdateres til Kompatibel med Railos Java-biblioteker. Den behagelige overraskelse kom, da vi var færdige og bemærkede en betydelig præstationsforøgelse, der kørte på Railo.

Resume

sammenfattende har jeg været meget imponeret over Railo. Det er community-drevet; folkene på Railo er lydhøre og virkelig bekymrer sig om udviklerfællesskabet, og produktet leverer virkelig det, det hævder. De har leveret en applikationsudviklingsplatform, der er både branchekompatibel og innovativ. Jeg tror, at alle erfarne applikationsudviklere vil kunne sætte pris på, hvad Railo har at tilbyde. Jeg tror, at en sådan kraftig integration gjort så let med kun et par linjer kode vil trække en masse opmærksomhed. Dette er bestemt en teknologi, du skal holde øje med.

Leave a Reply