====== Aloneとは ====== Aloneは、オブジェクト指向スクリプト言語Rubyを使って実装されたアプリケーションフレームワークです。CPUやメモリなどのリソースの制約が厳しい組込機器を主要なターゲットし、そのような環境でも実用上十分なパフォーマンスが得られることを意識して開発されています。このため、 Ruby on Railsなど既存のフレームワークを使用することが難しかったシステムでも利用できます。 また、外部のライブラリにできるだけ依存せず単体で実行できることも重要な開発目標としています。原則としてアプリケーションを構成するファイルとAlone関連のファイルをサーバにコピーしさえすればアプリケーションを実行可能です。既存のRuby用のフレームワークのように、多くのライブラリの導入が必要だったりサーバで特殊な設定が必要だったりすることがありません。「Alone」という名称も、外部ライブラリに依存せずアプリケーションとAlone関連ライブラリのみ、スタンドアローンで実行できるところに由来しています。 Aloneを利用することで、Ruby自体のコーディングのしやすさとも相まって、小型機器や小規模プロジェクト向けのアプリケーション開発を効率的に行うことができます。 ====== Aloneの特徴 ====== ===== 導入および利用環境の構築が容易 ===== Rubyがインストールされている環境であれば、原則としてアプリケーションを構成するファイル群をコピーするだけで利用可能です。大量の依存ライブラリをインストールする必要がなく、またCGIで動作しますので、安価なレンタルサーバでもRubyがインストールされていれば利用できます。 ===== 低スペックの機器でも実用的な速度で動作 ===== 組込機器などリソースの制約が厳しい環境でも実用的な速度で動作することを目標として開発されています。具体的には、以下の環境を想定しています。 ^ CPU | ARM9 | ^ クロック | 400MHz | ^ メモリ | 128MB | ^ OS | 組込Linux | 128MBのメモリを搭載したARM9ワンボードコンピュータ\\ {{:overview:arm9-board.jpg?nolink|}} ===== 簡素な構造で拡張が容易 ===== 各機能はモジュール化されており、開発者は必要な機能のみを選択して利用できます。これにより、必要最小限の機能のみを利用するようプログラムを作成して起動時間の短縮やメモリを節約を図ることができます。また、標準の機能で不足する場合はその部分を独自に準備したものに差し替えることもできます。 ===== 小さな学習コスト ===== 構造の簡素化により、学習にかかるコストを小さくすることを目標としています。また、ソースコードを見れば、フレームワーク固有のルールを熟知していなくても何が記述されているのか把握できるよう、ルールの設定による過度の記述の省略を行わないよう配慮しています。 ====== Aloneの適用領域 ====== 組み込み機器が主要なターゲットですが、普通のサーバアプリケーションにももちろん利用可能です。 主な使用例を以下に示します。 * PC・携帯電話向けのwebアプリケーション開発用 * ネットワーク機器(ルータ、高性能スイッチ等) * ウェブカメラ * コピー、FAX 複合機 * ネットワーク対応家電(ハードディスクレコーダ、多機能TV 等) * 計測装置 依存ライブラリが少なく原則としてファイル群をコピーするだけで動作しますので、シェル操作が解放されておらずftpによるCGIスクリプトの転送のみが可能なサーバでも利用可能です。メモリ使用量も少ないので、専用サーバを用意するほどの予算が確保できない案件でも利用可能です。