Разработчики) | Railo Technologies, Майкл Оффнер, Герт Франц |
---|---|
изначальный выпуск | Апрель 2006 г. |
Стабильный выпуск | 4.2.2.005 / 18 декабря 2014 г . |
Репозиторий | |
Написано в | Ява |
Операционная система | Windows , Linux , Unix , macOS |
Доступно в | Английский, немецкий |
Тип | Сервер приложений |
Лицензия | LGPL v2.1 |
Интернет сайт | github |
Railo сервер , как правило , называют Railo ( / г aɪ л oʊ / RY -loh ), является открытым исходным кодом программного обеспечения , которое реализует общее назначение CFML на сторону сервера язык сценариев , часто используется для создания динамических веб - сайтов , веб - приложений и интранет - систем . CFML - это динамический язык, поддерживающий несколько парадигм программирования и работающий на виртуальной машине Java (JVM).
Railo был создан швейцарской компанией Railo Technologies GmbH и задуман как высокопроизводительная альтернатива Adobe ColdFusion . В 2008 году Railo перешел на модель с открытым исходным кодом, управляемую сообществом, и стал проектом JBoss . Проект Railo с открытым исходным кодом возглавляется Railo Technologies, а разработки финансируются за счет контрактов на консультации и поддержку, но любой может внести свой код для рассмотрения.
Именование [ править ]
Рейло был назван в честь инопланетной собаки в Star Trek Enterprise . Собаку на самом деле зовут Рило, но фонетически она написана на немецком языке - Рейло. [1] Таким образом, Railo может произноситься как rhy-lo или как rai-lo - оба варианта приемлемы.
У крупных релизов Railo есть кодовое имя известных и верных собак из истории.
История [ править ]
Рейло начал в 2002 году как студенческий проект Майкла Оффнера и Герта Франца по компиляции кода CFML в PHP , выбор был сделан из-за повсеместного распространения PHP, однако было обнаружено, что это не дает желаемой производительности и стабильности, и было принято решение. сделано для перехода на платформу Java . [1]
Проект оказался достаточно успешным, и было решено продолжить его развитие в полноценный продукт. Несколько альфа- и бета-версий были выпущены до официального выпуска 1.0 в апреле 2006 года. Railo продолжала развиваться, но была относительно неизвестна многим разработчикам CFML до июня 2008 года на конференции Scotch on the Rocks в Эдинбурге , когда Railo Technologies использовала Day 2 основной докладной новостью является объявление о партнерстве с JBoss и переходе на открытый исходный код. [2]
В мае 2012 г. на ср. Объективная конференция, было объявлено о создании "The Railo Company Ltd", частной компании с ограниченной ответственностью , в которую входят швейцарская компания Railo Technologies GmbH вместе с пятью другими компаниями, работающими в отрасли CFML. [3]
Люси Форк [ править ]
29 января 2015 года первоначальный разработчик Railo объявил о проекте Lucee , ответвлении кодовой базы Railo 4.2, который заявил, что больше не будет работать над Railo. Другие разработчики подтвердили, что они также будут сосредоточены исключительно на Lucee, и - хотя компания Railo не сделала официального заявления, - сообщество согласилось с тем, что дальнейшее развитие проекта Railo маловероятно. [4] [5]
19 июля 2016 года компания Railo была распущена. [6]
История выпусков [ править ]
Основная версия (кодовое имя) | Дополнительная версия | Дата выхода | Примечания |
---|---|---|---|
0 | Альфа 1 | 2004-04-10 | Первый официальный выпуск движка Railo CFML. [7] |
Альфа 2 | 2004-05-18 | ||
Альфа 3 | 2004-08-03 | ||
Альфа 4 | 2004-10-21 | ||
Бета 1 | 2005-01-16 | Первая бета-версия Railo. | |
Бета 2 | 2005 г. | ||
Бета 3 | 2005 г. | ||
RC1 | 2005-09-23 | Первый релиз-кандидат Railo был представлен немецкому CFUG в Мюнхене. [7] | |
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 ( Барри ) | 3.1.0.000 | 2009-08-12 | Первый выпуск Railo с открытым исходным кодом. [8] |
3.1.1.000 | 2009-08-11 | ||
3.1.2.000 | 2010-11-26 | ||
3,2 ( Грейфрайарс Бобби ) | 3.2.1.000 | 2011-12-24 | |
3.2.2.000 | 2011-03-18 | ||
3.2.3.000 | 2011-06-10 | ||
3.3 ( Хатико ) | 3.3.1.000 | 2011-11-03 | Добавлена встроенная поддержка ORM и многих других функций. [9] |
3.3.4.003 | 2012-06-25 | ||
4.0 ( Аполло ) | 4.0.0.013 | 2012-07-02 | |
4.0.5.004 | 2013-07-09 | ||
4.1 ( Конец ) | 4.1.2.005 | 2013-12-11 | . |
4.2 ( Того ) | 4.2.0.009 | 2014-05-14 | |
4.2.1.000 | 2014-05-21 | ||
4.2.2.005 | 2014-12-18 | Текущая стабильная версия Railo |
Платформы и лицензия [ править ]
Railo работает на JVM как сервлет и будет работать с любым контейнером сервлетов (например, Apache Tomcat , Eclipse Jetty ) или сервером приложений (например, JBoss AS , GlassFish ). Можно подключить веб-сервер (например, Apache , IIS , nginx , Cherokee ) впереди, используя такие соединители, как mod jk , mod proxy или аналогичные, но Railo этого не требует.
У Railo есть установщик для Linux , macOS и Windows , в который входит Apache Tomcat . Существует также предварительно настроенная загрузка Railo Express с помощью Jetty .
Начиная с v4.0, Railo будет иметь версию для командной строки , позволяющую использовать CFML в качестве языка общего назначения вне среды сервлетов. [10]
Railo, начиная с версии 3.1, имеет лицензию LGPL v2.1, [11] с исходным кодом, доступным на GitHub [12]
Философия [ править ]
Основная цель Railo заключалась в обеспечении функциональности ColdFusion с использованием меньшего количества ресурсов и повышения производительности, а команда Railo Technologies продолжает «рассматривать медлительность как ошибку» как основную философию разработки. Многие тесты производительности показали, что Railo работает быстрее, чем другие двигатели CFML. [13]
В дополнение к этому, Railo пытается устранить множество несоответствий, обнаруженных в традиционном CFML. Это либо принудительные изменения в поведении, либо настраиваемые параметры в администраторе Railo.
Команда Railo Technologies всегда открыта для обратной связи и активно участвует в мероприятиях сообщества CFML, а также стремится напомнить людям, что Railo - это проект сообщества.
Railo Technologies также создает прочные технологические партнерские отношения с компаниями-разработчиками программного обеспечения CFML, включая Blue River Interactive Group (разработчики Mura CMS ), CONTENS Software GmbH (разработчики CONTENS CMS ) и Intergral GmbH (разработчики FusionReactor и FusionDebug ), чтобы обеспечить их программное обеспечение. хорошо работает с Railo. Кроме того, Railo Technologies предлагает официальные «Партнерские программы» для решений (разработка), хостинга и обучения. [14]
Использование [ править ]
На сервер приложений Railo в настоящее время в среднем загружается 7 000 (и их число постоянно растет). [15]
Railo используется рядом компаний, в том числе:
- Amtrak california (калифорнийская железнодорожная компания) [16]
- Apple Inc. (компания по производству бытовой электроники и программного обеспечения) [17]
- Diamond Bank (коммерческий банк в Нигерии )
- DistroKid ( Служба публикации / распространения музыки, Филип Дж. Каплан ) [18]
- IDG Germany (издатель журналов Computer World, GameStar, PCWorld) [19]
- Фандализм (социальная сеть для музыкантов, Филип Каплан ) [20]
- Лаборатория реактивного движения НАСА (центр исследования космоса роботами) [21]
- Список (британский развлекательный журнал) [22]
- RTL Group (вторая по величине в Европе телерадиокомпания и продюсерская компания) [23]
- STV Player (шотландский сервис видео по запросу) [24]
- Swisscom (крупный поставщик телекоммуникационных услуг в Швейцарии) [25]
Особенности [ править ]
- Поддерживает объектно-ориентированное программирование с наследованием , миксинами и метаклассами.
- Динамический набор текста и утиный набор текста
- Буквенное обозначение массивов и структур
- Встраивание переменных в строки ( интерполяция )
- Именованные аргументы , необязательные аргументы и аргументы по умолчанию
- Три уровня области видимости объектных переменных: This (общедоступный объект), Variables (закрытый объект), Local (закрытая функция).
- Область действия нескольких глобальных переменных: запрос, сеанс, клиент, приложение, сервер, кластер
- Определенные области действия переменных, предоставляемые пользователем: Форма (сообщение), URL (получение), Cookie, CGI.
- Автоматическая сборка мусора (через JVM)
- Глобальная и локальная обработка исключений (через
onError
иtry/catch
) - Настраиваемое поведение диспетчеризации (сквозные
onMissingMethod
и неявные геттеры и сеттеры) - Неявные преобразования объекта (через
_toString
,_toNumeric
,_toBoolean
,_toDate
) [26] - Родные темы
- Поддержка Unicode , множественных кодировок символов и i18n
- Большая стандартная библиотека, охватывающая общие потребности веб-разработки
- Railo Extension Store [27] и Extension Manager [28] для простой установки дополнительного программного обеспечения и расширений
- Собственный подключаемый модуль API на CFML или Java [29]
- Собственная обработка для простого создания и использования веб-сервисов
- Отдельные администраторы графического интерфейса пользователя для отдельных веб-контекстов плюс глобальный администратор сервера
- Все параметры администратора настраиваются программно или путем редактирования файлов конфигурации XML.
- Собственные ресурсы для всех встроенных тегов и функций файловой системы. [30]
- Кластеризация и синхронизация как для традиционных, так и для облачных серверов
- Диспетчер задач для планирования повторяющихся действий или повторных попыток неудачных событий [31]
- Встроенная поддержка Hibernate ORM
- Большое количество функций манипулирования изображениями
- Шлюзы событий для выполнения асинхронного кода [32]
- Встроенная поддержка множества различных механизмов кэширования [33]
- Native управления сеансом (CFML сессий или J2EE сессий) с
onSessionStart
иonSessionEnd
триггерами. - Встроенная функция аутентификации пользователей и ролей.
Безопасность [ править ]
CFML имеет встроенные функциональные возможности для предотвращения инъекции кода, с помощью cfqueryparam
тега, и такие функции , как HtmlEditFormat
, XmlFormat
, JsStringFormat
. Существуют также сторонние реализации CFML для OWASP Enterprise Security API, [34] и проекта AntiSamy. [35]
Одним из ключевых архитектурных решений Railo было следование модели сервлетов JEE с поддержкой нескольких независимых веб-контекстов на одном сервере. Это ключевой фактор безопасности, поскольку он предотвращает взаимодействие несвязанных приложений друг с другом, как это может происходить на общем сервере ColdFusion (который имеет только один веб-контекст).
Синтаксис [ править ]
Railo реализует язык CFML - примеры см. В разделе синтаксиса CFML, а также CFScript .
Различия [ править ]
Отличия от других языков [ править ]
CFML имеет синтаксис на основе тегов, который визуально отличается от большинства других языков, хотя в остальном он похож на другие динамические языки, за следующими исключениями:
- CFML содержит два синтаксиса: синтаксис на основе тегов (несовместимый с XML) и синтаксис в стиле C, называемый cfscript.
- Массивы в CFML индексируются с единицы, а не с нуля.
- CFML поддерживает как упорядоченные, так и именованные аргументы функций или их комбинации.
- CFML не имеет статических переменных.
Отличия от Adobe ColdFusion [ править ]
Хотя Railo реализует CFML и в целом совместим с Adobe ColdFusion (ACF), исходным движком CFML, между ними есть некоторые заметные различия:
- Railo - это программное обеспечение LGPL v2.1 с открытым исходным кодом. ACF - это запатентованная технология.
- Railo использует архитектуру с несколькими веб-контекстами по сравнению с единым веб-контекстом ACF.
- Railo позволяет создавать «встроенные» пользовательские функции, используя стандартный CFML.
- Railo не может расшифровать (или выполнить) шаблоны, зашифрованные с помощью механизма шифрования ACF.
- Railo имеет значительно более быстрый цикл выпуска основных, второстепенных и исправлений.
- В Railo область действия всегда имеет приоритет. В ACF создание переменной с именем "Url" может заблокировать доступ к области URL. В Railo переменная доступна только как "Variables.Url".
- Railo ищет CFC внутри пути пользовательского тега, только если он определен соответствующим образом в администраторе (вместо этого у него есть отдельный путь CFC).
- Railo 4.x представляет интерфейс командной строки (CLI), который позволяет выполнять сценарии CFML из командной строки.
- Railo позволяет использовать объектные методы. Поэтому вместо использования массива Append (arr, «значение») можно написать: arr.append («значение»). Append («anotherValue»).
См. Также [ править ]
- Lucee - форк Railo, в настоящее время поддерживаемый оригинальными разработчиками Railo .
- Adobe ColdFusion - оригинальный движок CFML.
- Open BlueDragon - еще один движок CFML с открытым исходным кодом.
- CFML - язык, который использует Рейло.
Ссылки [ править ]
- ^ a b http://www.getrailo.org/index.cfm/about-railo/
- ^ http://www.infoq.com/news/2008/06/railo_jboss
- ^ "Архивная копия" . Архивировано из оригинала 18 февраля 2015 года . Проверено 17 февраля 2015 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ http://www.codersrevolution.com/blog/railo-and-lucee-hunka-hunka-burning-questions
- ^ http://blog.adamcameron.me/2015/01/lucee.html
- ^ https://beta.companieshouse.gov.uk/company/08055066/filing-history
- ^ a b https://web.archive.org/web/20051031204526/http://www.railo.ch/en/index.cfm
- ^ "Архивная копия" . Архивировано из оригинала на 30 июня 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ http://wiki.getrailo.org/wiki/What%27s_New
- ^ "Архивная копия" . Архивировано из оригинального 26 сентября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ "Архивная копия" . Архивировано из оригинального 31 октября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ https://github.com/getrailo/railo
- ^ http://cfmlblog.adamcameron.me/2013/08/saving-class-files-in-coldfusion-and.html
- ^ "Архивная копия" . Архивировано из оригинала на 1 октября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ "Архивная копия" . Архивировано из оригинального 13 января 2013 года . Проверено 24 июля 2013 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ Использует Mura CMS на базе Railo на http://www.amtrakcalifornia.com
- ^ Использует внутри себя Mura CMS на базе Railo.
- ^ "Филип Каплан официально запускает дистрокид" . techcrunch.com.
- ^ Railo поддерживает немецкие веб-сайты IDG, например http://www.computerwoche.de
- ^ "У меня 404 772 пользователя. Что теперь?" . News.ycombinator.com . Проверено 8 ноября 2012 года .
- ^ «НАСА достигает целей данных для марсохода с помощью программного обеспечения с открытым исходным кодом» . opensource.com . Проверено 8 ноября 2012 года .
- ^ Общедоступный веб-сайт Railo Powers http://www.list.co.uk
- ^ Использует Railo внутри компании, а также использует систему CONTENS CMS на базе Railo для создания общедоступных веб-сайтов.
- ^ Railo Powers http://player.stv.tv service.
- ^ Railo поддерживаетсервис https://io.swisscom.ch .
- ^ http://wiki.getrailo.org/wiki/TIPS:Implicit_Conversions/wiki/TIPS:Magic_Functions
- ^ "Архивная копия" . Архивировано из оригинального 3 -го сентября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ "Архивная копия" . Архивировано из оригинального 25 апреля 2012 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ "Архивная копия" . Архивировано из оригинального 7 -го октября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ "Архивная копия" . Архивировано из оригинального 25 апреля 2012 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ "Архивная копия" . Архивировано из оригинального 24 -го октября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ http://wiki.getrailo.org/wiki/3-2:Event_gateways
- ^ "Архивная копия" . Архивировано из оригинала на 1 марта 2012 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ https://code.google.com/p/owasp-esapi-coldfusion/
- ^ http://www.petefreitag.com/item/760.cfm
Внешние ссылки [ править ]
- Официальный веб-сайт