advancements in ActiveSync Exchange Web Services and MAPI Andrew Davidoff Senior Software Engineer Agenda Brief introduction to Exchange Server Open Specifications An overview of the proto ID: 827925
Download Pdf The PPT/PDF document "Discover Exchange Protocols &" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Discover Exchange Protocols & advanceme
Discover Exchange Protocols & advancements in ActiveSync, Exchange Web Services, and MAPIAndrew DavidoffSenior Software EngineerAgendaâ¢Brief introduction to Exchange Server Open Specifications â¢An overview of the protocol architecture for Exchange Serverâ¢Important protocol families that are used to commu
nicate with Exchange Serverâ¢Exchang
nicate with Exchange Serverâ¢Exchange Protocols Tools and ResourcesIntroduction to Open Specificationsâ¢Normative languageâ¢Designed to document bits over the wireâ¢No APIs âonly Protocolsâ¢MUST, SHOULD, MAY are used to document version-specific behaviorâ¢Strict document structureâ¢Windows/Ex
change or product API knowledge not requ
change or product API knowledge not requiredâ¦â¢Microsoft Products are not mentioned in normative content, only in endnotesâ¢Open Specifications document on-premises Exchange Server protocolsExchange ProtocolsOverview Document [MS-OXPROTO]Defines Exchange protocol familiesScenario-BasedHow multiple p
rotocols work together in typical scena
rotocols work together in typical scenariosHow to complete the same task using different protocol familiesWalkthroughs and examplesSend email using different protocolsResolve a recipient from an Address BookSynchronize itemsMany other scenariosProtocol familiesâ¢RPC/ROPS (Remote Operations, the core protocol
family behind MAPI)â¢Name Service P
family behind MAPI)â¢Name Service Provider Interface (NSPI) provides access to Address Bookâ¢New in Exchange 2013 âMAPI over HTTP, combines ROPS and NSPI bypassing RPC layerâ¢Exchange Web Services (EWS)â¢Exchange ActiveSync (EAS)â¢Other groups of protocolsâ¢Autodiscoverâ¢Content Conversionâ¢
Standards SupportClient communication
Standards SupportClient communication with ExchangeEASEWSMAPIHTTPPOP/IMAPSMTPStorageNSPIRPC/ROPsMAPIRPC/ROPSOn-the-wire protocols behind MAPIExchange RPC/ROPs protocolsâ¢Implemented in some form from âDay 1â (such as Exchange 4.0), extended and re-architected several timesâ¢Low-level a
ccess to Exchange Storageâ¢Workhorse
ccess to Exchange Storageâ¢Workhorse for Outlook communication with Exchangeâ¢Used by MAPIâ¢Transport layer: ROPs (Remote Operations) within an RPC binary blobâ¢Optimized to minimize traffic on the wire; very complex parsing â¢RPC can use HTTPS or TCP connections (HTTPS-only in Exchange 2013) â¢New [M
S-OXCMAPIHTTP] as alternative to use R
S-OXCMAPIHTTP] as alternative to use ROPs over HTTP; no RPCsExchange RPC/ROPs: TransportHeaderRPC :Binary BlobROP1ROP2â¦RopIDROP DataHSOT TableRopSizeRopIDROP DataNote: No ROP Data size or end marker. Every ROP Data in the blob must be parsed. Every RopID has different ROP Data structure. Number of
documented RopIDs: 130(EcDoRpcExt2)RPC
documented RopIDs: 130(EcDoRpcExt2)RPC/ROPS protocols -continuedâ¢RPC/ROPs protocols define both Exchange (server) and Outlook (client) behaviorsâ¢Outlook behaviors are very complicated âserver here is a very complex storage for items generated and maintained by the clientâ¢This is wrapped in MAPI laye
r on the client, but that is not part of
r on the client, but that is not part of protocol documentation. Remember, we donât document APIs in Open Specifications, only traffic over the wire.â¢Client (not Server) is handling logic behind complex items âmessages, folders, calendar items, contacts, tasks, etc.â¢Naming: [MS-OXO*] and [MS-OXC*]â¢
40+ Protocols, ~3000 pagesExchange Web
40+ Protocols, ~3000 pagesExchange Web Services (EWS)Exchange Web Services (EWS)â¢Alternative to RPC protocolsâ¢Higher level of abstraction compared with RPC protocolsâ¢EWS implement messages, attachments, calendar events, contacts on server side in a way that is interoperable with Outlook.â¢First impleme
nted in Exchange Server 2007â¢Current
nted in Exchange Server 2007â¢Current support in Exchange 2016 as well as Exchange Online â¢Outlook uses subset of EWS protocols â¢Unified Messaging, MailTips, Availability, OOF, Office Apps, Room List, Archive, Mailbox Policies, Calendar Sharing, Site Mailboxes, etc. â¢New Exchange features are likely to be
implemented in EWSâ¢Intuitive/readab
implemented in EWSâ¢Intuitive/readable XML (vs MAPI) (easier troubleshooting)Exchange Web Services (EWS) -continued â¢Versioningâ¢Clearly defined â¢Versioned by schema for the SOAP bodiesâ¢RequestServerVersionheader element in each request letâs client to request version-specific behaviorâ¢Tra
nsport: â¢SOAP over HTTP(S)â¢Code
nsport: â¢SOAP over HTTP(S)â¢Code against it using any language/platform that supports making HTTP/SOAP callsâ¢Naming: [MS-OXW*]â¢43 Protocols, ~2000 pagesEWS Schema versionsâ¢xs:simpleTypename="ExchangeVersionType"xs:restrictionbase="xs:string"xs:enumerationvalue="
Exchange2007"/xs:enumerationv
Exchange2007"/xs:enumerationvalue="Exchange2007_SP1"/xs:enumerationvalue="Exchange2010"/xs:enumerationvalue="Exchange2010_SP1"/xs:enumerationvalue="Exchange2010_SP2"/xs:enumerationvalue="Exchange2013"/xs:enumerationvalue="Exchange2013_SP1"/xs:enumeration
value="Exchange2015"/xs:enume
value="Exchange2015"/xs:enumerationvalue="Exchange2016"/xs:restrictionxs:simpleTypeArchivingeDiscoveryPersonasRetention policiesUnified Contact StoreUser photosFull access to items, folders, and attachments (Create, Get, Update, Delete)AvailabilityOut of Office setting
sNotificationsSynchronizationName res
sNotificationsSynchronizationName resolutionDistribution list (DL) expansionSearchMS-OXWSCDATA 2.2.5.14 t:ExchangeVersionType Simple TypeExchange ActiveSync (EAS)Exchange ActiveSync (EAS)â¢Lightweight synchronization protocol for Microsoft Exchangeâ¢Optimized to work on high-latency and low-bandwidth
networksâ¢High level of abstraction,
networksâ¢High level of abstraction, similar to EWS in complexityâ¢Provides access to email, calendar, contacts, tasks, documents, etc.â¢Designed to maximize battery lifeâ¢Device management enforcement for enterprise organizationsâ¢Industry standard, several non-Exchange Server implementationsâ¢Wide r
ange of clients âWindows, iOS, Andro
ange of clients âWindows, iOS, Android, â¦â¢Server support from Exchange Server 2003 to latest Exchange Server 2016Exchange ActiveSync (EAS) -continuedâ¢Versioningâ¢Clearly defined version negotiationâ¢Version-specific features documented in open specificationsâ¢Transportâ¢WBXML over HTTP(S)
â¢Naming: [MS-AS*]â¢15 Protocols,
â¢Naming: [MS-AS*]â¢15 Protocols, ~900 pagesâ¢Licensing requirementsTypical Usage of Exchange ActiveSyncâ¢Mobile phonesâ¢âDe-facto standardâ supported by email applications on all major platforms.â¢Tabletsâ¢Allows for low-bandwidth and high-latency data (Internet) connections while scali
ng reasonably on high-speed connection
ng reasonably on high-speed connections.â¢Lightweight desktop applicationsâ¢Windows 8/8.1/10 Mail application uses EAS.â¢Mobile ApplicationsNot all Exchange features are accessible through EASVersion Historyâ¢2.5-Exchange Server 2003 SP2â¢12.0-Exchange Server 2007â¢12.1-Exchange Server 2007 SP
1â¢14.0-Exchange Server 2010â¢14
1â¢14.0-Exchange Server 2010â¢14.1-Exchange Server 2010 SP1â¢16.0-Exchange Server 2016EAS in Interoperability toolsâ¢Exchange Server EAS Protocol Test Suitesâ¢Client Side protocol implementation, can be run against an existing EAS serverâ¢C# implementation of all EAS protocols (except [MS-ASSM
S]) â¢Reference implementation of tra
S]) â¢Reference implementation of transport, including WBXML encoding algorithmâ¢Microsoft Message Analyzerâ¢Exchange ActiveSync Parsers available with Message Analyzer (optional package)Other Exchange protocolsâ¢Autodiscoverâ¢Content Conversionâ¢Standards-based protocols âExtensions and Compli
anceâ¢[MS-OXPROTO] is a good refere
anceâ¢[MS-OXPROTO] is a good referenceExchange Protocols:Tools and ResourcesExchange test tools updateâ¢New parsers for Message Analyzerâ¢Protocol families: EAS, EWS, RPC, and MAPIHTTPâ¢New test suites for EAS, EWS, RPC, and MAPIHTTPâ¢Fiddler Inspectors for MAPIHTTP and other protocolsExchange prot
ocols resourcesâ¢All Exchange protoco
ocols resourcesâ¢All Exchange protocol documentsâ¢https://msdn.microsoft.com/en-us/library/cc425499(v=exchg.80).aspxâ¢Microsoft Message Analyzerâ¢http://www.microsoft.com/en-us/download/details.aspx?id=44226â¢Fiddler inspectors for Office and Exchange protocolsâ¢https://github.com/OfficeDev/Office-
Inspectors-for-Fiddlerâ¢Protocol
Inspectors-for-Fiddlerâ¢Protocol Test Suitesâ¢https://github.com/OfficeDev/Interop-TestSuitesâ¢Help with Open Specifications: â¢mailto:dochelp@microsoft.comâ¢Office Interoperability blog:â¢http://blogs.msdn.com/b/officeinteroperability/Thank You!Questions?© Microsoft Corporation. All rights re