Microsoft Sync Framework 系列(三):微软同步框架出现背景及要解决的问题

持续连接的C\S,B\S系统存在固有的缺陷,偶尔连接系统(OCA)在试图解决这些问题的同时又引入了新的问题。开发offline系统存在很多挑战,这些挑战都是 Microsoft Sync Framework  要面对的,并且应该为应用开发者提供合理的解决方案。

MSF is a comprehensive synchronization platform that enables developers to add synchronization capabilities to applications, services and devices. MSF solves the fundamental problem of how to synchronize any type of data in any store using any protocol over any topology. Fundamental to MSF is the ability to support offline and collaboration of data between any types of endpoints (e.g. device to desktop, device to server, etc.).

持续连接系统的不足:

  • 要求实时联网,这种要求有时是没有必要的;
  • 数据访问速度受网络和服务器压力的影响;
  • 单点依赖(Single Point of Failure),如果应用服务器或者数据库出现问题,则所有客户端都将无法操作;
  • 服务器扩展性,基本上只能通过增加硬件投入来解决高负载下的性能问题;

偶尔连接应用 OCA(Occasionally Connected Application )的优势:

  • 本地数据缓存,提供离线(offline)支持;
  • 合理利用客户机的处理能力,提升系统响应速度;
  • 减小服务器端应用服务器和数据服务器的压力;

构建偶尔连接系统(Occasionally Connected System)的挑战:

  • 跟踪对数据的更改(change tracking),用什么样的方式记录下更改的数据;
  • 维护更改的数据(Maintaining Change Data),改变跟踪数据会迅速增长;
  • 冲突检测与解决(Conflict Detection and Resolution),如何检测冲突,如何定义冲突解决策略;
  • 数据交换优先级(Prioritizing Data Exchange),优先交换那些重要的具有决定性意义的数据以改善系统性能;
  • 后台同步(Background Synchronization),最好采用异步方式同步,而不会因为数据同步过多的影响用户的操作;
  • 多种同步拓扑(Multiple Synchronization Topologies),可以是中心发射型,可以是端对端的P2P,也可以是简单的C\S。
  • 自定义的客户端和服务器数据库(Custom Client and Server Databases),即允许使用微软提供的Provider进行同步,也可以通过自定义Provider来同步web services, file systems 和 custom data stores。
  • 安全(Security),数据库加密(Database encryption),数据库认证(Database authentication),数据加密同步(Encryption of data synchronization),内部认证(Internal authentication)。

这些都是令人头疼的“数据同步”问题。“数据同步”问题是必须解决的问题,也是必须开发的功能。然而,数据同步并不是用户需求。微软曾推出两种数据方案:远程数据访问(RDA), 合并复制(Merge replication),这两种方案主要用于以数据库作为数据源的数据同步,并且不是特别灵活,不能解决很多遗留系统问题。

在缺少统一的开发框架的情况下出现了如下问题:

  • 重复发明轮子,人们创建了无数的专用的数据同步解决方案(single-purpose solutions);
  • 核心的复杂的问题在所有专用解决方案中重复出现,并且不容易解决(falling into the same pitfalls explored by others);
  • 这些专用解决方案往往是为了解决具体问题而不具有通用性(relied too heavily on specific topologies, data types, stores or business logic);

为此,微软推出了 Microsoft Sync Framework (MSF),MSF 作为新一代的统一同步框架,试图来解决或者简化以上问题。
 

MSF 同步框架想要达到的目标:

  • 强大:解决同步系统中的核心问题和困难问题;
  • 灵活:数据无关,协议无关,设备无关,并且可以在原有系统中使用;
  • 简单:通过简单的组合使用在任何架构的同步系统中;

后面文章中我们会根据具体的场景、概念、设计原理对上面提到的进行详细介绍。

参考:

Introduction to the Microsoft Sync Framework Runtime

Introduction to Occasionally Connected Applications using Sync

Introducing Microsoft Sync Framework- Sync Services for File Systems

你可能感兴趣的:(Microsoft)