一只笨笨的驴

IrMC规范学习笔记(一)

    IrMC(Infrared Mobile Communications 红外移动设备通讯)规范1.1 是由红外数据协会(www.irda.org)制订的,用于无线红外设备的信息传输。目前由于工作需要进行移动电话电话簿的同步开发,对该规范进行了初步的了解和学习,以后我会把IrMC相关规范的中文译文和自己的一些心得发布上来,这也是我现在每天的工作内容。希望有共同兴趣和爱好的朋友一起来交流学习。由于重点是电话簿的同步,所以主要是关于电话簿的内容,而像日历卡片,消息和记事本等内容暂时跳过。

 

 

名词解释

 

变更计数器(Change Counter): 同步锚点的一种,是一个32位的无符号数值,用于跟踪记录自从上次数据库同步以来的变更。当对象存储库每次进行改动,其变更计数器就会递增。

变更日志(Change Log): IrMC服务器对象的一种,用于提供指定对象存储库所发生变更的详细信息。通常包括一个发生变更对象的本地唯一标识(LUIDs),变更类型描述(删除,修改等)和一个用于说明变更发生时间的同步锚点。

数据库: 参考对象存储库。

数据库标识: 一个32位的唯一标识符,用于标识特定的对象存储库。

设备同步锚点: 在变更日志中存储的各项的同步锚点

设备信息对象: 一个提供IrMC设备特征详细信息的IrMC对象。

快速同步: 一种同步方式,通过变更日志仅同步那些被更改的对象。

物理和软删除: 为了最大限度地提供合理化同步,有些服务器的对象库支持两种删除操作,物理删除和软删除。物理删除通常由用户执行进行彻底删除操作,软删除则通常由同步引擎在服务器空间不足情况下执行。

收件箱: 一种IrMC对象存储库,能够存放多种格式的其他IrMC对象,例如电话簿,日历卡和消息等。该对象库通常作为一个临时存储区容纳接受到的IrMC对象以便用户决定是将其存储到相应库还是将其删除。

IrMC对象: 就是存储在IrMC设备上的对象,例如一个电话簿条目,一条日历项,变更日志和设备信息等。语义上等价于一条记录。

IrMC客户: 能够和一个IrMC服务器进行通讯的设备 。典型的客户是一台电脑。但是很多情况下,PDA,寻呼和电话也可作为一个IrMC客户。

IrMC设备: 一个至少包含一个IrMC服务器的设备。像电话,寻呼和电脑都可以作为一个IrMC设备。

IrMC静态服务器: 一个支持使用静态索引的2级和3级信息访问的IrMC服务器。

IrMC唯一服务器: 一个支持使用唯一索引的2级和4级信息访问的IrMC服务器。

1级信息访问: 允许IrMC客户向服务器发送单一IrMC对象的访问方式。

2级信息访问: 允许IrMC客户能够向服务器发送和接受整个IrMC对象库的访问方式。

3级信息访问: 允许IrMC客户向服务器通过静态索引发送和接受单一IrMC对象的访问方式。

4级信息访问: 允许IrMC客户向服务器通过唯一索引发送和接受单一IrMC对象的访问方式。同时,该方式还定义了返回一个特定库自从上次同步以来所发生改变的所有对象的列表的方法。

信息日志对象: 一个IrMC对象,指定了一个特定对象库的详细信息特性。例如,一个电话簿日志信息对象可能包括电话簿对象的数目,电话簿对象所支持的格式类型以及电话簿对象库的容量等。

本地唯一标识: 在特定IrMC服务器内本地唯一的标识。

完全同步(Slow Sync): 一种同步方式,一个或者多个对象库中的记录进行逐域比较和同步。

静态索引: 对象库内对象标识的索引。静态索引值被定义为一个一系列连续数值的有限集,从0开始,当一个对象被创建,从集合中为其分配一个未使用的索引值;如果库内一个对象被删除,则为其分配的索引值可以被再次使用。

同步: 所谓同步就是两个IrMC设备交换变更日志和对象库,从而确保两方库中的数据是完全一致的。

同步锚点: 存储在变更日志中的一个数值,用于指定记录被修改的时间。包括两种方式:变更计数器和时间标签,也可能是两种方式共同使用来确定记录的修改时间。

同步引擎锚点: 存储在同步引擎中的同步锚点,从而保证同步引擎能够向同步服务器请求合适的变更日志和进行同步操作。而且我认为也要存储发生在同步引擎方面的对象变更,才能保证两个设备的完全同步。

同步引擎: 一个应用程序,屏蔽同步双方完全不同的设备和数据库结构,进行同步操作和管理。这个很重要,举例来说:电脑上的数据格式和处理能力与移动电话是完全不同的,如果没有同步引擎作为中间的翻译官,电脑和手机之间的通讯是难以想象的。

时间标签: 同步锚点的一种,一个描述了记录最后一次被更改的确定时间和日期的数值。

唯一索引: 对象库内对象标识的索引。其值由一个有限的数值集组成,但是不要求从0开始,也可以是不连续的。当一个对象被创建,为其分配一个从未使用过而且是唯一的数值。

 

 

IrMC规范当前支持的对象和对象库

  1. 电话本对象库:支持vCard 2.1 格式。
  2. 日历卡对象库:支持vCalendar 1.0 格式。
  3. 消息对象库:支持vMessage 1.1 格式
  4. 记事本对象库:支持vNote 1.1 格式
  5. 变更日志对象库:参考上面的名词解释。
  6. 信息日志对象库:在以后会有详细说明。
  7. 设备信息对象:包含了针对该设备的信息,暂时不进行说明。
  8. 变更计数器对象:在以后会有详细说明。
  9. 实时时钟对象:包含了设备当前日期和时间的对象。

 
OBEX信息交换

 

   OBEX(Object Exchange)协议也是由红外数据协会(www.irda.org)制订,所有原子信息交换操作都是基于OBEX协议。所有的IrMC对象和对象库根据IrMC命名规则来标识,并通过OBEX协议被访问。

关于OBEX协议我会另外专门发布相关文章,这里就不再多说。

 

 

原子信息交换级别

 

    如何组织和访问一个对象库取决于IrMC服务器实现和支持的信息交换级别。除了支持级别4信息交换不需要支持级别3信息交换的情况,一个IrMC服务器在实现较高级别的信息交换的时候,也必须提供对低级别信息交换的支持实现。也就说,如果IrMC服务器支持信息交换级别3,则必须也能够支持级别1和2。但是,如果IrMC服务器支持级别4,则级别3可以不支持,但是必须支持级别1和2。一个服务器提供的信息交换级别支持必须明确定义在其日志信息对象和IAS中。关于IAS,在以后我会简单说明,其实我目前对IAS也了解甚少,如果有了解比较详细的朋友可以在评论中给与说明。

 

1. 信息交换级别1(最低级别)

    所有IrMC服务器必须提供该级别支持,但是客户端不要求。该级别可以使用面向连接和无连接的传输服务。

2. 信息交换级别2(访问级别)

    IrMC客户可以通过此级别发送和接受整个对象库,要求是面向连接的传输服务(例如,IrLMP)。该级别创建和操作一个包含库中所有对象的对象流,并且不需要收件箱对象,对象流的命名格式IrMC中有详细规定,例如电话簿对象流命名:“telecom/pb.vcf”。当在OBEX中指定使用级别2 PUT/GET等操作时候,也就是使用指定的该级别的命名。另外,在级别3和级别4中也可以使用级别2的OBEX操作,在以后的同步操作中你会看到这一点的。

3. 信息交换级别3(索引级别)

    该级别也要求面向连接的传输服务。其命名规则在IrMC中也有明确规定,如电话簿的命名“telecom/pb/n.vcf”,其中n就是上面提到的分配给该对象的静态索引。

4.信息交换级别4(同步级别)

   是信息交换的一种特殊形式,通过该级别,IrMC客户可以获取自从上次同步以来对象库中发生变更对象的列表。该级别主要用作数据同步操作的一部分,也要求面向连接的传输服务。其命名规则在IrMC中也有明确规定,如电话簿的命名“telecom/pb/luid/n.vcf”,其中n就是上面提到的唯一索引,当n为0的时候表示机主本人的电话号码。“telecom/pb/luid/cc.log”则表示当前变更计数器对象;“telecom/pb/luid/xxxx.log”代表变更日志对象,其中xxxx就是你要求的变更计数器的值。

    以后着重讨论的也是该级别的信息交换,谁让它是同步级别呢。

7:07 PM - Mar. 24, 2005 - post comment


Last Page Next Page
描述
在IT行业混了6年,转身却发现自己一无所有。虽然我贪玩,虽然我懒惰,但是还想挣扎着从头再来。我不太清楚Blog的概念,但是我想n年后即使我依然一无所有,至少有这份记录。
首页
个人档案
存档
最近发布
- blogs updated
- 头晕了
- 搬家也搬不动
- 准备搬家了
- Forumer Contest (Win an Apple IPOD mini)


Free phpBB Hosting