用于对等同步的体系结构和类
Sync Services for ADO.NET 对等 API 体系结构旨在允许对等方之间互相交换变更,而不必通过中央服务器进行同步。Sync Services 还提供了旨在将客户端与中央服务器同步的 API;有关更多信息,请参见用于客户端与服务器同步的体系结构和类。在对等同步中,每个对等方通常包含可启动同步的应用程序代码和 Sync Services 代码。在每个同步会话期间,对等方成对进行同步。例如,有三个对等方,您可以同步对等方 1 和对等方 2,然后同步对等方 2 和对等方 3,最后同步对等方 1 和对等方 3。在每个同步中,其中一个对等方是本地对等方,另一个是远程对等方。您不需要将每个对等方与其他所有对等方同步,但是该操作将为系统提供冗余。在三个对等方的情况下,可以同步对等方 1 和对等方 2,然后同步对等方 2 和对等方 3。对等方 1 和对等方 3 将会通过对等方 2 各自收到来自对方的变更。
体系结构图中的组件
下面这些图展示了双层和 N 层体系结构所涉及的组件。体系结构图中的组件包括对等数据库以及 Sync Services API 中的一组类。N 层体系结构还包括您必须编写的代理和服务组件。
双层体系结构
第一张图展示了一个双层体系结构,它有两个对等数据库。
除了这两个数据库之外,图中的所有项目都对应于 Sync Services 类。这些类包含在以下 DLL 中:
Microsoft.Synchronization.dll 包含 SyncOrchestrator。在 Sync Framework 核心文档中介绍了 SyncOrchestrator 类。
Microsoft.Synchronization.Data.dll 包含 DbSyncProvider 和 DbSyncAdapter。
这些 DLL 依赖于 .NET Framework 2.0 或更高版本中的 System.dll 和 System.Data.dll。对于双层应用程序来说,在特定同步会话中,所有 Sync Services DLL 都驻留在本地对等方中。对于 N 层应用程序,某些 DLL 还必须驻留在远程计算机上。有关更多信息,请参见如何配置变更跟踪和同步对等方。
N 层体系结构
第二张图展示的是一个 N 层体系结构。这需要一个服务和一种传输机制来实现本地计算机上的代理与远程计算机上的服务之间的通信。与客户端和服务器同步不同,该代理是 Sync Services API 的一部分。您必须编写从 KnowledgeSyncProvider 派生的代理。在 Sync Framework 核心文档中介绍了 KnowledgeSyncProvider 类。若要下载此文档,请转到此 Microsoft 网站。然后,该服务与远程计算机上的 DbSyncProvider 进行通信。有关更多信息,请参见如何配置 N 层对等同步。
对等数据库
对等数据库可以是能够对其使用 ADO.NET 提供程序的任何数据库。有关如何跟踪每个数据库中的变更的信息,请参见如何配置变更跟踪和同步对等方。
Sync Services 类
上图中展示了以下类:SyncOrchestrator、DbSyncProvider 和 DbSyncAdapter。有关如何在应用程序中使用这些类的示例,请参见如何配置变更跟踪和同步对等方。
同步控制器
同步控制器通过以下方式驱动同步过程:
循环遍历要同步的每个表。
调用本地对等同步提供程序以检索和应用本地数据库中的变更。
调用远程对等同步提供程序以检索和应用远程数据库中的变更。
此外,同步控制器还维护同步操作的会话级别信息,并向启动同步的应用程序提供成功消息、错误和统计信息。有关更多信息,请参见 Sync Framework 核心文档中的 SyncOrchestrator。
对等同步提供程序
对等同步提供程序与每个对等方通信并将同步控制器与对等数据库的特定实现隔离开来。对等同步提供程序的主要活动如下所示:
存储与对等方中启用了同步的表有关的信息。
使应用程序能够检索自上次同步以来在对等数据库中发生的变更。
将增量变更应用于对等数据库。
检测发生冲突的变更。
有关更多信息,请参见 DbSyncProvider。
同步适配器
同步适配器模仿 ADO.NET 中的数据适配器,并为进行同步的每个表均定义同步适配器。同步适配器为对等同步提供程序提供了与对等数据库交互所需的特定命令,例如 InsertCommand,此命令可从一个对等数据库向另一个对等数据库应用插入。由于同步适配器使用 ADO.NET DbCommand 对象,因此可以使用 ADO.NET 支持的任意命令结构。这包括内联 Transact-SQL、存储过程、视图、函数等。这些命令只需要定义了要传输和应用的结构和数据的单个结果。有关更多信息,请参见 DbSyncAdapter。
API 中的其他类
本主题中的图展示了 API 中主要的类。但是,还有许多类没有在图中展示出来。若要获取与所有可用类有关的信息,请参见本文档和 Sync Framework 核心文档中的 Microsoft.Synchronization 以及 Microsoft.Synchronization.Data。以下部分介绍了您应该熟悉的其他三个重要的类。有关如何在应用程序中使用这些类的示例,请参见如何配置变更跟踪和同步对等方。
同步作用域
作用域是要同步的对象的逻辑分组。在对等数据库同步的情况下,作用域通常是一组表。有关更多信息,请参见 DbSyncScope。
同步会话统计信息
会话统计信息是同步控制器为每个同步会话提供的一组统计信息。统计信息包括与同步时间、所处理的变更数量以及所发生的任何冲突或异常有关的信息。有关更多信息,请参见 Sync Framework 核心文档中的 SyncOperationStatistics。
同步会话变量
会话变量是一些为开发人员提供的变量,用作在每个对等方上执行的选择、插入、更新和删除命令的参数。有关更多信息,请参见如何使用对等同步的会话变量。