Saturday, 24 March 2007

Confused About MAPI/RPC, the "Outlook-Exchange Transport Protocol"?

As David and I wrote earlier, Microsoft is now licensing the Outlook-Exchange Transport Protocol. I'm seeing a few people out there confuse this with MAPI. It's not, it's actually something related but different.

You see, MAPI isn't a protocol, it's an API. A protocol is "bits on the wire". An API is a programmatic interface (e.g. the calls implemented by a DLL or shared library).

The protocol is often known as MAPI/RPC (i.e. a remote-procedure-call encapsulation of MAPI -- although it's not as simple as that). Microsoft now has an official name for MAPI/RPC and now are licensing it.

Vendors using MAPI/RPC include:

  • PostPath reverse-engineered it to create a Linux-based Exchange replacement
  • Cemaphore licensed it to create a disaster recovery product

In OpenMail and Samsung Contact, we developed a MAPI service provider -- what some people call an "Outlook plugin". This basically translates the API calls made by Outlook into some other API (e.g. OpenMail's UAL or some standard like IMAP). OK, that's an over-simplification, but let's ignore that for now. Scalix continues with this OpenMail-inherited architecture, albeit much-enhanced.

Other vendors created an ugly hack that synchronized its server mail store with an Outlook personal store (PST) file. They'd run a task that would try to keep track of changes in one store and reflect them in the other. (Emphasis on the try, 'cos it didn't always work terrifically well ;-)

No comments:

Post a Comment