当前位置:首页 > 通信技术 > 通信技术
[导读]在简要介绍SynCML (Synchronization Markup Language)数据同步规范的基础上,对SyncML发起组发布的官方实现——SyncML参考工具包SRTK (SyncML Reference Toolkit)的结构和工作模式进行详尽分析;在此基础上进一步深入研究移动终端设备中SyncML Client软件的实现方法。

    移动通信技术和计算机技术的进步促进了移动计算和通信设备的流行,人们开始使用越来越多而且是各种各样的移动终端设备进行通信,处理和存储各种数据和信息。众多的终端设备使得不同设备间相同的数据和信息常常处于不一致的状态,这就需要进行移动数据同步。在当前的移动数据同步领域,存在着众多互不兼容的不同厂商各自的数据同步标准,给最终用户、设备制造商、应用程序开发商和服务提供商带来了很多的问题。针对这种混乱的状况,制定一个统一的通用数范必须能够在任何一种网络传输协议之上和任意的数据设备之间同步任何一种协议所定义的数据和信息。


1 SyncML简介
    SyncML数据同步规范〔1-6〕是由数据同步论坛组织一SyncML发起组(SyncML Initiative)一制定的一个通用数据同步标准。由于SyncML数据同步规范是由国际上众多的包括Ericsson、IBM、Lotus、Matsushita、Motorola、Nokia、Openwave和Starfish在内的众多公司,根据通用数据同步规范的要求共同制定完成的,所以该规范目前已经成为一个被广泛接受的工业界通用的同步
协议标准。国际电信联盟已认可其为下一代移动通信标准的组成部分。
    SyncML数据同步规范主要包括3个部分,即SyncML同步协议(SyncML Sync Protoc01)、SyncML表示协议(SyncML Representation Protoc01)和SyncML的传输方式绑定(目前仅包括SyncML HTTP Binding、SyncML OBEXBinding和SyncML WSP Binding)。SyncML同步协议主要定义了数据同步操作的会话流程、会话过程中的数据交互过程、同步双方的握手过程及数据同步的类型等SYncML表示协议主要定义了同步所支持的数据类型、命令格式以及在各种网络上传输的SYncML消息格式。SyncML消息可以在任何一种有线和无线的网络上传输,在SYncML协议的传输方式绑定中定义了在HTT P(HyperText Transfer Protocol,超文本传输协议)、WSP(Wireless Session Protocol,无线会话协议)、OBEX(Object Exchange Protocol,对象交换协议)三种协议的网络链接上传输SyncML消息的方式。这三种传输协议基本上涵盖了所有的远程和短程连接。

    在SyncML同步协议中,定义了SyncML客户端和SyncML服务器端之间消息的交互过程,包括同步双方数据标识符的定义及映射、数据库修改数据时的安全措施等。定义的数据同步类型包括双向同步(two-way wync)、慢同步(slow syne)、客户端发起单向同步(one-way sync from client only)、客户端发起刷新同步(refresh sync from client only)、服务器端发起单向同步(one-way sync from server only)、服务器端发起刷新同步(refresh syne from server only)、服务器端请求同步(server alerted sync)等。图1说明了SyncML客户端和服务器端同步时的消息交互情况,其中移动电话作为SyncML同步的客户端, 一台网络服务器作为SyncML同步的服务器端。移动电话发送包含数据修改信息的SyncML消息给网络服务器, 网络服务器根据SyncML消息中的数据进行各种同步操作, 同步服务器中存储的数据, 然后把修改结果信息回应给移动电话。


2 SRTK分析
    为了方便SyncML数据同步规范的推广和实现, 同时也为了验证sYncML数据同步规范的可实现性,SyncML发起组发布了一个开放源码的SyncML参考实现—SyncML参考工具包。该工具包用C语言进行开发,包含一个综合的C库,用于创建、发送、接收和解析SyncML消息。SRTK是一个比较成熟的产品。 可以在Windows平台和Linux平台上编译。此外,它还为EPOC平台和Palm平台预留了接口。它支持XML和WBXML编码,支持HTTP(用于Web上的同步)、WSP(在WAP上使用)和0BEX(在IrDA或蓝牙上使用)传输。目前,SyncML参考工具包是在SourceForge(http://sourceforge.nct/)上托管的,项目名称为SyncML C T00lkit,最新版本为4.3版(发布于2003年10月27日)。
2.1 SRTK总体结构
    SyncML参考工具包的外部结构和内部总体结构如图2所示。SyncML Reference Implementation(即SyncML参考工具包)通过一系列应用编程接口为上层应用程序提供数据同步服务,上层应用程序通过传输处理接口使用独立的网络传输模块完成数据收发工作。应用层除了使用下层提供的API外,还必须向下层的网络传输模块和SRTK提供一系列的回调函数,以完成错误处理、同步命令处理及SyncML消息分片传输等功能。

    由于SRTK主要实现的是SyncML消息的创建、解析及相关事务处理等功能,其本身并不具备网络数据收发功能,故上层应用程序需要利用独立的网络传输来实现数据同步功能。在SRTK的实际开发中,为了方便在SyncML参考工具包的基础上进行相关同步应用程序的开发,SyncML发起组在编写SRTK的同时,也实现了能够进行HTTP、WSP和0BEX传输的通信工具包(Communication Toolkit),并与SyncML工具包一起发布。
    SyncML参考工具包的内部实现结构主要分为三层,分别为SyncML核心层、SyncML插件层和SyncML基本库层。SyncML核心层主要实现供应用层调用的SyncML参考实现接口。这一层独立于具体的系统平台, 主要包括三个部分:SyncML事务管理模块, 主要负责同步事务管理, 包括多同步的协调、工作区缓存的访IN控制和同步收发模式的切换等;SyncML命令生成模块,主要负责生成SYncML同步消息, 仅用于同步发送模式;SyncML命令处理模块,主要负责解析收到的SyncML同步消息并调用应用层提供的回调函数完成相应的同步操作,仅用于同步接收模式。中间的SyncML插件层主要实现一系列供SyncML核心层调用的下层功能,主要包括两个部分, 即SyncML工作区管理模块(负责用于存放svncML消息的工作区缓存的分配和回收工作)和SyncML编解码模块(负责XML或WBXML格式的SyncML消息的编码或解析工作)。在SyncML参考工具包中,该层根据具体的运行平台进行了一定程度的优化。由于其被设计成插件层,所以它允许同时有多个SyncML工作区管理模块或SyncML编解码模块存在,实际的同步实现可以根据不同情况调用不同的插件。最下一层是SyncML基本库层,主要实现底层的诸如存储管理、字符串处理等功能。这一层的主要作用是增强实现的可移植性。
2.2 SRTK同步模式
    根据SyncML同步角色的差异,SyncML参考工具包分别工作于两种不同的模式:当SyncML同步软件作为同步消息的发起者时,SyncML参考工具包工作于同步发送模式,此时SyncML命令处理模块处于不工作状态;当SyncML同步软件作为同步消息的接收者时,SyncML参考工具包工作于同步接收模式,此时SyncML命令生成模块处于不工作状态。
2.2.1 同步发送模式
    当需要发起SyncML同步(客户端)或回应对方的SyncML同步(服务器端)时,SyncML事务管理模块将使SRTK工作于同步发送模式。首先,应用程序调用smllnitlnstane(),创建一个SyncMI同步事务(同时为其分配工作区缓存),必要的情况下可以调用SyncSetSeesion Options(),设置同步事务的参数。当事务被成功创建之后,应用程序就可以调用smlStarMessage(),开始创建同步消息文档。当应用程序完成相关同步命令后,调用接口smlEndMessage(),结束同步消息文档的创建工作。在这两个接口调用之间,应用程序可以根据不同的同步操作命令调用不同的接口,向同步消息文档中添加同步命令信息。当应用程序完成同步消息文档的创建工作以后, 应用程序就可以调用smILockReadButffer()锁定工作区缓存,同时获取生成的同步消息文档。之后,就可以调用网络传输模块的xptSendData()发送同步消息,发送完成后应用程序必须调用smlUnlockReadBuffer(),将工作区缓存解锁并释放工作区缓存。最后,应用程序调用smlTerminatelnstance(),结束同步事务。
2.2.2同步接收模式
    当需要接收对方的SyncML同步回应(客户端)或接收对方发起的SyncML同步(服务器端)时,SyncMI事务管理模块将使SRTK工作于同步接收模式。首先,应用程序调用smllnitlnstance()创建一个SyncMI同步事务(同时为其分配工作区缓存)。必要的情况下可以调用SyncSetSeesionOptions(),设置同步事务的参数。当事务被成功创建之后,应用程序就可以调用smlLockWrite Buffer()锁定工作区缓存,同时利用接口xptReceiveData()接收同步消息文档并保存到工作区缓存中。当应用程序完成同步消息文档的接收后调用接口smlUnlockWrIte Buffer()将文档交给SRTK进行处理。当SRTK收到同步消息文档后,将调用smlProcessData()进行处理。该接口调用下层模块解析同步消息文档,并根据解析结果调用相应的命令处理回调函数完成相应的同步操作。最后,应用程序调用smlTerminatelnstance()结束同步事务。


3 SyncML CIient实现
    鉴于大多数移动终端设备处理能力和存储能力有限与移动通信网络窄带宽、长延时、高成本和不可靠等特点,一般只能在移动终端设备上实现轻量级的SyncML Client软件,而且由于移动终端市场的激烈竞争,软件开发的成本和上市时间等因素已成为相当敏感的指标。SyncML参考工具包由于其权威性、精简性、良好的可移植性、开放源码及可以免费使用等特点,成为目前移动终端设备上SyncML Client实现的首选。
3.1 SyncMt CIilent设计
    SyncML参考工具包作为开放源码的官方实现,为进一步开发SyncML同步软件提供了良好的起点,但仅仅SyncML参考工具包显然是远远不够的。本文在SyncML参考工具包的基础上,研究和实现了工作于移动终端上的SyncMI Client软件。
    鉴于移动终端平台的多样性,本软件可能会被作为独立的模块移植到不同的硬件平台和软件平台上,因此本软件在设计上尽可能地考虑软件的移植性。为达到这一目的,本软件系统采用了分层的设计思想,一方面尽可能地将SyncML数据同步的主要实现逻辑封装起来,实现其平台的无关性,另一方面,分别将对上和对下的与特定软硬件环境相关的部分独立出来构成SyncML同步用户接口层和平台适配层。这样,在需要进行软件移植时,开发人员只需根据特定的软硬件环境实现相应的SyncML同步用户接口层和平台适配层,从而在最大程度上保证了移植的方便性和快捷性。除此之外,考虑到移动终端及移动通信网络的实际状况,在设计中也充分考虑了嵌入式软件开发的要求,力争使系统具有低存储需求、低时间开销、高可靠性、高灵活1生、高互操作性和完备的功能实现等特点。
    图3为移动终端SyncML Cllent软件的结构设计。SyncML同步用户接口是软件的人机交互界面,它向用户提供了启动、中止、配置数据同步的接口,同时用户也能通过该接口实时获取同步的状态信息和结果信息。SyncML同步管理器是整个同步软件的核心。它根据上层的相关配置信息和命令信息,分析日志管理模块记录的同步对象信息,读取数据库中相关同步对象数据并调用SyncML参考工具包生成同步消息,最后调用通信会话管理模块的API发送同步消息。除此之外,它还接收通信会话管理模块收到的同步消息,调用SyncML参考工具包进行解析,然后根据解析结果调用数据库接口修改同步对象信息,同时同步修改日志信息,最后向上层的SyncML同步用户接口汇报同步的结果信息。通信会话管理模块负责同步软件和SyncML服务器之间的协议交互和消息收发,同时管理本地的会话信息和事务切换工作,相当于SyncML发起组随SyncML参考工具包一起发布的通信工具包。SyncML参考工具包负责同步消息的生成和解析工作。日志管理模块负责记录同步对象的修改信息,为实现与SyncML服务器的快速同步提供依据。数据库接口实现同步对象的存取和修改等操作。平台适配层为上述模块提供必要的系统软硬件平台信息。

3.2 SyncML CIient实现
    按照上面的设计方案,我们基于通用的智能手机软硬件平台实现了SyneML Client软件。在实际的智能手机软硬件平台选择上,基于成本和实际系统需求的考虑,选用了以Epson Slc33209为核心的硬件平台和以Epson ROS33操作系统为核心的软件平台。开发工具选用了Microsoft Visual C++6和Epson系列编译、链接、下载和调试工具。在下层通信协议的选择上,我们实现了HTTP和WSP传输协议。
    在实际的SyncMI Client实现中,本软件主要是用于个人信息管(Personal Information Management,PIM)软件的信息同步。具体地说就是同步移动终端和远端服务器上的通讯录和日程安排信息。其中通讯录信息的编码格式遵循vCard2.1和vCard 3.O标准,日程安排信息的编码格式遵循vCanlendar 1.O和iCanlendar 2.0标准。
    为了保证最大程度上的互操作性,使得SyncML Cli_ent软件能够与任何符合SyncML数据同步规范的服务器进行数据同步操作,我们严格按照SyncML数据同步规范1.1.1版本的一致性要求进行软件的开发工作。开发出的SyncML Client软件功能包括:支持双向同步、慢同步和服务器端请求同步三种同步类型;支持SyncML表示协议中所要求的所有同步客户端元素类型;支持XML和WBXML两种格式的同步信息编解码功能;支持两种安全认证方式,即基本认证方式和MD5摘要认证方式;支持将大的同步数据包拆分成多个网络消息发送的机制和Large Objects模式;实现数据库级的同步锚(Strnc Anchors);支持终端同时和多个服务器同步,本地保留多份同步日志信息(最多可同时保存5份同步日志信息)支持用于电子名片交换的vCard 2.1规范和vCard3.0规范;支持用于日历及行程信息交换的vCalendar l.0规范和iCalendar 2.0规范;支持HTTP和WSP传输协议.
    软件开发过程的一个主要难点是软件的后期测试平台的构建。当前国内开通的SyncML服务器很少,相关运营商的SyncML服务资料十分匮乏,给软件的测试带来了相当的困难。在实际测试中,我们通过构建自己的SyncML服务器和测试环境克服了这一方面的困难。我们运用Nexthaus SyncJe(tm)Personal Servel,Outlook Edi-tion作为远端的SyncML同步服务器,同时通过WildPackets EtherPeek NX for Windows分析相应的同步消息,从而能够在实际的移动网络中测试SyncML Cli_ent软件。


结语
    随着移动计算的日益普及,人们对于移动数据同步的需求正在不断地增强,在一些领先的移动终端制造商的产品中已经出现SyncMI的踪影。SyncML参考工具包作为SyncML发起组提供的官方参考实现,其很大程度上加快了SyncML同步软件的开发和普及。虽然在一定程度上由于其拥有大量API且不友好的开发文档,入门比较困难,但对于长期的SyncMl同步软件开发而言,SyncML参考工具包已成为一个相当好的选择。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

随着科技的飞速发展,电子产品在我们日常生活中扮演着越来越重要的角色。而在这些电子产品中,接口作为连接设备与外部设备的桥梁,其重要性不言而喻。其中,Type-C接口作为一种新型的接口标准,因其独特的优势,逐渐成为了众多电子...

关键字: 电子产品 Type-C 接口

随着电动汽车的普及,充电桩作为电动汽车的重要基础设施,越来越受到人们的关注。然而,对于许多电动汽车用户来说,直流充电桩和交流充电桩的接口和区别仍然是一个令人困惑的问题。本文将从接口和区别两个方面,详细探讨直流充电桩和交流...

关键字: 电动汽车 接口 充电桩

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP

曼谷2023年9月18日 /美通社/ -- 作为东南亚的旅游胜地,泰国一直在全球范围内吸引着无数游客的目光。泰国旅游和体育部近日公布的报告显示,今年前7个月,泰国旅游业总收入约为1.08万亿泰铢(约合人民币2233亿元)...

关键字: BSP GEN 国美 AN

哥伦比卡尔达斯2023年9月22日 /美通社/ -- 近日,天合跟踪与中国电建签订拉美地区哥伦比亚泰普伊光伏电站跟踪支架供货协议,将为其提供108MW智能跟踪系统,其中包含开拓者1P智能跟踪支架、智能算法、以及智慧云平台...

关键字: 光伏电站 跟踪系统 控制器 BSP
关闭
关闭