Введение

Реализация CFML с открытым исходным кодом

Railo Server, обычно называемый Railo (произносится /ˈraɪloʊ/ RYloh), – это программное обеспечение с открытым исходным кодом, реализующее язык серверного сценария CFML общего назначения, который часто используется для создания динамических веб-сайтов, веб-приложений и интранет-систем. CFML – это динамический язык, поддерживающий множество парадигм программирования и работающий на виртуальной машине Java (JVM). Railo был создан швейцарской компанией Railo Technologies GmbH как высокопроизводительная альтернатива Adobe ColdFusion. В 2008 году Railo перешла на модель разработки, управляемую сообществом с открытым исходным кодом, и стала проектом JBoss. Проект Railo Open Source возглавляется Railo Technologies, а разработка финансируется за счет консалтинговых и сервисных контрактов, однако любой желающий может предложить свой код для рассмотрения.

Именование

Рейло назван в честь инопланетной собаки из сериала «Звёздный путь: Энтерпрайз». На самом деле собаку зовут Райло, но при фонетическом написании на немецком языке получается Рейло. Проект оказался достаточно успешным, чтобы продолжить его разработку в полноценный продукт. Было выпущено несколько альфа- и бета-версий перед официальным релизом 1.0 в апреле 2006 года. Railo продолжала развиваться, но оставалась малоизвестной среди многих разработчиков CFML, пока в июне 2008 года на конференции Scotch on the Rocks в Эдинбурге компания Railo Technologies не использовала ключевой доклад второго дня для объявления о партнёрстве с JBoss и переходе на открытый исходный код. В мае 2012 года на конференции cf. Objective было объявлено об основании компании "The Railo Company Ltd" – частного общества с ограниченной ответственностью, в которое вошли швейцарская компания Railo Technologies GmbH и ещё пять компаний, работающих в сфере CFML.

Люси Форк

29 января 2015 года проект Lucee, ответвленный от кодовой базы Railo 4.2, был анонсирован оригинальным разработчиком Railo, который заявил о прекращении дальнейшей работы над Railo. Другие разработчики подтвердили, что также сосредоточатся исключительно на Lucee, и хотя официального заявления от The Railo Company не последовало, в сообществе сложилось мнение, что дальнейшая разработка проекта Railo не предвидится. 19 июля 2016 года The Railo Company была ликвидирована.

История релизов

Основная версия (Codename) Незначительная версия Дата выпуска Примечания0 Alpha 1 2004 04 10 Первый официальный релиз движка Railo CFML. Alpha 2 2004 05 18 Alpha 3 2004 08 03 Alpha 4 2004 10 21 Beta 1 2005 01 16 Первый бета-релиз Railo. Beta 2 2005 Beta 3 2005 RC1 2005 09 23 Первый релиз-кандидат Railo был представлен немецкой CFUG в Мюнхене. 3.1.1.000 2009 08 11 3.1.2.000 2010 11 263.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 Добавлена встроенная поддержка ORM и множество других функций. 3.3.4.003 2012 06 25 4.0 (Apollo) 4.0.0.013 2012 07 02 4.0.5.004 2013 07 09 4.1 (Endal) 4.1.2.005 2013 12 11 4.2 (Togo) 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) перед Railo, используя коннекторы, такие как mod_jk, mod_proxy или аналогичные, но это не является обязательным условием. Railo имеет установщик для Linux, macOS и Windows, который поставляется в комплекте с Apache Tomcat. Также доступна предварительно настроенная версия Railo Express на базе Jetty. Начиная с версии 4.0, Railo будет предлагать версию командной строки, позволяющую использовать CFML как язык программирования общего назначения вне среды сервлетов. Railo, начиная с версии 3.1, лицензируется по лицензии LGPL v2.1, а исходный код доступен на GitHub.

Философия

Основной целью Railo было предоставление функциональности ColdFusion с меньшими затратами ресурсов и более высокой производительностью, и команда Railo Technologies продолжает придерживаться философии разработки, согласно которой "медлительность – это ошибка". Многочисленные тесты производительности показали, что Railo работает быстрее, чем другие движки CFML. Помимо этого, Railo стремится устранить многие несоответствия, существующие в традиционной CFML. Это достигается либо за счет принудительных изменений в поведении, либо с помощью настраиваемых параметров в Railo Administrator. Команда 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 предлагает официальные "Партнерские программы" для решения задач (разработки), хостинга и обучения.

Безопасность

CFML имеет встроенные средства защиты от внедрения кода, такие как тег cfqueryparam и функции HtmlEditFormat, XmlFormat, JsStringFormat. Также существуют сторонние CFML-реализации OWASP Enterprise Security API и проекта AntiSamy. Одним из ключевых архитектурных решений при разработке Railo было следование модели сервлетов JEE с поддержкой нескольких независимых веб-контекстов на одном сервере. Это важный фактор безопасности, поскольку он предотвращает взаимодействие между несвязанными приложениями, что может произойти на общем сервере ColdFusion (который поддерживает только один веб-контекст).

Синтаксис

Railo реализует язык CFML (см. раздел "Синтаксис CFML" для примеров, а также CFScript).