|
Aeromys is an advanced webmail application server designed for flexibility,
scalability, and speed. Its unique architecture allows for easy integration
with existing environments, while still maintaining all the benefits of the
standard stand-alone webmail client. There are three parts that make up what
is globally called "Aeromys." They are front-ends, APIs, and the webmail
daemon (webmaild).
- Front-ends:
A front end uses an API to create the user interface for the webmail
application. Aeromys comes standard with a PHP front-end, using the PHP
API. However, it is easy to create new front-ends. There is very little
processing or data manipulation that happens in the front-end. It
essentially just fetches data from the API and displays it to the user. In
this way, PHP is essentially used as a templating engine to display
information. It is easy to take an existing API and create ones own
front-end or integrate it into an existing infrastructure. This part of
Aeromys' architecture is what allows for great flexibility.
- APIs:
The APIs are the glue that hold the front-ends and webmaild together. They
allow for easy creation of front-ends. These APIs are implementations of
the ASMP (Aeromys Simplified Mail Protocol). They provide functions that
the front-ends can call to access information from the webmail daemon
through the ASMP. Aeromys comes standard with a PHP API, but it should be
very easy to implement them in other languages as well. ASMP is well
documented.
- webmaild:
The webmail daemon is where most of the work happens for Aeromys. This is
a process that is constantly running in the background of the server. On
one side, it communicates with the mail servers and caches and processes
mail data and on the other side, it speaks the ASMP which provides an
interface to this data to the APIs. The webmail daemon is where the
intelligence is built into Aeromys. Since it is always running in the
background, it is able to be hard at work on data processing while the user
is reading email, between user page requests. This is what gives Aeromys
its incredible speed. Its efficient management of cached data, by
maintaining a sliding window of current information for each user, is what
allows for scalability. The amount of cached allocated per user is also
configurable so on smaller installations, a larger cache can be maintained.
Here is a diagram that explains the relationships between these three parts
of Aeromys.
(click for larger image)
The following diagram shows the relationships between the different
entities in an actual installation of Aeromys using the PHP front-end.
This diagram goes into more detail of the inner workings of the webmail
daemon and shows how information is requested by the user, processed
by webmaild, and presented by Apache and PHP.
(click for larger image)
Development of Aeromys is progressing in iterative steps. Not all of the
functionality mentioned above has actually been implemented yet. This
document explains what Aeromys will look like at version 1.0 which will
hopefully be released during the summer of 2005. For more details on this,
check out our implementation roadmap.
|