基于Bluetooth的SyncML实现研究_第1页
基于Bluetooth的SyncML实现研究_第2页
基于Bluetooth的SyncML实现研究_第3页
基于Bluetooth的SyncML实现研究_第4页
基于Bluetooth的SyncML实现研究_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.基于Bluetooth的SyncML实现研究吴 扬 王昭顺(北京科技大学信息工程学院,北京 100083) 摘 要:简要介绍了标准的数据同步协议SyncML的协议结构框架。对SyncML绑定协议中定义的实现框架进行了改进,然后设计分析了SyncML功能实现模块,最后验证了实现框架和模块的正确性。关键字:SyncML;蓝牙;同步Realization and Research of SyncML base on Bluetooth Wu yang Wang zhaoshun(University of Science and Technology Beijing, Beijing 10083,

2、 China)Abstract: This paper briefly introduces the framework of SyncML Data Synchronization Protocol. Improve the implementation framework that defined in SyncML Binding protocol, then analysis and design the implementation module of SyncML features, finally, verify accuracy of the implementation fr

3、amework and module.Key words: SyncML; Bluetooth; Synchronization引 言SyncML同步协议是一个目前已经被广泛接受的工业界通用的同步协议标准,国际电信联盟已经认可其为下一代移动通信标准的组成部分。由于目前市场上移动数据同步化还是建立在一些互不相同的私有协议上,从而产生了众多数据不兼容的情况,增加了各方面工作的复杂度。而SyncML可以通过任意网络,同步化所有设备及应用软件的数据。借助XML,SyncML将成为真正的数据同步化平台。Bluetooth无线传输技术经过十年发展后,已经成为众多移动终端设备中的重要组成部分,蓝牙最新低功耗

4、与超宽带版本,将会使蓝牙技术向更加普及的方向发展。将SyncML数据同步协议基于Bluetooth无线通信上来实现,将使各种具有蓝牙功能的移动设备能够更加方便的实现数据的同步交互。1 SyncML协议框架SyncML数据同步规范主要包括三个部分,即SyncML数据同步协议1(SyncML Data Synchronization Specification)、SyncML表示协议2(SyncML Representation Protocol)和SyncML传输方式绑定协议(目前包括HTTPOBEXWSP三种传输方式)。SyncML协议的制定让数据同步成为应用协议栈中的一个层次,使其它应用程序

5、或协议得以在SyncML协议的基础上进行设计实现,让同步服务成为移动计算的一部分。图1为SyncML协议推荐采用的框架结构。从图中可以看到,Sync Server Application与Sync Client Application进行数据同步,Server和Client通过底层网络进行连接(如HTTP/WSP/OBEX)。同步双方遵循同一协议规则,Server端通过Sync Server Engine来处理与Client有关的操作,例如Client数据库更新和冲突处理。Sync Server Agent管理Sync Server Engine对网络的访问,以此来控件和客户端的数据同步,它会

6、根据协议来处理Client端传输过来的消息,通过Sync Server Agent可以实现系统无关性,便于移植。SyncML Interface用于处理同步的连接、数据的处理,同时提供框架中实体与网络传输的接口,在Server和Client间建立和维护一个网络连接。图1 SyncML协议框架结构在整个SyncML同步协议的框架中SyncML数据包和底层的传输是分离的,其规范中的同步协议和表示协议独立于传输方式,因此SyncML消息能基于目前任何一种网络通信方式进行传输。本文所要研究实现的,即是在其中的Bluetooth无线通信方式下,实现SyncML数据同步功能应用。2 架构分析与改进在Syn

7、cML OBEX绑定协议3中,定义的了其在Bluetooth上实现的一个应用框架图,如图2所示。 SyncML一般基于会话层协议之上,而且在Bluetooth应用协议栈4中将文件传输、同步等应用协议栈都统一包含在通用对象交换应用框架(GOEP)中,因此要在蓝牙上实现SyncML,就需要将SyncML数据绑定在OBEX上,然后通过OBEX对象在蓝牙通信中进行数据同步的传输操作。在蓝牙系统中,OBEX协议的作用是实现数据对象的交换,如vCard、vNote等对象。OBEX在蓝牙RFCOMM上的映射关系,是基于ETSI TS07.10的多路复用和传输层,而且提供了对串行电缆仿真的支持。根据协议分析,

8、SyncML同步数据通过OBEX接口封装成一个OBEX传输对象,由OBEX通过RFCOMM实现基于Bluetooth的SyncML数据同步功能。然而,在多数应用层开发环境下,Bluetooth协议栈的接口,包括RFCOMM接口,并不会直接提供给上层应用,同时,虽然蓝牙协议中定义了OBEX的应用框架,但OBEX作为一个独立的对象传输协议,在Bluetooth协议栈中也没有提供直接可供调用的OBEX接口,来实现SyncML数据的封装并同时完成全部传输任务。出于这种情况,我们在Bluetooth协议应用框架的基础上,对OBEX的应用做了适当的改进,如图3所示。 图2 实现框架 图3 改进后的结构框架

9、从图3中可以看出,OBEX没有直接映射在RFCOMM这上,而是放在了SPP应用框架上,SPP的底层同样是通过RFCOMM提供的虚拟串口为基础,来进行数据传输,同时使用了Socket接口来实现数据的发送和接收处理。OBEX在这里所处位置的主要功能,即是将上层的SyncML数据进行了封装,然后再调用Socket提供的接口进行发送。3 实现设计3.1 实现分析SyncML实现模块,主要划分为四个部分(服务器和客户端基本相同),分别为:应用层、SyncML API、OBEX数据封装、以及Socket通信接口。如图4。图4 SyncML实现模块1)SyncML API即主要实现SyncML同步数据包的管

10、理,该部分为三个主要层次: SyncML Core核心层,主要包括以下三部分:SyncML Manager: 管理各种接口,控件缓冲区,并且在发送和接收间转换。SyncML Command Builder: 构造同步数据包和命令序列,生成同步文件。SyncML Command Dispatcher: 解析接收到的数据包,提取命令,做出对应处理。 系统相关插件层:SyncML Workspace Manager: 管理发送和接收的数据缓冲区。XML and WBXML Encoder/Decoder: 构造或解析XML和WBXML数据包。 SyncML系统库函数层封装一些系统相关的函数,如:内存

11、分配(smlLibMalloc)和字符串处理(smlString2Pcdata)等。把这一层单独划分出来,从而实现模块与系统的无关性。2)OBEX数据封装在SyncML同步过程中,必须实现的OBEX操作主要有:Connect、Disconnect、Put、Get、Abort。每一个SyncML消息都必须作为一种SyncML MIME媒体类型来进行传输,这种媒体类型信息存在OBEX的请求和响应信息的消息体中。在SyncML数据同步的客户端必须支持“application/vnd.syncml+xml”和“application/vnd.syncml+wbxml”两种媒体类型中的其中一种,而作为服

12、务器端,必须同时支持这两种媒体类型。如同步操作时,Get操作的OBEX数据:83 00 2F CB 00 00 00 01 01 00 07 00 2D 00 00 42 ./Ë.-.B00 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E . application/vn64 2E 73 79 6E 63 6D 6C 2B 77 62 78 6D 6C 00 d.syncml+wbxml.3)Socket API这里主要定义一个BtSock数据结构,用于对应与Bluetooth通信中的Socket链路的操作接口。struct BtSock v

13、oid *implementer;void (*release)(Sock* _this); / delete the object implement the itf int (*bind)(Sock* _this, void* addr, int addrLen); int (*connect)(Sock* _this, void* dstAddr, int addrLen, int flags);int (*disconnect)(Sock* _this, int flags, unsigned long timeout);int (*send)(Sock* _this, void* d

14、ata, int dataLen, int flags);int (*recv)(Sock* _this, void* data, int dataLen, int flags); 客户端:调用ObxTransportConnect发起Socket连接,然后再发送OBEX的连接命令obxSendObexConnect。服务器端:处于监听接受状态(ObxTransportAccept),并接收OBEX的回应消息数据(obxWaitForObexResponse)。通过ObxTransactionRecv和ObxTransactionSend接口实现接收和发送事务。其接口功能包括对多个连续信息包中

15、间的Continue响应进行处理。在一个事务操作过程中,可能出现多次OBEX数据的交互。4)应用层实现实现模块中,应用层的主要工作是对同步操作中的数据记录进行管理。在SyncML同步中,客户端和服务器端都维护了本地的一个数据库,用于存储本地的各种数据信息。在服务器端主要负责三部分数据: 数据库:用于记录本地信息,每条记录除了数据本身的信息之外,还有一个锚点信息,用于记录上一次(Last)和本次(Next)的同步时间,同步操作时,服务器端会将Last与客户端的Next信息进行比较,然后判断是否需要进行同步。并在同步完成后,更新Last锚点信息。 信息变更表:用于记录本地自前一次同步操作完成以来,

16、所有经过数据变更的记录的ID。当同步发生时,可查询该表中格的ID信息来定位到需要同步的数据。 ID映射表:主要记录了同一条数据,在服务器端和客户端数据库中,分别拥有的ID的映射关系。3.2 同步数据实例按照文中的应用框架和实现模型设计,进行了支持SyncML数据同步功能的手机与PC机服务器间的数据同步实验,实验通过SyncML同步操作将手机中的联系人信息传输到PC机上。所抓取的数据如下,包括连接的请求和响应指令,以及手机Put了一个名为“ww”的联系人信息。从数据结果可以看出,文中所设计的在蓝牙上进行SyncML数据同步的应用是有效可行的。/ 连接请求0D 0A 4F 4B 0D 0A 80

17、00 15 10 00 10 00 46 00 0E .OK.F.53 59 4E 43 4D 4C 2D 53 59 4E 43 SYNCML-SYNC / 请求成功响应A0 00 1A 12 00 04 00 CB 00 00 00 01 4A 00 0E 53  .Ë.J.S59 4E 43 4D 4C 2D 53 59 4E 43 YNCML-SYNC/ Put手机联系人信息02 00 FF CB 00 00 00 01 01 00 07 00 2D 00 00 42 .ÿË.-.B00 20 61 70 70 6C 69 63 61 74 69

18、 6F 6E 2F 76 6E . application/vn64 2E 73 79 6E 63 6D 6C 2B 77 62 78 6D 6C 00 48 d.syncml+wbxml.H42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 BEGIN:VCARD.VER53 49 4F 4E 3A 32 2E 31 0D 0A 4E 3B 43 48 41 52 SION:2.1.N;CHAR53 45 54 3D 55 54 46 2D 38 3B 45 4E 43 4F 44 49 SET=UTF-8;ENCODI4E 47 3D 51 55 4F 54 45 44 2D 50 52 49 4E 54 41 NG=QUOTED-PRINTA42 4C 45 3A 77 77 0D 0A 54 45 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论