「Trema」基本情報
■概要
Trema(トレマ)とは、Ruby用フルスタックOpenFlowフレームワークです。
■基本説明
Tremaは、OpenFlowコントローラプログラミングフレームワークで、RubyでOpenFlowコントローラを作成するための機能を提供します。
Tremaは自己完結型環境として、「高レベルのOpenFlowライブラリ」「PC上でテストするためのOpenFlowベースのネットワークを作成できるネットワークエミュレータ」を提供することで、開発とテストのプロセス全体を効率化させます。
■「OpenFlow」とは
OpenFlowとは、ソフトウェアによってネットワークの構成を行いSDN(Software-Defined Networking)を実現するための標準の1つです。
OpenFlowは以下の3点で構成されます。
・経路制御「OpenFlowコントローラ」
・データ転送機能「OpenFlowスイッチ」
・コントローラとスイッチがコミュニケーションをするための「OpenFlowプロトコル」
ハードウェアネットワーク機器を必要とせずに、ソフトウェアでスイッチ機能を実装できる点が大きな特徴です。
■動作環境
Tremaは主要Linuxディストリビューションで動作します。
また、動作には「Ruby 2.0.0以上」が必要です。
■導入事例
Tremaは、強力な機能や使いやすさから、国内外の企業/大学/研究機関などの幅広い組織に採用されています。
主な特徴
■OpenFlowプログラミングフレームワーク
Tremaは、Ruby言語用Webアプリケーションフレームワーク「Ruby on Rails」と同様に「プログラミングフレームワーク」を謳っています。Tremaは「OpenFlow版Rails」を目指してOpenFlowプログラミングフレームワークとして設計されています。
開発言語にはRailsと同じくRubyを採用し、HTTPプロトコルの詳細を抽象化した高レベルなAPIが提供されているため、ごく短いコードでOpenFlowコントローラを実装できます。
開発全体をノートPC1台で完結できる数々の開発支援ツールの提供によって、ソフトウェアテストを中心とした反復的で段階的なアジャイル開発を可能にし、生産性を劇的に向上させます。
■コントローラ実行
Tremaでは、コンパイルせずにすぐにコントローラをテストできます。
trema runコマンドにより「コーディング→実行→デバッグ」の開発ループを行えます。
■仮想ネットワーク機能
Tremaの大きな特徴として「仮想ネットワーク機能」があります。
TremaネットワークDSLによりコントローラが実行されるネットワークトポロジを記述できます。ノートPC1台の中に仮想OpenFlowネットワークを作り、そこで開発したコントローラを実行できます。
補足情報
■同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Ryu SDN Framework」「OpenDaylight」など。
■オフィシャルサイト
オフィシャルサイト
ライセンス情報
Tremaのライセンスは「the GNU General Public License version 2.0 or MIT License」です。
詳細について、こちらを参照ください。
→GitHub →trema/trema →License
ダウンロード
参考元サイト
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。