Railo
Utvecklare | Railo Technologies, Michael Offner, Gert Franz |
---|---|
Initial release | april 2006 |
Stabil frisättning | 4.2.2.005 / 18 december 2014
|
Förvar | |
Skrivet i | Java |
Operativ system | Windows , Linux , Unix , macOS |
Tillgänglig i | engelska, tyska |
Typ | Applikationsserver |
Licens | LGPL v2.1 |
Hemsida |
Railo Server , vanligen kallad Railo ( / ˈ r aɪ l oʊ / RY -loh ) , är programvara med öppen källkod som implementerar det allmänna CFML - skriptspråket på serversidan, som ofta används för att skapa dynamiska webbplatser , webbapplikationer och intranätsystem . CFML är ett dynamiskt språk som stöder flera programmeringsparadigm och körs på Java Virtual Machine ( JVM).
Railo skapades av det schweiziska företaget Railo Technologies GmbH, tänkt som ett högpresterande alternativ till Adobe ColdFusion . 2008 bytte Railo till en öppen källkodsbaserad modell och blev ett JBoss- projekt. Railo Open Source-projektet leds av Railo Technologies, med utvecklingsarbete finansierat av konsult- och supportkontrakt, men vem som helst kan bidra med kod för övervägande.
Namngivning
Railo fick sitt namn efter en främmande hund i Star Trek: Enterprise . Hunden heter egentligen Rhylo, men skriven fonetiskt på tyska är det Railo. Således kan Railo uttalas antingen som rhy-lo eller som rai-lo - båda är acceptabla.
Railo stora utgåvor har ett kodnamn av anmärkningsvärda och lojala hundar från historien.
Historia
Railo började 2002 som ett studentprojekt av Michael Offner och Gert Franz för att kompilera CFML-kod till PHP , ett val som gjordes på grund av PHPs allestädes närvarande, men det visade sig att detta inte gav önskad prestanda och stabilitet, och beslutet var gjort att byta till Java- plattformen istället.
Projektet var så pass framgångsrikt att det beslutades att fortsätta utvecklas till en komplett produkt. Flera alfa- och betaversioner gjordes före den officiella 1.0-släppet i april 2006. Railo fortsatte att utvecklas men var relativt okänt för många CFML-utvecklare, fram till juni 2008 på Scotch on the Rocks-konferensen i Edinburgh, då Railo Technologies använde dag 2 keynote för att tillkännage ett partnerskap med JBoss och en övergång till öppen källkod.
I maj 2012, vid jfr. Målkonferens, grundandet av "The Railo Company Ltd" tillkännagavs, ett privat aktiebolag , bestående av det schweiziska företaget Railo Technologies GmbH i samverkan med fem andra företag som verkade i CFML-branschen.
Lucee Fork
Den 29 januari 2015 tillkännagavs Lucee -projektet, en gaffel av Railo 4.2-kodbasen, av den ursprungliga utvecklaren av Railo, som sa att han inte skulle arbeta vidare med Railo. De andra utvecklarna har bekräftat att de också kommer att fokusera enbart på Lucee, och - även om inget officiellt uttalande har gjorts av The Railo Company - är samhällets konsensus att ytterligare utveckling av Railo-projektet är osannolik.
Den 19 juli 2016 upplöstes The Railo Company.
Releasehistorik
Huvudversion (kodnamn) |
Mindre version | Utgivningsdatum | Anteckningar |
---|---|---|---|
0 | Alfa 1 | 2004-04-10 | Den första officiella utgåvan av Railo CFML-motorn. |
Alfa 2 | 2004-05-18 | ||
Alfa 3 | 2004-08-03 | ||
Alfa 4 | 2004-10-21 | ||
Beta 1 | 2005-01-16 | Den första betaversionen av Railo. | |
Beta 2 | 2005 | ||
Beta 3 | 2005 | ||
RC1 | 2005-09-23 | första släppkandidat presenterades för tyska CFUG i München. | |
1.0 | 1.0.0.000 | 2006-04 | |
2.0 | 2.0.0.000 | 2007-09-10 | |
2.0.1.000 | |||
2.0.2.000 | |||
3.0 | 3.0.0.000 | 2008-09-09 | |
3.0.1.000 | |||
3.0.2.000 | |||
3.0.3.000 | |||
3.1 ( Barry ) |
3.1.0.000 | 2009-08-12 | Första Open Source-släppet av Railo. |
3.1.1.000 | 2009-08-11 | ||
3.1.2.000 | 2010-11-26 | ||
3.2 ( Greyfriars Bobby ) |
3.2.1.000 | 2011-12-24 | |
3.2.2.000 | 2011-03-18 | ||
3.2.3.000 | 2011-06-10 | ||
3.3 ( Hachiko ) |
3.3.1.000 | 2011-11-03 | Lade till inbyggt stöd för ORM och många andra funktioner. |
3.3.4.003 | 2012-06-25 | ||
4.0 ( Appollo ) |
4.0.0.013 | 2012-07-02 | |
4.0.5.004 | 2013-07-09 | ||
4.1 ( Endal ) |
4.1.2.005 | 2013-12-11 | . |
4.2 ( Togo ) |
4.2.0.009 | 2014-05-14 | |
4.2.1.000 | 2014-05-21 | ||
4.2.2.005 | 2014-12-18 | Aktuell stabil version av Railo |
Plattformar och licens
Railo körs på JVM som en servlet och fungerar med vilken servletbehållare som helst (t.ex. Apache Tomcat , Eclipse Jetty ) eller applikationsserver (t.ex. JBoss AS , GlassFish ). Det är möjligt att ansluta en webbserver (t.ex. Apache , IIS , nginx , Cherokee ) framför, med hjälp av kontakter som mod jk , mod proxy , eller motsvarande, men detta krävs inte av Railo.
Railo har ett installationsprogram för Linux , macOS och Windows , som paketerar Apache Tomcat . Det finns också en förkonfigurerad Railo Express-nedladdning med Jetty .
Från v4.0 och framåt kommer Railo att ha en kommandoradsversion , vilket gör att CFML kan användas som ett allmänt språk utanför servletmiljön.
Railo sedan v3.1 är licensierad som LGPL v2.1, med källkoden tillgänglig på GitHub
Filosofi
Ett primärt syfte med Railo var att tillhandahålla funktionaliteten i ColdFusion med mindre resurser och bättre prestanda, och Railo Technologies-teamet fortsätter att "behandla långsamhet som en bugg" som en kärnutvecklingsfilosofi. Många prestandatester har visat att Railo presterar snabbare än andra CFML-motorer.
Utöver detta försöker Railo lösa många inkonsekvenser som finns i traditionell CFML. Dessa är antingen påtvingade beteendeförändringar eller konfigurerbara alternativ i Railo Administrator.
Railo Technologies-teamet har alltid varit öppet för feedback och aktivt vid CFML-gemenskapsevenemang och är angelägna om att påminna folk om att Railo är ett samhällsprojekt.
Railo Technologies skapar också starka teknologiska partnerskap med CFML-programvaruföretag, inklusive Blue River Interactive Group (utvecklare av Mura CMS), CONTENS Software GmbH (utvecklare av CONTENS CMS) och Intergral GmbH (utvecklare av FusionReactor och FusionDebug ), för att hjälpa till att säkerställa deras programvara fungerar bra med Railo. Dessutom erbjuder Railo Technologies formella "partnerprogram" för lösningar (utveckling), hosting och utbildning.
Användande
Railo Application Server gör för närvarande i genomsnitt 7 000 nedladdningar (och växer) per månad.
Railo används av ett antal företag, bland annat:
- Amtrak California (kaliforniskt järnvägsbolag)
- Apple (företag inom konsumentelektronik och mjukvaru)
- Diamond Bank (En affärsbank i Nigeria )
- DistroKid (musikpublicerings-/distributionstjänst, av Philip J. Kaplan )
- IDG Tyskland (utgivare av tidskrifterna Computer World, GameStar, PCWorld)
- Fandalism (socialt nätverk för musiker, av Philip J. Kaplan )
- NASA Jet Propulsion Laboratory (centrum för robotutforskning av rymden)
- The List (brittisk underhållningstidskrift)
- RTL Group (Europas näst största TV-, radio- och produktionsbolag)
- STV Player (skotsk video-on-demand-tjänst)
- Swisscom (En stor telekommunikationsleverantör i Schweiz)
Funktioner
- Stöder objektorienterad programmering med arv , mixins och metaklasser
- Dynamisk typning och duck typing
- Bokstavlig notation för arrayer och strukturer
- Inbädda variabler i strängar ( interpolation )
- Namngivna argument , valfria argument och standardargument
- Tre nivåer av objektvariabelomfång: Detta (offentligt objekt), Variabler (objekt privat), Lokalt (privat funktion)
- Multipelt globalt variabelomfång: Begäran, Session, Klient, Applikation, Server, Kluster
- Distinkta användartillhandahållna variabla omfattningar: Form (post), URL (get), Cookie, CGI
- Automatisk sophämtning , (via JVM)
- Global och lokal undantagshantering , (via
onError
ochtry/catch
) - Anpassat sändningsbeteende (genom
onMissingMethod
och implicita getters och seters) - Implicit objektkonvertering (genom
_toString
,_toNumeric
,_toBoolean
,_toDate
) - Inhemska trådar
- Stöd för Unicode , flera teckenkodningar och i18n
- Stort standardbibliotek som täcker vanliga webbutvecklingsbehov
- Railo Extension Store och Extension Manager för enkel installation av ytterligare programvara och tillägg
- Native plug-in API i CFML eller Java
- Native hantering för att enkelt skapa och konsumera webbtjänster
- Separata GUI-administratörer för enskilda webbkontexter, plus en global serveradministratör
- Alla administratörsinställningar kan konfigureras programmatiskt eller via redigering av XML- konfigurationsfiler
- Inbyggda resurser för alla inbyggda filsystemtaggar och funktioner.
- Klustring och synkronisering för både traditionella och molnservrar
- Aktivitetshanteraren för att schemalägga upprepade åtgärder eller försöka igen misslyckade händelser
- Inbyggt stöd för Hibernate ORM
- Stort antal bildmanipuleringsfunktioner
- Event Gateways för exekvering av asynkron kod
- Inbyggt stöd för en mängd olika cachningsmekanismer
- Native session management (CFML-sessioner eller J2EE-sessioner) med
onSessionStart
ochonSessionEnd-
utlösare. - Inbyggd användarautentisering och rollfunktionalitet.
säkerhet
CFML har inbyggd funktionalitet för att förhindra kodinjektion, via cfqueryparam
-taggen, och funktioner som HtmlEditFormat
, XmlFormat
, JsStringFormat
. Det finns också tredjeparts CFML-implementeringar av OWASP Enterprise Security API och AntiSamy-projektet.
Ett av de viktigaste arkitekturbesluten med Railo var att följa JEE-servletmodellen, med stöd för flera oberoende webbkontexter på en enda server. Detta är en viktig säkerhetsfaktor, eftersom det förhindrar orelaterade applikationer från att störa varandra, vilket kan hända på en delad ColdFusion-server (som bara har en enda webbkontext).
Syntax
Railo implementerar CFML- språket - se avsnittet om CFML-syntax för exempel samt CFScript .
Skillnader
Skillnader från andra språk
CFML har en taggbaserad syntax som skiljer sig visuellt från de flesta andra språk, men bortsett från detta liknar den andra dynamiska språk, med följande undantag:
- CFML innehåller två syntaxer, en taggbaserad syntax (inte XML-kompatibel) och en C-syntax som kallas cfscript.
- Arrayer i CFML indexeras från ett, inte från noll.
- CFML stöder både ordnade och namngivna funktionsargument, eller en kombination.
- CFML har inga statiska variabler.
Skillnader från Adobe ColdFusion
Även om Railo implementerar CFML och i allmänhet är kompatibel med Adobe ColdFusion (ACF), den ursprungliga CFML-motorn, finns det några anmärkningsvärda skillnader mellan de två:
- Railo är LGPL v2.1-programvara med öppen källkod . ACF är patentskyddad teknologi.
- Railo använder en multiwebkontextarkitektur, jämfört med ACF:s enda webbkontext.
- Railo låter dig skapa "inbyggda" användardefinierade funktioner med standard CFML.
- Railo kan inte dekryptera (eller exekvera) mallar som har krypterats med ACF:s krypteringsmekanism.
- Railo har en betydligt snabbare utgivningscykel för större, mindre och patchutgåvor.
- I Railo har kikarsikten alltid prioritet. I ACF kan att skapa en variabel med namnet "Url" blockera åtkomst till URL-omfattningen. I Railo kan variabeln endast nås som "Variables.Url".
- Railo söker bara efter CFC:er inom den anpassade taggsökvägen om den har definierats i enlighet därmed i administratören (den har istället en distinkt CFC-sökväg).
- Railo 4.x introducerar ett kommandoradsgränssnitt (CLI) som tillåter exekvering av CFML-skript från kommandoraden
- Railo tillåter användning av objektmetoder. Så istället för att använda array Append (arr, "värde") kan man skriva: arr.append("värde").append("ett annatVärde").
Se även
- Lucee - fork of Railo stöds för närvarande av Railos ursprungliga utvecklare.
- Adobe ColdFusion - den ursprungliga CFML-motorn.
- Öppna BlueDragon - en annan CFML-motor med öppen källkod.
- CFML - språket Railo använder.