SlideShare uma empresa Scribd logo
1 de 26
Exchange Web Services (EWS)
Steve Hardy
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>
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)
EWS Authentication
-   Uses HTTP authentication
    - Digest
    - Kerberos
    - NTLM
-   Entire connection authenticated
-   All XML requests over a single HTTP connection are authenticated
    as the same user
EWS authentication: problems
Authentication is done over multiple
levels

                                          Zarafa-ewsd
•Username / Password authentication
always possible
•Unable to use NTLM authentication
build in zarafa-server                    Zarafa-server
    – Per-store authentication (not per
      connection)
•Same goes for kerberos                      LDAP
EWS authentication: moving into zarafa-ewsd



           Zarafa-ewsd                NTLM/Kerberos


                     Trusted connection


           Zarafa-server



              LDAP
Protocol versions
•   Exchange 2007
     – Original version

•   Exchange 2010
     –   Bulk transfer
     –   Conversations
     –   Exchange search
     –   Inbox rules
     –   Message tracking
     –   Unified messaging
     –   User configuration
•   Also differences in service packs
     – Message identifiers changes between RTM and SP1 of Exchange 2007
Synchronize vs Live
•   Synchronization calls
     – SyncFolderHierarchy
     – SyncFolderContents


•   Used in synchronization clients
     – Works a lot like IMAP
     – Gets incremental updates
Synchronization




        Old state




                            Sync state A
        Changes


                    SyncFolderContents()
Synchronization




        Old state




        Changes
                    Sync state B
Live access
•   Used for
    – Search
    – Archiving
    – Anything that doesn’t require replication of data
Live access
•   GetFolder()
•   GetItem()
•   FindFolder()
•   FindItem()

•   MoveItem()     Current store data

•   CopyItem()
•   DeleteItem()
MIME vs MAPI
•   Many current EWS clients started out as IMAP client
•   IMAP structure of clients is ‘synchronize’ pattern
    – SyncFolderHierarchy() / SyncFolderContents()
•   Actual email contents can be represented by
    – MIME content
    – MAPI content
•   MIME content
    – Same problem as for IMAP gateway, entire RFC822 message must be
      stored
MIME vs MAPI

MIME                      MAPI


                                     From
                                      To
                                    Subject
                                   Headers
     RFC822 content
                                     Date
    Single blob of data
                                     Body
                                  Recipients
                                 Attachments
MIME vs MAPI
•   Mac ‘Mail’
     – MIME
•   Outlook 2011
     – MAPI


•   MAPI preferred due to
     – Overhead of converting to MIME (still needed in spite of RFC822
       storage)
     – Modifications are always in MAPI model (you cannot modify the MIME
       data)
     – Why re-parse the email when the server has already done it
     – More efficient data access (possible to read separate attachments
       instead of entire email only)
Notifications
•   EWS supports various notification models
•   Client can subscribe for events
•   Three modes
    – Polling
    – Push
    – Pull
Polling events
1.   Subscribe (any change in inbox) -> Subscription ID
2.   GetEvents(subscription id) -> 0 or more events
3.   Sleep(60)
4.   Goto 2

Pro: easy
Con: requires request every N seconds
Con: latency N seconds
Pull
1. Subscribe (any change in inbox) -> Subscription ID
2. GetEvents(subscription id, timeout 60s) -> 0 or more events
3. Goto 2

Pro: Only one call per, say, 10 minutes
Pro: Latency in the millisecond range

Con: Requires TCP open connection at all times
Push
1. Subscribe (any change in inbox, call me back at
   http://server:port/url) -> Subscription ID
2. Wait for server to connect

Pro: No calls open to server
Con: server must be able to contact client

(only useful in server-to-server applications)
The socket problem
•   With ‘pull’ notifications
     –   Each client has open socket
     –   Zarafa-ewsd is ‘forked’
     –   Normally this would mean 1 process per client
     –   10000 users = 10000 process
     –   Bad for memory consumption and scalability
The socket solution




        request
                   Main    Forked
                  server   worker
The socket solution



                                  reply


                 Main    Forked
                server   worker
The socket solution




                 Main    Forked
                server   worker


                         Waiting for notification
                         event
The socket solution




                 Main              Forked
                server             worker


                   Socket passed back to
                   Main server, which handles
                   notifications
The socket solution




                  Main
                 server


             Main process
             Replies after
             Some time
The wsdl file
•   Wsdl file(s) define the SOAP structure
•   We must present a wsdl that is compatible with exchange EWS
•   We cannot ship the file from exchange directly due to copyright
•   Generating our own may introduce subtle differences
•   Unknown if clients actually read the file in practice

Mais conteúdo relacionado

Mais procurados

Apache Kafka
Apache KafkaApache Kafka
Apache KafkaJoe Stein
 
Tuning Linux for your database FLOSSUK 2016
Tuning Linux for your database FLOSSUK 2016Tuning Linux for your database FLOSSUK 2016
Tuning Linux for your database FLOSSUK 2016Colin Charles
 
Restful web services with nodejs
Restful web services with nodejsRestful web services with nodejs
Restful web services with nodejsAspenware
 
Cool MariaDB Plugins
Cool MariaDB Plugins Cool MariaDB Plugins
Cool MariaDB Plugins Colin Charles
 
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)Colin Charles
 
Scalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 CarbonScalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 CarbonWSO2
 
Databases in the hosted cloud
Databases in the hosted cloudDatabases in the hosted cloud
Databases in the hosted cloudColin Charles
 
Restful web services rule financial
Restful web services   rule financialRestful web services   rule financial
Restful web services rule financialRule_Financial
 
The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016Colin Charles
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016Colin Charles
 
Distributions from the view a package
Distributions from the view a packageDistributions from the view a package
Distributions from the view a packageColin Charles
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Colin Charles
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityColin Charles
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 SystemsDavid Newman
 
SPSSac2014 - SharePoint Infrastructure Tips and Tricks for On-Premises and Hy...
SPSSac2014 - SharePoint Infrastructure Tips and Tricks for On-Premises and Hy...SPSSac2014 - SharePoint Infrastructure Tips and Tricks for On-Premises and Hy...
SPSSac2014 - SharePoint Infrastructure Tips and Tricks for On-Premises and Hy...Michael Noel
 
Lessons from database failures
Lessons from database failures Lessons from database failures
Lessons from database failures Colin Charles
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesRob Davies
 

Mais procurados (20)

Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Tuning Linux for your database FLOSSUK 2016
Tuning Linux for your database FLOSSUK 2016Tuning Linux for your database FLOSSUK 2016
Tuning Linux for your database FLOSSUK 2016
 
Restful web services with nodejs
Restful web services with nodejsRestful web services with nodejs
Restful web services with nodejs
 
Cool MariaDB Plugins
Cool MariaDB Plugins Cool MariaDB Plugins
Cool MariaDB Plugins
 
Jakarta EE 8 on JDK17
Jakarta EE 8 on JDK17Jakarta EE 8 on JDK17
Jakarta EE 8 on JDK17
 
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
MariaDB - the "new" MySQL is 5 years old and everywhere (LinuxCon Europe 2015)
 
Scalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 CarbonScalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 Carbon
 
Databases in the hosted cloud
Databases in the hosted cloudDatabases in the hosted cloud
Databases in the hosted cloud
 
Restful web services rule financial
Restful web services   rule financialRestful web services   rule financial
Restful web services rule financial
 
The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016The MySQL Server ecosystem in 2016
The MySQL Server ecosystem in 2016
 
MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016MariaDB Server & MySQL Security Essentials 2016
MariaDB Server & MySQL Security Essentials 2016
 
Distributions from the view a package
Distributions from the view a packageDistributions from the view a package
Distributions from the view a package
 
Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015Meet MariaDB Server 10.1 London MySQL meetup December 2015
Meet MariaDB Server 10.1 London MySQL meetup December 2015
 
MariaDB - The Future of MySQL?
MariaDB - The Future of MySQL?MariaDB - The Future of MySQL?
MariaDB - The Future of MySQL?
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High Availability
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
 
SPSSac2014 - SharePoint Infrastructure Tips and Tricks for On-Premises and Hy...
SPSSac2014 - SharePoint Infrastructure Tips and Tricks for On-Premises and Hy...SPSSac2014 - SharePoint Infrastructure Tips and Tricks for On-Premises and Hy...
SPSSac2014 - SharePoint Infrastructure Tips and Tricks for On-Premises and Hy...
 
On being RESTful
On being RESTfulOn being RESTful
On being RESTful
 
Lessons from database failures
Lessons from database failures Lessons from database failures
Lessons from database failures
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
 

Destaque

Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Project approach when migrating to ZarafaZarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Project approach when migrating to ZarafaZarafa
 
Zarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Keynote Peter GantenZarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Keynote Peter GantenZarafa
 
Zarafa SummerCamp 2012 - DMS ECM - simply for everyone
Zarafa SummerCamp 2012 - DMS ECM - simply for everyoneZarafa SummerCamp 2012 - DMS ECM - simply for everyone
Zarafa SummerCamp 2012 - DMS ECM - simply for everyoneZarafa
 
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...Zarafa
 
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin developmentZarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin developmentZarafa
 
Zarafa SummerCamp 2012 - Yubikey integration
Zarafa SummerCamp 2012 - Yubikey integrationZarafa SummerCamp 2012 - Yubikey integration
Zarafa SummerCamp 2012 - Yubikey integrationZarafa
 
Agorum Core Installation Netzlaufwerke
Agorum Core Installation NetzlaufwerkeAgorum Core Installation Netzlaufwerke
Agorum Core Installation Netzlaufwerkeguest41eb8bd
 

Destaque (7)

Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Project approach when migrating to ZarafaZarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
 
Zarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Keynote Peter GantenZarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Keynote Peter Ganten
 
Zarafa SummerCamp 2012 - DMS ECM - simply for everyone
Zarafa SummerCamp 2012 - DMS ECM - simply for everyoneZarafa SummerCamp 2012 - DMS ECM - simply for everyone
Zarafa SummerCamp 2012 - DMS ECM - simply for everyone
 
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
 
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin developmentZarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
 
Zarafa SummerCamp 2012 - Yubikey integration
Zarafa SummerCamp 2012 - Yubikey integrationZarafa SummerCamp 2012 - Yubikey integration
Zarafa SummerCamp 2012 - Yubikey integration
 
Agorum Core Installation Netzlaufwerke
Agorum Core Installation NetzlaufwerkeAgorum Core Installation Netzlaufwerke
Agorum Core Installation Netzlaufwerke
 

Semelhante a Zarafa SummerCamp 2012 - Exchange Web Services, technical information

Microsoft Exchange 2010 Upgrade Seminar March 2010
Microsoft Exchange 2010 Upgrade   Seminar March 2010Microsoft Exchange 2010 Upgrade   Seminar March 2010
Microsoft Exchange 2010 Upgrade Seminar March 2010hagestadwt
 
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Exchange Web Services on ZarafaZarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Exchange Web Services on ZarafaZarafa
 
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...Edward Burns
 
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013Microsoft Décideurs IT
 
Architecture of a Next-Generation Parallel File System
Architecture of a Next-Generation Parallel File System	Architecture of a Next-Generation Parallel File System
Architecture of a Next-Generation Parallel File System Great Wide Open
 
Indroduction to Web Application
Indroduction to Web ApplicationIndroduction to Web Application
Indroduction to Web Applicationtorny10
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)NYversity
 
Scality S3 Server: Node js Meetup Presentation
Scality S3 Server: Node js Meetup PresentationScality S3 Server: Node js Meetup Presentation
Scality S3 Server: Node js Meetup PresentationScality
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.pptkstalin2
 
Mike Taulty DevDays 2010 Silverlight 4 Networking
Mike Taulty DevDays 2010 Silverlight 4 NetworkingMike Taulty DevDays 2010 Silverlight 4 Networking
Mike Taulty DevDays 2010 Silverlight 4 Networkingukdpe
 
Journey towards serverless infrastructure
Journey towards serverless infrastructureJourney towards serverless infrastructure
Journey towards serverless infrastructureVille Seppänen
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postvamsitricks
 
XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03Lyo Kato
 
WSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration PlatformWSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration PlatformWSO2
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 

Semelhante a Zarafa SummerCamp 2012 - Exchange Web Services, technical information (20)

Microsoft Exchange 2010 Upgrade Seminar March 2010
Microsoft Exchange 2010 Upgrade   Seminar March 2010Microsoft Exchange 2010 Upgrade   Seminar March 2010
Microsoft Exchange 2010 Upgrade Seminar March 2010
 
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Exchange Web Services on ZarafaZarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa
 
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
 
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
 
Architecture of a Next-Generation Parallel File System
Architecture of a Next-Generation Parallel File System	Architecture of a Next-Generation Parallel File System
Architecture of a Next-Generation Parallel File System
 
Indroduction to Web Application
Indroduction to Web ApplicationIndroduction to Web Application
Indroduction to Web Application
 
Computer network (10)
Computer network (10)Computer network (10)
Computer network (10)
 
Scality S3 Server: Node js Meetup Presentation
Scality S3 Server: Node js Meetup PresentationScality S3 Server: Node js Meetup Presentation
Scality S3 Server: Node js Meetup Presentation
 
Websphere - overview and introduction
Websphere - overview and introduction Websphere - overview and introduction
Websphere - overview and introduction
 
computer networking
computer networkingcomputer networking
computer networking
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.ppt
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.ppt
 
Servlet1.ppt
Servlet1.pptServlet1.ppt
Servlet1.ppt
 
Mike Taulty DevDays 2010 Silverlight 4 Networking
Mike Taulty DevDays 2010 Silverlight 4 NetworkingMike Taulty DevDays 2010 Silverlight 4 Networking
Mike Taulty DevDays 2010 Silverlight 4 Networking
 
Journey towards serverless infrastructure
Journey towards serverless infrastructureJourney towards serverless infrastructure
Journey towards serverless infrastructure
 
Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,post
 
XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03XMPP/Jingle(VoIP)/Perl Ocean 2012/03
XMPP/Jingle(VoIP)/Perl Ocean 2012/03
 
WSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration PlatformWSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
WSO2Con USA 2015: An Introduction to the WSO2 Integration Platform
 
HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 

Mais de Zarafa

Zarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Android WorkshopZarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Android WorkshopZarafa
 
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdfZararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdfZarafa
 
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-pushZararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-pushZarafa
 
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...Zarafa
 
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa SummerCamp 2012 - Community update and Zarafa Development ProcessZararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa SummerCamp 2012 - Community update and Zarafa Development ProcessZarafa
 
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
Zararfa summer camp 2012   interesting tips & tricks when migrating to zarafaZararfa summer camp 2012   interesting tips & tricks when migrating to zarafa
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafaZarafa
 
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovationsZarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovationsZarafa
 
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Deploying Zarafa ArchiverZarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Deploying Zarafa ArchiverZarafa
 
Zarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Open Generation GapZarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Open Generation GapZarafa
 
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxyZarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxyZarafa
 
Zarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Zarafa 7.1 featuresZarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Zarafa 7.1 featuresZarafa
 
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administratorsZarafa SummerCamp 2012 - Z-push 2.0 changes for administrators
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administratorsZarafa
 
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...Zarafa
 
Zarafa SummerCamp 2012 - Communication - how engineers can outperform
Zarafa SummerCamp 2012 - Communication - how engineers can outperformZarafa SummerCamp 2012 - Communication - how engineers can outperform
Zarafa SummerCamp 2012 - Communication - how engineers can outperformZarafa
 
Zararfa SummerCamp 2012 - From RHEL to RHEV to Cloud
Zararfa SummerCamp 2012 - From RHEL to RHEV to CloudZararfa SummerCamp 2012 - From RHEL to RHEV to Cloud
Zararfa SummerCamp 2012 - From RHEL to RHEV to CloudZarafa
 
Zararfa SummerCamp 2012 - One solution of two vendors solves plenty needs
Zararfa SummerCamp 2012  - One solution of two vendors solves plenty needsZararfa SummerCamp 2012  - One solution of two vendors solves plenty needs
Zararfa SummerCamp 2012 - One solution of two vendors solves plenty needsZarafa
 
Zarafa SummerCamp 2012 - Zarafa in the Capgemini Open Cloud
Zarafa SummerCamp 2012 - Zarafa in the Capgemini Open CloudZarafa SummerCamp 2012 - Zarafa in the Capgemini Open Cloud
Zarafa SummerCamp 2012 - Zarafa in the Capgemini Open CloudZarafa
 
Zarafa SummerCamp 2012 - WebApp introduction and roadmap
Zarafa SummerCamp 2012 - WebApp introduction and roadmapZarafa SummerCamp 2012 - WebApp introduction and roadmap
Zarafa SummerCamp 2012 - WebApp introduction and roadmapZarafa
 
Zarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to Zarafa
Zarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to ZarafaZarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to Zarafa
Zarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to ZarafaZarafa
 
Zarafa SummerCamp 2012 - Migrating from Windows Servers to Linux with Zentyal...
Zarafa SummerCamp 2012 - Migrating from Windows Servers to Linux with Zentyal...Zarafa SummerCamp 2012 - Migrating from Windows Servers to Linux with Zentyal...
Zarafa SummerCamp 2012 - Migrating from Windows Servers to Linux with Zentyal...Zarafa
 

Mais de Zarafa (20)

Zarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Android WorkshopZarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Android Workshop
 
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdfZararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
 
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-pushZararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
 
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
 
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa SummerCamp 2012 - Community update and Zarafa Development ProcessZararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
 
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
Zararfa summer camp 2012   interesting tips & tricks when migrating to zarafaZararfa summer camp 2012   interesting tips & tricks when migrating to zarafa
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
 
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovationsZarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
 
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Deploying Zarafa ArchiverZarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
 
Zarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Open Generation GapZarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Open Generation Gap
 
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxyZarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy
 
Zarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Zarafa 7.1 featuresZarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Zarafa 7.1 features
 
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administratorsZarafa SummerCamp 2012 - Z-push 2.0 changes for administrators
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators
 
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
 
Zarafa SummerCamp 2012 - Communication - how engineers can outperform
Zarafa SummerCamp 2012 - Communication - how engineers can outperformZarafa SummerCamp 2012 - Communication - how engineers can outperform
Zarafa SummerCamp 2012 - Communication - how engineers can outperform
 
Zararfa SummerCamp 2012 - From RHEL to RHEV to Cloud
Zararfa SummerCamp 2012 - From RHEL to RHEV to CloudZararfa SummerCamp 2012 - From RHEL to RHEV to Cloud
Zararfa SummerCamp 2012 - From RHEL to RHEV to Cloud
 
Zararfa SummerCamp 2012 - One solution of two vendors solves plenty needs
Zararfa SummerCamp 2012  - One solution of two vendors solves plenty needsZararfa SummerCamp 2012  - One solution of two vendors solves plenty needs
Zararfa SummerCamp 2012 - One solution of two vendors solves plenty needs
 
Zarafa SummerCamp 2012 - Zarafa in the Capgemini Open Cloud
Zarafa SummerCamp 2012 - Zarafa in the Capgemini Open CloudZarafa SummerCamp 2012 - Zarafa in the Capgemini Open Cloud
Zarafa SummerCamp 2012 - Zarafa in the Capgemini Open Cloud
 
Zarafa SummerCamp 2012 - WebApp introduction and roadmap
Zarafa SummerCamp 2012 - WebApp introduction and roadmapZarafa SummerCamp 2012 - WebApp introduction and roadmap
Zarafa SummerCamp 2012 - WebApp introduction and roadmap
 
Zarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to Zarafa
Zarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to ZarafaZarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to Zarafa
Zarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to Zarafa
 
Zarafa SummerCamp 2012 - Migrating from Windows Servers to Linux with Zentyal...
Zarafa SummerCamp 2012 - Migrating from Windows Servers to Linux with Zentyal...Zarafa SummerCamp 2012 - Migrating from Windows Servers to Linux with Zentyal...
Zarafa SummerCamp 2012 - Migrating from Windows Servers to Linux with Zentyal...
 

Último

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Último (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Zarafa SummerCamp 2012 - Exchange Web Services, technical information

  • 1. Exchange Web Services (EWS) Steve Hardy
  • 2. 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>
  • 3. 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)
  • 4. EWS Authentication - Uses HTTP authentication - Digest - Kerberos - NTLM - Entire connection authenticated - All XML requests over a single HTTP connection are authenticated as the same user
  • 5. EWS authentication: problems Authentication is done over multiple levels Zarafa-ewsd •Username / Password authentication always possible •Unable to use NTLM authentication build in zarafa-server Zarafa-server – Per-store authentication (not per connection) •Same goes for kerberos LDAP
  • 6. EWS authentication: moving into zarafa-ewsd Zarafa-ewsd NTLM/Kerberos Trusted connection Zarafa-server LDAP
  • 7. Protocol versions • Exchange 2007 – Original version • Exchange 2010 – Bulk transfer – Conversations – Exchange search – Inbox rules – Message tracking – Unified messaging – User configuration • Also differences in service packs – Message identifiers changes between RTM and SP1 of Exchange 2007
  • 8. Synchronize vs Live • Synchronization calls – SyncFolderHierarchy – SyncFolderContents • Used in synchronization clients – Works a lot like IMAP – Gets incremental updates
  • 9. Synchronization Old state Sync state A Changes SyncFolderContents()
  • 10. Synchronization Old state Changes Sync state B
  • 11. Live access • Used for – Search – Archiving – Anything that doesn’t require replication of data
  • 12. Live access • GetFolder() • GetItem() • FindFolder() • FindItem() • MoveItem() Current store data • CopyItem() • DeleteItem()
  • 13. MIME vs MAPI • Many current EWS clients started out as IMAP client • IMAP structure of clients is ‘synchronize’ pattern – SyncFolderHierarchy() / SyncFolderContents() • Actual email contents can be represented by – MIME content – MAPI content • MIME content – Same problem as for IMAP gateway, entire RFC822 message must be stored
  • 14. MIME vs MAPI MIME MAPI From To Subject Headers RFC822 content Date Single blob of data Body Recipients Attachments
  • 15. MIME vs MAPI • Mac ‘Mail’ – MIME • Outlook 2011 – MAPI • MAPI preferred due to – Overhead of converting to MIME (still needed in spite of RFC822 storage) – Modifications are always in MAPI model (you cannot modify the MIME data) – Why re-parse the email when the server has already done it – More efficient data access (possible to read separate attachments instead of entire email only)
  • 16. Notifications • EWS supports various notification models • Client can subscribe for events • Three modes – Polling – Push – Pull
  • 17. Polling events 1. Subscribe (any change in inbox) -> Subscription ID 2. GetEvents(subscription id) -> 0 or more events 3. Sleep(60) 4. Goto 2 Pro: easy Con: requires request every N seconds Con: latency N seconds
  • 18. Pull 1. Subscribe (any change in inbox) -> Subscription ID 2. GetEvents(subscription id, timeout 60s) -> 0 or more events 3. Goto 2 Pro: Only one call per, say, 10 minutes Pro: Latency in the millisecond range Con: Requires TCP open connection at all times
  • 19. Push 1. Subscribe (any change in inbox, call me back at http://server:port/url) -> Subscription ID 2. Wait for server to connect Pro: No calls open to server Con: server must be able to contact client (only useful in server-to-server applications)
  • 20. The socket problem • With ‘pull’ notifications – Each client has open socket – Zarafa-ewsd is ‘forked’ – Normally this would mean 1 process per client – 10000 users = 10000 process – Bad for memory consumption and scalability
  • 21. The socket solution request Main Forked server worker
  • 22. The socket solution reply Main Forked server worker
  • 23. The socket solution Main Forked server worker Waiting for notification event
  • 24. The socket solution Main Forked server worker Socket passed back to Main server, which handles notifications
  • 25. The socket solution Main server Main process Replies after Some time
  • 26. The wsdl file • Wsdl file(s) define the SOAP structure • We must present a wsdl that is compatible with exchange EWS • We cannot ship the file from exchange directly due to copyright • Generating our own may introduce subtle differences • Unknown if clients actually read the file in practice