8
:
SyncML dm package
SyncML dm
协议包括
2
个阶段
初始化阶段(认证和终端信息交换的阶段)和管理阶段,管理阶段服务器希望进行重复多次进行管理。
Manage
周期的开始以
package0
开始,本次出发依赖于不可更改的环境,在
SyncML Notifaction
开始的周期里面被指定
下图是描绘了
2
个阶段
Management
阶段包括了几个协议的交互,从
server
发送到
client
的包的内容决定了这个周期是否进行下去,如果从
server
发送出来的包的管理指令需要得到
client
的回复,
client
将会返回针对这些操作指令的回复。这些回复的包开始了新的协议的交互,服务器将发送一个新的管理指令的包并且开始一个新的协议交互的的过程。
当
server
的
package
里面不包含
management operation
的时候,
client
将根据服务器发送过来的包回复一个新的包,这个包里面只包含了
status
和
Synchr
,在这种情况下,真个回复的包不能被发送,协议中止。
Server
必须给任何
client
的包进行回复
包的处理可能花费的时间是不可预知的,因此在
SyncML dm
协议中没有指定
2
者的超时时间。
如果不是
operation command
另有规定,终端和
server
可以不按照
package
中的顺序执行指令。因此,在上一条管理指令在执行的顺序是必须的,管理指令必须按照他们发送的顺序进行执行。
Client
不能发送除了包含
Devinfo
的
REPLACE command
、
Result alert
给
server
8
.
1 session abort
8
.
1
.
1
描述
是
server
还是
client
任何时候都可以中止操作。终端操作的原因可能是
server
关闭,
client
没电,或者用户在
client
上的其他交互操作,或者其他操作。这种情况下,最好的方式是发送一个中止的
ALERT
。推荐的做法是:
message
包含了管理指令的任何
stauts
和
result
如果发送一个
session
终端给接受方的
MESSAGE
,那么接收方的回应会忽略,(不会回应把,自己也不理解,有待更正)
有些终端是无法控制的,
client
不在覆盖范围内或者电池没有电。
Server
和
client
必须也对没有信号的情况做好准备。上面提到的需求只要是为了减少一些回应超时,或者没有回应的情况。
补充说明:
request/response
在传输用的角色被倒置的情况,
client
是个传输层的
server
,
server
是个传输层的
client
,这种情况下
8.1.1
以上的推荐可能不会用到
8.1.2
需求
Alert 1223
是无法预知的操作中止的信号标识,发送方的
session
中断标识包含了
command
的状态和结果,这些指令将在
abort
之前执行,发送方必须包含一个
FINAL
的标识。当
server
收到
alert
提示的时候,必须在回复的
message
中包含状态和
SyncHR
,并且不回复新的
MESSAGE
8.2 package 0
,
server
发起的初始化
指令
许多终端不能持续的侦听服务器的连接,由于安全原因一些终端只是不想开方一些端口。大部分终端可以接受一些主动提供的
MESSAGE,
称作通知
(notifaction).
Server可以用通知的这种能力使终端初始化一个连接回server, SyncML dm 协议规定了几种管理初始化通知的发送方式。发送者和通知的内容可以参考Notification Initiated Session, Version 1.1.2
需要说明的是:接收一个管理初始化的通知会受其他方面影响。如终端设备可能会允许用户操作设备去初始化管理周期,另外,终端用户也可以管理超时的管理周期,一些错误得操作也会使终端发起一个管理周期。
8
.3 package1 :客户端发起初始化指令
管理阶段跟SyncML dm 数据协议得描述完全相同,客户端发起包的意图如下:
1
:发送终端信息(厂商,版本,其他)给DM server,终端必须在第一个message中管理周期中发送设备信息
2
:根据SELECTION 9中的规则终端向DM server确认身份
3
:通知dmserver本次SESSION由客户端发起还是由Dmserver 发起(package0往往不会用到,如果是客户端发起的话)。
客户端发起得初始化package得具体需求如下:
1
:在SyncHdr 元素里面得需求
VerDTD
的值必须是1.1
VerProto
的值必须是“DM/1.1”
Sessionid
必须能标明但前Management session 的身份,如果client 回复通知,那么Alert(1200)标识由server发起的,sessionid必须跟notifaction里面的sessionid相同,否则client产生的sessionid不会唯一,sessionid会贯穿整个session
MsgID
必须明确的指出message属于哪个management session
Target
元素必须指明是个那个目标server
Source
元素指明的是哪个client 的service
Cred element
可能包含再认证的message里面,一般是从client发起,section9将会详细描述
2
:Syncbody中必须包含alert信息无论client发起还是server发起
Alert command
的需求如下
CmdId
是必须的
存放management session type 的Data element或者由server发起(1200)或者由client发起(1201)
3
:终端的信息必须在syncbody中包含Relpace command,replace command需求如下
Cmdid
是必须的
Dm tree
每个节点的item都可以被找到,在DMSTDOBJ中有详细描述
Source element
必须包含一个指定的URI 节点
Data element
用来装载device 信息数据
Final element
必须包含在Syncbody 的最后一个message 中
posted on 2006-05-24 13:41
小小程序程序员混口饭吃 阅读(855)
评论(1) 编辑 收藏 所属分类:
读书 、
java