
Many users in our Lotus Domino environment use Domino Web Access (a.k.a DWA, a.k.a. iNotes) to access their mail utilizing a web browser. Since our users are spread throughout the European continent, they want to be able to easily access their mail without having to remember a long geographically-specific URL.
The Lotus Sandbox has a solution for this; the MailJump database can be hosted on a central Domino server and be made accessible to all users. As soon as they log on to a form in the MailJump database, it queries the directory and redirects the browser to the user's home Domino server. The MailJump database works well, but for it to be highly available, it would have to be fronted by a load balancer or by the Domino Internet Connection Service. Furthermore, when MailJump redirects a user to an unreacheable home server, nothing much is gained.
Enter jump.cgi.
Our experience has shown that an Apache web server is more resilient and has higher availability and uptime than most Domino HTTP tasks. This may of course be due to our environment or to misconfiguration (YMMV), but that was the motivation to create a mailjump-type interface on an Open Source platform.
This CGI program is hosted on a central Apache server, and it is invoked with a simple user identifier (shortname in Domino-speak), whereby an email address or common name would also be possible as long as either are unique. jump.cgi queries the corporate LDAP directory for the user, and retrieves the attribute types for the home and replica server for the user. If at any time an error occurs, jump.cgi issues an HTML diagnostic informing the user of the problem and then quits.
If all is well, jump.cgi silently attempts to connect to the home server via HTTP to check if the server is available. If that is not possible because the HTTP task of the Domino server is down, it turns to the replica server(s) in turn checking those in the same way. As soon as a connection is succesfull, jump.cgi constructs a URI to the live server and redirects the browser to the appropriate server for the user, whereupon the user is greeted by Domino.
Information on the location of the user's mail file(s) is retrieved from an LDAP directory which is fed by a a program which gathers its data from Lotus' cldbdir.nsf. In our environment jump.cgi checks the availability of the target server by performing a simple TCP connect to it; this has worked well for us for a number of years now. If I had the time to rewrite the program, I'd use libcurl to actually try to retrieve something from the Domino HTTP task, before redirecting the user to it.
A great advantage of jump.cgi is that it can be invoked from any HTML form.
Understanding Women
25-Feb-07
Gone Fishing
24-Feb-07
I'm taking a short break.
As far as I'm concerned, it is a well-deserved one too.
A bit of fresh air, seeing other people, different food, and perhaps the odd bit of exercise.
During my absence, there will be plenty to see here, so stay tuned!
Shutdown Day
22-Feb-07
Can you spend a whole day without using a computer? No cheating allowed; you aren't allowed to use somebody else's computer, a BlackBerry or any other such device.
March 24th is slated to be such a day. An experiment hosted by shutdownday.org, wants to determine whether you can or cannot cope for 24 hours without a computer. Over 10.000 people have said they can, and 1.500 said they cannot. See for yourselves and participate.
I undertake to spend the whole day with the family.
Using LDAP as an Address Book
21-Feb-07
A recurring question is whether a directory based on the Lightweight Directory Access Protocol (LDAP) can be used as an address book. The answer is of course yes, but there are some caveats in doing so.
An LDAP directory is a hierarchical datastore made up of entries that adhere to a schema which defines the attribute types and values allowed in each entry. The schema defines object classes, and each entry must have at least one object class. A ubiquitous object class is the inetOrgPerson class which describes a person and attribute types of that person, such as a postal address (postalAddress), their photograph (jpegPhoto), and their preferred name (displayName). One important attribute type is the person's email address (mail).
Although the mail attribute type is multi-valued (i.e. several distinct email addresses may be stored in it), it is difficult to keep those separate. Suppose a user has a work and a home email address, there is currently no LDAP-enabled mail client I'm aware of that can cleverly utilize those two addresses, presenting the user a choice of work or home when composing a message. The popular programs such as Mozilla's Thunderbird, Apple's Mail.app, Microsoft's Outlook Express or Outlook don't support that because they cannot be configured to do so. Probably the best implementation is on Novell's Evolution, but here again, nothing is perfect, although Evolution at least has write-support on the LDAP directory. More details on client capabilities can be found in an OpenOffice presentation entitled LDAP105: Clients by Adam Tauno Williams.
In spite of the caveats, an LDAP directory might be very useful as an address book. Careful selection of the client capabilities and a bit of thought into the schema design can help make it a good experience.
Don't Bathe With It!
21-Feb-07
BlackBerry addiction can go a bit far: this user dropped her 7290 in a bathtub.
Wallpaper, Gentlemen?
20-Feb-07
Looking for a bit of decent wallpaper to spruce up the background of your computer desktop?

skins.be has everything you need, sorted by name and screen resolution.
I'm not the type for desktop backgrounds, because I can't make up my mind which to use, and I certainly couldn't concentrate on my work having Ms. Jolie looking at me like that all day…

