| Railo サーバー | |
|---|---|
| 開発者 | Railo Technologies、Michael Offner、Gert Franz |
| 初回リリース | 2006年4月 |
| 安定版リリース | 4.2.2.005 / 2014年12月18日 (2014年12月18日) |
| リポジトリ | |
| 書かれた | ジャワ |
| オペレーティング·システム | Windows、Linux、Unix、macOS |
| 入手可能な | 英語、ドイツ語 |
| タイプ | アプリケーションサーバー |
| ライセンス | LGPL v2.1 |
| Webサイト | github |
Railo Server (一般的にRailo ( / ˈ r aɪ l oʊ / 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 Tomcat、Eclipse Jettyなど)またはアプリケーションサーバー( JBoss AS、GlassFishなど)と連携して動作します。mod jkやmod proxyなどのコネクタを使用して、 Web サーバー(Apache、IIS、nginx、Cherokeeなど)をフロントエンドに接続することも可能ですが、Railo ではこれは必須ではありません。
Railoには、 Linux、macOS、Windows用のインストーラーが用意されており、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 は、特に次のような多くの企業で使用されています。
- アムトラック・カリフォルニア(カリフォルニアの鉄道会社)[ 14 ]
- アップル(家電製品およびソフトウェア会社)[ 15 ]
- ダイヤモンド銀行(ナイジェリアの商業銀行)
- DistroKid(音楽出版・配信サービス、フィリップ・J・カプラン)[ 16 ]
- IDGドイツ(Computer World、GameStar、PCWorld誌の発行元)[ 17 ]
- ファンダリズム(ミュージシャンのためのソーシャルネットワーク、フィリップ・J・カプラン著)[ 18 ]
- NASAジェット推進研究所(宇宙ロボット探査センター)[ 19 ]
- ザ・リスト(イギリスのエンターテイメント雑誌)[ 20 ]
- RTLグループ(ヨーロッパ第2位のテレビ、ラジオ、制作会社)[ 21 ]
- STVプレーヤー(スコットランドのビデオオンデマンドサービス)[ 22 ]
- スイスコム(スイスの大手通信事業者)[ 23 ]
特徴
- 継承、ミックスイン、メタクラスによるオブジェクト指向プログラミングをサポートします
- 動的型付けとダックタイピング
- 配列と構造体のリテラル表記
- 文字列への変数の埋め込み(補間)
- 名前付き引数、オプション引数、デフォルト引数
- オブジェクト変数スコープの 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 エンジンである Adobe 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 が使用する言語。
参考文献
- ^ a b “Railo - History” . 2016年4月21日時点のオリジナルよりアーカイブ。
- ^ 「RailoがJBoss.orgに参加」 Infoq.com、2008年6月18日。 2023年1月27日閲覧。
- ^ 「Railo at cf.Objective(): The Evolution of Railo — Railo Blog」 。 2015年2月18日時点のオリジナルよりアーカイブ。2015年2月17日閲覧。
- ^ 「Railo と Lucee: Hunka Hunka の燃えるような質問」。
- ^ 「ルーシー」。
- ^ 「THE RAILO COMPANY LIMITED の申請履歴 - 企業情報の検索と更新 - GOV.UK」。
- ^ a b「Railo - the CFML engine」 . www.railo.ch . 2005年10月31日時点のオリジナルよりアーカイブ。2022年1月15日閲覧。
- ^ “Railo 3.1 release” . 2011年6月30日時点のオリジナルよりアーカイブ。2011年10月2日閲覧。
- ^ 「新機能」。Railo Wiki – GitHub経由。
- ^ “Railo Roadmap” . 2011年9月26日時点のオリジナルよりアーカイブ。2011年10月2日閲覧。
- ^ 「Railo CFML ドキュメント Wiki - Railo ライセンス」。2011年10月31日時点のオリジナルよりアーカイブ。2011年10月2日閲覧。
- ^ 「Railo CFMLエンジン」 . GitHub . 2022年4月30日.
- ^ 「ColdFusionでクラスファイルを保存する」 。 2013年8月13日時点のオリジナルよりアーカイブ。2013年9月7日閲覧。
- ^ 「Railo搭載のMura CMSを使用」 。 2012年1月16日時点のオリジナルよりアーカイブ。2011年10月2日閲覧。
- ^内部では Railo を搭載した Mura CMS を使用しています。
- ^ 「Philip Kaplanが正式にDistrokidをリリース」 Tech Crunch、2013年10月10日。
- ^ Railo が IDG のドイツ語ウェブサイトを強化
- ^ pud. 「ユーザー数は404,772人。さて、次は何をすればいい?」2012年11月8日閲覧– Hacker News経由。
- ^ 「NASA、オープンソースソフトウェアで火星探査機のデータ目標を達成」 opensource.com . 2012年11月8日閲覧。
- ^ Railoが公開ウェブサイトを強化
- ^社内では Railo を使用し、公開 Web サイトの生成には Railo 搭載の CONTENS CMS も使用しています。
- ^レイロパワーズ
- ^レイロパワーズ
- ^ "TIPS:Magic_Functions" . 2012年4月25日時点のオリジナルよりアーカイブ。
- ^ 「Railo Extension Storeがオープンしました! — Railo Blog」 。 2011年9月3日時点のオリジナルよりアーカイブ。2011年10月2日閲覧。
- ^ 「Extension Manager — Railo Blog」。2012年4月25日時点のオリジナルよりアーカイブ。2011年10月2日閲覧。
- ^ 「Railo 3.1: 独自の組み込み関数の作成 — Railo ブログ」 。 2011年10月7日時点のオリジナルよりアーカイブ。 2011年10月2日閲覧。
- ^ “Railo 3.0: Resources” . 2012年4月25日時点のオリジナルよりアーカイブ。2011年10月2日閲覧。
- ^ 「Railo 3.0 リリース - 機能パート IV - タスクマネージャー、リモート同期 — Railo ブログ」 。 2011年10月24日時点のオリジナルよりアーカイブ。 2011年10月2日閲覧。
- ^ “3-2:Event_gateways” . 2012年5月8日時点のオリジナルよりアーカイブ。
- ^ 「キャッシュ(上級編)パート2 — Railo Blog」 。 2012年3月1日時点のオリジナルよりアーカイブ。 2011年10月2日閲覧。
- ^ 「Google Code アーカイブ - Google Code プロジェクト ホスティング用の長期ストレージ」。
- ^ 「ColdFusion で AntiSamy を使用する」。