(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
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".