Exchange Web Services (EWS)Steve Hardy
How are we going to pronounce it ?• Eee-doubleyou-es• Eee-wee-es• you w’s ?
This is a ‘ewe’
What is EWS-   XML-based protocol (SOAP)-   Introduced in Exchange 2007-   Successor to previous WebDAV approach-   Used f...
Who/what is using EWS at the moment?• Outlook 2010   – Free/Busy   – Some minor features• Mac   –   Outlook 2011   –   ‘Ma...
Relation to MAPI                               EWS protocol                   EWS Gateway                    (IIS plugin) ...
EWS: MAPI + CDO over XML                  EWS protocol                                 MAPI -> XML engine   EWS Gateway   ...
Why was it designed this way ?• Much more high-level functions   – Easier for developers to use, less client-side code nee...
Why do clients use EWS?• On non-MS platform   – You have no choice, except IMAP & CalDAV• On MS platform   – It’s easier t...
EWS in Zarafa                         EWS protocol                                        MAPI -> XML engine   EWS Gateway...
EWS in Zarafa: general design• Forked processes (think ‘zarafa-ewsd’)• Primarily in Python   – Rapid development possible ...
EWS general development goalsIn order of priority:3.Support e-mail handling in Outlook 2011, Mac Mail4.Support addressbook...
XML handling in Zarafa-EWS• Always the question: pull or push XML ?Push- Read all XML at once, parse it all, then pass to ...
Demo
Upcoming SlideShare
Loading in...5
×

Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa

1,613

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,613
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa"

  1. 1. Exchange Web Services (EWS)Steve Hardy
  2. 2. How are we going to pronounce it ?• Eee-doubleyou-es• Eee-wee-es• you w’s ?
  3. 3. This is a ‘ewe’
  4. 4. What is EWS- XML-based protocol (SOAP)- Introduced in Exchange 2007- Successor to previous WebDAV approach- Used from introduction for OWA 2007 and later <?xml version="1.0" encoding="utf-8"?> <soap:Envelope> <soap:Body> <GetItem> <ItemShape> <t:BaseShape>Default</t:BaseShape> <t:IncludeMimeContent>true</t:IncludeMimeContent> </ItemShape> <ItemIds><t:ItemId Id="AAAlAF" ChangeKey="CQAAAB" /></ItemIds> </GetItem> </soap:Body> </soap:Envelope>
  5. 5. Who/what is using EWS at the moment?• Outlook 2010 – Free/Busy – Some minor features• Mac – Outlook 2011 – ‘Mail’ – ‘Addressbook’ – ‘Calendar’• Other – Various opensource projects for accessing exchange server from opensource packages (eg. Evolution, Thunderbird, etc) – Various closed source projects (eg. Archivers, Indexers, etc)
  6. 6. Relation to MAPI EWS protocol EWS Gateway (IIS plugin) MAPI Exchange mail store message database (EMSMDB)
  7. 7. EWS: MAPI + CDO over XML EWS protocol MAPI -> XML engine EWS Gateway Calendaring engine (IIS plugin) (like CDO) Meeting/Task request engine (like CDO)
  8. 8. Why was it designed this way ?• Much more high-level functions – Easier for developers to use, less client-side code needed – Solves most of the really hard stuff like recurrence and meeting request handling• XML/SOAP interface allows access from any platform• XML/SOAP interface allows access from any programming language (well, in theory …)• Most easily built on top of MAPI since MAPI already provides many features that you need for EWS
  9. 9. Why do clients use EWS?• On non-MS platform – You have no choice, except IMAP & CalDAV• On MS platform – It’s easier than MAPI, and usable from .Net applications• Why not IMAP? – Email only – No handling of meeting requests, etc• Why not CalDAV? – Calendar/tasks only – No easy handling of meeting requests, etc
  10. 10. EWS in Zarafa EWS protocol MAPI -> XML engine EWS Gateway Calendaring engine (Standalone server) (like CDO) Meeting/Task request engine (like CDO)
  11. 11. EWS in Zarafa: general design• Forked processes (think ‘zarafa-ewsd’)• Primarily in Python – Rapid development possible – Speed disadvantage compared to C++ is not important, since most real processing is done by MAPI (C++)
  12. 12. EWS general development goalsIn order of priority:3.Support e-mail handling in Outlook 2011, Mac Mail4.Support addressbook handling in Outlook 2011, Mac Addressbook5.Support calendar handling6.Support MR/TR handling7.Management functions like setting OOF, etc.Low priority:-Bulk handling features of EWS-Administration features
  13. 13. XML handling in Zarafa-EWS• Always the question: pull or push XML ?Push- Read all XML at once, parse it all, then pass to processor- Easy to code, clear overview- Slow for large requests: high latencyPull- Read XML bit-by-bit, process when possible (before reading end of XML request)- Harder to code, sometimes makes the code less readable- Low memory footprint, low latency
  14. 14. Demo
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×