IMAP proxy mechanism and CASified IMAP servers

Mark McLaren mark.mclaren at gmail.com
Mon Jul 3 11:44:04 EDT 2006


I have been working on integrating webmail with our uPortal instance.
We plan to use a PHP web client and PAM CAS.   To display recent email
inside the portal I am implementing a recent email servlet against our
IMAP server like Yale's RecentEmail channel.

For the PHP webmail client we intend to install IMAPProxy to allow
IMAP connection pooling.  This means the PHP webmail client will have
to be configured to attempt to re-use CAS proxy tickets.

The PHP webmail/IMAP proxy configuration is pretty much decided but
for the servlet I was thinking it would also be a good idea to attempt
to re-use IMAP connections.  I can see two ways to do this.

# Method One

Use IMAPProxy server software and allow the servlet to access cached
CAS proxy tickets.  I was thinking of using WhirlyCache (or something
similar) to cache the proxy tickets in memory.  The main advantage of
this is that it is easy to implement.  However, it will heavily depend
on the IMAPProxy.  It may also result in extra unnecessary load on the
IMAP server due multiple connection attempts made due to stale CAS
proxy ticket credentials.

# Method Two

Use WhirlyCache again but this time bypass IMAPProxy and actually
cache IMAPStore objects in memory.  In this technique the Java code is
acting as the IMAP proxy.  Storing IMAPStore objects is likely to
require more memory resources but I am hoping it will remove the need
for the attempt, fail and retry sequence of events.

I am hoping including some kind of IMAP proxy will improve
performance, reduce the overall load the IMAP server and scale to
support 20,000+ users.  Does anybody have any experience,
recommendations or thoughts about this?

Mark


More information about the cas mailing list