ErbixはJavaScriptでアプリケーションを構築し、配置するためのクラウドプラトフォームだ。RinjoJS、CommonJSモジュール、PostgreSQLをサポートする、オンデマンドでスケーラブルなホスティング環境だ。
また最近、JavaScriptアプリのマーケットプレイスも用意された。このマーケットプレイスには現在、チュートリアルとふたつの完全にJavaScriptで書かれたアプリケーションがある。
InfoQはErbixチームのMihai Roman氏にいくつかの質問をした。
InfoQ:Erbixのセットアップ方法やアプリケーションの構築方法のアーキテクチャについて簡単に説明してください。
Erbixが提供するのは、サーバサイドJavaScriptアプリの作成、インストール、ホスティングができるアカウントです。ユーザはサインアップするか、OpenIDを使ってログインすれば利用できます。
アカウントはすべて分離されています。リソースを直接共有することはできません。それぞれのアカウントは次のリソースが使えます。
- 仮想ファイルシステム(JavaScriptコードと画像のような静的リソースを保存するため)
- 専用のPostgreSQL(アプリケーションのデータを保持するため)
- サイト一覧。URLのプレフィックスパスとJSのエントリポイント関数(エントリポイントとしてCommonJS JSGI 0.3標準を利用)のマッピングを記述する
リクエストは常に特定のURLに対して行われ、そのURLにマップされているモジュールがロードされてJSGIエントリポイントの関数が呼び出されます。他のJavaScriptのモジュールはCommonJS Module 1.0の仕様にしたがってロードできます。
アプリケーションフォルダにパックされているモジュールファイルもあります。CommonJSパッケージ1.0の仕様に従うファイル(application.json)をこのフォルダに追加することで、Erbixのマーケットに出品したり、ファイルを共有したりすることもできます。
マーケットプレイスのアプリケーションはふたつの方法でインストールできます(出品者は両方の方法を利用することも、どちらかひとつを利用することもできます)。
- ファイルをアカウントにコピーする
- マーケットプレイスのアプリケーションを直接実行する
この方法ならユーザは(JavaScriptの)コーディングなしてインストールをしてマーケットプレイスからすぐにアプリを実行できる。これらのアプリで生成したデータはそのアカウントのPostgreSQLデータベースに保存されます。
InfoQ: Node.jsやAkshellのような他のJavaScriptプラットフォームと比べてErbixはどうでしょうか。
ErbixはRingo JavaScriptエンジンを基礎にしています。よく考えてこのエンジンを選びました。簡単に言えば、RingoJSはMozilla Rhino JavaScriptインタプリンタの素晴らしいラッパーです。Node.JSはRingoJSの代わりになるものです。
技術的には、ErbixはCommonJSに準拠したサーバサイドJavaScriptホスティングプラットフォームです。ベンダにロックインされませんし、アプリを他へ移植するのもほとんど手間がかかりません。ユーザは非公開でRingoJSにアプリをホストすることもできますし、他のJavaScriptプラットフォームへも公開できます。
AkshellやAppJet(現在はJGateによってホストされている)とは違って、Erbixは成熟したアプリケーションを構築するためのツールを提供します。専用のPostgreSQLはSQLコンソールからアクセスできますし、プログラムからSQLを使ってもアクセスできます。これはErbixだけの特徴です。
InfoQ: Erbixを利用する場合の典型的な、開発、デバッグ、テスト、配置、監視のワークフローはどうなるでしょうか。
オンラインエディタやアップロード機能を使って簡単にファイルやフォルダを作ることができます。フォルダは.zipや.tar.gzアーカイブの形式でアップロード/ダウンロードができます。これからソースコードのバージョン管理の仕組もサポートする予定です。ユーザはオンラインでErbix.comを使ってアプリを作成する方法と好きなIDEを使って作成する方法のどちらかを選べます。
アプリケーションの配置は、URLのプレフィックスをJSGIのエントリポイント関数にマップすることで簡単に行えます。
デバッグや監視には単体テストやロギングのモジュールが利用できます。今、これらのモジュールや機能を改善中です。
InfoQ: Erbixに適した使い方はどんなものですか。
Erbixは小さなビジネスのためのアプリケーションを作成しインストールするのには素晴らしい環境です。Erbixは開発者にも顧客にも友好的です。開発者には素晴らしいアプリケーションを作成する素晴らしい高生産性のツール(マーケットプレイス、JSホスティング、ブラウザエディタ)を提供します。顧客にはマーケットプレイスから簡単にアプリケーションをインストールし、自分自身のデータを自分のPostgreSQLに保存することができます。
サーバサイドJavaScriptの現状を考えると、ErbixはサーバサイドJavaScriptアプリの普及と共有のための最良のソリューションだと思います。
InfoQ: このサービスの現状とこれからのロードマップを教えてください。
現在はオープンベータテストの最中です。OpenIDを使ってだれでもログインしてサービスを試すことができます。www.erbix.com自体もErbixアプリでできています。オンラインエディタだけを使ってふたつのアプリケーションを構築しました。次のメジャーリリースでベータ版を卒業したいと思っています。
また、さまざまな改善も行っています。
- ドキュメント
- ユーザビリティ(技術者でなくても直感的にわかるようにする)
- カスタムドメイン名のUIサポート
- 動的リソース拡張の改善(トラフィックのピークの処理)
- 監視/統計
また、開発チームはすぐに使えるアプリを作成する予定です。これをマーケットプレイスに公開して誰もが簡単に利用したりカスタマイズできるようにします。
Erbixは先月現れたJavaScriptのクラウドホスティングプラットフォームのひとつである。他にはAkshellのようなサービスもある。Akshellは以前InfoQで紹介した。
さらなる情報はここInfoQのJavaScript、Node.js、CommonJSで見ることができる。