Exchange 2010 Web Services


Published on

En esta presentación revisamos las características de Exchange 2010 Web Services.

Eduardo Castro – Microsoft SQL Server MVP
Costa Rica

Published in: Technology

Exchange 2010 Web Services

  1. 1. What&apos;s New in Exchange Web Services in Microsoft Exchange Server 2010<br />Ing. Eduardo Castro, PhD<br />Grupo Asesor en Informática<br /><br />
  2. 2. We are Very Serious About EWS<br />Entourage 2008 -<br />
  3. 3. Exchange 2010 Enterprise Topology<br />Enterprise Network<br />Phone system (PBX or VOIP)<br />Hub Transport<br />Routing & Policy<br />Edge Transport<br />Routing & AV/AS<br />External<br />SMTPservers<br />Unified Messaging<br />Voice mail & voice access<br />Mailbox<br />Storage of mailbox items<br />Mobile phone<br />Client Access<br />Client connectivity<br />Web services<br />Web browser<br />Outlook (remote user)<br />Line of business application<br />Outlook (local user)<br />
  4. 4. Consolidation of Store Access Paths<br />Exchange 2010<br />Exchange 2007<br />Exchange Components<br />Exchange Components<br />Transport Agents<br />Transport Agents<br />WS<br />WS<br />OWA<br />OWA<br />Mailbox Agents<br />Mailbox Agents<br />UM<br />UM<br />Entourage<br />Sync<br />Sync<br />Outlook / MAPI clients<br />MiddleTier<br />Exchange Biz Logic<br />MiddleTier<br />MAPI, RFR & NSPIRPC<br />Exchange Biz Logic<br />Outlook / MAPI clients<br />Exchange Core Biz Logic<br />Entourage<br />DAV<br />Mailbox<br />MAPI RPC<br />Mailbox<br />MAPI RPC<br />Store<br />Store<br />
  5. 5. RPC Client Access ServiceThe what<br />Outlook Clients<br />A new service in Exchange Server 2010 that resides on CAS<br />What it handles:<br />Outlook data connections go to CAS instead of connecting directly to mailbox servers<br />Replaces the DSProxy interface by providing an Address Book service on CAS<br />Public folder connections connect directly to the mailbox server, but through RPC Client Access<br />Exchange CAS Array<br />MBX<br />GC<br />
  6. 6. Client AccessClient RPC connection changes<br />Exchange Server 2007<br />Exchange Server 2010<br />Outlook / MAPI clients<br />Outlook / MAPI clients<br />CAS Array<br />MAPI RPC<br />NSPI,RFR RPC<br />RPCProxy<br />CAS<br />RpcProxy<br />Exchange Biz Logic<br />Mailbox<br />MAPI RPC<br />AD<br />LDAP<br />NSPI<br />DSProxy<br />Mailbox<br />MAPI RPC<br />AD<br />Store<br />Store<br />ESE<br />ESE<br />RPC Data Flow<br />HTTP Data Flow<br />Common Data Flow<br />
  7. 7. What is EWS?<br />Unified API to access Exchange resources<br />Items and folders<br />Synchronization<br />Calendaring workflows<br />Built on top of an outlook-compatible common business logic<br />Appropriate architectural choices<br />Standards-based (SOAP)<br />Remotable<br />
  8. 8. Exchange N-Tier Architecture<br />Mailbox Server<br />Mailbox Server<br />CDOEx<br />ExoleDB<br />CDO 1.2.1<br />WebDAV<br />Exchange 2000/2003<br />HTTP<br />RPC<br />Windows Client<br />Exchange Web Services<br />RPC<br />HTTP<br />Exchange 2007/2010<br />X-Platform Client<br />Client Access Server<br />
  9. 9. Unifying a Large Set of APIs<br />Outlook interop<br />Do it yourself<br />Built-in<br />Runs on the mailbox server<br />OleDB<br />CDO for Exchange<br />CDO 1.2.1<br />MAPI<br />Runs in the intranet only<br />Runs over the internet<br />Exchange Web Services<br />WebDAV<br />
  10. 10. Exchange API EvolutionWhy you should use EWS<br />The following APIs were de-emphasized in Exchange 2007, they have been removed from Exchange 2010:<br />CDO 1.2.1<br />CDOEx<br />ExOLEDB<br />WebDAV<br />OWA URL commands<br />Store Events<br />Replaced by EWS<br />EWS only support asynchronous events<br />
  11. 11. EWS Architecture: Impact on Your Applications<br />Installation<br />Applications no longer installed on Mailbox<br />Authentication<br />Applications no longer have full mailbox access when running on a Mailbox Server <br />Asynchronous notifications only<br />No synchronous events<br />EWS supports any language or platform capable of making an HTTP request (C#/C/C++/Java)<br />
  12. 12. EWS Features Overview<br />Exchange mailboxes<br />Public folders<br />Business logic layer (shared with Outlook Web Access and ActiveSync)<br />Full access to items, folders and attachments:<br /><ul><li>Create
  13. 13. Get
  14. 14. Update
  15. 15. Delete
  16. 16. Availability
  17. 17. OOF settings
  18. 18. Notifications
  19. 19. Synchronization
  20. 20. ResolveNames
  21. 21. ExpandDL
  22. 22. Search
  23. 23. Improved Time Zone support
  24. 24. Full private DL support
  25. 25. Folder Associated Items (FAIs)
  26. 26. User configuration objects
  27. 27. Indexed Search
  28. 28. GetRoomLists and GetRooms
  29. 29. UM service integration
  30. 30. Delegate management
  31. 31. Folder permissions
  32. 32. Public folders
  33. 33. Post items
  34. 34. Id conversion</li></ul>Exchange 2007<br />Exchange 2007 Service Pack 1<br />Exchange 2010<br />HTTP/SOAP<br />HTTP/SOAP<br />Auto-generated proxies, raw XML<br />EWS Managed API<br />or<br />
  35. 35. Introducing the EWS Managed APIFor Exchange 2007 SP1 and Exchange 2010 development<br />Easy<br />First-class .NET development for Exchange<br />Fully object-oriented<br />Fast<br />Discoverable and intuitive, easy to learn<br />Full IntelliSense support<br />High quality<br />Significantly reduces the number of lines of code<br />Code is easy to read, understand and maintain<br />“Software + Services” ready<br />
  36. 36. GetFolderType request = new GetFolderType();<br />request.FolderShape = new FolderResponseShapeType();<br />request.FolderShape.BaseShape = DefaultShapeNamesType.AllProperties;<br />DistinguishedFolderIdTypeinboxId = new DistinguishedFolderIdType();<br />inboxId.Id = DistinguishedFolderIdNameType.inbox;<br />request.FolderIds = new BaseFolderIdType[] { inboxId };<br />GetFolderResponseType response = serviceBinding.GetFolder(request);<br />FolderInfoResponseMessageTyperesponseMessage =<br />response.ResponseMessages.Items[0] as FolderInfoResponseMessageType;<br />if (responseMessage.ResponseClass == ResponseClassType.Success)<br />{<br />FolderType inbox = responseMessage.Folders[0] as FolderType;<br />}<br />&lt;s:Envelope&gt;<br /> &lt;s:Body&gt;<br /> &lt;m:GetFolderResponse&gt;<br /> &lt;m:ResponseMessages&gt;<br /> &lt;m:GetFolderResponseMessage<br />ResponseClass=&quot;Success&quot;&gt;<br /> &lt;m:ResponseCode&gt;NoError&lt;/m:ResponseCode&gt;<br /> &lt;m:Folders&gt;<br /> &lt;t:Folder&gt;<br /> &lt;t:FolderIdId=&quot;...&quot; ChangeKey=&quot;...&quot; /&gt;<br /> &lt;t:FolderClass&gt;IPF.Note&lt;/t:FolderClass&gt;<br /> &lt;t:DisplayName&gt;Inbox&lt;/t:DisplayName&gt;<br /> ...<br /> &lt;/t:Folder&gt;<br /> &lt;/m:Folders&gt;<br /> &lt;/m:GetFolderResponseMessage&gt;<br /> &lt;/m:ResponseMessages&gt;<br /> &lt;/m:GetFolderResponse&gt;<br /> &lt;/s:Body&gt;<br />&lt;/s:Envelope&gt;<br />&lt;soap:Envelope&gt;<br /> &lt;soap:Body&gt;<br /> &lt;m:GetFolder&gt;<br /> &lt;m:FolderShape&gt;<br /> &lt;t:BaseShape&gt;AllProperties&lt;/t:BaseShape&gt;<br /> &lt;/m:FolderShape&gt;<br /> &lt;m:FolderIds&gt;<br /> &lt;t:DistinguishedFolderIdId=&quot;inbox&quot; /&gt;<br /> &lt;/m:FolderIds&gt;<br /> &lt;/m:GetFolder&gt;<br /> &lt;/soap:Body&gt;<br />&lt;/soap:Envelope&gt;<br />Folder inbox = Folder.Bind(service, WellKnownFolderName.Inbox);<br />How Easy?<br />Increased Productivity<br />Raw XML<br />Auto-generated proxies<br />EWS Managed API<br /><ul><li> Cross-platform
  37. 37. No client-side logic
  38. 38. Manual plumbing
  39. 39. Multiple platforms
  40. 40. Class-based access
  41. 41. No client-side logic
  42. 42. Windows only (.NET 3.5)
  43. 43. Fully Object Oriented
  44. 44. Smart client-side logic</li></li></ul><li>Exchange 2010<br />Ing. Eduardo Castro, PhD<br />Architect<br /><br />demo <br />
  45. 45. Autodiscover and Tracing<br />The EWS Managed API includes a built-in Autodiscover client<br />All the logic required to discover the Autodiscover endpoint is taken care of<br />One line auto-configuration<br />Tracing<br />Shows all the steps the EWS Managed API goes through to find the Autodiscover endpoint<br />Useful to debug Autodiscover configuration issues<br />Works throughout the API, not only Autodiscover<br />
  46. 46. Full Private DL Support<br />Support for all operations on Private Distributions Lists (aka “groups”)<br />Create, update, modify, delete<br />Add, update, remove members<br />
  47. 47. UserConfiguration and FAI<br />Create and retrieve UserConfiguration objects<br />Store XML, binary data or key/value pairs<br />Create and find Folder Associated Items<br />
  48. 48. Enhanced Time Zone Support<br />Support for a different TZ for start and end times<br />EWS Managed API makes it very easy to specify time zones<br />Improved reliability when time adjustment rules change<br />
  49. 49. Availability Service<br />Free/busy information<br />Meeting time suggestions<br />Now very easy to use via the EWS Managed API<br />
  50. 50. Wrapping It Up<br />Start migrating your WebDAV and CDOEx applications now<br />Legacy APIs have been removed from Exchange 2010<br />Use Autodiscover:<br />To figure out the appropriate EWS URL for a given mailbox,<br />To make your application service ready<br />Download the EWS Managed API Beta<br />Exchaneg development made easy for .NET developers<br />
  51. 51. question & answer<br />
  52. 52. Required Slide<br />Speakers, <br />TechEd 2009 is not producing <br />a DVD. Please announce that <br />attendees can access session <br />recordings at TechEd Online. <br /><br />Sessions On-Demand & Community<br /><br />Microsoft Certification & Training Resources<br /><br />Resources for IT Professionals<br /><br />Resources for Developers<br /><br />Microsoft Certification and Training Resources<br />Resources<br />
  53. 53. Resources<br />Download the Exchange 2010 EWS Managed API 1.0Exchange Web Services Managed API 1.0<br />Visit the Microsoft Unified Communications Developer Portal<br />Visit the Microsoft Exchange Developer Center<br />Visit the Microsoft Office Communications Developer Portal<br />Join the UC Developer Community and Sign-up for the Dev Sandbox!<br />
  54. 54. Download the EWS Managed APIEWS Managed API 1.0 Download<br />Get the book!<br />EWS basics<br />Things in the mailbox<br />Searching<br />Synchronization & Notifications<br />Advanced topics<br />
  55. 55. Required Slide<br />© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.<br />The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.<br />