BT

Akshell :サーバサイドJavaScriptとオンラインIDEにより実現したRADクラウドサービス

| 作者: Dio Synodinos フォローする 3 人のフォロワー , 翻訳者 馬場 彩子 フォローする 0 人のフォロワー 投稿日 2010年5月27日. 推定読書時間: 5 分 |

原文(投稿日:2010/05/19)へのリンク

Akshell はRAD(Rapid Application Develpmenet)が可能なクラウドサービスであり、オンライン IDEとサーバーサイドJavaScript実行環境を提供する。またクラウドホスティングサービス機能も備えており、アプリケーション配備を非常に簡単に行うことができる。Akshellのクリエータは、Akshellは “ウェブアプリケーションネットワークであると説明する。

Akshell コアは Google V8 JavaScript エンジンでアプリケーションを実行する。Google V8 JavaScriptエンジンは JavaScriptのコードをネイティブコードにコンパイルすることにより、パフォーマンスを実現している。Akshellは次のような仕組みでリクエストをハンドリングする。Akshell コアが アプリケーションのmain.jsファイルを評価し、リクエストオブジェクトをエクスポートされたapp() 関数に渡し、実行するのである。このアーキテクチャはJSGI 規格に準拠する。

Akshell環境の基本ユニットは「アプリケーション」である。アプリケーションはそれぞれ一意の名前を持ち、appName.akshell.com ドメインより提供される。Akshell ユーザなら誰でもがアプリケーションを作成することができるが、 現状はフリーの非商業アプリケーションに制限されており、コードはBSD ライセンスで公開しなければならない。

InfoQ は AkshellのクリエータであるAnton Korenyushkinに短いインタビューを実施した。

InfoQ: Akshellを作ろうとした動機を教えてください。またAkshellは開発者をどのように助けるでしょうか。

Anton: 開発者が他のウェブアプリケーション開発に共通のいろいろな雑事にとらわれることなく、タスクに集中できるようにしたい、ということが一番の動機です。システムプログラミングからきた私にとって、ウェブの開発は"原始的" に見えました。 少し凝ったサイトを作ろうとした場合、サイトの目的と全く関係ない技術を山ほど学ばなければいけません。 車輪はなんどもなんども再発明されます。そしてこの地獄の後、さらにこのサーバを運用管理しなければならないのです。

Akshell は、このような状況を変えたい、という私の努力の結晶です。Akshellの哲学はUNIXのそれに由来します: それぞれのプログラムはただひとつのことを、十分実行しなければならない、というものです。

InfoQ: Akshellで開発したアプリケーションの構造の概要を教えてください。メインコンポーネントは何になるのでしょうか。

Anton: Akshell のアプリケーションはそのメインタスクのみ実行すべきです。 付随するタスクは他のアプリケーションで扱うべきで、 これらのタスクはAkshellにより相互に作用できます。それぞれのアプリケーションはライブラリ、つまり他のアプリケーションとコードを共有することができます。Akshell の基本ライブラリは、 名前はakといいますが、Model-View-Controller フレームワークを提供します。このフレームワークを用いて構築されたアプリケーションは3つの主要コンポーネントを持ちます: データベース、モデル、HTML テンプレート (テンプレートはDjangoからポートしました)。そして、JavaScriptのコードがリクエストをハンドリングします。

基本ライブラリの利用は必須ではありません。誰でも代わりのフレームワークを作成することができます。Akshell はJSGI規格に準拠しています。そのため、 すでにあるフレームワークをAkshellにポートすることも可能です。

InfoQ: 永続化はどのように実現しているでしょうか。

Anton: それぞれのアプリケーションはファイルストレージとデータベースへアクセスすることができます。ファイルストレージは一般的なものと変わりありません。データベースへはオブジェクト指向 APIを使用してアクセスすることができます。 またクエリー言語も利用できます。これはJavaScriptに埋め込めるように特別に設計されたもので、SQLと同じくらい強力で、しかもはるかに簡単に使用できます。バックエンドでデータベースはPostgresを使用しています。そのため堅牢です。

InfoQ: Akshellを使用するチームにとって、適切な開発プロセスとツールは何でしょうか。SVNやGit などのソース管理・プロジェクト管理ソフトウェアやサービスは実装されていますか。

Anton: アプリケーション管理者は、開発者を協力者として招待することができます。 Akshell はアクセス権限をハンドリングします。 現状ではSCM機能はサポートしていませんが、gitとGitHubを実装しようと思っています。 ローカルのファイルとAkshellを同期するために、好みのSCM システムを利用してください。 Akshell ツール も利用可能です。 

 InfoQ: サーバサイドJavaScriptはこの数年でメインストリームになると思いますか。CommonJSについてどのように考えますか。

 Anton: 私はJavaScriptはサーバサイドで広く利用されるようになると信じています。なぜなら:

  1. 全てのウェブ開発者がJavaScriptを習得しています。
  2. JavaScriptのインタープリタは今でも高速で、どんどん速くなってきています。
  3. 他の複雑な基本ライブラリを持つ言語より、サンドボックス環境での運用に適しています。私は未来はPaaSになると思っています。
  4. それにとってもいい言語です。JavaScript、大好き:)

CommonJS は非常に有用な試みです。成功するものと願っています。しかし設計するには、BDFLのような人の力が必要ですが、JavaScriptコミュニティにこのような独裁者が出現するのは好まれないでしょう。

InfoQ: オンラインIDEの時代が来ると思いますか。 Bespinを利用しようとは思いませんでしたか。

Anton: 私は運用管理の作業がとにかく嫌いです。だから、IDEを含むプログラミング作業のほとんどオンラインになってほしいと思っていますし、そう信じています。 Bespinは候補に上げましたが、EditAreaを選択しました。

InfoQ: 今後の予定を教えてください。

Anton: まず、UIを改良し、エディタのタブ、入力評価機能やコンソール機能を追加しようと思います。これらを全てひとつのページで実現できたら、より簡単に開発できるようになるでしょう。 その後、GitHubをAkshellに実装したいです。

詳細はオンラインドキュメントサンプルアプリケーションで確認できる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT