天天看點

Exchange之直推技術

連接配接到Exchange的移動用戶端是怎麼接收郵件的呢?

  • Exchange ActiveSync。
Exchange ActiveSync是 Microsoft Exchange 的同步協定,經過優化,可與高延遲和低帶寬網絡協同工作。 該協定基于 HTTP 和 XML,行動電話可以借助它通路運作Exchange 的伺服器上的組織資訊。 Exchange ActiveSync使行動電話使用者能夠通路其電子郵件、月曆、聯系人和任務,并在脫機工作時繼續通路此資訊。

借助Exchange ActiveSync,管理者可以遠端擦除移動端裝置資料。如果移動裝置丢失、被盜或遭到入侵,則可以使用Outlook Web App從Exchange Server計算機或任何 Web 浏覽器發出遠端擦除指令。 該指令将從移動裝置上清除所有資料,防止資料洩漏。

那資料同步是怎麼實作的呢? 直推技術。

  • Direct Push,即直接推送。
是Exchange Server内置的一項功能。 直接推送技術通過手機網絡或無線網絡連接配接使移動裝置保持最新狀态。 當有新内容可以準備同步時,它将通知移動裝置。若要使直接推送正常工作,移動裝置必須能夠支援直接推送。 目前的安卓和IOS基本都支援該技術。

直推技術概述

支援直接推送的移動裝置向Exchange伺服器發出長期的HTTPS請求。Exchange伺服器監視使用者郵箱上的活動,如果有任何更改(例如新郵件或更改的電子郵件、月曆、聯系人或任務項),則向移動裝置發送響應。 如果在HTTPS請求的生存期内發生更改,則Exchange伺服器會對裝置發出響應,指出已發生更改,并且裝置應啟動與Exchange伺服器的同步。 然後,裝置會向伺服器發同步請求。 同步完成後,将生成一個新的長期HTTPS請求,并重複以上過程。 借此保證将電子郵件、月曆、聯系人和任務項快速傳遞到移動裝置,并且始終與Exchange伺服器同步。

同步過程

  • 移動用戶端發起https請求到Exchange,請求的術語稱為"PING"。 PING請求告訴Exchange伺服器,在接下來的15m内,如果配置同步的郵箱中任何項有更新,請及時通知我。 否則的話,請傳回http 200的消息代碼。此時移動用戶端會進入等待狀态。 【15m被稱為心跳間隔】
  • 如果15m内,郵箱沒有任何更新,伺服器則傳回http 200。 移動用戶端收到消息後,恢複活動狀态,也稱為喚醒。 喚醒後,再發起一個長期的HTTPS請求。
  • 如果15m内,郵箱中有新的郵件或者月曆、或者任何其他的更新,伺服器則會立即通知移動用戶端有變化,同時告知變化的項目所在的檔案夾。 這時,移動用戶端會發起同步請求,請求同步有變化的檔案夾。同步完成之後,再發球一個長期的HTTPS請求。

特殊場景

直推技術有個網絡依賴條件,就是網絡需要支援長期連接配接。 比如有些出口防護牆可能不支援或者禁止長期連接配接。

那這種情況下,直推技術是怎麼工作的呢?【比如防火牆設定了13m的限制,13m後逾時】

  • 直推技術發起PING請求,告知伺服器:在接下來的15m内,如果配置同步的郵箱中任何項有更新,請及時通知我。 否則的話,請傳回http 200的消息代碼。移動用戶端進入等待狀态。
  • 15分鐘後,移動用戶端既沒收伺服器發來的更新通知,也沒收到http 200的代碼(因為連接配接在13m後已經逾時)。用戶端進入喚醒狀态,斷定因為網絡原因逾時了。 于是用戶端重新發起一個PING請求,但是這次将預設的15m的心跳間隔減半,改成8m。
  • 8m後,如果用戶端收到了伺服器發來的更新通知或http 200消息,則會再次發起一個PING請求,這次将心跳間隔變成12m(否則會繼續減半,為4m)。
  • 12m之内,用戶端收到了伺服器發來的更新通知或http 200消息,再次發起一個心跳間隔為16m的PING請求。

繼續閱讀