Railo Server, közkeletű nevén Railo (( RY-loh) egy nyílt forráskódú szoftver, amely megvalósítja a szerver oldali közös programozási nyelv CFML, amely gyakran használják, hogy dinamikus weboldalak, webes alkalmazások és intranetes rendszerek. A CFML egy dinamikus nyelv, amely több programozási paradigmát támogat, és a Java virtuális gépen (JVM) fut.
a Railo-t a svájci Railo Technologies GmbH fejlesztette ki az Adobe ColdFusion hatékony alternatívájaként. 2008-ban Railo átállt egy nyílt forráskódú közösségi modellre, és JBoss projekt lett. A Railo nyílt forráskódú projektet a Railo Technologies vezeti. A fejlesztési munkát tanácsadási és támogatási szerződések finanszírozzák, de bárki hozzájárulhat a vizsga kódjához.
Railót egy idegen kutyáról nevezték el a Star Trek Enterprise-on. A kutyát valójában Rhylo-nak hívják, de fonetikusan németül Railo. Így a Railo akár rhy-lo-ként, akár rai – lo-ként is kiejthető-mindkettő elfogadható.
a Railo Major kiadásai a történelem nevezetes és hűséges kutyáinak kódnevét tartalmazzák.
történelem
a Railo 2002-ben indult Michael Offner és Gert Franz diákprojektjeként, hogy CFML kódot fordítson PHP-ben. Ezt a döntést a PHP mindenütt jelenléte miatt hozták meg. Azonban kiderült, hogy ez nem adta meg a kívánt teljesítményt és stabilitást, és úgy döntöttek, hogy inkább a Java platformra váltanak.
a projekt annyira sikeres volt, hogy úgy döntöttek, hogy tovább fejlesztik a teljes terméket. Számos alfa és béta verzió jelent meg a hivatalos 1.0 verzió előtt 2006 áprilisában. A Railo-t tovább fejlesztették, de sok CFML-fejlesztő számára viszonylag ismeretlen volt 2008 júniusáig az Edinburgh-i Scotch on the Rocks konferencián, amikor a Railo Technologies a második napi keynote segítségével bejelentette a JBoss-szal való partnerséget és a nyílt forráskódra való áttérést.
2012 májusában, a vö. Target Conference, a létesítmény “The Railo Company Ltd” bejelentették, korlátolt felelősségű társaság, amely magában foglalja a svájci cég Railo Technologies GmbH együtt öt másik vállalat működik a CFML iparban.
Lucee Gabel
Január 29-én 2015-ben a Lucee projektet, a Railo 4.2 kódbázis villáját, a Railo eredeti fejlesztője jelentette be, aki kijelentette, hogy nem folytatja a Railo munkáját. A többi fejlesztő megerősítette, hogy kizárólag Lucee-ra fognak összpontosítani, és bár a Railo vállalat nem tett hivatalos nyilatkozatot, a közösség egyetértése szerint a Railo projekt továbbfejlesztése valószínűtlen.
július 19, 2016, A Railo cég feloszlott.
Publikációs Előzmények
Major Version (Kódnév) |
Minor Version | Megjelenés Dátuma | Megjegyzések |
---|---|---|---|
0 | Alfa 1 | 10.04.2004 | a Railo CFML motor első hivatalos verziója. |
Alpha 2 | 2004-05-18 | ||
Alpha 3 | 03.08.2004 | ||
Alpha 4 | 2004-10-21 | ||
Beta 1 | 2005-01-16 | a Railo első béta verziója. | |
Beta 2 | 2005 | ||
Beta 3 | 2005 | ||
RC1 | 2005-09-23 | a Railo első kiadási jelöltjét Münchenben mutatták be a német CFUG-nak. | |
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 | a Railo első nyílt forráskódú kiadása. |
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
( Hacsiko) |
3.3.1.000 | 2011-11-03 | Hozzáadott beépített támogatása ORM és sok más funkciók. |
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
( menj) |
4.2.0.009 | 2014-05-14 | |
4.2.1.000 | 2014-05-21 | ||
4.2.2.005 | 18.12.2014 | a Railo jelenlegi stabil változata |
platformok és licenc
a Railo servlet-ként fut a JVM-en, és bármilyen servlet-tárolóval (pl. Apache Tomcat, Eclipse Jetty) vagy alkalmazáskiszolgálók (például JBoss AS, GlassFish). Lehetőség van egy webszerver (például Apache, IIS, Nginx, Cherokee) csatlakoztatására olyan csatlakozókon keresztül, mint a mod jk, a mod proxy vagy azzal egyenértékű, de erre a Railo nem igényli.
a Railo rendelkezik egy Linux, macOS és Windows telepítővel, amely az Apache Tomcat-ot csomagolja. Van egy előre konfigurált Railo Express letöltés is a mólóval.
a 4.verziótól.0, a Railo rendelkezik egy parancssori verzióval, amely lehetővé teszi a CFML általános célú nyelvként való használatát a servlet környezeten kívül.
a Railo licencelt LGPL v2.1 A V3.1 óta, a forráskód elérhető a Githubon
filozófia
a Railo elsődleges célja az volt, hogy kevesebb erőforrással és jobb teljesítménnyel biztosítsa a ColdFusion funkcionalitását, és a Railo Technologies csapata továbbra is központi fejlesztési filozófiaként kezeli a “lassúságot mint hibát”. Számos teljesítményteszt kimutatta, hogy a Railo gyorsabban működik, mint más CFML motorok.
ezenkívül Railo számos következetlenséget próbál kijavítani a hagyományos CFML-ben. Ezek vagy kényszerített viselkedésmódosítások, vagy konfigurálható beállítások a Railo Rendszergazdában.
a Railo Technologies csapata mindig is nyitott volt a visszajelzésekre és aktív volt a CFML közösségi eseményein, és szeretné emlékeztetni az embereket, hogy a Railo egy közösségi projekt.
a Railo Technologies szoros technológiai partnerséggel rendelkezik a CFML szoftvercégekkel is, köztük a Blue River Interactive Group (A Mura CMS fejlesztője), a CONTENS Software GmbH (a CONTENS CMS fejlesztője) és az Intergral GmbH (a FusionReactor és a FusionDebug fejlesztője) annak biztosítása érdekében, hogy szoftverük jól működjön a Railo-val. Ezenkívül a Railo Technologies hivatalos “partnerprogramokat” kínál a megoldások (fejlesztés), a tárhely és a képzés számára.
a Railo alkalmazáskiszolgáló jelenleg átlagosan 7.Letöltött (és növekvő) 000 alkalommal havonta.
Railo által használt számos vállalat, többek között:
tulajdonságok
- támogatja az objektum-orientált programozás öröklődés, mixins és meta osztályok
- dinamikus gépelés és kacsa gépelés
- literális jelölés tömbök és struktúrák
- beágyazása argumentumok által megnevezett változók strings (
- , opcionális argumentumok és standard argumentumok
- az objektum változó tartományának három szintje: Ez (objektum nyilvános), változók (objektum privát), helyi (funkció privát)
- számos globális változó hatóköre: kérés, munkamenet, kliens, alkalmazás, szerver, fürt
- különböző felhasználó által biztosított változó hatókörök: Űrlap (Post), URL (Get), Cookie, CGI
- automatikus szemétgyűjtés (JVM-en keresztül)
- globális és helyi kivételkezelés (
onError
éstry/catch
) - felhasználó által definiált feladási viselkedés (
onMissingMethod
és implicit getterek és szetterek) - Implicit objektumkonverzió (by
_toString
,_toNumeric
,_toBoolean
,_toDate
) - natív szálak
- Unicode, több karakteres kódolás és i18n támogatása
- nagy szabványos könyvtár, amely lefedi az Általános webfejlesztési követelményeket
- Railo Extension Store és Extension Manager az egyszerű telepítés további szoftverek és bővítmények
- Native plug-in API CFML vagy Java
- Native kezelése az egyszerű létrehozása és fogyasztása web szolgáltatások
- külön GUI rendszergazdák az egyes webes környezetben, valamint a globális szerver rendszergazda
- minden Rendszergazdai beállítások konfigurálhatók programozással vagy szerkesztésével XML konfigurációs fájlok vannak konfigurálva
- natív erőforrások minden beépített-a fájlrendszer címkéiben és funkcióiban.
- fürtözés és szinkronizálás hagyományos és felhőkiszolgálókhoz
- Feladatkezelő ismételt műveletek ütemezéséhez vagy sikertelen események ismételt kipróbálásához
- natív támogatás a hibernált ORM számára
- nagyszámú képszerkesztő funkció
- Eseményátjárók aszinkron kódfuttatáshoz
- natív támogatás különféle gyorsítótárazási mechanizmusokhoz
- natív Munkamenetkezelés (CFML munkamenetek vagy J2EE munkamenetek)
onSessionStart
ésonSessionEnd
triggerekkel. - integrált felhasználói hitelesítés és szerepkör funkció.
biztonság
a CFML beépített funkcióval rendelkezik, hogy megakadályozza a kód befecskendezését a cfqueryparam
címkén keresztül, valamint olyan funkciókkal, mint HtmlEditFormat
, XmlFormat
, JsStringFormat
. Az OWASP Enterprise Security API harmadik féltől származó CFML implementációi is vannak. és az AntiSamy project.
a Railo egyik legfontosabb építészeti döntése a JEE servlet modell követése volt, több független webes kontextus támogatásával egyetlen szerveren. Ez fontos biztonsági tényező, mivel megakadályozza, hogy a nem kapcsolódó alkalmazások zavarják egymást, mint egy megosztott ColdFusion szerveren (amelynek csak egyetlen webes környezete van).
Railo implementálja a CFML nyelvet – példák és CFScript megtalálható a CFML szintaxis szakaszban.
különbségek
különbségek más nyelvektől
a CFML címkealapú szintaxissal rendelkezik, amely vizuálisan különbözik a legtöbb más nyelvtől. Ettől eltekintve hasonló a többi dinamikus nyelvhez, a következő kivételekkel:
- a CFML két szintaxist tartalmaz, egy tag alapú szintaxist (nem XML-kompatibilis) és egy cfscript nevű C szintaxist.
- tömbök CFML indexelt egy és nem nulla.
- a CFML mind a rendezett, mind a megnevezett függvény argumentumokat vagy kombinációkat támogatja.
- a CFML-nek nincs statikus változója.
különbségek az Adobe ColdFusion-tól
míg a Railo CFML-t valósít meg, és általában kompatibilis az Adobe ColdFusion-nal (ACF), az eredeti CFML motorral, van néhány figyelemre méltó különbség a kettő között:
- Railo egy nyílt forráskódú szoftver LGPL v2.1. Az ACF egy szabadalmaztatott technológia.
- a Railo több webes kontextus architektúrát használ az ACF egyetlen webes kontextusához képest.
- a Railo lehetővé teszi egyedi funkciók létrehozását a szabványos CFML használatával.
- a Railo nem tudja visszafejteni (vagy végrehajtani) az ACF titkosítási mechanizmusával titkosított sablonokat.
- a Railo jelentősen gyorsabb kiadási ciklussal rendelkezik a major, minor és patch kiadásokhoz.
- Railóban a területek mindig elsőbbséget élveznek. Az ACF-ben az “Url” nevű változó létrehozása blokkolhatja az URL-területhez való hozzáférést. A Railo-ban a változót csak “Változókként” érheti el.Url ” elérhető.
- a Railo csak akkor keres CFC-ket az egyéni címke elérési útján, ha ezt a rendszergazda ennek megfelelően definiálta (ehelyett külön CFC elérési út van).
- Railo 4.x bevezet egy parancssori felületet (CLI), amely lehetővé teszi a CFML szkriptek végrehajtását a parancssorból
- a Railo lehetővé teszi az objektum metódusok használatát. Tehát a tömb hozzáfűzése helyett (arr, “érték”) írható: arr.hozzáfűzni (“érték”). Append(“anotherValue”).