Railo-Encyclopedia

Railo Server, almindeligvis benævnt Railo (( RY-loh) er et open source-program, der implementerer server-side fælles scriptsprog CFML, som ofte bruges til at skabe dynamiske hjemmesider, internet applikationer og intranet systemer. CFML er et dynamisk sprog, der understøtter flere programmeringsparadigmer og kører på Java Virtual Machine (JVM).

Railo blev udviklet af det svenske firma Railo Technologies GmbH som et stærkt alternativ til Adobe ColdFusion. I 2008 skiftede Railo til en open source-samfundsmodel og blev et JBoss-projekt. Railo Open Source-projektet ledes af Railo Technologies. Udviklingsarbejde finansieres af konsulent-og supportkontrakter, men alle kan bidrage med kode til eksamen.

Railo blev opkaldt efter en fremmed hund i Star Trek Enterprise. Hunden hedder faktisk Rhylo, men fonetisk på tysk er det Railo. Således kan Railo udtages enten som rhy-lo eller som rai-lo – begge er acceptable.

Railo Major udgivelser har et kodenavn på bemærkelsesværdige og loyale hunde fra historien.

historie

Railo startede i 2002 som et studenterprojekt af Michael Offner og Gert Frans for at kompilere CFML-kode i PHP. Denne beslutning blev truffet på grund af PHP ‘ s allestedsnærværende. Det blev imidlertid konstateret, at dette ikke gav den ønskede ydeevne og stabilitet, og det blev besluttet at skifte til Java-platformen i stedet.

projektet var så vellykket, at det blev besluttet at videreudvikle sig til et komplet produkt. Flere alfa-og betaversioner blev frigivet før den officielle version 1.0 i April 2006. Railo blev udviklet yderligere, men var relativt ukendt for mange CFML-udviklere indtil juni 2008 på Scotch on The Rocks-konferencen i Edinburgh, da Railo Technologies brugte den anden dags keynote til at annoncere et partnerskab med JBoss og et skift til open source.

i maj 2012, jf. Target Conference, oprettelsen af “The Railo Company Ltd” blev annonceret, et aktieselskab, der inkluderer det svenske selskab Railo Technologies GmbH sammen med fem andre virksomheder, der opererer i CFML-branchen.

Lucee Gabel

den 29.januar 2015 blev Lucee-projektet, en gaffel af Railo 4.2-kodebasen, annonceret af den oprindelige udvikler af Railo, der sagde, at han ikke ville fortsætte med at arbejde på Railo. De andre udviklere har bekræftet, at de også udelukkende vil fokusere på Lucee, og selvom Railo-selskabet ikke har afgivet en officiel erklæring, er samfundets konsensus, at yderligere udvikling af Railo-projektet er usandsynligt.

den 19.juli 2016 blev Railo Company opløst.

Publikationshistorik

Større Version
(Kodenavn)
Mindre Version Udgivelsesdato Noter
0 Alfa 1 10.04.2004 den første officielle version af 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 betaversion af Railo.
Beta 2 2005
Beta 3 2005
RC1 2005-09-23 den første frigivelseskandidat for Railo blev præsenteret 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 open source-udgivelse af 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 tilføjet indbygget understøttelse af ORM og mange andre funktioner.
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 nuværende stabil version af Railo

platforme og licens

Railo kører som en servlet på JVM og arbejder med enhver servlet container (f. eks. Apache Tomcat, Eclipse Jetty) eller applikationsservere (f.eks. Apache, IIS, Cherokee) via stik som mod jk, mod fuldmægtig eller tilsvarende, men dette er ikke nødvendigt af Railo.

Railo har et installationsprogram til macOS, macOS og vinduer, der samler Apache Tomcat. Der er også en forudkonfigureret Railo Ekspres overførsel med anløbsbro.

fra version 4.0, Railo har en kommandolinjeversion, der gør det muligt at bruge CFML som et generelt sprog uden for servlet-miljøet.

Railo er blevet licenseret som LGPL v2.1 siden v3.1, med kildekoden tilgængelig på GitHub

filosofi

et primært mål for Railo var at give funktionaliteten af ColdFusion færre ressourcer og bedre ydeevne, og Railo Technologies-teamet fortsætter med at behandle “langsomhed som en fejl” som en central udviklingsfilosofi. Mange ydelsestest har vist, at Railo arbejder hurtigere end andre CFML-motorer.

derudover forsøger Railo at løse mange uoverensstemmelser i den traditionelle CFML. Disse er enten tvungne adfærdsændringer eller konfigurerbare indstillinger i Railo-administratoren.

Railo Technologies-teamet har altid været åbent for feedback og aktivt ved CFML community events og ønsker at minde folk om, at Railo er et fællesskabsprojekt.

Railo Technologies har også stærke teknologipartnerskaber med CFML-programvirksomheder, herunder Blue River Interactive Group (udvikler af Mura CMS), CONTENS GmbH (udvikler af CONTENS CMS) og Intergral GmbH (udvikler af FusionReactor og FusionDebug) for at sikre, at deres program fungerer godt sammen med Railo. Derudover tilbyder Railo Technologies formelle “partnerprogrammer” til løsninger (udvikling), hosting og træning.

Railo-applikationsserveren er i øjeblikket i gennemsnit 7.Hentet (og voksende) 000 gange om måneden.

Railo bruges af en række virksomheder, herunder:

egenskaber

  • understøtter objektorienteret programmering med arv, blandinger og metaklasser
  • dynamisk typing og ændertypning
  • bogstavelig notation for arrays og strukturer
  • indlejring af argumenter navngivet af variabler i strenge interpolation)
  • , valgfri argumenter og standardargumenter
  • tre niveauer af Objektvariabelområdet: Dette (objekt offentlig), variabler (objekt privat), lokal (funktion privat)
  • omfanget af flere globale variabler: anmodning, session, klient, applikation, Server, klynge
  • forskellige bruger-forudsat variable scopes: Formular(Post), URL (Get), Cookie, CGI
  • automatisk affaldsindsamling (via JVM)
  • Global og lokal undtagelseshåndtering (via onError og try/catch)
  • brugerdefineret afsendelsesadfærd (af onMissingMethod og implicitte getters og settere)
  • Implicit objektkonvertering (af _toString, _toNumeric, _toBoolean, _toDate)
  • Native Threads
  • understøttelse af Unicode, multi-character encoding og i18n
  • stort standardbibliotek, der dækker generelle krav til internetudvikling
  • Railo Udvidelsesbutik og Udvidelsesadministrator til nem installation af yderligere programmer og udvidelser
  • indbygget plug-in API i CFML eller Java
  • indbygget håndtering til nem oprettelse og forbrug af internettjenester
  • Separate GUI-administratorer til individuelle internetkontekster samt en global serveradministrator
  • alle administratorindstillinger kan konfigureres programmatisk eller via redigering af indbyggede filsystem tags og funktioner.
  • klyngedannelse og synkronisering til traditionelle og cloud-servere
  • Task Manager til planlægning af gentagne handlinger eller forsøg på mislykkede begivenheder igen
  • indbygget support til Hibernate ORM
  • stort antal billedredigeringsfunktioner
  • Hændelsesportaler til asynkron kodekørsel
  • indbygget support til en række forskellige cachemekanismer
  • Native session management (CFML-sessioner eller J2EE-sessioner) med onSessionStart og onSessionEnd udløsere.
  • integreret brugergodkendelse og rollefunktionalitet.

sikkerhed

CFML har indbygget funktionalitet til at forhindre kodeinjektion via cfqueryparam tag og funktioner som HtmlEditFormat, XmlFormat, JsStringFormat. Der er også tredjeparts CFML implementeringer af Enterprise Security API. og AntiSamy-projektet.

en af de vigtigste arkitektoniske beslutninger hos Railo var at følge JEE servlet-modellen med understøttelse af flere uafhængige internetkontekster på en enkelt server. Dette er en vigtig sikkerhedsfaktor, da det forhindrer ikke-relaterede applikationer i at forstyrre hinanden, som det kan forekomme på en delt ColdFusion-server (som kun har en enkelt internetkontekst).

Railo implementerer CFML – sproget-eksempler og CFScript findes i afsnittet CFML-syntaks.

forskelle

forskelle fra andre sprog

CFML har en tagbaseret syntaks, der er visuelt forskellig fra de fleste andre sprog. Bortset fra det ligner det andre dynamiske sprog med følgende undtagelser:

  • CFML indeholder to syntakser, en tagbaseret syntaks og en C-syntaks kaldet cfscript.
  • Arrays i CFML indekseres med en og ikke med nul.
  • CFML understøtter både ordnede og navngivne Funktionsargumenter eller en kombination.
  • CFML har ingen statiske variabler.

forskelle fra Adobe ColdFusion

mens Railo implementerer CFML og generelt er kompatibel med Adobe ColdFusion (ACF), den originale CFML-motor, er der nogle bemærkelsesværdige forskelle mellem de to:

  • Railo er et open source program til LGPL v2.1. ACF er en proprietær teknologi.
  • Railo bruger en multi-internet kontekstarkitektur sammenlignet med ACF ‘ s enkelt internetkontekst.
  • Railo giver dig mulighed for at oprette brugerdefinerede funktioner ved hjælp af standard CFML.
  • Railo kan ikke dekryptere (eller udføre) skabeloner krypteret med ACF ‘ s krypteringsmekanisme.
  • Railo har en markant hurtigere frigivelsescyklus for større, mindre og patch-udgivelser.
  • i Railo har områder altid forrang. I ACF kan oprettelse af en variabel med navnet “Url” blokere adgangen til URL-pladsen. I Railo kan du kun få adgang til variablen som ” variabler.Url ” kan tilgås.
  • Railo søger kun efter CFC ‘ er i den brugerdefinerede tagsti, hvis dette er defineret i overensstemmelse hermed i administratoren (der er en separat CFC-sti i stedet).
  • Railo 4.CLI (Command Line Interface), der gør det muligt at udføre CFML-scripts fra kommandolinjen
  • Railo tillader brug af objektmetoder. Så i stedet for at bruge array Append(arr, “værdi”), kan man skrive: arr.Tilføj (“værdi”). Tilføj (“anotherValue”).

Se også

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.