当前位置:文档之家› 嵌入式系统数据同步协议

嵌入式系统数据同步协议

/content/06/0804/10/10268_173028.shtml

SyncML 简介

级别: 初级

姜君, 工程师, 蓝点软件北京研发中心

2001 年 2 月 01 日

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

1 SyncML协议简述

目前,移动计算和通信设备的流行很大部分原因是因为它们具有一些方便的功能,比如说在需要时可以发送信息给其他用户,用户希望随时随地都可以利用掌上设备访问信息和执行应用程序,甚至在飞行中也可以获得和更新信息。

具有在一台掌上设备运行应用程序和处理信息、还可以将应用程序和信息的更新同步回到办公室的设备或者网上的这种能力对于普遍、离线计算的效用和流行是一个关键。

遗憾的是,到今天为止还有两种方式没有实现:

∙支持任何移动设备同步的网络数据

∙支持同步人和网络数据的移动设备

这样一来,需要为移动设备增加很多用来同步不同的,尽可能多的数据所需要的协议,这些协议中的每一个仅适用于在一个选定的设备子集上进行选定的传输和运行,并且可以访问一部分网络数据,单一同步标准的缺乏为最终用户、设备制造商、应用程序开发者和设备提供商制造了很多问题

SyncML是一个新的标准,为了开发一个简单、通用的可以用于工业界方面的数据同步协议,推进这个标准的有IBM、Lotus、Motorola、Nokia、Palm Inc、Psion、Stafish Software。其他的公司、企业不断的被补充进来。

1.1 通用同步协议的优点

下面让我们看看适合工业界范围的数据同步协议对于每组角色的有益之处。

1. 最终用户:今天移动设备用户可能在每一种设备上使用了不同的同步产品。这样就会,有一种程序用来在膝上电脑和网络数据之间同步文件,另一种用来同步掌上电脑的日历,还有远程email访问,每一种技术只能用来同步少数应用程序或者被限制成特殊类型的网络连接。这种安排安装昂贵、配置和操作复杂、管理昂贵。使用SyncML,用户可以购买可以使用广泛的数据类型的设备。

2. 设备制造商:当每一个设备制造商想要支持这种能支持所有用户和服务提供商进行数据访问的技术。实际上一个设备会支持一种数据同步技术。这种选择迫使制造商压缩存储空间、内存、电源的用量和消耗。设备制造商会从通用的协议中获得好处,这种通用的协议使设备共同使用广泛的应用程序、服务、网络和传输技术。

3. 服务提供商:正在进入快速增长的应用程序舞台的服务提供商非常关注这样

一个现象,即同步技术的增多会使在有效的成本下扩展用户和支持用户成为不可能。现在服务提供商已经支持一定范围的数据类型和应用中的设备;还必须安装、配置多种服务的基础结构,维护和支持这些基础结构,并且保证兼容性和性能。现在可选的是利用单独的数据连通方案,陷入了避免紧密结合的私有解决方案。使用SyncML,将会使提供支持广阔的应用程序的连接成为可能。4. 应用程序开发者:选择支持多种同步技术可以使应用程序支持更多的设备类型和网络数据,但是这种选择有一些浪费。为了保持向下兼容性开发者失去了选择网络数据仓库的灵活性,这也会增加程序开发的消耗和最终产品的复杂性。增加了复杂性的网络数据仓库对服务供应商的安装和采用是一个障碍。使用SyncML,可以开发能连接更多设备集合和网络数据的应用程序。

1.2 通用同步协议的描述

通用同步协议的目标是普遍适用,同步两端可以是任何一种类型、在任一种网络上面,这样会:

∙同步网络数据与任一种移动设备

∙同步移动设备与任一种网络数据

数据同步协议会同步网络数据和很多不同的设备,包括掌上电脑、移动电话、自动计算机和桌面计算机。一个用户可以在不同的设备上访问、操作同样的数据集合,举个例子,用户可以使用掌上设备或者移动电话阅读电子邮件,还可以维护一个一致的、更新的纪录。

同样的,同步两端可以使用任意类型,这使得移动设备可以支持更多数据类型,包括电子邮件、日历、事务管理信息、数据库中的企业数据和Web文档。这种功能使得想要通过电子邮件接收订单的用户可以在同样的设备上访问公司的目录清单系统,用来最后决定交付日期。

实现这个目标,协议需要下列特性:

∙可以有效的在有线和无线网络上运作

∙支持多种传输协议

∙支持任意的网络数据

∙可由多种应用程序访问

∙考虑到移动设备的资源限制

∙构造于现有的全球互联网和Web技术之上

∙协议最小功能就是赋予所有设备最常用的同步能力

回页首

2 SyncML 底层通讯

2.1 绑定Http

2.1.1 Tcp 传输服务

Http通信一般是在 Tcp连接之上的,这个绑定不是必需的,如果Http基于其它的协议,那么需求也和下面Tcp定义的相似

2.1.1.1 连接

在Http客户端连接到Http服务器端的时候,SyncML客户端建立一个Tcp连接在客户和服务器之间通过使用Tcp open操作,在超时的情况下还需要SyncML 客户端从新建立连接。

2.1.1.2连接选项

关于端口和协议版本的一些选项。

2.1.1.3 断开连接

当连接不需要的时候,SyncML客户端负责使用tcp close操作结束连接。如果固定连接存在于Http请求中,Http连接的关闭有Http客户端来完成,当Http 客户端接收到来自服务器的Http应答中指明这是最后一个SyncML的包。

2.1.1.4 终止

有时候非正常时间发生会要求应用程序中断Tcp连接,这种情况下,Tcp从新初始化来结束当前连接。

2.1.1.5 超时

当服务器超时,SyncML客户端需要重建一个新的HTTP会话并且Http服务器端会尝试从新发送当前的SyncML包

2.1.2. SyncML信息交换

一旦Http连接建立,一个或者多个SyncML消息会通过连接由SyncML客户端传输,它们存在于Http客户端的请求或者Http服务器端的应答中。

在Http请求中POST方法用来传递SyncML消息。

2.1.2.1 每包一个消息

2.1.2.2 一个包里包含多个消息

每一个Sync消息必须使用SyncML MIME媒体类型在HTTP请求或应答中传递,当每个包里有多个SyncML消息的时候,每一个消息是否在分离的HTTP请求或应答传递依赖于它是否是SyncML的请求和应答。可以根据每一个SyncML消息是否有最后一个元素来判断这个包中是否有更多的SyncML消息,如够有最后一个元素,那么这消息就是该包中最后一个消息。

2.1.3 传输命令

HTTP使用一系列的命令,包括传输方法,头部信息,请求的头部信息,应答的头部信息

2.1.

3.1 传输方法

SyncML客户端必须使用POST方法或者可以使用CONNECT方法(如果支持的话)来给SyncML服务器发送SyncML请求。CONNECT方法用来初始化SSL会话以验证HTTP客户和服务器,其他的方法目前没有用在SyncML客户端。

2.2 绑定Obex

2.3 绑定Wsp

相关主题