ICS Evaluation Criteria

Topic Last Modified: 2008-08-07

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

Criteria Incremental Change Synchronization (ICS)

Application Domain

Applications 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 Objects

ICS 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 model

The information that represents changes made to the Exchange store is provided in an IStream.

Threading Models

Because 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 Architectures

ICS 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 Usage

The 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.

Transactions

The 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 Capabilities

The ICS interfaces do not contain any special application-management features.

Availability

ICS is supported in all versions of Exchange. Future versions after Exchange 2003 might not include, or provide access to, this technology.

Development Criteria

Criteria Incremental Change Synchronization (ICS)

Languages and Tools

Applications that use ICS can only be created by using native C/C++.

Managed Implementation

ICS 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.

Scriptable

No.

Test/Debug Tools

No special debugging tools are needed to debug applications that use ICS.

Expert Availability

Expert 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 Information

Both 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.

Developer / Deployment Licensing

No 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

Criteria Incremental Change Synchronization (ICS)

Design-Time Permissions

The 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 Permissions

No special permissions are required to set up applications that use ICS.

Run-Time Permissions

The 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 Features

None.

Security Monitoring Features

None.

Deployment Criteria

Criteria Incremental Change Synchronization (ICS)

Server Platform Requirements

Synchronization 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 Requirements

ICS 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 Methods

Applications that use ICS can typically be deployed by using standard application installation tools and methods.

Deployment Notes

Because 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.