嵌入式系统数据同步协议---SyncML协议

手机开发实战134——SyncML介绍3 SyncML同步协议 3.1 动机:        表示协议并不足够来实现信息的交互性    可以在多种设备之间传输多种格式的数据        3.2 设计原则        满足网络延迟的需要    满足各种设备    满足现有的各种储存模式    满足多种安全需求    多种使用模式        3.3 Sync 类型    3.3.1双向同步      阅读详情
概述      
        SyncML是目前行业通用的移动数据同步化协议。它由SyncML initiative制定,是一种开放性协议。SyncML initiative最初由行业先锋Ericsson, IBM, Lotus, Motorola, Nokia, Palm Inc., Psion, Starfish Software初创,Matsushita最近也加入其中,使其会员达到9家。另外还有555家支持公司。SyncML initiative的目的就在于,与终端用户、设备开发商、数据提供商、基础构件开发商、应用软件开发商及服务提供商协同工作,以真正实现使用任何终端设备均可随时随地访问任何网络数据。 
        有了SyncML,用户就可以在他的移动设备上更多地使用应用软件和信息,如果对这些软件和信息有所更新,可以随时将这些更新同步化给办公室设备或同步化到网络上。          
 
协议构成
        2002年11月,SyncML initiative合并到了OMA(Open Mobile Alliance)。原有的SyncML标准被OMA整理分割成三个部分:SyncML common specification, Data synchronization specification(DS)和Device Management specification(DM)。每个部分都包含了一系列的标准。OMA将原来SyncML中同步和设备管理标准中公用的部分提取出来组成了SyncML common specification,彼此不同的部分仍然保留在各自的协议中。所以你会看到一些奇怪的现象,比如SyncML common specification,DM和DS中都包含了一个representation protocol,DM中的representation protocol和DS中的没有任何重叠部分,他们两个公用SyncML common specification中的representation protocol。     
       OMA SyncML从功能角度可以划分为四大部分:
1.         XML-based representation protocol
2.         OMA SyncML common
   3.         OMA Data Synchronization和OMA device Management
   4.         Tansprot binding for protocol
        
当前状态
         2006年7月份刚发布了DS 1.2版本。
         2007年2月份刚发布了DM 1.2版本,正在进行DM 1.2.1修订工作,同时在准备DM 2.0的工作,预计明年初启动。
 
通用同步协议的描述
        通用同步协议的目标是普遍适用,同步两端可以是任何一种类型、在任一种网络上面,这样会:
  •  同步网络数据与任一种移动设备
  • 同步移动设备与任一种网络数据
        数据同步协议会同步网络数据和很多不同的设备,包括掌上电脑、移动电话、自动计算机和桌面计算机。一个用户可以在不同的设备上访问、操作同样的数据集合,举个例子,用户可以使用掌上设备或者移动电话阅读电子邮件,还可以维护一个一致的、更新的纪录。
同样的,同步两端可以使用任意类型,这使得移动设备可以支持更多数据类型,包括电子邮件、日历、事务管理信息、数据库中的企业数据和Web文档。这种功能使得想要通过电子邮件接收订单的用户可以在同样的设备上访问公司的目录清单系统,用来最后决定交付日期。
实现这个目标,协议需要下列特性:
  • 可以有效的在有线和无线网络上运作
  • 支持多种传输协议
  • 支持任意的网络数据
  • 可由多种应用程序访问
  • 考虑到移动设备的资源限制
  • 构造于现有的全球互联网和Web技术之上
  • 协议最小功能就是赋予所有设备最常用的同步能力

SyncML 底层通讯
1 绑定Http
1.1 Tcp 传输服务
        Http通信一般是在 Tcp连接之上的,这个绑定不是必需的,如果Http基于其它的协议,那么需求也和下面Tcp定义的相似
1.1.1 连接
        在Http客户端连接到Http服务器端的时候,SyncML客户端建立一个Tcp连接在客户和服务器之间通过使用Tcp open操作,在超时的情况下还需要SyncML客户端从新建立连接。
1.1.2连接选项
        关于端口和协议版本的一些选项。
1.1.3 断开连接
        当连接不需要的时候,SyncML客户端负责使用tcp close操作结束连接。如果固定连接存在于Http请求中,Http连接的关闭有Http客户端来完成,当Http客户端接收到来自服务器的Http应答中指明这是最后一个SyncML的包。
1.1.4 终止
        有时候非正常时间发生会要求应用程序中断Tcp连接,这种情况下,Tcp从新初始化来结束当前连接。
1.1.5 超时
        当服务器超时,SyncML客户端需要重建一个新的HTTP会话并且Http服务器端会尝试从新发送当前的SyncML包
1.2. SyncML信息交换
        一旦Http连接建立,一个或者多个SyncML消息会通过连接由SyncML客户端传输,它们存在于Http客户端的请求或者Http服务器端的应答中。
在Http请求中POST方法用来传递SyncML消息。
1.2.1 每包一个消息
        下面是Http请求的部分代码:

POST ./servlet/syncit HTTP/1.1 Host: www.datasync.org Content-Type: application/vnd.syncml-xml; charset="utf-8" Content0Length: 1023 Accept: application/vnd.syncml-xml
        下面是Http应答的部分代码:

HTTP/1.1 200 ok Content-Type: application/vnd.syncml-wbxml; charset="utf-8" Content-LengthL 1023 --HTTP body---
1.2.2 一个包里包含多个消息
        每一个Sync消息必须使用SyncML MIME媒体类型在HTTP请求或应答中传递,当每个包里有多个SyncML消息的时候,每一个消息是否在分离的HTTP请求或应答传递依赖于它是否是SyncML的请求和应答。可以根据每一个SyncML消息是否有最后一个元素来判断这个包中是否有更多的SyncML消息,如够有最后一个元素,那么这消息就是该包中最后一个消息。
1.3 传输命令
        HTTP使用一系列的命令,包括传输方法,头部信息,请求的头部信息,应答的头部信息
1.3.1 传输方法
        SyncML客户端必须使用POST方法或者可以使用CONNECT方法(如果支持的话)来给SyncML服务器发送SyncML请求。CONNECT方法用来初始化SSL会话以验证HTTP客户和服务器,其他的方法目前没有用在SyncML客户端。
2 绑定Obex
3 绑定Wsp
 
同步类型
   本规范定了七种同步类型,将在下面表一种介绍
   表一 SyncML同步类型 
同步类型  
描述  
两方同步类型(Two-way sync)
普通的同步类型,客户端和服务器相互交换修改数据,客户端首先发送修改.
慢同步(Slow sync)
一种双方同步的形式,服务器需要比较客户端的每一项数据的每一个字段,这种同步方式客户端需要把全部数据发送给服务器.然后服务器进行比较.
客户端方同步(One way sync from client only)
客户端发送它的修改数据给服务器,服务器步发送修改给客户端
客户端更新同步
(Refresh sync
from client only)
 
客户端发送所有的数据给服务器,替换服务器中的数据
服务器端单方同步(One-way sync from server only)
客户端获得所有的服务器的修改数据,客户端不发送自己的修改数据给服务器
服务器端更新同步(Refresh sync
from server only)
服务器发送所有的数据给客户端,替换客户端的数据
服务器提醒同步Server Alerted Sync
服务器提醒客户端执行同步

 

SyncML表示协议
        SyncML表示协议没有指定数据同步协议、同步引擎。而是指定了一些同步框架、格式使之适应不同的数据同步模型。SyncML指定了很多同步操作的结果。
  • 定义了一种格式
  • 注册为 MIME(多用途网际邮件扩充协议)媒体格式
  • 定义了独立的同步传输协议
  • 可以适合于多种同步传输方式的需要
  • 与后台数据存储无关
  • 与同步对象类型分离
1 SyncML 命令
1.1 请求的命令
  • Add:允许发送者将数据元素加入到接收者可以识别的同步数据中去,该命令必须在Sync命令中指定。
  • Alert:允许发送者通知接收者,通知可以作为应用程序和应用程序之间消息或者是接收用户接口的显示消息扩展。
  • Atomic:允许发送者指明一个命令集合可在带有语义或者没有任何语义的执行。
  • Copy:允许发送者复制可被接受者接收的数据。
  • Delete:允许发送者删除可被接受者接收的数据。Delete命令可以包含一个请求魏实现数据存档,删除可以是回收删除或者实际删除。
  • Exec:发送者可以要求接收者调用一个命名的、可执行的程序。
  • Get:发送者可以从接收者那里申请数据元素,这个命令不能被Sync命令指定。
  • Map:发送者可以接收者更新标识符在两个数据集合之间。
  • Put:允许发送者发送数据给接收者,这个命令不能被Sync命令指定。
  • Release:允许发送者对接收者可以接受的数据元素进行替换,这个命令不能被Sync命令指定。
  • Search:允许发送者进行数据元素的查询。
  • Sequence:允许发送者指定一系列按顺序执行。
  • Sync:允许发送者指定包含的命令作为同步两个数据集合的部分。
1.2 应答的命令
  • Status:当处理前一个请求发生错误的时候,指明一个操作的完成状态。
  • Results:用来返回Get或者Search命令的数据结果。
2 SyncML数据格式
        SyncMl不但提供了通用的指令集合,还指明了一个小的通用的数据格式。数据格式提供了普通的为交换访问信息的媒体集合。例如通讯录、日历和消息。这三种数据格式是为了这个规范强制的,另外对于这些一般格式,SyncML允许鉴定其他的登记格式。SyncML利用MiME内容类型框架来鉴别数据格式。
3 使用XML
        SyncML消息是使用一种标记语言,而SynML表示协议其实是一个XML应用。SyncML DTD定义了用来表示SyncML消息的XML文档。SyncML大量的使用了XML的名空间,名空间必须在第一个元素类型声明。在SyncML DTD中的元素类型被定义在一个URI为“http://www.syncml.org/docs/syncml_represent_v10_20001207.dtd或者URN为syncml:syncml。SyncML DTD也可以被ISO 9070标准公用标示符-//SYNCML//DTD SyncML 1.0//EN识别。任何XML 的标准属性可以被用在SyncML文档中。
4使用 MIME
        互联网标准提供了一个工业界广泛接受的机制来鉴别不同的内容种类。SyncML消息用MiME媒体类型来鉴别,SyncML消息的媒体类型被登记在生产厂家列表中。目前有两个MIME内容可以用在SyncML消息中。applicattion/vnd.syncml+xml的MIME内容类型鉴别了SyncML消息基于文本的XML表达。applicattion/vnd.syncml+wbxml的MIME内容类型鉴别了SyncML消息基于文本的WBXML二进制表达。
5 SyncML标记语言描述
5.1 一般使用元素
        Archive、Chal、Cmd、CmdID、CmdRef、Cred、Final、Lang、LocURI、MsgID、MsgRef、NoResp、NoResult、RespURI、SessionID、SftDel、Source、SourceRef、Target、TargetRef、VerDTD、VerProto。
5.2 消息容器元素
        SyncML、SyncHdr、SyncBody。
5.3 数据描述元素
        Data、Item、Meta。
5.4 协议管理元素
        Status。
5.5 协议命令元素
        Add、Alert、Atomic、Copy、Delete、Exec、Get、Map、MapItem、Put、Replace、Result、Search、Sequence、Sync。
详细内容请查阅相关文档。
SyncML协议 用SyncML表示层协议(using the SyncML Representation protocol)定义同步协议.本协议的名称称为SyncML 同步协议,为不同的同步过程定义协议,同步过程发生在SyncML客户端和服务端.它们间的消息顺序图参考MSC's. 本规范包含了一些普通的有用的同步案例 立即下载

相关推荐

syncml 的文档

syncml的定义描述 syncml的定义描述 syncml的定义描述

数据同步协议---SyncML入门

   概述             SyncML是目前行业通用的移动数据同步化协议。它由SyncML initiative制定,是一种开放性协议。SyncML initiative最初由行业先锋Ericsson, IBM, Lotus, Motorola, Nokia, Palm Inc., Psion, Starfish Software初创,Matsushita最近也加入其中,使其会员

Mark.Yin 的专栏----人民需要无线 2162

SyncML数据同步协议的核心模块实现

SyncML数据同步协议的核心模块实现,送给需要的朋友。主要讲解了syncml数据同步协议的实现

syncml

<br />  1 SyncML协议简述 <br /><br />  牋牋目前,移动计算和通信设备的流行很大部分原因是因为它们具有一些方便的功能,比如说在需要时可以发送信息给其他用户,用户希望随时随地都可以利用掌上设备访问信息和执行应用程序,甚至在飞行中也可以获得和更新信息。 <br /><br />  牋牋具有在一台掌上设备运行应用程序和处理信息、还可以将应用程序和信息的更新同步回到办公室的设备或者网上的这种能力对于普遍、离线计算的效用和流行是一个关键。 <br /><br />  牋牋遗憾的是,到今天为

mutouji的专栏 1458

Contest 226 - C - Martial artist

from atcoder Problem Statement Time Limit: 2 sec / Memory Limit: 1024 MB Score :300300points Takahashi is a martial artist. There areNNmoves that a martial artist can learn, called Move11,22,\ldots…,NN. For each1 \leq i \leq N1≤i≤N, it takes...

m0_54674275的博客 1020

【完美解决】Anaconda3安装后缺失大量文件,没有scripts、Library等目录

Anaconda3是官网下载的:https://www.anaconda.com/distribution/#download-section 我选择的是64位python 3.7的版本。 问题出现及现象: 我自己选择了一个D盘的目录D:\Tools\Anaconda3进行安装,装完后发现conda list命令无法执行,首先都到的是配置环境变量,然后发现安装目录下缺失大量文件(如下图)...

android之行 3万+

数据交换的数据同步:实现多设备之间的数据同步

1.背景介绍 数据同步是现代人工智能和大数据技术的基石,它在各种应用场景中发挥着重要作用。在智能手机、平板电脑、电脑、智能家居设备、智能汽车等各种设备之间,数据同步技术可以实现数据的实时同步,从而提高用户体验和提高系统的可靠性。在这篇文章中,我们将深入探讨数据同步的核心概念、算法原理、具体实现和未来发展趋势。 1.1 数据同步的重要性 数据同步在现代技术中具有重要的作用,主要表现在以下几个方...

AI天才研究院 2945

【pprof】简要学习教程

基本介绍 pprof 是在做性能优化前的性能分析工具。 安装: go get -u github.com/google/pprof 分析工具 go tool pprof 是命令行指令,用于分析 Profiling 数据,源数据可以是 http 地址,也可以是已经 dump 下当 profile 文件;查看模式可以命令行交互模式,也可以是浏览器模式(-http 参数)。 两种应用 服务型应用 _ "net/http/pprof" 包,专用于采集 web 服务 运行数据的分析。即在运行的服务中通过 API .

码农印象 884

SYNCML协议

SYNCML协议用于处理客户端和服务端的数据同步机制。 比如手机上的pushmail,其本质可以理解为客户端和服务端数据同步的实现。 首先,客户端需要进行一个初始化,从server获取全量数据,完成后标识客户端的数据锚点,代表当前client数据的状态。 当服务端收到另一个客户端的数据改动请求,并更新数据后,则需要对其它所有客户端进行sync通知。其它客户端收到通知后,将自己的锚点发...

一个2年工作经验的程序测试员 541

ESP32搭配FT6236触摸屏:从芯片手册到完整I2C驱动代码的保姆级解析

本文详细解析了ESP32搭配FT6236触摸屏的I2C驱动开发过程,从芯片手册解读到完整代码实现。通过硬件架构分析、寄存器配置、I2C通信封装及触摸数据处理等步骤,提供了一套完整的驱动解决方案,帮助开发者快速掌握ESP32与触摸屏的交互技术。

weixin_29174385的博客 294

大模型-高通平台性能测试示例-2

在QNN中,可以使用(genis-t2t-run)和这两个工具来进行推理的性能分析。支持在QNX操作系统或Android操作系统上进行性能分析。:提供基本的性能数据,如运行时间、资源消耗等。:提供更详细的性能数据,可能包括各个操作的执行时间、资源使用情况等。:是指在性能分析的同时进行代码质量检查,以发现潜在的问题。:是指跟踪和分析神经网络中各个操作的性能,以优化网络结构或参数。

点滴的岁月 1493

嵌入式系统数据同步协议 SyncML 简介

目前在嵌入式系统与其他通信设备的数据同步方面,业界还没有统一的标准、协议。为了解决这个问题,IBM、 Lotus、Motorola、Nokia、Palm Inc、Psion、Starfish Software已经形成了SyncML协议的标准草案。这个草案将会发展成为一个通用的可以被用在工业界的同步协议。本文简单介绍了SyncML协议与 应用该协议的工具包。 ...

seaofforest的专栏 328

Orin+ GMSL (Ser 9295+Des 9296)流程分析(1)

orin gmsl

乐于分享 2658

SyncML资源汇总

NEW: vCard 标准 vCard Overview PEAR 中的一个 vCard 解析与生成的类 PHP vCard class v2.0 SF.net 上的 vCard PHP 项目 VCard 通信薄格式说明 syncml 协议(SyncML Sync Protocol) 1.1 版本中...

编程开发资料库 150

MATLAB 与 STK 互联导出导弹轨迹及速度数据(csv导出)

本文介绍了如何通过 MATLAB 脚本连接 STK 提取导弹三维轨迹数据,并以 CSV 格式导出,包含以下关键内容:自动连接 STK 场景;获取所有导弹对象;提取 J2000 坐标系下的位置和速度;加入任务优先级与状态;导出为标准 CSV 文件;

weixin_52370774的博客 779

4、接收天线:接收电压、功率和传输系数

本文详细探讨了接收天线的性能参数,包括接收电压、功率和传输系数,通过建立等效电路模型分析接收偶极子的电流和开路电压,并定义电压和功率传输函数。研究揭示了天线长度、工作频率及极化失配对传输性能的影响,并提出了优化接收天线性能的策略,为天线系统的设计与优化提供了理论支持。

ll5678的博客 233

嵌入式系统数据同步协议

SyncML 简介姜君工程师, 蓝点软件北京研发中心2001 年 2 月 目 前在嵌入式系统与其他通信设备的数据同步方面,业界还没有统一的标准、协议。为了解决这个问题,IBM、Lotus、Motorola、Nokia、 Palm Inc、Psion、Starfish Software已经形成了SyncML协议的标准草案。这个草案将会发展成为一个通用的可以被用在工

sunrock的专栏 2406

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

嵌入式系统数据同步协议(转)

嵌入式系统数据同步协议(转)[@more@]SyncML 简介 姜君 蓝点软件北京研发中心工程师 内容: SyncML协议简述 SyncML 底层通讯 SyncML同步协议 SyncML表示协议 SyncML 参考工具包 相关资...

cudao7505664的专栏 202

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

linux移动数据,基于嵌入式Linux移动数据同步研究与实现

内容介绍基于嵌入式Linux移动数据同步研究与实现1.5万字 39页资料压缩包内包括开题报告,任务书,答辩PPT,论文正文,程序代码,资料内容完整,推荐下载!摘要数据同步是移动计算中一种重要的应用模式,进行数据同步的目的是为了在两个实体间交换修改数据并保持实体的连续性。由于经常性的交互,存储在移动设备上的信息通常存在着多个副本。为了使人们正确地共享交流信息,必须及时保持这些信息的副本的一致与...

weixin_42166105的博客 199

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

数据同步的技术支持有哪些?

数据同步技术方法大解析!

oOBubbleX的博客 1279

数据同步,原来是这么回事!

深入解析数据同步在数据湖架构中的核心作用及实施难点。数据同步通过全量、增量(CDC)及实时策略,将异构数据源整合至数据湖以保障一致性、实时性,但实践中常面临三大挑战:源端异构性、传输层质量与效率、目标端兼容,针对这些挑战提出分阶段解决方案。 强调数据同步并非简单传输,而是涵盖“采集-处理-存储”全链路的系统工程,可以结合技术工具(如FineDataLink)与流程规范,支撑数据的高可用性与分析价值,为企业数字化转型提供保障。

oOBubbleX的博客 3002

什么是SyncML

SyncML是一个无线设备的数据同步协议,已经发展成为一个具有很强实用性的工业标准。 在目前情况下,大部分的设备并不总是和网络连接的,两个终端之间更不是总是互连联接的,大部分时间里,终端设备总是在独立的处理各自的数据,这就产生了一个问题,在一个终端处理的数据,我还想到另一个终端使用,该怎么办? SyncMl目的就是保证各种无线设备之间的数据一致性,比如PDA,笔记本,手机等等保持数据的一致。它...

dalezhu的专栏 324

zab(数据一致性协议)

zk选举

晓魏 1063

SyncML同步协议

 七种同步类型 在SyncML同步协议中定义了七种同步类型: ● 双向同步 是最常见也最具有代表性的一种同步,其他同步过程都和它有很多相似之处。双向同步总是由客户机首先发起,然后客户端和服务器互换更新信息。同步过程如下:同步初始化;客户端准备要发送的数据;客户端发送自己的更新信息;服务器接收并进行分析处理;服务器返回处理的状态信息和自己的更新信息;客户端接收更新信息并对自己的数据库进行

zysee的专栏 1248
上一篇: RSS 2.0 规范
下一篇: 一个SyncML协议的例子
only_
博客等级 码龄19年 15粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值