BT

Akshell: A RAD Cloud Service based on server-side JavaScript and an Online IDE

by Dio Synodinos on May 19, 2010 |

Akshell is a Cloud Service that helps developers do Rapid Application Development using server-side JavaScript and an online IDE. It also provides Cloud hosting, so deployment is instant. Its creator describes it as a “web application network”.

The Akshell core executes applications via the Google V8 JavaScript engine which compiles JavaScript code into the native code for improved performance. To handle a request the Akshell core evaluates the main.js file of an application and runs the app() function exported by it, passing a request object to the function. This architecture conforms to the JSGI specification.

Application is the basic unit of the Akshell environment. Each application has a unique name and serves from the appName.akshell.com domain. Every Akshell user can create applications, but currently only the creation of free non-commercial applications is available and code of such applications must be provided under the terms of the BSD License.

InfoQ has a small Q&A with Anton Korenyushkin, creator of Akshell.

InfoQ: What are your motivations for building Akshell and how does it empower What are your motivations for building Akshell and how does it empower developers?

Anton: The key motivation is to enable developers concentrate on a task, not on the stuff common to all web applications. Web development seemed "wild" to me when I come to it from system programming. To write any nontrivial site, one have to know dozen of technologies non-related to the site's main purpose at all. The wheel is reinvented again and again. And after this hell one also have to administrate a server.

Akshell is my effort to change things; its philosophy is borrowed from UNIX: each program should do one thing well.

InfoQ: Would you like to give us an architectural overview of an application built with Akshell? What would be its main components?

Anton: Akshell application should only perform its main task; auxiliary tasks should be handled by other applications. Means of interaction between them are supplied by Akshell. Each application can be a library, i.e., share its code with others. The basic Akshell library, named ak, provides a Model-View-Controller framework. Applications built with this framework have three main components: database model, HTML templates (they were ported from Django), and JavaScript code, handling requests.

The basic library is optional; anybody can create an alternative framework. Akshell conforms to the JSGI specification; so it may be possible to port some existing frameworks to it.

InfoQ: How do you handle persistence?

Anton: Each application has an access to a file storage and a relational database. The former is rather common. Database access is provided via the object-oriented API and the query language specially designed for embedding into JavaScript. It's as powerful as SQL, but much more easy to use. The database is backed by Postgres; so it's rock solid.

InfoQ: What would be the development process and tools for a team to use Akshell? Is there integration with any source control or project management software or service (e.g. SVN, Git, etc.)?

Anton: An application admin can invite developers to collaborate; Akshell handles their access rights. Currently there is not SCM support, but I plan to integrate git and GitHub. Now a team can use any SCM system and the Akshell tool for synchronizing local files with Akshell. 

 InfoQ: Do you believe that server-side JavaScript will become mainstream in the following years? What are your thoughts about CommonJS?

 Anton: I do believe that JavaScript will become popular on server side because:

  1. Every web developer knows it.
  2. Its interpreters are really fast and become faster.
  3. It suites sandboxed environments better than languages with complex standard libraries; I think Platforms as a Service are the future.
  4. It's a very good language; I love it :)

CommonJS is an extremely useful effort; I hope it will be successful. But may be designing such thing requires a kind of BDFL, who is unlikely to emerge in the JavaScript community.

InfoQ: Do you believe that online IDEs are the way of the future? Did you consider using Bespin?

Anton: I hate any kind of administration; so I hope and believe that the majority of programs will go online, including IDEs. I considered Bespin, but chose EditArea.

InfoQ: What are your future steps and directions?

Anton: I'm going to improve the UI: enable tabs in the editor, add evaluation input and console below it. Having all these things on one page should make development process easier. And I plan to integrate GitHub to Akshell.

For more information you can visit the online documentation or check out the example applications.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

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

Email me replies to any of my messages in this thread
Community comments

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

Email me replies to any of my messages in this thread

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

Email me replies to any of my messages in this thread

Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT