0 out of 1 rated this helpful - Rate this topic

Incremental Change Synchronization (ICS)

Exchange Server 2003
This topic provides information about using Incremental Change Synchronization (ICS) to develop messaging applications.

Introduction

ICS provides a mechanism to monitor and synchronize changes to an information store hierarchy or content. The changes include creating, modifying, and deleting folders and messages.

Caveats

ICS agents can only be created by using C/C++.

Functional Criteria

CriteriaIncremental Change Synchronization (ICS)
Application DomainApplications that use ICS typically synchronize changes between Exchange and non-Exchange information stores. ICS can also be used for one-way and two-way synchronization between Exchange stores.
Major ObjectsICS consists of three interfaces: IExchangeExportChanges, IExchangeImportHierarchyChanges, and IExchangeImportContentChanges. Applications obtain these interfaces by using the MAPI OpenProperty function on the PR_HIERARCHY_SYNCHRONIZER and PR_CONTENTS_SYNCHRONIZER properties.
Data Access ModelThe information that represents changes made to the Exchange store is provided in an IStream.
Threading ModelsBecause the ICS system provides information about incremental changes that have been made to the Exchange store, only one thread at a time should be allowed to retrieve or send data to Exchange by using the ICS interfaces.
Application ArchitecturesICS applications are typically constructed as a system of three services: a collector that gathers the changes from the source store, a synchronizer that applies the changes to the destination store, and an agent that schedules and manages the synchronization process. In addition, a GUI application is typically supplied to configure the synchronization system.
Remote UsageThe ICS interfaces operate via MAPI, and so can be executed remotely. When synchronizing changes offsite, or across the Internet, a proxy collector and remote agent are recommended, and data should be encrypted during transmission between them.
TransactionsThe ICS interfaces do not support transactions. To ensure a more robust operation, the synchronization agent should maintain information about which changes have been successfully applied to the destination store.
Management CapabilitiesThe ICS interfaces do not contain any special application-management features.
AvailabilityICS is supported in all versions of Exchange. Future versions after Exchange 2003 might not include, or provide access to, this technology.

Development Criteria

CriteriaIncremental Change Synchronization (ICS)
Languages and ToolsApplications that use ICS can only be created by using native C/C++.
Managed ImplementationICS is accessed as part of MAPI, and both are unmanaged components. Although MAPI can be used via a COM interoperability assembly with the .NET Framework, the ICS interfaces are not accessible via COM or automation. For this reason, only native C/C++ can be used to build applications that use ICS.
ScriptableNo.
Test/Debug ToolsNo special debugging tools are needed to debug applications that use ICS.
Expert AvailabilityExpert MAPI programmers can be difficult to find, and learning the technology can take a significant amount of time. In addition to the Microsoft communities, there are a relatively small number of high-quality third-party Web sites that provide helpful MAPI development information. It may be very difficult to find developers who have any significant direct experience with ICS.
Available InformationBoth Microsoft and third-party books that describe MAPI programming are available. Information about ICS is available in the Exchange 5.5 SDK. For more information about MAPI and ICS, see the MSDN Web site Online link.
Developer/Deployment LicensingNo special licensing is required for developing by using MAPI. Refer to your Exchange, MSDN subscription, and other appropriate licensing agreements to determine whether additional licenses are required for the servers to be synchronized by your ICS applications.

Security Criteria

CriteriaIncremental Change Synchronization (ICS)
Design-Time PermissionsThe developer must have permissions to access the data in the Exchange store if the ICS application runs under the developer's security context. In the case of ICS, this depends on the permissions required to access the data being synchronized. In addition, access to the destination system must also be permitted to the user under which the synchronizer runs.
Setup PermissionsNo special permissions are required to set up applications that use ICS.
Run-Time PermissionsThe user account under which an ICS-based application runs must have permission to access the data in the Exchange store if the ICS application runs under the developer's security context. In the case of ICS, this depends on the permissions required to access the data being synchronized. In addition, access to the destination system must also be permitted to the user under which the synchronizer runs.
Built-in Security FeaturesNone.
Security Monitoring FeaturesNone.

Deployment Criteria

CriteriaIncremental Change Synchronization (ICS)
Server Platform RequirementsSynchronization applications use MAPI to access ICS. The collector must have access to the Exchange store where the data to be synchronized is stored.
Client Platform RequirementsICS is generally not considered a client technology. The agent portion of the application is likely to have a user interface in which the resources for synchronization can be chosen.
Deployment MethodsApplications that use ICS can typically be deployed by using standard application installation tools and methods.
Deployment NotesBecause ICS relies on Exchange MAPI, the installer application should verify that the proper version of MAPI is installed and correctly configured. ICS applications are likely to be architected as three services (the collector, synchronizer and agent), and one GUI application that allows a user to configure the synchronization source, target, schedule, and so on.
Did you find this helpful?
(1500 characters remaining)
© 2013 Microsoft. All rights reserved.