- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
‘沃云’服务端概要设计version: 0.1last update:2012-3-23版本历史版本提案人批准人日期描 述0.1杨鹏 目 录1架构概要52核心模块设计62.1同步引擎62.1.1数据同步62.1.2SyncML 协议92.2沃云服务器高级架构102.2.1同步引擎架构102.2.2同步服务器架构102.2.3同步引擎122.3交换流程122.4同步处理132.4.1准备142.4.2同步152.4.3完成162.5同步时序图162.6SyncSource扩展182.6.1SyncSource接口和相关类182.6.2Principal和Since Timestamp192.6.3同步项192.7SAPI202.7.1基本URL配置212.7.2沃云SAPI222.7.3PUT 与 POST 方法222.7.4安全232.8推送引擎233功能定义243.9通用服务243.9.1用户管理243.9.2好友和好友组日志服务安全253.10同步服务253.11分享服务263.12备份服务273.13消息中心284系统数据量分析285数据库设计296开发环境29架构概要沃云服务端是沃云平台的核心服务部分,为各类终端或其他业务系统提供身份验证、同步引擎、安全、日志、以及其他业务服务。系统架构图如下图示:其部署结构图如下图示:核心模块设计同步引擎数据同步把所有移动设备、PC需要同步的数据存储在服务器上,应考虑以下几个方面:?传输设备之间的数据更新;?克服移动设备的无线连接限制;?最大限度地减少数据访问延迟;?保证IT基础设施的可扩展性,以适应客户端和连接数的大大增加;?了解移动应用的需求,提高用户体验。数据同步过程是两组数据保持一致(如下图示)。这涉及到许多概念,最重要的是:?ID处理?变更检测?变更交换?冲突检测?冲突解决?快同步和慢同步数据同步处理ID 处理所有用户共享存储在集中数据库的数据,需协调客户端和服务器的ID,以使信息保持一致:?客户端和服务器上的编码规约;?每个客户端生成全球唯一的ID(GUID),服务器接受客户端生成的ID;?服务器生成全球唯一的ID(GUID),每客户端接受这些ID;?客户端和服务器生成自己的ID,以及保持两者之间的映射。客户端ID被称为本地唯一标识符(LUID)和服务器端ID被称为全球唯一标识符(GUID)。变更检测变更检测是确定哪些数据是因为在特定的时间点(即最后一次同步)改变的过程。这通常是利用额外的信息,如时间戳和状态信息。例如下表所示数据:然而,有时遗留数据库不提供所需的信息来完成一个有效的变化检测。因此,这个问题变得更加复杂,必须采用其他方法(例如,基本的内容比较)。变更交换定义同步协议作为数据同步基础架构的重要部件,以确保客户端和服务器之间的数据交换。客户端和服务器必须使用同步会话的发起和进行。同步协议的修改命令集有以下:? Add? Replace? Delete冲突检测冲突是指不同终端对数据修改后产生不一致的两个新版本,那么当再次同步时产生的版本冲突。如下表所示:在同步矩阵的符号具有下列含义:X : 什么也不做A : A覆盖BB : B覆盖AC : 冲突D : 从数据源中删除冲突解决解决冲突的策略如下:?不解决?客户端覆盖服务器?服务器覆盖客户端?基于时间戳:最后修改(时间)的数据获胜?最后/第一胜:过去/初到项目获胜?用户决定 慢同步和快同步同步模式分为快同步和慢同步。快同步是一个优化的过程,只涉及更改的项目。快同步依赖于在过去一段时间内设备完全同步,当这个前提不成立时(例如,设备已经被重置,并已失去了上次同步的时间戳),此时进行慢同步。在这种情况下,客户端发送它的整个数据库服务器。按照数据传输的方向,又可以分为单项同步和双向同步:?客户端到服务器:服务器更新其数据库与客户端变更,但不发送服务器端的变更。?服务器到客户端:客户端更新其数据库服务器变更,但不发送客户端的变更。?双向同步:客户端和服务器交换的变更和两个数据库相应的更新。SyncML 协议SyncML (Synchronization Markup Language)是一种平台无关的信息同步标准协议。 一个开放的标准,可以在兼容的设备、程序及网络进行数据同步,意思是,任何设备或程序可以获得一致的数据。SyncML是基于XML的(可扩展的标识语言)。SyncML目的是在若干网络,平台及设备间进行一个开放的,全行业规范的普遍的远程数据及个人信息的同步,是为了发展一个可以在兼容的设备和程序间广泛使用单一的,普通数据同步协议。SyncML的定义如下:·SyncML是一个新的产业发展和促进一个单一的,共同的数据同步协议,可用于全行业的主动。?SyncML是一个通用的基于XML的格式规范的数据同步框架和联网设备数据同步协
文档评论(0)