Getting a Grip on a Unique Domino/Exchange Coexistence FunctionalityAugust 11, 2011
There is no question; the requirements for seamlessmessaging and calendaring coexistence between Lotus Domino and Microsoft Exchange have kept pace with technology advancements. It seems that only yesterday users were satisfied with the ability to send simple emails and basic calendar invitations back and forth, and then, all of the sudden, virtually in a blink of an eye, it's all about full transparency. Users insist on perfect functionality of ALL calendar entries, complete and continuous synchronization of ALL directory entries (that's right, don't forget about Groups and Members!), instantaneous and accurate free/busy lookup, and uninterrupted workflow of mail-enabled applications with their custom emails, forms, and approval buttons. The scale of demands can only be matched by the creativity and ingenuity of the product creators with whom I have the privilege to work with everyday.
To experience what ourcustomers live through on a daily basis, Binary Tree runs a mixed Domino/Exchange environment (even better, a hybrid on-premises/Office 365 Exchange environment, but more details about it later). So, we’re certainly familiar with the most annoying limitations of coexistence between these complex and significantly different environments. One limitation that really had us pulling our hair out over the years was being able to add Exchange users to existing Domino repeating meetings. For example, imagine that a standing Domino repeating meeting called “Weekly Sales Pipeline Review“ has existed for a while. A new sales person joins the team, so he or she is added to the meeting - what can be simpler, right? Actually, if the new Sales person is using Exchange for mail and calendaring, it’s not simple at all. It so happens that when you add a participant to an existing repeating meeting in Domino, the new invitee just receives a series of dates instead of a recurrence pattern like "every week on Mondays". Notes can handle these pattern-less invitations, but Outlook cannot - it wants to know the original pattern.
So, how does one get a grip on such a situation?
Ah, funny we mentioned the word “grip”. Grip becomes the key to solving this problem, except it's GRIP (Get Recurring Invitation Pattern). When our product architects decided to tackle this important, yet extremely complex requirement, they invented the GRIP system. GRIP is a kind of traffic cop that monitors the calendar flow from Domino to Exchange and picks out these"unpatterned" invitations. It checks a special database - BTCache - to see if the user saw the meeting already (by the unique value in Domino called ApptUNID). If no record exists, the system sets the calendar item aside and sends the inquiry to the only place where the original recurrence pattern is guaranteed to exist: the calendar of the meeting Chairperson - the user that just added a new invitee to the meeting. But, this user’s calendar may reside on any one of the Domino Servers, so getting to the original invitation is not easy, and certainly not fast. The GRIP system is designed to be highly distributed and very patient. It can reach into the furthest areas of the Domino environment and wait for the response with the right recurrence information. Once the right information is received, it is stored in that special database mentioned above - BTCache - and used to properly format the invitation to the Exchange user. Fortunately, the next time an Exchange user is added to the same meeting, there won't be the need to perform this extensive search - BTCache has already been updated.
So you may be asking yourself, “Why such complexity? Why not just try to figure out the pattern from the series of dates supplied in the invitation, after all, isn't the software smart enough?” Oh yes, it's plenty smart, and it can certainly figure out a pattern from a series of dates, unless some of the dates have been changed. For example, let’s say some Monday meetings were cancelled and some were moved to Tuesdays. All of the sudden, it's not a very simple task at all, is it? We’ve seen other solutions that attempt this seemingly simpler and faster route fail miserably when a regular daily meeting scheduled for Monday through Friday at 9am is rescheduled on Wednesday at 10am. Instead of calendar entries at 9am on Monday, Tuesday, Thursday, and Friday, and at 10am on Wednesday, the added Exchange user totally loses the entries on Monday and Tuesday, and the Wednesday's entry, although at the right time, isn’t even part of the repeating meeting anymore. Believe it or not, there is actually an explanation for why this happens, but I certainly wouldn't want to be the one explaining it to a user. The conclusion is simple: if you want to want your Domino and Exchange coexistence to be fully functional, make sure that you have a proper grip. Sorry, I meant GRIP :-)