Beesnest - Personal Application Server

Home Documents Downloads/Code About Contact Me

(kind of a) Frequentlly Asked Questions

So what is exactly Beesnest?

Beesnest is basically a test of concept. I am experimenting to see if next to the big, full featured application servers like JBoss, Tomcat and Zope, there is still a place for the little guy. The idea is that if someone at home, or in a small business, needs to run some application(s) using a web-browser as the GUI (or client), he might not want to install and maintain a full featured application server. He can, instead, use a small software (hopefully under 1MB), that is very easy to maintain - this is Beesnest. Moreover, in the future, I see every computer in the world running a small application server, and most of the applications, will be web applications. With a good application server one can port virtually every application to use a web browser as it's GUI.

What do you mean by application server?

Application server is not a well defined term, but basically it is a server that can host almost regular applications, and not just web pages. There are many features to an application server. Beesnest is going to deal mainly with the problem of "keeping the state", between requests for different pages. You can do it from Apache and IIS, but it is very hard. All of the "big" applications servers do it though, but I can't see Tomcat or Django installed on every home or small business computer. We need something more simple.

So how Beesnest is going to handle this problem?

Beesnest is an HTTP server that keeps objects for the user. While a user logs in he gets a private container. He can create as many objects he wants, use them, and store them for later use. The objects will wait for this user, until he logs out. In addition, some objects have locking mechanism, if one user uses this kind of object, no other user can get it. The rest of the objects, everybody can use at once.

You need some scripting language as well, don't you?

Yes, Beesnest is able to work with more then one language (even on the same page). Moreover different pieces of script for different languages are able to transfer data from one to the other. Every script engine is loaded from a dynamically linked library, and the user decides which engines to load.

Maybe the most advance feature of Beesnest is that a script engine can be stored when the processing of a page is done. When processing the next page, for the same user, the script will continue from the place the last script ends. Everything that exist on the previous page, will still be there!

One of these engines will be a new simple language, for HTML rendering, I'm going to develop (called BZB). This will be a very simple script - no functions, everything is a string.

What about the implementation?

Beesnest is written in C++, the "objects" (and script engines), are loaded from dynamic linked libraries (DLLs for Windows). At first these will have to be C++ class as well (the term of an "object" is Adapter, from an historic reason). I'm developing Beesnest on Windows, but will port it to Linux and hopefully many other platforms.

When do you think that Beesnest will be out and running?

The base of Beesnest V1.0 is done. I already have ideas for the next version, but all the interfaces with libraries are fixed, and Beesnest is able to run applications. Next I will have to build scripts engines and adapters, and there is much more to add and improve.

What about the name?

A friend of mine came with it. Every user can come and go at will, but will have little cell saved for him. OR, Beesnest hosts all the web applications that runs on your computer, in one "nest".

Home Documents Downloads/Code About Contact Me