introduktion till Railo Open Source
Railo är en öppen källkod Java-applikationsserver som implementerar CFML (ColdFusion Markup Language), ett taggbaserat språk från Adobes kommersiella produkt “ColdFusion.”Dess prestanda är utmärkt, och den innehåller funktioner som avsevärt ökar produktiviteten.
Railo är en relativ nykomling, men har gjort några imponerande krusningar i branschen nyligen. Denna artikel är en primer på några av de kritiska fördelarna med Railo och varför det är värt ett seriöst utseende för webbapplikationsutveckling.
är inte ColdFusion död?
för några år sedan publicerades en artikel som namngav 10 tekniker som var döda eller döende, och till många människors överraskning var ColdFusion i den listan. Det orsakade många vågor. En sak om CFML-Utvecklare – de brinner för sitt programmeringsspråk!
ColdFusion har haft måttlig framgång på specifika vertikala marknader, men har särskilt accepterats av den amerikanska regeringen. I jämförelse med dominerande utvecklingsspråk tycktes CFML aldrig hitta verklig tjänst hos massorna. Eftersom ColdFusion omarbetades för att köras helt på Java, och med ankomsten av Adobe Flex för några år sedan som integrerar Flash och ColdFusion, har detta förändrats ganska mycket. Adobes ColdFusion-produkt integreras så bra med Flex att den har skapat nytt intresse.
ett av de största klagomålen om Adobe ColdFusion har alltid varit priset. Det har varit min erfarenhet att CFML-utvecklare anser sig vara branschkamrater av lamp (Linux, Apache, MySQL, PHP) utvecklare, som använder alla open source-verktyg. Majoriteten av LAMPUTVECKLARE anser att deras färdigheter är mycket högre än CFML-Utvecklare. Detta har bara matat raseriet under åren av CFML-utvecklare som hävdar att investeringen i att köpa ColdFusion är en snabb avkastning på investeringen eftersom CFML är så mycket mer produktiv.
nu kommer Railo, som erbjuder en gratis och öppen källkodslösning till CFML-utvecklarnas drömmar. Det är inte bara gratis, men det fungerar också fantastiskt, är stabilt och uppdateras ganska ofta. Det här är goda nyheter för CFML, vilket enligt min mening är mycket underskattat, främst på grund av dåliga marknadsförings-och försäljningsprispunkter genom åren. CFML är faktiskt ganska kraftfull och förvånansvärt produktiv språk, och var avsedd att vara en RAD (Rapid Application Development) verktyg. Det har vuxit till en betydligt bättre produkt, och verkligen förtjänar mer respekt än den har haft. Men nog om CFML, låt oss prata om varför jag tycker att Railo är så imponerande och vad som skiljer sig från tävlingen.
vad kan du göra med Railo?
kanske det bästa sättet att svara på detta är att säga, ” Vad kan du inte göra med Railo?”CFML-språket är i huvudsak ett stort java-taggbibliotek. CFML har vuxit till ett imponerande bibliotek genom åren och Railo stöder allt som Adobes produkt stöder som är i vanlig användning. (Det finns en viss skillnad mellan stödet eftersom både Railo och Adobe släpper nya versioner av sina produkter).
kärnfunktionerna i Railos språk ger lätt att lära sig taggar för allt från databasfrågor till att skicka dynamiska e-postmeddelanden till skriptanslutningar med ftp och Amazon s3-lagring. Nästan allt du kan göra med PHP kan du göra med Railo. Här är fångsten-generellt sett tar det mindre tid att implementera en lösning med CFML än med PHP, ASP.net eller ren Java.
använd CFML för grunderna; utöka med Java.
medan Railo ger dig många inbyggda funktioner är den verkliga sanningen att det är Java under huven. Alla taggar och funktioner blir slutligen kompilerade och körs som Java byte-kod. Språket är dock väl utformat så att du kan mixa och matcha din CFML-och Java-kod.
om du till exempel vill läsa i en textfil kan du använda den inbyggda taggen CFFILE:
<cffile action= " läs "file=" c: webmessage.Txt " variable="strContent" ></cffile>
detta läser i innehållet i textfilen och lagrar den i den angivna variabeln.
för att visa innehållet i webbläsaren skulle du mata ut det så:
<cfoutput> #strContent#< / cfoutput>
för att illustrera hur Java kan användas direkt i din kod kan samma uppgift göras med Java-objekt istället för de inbyggda CFML-taggarna som så:
<cfobject type= "Java" class= "java.Io. FileReader" Action="skapa" name="myFileReader"><cfset Result = fileReader.init ("c:webmessage.txt");<cfoutput>#strContent#</cfoutput>
dessa två små bitar av kod uppnå samma mål. Min poäng är att CFML-språket inte är begränsat till bara CFML, du kan instantiera och använda något Java-objekt var som helst i din kod.
detta gör språket otroligt flexibelt, eftersom du kan använda CFML-taggarna för snabba och enkla uppgifter och använda Java för tunga lyft där det behövs.
Distributions-och utvecklingsmiljöer
alla versioner av Railo kan laddas ner antingen som en “express”, “server” eller “anpassad” distribution. Express edition är extremt lätt för utvecklare att komma igång och innebär vanligtvis bara att dekomprimera en zip-fil på ditt lokala system och starta den. Serverpaketet levereras tillsammans med Caucho Resin, en mycket högpresterande java-applikationsserver. (Sidnot-några av verktygen som ingår i Resin är också ganska imponerande, inklusive deras all-java-implementering av PHP!). Det anpassade distributionspaketet är för att starta Railo på andra Java servlet-behållare som Tomcat eller Weblogic.
att installera Railo på en produktionsserver var inte svårt, det är lite mer involverat än att installera rpm av din favorit PHP-version, men dokumentation hittades lätt på Railos webbplats och andra webbplatser som hittades via Google.
liksom Adobes produkt kommer Railo med webbadministrationsverktyg för att hantera server-och applikationsspecifika inställningar och resurser. Detta är ett stort steg upp från PHP och Linux världen, där du normalt behöver konfigurera en hel del av programmets inställningar (datakällor till exempel) i konfigurationsfiler. Railo-administratören går också några steg utöver Adobe och gör kontextspecifika administrationskonsoler tillgängliga, så att enskilda applikationer och webbplatser kan definiera sina egna sandboxade datakällor, virtuella mappningar och mer. Detta är en riktigt fin touch, och har varit en efterfrågad funktion under lång tid.
där Railo lyser
jag har redan granskat några av anledningarna till att Railo är imponerande. Bortsett från att vara en mycket kraftfull RAD, med prestanda som rivaler eller slår Adobe, utmärker Railo sig ytterligare med några imponerande funktioner.
virtuella filsystem och mappningar
som utvecklare har vi alla haft att göra med att hantera fjärr-eller komprimerade filer på en eller annan gång. Den här funktionen i Railo gör med några musklick vad som tar hundratals kodrader. Railo kan du kartlägga fjärrfilsystem, som FTP, drive aktier, och även Amazon S3 hinkar och tilldela dem till en virtuell väg i din ansökan! Det betyder att du kan använda de enkla inbyggda funktionerna för filmanipulation och behandla dessa filer som om de satt direkt på det lokala filsystemet. Stödet går ännu längre, och låter dig kartlägga Java jar-filer och .zip-filer, så att du dynamiskt kan referera och köra kod som sitter i komprimerade arkiv.
att ställa in nya mappningar är en peka-och-klicka-affär i Railo-administratören eller kan göras programmatiskt.
applikationsdistribution och Källkodssäkerhet
Java-världen har alltid varit ett steg (okej, flera steg) före webbapplikationsutvecklare i förpackning och distribution av applikationer. Många utvecklare har sina egna hemodlade metoder för att distribuera en webbplats och många webbutvecklingsapplikationer, som Dreamweaver, har en FTP-baserad distributionsmetod. I slutändan betyder det vanligtvis att överlämna oskyddad källkod.
CFML-utveckling har varit på samma sätt (ja, Adobe hade ett sätt att kompilera .cfm mallar, men min forskning visar att det är både klumpigt att använda och inte särskilt populärt). Railo ger “Java world” paketdistribution till CFML utveckling. Du kan kompilera en hel applikation till Java byte-kod, komprimera den till en jar-fil och distribuera den på någon annan Railo-server. Railo är även smart nog att låta dig kartlägga en fjärr jar-fil på en FTP-plats och köra den som en lokal webbapplikation. Det betyder att du har alla verktyg du behöver för att distribuera webbapplikationer och inte avslöja din källa.
inbyggt Amf-stöd för Flex/Flash-applikationer
sedan Adobe öppnade sina BlazeDS AMF-verktyg har Railo integrerat dem och gjort ett lättanvänt system som “bara fungerar” med Flash-applikationer.
Inter-Application Integration, PDF och video Manipulation
CFML har redan stor förmåga att integrera med ett stort antal databassystem och kan utökas för att använda något av det stora antalet open source Java-projekt.
Railo kan användas för att prata med Amazon Web Services, som EC2 och S3 för cloud computing-applikationer. Railo har också inbyggda funktioner för filkonverteringar, såsom dynamiskt generera PDF-filer, och programmatisk redigering och formatera konverteringar av digital video. Några enkla rader kod kan konvertera dina videofiler till olika format, extrahera miniatyrer för webbförhandsvisningar, och sedan kan du få dem tappade på Amazon S3 som ska serveras från molnet. Mycket coola saker, och värt att titta på några av exemplen på Railo-webbplatsen.
när du tittar över kod som använder dessa funktioner ser det ganska enkelt ut och det är fantastiskt att Railo får dem att se ut som barnspel, men det finns allvarlig intersystemintegration som pågår bakom kulisserna. Railo gör det så väldigt enkelt att lägga till dessa funktioner i alla webbapplikationer.
oändligt expanderbar med Java
som nämnts ovan är det lätt att åberopa Java-klasser inifrån CFML-sidor. Eftersom Railo själv körs i en Java-Behållare betyder det att alla klasser eller kod från Java-världen kan integreras och användas med en Railo-applikation.
min erfarenhet av att bygga ett Railo-projekt
mitt företag har använt ColdFusion för flera projekt. En av våra kommersiella produkter är byggd på den och designades ursprungligen för Adobe ColdFusion. Vår produkt gör en hel del tunga lyft med databaser, internationalisering, dokumentformat konverteringar, PDF förhandsvisningar och mycket mer.
i början av 2009 gjorde vi en fullständig konvertering av källan för att vara kompatibel med Railo. Det fanns bara mindre områden där vår kod behövde ändras, och de flesta av dem var med anpassad Java-kod som vi skrev som helt enkelt behövde uppdateras för att vara kompatibel med Railos Java-bibliotek. Den trevliga överraskningen kom när vi var klara och märkte en betydande prestationsökning på Railo.
sammanfattning
Sammanfattningsvis har jag varit mycket imponerad av Railo. Det är samhällsdrivet; människorna på Railo är lyhörda och bryr sig verkligen om utvecklargemenskapen, och produkten levererar verkligen vad den hävdar. De har tillhandahållit en applikationsutvecklingsplattform som är både branschkompatibel och innovativ. Jag tror att alla erfarna webbapplikationsutvecklare kommer att kunna uppskatta vad Railo har att erbjuda. Jag tror att en sådan kraftfull integration görs så lätt med bara några rader kod kommer att dra en hel del uppmärksamhet. Detta är definitivt en teknik som du bör hålla ett öga på.
Leave a Reply