AlphaMail Is Scalable and Accessible Web Mail

AlphaMail is a high-performance, feature-rich, open-source Web mail
system created at the University of Oregon. The interface includes
message snippets in indexes, UTF8 composition and numerous viewers
for attachments (such as image icon preview and file listings from
tarballs). It also tries to strike a balance between desirable features
and too much interface noise. It was created to address several problems
that exist with other open-source and commercial Web mail systems.

Performance

The first concern AlphaMail addresses is performance. Almost all Web mail systems
(such as Horde's IMP Web mail Client and SquirrelMail) use IMAP from
within the Web server, which is incapable of persisting an IMAP session.

The IMAP protocol is designed to optimize access through persistent
access, so this is an inherent and recognized problem. The problem
is usually mitigated with an IMAP proxy that maintains a persistent
connection. The problems with this solution are multifaceted.

One problem is that the code in the Web mail client itself cannot
depend on the state of the IMAP connection and must repeat commands as
if each mouse click were a new IMAP session. This is a problem, because
the sequence of required events for a new session in the IMAP protocol
include authenticating and selecting the desired folder. The benchmarks
of several IMAP servers indicate that the repetition of the folder
selection command, even if the folder is already authenticated and
selected (that is, through a proxy), can cause significant extra server load.

These inefficiencies could be addressed through improvements in the
IMAP server and proxy algorithms, but another problem is intractable:
a proxy cannot improve the protocol. The fact that the Web mail client
is using IMAP forces it to behave as a complete standalone client. If
the developers want to add a complex feature, such as conversation views
(à la Google mail), which requires complex message cross-referencing across
several folders, the protocol itself becomes a major impediment.

AlphaMail solves these problems by including a middleware layer that
uses a simplified and extensible protocol for the Web application and
is responsible for optimizing access to the mail servers. The protocol
supports highly specialized commands that allow the Web code to
ask for the information needed for a page directly, without having to make any
assumptions about the state of the IMAP connection.

This has the additional advantage that the IMAP protocol handling in
the middleware layer can be written in a high-performance language (in
this case C++), can cache results and can optimize the interaction. The
middleware program is known as the imap_webcache, because it caches both
data and network connections for the mail interaction.

Accessibility

The next concern was accessibility. Information systems in higher
education, government and many other environments must support access
for everyone. AlphaMail still is actively being tuned for access by
the disabled, but it is already optimized for other access concerns. For
example, site security policies might require or recommend that members
of the community disable browser features that regularly appear in US-CERT
advisories, such as JavaScript. The only Web e-mail I could find that
did not require JavaScript for even basic functionality was SquirrelMail,
and it was deemed too risky from a performance standpoint.

AlphaMail includes JavaScript enhancements, but those enhancements
have traditional CGI alternatives that become active if JavaScript is
disabled on the browser. All critical functions of the system will work
with any browser, independent of capabilities and settings.

Installation

AlphaMail supports GNU autoconf and has been built cleanly on many
Linux variants, FreeBSD, Solaris and Darwin (OS X). The easiest platform
to install is Fedora Core 5 via yum(1), as described on the AlphaMail
home page.

I highly recommend using Fedora Core 5 on a test machine to avoid the
headaches of dependency resolution for your initial trial run. The actual
build is pretty much what you'd expect, but solving runtime dependencies
can be challenging.

If you decide on a source build, first you need to install the
Boost C++ libraries (see Resources).

Installing Boost

You need the Boost Jam utility (usually named bjam) as well as
version 1.33 or better of the Boost C++ libraries. Jam is sort of a
combination between GNU autoconf and make. Follow the instructions from
the Boost Web site for details, but essentially, extract the files
and run:

# bjam install

In rare circumstances, you may want to pass options (such as an
installation prefix). See the Getting Started guide on the Boost Web
site if you have special needs.

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.