Microsoft Sync Framework 系列(三):微软同步框架出现背景及要解决的问题
来源:互联网 发布:ios10软件推荐 知乎 编辑:程序博客网 时间:2024/06/05 19:28
持续连接的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 Sync Framework 系列(三):微软同步框架出现背景及要解决的问题
- Microsoft Sync Framework 系列(一):微软同步框架概述
- Microsoft Sync Framework 系列(八):微软同步框架中的自定义数据同步基础
- Microsoft Sync Framework 系列(五):微软同步框架中的元数据(Metadata)
- Microsoft Sync Framework 系列(六):微软同步框架中的知识(Knowledge)
- Microsoft Sync Framework 系列(七):微软同步框架中的参与者(participants)
- Microsoft Sync Framework 系列(九):微软同步框架中的提供者(Provider)
- Microsoft Sync Framework 系列(二):微软同步框架下载、文档、示例
- Microsoft Sync Framework 系列(四):微软同步框架中的基本概念
- Microsoft Sync Framework下的快速开发同步程序
- [转]Microsoft Sync Framework下的快速开发同步程序
- 说说微软刚出的同步框架Sync Services
- Microsoft Sync Framework同步数据库(一)概述和方案
- 整合三大框架出现的一些常见的问题及解决的方案
- Microsoft Sync Framework
- Microsoft Sync Framework
- 解决Firefox的Sync不能同步的问题
- 大家对微软推出的Microsoft Sync Framework和google推出的 google gears 有什么看法,有谁用过?
- 服务器上部分端口无法访问
- Microsoft Sync Framework 系列(二):微软同步框架下载、文档、示例
- Linux 命令专题:TOP
- SQL Server-存储过程
- python debug【】
- Microsoft Sync Framework 系列(三):微软同步框架出现背景及要解决的问题
- jquery焦点事件
- 获得linux的cpu信息
- CX51 用户手册----NOMOD517 伪指令
- 揭开正则表达式的神秘面纱
- substr 函数
- ExtJS控件样式的修改(示例无边框panel)
- Microsoft Sync Framework 系列(四):微软同步框架中的基本概念
- ServerSocket和Socket的区别