Трескаться
Разработчик(и) | Railo Technologies, Майкл Оффнер, Герт Франц |
---|---|
Первоначальный выпуск | апрель 2006 г. |
Стабильная версия | 4.2.2.005 / 18 декабря 2014 г |
Репозиторий | |
Написано в | Ява |
Операционная система | Windows , Linux , Unix , macOS |
Доступно в | английский, немецкий |
Тип | Сервер приложений |
Лицензия | LGPL v2.1 |
Веб-сайт | github |
Railo Server , обычно называемый Railo ( / ˈr aɪ l oʊ , часто / RY -loh ), представляет собой программное обеспечение с открытым исходным кодом общего назначения CFML , которое реализует серверный язык сценариев используемый для создания динамических веб-сайтов , веб-приложений и интранет- систем. . CFML — это динамический язык , поддерживающий несколько парадигм программирования и работающий на виртуальной машине Java (JVM).
Railo был создан швейцарской компанией Railo Technologies GmbH и задумывался как высокопроизводительная альтернатива Adobe ColdFusion . В 2008 году Railo перешёл на модель с открытым исходным кодом, управляемую сообществом, и стал проектом JBoss . Проект Railo Open Source возглавляет компания Railo Technologies, а работа по разработке финансируется за счет контрактов на консультирование и поддержку, но любой может внести свой код на рассмотрение.
Мы
[ редактировать ]Райло был назван в честь инопланетной собаки из «Звездного пути: Энтерпрайз» . На самом деле собаку зовут Райло, но фонетически по-немецки она пишется как Райло. [1] Таким образом, Railo можно произносить либо как rhy-lo, либо как rai-lo — оба варианта допустимы.
Основные выпуски Railo имеют кодовое имя выдающихся и преданных собак из истории.
История
[ редактировать ]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, и - хотя со стороны The Railo Company не было сделано никакого официального заявления - сообщество единодушно считает, что дальнейшее развитие проекта 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 ( 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 ) спереди, используя такие соединители, как mod jk , mod proxy или эквивалентные, но Railo этого не требует.
У Railo есть установщик для Linux , macOS и Windows , который включает в себя Apache Tomcat . Существует также предварительно настроенная загрузка Railo Express с использованием Jetty .
Начиная с версии 4.0, Railo будет иметь версию для командной строки , позволяющую использовать CFML в качестве языка общего назначения вне среды сервлетов. [10]
Railo, поскольку версия 3.1 лицензируется как LGPL v2.1, [11] с исходным кодом, доступным на GitHub [12]
Философия
[ редактировать ]Основной целью Railo было обеспечение функциональности ColdFusion с использованием меньшего количества ресурсов и повышением производительности, а команда Railo Technologies продолжает «расценивать медлительность как ошибку» как основную философию разработки. Многие тесты производительности показали, что Railo работает быстрее, чем другие механизмы CFML. [13]
В дополнение к этому, Райло пытается устранить многие несоответствия, обнаруженные в традиционном CFML. Это либо принудительные изменения в поведении, либо настраиваемые параметры в администраторе Railo.
Команда Railo Technologies всегда была открыта для обратной связи и активно участвовала в общественных мероприятиях CFML, а также стремится напомнить людям, что Railo — это общественный проект.
Railo Technologies также создает прочные технологические партнерства с компаниями-разработчиками программного обеспечения CFML, включая Blue River Interactive Group (разработчики Mura CMS ), CONTENS Software GmbH. [14] (разработчики CONTENS CMS ) и Intergral GmbH [15] (разработчики FusionReactor и FusionDebug ), чтобы обеспечить правильную работу их программного обеспечения с Railo. Кроме того, Railo Technologies предлагает официальные «партнерские программы» для решений (разработки), хостинга и обучения. [16]
Использование
[ редактировать ]Этот раздел может потребовать очистки Википедии , чтобы соответствовать стандартам качества . Конкретная проблема: Ссылки. ( Июль 2023 г. ) |
Сервер приложений Railo в настоящее время загружает в среднем 7000 загрузок (и эта цифра растет) в месяц. [17]
Railo используется рядом компаний, в частности:
- Amtrak California (Калифорнийская железнодорожная компания) [18]
- Apple (компания по производству бытовой электроники и программного обеспечения) [19]
- Diamond Bank (коммерческий банк в Нигерии )
- DistroKid (служба публикации/распространения музыки, Филип Дж. Каплан ) [20]
- IDG Germany (издатель журналов Computer World, GameStar, PCWorld) [21]
- Фандализм (социальная сеть для музыкантов, автор: Филип Дж. Каплан ) [22]
- НАСА Лаборатория реактивного движения (центр роботизированного исследования космоса) [23]
- The List (британский развлекательный журнал) [24]
- RTL Group (вторая по величине теле-, радио- и продюсерская компания Европы) [25]
- STV Player (шотландский сервис видео по запросу) [26]
- Swisscom (крупный телекоммуникационный провайдер Швейцарии) [27]
Функции
[ редактировать ]- Поддерживает объектно-ориентированное программирование с наследованием , примесями и метаклассами.
- Динамическая типизация и утиная печать
- Литеральная запись для массивов и структур
- Встраивание переменных в строки ( интерполяция )
- Именованные аргументы , необязательные аргументы и аргументы по умолчанию.
- Три уровня области видимости объектной переменной: This (публичный объект), Variables (частный объект), Local (частная функция).
- Область действия нескольких глобальных переменных: запрос, сеанс, клиент, приложение, сервер, кластер.
- Различные области действия переменных, предоставляемых пользователем: форма (публикация), URL (получение), файлы cookie, CGI.
- Автоматическая сборка мусора (через JVM)
- Глобальная и локальная обработка исключений (через
onError
иtry/catch
) - Пользовательское поведение отправки (через
onMissingMethod
и неявные геттеры и сеттеры) - Неявное преобразование объектов (через
_toString
,_toNumeric
,_toBoolean
,_toDate
) [28] - Собственные потоки
- Поддержка Unicode , нескольких кодировок символов и i18n.
- Большая стандартная библиотека, удовлетворяющая общие потребности веб-разработки.
- Магазин расширений Railo [29] и менеджер расширений [30] для легкой установки дополнительного программного обеспечения и расширений
- Собственный API -интерфейс плагина на CFML или Java [31]
- Встроенная обработка для простого создания и использования веб-сервисов.
- Отдельные администраторы графического интерфейса для отдельных веб-контекстов, а также глобальный администратор сервера.
- Все настройки администратора настраиваются программно или путем редактирования XML . файлов конфигурации
- Собственные ресурсы для всех встроенных тегов и функций файловой системы. [32]
- Кластеризация и синхронизация как для традиционных, так и для облачных серверов.
- Диспетчер задач для планирования повторяющихся действий или повторной попытки неудачных событий [33]
- Встроенная поддержка Hibernate ORM
- Большое количество функций манипулирования изображениями.
- Шлюзы событий для асинхронного выполнения кода [34]
- Встроенная поддержка различных кэширования . механизмов [35]
- Встроенное управление сеансами (сеансы CFML или сеансы J2EE) с
onSessionStart
иonSessionEnd
триггеры. - Встроенная функция аутентификации пользователей и ролей.
Безопасность
[ редактировать ]CFML имеет встроенную функциональность для предотвращения внедрения кода через cfqueryparam
тег и такие функции, как HtmlEditFormat
, XmlFormat
, JsStringFormat
.Существуют также сторонние реализации CFML API OWASP Enterprise Security, [36] и проект АнтиСами. [37]
Одним из ключевых решений по архитектуре Railo было следование модели сервлетов JEE с поддержкой нескольких независимых веб-контекстов на одном сервере. Это ключевой фактор безопасности, поскольку он предотвращает взаимодействие несвязанных приложений друг с другом, что может произойти на общем сервере ColdFusion (который имеет только один веб-контекст).
Синтаксис
[ редактировать ]Railo реализует язык CFML — см. в разделе синтаксиса CFML примеры, а также CFScript .
Различия
[ редактировать ]Отличия от других языков
[ редактировать ]CFML имеет синтаксис на основе тегов, который визуально отличается от большинства других языков, хотя в остальном он похож на другие динамические языки, за следующими исключениями:
- CFML содержит два синтаксиса: синтаксис на основе тегов (несовместимый с XML) и синтаксис в стиле C, называемый cfscript.
- Массивы в CFML индексируются с единицы, а не с нуля.
- CFML поддерживает как упорядоченные, так и именованные аргументы функции или их комбинацию.
- В CFML нет статических переменных.
Отличия от Adobe ColdFusion
[ редактировать ]Хотя Railo реализует CFML и в целом совместим с Adobe ColdFusion (ACF), исходным движком CFML, между ними есть некоторые заметные различия:
- Railo — это v2.1 с открытым исходным кодом программное обеспечение LGPL . 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(»value»).append(»anotherValue»).
См. также
[ редактировать ]- Lucee — форк Railo, который в настоящее время поддерживается первоначальными разработчиками Railo.
- Adobe ColdFusion — оригинальный движок CFML.
- CFML — язык, который использует Railo.
Ссылки
[ редактировать ]- ^ Jump up to: а б «10 лучших сайтов с биткойн-слотами | Лучшие крипто-игровые автоматы 2021 года» .
- ^ «Райло присоединяется к JBoss.org» . Infoq.com. 18 июня 2008 года . Проверено 27 января 2023 г.
- ^ «Railo в cf.Objective(): эволюция Railo — блог Railo» . Архивировано из оригинала 18 февраля 2015 года . Проверено 17 февраля 2015 г.
- ^ «Райло и Люси: Жгучие вопросы Hunka Hunka» .
- ^ «Люси» .
- ^ «История регистрации заявок THE RAILO COMPANY LIMITED — Найдите и обновите информацию о компании — GOV.UK» .
- ^ Jump up to: а б «Райло – двигатель CFML» . www.railo.ch . Архивировано из оригинала 31 октября 2005 года . Проверено 15 января 2022 г.
- ^ «Выпуск Railo 3.1» . Архивировано из оригинала 30 июня 2011 года . Проверено 2 октября 2011 г.
- ^ «10 лучших сайтов с биткойн-слотами | Лучшее онлайн-казино 2022 года» .
- ^ «Дорожная карта железной дороги» . Архивировано из оригинала 26 сентября 2011 года . Проверено 2 октября 2011 г.
- ^ «Вики-документация Railo CFML — Лицензия Railo» . Архивировано из оригинала 31 октября 2011 года . Проверено 2 октября 2011 г.
- ^ «Двигатель Railo CFML» . Гитхаб . 30 апреля 2022 г.
- ^ «Сохранение файлов классов в coldfusion» . Архивировано из оригинала 13 августа 2013 года . Проверено 7 сентября 2013 г.
- ^ СОДЕРЖАНИЕ Software GmbH
- ^ Интерграл ГмбХ
- ^ «Партнерские программы» . Архивировано из оригинала 1 октября 2011 года . Проверено 2 октября 2011 г.
- ^ «Статистика железных дорог» . Архивировано из оригинала 13 января 2013 года . Проверено 24 июля 2013 г.
- ^ «Использует Mura CMS на базе Railo» . Архивировано из оригинала 16 января 2012 года . Проверено 2 октября 2011 г.
- ^ Внутренне использует Mura CMS на базе Railo.
- ^ «Филип Каплан официально запускает дистрокид» . Технический кризис. 10 октября 2013 г.
- ^ Railo поддерживает немецкие веб-сайты IDG.
- ^ «У меня 404 772 пользователя. Что теперь?» . News.ycombinator.com . Проверено 8 ноября 2012 г.
- ^ «НАСА достигает целей по сбору данных для марсохода с помощью программного обеспечения с открытым исходным кодом» . opensource.com . Проверено 8 ноября 2012 г.
- ^ Railo поддерживает публичный веб-сайт
- ^ Использует Railo внутри компании, а также использует CONTENS CMS на базе Railo для создания общедоступных веб-сайтов.
- ^ Полномочия Рейло
- ^ Полномочия Рейло
- ^ «10 лучших сайтов с биткойн-слотами | Лучшее онлайн-казино 2022 года» .
- ^ «Магазин расширений Railo открыт! — Блог Railo» . Архивировано из оригинала 3 сентября 2011 года . Проверено 2 октября 2011 г.
- ^ «Менеджер расширений — Блог Railo» . Архивировано из оригинала 25 апреля 2012 года . Проверено 2 октября 2011 г.
- ^ «Railo 3.1: Создание собственной встроенной функции — блог Railo» . Архивировано из оригинала 7 октября 2011 года . Проверено 2 октября 2011 г.
- ^ «Райло 3.0: Ресурсы» . Архивировано из оригинала 25 апреля 2012 года . Проверено 2 октября 2011 г.
- ^ «Выпущен Railo 3.0 — Особенности, часть IV — Диспетчер задач, Удаленная синхронизация — Блог Railo» . Архивировано из оригинала 24 октября 2011 года . Проверено 2 октября 2011 г.
- ^ «10 лучших сайтов с биткойн-слотами | Лучшее онлайн-казино 2022 года» .
- ^ «Кэш (расширенный), часть 2 — Блог Railo» . Архивировано из оригинала 1 марта 2012 года . Проверено 2 октября 2011 г.
- ^ «Архив кода Google — долгосрочное хранилище для хостинга проектов Google Code» .
- ^ «Использование AntiSamy с ColdFusion» .