Advanced Exchange Web Services Programming Jason Henderson Principal

Advanced Exchange Web Services Programming Jason Henderson Principal

Advanced Exchange Web Services Programming Jason Henderson Principal Program Manager Lead Microsoft Session Code: UNC401 Agenda What is new in Exchange 2010 Web Services? Advanced EWS Managed API Concepts Using Autodiscover Accessing Mailbox Items

Writing Scalable Applications Using Diagnostics to Identify Potential Performance Problems Best Practice Recommendations Same Rich Capabilities as E2007 Rich Mailbox Access Calendar - Free/busy, Meeting time Suggestions E-mail Send, Retrieve, Forward, Reply, Move, MIME Contacts/Tasks Search Name Resolution Change notifications

Synchronization services Autodiscover Rich Logon Modes Delegate Access Impersonation Direct Logon Plus Much More Whats New In Exchange 2010? .NET Developer Experience EWS Managed API 1.0 Built-in Autodiscover client for anywhere access Enables easy migration from legacy Exchange APIs

New Exchange Data Services Enhanced contacts (contact groups, pictures) Outlook Web App form links Mailbox-wide search and notifications services Room lists service Application Management and Configuration

Role-based Impersonation management User and application configuration service SOAP Autodiscover with batch request support Enhanced time zone support Built for the Cloud Enabled on [email protected] and Microsoft Online Same functionality on-premises and in the cloud Agenda

What is new in Exchange 2010 Web Services? Advanced EWS Managed API Concepts Using Autodiscover Accessing Mailbox Items Writing Scalable Applications Using Diagnostics to Identify Potential Performance Problems Best Practice Recommendations Using Autodiscover To Connect To EWS What is Autodiscover? Its a web service that configures Exchange applications

Using a URL that can be automatically discovered by client applications Why use it? Removes the need for hard-coding the EWS URL Enables seamless failover and anywhere access Built-in client in the EWS Managed API Makes it really easy to call Autodiscover When To Autodiscover The EWS URL Inter-site failover and move Autodiscover

EWS? Failover Main CASCAS X X Main CAS Site A Client application

Failover CAS Site B When To Autodiscover The EWS URL Migration Autodiscover EWS? CAS2010 CAS2007 X

CAS2007 Mailbox (Exchange 2007) (Exchange 2007) Mailbox migration Client application

CAS2010 Mailbox (Exchange 2010) (Exchange 2010) Demos Calling AutodiscoverUrl Using AutodiscoverService Batch requests Retrieving specific settings (e.g. OWA URLs)

Accessing Mailbox Items Properties And Property Sets There are multiple ways to retrieve items List items or search for specific items Inbox.FindItems() Bind to or load specific items EmailMessage.Load(); Synchronize items service.SyncFolderItems() All use PropertySets to scope data to return

Accessing Mailbox Items Batch Operations Batch operations act on multiple items in a single EWS request Using batch operations: Helps increases your applications performance Helps reduce server load The EWS Managed API supports batch operations in addition to per-item operations Extended Properties

Complement first class properties First class properties are directly available on items and folders (e.g. Item.Subject, Folder.DisplayName) Allow developers to: Set and retrieve custom, application specific properties Access properties that are not exposed as first class properties Do bad things (so use with care): Access properties that should not be accessed Override EWS business logic Demo

Bind Property set FindItems w/filter on Extended Property and with IdOnly LoadProperties w/custom property set Agenda What is new in Exchange 2010 Web Services? Advanced EWS Managed API Concepts Using Autodiscover Accessing Mailbox Items Writing Scalable Applications Best Practice Recommendations

Using Exchange Web Services Diagnostics Scalability What is scalability? It is doing more with fewer resources It is minimizing the Exchange Server resource cost per user We will discuss: How to measure the impact of your EWS requests on Exchange? How to minimize the internal Exchange processing driven by your application

Exchange Architecture AD LDAP EWS Client MAPI Remote Procedure Calls (RPC) SOAP Request https://server/ews/exchange.asmx Memory CPU

Mailbox Server CPU Memory Disk Reads Disk Writes Methodology for Maximizing Scale Think about your final end to end scenario and design your I/O patterns leveraging best practices Write code, Measure, Optimize, Repeat! The Managed API can dramatically reduce your cycle time

Simulate your application in a dedicated environment Use Realistic Mailbox Sizes and Data VMs dont usually work well for this testing Best Practice #1: Minimize the number of web service calls Use batch to get more data in each request Use notifications to alert on item changes rather than repeatedly querying folders Cache data locally Use cached data when application restarts Why?

Retrieving more data in a single request and making fewer requests increases the effectiveness of the CAS caches of LDAP and mailbox data, decreases the amount of xml serialization and deserialization, and decreases the authentication load on CAS and AD Best Practice #2: Do not request unneeded data Use property sets Request only the needed properties Use FindItem page sizes Request only the items needed

Minimize service account mailbox size to avoid retrieving old or unnecessary data Why? Requesting more properties and more items uses more resources. Some properties are very expensive to generate. Best Practice #3: Minimize search load on Exchange Do use SyncFolderItems or FindItem with no search criteria whenever possible Do use FindItem+QueryString if it supports the necessary search criteria Do delete SearchFolders after they are no

longer needed Dont use FindItem or SearchFolder with search criteria unless absolutely required Why? Specifying search criteria using FindItem search or Search Folders search criteria causes the Mailbox server to perform expensive search operations. FindItem + QueryString leverages Indexed Search which is much more efficient. SyncFolderItems with ID Only shape is a very efficient operation. IIS Log Diagnostics Deep Dive 2009-08-17 17:00:00 W3SVC1 EXCAS140001 153.23.45.31 POST /EWS/Exchange.asmx ;RC:215d07c0-3769-49d5-a32042cf63268bc3;Init>>Conn:0,AD:30000/30000/0.00%,CAS:54000/54 000/0.00%,AB:30000/30000/0.00%,RPC:36000/36000/0.00%,FC:100

00/0,Hash:46727838,Sub:20/1;SoapAction=m:GetItem;Version=1; RpcC=4;RpcL=15;LdapC=0;LdapL=0;End(15.5997ms)>>Conn:1,AD:0/ 30000/0.00%,CAS:54000/53998/0.00%,AB:30000/30000/0.00%,RPC: 36000/36000/0.00%,FC:10000/0,Hash:46727838,Sub:20/1; 443 mydomain\user1 157.54.79.65 HTTP/1.1 Microsoft+Office+Communicator+Deskphone/3.0 - mail.microsoft.com 200 0 0 4015 4133 12261 Important Diagnostics

SoapAction: EWS Method Being Called RpcC: Number of RPCs Made to Mailbox RpcL: Average RPC Latency (ms) LdapC: Number of LDAP Calls Made to AD LdapL: Average LDAP Latency (ms) End(x.xms): Milliseconds spent processing request Performance Counter Diagnostics Performance counters give you a big picture view Under the MSExchangeWS\* Counter

Requests/sec Overall number of requests being served by EWS, this includes successful requests Items [Read|Moved|Sent|Updated]/sec Average Response Time Running average in ms Command/sec GetItem Requests/sec FindItem Requests/sec Take-aways Exchange 2010 enables easy, rich and

cloud ready development Use Autodiscover, explicit properties, and batch operations in your code Follow the best practices to develop scalable and efficient applications Download the Exchange Web Services Managed API 1.0 today! Resources Download the Exchange Web Services Managed API 1.0 Learn more about Exchange Web Services MSDN http://msdn.microsoft.com/en-us/library/

bb204119(EXCHG.80).aspx Inside Microsoft Exchange 2007 Web Services http://msdn.microsoft.com/blogs/exchangedev Download the EWS Editor Fill out session evaluations question & answer Resources www.microsoft.com/teched www.microsoft.com/learning

Sessions On-Demand & Community Microsoft Certification & Training Resources http://microsoft.com/technet http://microsoft.com/msdn Resources for IT Professionals Resources for Developers Complete an

evaluation on CommNet and enter to win an Xbox 360 Elite! 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. 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.

Recently Viewed Presentations

  • Presentazione di PowerPoint

    Presentazione di PowerPoint

    A. Braun Botrychium multifidum (S. G. Gmelin) Rupr. Botrychium simplex E. Hitchc. Diphasiastrum complanatum (L.) J. Holub Diphasiastrum issleri (Rouy) J. Holub Diphasiastrum tristachyum (Pursh) J. Holub Dryopteris affinis (Lowe) Fraser-Jenkins subsp affinis Equisetum pratense Ehrh.
  • Accounting Information Systems: an overview

    Accounting Information Systems: an overview

    Improve access of control of the data through security settings. Standardization of procedures and reports. 2- ... Control account. Coding. Sequence code. Block code. Group code. Mnemonic code. Chart of accounts. General ledger. Specialized journal. Audit trail. Entity. Attributes.
  • Indianas Local and Regional Food Logistics Assets &

    Indianas Local and Regional Food Logistics Assets &

    Strawberries- Poland- West Germany- Southern Germany. Corn and wheat powder- Holland- West Germany- Southern Germany. ... Source: Schuble, Todd, Esther Brown and Pamela Martin, The University of Chicago, Modeling the relationship between food, energy, and environmental impacts, 2011,
  • Medical Terminology - Marion County Public Schools

    Medical Terminology - Marion County Public Schools

    Examples: cardi = heart gastr = stomach neur = nerve Note: Word roots do not mean pertaining to or relating to; that meaning comes from the suffix. Combining Forms Created by adding a vowel (usually the letter "o") to the...
  • Foundations of Artificial Intelligence Bart Selman Problem Solving

    Foundations of Artificial Intelligence Bart Selman Problem Solving

    Problem formulation usually requires abstracting away real-world details to define a state space that can feasibly be explored. Variety of uninformed search strategies. Iterative deepening . search uses only linear space and not much more time than other uninformed algorithms....
  • THE ELECTOLYSIS OF WATER - Quia

    THE ELECTOLYSIS OF WATER - Quia

    IN OTHER WORDS - Stronger battery = more electricity = more gas produced (and faster, too) Faraday's laws continued Faraday's 2nd Law of Electrolysis - For a given quantity of electricity (electric charge), the mass of an elemental material altered...
  • Fieldwork 3 - cpb-us-w2.wpmucdn.com

    Fieldwork 3 - cpb-us-w2.wpmucdn.com

    OVERVIEW. The purpose is to provide practice with one part of the edTPA called the Context for Learning; This form also helps you identify specific needs in your classroom. The . Context for Learning . form is what the edTPA...
  • Suicide Prevention, Assessment and Management in Healthcare Staff

    Suicide Prevention, Assessment and Management in Healthcare Staff

    In many ways similar to the adult IS PATH WARM. Remember to be aware of social media use to show warning signs! Protective Factors in Medical Settings. Effective clinical care for mental, physical and substance use disorders.