ライロ

Railo サーバー
開発者Railo Technologies、Michael Offner、Gert Franz
初回リリース2006年4月
安定版リリース
4.2.2.005 / 2014年12月18日 (2014年12月18日
リポジトリ
書かれたジャワ
オペレーティング·システムWindowsLinuxUnixmacOS
入手可能な英語、ドイツ語
タイプアプリケーションサーバー
ライセンスLGPL v2.1
Webサイトgithub .com /getrailo /railo

Railo Server (一般的にRailo ( / ˈ r l / RY -loh )と呼ばれる)は、汎用CFMLサーバー側スクリプト言語を実装したオープンソースソフトウェアです。動的な Web サイトWeb アプリケーションイントラネットシステムの作成によく使用されます。CFML は、複数のプログラミングパラダイムをサポートする動的言語であり、 Java 仮想マシン(JVM) 上で実行されます。

Railoは、スイスのRailo Technologies GmbH社によって開発され、 Adobe ColdFusionの高性能な代替として開発されました。2008年、Railoはオープンソースコミュニティ主導のモデルに移行し、JBossプロジェクトとなりました。RailoオープンソースプロジェクトはRailo Technologies社が主導し、開発資金はコンサルティングおよびサポート契約によって賄われていますが、誰でもコードを提供して審査を受けることができます。

ネーミング

ライロは、 『スタートレック:エンタープライズ』に登場するエイリアンの犬にちなんで名付けられました。この犬は実際にはライロという名前ですが、ドイツ語では発音上はライロとなります。[ 1 ]そのため、ライロは「rhy-lo」でも「rai-lo」でも発音でき、どちらも認められています。

Railo の主要リリースには、歴史上の著名で忠実な犬のコードネームが付けられています。

歴史

Railoは2002年にマイケル・オフナーとゲルト・フランツによる学生プロジェクトとして始まり、CFMLコードをPHPにコンパイルするものでした。これはPHPの普及を理由に選択されたものですが、これでは期待されるパフォーマンスと安定性が得られないことが判明し、代わりにJavaプラットフォームに切り替えることが決定されました。[ 1 ]

このプロジェクトは十分な成功を収め、完全な製品版の開発を継続することが決定されました。2006年4月の公式1.0リリースまでに、アルファ版とベータ版が複数回リリースされました。Railoは開発が継続されましたが、多くのCFML開発者にはあまり知られていませんでした。しかし、2008年6月にエディンバラで開催されたScotch on the Rocksカンファレンスの2日目基調講演で、Railo TechnologiesはJBossとの提携とオープンソースへの移行を発表しました。[ 2 ]

2012年5月、cf. Objectiveカンファレンスにおいて、スイスのRailo Technologies GmbHとCFML業界で事業を展開する他の5社からなる非公開有限会社「The Railo Company Ltd」の設立が発表されました。 [ 3 ]

ルーシーフォーク

2015年1月29日、 Railo 4.2コードベースのフォークであるLuceeプロジェクトが、Railoの元開発者によって発表されました。彼はRailoの開発には今後関わらないことを表明しました。他の開発者もLuceeに専念することを確認しており、Railo Companyからの公式声明は出ていないものの、コミュニティの見解ではRailoプロジェクトの更なる開発は行われない可能性が高いとされています。[ 4 ] [ 5 ]

2016年7月19日、Railo Companyは解散した。[ 6 ]

リリース履歴

メジャーバージョン(コードネーム)マイナーバージョン発売日注記
0 アルファ1 2004年4月10日Railo CFMLエンジンの最初の公式リリース。[ 7 ]
アルファ2 2004年5月18日
アルファ3 2004年8月3日
アルファ4 2004年10月21日
ベータ1 2005年1月16日Railo の最初のベータ リリース。
ベータ2 2005
ベータ3 2005
RC1 2005年9月23日Railoの最初のリリース候補はミュンヘンのドイツCFUGに発表されました。[ 7 ]
1.0 1.0.0.000 2006-04
2.0 2.0.0.000 2007年9月10日
2.0.1.000
2.0.2.000
3.0 3.0.0.000 2008年9月9日
3.0.1.000
3.0.2.000
3.0.3.000
3.1

バリー

3.1.0.000 2009年8月12日Railoの最初のオープンソースリリース。[ 8 ]
3.1.1.000 2009年8月11日
3.1.2.000 2010年11月26日
3.2

グレイフライアーズ・ボビー

3.2.1.000 2011年12月24日
3.2.2.000 2011年3月18日
3.2.3.000 2011年6月10日
3.3

ハチ公

3.3.1.000 2011年11月3日ORMやその他の多くの機能の組み込みサポートを追加しました。[ 9 ]
3.3.4.003 2012年6月25日
4.0

アポロ

4.0.0.013 2012年7月2日
4.0.5.004 2013年7月9日
4.1

エンダル

4.1.2.005 2013年12月11日
4.2

持ち帰り

4.2.0.009 2014年5月14日
4.2.1.000 2014年5月21日
4.2.2.005 2014年12月18日 Railoの現在の安定リリース

プラットフォームとライセンス

Railo はJVM上でサーブレットとして動作し、任意のサーブレットコンテナApache TomcatEclipse Jettyなど)またはアプリケーションサーバー( JBoss ASGlassFishなど)と連携して動作します。mod jkmod proxyなどのコネクタを使用して、 Web サーバーApacheIISnginxCherokeeなど)をフロントエンドに接続することも可能ですが、Railo ではこれは必須ではありません。

Railoには、 LinuxmacOSWindows用のインストーラーが用意されており、Apache Tomcatがバンドルされています。また、 Jettyを使用した事前設定済みのRailo Expressダウンロードもあります。

バージョン4.0以降、Railoにはコマンドラインバージョンが追加され、CFMLをサーブレット環境以外でも汎用言語として使用できるようになります。[ 10 ]

Railoはバージョン3.1以降、LGPL v2.1としてライセンスされており、[ 11 ]ソースコードはGitHubで入手可能である[ 12 ]。

哲学

Railoの主な目的は、 ColdFusionの機能をより少ないリソースで、より優れたパフォーマンスで提供することであり、Railo Technologiesチームは「速度低下はバグとして扱う」ことを開発理念の中核として掲げ続けています。多くのパフォーマンステストにおいて、Railoは他のCFMLエンジンよりも高速であることが示されています。[ 13 ]

さらに、Railo は従来の CFML に見られる多くの矛盾点を解決しようと試みます。これらの矛盾点は、動作の強制的な変更、または Railo Administrator で設定可能なオプションによって解決されます。

使用法

Railo は、特に次のような多くの企業で使用されています。

特徴

  • 継承ミックスインメタクラスによるオブジェクト指向プログラミングをサポートします
  • 動的型付けダックタイピング
  • 配列構造体のリテラル表記
  • 文字列への変数の埋め込み(補間
  • 名前付き引数、オプション引数、デフォルト引数
  • オブジェクト変数スコープの 3 つのレベル: This (オブジェクト パブリック)、Variables (オブジェクト プライベート)、Local (関数 プライベート)
  • 複数のグローバル変数スコープ: リクエスト、セッション、クライアント、アプリケーション、サーバー、クラスター
  • ユーザーが定義する変数のスコープ: フォーム (post)、URL (get)、Cookie、CGI
  • 自動ガベージコレクション(JVM経由)
  • グローバルおよびローカル例外処理、(およびonError経由try/catch
  • カスタムディスパッチ動作(onMissingMethodゲッターとセッター経由および暗黙的)
  • 暗黙的なオブジェクト変換_toString、、、_toNumericを通じて)_toBoolean[ 24 ]_toDate
  • ネイティブスレッド
  • Unicode、複数の文字エンコーディングi18nのサポート
  • 一般的なウェブ開発のニーズをカバーする大規模な標準ライブラリ
  • Railo Extension Store [ 25 ]と Extension Manager [ 26 ]により、追加のソフトウェアや拡張機能を簡単にインストールできます。
  • CFMLまたはJavaのネイティブプラグインAPI [ 27 ]
  • ウェブサービスを簡単に作成、利用するためのネイティブ処理
  • 個々のWebコンテキストごとに個別のGUI管理者とグローバルサーバー管理者
  • すべての管理設定はプログラムで、またはXML設定ファイルを編集することで設定可能
  • すべての組み込みファイルシステムタグと関数のネイティブリソース。 [ 28 ]
  • 従来のサーバーとクラウドサーバーの両方のクラスタリングと同期
  • 繰り返しのアクションをスケジュールしたり、失敗したイベントを再試行するためのタスクマネージャー[ 29 ]
  • Hibernate ORMのネイティブサポート
  • 多数の画像操作機能
  • 非同期コード実行のためのイベントゲートウェイ[ 30 ]
  • 様々なキャッシュメカニズムのネイティブサポート[ 31 ]
  • onSessionStartおよびトリガーを使用したネイティブ セッション管理 (CFML セッションまたは J2EE セッション) onSessionEnd
  • 組み込みのユーザー認証およびロール機能。

安全

CFMLには、タグや、、cfqueryparamなどの関数を介してコードインジェクションを防ぐ機能が組み込まれています。また、 OWASP Enterprise Security APIのサードパーティ製CFML実装も存在します。 [ 32 ]およびAntiSamyプロジェクト[ 33 ]HtmlEditFormatXmlFormatJsStringFormat

Railo のアーキテクチャにおける重要な決定事項の一つは、JEE サーブレットモデルに準拠し、単一サーバー上で複数の独立した Web コンテキストをサポートすることでした。これはセキュリティ上重要な要素であり、共有 ColdFusion サーバー(単一の Web コンテキストのみを持つ)で発生する可能性のある、無関係なアプリケーション間の干渉を防ぎます。

構文

Railo はCFML言語を実装しています。例については、 CFML 構文セクションとCFScript を参照してください。

違い

他の言語との違い

CFML は、他のほとんどの言語とは視覚的に異なるタグベースの構文を持っていますが、それ以外は、次の例外を除いて他の動的言語と似ています。

  • CFML には、タグベースの構文 (XML 準拠ではありません) と cfscript と呼ばれる C スタイルの構文の 2 つの構文が含まれています。
  • CFML 内の配列は、0 からではなく 1 からインデックスが付けられます。
  • CFML は、順序付き関数引数と名前付き関数引数の両方、またはその組み合わせをサポートします。
  • CFML には静的変数がありません。

Adobe ColdFusionとの違い

Railo は CFML を実装しており、オリジナルの CFML エンジンである Adob​​e ColdFusion (ACF) と一般的に互換性がありますが、両者の間にはいくつかの顕著な違いがあります。

  • Railo はオープンソースのLGPL v2.1 ソフトウェアです。ACF は独自の技術です。
  • Railo は、ACF の単一 Web コンテキストと比較して、マルチ Web コンテキスト アーキテクチャを使用します。
  • Railo を使用すると、標準の CFML を使用して「組み込み」のユーザー定義関数を作成できます。
  • Railo は、ACF の暗号化メカニズムで暗号化されたテンプレートを復号化 (または実行) できません。
  • Railo では、メジャー リリース、マイナー リリース、パッチ リリースのリリース サイクルが大幅に高速化されています。
  • Railoでは、スコープが常に優先されます。ACFでは、「Url」という名前の変数を作成すると、Urlスコープへのアクセスがブロックされる可能性があります。Railoでは、この変数には「Variables.Url」としてのみアクセスできます。
  • Railo は、管理者で適切に定義されている場合、カスタム タグ パス内の CFC のみを検索します (代わりに別個の CFC パスがあります)。
  • Railo 4.xでは、コマンドラインからCFMLスクリプトを実行できるコマンドラインインターフェース(CLI)が導入されました。
  • Railoではオブジェクトメソッドを使用できます。そのため、配列のAppend(arr, "value")の代わりに、arr.append("value").append("anotherValue")と記述できます。

参照

  • Lucee - 現在 Railo の元の開発者によってサポートされている Railo のフォーク。
  • Adobe ColdFusion - オリジナルの CFML エンジン。
  • CFML - Railo が使用する言語。

参考文献

  1. ^ a b “Railo - History” . 2016年4月21日時点のオリジナルよりアーカイブ。
  2. ^ 「RailoがJBoss.orgに参加」 Infoq.com、2008年6月18日。 2023年1月27日閲覧
  3. ^ 「Railo at cf.Objective(): The Evolution of Railo — Railo Blog」 。 2015年2月18日時点のオリジナルよりアーカイブ2015年2月17日閲覧。
  4. ^ 「Railo と Lucee: Hunka Hunka の燃えるような質問」
  5. ^ 「ルーシー」
  6. ^ 「THE RAILO COMPANY LIMITED の申請履歴 - 企業情報の検索と更新 - GOV.UK」
  7. ^ a b「Railo - the CFML engine」 . www.railo.ch . 2005年10月31日時点のオリジナルよりアーカイブ2022年1月15日閲覧。
  8. ^ “Railo 3.1 release” . 2011年6月30日時点のオリジナルよりアーカイブ2011年10月2日閲覧。
  9. ^ 「新機能」。Railo WikiGitHub経由。
  10. ^ “Railo Roadmap” . 2011年9月26日時点のオリジナルよりアーカイブ2011年10月2日閲覧。
  11. ^ 「Railo CFML ドキュメント Wiki - Railo ライセンス」。2011年10月31日時点のオリジナルよりアーカイブ2011年10月2日閲覧。
  12. ^ 「Railo CFMLエンジン」 . GitHub . 2022年4月30日.
  13. ^ 「ColdFusionでクラスファイルを保存する」 。 2013年8月13日時点のオリジナルよりアーカイブ2013年9月7日閲覧。
  14. ^ 「Railo搭載のMura CMSを使用」 。 2012年1月16日時点のオリジナルよりアーカイブ2011年10月2日閲覧。
  15. ^内部では Railo を搭載した Mura CMS を使用しています。
  16. ^ 「Philip Kaplanが正式にDistrokidをリリース」 Tech Crunch、2013年10月10日。
  17. ^ Railo が IDG のドイツ語ウェブサイトを強化
  18. ^ pud. 「ユーザー数は404,772人。さて、次は何をすればいい?」2012年11月8日閲覧– Hacker News経由
  19. ^ 「NASA​​、オープンソースソフトウェアで火星探査機のデータ目標を達成」 opensource.com . 2012年11月8日閲覧
  20. ^ Railoが公開ウェブサイトを強化
  21. ^社内では Railo を使用し、公開 Web サイトの生成には Railo 搭載の CONTENS CMS も使用しています。
  22. ^レイロパワーズ
  23. ^レイロパワーズ
  24. ^ "TIPS:Magic_Functions" . 2012年4月25日時点のオリジナルよりアーカイブ。
  25. ^ 「Railo Extension Storeがオープンしました! — Railo Blog」 。 2011年9月3日時点のオリジナルよりアーカイブ2011年10月2日閲覧。
  26. ^ 「Extension Manager — Railo Blog」2012年4月25日時点のオリジナルよりアーカイブ2011年10月2日閲覧。
  27. ^ 「Railo 3.1: 独自の組み込み関数の作成 — Railo ブログ」 。 2011年10月7日時点のオリジナルよりアーカイブ。 2011年10月2日閲覧
  28. ^ “Railo 3.0: Resources” . 2012年4月25日時点のオリジナルよりアーカイブ2011年10月2日閲覧。
  29. ^ 「Railo 3.0 リリース - 機能パート IV - タスクマネージャー、リモート同期 — Railo ブログ」 。 2011年10月24日時点のオリジナルよりアーカイブ。 2011年10月2日閲覧
  30. ^ “3-2:Event_gateways” . 2012年5月8日時点のオリジナルよりアーカイブ。
  31. ^ 「キャッシュ(上級編)パート2 — Railo Blog」 。 2012年3月1日時点のオリジナルよりアーカイブ。 2011年10月2日閲覧
  32. ^ 「Google Code アーカイブ - Google Code プロジェクト ホスティング用の長期ストレージ」
  33. ^ 「ColdFusion で AntiSamy を使用する」