Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Railo сервер , как правило , называют Railo ( / г л / 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]

История выпусков [ править ]

Платформы и лицензия [ править ]

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 - язык, который использует Рейло.

Ссылки [ править ]

  1. ^ a b http://www.getrailo.org/index.cfm/about-railo/
  2. ^ http://www.infoq.com/news/2008/06/railo_jboss
  3. ^ "Архивная копия" . Архивировано из оригинала 18 февраля 2015 года . Проверено 17 февраля 2015 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  4. ^ http://www.codersrevolution.com/blog/railo-and-lucee-hunka-hunka-burning-questions
  5. ^ http://blog.adamcameron.me/2015/01/lucee.html
  6. ^ https://beta.companieshouse.gov.uk/company/08055066/filing-history
  7. ^ a b https://web.archive.org/web/20051031204526/http://www.railo.ch/en/index.cfm
  8. ^ "Архивная копия" . Архивировано из оригинала на 30 июня 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  9. ^ http://wiki.getrailo.org/wiki/What%27s_New
  10. ^ "Архивная копия" . Архивировано из оригинального 26 сентября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  11. ^ "Архивная копия" . Архивировано из оригинального 31 октября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  12. ^ https://github.com/getrailo/railo
  13. ^ http://cfmlblog.adamcameron.me/2013/08/saving-class-files-in-coldfusion-and.html
  14. ^ "Архивная копия" . Архивировано из оригинала на 1 октября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  15. ^ "Архивная копия" . Архивировано из оригинального 13 января 2013 года . Проверено 24 июля 2013 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  16. ^ Использует Mura CMS на базе Railo на http://www.amtrakcalifornia.com
  17. ^ Использует внутри себя Mura CMS на базе Railo.
  18. ^ "Филип Каплан официально запускает дистрокид" . techcrunch.com.
  19. ^ Railo поддерживает немецкие веб-сайты IDG, например http://www.computerwoche.de
  20. ^ "У меня 404 772 пользователя. Что теперь?" . News.ycombinator.com . Проверено 8 ноября 2012 года .
  21. ^ «НАСА достигает целей данных для марсохода с помощью программного обеспечения с открытым исходным кодом» . opensource.com . Проверено 8 ноября 2012 года .
  22. ^ Общедоступный веб-сайт Railo Powers http://www.list.co.uk
  23. ^ Использует Railo внутри компании, а также использует систему CONTENS CMS на базе Railo для создания общедоступных веб-сайтов.
  24. ^ Railo Powers http://player.stv.tv service.
  25. ^ Railo поддерживаетсервис https://io.swisscom.ch .
  26. ^ http://wiki.getrailo.org/wiki/TIPS:Implicit_Conversions/wiki/TIPS:Magic_Functions
  27. ^ "Архивная копия" . Архивировано из оригинального 3 -го сентября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  28. ^ "Архивная копия" . Архивировано из оригинального 25 апреля 2012 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  29. ^ "Архивная копия" . Архивировано из оригинального 7 -го октября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  30. ^ "Архивная копия" . Архивировано из оригинального 25 апреля 2012 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  31. ^ "Архивная копия" . Архивировано из оригинального 24 -го октября 2011 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  32. ^ http://wiki.getrailo.org/wiki/3-2:Event_gateways
  33. ^ "Архивная копия" . Архивировано из оригинала на 1 марта 2012 года . Проверено 2 октября 2011 года .CS1 maint: заархивированная копия как заголовок ( ссылка )
  34. ^ https://code.google.com/p/owasp-esapi-coldfusion/
  35. ^ http://www.petefreitag.com/item/760.cfm

Внешние ссылки [ править ]

  • Официальный веб-сайт