Serwer Railo, powszechnie nazywany Railo (( ry – loh) to oprogramowanie typu open source implementujące wspólny język skryptowy po stronie serwera CFML, który jest często używany do tworzenia dynamicznych stron internetowych, aplikacji internetowych i systemów intranetowych. CFML to język dynamiczny, który obsługuje wiele paradygmatów programowania i działa na wirtualnej maszynie Java (JVM).
Railo został opracowany przez szwajcarską firmę Railo Technologies GmbH jako potężna alternatywa dla Adobe ColdFusion. W 2008 r. Reylo przeszedł na model społeczności open source i stał się projektem JBoss. Projekt Railo typu open source jest prowadzony przez Railo Technologies. Prace programistyczne są finansowane z umów doradczych i wsparcia, ale każdy może przyczynić się do przeglądu kodu.
Reylo został nazwany na cześć obcego psa w Star Trek Enterprise. Pies w rzeczywistości nazywa się Rilo, ale fonetycznie po niemiecku jest to Reilo. Tak więc Railo można wymówić jako rhy-lo lub rai-lo-oba są dopuszczalne.
główne wydania Railo mają kryptonim znanych i oddanych psów z historii.
Historia
Railo rozpoczął działalność w 2002 roku jako Projekt studencki Michaela Offnera i Hertha Franza dotyczący kompilacji kodu CFML w PHP. Ta decyzja została podjęta ze względu na wszechobecność PHP. Okazało się jednak, że nie zapewnia to pożądanej wydajności i stabilności, a zamiast tego podjęto decyzję o przejściu na platformę Java.
projekt był tak udany, że postanowiono kontynuować transformację w pełnoprawny produkt. Przed oficjalną wersją 1.0 w kwietniu 2006 r.wydano kilka wersji alfa i beta. Railo zostało dalej rozwinięte, ale było stosunkowo nieznane wielu programistom CFML na konferencji Scotch on The Rocks w Edynburgu do czerwca 2008 r., kiedy Railo Technologies wykorzystało drugi dzień motyw przewodni, aby ogłosić partnerstwo z JBoss i przejście na oprogramowanie typu open source.
w maju 2012 został opublikowany na śr. Na konferencji docelowej ogłoszono utworzenie „Railo Company Ltd”, spółki z ograniczoną odpowiedzialnością, w skład której wchodzi szwajcarska firma Railo Technologies GmbH wraz z pięcioma innymi firmami działającymi w branży CFML.
Lucee Gabel
29 stycznia 2015 r projekt Lucee, odgałęzienie bazy kodu Railo 4.2, został ogłoszony przez pierwotnego programistę Railo, który powiedział, że nie będzie kontynuował pracy nad Railo. Inni programiści potwierdzili, że skupią się również wyłącznie na Lucee i chociaż firma Railo nie wydała oficjalnego oświadczenia, społeczność uważa, że dalszy rozwój projektu Railo jest mało prawdopodobny.
19 lipca 2016 roku firma Railo została rozwiązana.
historia publikacji
wersja podstawowa (nazwa kodowa) |
Wersja dodatkowa | Data Wydania | uwagi |
---|---|---|---|
0 | alfa 1 | 10.04.2004 | pierwsza oficjalna wersja silnika Railo CFML. |
alfa 2 | 2004-05-18 | ||
Alfa 3 | 03.08.2004 | ||
Alfa 4 | 2004-10-21 | ||
Beta 1 | 2005-01-16 | pierwsza wersja beta Railo. | |
Beta 2 | 2005 | ||
Beta 3 | 2005 | ||
RC1 | 2005-09-23 | pierwszy kandydat do wydania Railo został przedstawiony niemieckiemu CFUG w Monachium. | |
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 | Pierwsze wydanie Railo open source. |
3.1.1.000 | 2009-08-11 | ||
3.1.2.000 | 2010-11-26 | ||
3,2
(Greyfreyers 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 | Dodano natywną obsługę ORM i wielu innych funkcji. |
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
(Iść) |
4.2.0.009 | 2014-05-14 | |
4.2.1.000 | 2014-05-21 | ||
4.2.2.005 | 18.12.2014 | Aktualna stabilna wersja Railo |
Platformy i licencja
Railo działa jak serwlet na JVM i działa z każdym kontenerem serwletów (np., Apache Tomcat, Eclipse Jetty) lub serwer aplikacji (np. JBoss AS, GlassFish). Możliwe jest podłączenie serwera www (takiego jak Apache, IIS, Nginx, Cherokee) za pomocą złączy takich jak mod jk, Mod proxy lub inny podobny, ale Railo tego nie wymaga.
Railo ma instalator dla Systemów Linux, macOS i Windows, który integruje Apache Tomcat. Istnieje również wstępnie skonfigurowane pobieranie Railo Express za pomocą Jetty.
od wersji 4.0 Railo ma wersję wiersza poleceń, która pozwala używać CFML jako języka ogólnego przeznaczenia poza środowiskiem serwletów.
Railo jest licencjonowany jako LGPL v2.1 od wersji 3.1, z kodem źródłowym dostępnym na GitHub,
Filozofia
, a nie do użytku jako język ogólnego przeznaczenia.
. głównym celem Railo było zapewnienie funkcjonalności ColdFusion przy mniejszej ilości zasobów i lepszej wydajności, a zespół Railo Technologies nadal postrzega „powolność jako błąd” jako centralną filozofię rozwoju. Wiele testów wydajności wykazało, że Railo działa szybciej niż inne silniki CFML.
ponadto Railo próbuje naprawić wiele niespójności w tradycyjnym CFML. Są to wymuszone zmiany zachowania lub konfigurowalne opcje w administratorze Railo.
zespół Railo Technologies zawsze był otwarty na opinie i aktywnie uczestniczył w wydarzeniach społeczności CFML i chciałby przypomnieć ludziom, że Railo to projekt społecznościowy.
Railo Technologies utrzymuje również silne partnerstwa technologiczne z firmami programistycznymi CFML, w tym Blue River Interactive Group (programista Mura CMS), CONTENS Software GmbH (programista CONTENS CMS) i Intergral GmbH (programista FusionReactor i FusionDebug), aby zapewnić, że ich oprogramowanie działa dobrze z Railo. Ponadto Railo Technologies oferuje oficjalne „programy partnerskie” dla rozwiązań (rozwoju), hostingu i szkoleń.
serwer aplikacji Railo wynosi obecnie średnio 7.Pobierane (i rośnie) 000 razy w miesiącu.
Railo jest wykorzystywany przez wiele firm, w tym:
Właściwości
- Wsparcie dla programowania obiektowego z dziedziczeniem, миксинами i метаклассами
- Dynamiczne wprowadzanie tekstu wprowadzanie tekstu
- Буквенная notacja dla tablic i struktur
- Osadzanie zmiennych w wierszu (interpolacja)
- Nazwane argumenty, opcjonalne argumenty i argumenty domyślne
- Trzy poziomy zakresu zmiennych obiektu: Są to (obiekt publiczny), zmienne (obiekt prywatny), lokalne (obiekt prywatny)
- zakres wielu zmiennych globalnych: żądanie, sesja, klient, aplikacja, serwer, klaster
- różne zmienne zakresy dostarczane przez użytkownika: Formularz (Post), URL (Get), pliki cookie, CGI
- Automatyczne usuwanie śmieci (przez JVM)
- globalna i lokalna obsługa wyjątków (przez
onError
itry/catch
) - niestandardowe zachowanie dostarczania (przez
onMissingMethod
i niejawne Gettery i setery) - niejawna konwersja obiektów (przez
_toString
,_toNumeric
,_toBoolean
,_toDate
) - natywne strumienie
- obsługa Unicode, Kodowania wieloznakowego i i18n
- duża standardowa biblioteka obejmująca ogólne wymagania dotyczące tworzenia stron internetowych
- sklep z rozszerzeniami Railo i Menedżer rozszerzeń do łatwej instalacji dodatkowego oprogramowania i rozszerzeń
- natywny interfejs API wtyczek w CFML lub Java
- natywne przetwarzanie w celu łatwego tworzenia i korzystania z usług internetowych
- Indywidualni administratorzy GUI dla poszczególnych kontekstów internetowych, a także globalny administrator serwera
- wszystkie ustawienia administratora można skonfigurować programowo lub edytując pliki konfiguracyjne XML
- zasoby natywne dla wszystkich wbudowanych znaczników i funkcji systemu plików.
- klastrowanie i synchronizacja dla serwerów tradycyjnych i chmurowych
- Menedżer zadań do planowania powtarzających się działań lub ponawiania prób nieudanych zdarzeń
- Wbudowana obsługa Hibernate ORM
- duża liczba funkcji edycji obrazu
- bramki zdarzeń do wykonywania kodu asynchronicznego
- uruchamia natywną obsługę wielu różnych mechanizmów buforowania
- własne zarządzanie sesjami (sesje CFML lub sesje J2EE) z
onSessionStart
ionSessionEnd
. - wbudowane uwierzytelnianie użytkownika i funkcje roli.
bezpieczeństwo
CFML ma wbudowaną funkcjonalność zapobiegającą wstrzykiwaniu kodu przez znacznik cfqueryparam
i funkcje takie jak HtmlEditFormat
, XmlFormat
, JsStringFormat
. Istnieją również implementacje CFML API bezpieczeństwa korporacyjnego OWASP innych firm. i projekt AntiSamy.
jedną z najważniejszych decyzji architektonicznych Railo było przestrzeganie modelu serwletów JEE z obsługą wielu niezależnych kontekstów internetowych na jednym serwerze. Jest to ważny czynnik bezpieczeństwa, ponieważ zapobiega wzajemnemu oddziaływaniu niepowiązanych aplikacji, co może się zdarzyć na wspólnym serwerze ColdFusion (który ma tylko jeden kontekst internetowy).
Railo implementuje przykłady języka CFML, a także CFScript, patrz składnia CFML.
różnice
różnice z innymi językami
CFML ma składnię opartą na znacznikach, która wizualnie różni się od większości innych języków. Ponadto jest podobny do innych języków dynamicznych z następującymi wyjątkami:
- CFML zawiera dwie składnie, składnię opartą na znacznikach (niezgodną z XML) i składnię C o nazwie cfscript.
- tablice w CFML są indeksowane przez jednostkę, a nie Zero.
- CFML obsługuje zarówno uporządkowane, jak i nazwane argumenty funkcji lub kombinację.
- CFML nie ma zmiennych statycznych.
różnice w stosunku do Adobe ColdFusion
chociaż Railo implementuje CFML i jest ogólnie kompatybilny z Adobe ColdFusion (ACF), oryginalnym silnikiem CFML, istnieją pewne zauważalne różnice między nimi:
- Railo to oprogramowanie open source dla LGPL v2.1. ACF to opatentowana technologia.
- Railo używa architektury z wieloma kontekstami internetowymi w porównaniu z oddzielnym kontekstem internetowym ACF.
- Railo umożliwia tworzenie niestandardowych funkcji przy użyciu standardowego CFML.
- Railo nie może odszyfrować (ani uruchomić) wzorców zaszyfrowanych za pomocą mechanizmu szyfrowania ACF.
- Railo ma znacznie szybszy cykl wydawania dla głównych, mniejszych i poprawek.
- w Railo są zakresy zawsze priorytet. W ACF utworzenie zmiennej o nazwie „Url” może blokować dostęp do zakresu adresu URL. W Railo można używać zmiennej tylko jako ” zmienne.URL ” może być dostępny.
- Railo wyszukuje CFC w niestandardowej ścieżce znacznika tylko wtedy, gdy zostało to odpowiednio zdefiniowane przez administratora (zamiast tego istnieje niestandardowa ścieżka CFC).
- Railo 4.x wprowadza interfejs wiersza poleceń (CLI), który służy do wyszukiwania interfejsu wiersza poleceń (CLI). Skrypty CFML mogą być uruchamiane z wiersza poleceń
- Railo pozwala na użycie metod obiektowych. Zamiast więc używać tablicy Append (arr, „value”), możesz napisać: arr.append („value”). Dodaj („kolejna wartość”).