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