Hoe werkt push e-mail via Exchange ActiveSync op iPhone en iPod touch?

Als je op de iPhone gebruik wilt maken van push e-mail, dan heb je twee mogelijkheden: MobileMe en Microsoft Exchange. Bij Exchange wordt gebruik gemaakt van ActiveSync. De werking daarvan is niet te beschouwen als echte 'push', maar als een heel lange 'pull'.

Als je op de iPhone gebruik wilt maken van push e-mail, dan kun je behalve via Apple’s iCloud-dienst ook gebruik maken van Microsoft Exchange. Dit is voor bijna iedereen bereikbaar: heb je geen zakelijk Exchange-account via je werk, dan kun je voor weinig geld een Hosted Exchange-abonnement afsluiten. De Exchange-server wordt dan beheerd door een externe partij. Je hebt er geen omkijken naar.

Dit artikel geeft achtergrondinformatie hoe push e-mail via Exchange ActiveSync op de iPhone werkt. Het is wat technischer van insteek dan de meeste andere artikelen die we publiceren. Om gebruik te kunnen maken van Exchange ActiveSync op de iPhone hoef je niet exact te weten hoe het werkt, maar het kan wel handig zijn om te weten als er iets misgaat.

Microsoft Exchange gebruikt het ActiveSync-protocol waarbij HTTP wordt gebruikt voor het transport van de berichten. Een probleem daarbij is, dat HTTP niet is ontworpen om data van een server naar een client (de telefoon) te zenden. De client moet altijd een verzoek indienen en pas dan kan de server een respons geven. Dit botst met het principe van push e-mail, waarbij berichten van de server meteen worden doorgestuurd naar je toestel (push e-mail is uiteraard iets anders dan de push notificaties in apps). Zou je ontvangen e-mailberichten binnen 10 seconden op je iPhone willen hebben, dan zou de client elke 10 seconden een verzoek naar de server moeten sturen. In theorie is dat te doen, maar in de praktijk is het niet haalbaar: je batterij zou erg snel leeg zijn en de server moet steeds binnenkomende verzoeken verwerken.

Exchange ActiveSync

ActiveSync gebruikt daarom een ‘long pull’. Dit houdt in dat er een HTTP-verzoek (PING) naar de server wordt gestuurd. Is er geen nieuwe data, dan geeft de client niet meteen op, maar blijft zo lang mogelijk hangen, wachtend op een antwoord. Komt er in de tussentijd een e-mailbericht binnen, dan wordt deze meteen doorgestuurd naar de telefoon (SYNC). Een voorbeeld: als een server de PING-response 900 seconden kan uitstellen, dan hoeft er maar eenmaal per 900 seconden een verzoek te worden verstuurd. Als er in die periode een nieuw bericht binnenkomt, zal deze meteen worden gesynchroniseerd. Bij netwerken zoals GPRS kost een verbinding die op een respons wacht, zonder daarbij data te verzenden, geen extra batterijduur in vergelijking met een apparaat in normale standby-stand. Door deze aanpak kunnen nieuwe e-mailberichten bijna onmiddellijk op de iPhone binnenkomen zonder dat de batterij verbazend snel leeg is.

Heb je zowel Wi-Fi als een dataverbinding via het mobiele netwerk ingeschakeld, dan zal de iPhone altijd de mobiele dataverbinding gebruiken om nieuwe e-mail te controleren. Dit wordt gedaan omdat 3G minder batterijduur kost dan Wi-Fi. Wordt er echter een nieuw bericht gedetecteerd en staat de iPhone ingeschakeld, dan zal de Wi-Fi-verbinding worden gebruikt om het bericht op te halen. Hier is voor gekozen omdat e-mailberichten vrij groot kunnen zijn en Wi-Fi meestal sneller is dan 3G. In dit geval geldt dus: PING via 3G, SYNC via Wi-Fi.

Staat de iPhone echter in slaapstand, dan wordt toch 3G gebruikt om de berichten op te halen, ook al staat Wi-Fi ingeschakeld. Het idee hierbij is, dat de gebruiker toch niet met de telefoon bezig is. Er is geen haast geboden. De prioriteit komt in dat geval bij de batterijduur te liggen en niet bij de snelheid van het ophalen. Zowel PING als SYNC gebeuren dus via 3G.

Bij de iPod touch is de situatie weer iets anders: daar is wel Wi-Fi maar geen 3G-verbinding aanwezig. De iPod touch is daardoor afhankelijk van de minder energiezuinige Wi-Fi-verbinding, zowel voor het PING-commando als voor het ophalen van de berichten. Om te voorkomen dat de batterij snel leegraakt stopt de iPod touch met het zenden van PING-commando’s naar de Exchange-server, ongeveer 12 minuten nadat het apparaat in slaapstand gaat. Vanaf dat moment ben je afhankelijk van periodiek ophalen (elke 15 tot 30 minuten).

Suggestie hoe we dit artikel kunnen verbeteren? Laat het ons weten!

Informatie

Laatst bijgewerkt augustus 2014
Categorie Synchronisatie
Onderwerpen activesync, e-mail, microsoft exchange