Railo Server, denumit în mod obișnuit Railo (( ry-loh) este un software open source care implementează limbajul comun de scripting CFML din partea serverului, care este adesea folosit pentru a crea site-uri web dinamice, aplicații web și sisteme intranet. CFML este un limbaj dinamic care acceptă mai multe paradigme de programare și rulează pe Java Virtual Machine (JVM).
Railo a fost dezvoltat de compania elvețiană Railo Technologies GmbH ca o alternativă puternică la Adobe ColdFusion. În 2008, Railo a trecut la un model comunitar open source și a devenit un proiect JBoss. Proiectul Railo Open Source este condus de Railo Technologies. Lucrările de dezvoltare sunt finanțate prin contracte de consultanță și asistență, dar oricine poate contribui cod la examen.
Railo a fost numit după un câine extraterestru în Star Trek Enterprise. Câinele este de fapt numit Rhylo, dar fonetic în Germană este Railo. Astfel, Railo poate fi pronunțat fie ca rhy-lo, fie ca rai – lo-ambele sunt acceptabile.
lansările majore Railo au un nume de cod de câini notabili și loiali din istorie.
History
Railo a început în 2002 ca un proiect Studențesc de Michael Offner și Gert Franz pentru a compila codul CFML în PHP. Această decizie a fost luată datorită ubicuității PHP. Cu toate acestea, sa constatat că acest lucru nu a dat performanța și stabilitatea dorite, iar decizia a fost luată pentru a trece la platforma Java în schimb.
proiectul a fost atât de reușit încât s-a decis să se dezvolte în continuare într-un produs complet. Mai multe versiuni alfa și beta au fost lansate înainte de versiunea oficială 1.0 în aprilie 2006. Railo a fost dezvoltat în continuare, dar a fost relativ necunoscut pentru mulți dezvoltatori CFML până în iunie 2008 la Conferința Scotch on the Rocks din Edinburgh, când Railo Technologies a folosit nota principală a doua zi pentru a anunța un parteneriat cu JBoss și o trecere la open source.
în Mai 2012, la cf. Conferința țintă, a fost anunțată înființarea „the Railo Company Ltd”, o societate cu răspundere limitată care include compania elvețiană Railo Technologies GmbH împreună cu alte cinci companii care operează în industria CFML.
Lucee Gabel
pe 29 ianuarie 2015, proiectul Lucee, o bifurcație a bazei de cod Railo 4.2, a fost anunțat de dezvoltatorul inițial al Railo, care a declarat că nu va continua să lucreze la Railo. Ceilalți dezvoltatori au confirmat că se vor concentra exclusiv pe Lucee și, deși compania Railo nu a făcut o declarație oficială, consensul comunității este că dezvoltarea ulterioară a proiectului Railo este puțin probabilă.
la 19 iulie 2016, compania Railo a fost dizolvată.
Istoricul Publicațiilor
Versiune Majoră (Nume De Cod) |
Versiune Minoră | Data Lansării | Note |
---|---|---|---|
0 | Alfa 1 | 10.04.2004 | prima versiune oficială a motorului CFML Railo. |
alfa 2 | 2004-05-18 | ||
alfa 3 | 03.08.2004 | ||
alfa 4 | 2004-10-21 | ||
Beta 1 | 2005-01-16 | prima versiune beta a Railo. | |
Beta 2 | 2005 | ||
Beta 3 | 2005 | ||
RC1 | 2005-09-23 | primul candidat de lansare al Railo a fost prezentat CFUG-ului German din 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
( Florin) |
3.1.0.000 | 2009-08-12 | prima versiune open source a 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 | Adăugat suport încorporat pentru ORM și multe alte caracteristici. |
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
( du-te) |
4.2.0.009 | 2014-05-14 | |
4.2.1.000 | 2014-05-21 | ||
4.2.2.005 | 18.12.2014 | versiunea actuală stabilă a Railo |
platforme și licență
Railo rulează ca un servlet pe JVM și funcționează cu orice container servlet (de ex. Apache Tomcat, Eclipse Jetty) sau servere de aplicații (de exemplu, JBoss AS, GlassFish). Este posibil să conectați un server web (de exemplu, Apache, IIS, Nginx, Cherokee) prin conectori precum mod jk, mod proxy sau un echivalent, dar acest lucru nu este necesar de Railo.
Railo are un program de instalare Pentru Linux, macOS și Windows care include Apache Tomcat. Există, de asemenea, o descărcare pre-configurată Railo Express cu Jetty.
din versiunea 4.0, Railo are o versiune de linie de comandă care permite CFML să fie utilizat ca limbaj de uz general în afara mediului servlet.
Railo a fost licențiat ca LGPL v2.1 de la v3.1, cu codul sursă disponibil pe Github
Filosofie
un obiectiv principal al Railo a fost de a oferi funcționalitatea ColdFusion cu mai puține resurse și performanțe mai bune, iar echipa Railo Technologies continuă să trateze „lentoarea ca pe un bug” ca pe o filozofie centrală de dezvoltare. Multe teste de performanță au arătat că Railo funcționează mai repede decât alte motoare CFML.
în plus, Railo încearcă să remedieze multe inconsecvențe în CFML tradițional. Acestea sunt fie schimbări de comportament forțate, fie opțiuni configurabile în administratorul Railo.
echipa Railo Technologies a fost întotdeauna deschisă la feedback și activă la evenimentele comunitare CFML și dorește să reamintească oamenilor că Railo este un proiect comunitar.
Railo Technologies are, de asemenea, parteneriate tehnologice puternice cu companii de software CFML, inclusiv Blue River Interactive Group (Dezvoltator Al Mura CMS), CONTENS Software GmbH (dezvoltator al CONTENS CMS) și Intergral GmbH (Dezvoltator Al FusionReactor și FusionDebug) pentru a se asigura că software-ul lor funcționează bine cu Railo. În plus, Railo Technologies oferă „programe partenere” formale pentru soluții (dezvoltare), găzduire și instruire.
serverul de aplicații Railo are în prezent o medie de 7.Descărcat (și în creștere) 000 ori pe lună.
Railo este utilizat de un număr de companii, inclusiv:
proprietăți
- suportă programarea orientată pe obiecte cu moștenire, mixine și clase meta
- tastarea dinamică și tastarea rață
- notație literală pentru matrice și structuri
- încorporarea argumentelor numite de variabile în șiruri (interpolare)
- , argumente opționale și argumente standard
- trei niveluri ale domeniului variabil obiect: Acest (obiect public), variabile (obiect privat), Local(funcție privată)
- domeniul de aplicare al mai multor variabile globale: cerere, sesiune, Client, aplicație, Server, Cluster
- diverse domenii variabile furnizate de utilizator: Formular (Post), URL(Get), Cookie, CGI
- colectarea automată a gunoiului (prin JVM)
- manipularea excepțiilor globale și locale (prin
onError
șitry/catch
) - comportamentul de expediere definit de utilizator (de
onMissingMethod
și getters implicite și setteri) - conversie obiect Implicit (de
_toString
,_toNumeric
,_toBoolean
,_toDate
) - Fire Native
- suport pentru Unicode, codare multi-caractere și i18n
- bibliotecă standard mare care acoperă cerințele generale de dezvoltare web
- Magazin de extensii Railo și Manager de extensii pentru instalarea ușoară a software-ului și extensiilor suplimentare
- API plug-in nativ în CFML sau Java
- manipulare nativă pentru crearea și consumul ușor de servicii web
- administratori GUI separați pentru contexte web individuale, precum și un administrator de server global
- toate setările de administrator pot fi configurate programatic sau prin editarea fișierelor de configurare XML sunt configurate
- resurse în etichetele și funcțiile sistemului de fișiere.
- Clustering și sincronizare pentru serverele tradiționale și cloud
- Task Manager pentru programarea acțiunilor repetate sau încercarea de evenimente eșuate din nou
- suport nativ pentru hibernare ORM
- număr mare de funcții de editare a imaginilor
- gateway-uri de evenimente pentru executarea codului asincron
- suport nativ pentru o varietate mecanisme
- Managementul sesiunii native (sesiuni CFML sau sesiuni J2EE) cu declanșatoare
onSessionStart
șionSessionEnd
. - autentificare integrată a utilizatorului și funcționalitate rol.
securitate
CFML are funcționalitate încorporată pentru a preveni injectarea codului prin eticheta cfqueryparam
și caracteristici precum HtmlEditFormat
, XmlFormat
, JsStringFormat
. Există, de asemenea, implementări CFML terțe ale API-ului OWASP Enterprise Security. și proiectul Antisamie.
una dintre cele mai importante decizii arhitecturale la Railo a fost să urmeze modelul JEE servlet cu suport pentru mai multe contexte web independente pe un singur server. Acesta este un factor important de securitate, deoarece împiedică aplicațiile fără legătură să interfereze între ele, așa cum se poate întâmpla pe un server ColdFusion partajat (care are doar un singur context web).
Railo implementează limbajul CFML – exemple și CFScript pot fi găsite în secțiunea de sintaxă CFML.
diferențe
diferențe față de alte limbi
CFML are o sintaxă bazată pe etichete care este diferită vizual de majoritatea celorlalte limbi. În afară de aceasta, este similar cu alte limbi dinamice, cu următoarele excepții:
- CFML conține două sintaxe, o sintaxă bazată pe etichete (nu este compatibilă cu XML) și o sintaxă C numită cfscript.
- tablourile din CFML sunt indexate cu unul și nu cu zero.
- CFML acceptă atât Argumente funcționale ordonate, cât și numite sau o combinație.
- CFML nu are variabile statice.
diferențe față de Adobe ColdFusion
în timp ce Railo implementează CFML și este în general compatibil cu Adobe ColdFusion (ACF), motorul original CFML, există unele diferențe notabile între cele două:
- Railo este un software open source pentru LGPL v2.1. ACF este o tehnologie proprietară.
- Railo folosește o arhitectură de context multi-web în comparație cu contextul web unic al ACF.
- Railo vă permite să creați funcții personalizate folosind CFML standard.
- Railo nu poate decripta (sau executa) șabloane criptate cu mecanismul de criptare ACF lui.
- Railo are un ciclu de eliberare semnificativ mai rapid pentru versiunile majore, minore și patch-uri.
- în Railo, zonele au întotdeauna prioritate. În ACF, crearea unei variabile numite ” Url ” poate bloca accesul la spațiul URL. În Railo, puteți accesa variabila doar ca ” variabile.Url ” poate fi accesat.
- Railo caută CFC-uri numai în calea etichetei personalizate dacă aceasta a fost definită în mod corespunzător în administrator (există în schimb o cale CFC separată).
- Railo 4.x introduce o interfață de linie de comandă (CLI) care permite executarea scripturilor CFML din linia de comandă
- Railo permite utilizarea metodelor obiect. Deci, în loc să folosiți matricea Adăugare (arr,” valoare”), se poate scrie: arr.adăugați („valoare”). Adăugați („altulvaloare”).