I had the idea for Aeromys several years ago when I was thinking
about how PHP was essentially an inappropriate technology for
writing a web application. I like to make the distinction between
a web site, and a web application. A web site is what you are
looking at right now, it displays information and can be navigated.
It is by nature in page-form. However, an application is different.
It takes much more processing and more overhead. This is the
problem I saw with most web applications written in PHP. They were
slow, not because of a flaw in their design or poor implementation,
but simply because of the nature of HTTP and PHP.
As I got to thinking about it, I realized that the application
server model is much more appropriate. Application servers have
been in use for quite a while, they are not a new or novel concept.
However, as I'll show later, some of the things I'm trying to do
with Aeromys are new to the webmail domain, and are pretty
Another inherent problem with using PHP for web applications is
that there is a lot of down time. PHP can only run after a user
has requested a page. That is, Apache will spawn the PHP process,
parse the PHP script, and execute it. All this time, the user is
waiting on the other end. Delays of even a second are noticed.
In a webmail application, these kind of delays are common because
the PHP process must connect out to the IMAP server, which takes
Enter Aeromys. Aeromys has a webmail daemon (webmaild) that is
constantly running in the background. This daemon keeps track of
the users who have logged into the system and keeps their IMAP
connections alive between page loads. Also, while the user is
reading his or her email, this daemon takes advantage of the down
time and pre-fetches information that it thinks will be requested
for the next page load. This is what I call "predictive caching."
When the user makes the next page request, hopefully the information
required for building that page will have already been cached
and can be displayed instantly.
This semester (Spring 2005), I am working on Aeromys as an
independant study project under Dr. Peter Wurman at North Carolina
State University in Raleigh, NC. It is my hope to continue this
work on through as my masters thesis and possibly a doctoral
dissertation. So I have a personal vested interest in this project.