Railo Server, ofte referert TIL SOM Railo (( RY-loh) er en åpen kildekode programvare som implementerer server-side felles skriptspråk CFML, som ofte brukes til å lage dynamiske nettsteder, web-applikasjoner og intranett systemer. CFML ER et dynamisk språk som støtter flere programmeringsparadigmer og kjører På Java Virtual Machine (JVM).
Railo ble utviklet av Det Sveitsiske selskapet Railo Technologies GmbH som et kraftig alternativ Til Adobe ColdFusion. I 2008 Byttet Railo til en åpen kildekode-samfunnsmodell og ble Et jboss-prosjekt. Railo Open Source-prosjektet ledes av Railo Technologies. Utviklingsarbeidet finansieres av rådgivning og støttekontrakter, men alle kan bidra med kode til eksamen.
Railo ble oppkalt etter En fremmed hund I Star Trek Enterprise. Hunden heter Faktisk Rhylo, men fonetisk på tysk er Det Railo. Dermed Kan Railo uttales enten som rhy-lo eller som rai-lo-begge er akseptable.
Railo Store utgivelser har et kodenavn på kjente og lojale hunder fra historien.
Historie
Railo startet i 2002 som et studentprosjekt Av Michael Offner og Gert Franz for å kompilere CFML-kode I PHP. Denne beslutningen ble gjort på grunn AV ubiquity AV PHP. Det ble imidlertid funnet at dette ikke ga ønsket ytelse og stabilitet, og det ble besluttet å bytte til Java-plattformen i stedet.
prosjektet var så vellykket at det ble besluttet å videreutvikle seg til et komplett produkt. Flere alfa-og betaversjoner ble utgitt før den offisielle versjon 1.0 i April 2006. Railo ble videreutviklet, men var relativt ukjent for MANGE CFML-utviklere frem til juni 2008 På Scotch on The Rocks-konferansen I Edinburgh, da Railo Technologies brukte den andre dagen keynote for å kunngjøre et partnerskap med JBoss og en bytte til åpen kildekode.
I Mai 2012, på jf. Target Conference, etableringen av «The Railo Company Ltd» ble annonsert, et aksjeselskap som inkluderer Det Sveitsiske selskapet Railo Technologies GmbH sammen med fem andre selskaper som opererer I CFML industrien.
Lucee Gabel
Den 29. januar 2015 ble Lucee-prosjektet, en gaffel av Railo 4.2-kodebasen, annonsert av Den opprinnelige utvikleren Av Railo, som uttalte at han ikke ville fortsette å jobbe Med Railo. De andre utviklerne har bekreftet at De også vil fokusere utelukkende på Lucee, og Selv Om Railo-Selskapet ikke har gjort en offisiell uttalelse, er konsensusen i samfunnet at videreutvikling av Railo-prosjektet er usannsynlig.
Den 19. juli 2016 ble Railo Company oppløst.
Publikasjonshistorikk
Hovedversjon (Kodenavn) |
Underordnet Versjon | Utgivelsesdato | Merknader |
---|---|---|---|
0 | Alfa 1 | 10.04.2004 | den første offisielle versjonen Av Railo CFML-motoren. |
Alpha 2 | 2004-05-18 | ||
Alpha 3 | 03.08.2004 | ||
Alpha 4 | 2004-10-21 | ||
Beta 1 | 2005-01-16 | den første betaversjonen Av Railo. | |
Beta 2 | 2005 | ||
Beta 3 | 2005 | ||
RC1 | 2005-09-23 | Den første utgivelsen kandidat Av Railo ble presentert for den tyske CFUG I Munchen. | |
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ørste åpen kildekode utgivelse 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 | Lagt innebygd støtte FOR ORM og mange andre funksjoner. |
3.3.4.003 | 2012-06-25 | ||
4.0
( Appollo) |
4.0.0.013 | 2012-07-02 | |
4.0.5.004 | 09.07.2013 | ||
4.1
( Endal) |
4.1.2.005 | 2013-12-11 | . |
4.2
( Gå) |
4.2.0.009 | 2014-05-14 | |
4.2.1.000 | 2014-05-21 | ||
4.2.2.005 | 18.12.2014 | Nåværende stabil versjon Av Railo |
Plattformer Og Lisens
Railo kjører som en servlet på JVM og fungerer med alle servlet container (f. eks. Apache Tomcat, Eclipse Jetty) eller applikasjonsservere (F.eks. JBoss AS, GlassFish). Det er mulig å koble til en webserver (For Eksempel Apache, Iis, Nginx, Cherokee) via kontakter som mod jk, mod proxy eller tilsvarende, men Dette er ikke nødvendig av Railo.
Railo har et installasjonsprogram For Linux, macOS og Windows som pakker Apache Tomcat. Det er også en forhåndskonfigurert Railo Express nedlasting Med Brygge.
fra versjon 4.0, Railo har en kommandolinjeversjon som gjør AT CFML kan brukes som et generelt språk utenfor servlet-miljøet.
Railo har blitt lisensiert SOM LGPL v2.1 siden v3.1, med kildekoden tilgjengelig På GitHub
Filosofi
et primært mål For Railo var å gi funksjonaliteten Til ColdFusion med færre ressurser og bedre ytelse, og Railo Technologies teamet fortsetter å behandle «treghet som en bug» som en sentral utviklingsfilosofi. Mange ytelsestester har vist At Railo fungerer raskere enn andre CFML-motorer.
I tillegg Forsøker Railo å fikse mange inkonsekvenser i den tradisjonelle CFML. Dette er enten tvunget atferdsendringer eller konfigurerbare alternativer I Railo Administrator.
Railo Technologies-teamet har alltid vært åpne for tilbakemeldinger og aktive PÅ CFML – fellesskapsarrangementer og ønsker å minne folk på At Railo er et fellesskapsprosjekt.
Railo Technologies har også sterke teknologipartnerskap med CFML-programvareselskaper, inkludert Blue River Interactive Group (utvikler Av Mura CMS), CONTENS Software GmbH (utvikler AV CONTENS CMS) og Intergral GmbH (utvikler Av FusionReactor og FusionDebug) for å sikre at programvaren fungerer godt med Railo. I Tillegg Tilbyr Railo Technologies formelle «partnerprogrammer» for løsninger( utvikling), hosting og opplæring.
Railo-Applikasjonsserveren er for tiden i gjennomsnitt 7.Lastet ned (og vokser) 000 ganger per måned.
Railo brukes av en rekke selskaper, inkludert:
Egenskaper
- Støtter objektorientert programmering med arv, mixins og metaklasser
- Dynamisk skriving og andetyping
- Bokstavelig notasjon for matriser og strukturer
- Innebygging argumenter navngitt av variabler i strenger (interpolering)
- , valgfrie argumenter og standardargumenter
- tre nivåer I Objektvariabelområdet: Dette (objekt offentlig), Variabler (objekt privat), Lokal (funksjon privat)
- Omfanget av flere globale variabler: Forespørsel, økt, Klient, Program, Server, Klynge
- Ulike bruker-gitt variable omfang: Skjema (Post), URL (Get), Cookie, Cgi
- Automatisk søppelrydding (via JVM)
- global og lokal unntakshåndtering (via
onError
ogtry/catch
) - Brukerdefinert forsendelsesadferd (ved
onMissingMethod
og implisitte getters og settere) - Implisitt objektkonvertering (ved
_toString
,_toNumeric
,_toBoolean
,_toDate
) - Innfødte Tråder
- Støtte For Unicode, multi-tegnkoding og i18n
- Stort standardbibliotek som dekker generelle webutviklingskrav
- Railo Extension Store Og Extension Manager for enkel installasjon av tilleggsprogramvare og utvidelser
- Native plug-IN API I CFML eller Java
- Native håndtering for enkel opprettelse og forbruk av webtjenester
- Separate GUI-administratorer for individuelle webkontekster samt en global serveradministrator
- alle administratorinnstillinger kan konfigureres programmatisk eller via redigering AV XML-Konfigurasjonsfiler konfigureres
- I Filsystem koder og funksjoner.
- Clustering og synkronisering for tradisjonelle og sky servere
- Oppgavebehandling for planlegging av gjentatte handlinger eller forsøk på mislykkede hendelser igjen
- Opprinnelig støtte FOR Hibernate ORM
- Stort antall bilderedigeringsfunksjoner
- Hendelsesgateways for asynkron kjøring av kode
- Opprinnelig støtte for en rekke forskjellige caching mekanismer
- Innfødt Øktbehandling (cfml-økter eller j2ee-økter) med
onSessionStart
ogonSessionEnd
utløsere. - Integrert brukerautentisering og rollefunksjonalitet.
Sikkerhet
CFML har innebygd funksjonalitet for å forhindre kodeinjeksjon via cfqueryparam
-taggen og funksjoner som HtmlEditFormat
, XmlFormat
, JsStringFormat
. DET finnes også TREDJEPARTS CFML-implementeringer AV OWASP Enterprise Security API. Antisemittisk prosjekt.
En av De viktigste arkitektoniske beslutningene Ved Railo var å følge jee servlet-modellen med støtte for flere uavhengige webkontekster på en enkelt server. Dette er en viktig sikkerhetsfaktor, da det forhindrer at ikke-relaterte programmer forstyrrer hverandre, som kan oppstå på en delt ColdFusion-server (som bare har en enkelt webkontekst).
Railo implementerer CFML språk-Eksempler Og CFScript kan bli funnet I CFML syntaks seksjon.
Forskjeller
Forskjeller fra andre språk
CFML har en kodebasert syntaks som er visuelt forskjellig fra de fleste andre språk. Bortsett fra det, ligner det på andre dynamiske språk med følgende unntak:
- CFML inneholder to syntakser, en kodebasert syntaks (ikke XML-kompatibel) og En c-syntaks kalt cfscript.
- Matriser i CFML er indeksert med en og ikke med null.
- CFML støtter både ordnede og navngitte funksjonsargumenter eller en kombinasjon.
- CFML har ingen statiske variabler.
Forskjeller Fra Adobe ColdFusion
Mens Railo implementerer CFML og er generelt kompatibel Med Adobe ColdFusion (ACF), den opprinnelige CFML-motoren, er det noen bemerkelsesverdige forskjeller mellom de to:
- Railo er en åpen kildekode programvare FOR LGPL v2.1. ACF er en proprietær teknologi.
- Railo bruker en multi-web kontekst arkitektur i forhold TIL enkelt web kontekst AV ACF.
- Railo lar deg lage egendefinerte funksjoner ved hjelp av standard CFML.
- Railo kan ikke dekryptere (eller utføre) maler kryptert MED acfs krypteringsmekanisme.
- Railo har en betydelig raskere utgivelsessyklus for større, mindre og patchutgivelser.
- I Railo har områder alltid forrang. I ACF kan oppretting av en variabel kalt » Url » blokkere tilgang til URL-plassen. I Railo kan du bare få tilgang til variabelen som » Variabler.Url » kan nås.
- Railo søker bare Etter Kfk i den egendefinerte kodebanen hvis dette er definert tilsvarende i administratoren(det er en egen KFK-bane i stedet).
- Jernbane 4.x introduserer Et Kommandolinjegrensesnitt (Cli) som gjør AT CFML-skript kan kjøres fra kommandolinjen
- Railo tillater bruk av objektmetoder. Så i stedet for å bruke array Append(arr, «verdi»), kan man skrive: arr.tilføy («verdi»). Tilføy («anotherValue»).