MAPI/ HTTP is slowly replacing RPC/ HTTP. Office 365 has already implemented it and Outlook 2016 use this protocol by default.
The questions we explored at GSX were: does MAPI impact the end-user performance? How does it change the network’s consumption? Will you have performance tickets when switching from one protocol to another?
To best answer these questions, we decided to employ our Robot Users, with different network configurations and the two protocols. Through this article, we will divulge our findings.
MAPI over HTTP: Features and Benefits
What is MAPI? MAPI stands for Messaging Application Programming Interface. If we had to describe it simply, it is just a way for a program to call functions on a messaging server.
MAPI has been around for a while. In 1991, MAPI 0 was available for MS Mail. At that time, the API was not yet officially called MAPI. First formal release of MAPI was in 1992.
Initially, it was designed just to let a local mail client running on Windows talk to a mail server running on Windows as well in the same network.
With the first MAPI, the problem was that it was designed to be used exclusively on your network, and it was created even before the current Internet existed. It just defined a series of remote procedure calls (RPC) that are also very old and did not address any security concerns. These problems made it particularly unsafe to make it available on the Internet.
Before the most recent release of MAPI, we used RPC over HTTP:
It was still MAPI, just first wrapped with RPC and then wrapped with HTTP, resulting in what we know as “Outlook Anywhere”.
Now we can understand the kind of complexity and number of calls that happen here.
First it is double wrapped and requires multiple connections; 2 long-lived TCP connections for each session between the outlook client and Exchange (Server or Online).
If we switch now on MAPI over HTTP:
We can see that the 2 long-lived TCP connections between the client and Exchange are now longer requested. The new MAPI/HTTP protocol generates a maximum of 2 current connections during this one TCP connection.
It becomes easier to manage this protocol because it is now single wrapped.
This also decouples the client-server session from the underlying network. When the network connection is lost, the session itself is not reset for 15 minutes or so, and the client can simply reconnect.
The scalability on the server side was also improved, because reestablishing a lot of these RPC over HTTP connections could strain the resources on the mailbox server at the time. Moreover, the configuration was very complex when you needed to setup RPC on 10 or 20 different servers. All this extra work was eliminated.
Tips and tricks
How can you find out if a client is using RPC or MAPI?
It is very easy to do this. Simply CTRL-right click on the Outlook icon:
Then you can see the connection status:
Microsoft has added a protocol column where you can see if you’re currently using RPC/HTTP or MAPI/HTTP (it would show HTTP).
This feature is only in Outlook 2013 and 2016.
What version of Outlook can do MAPI?
All versions starting from Outlook 2010, but it is necessary to have the right updates: service pack 2 and 10 cumulative update that you need to apply manually.
If you’re on Outlook 2013, you just need the service pack one and Outlook 2016 will do MAPI/ HTTP by default.
Exchange 2019 is really planned to ship without RPC.
So let’s go now to our experiment and their results in determining which of these protocol is faster.