4
:简介
Dm
协议允许管理指令在节点上执行,跟
SyncML
同步协议和
SyncML
表示协议类似都采用的是包的形式。设备的一个节点表示为一组可配置参数,可以这个节点进行读和设定参数的键、值操作,而终端的应用软件另外一个节点可能是的正在可运行环境中(意思是不会影响到别的节点的功能),对这类型的节点操作可以对软件的一部分功能进行下载、升级或者卸载
.
SyncML DM
这些指令代表这些操作,在
SymcML
表现协议和
SyncML
表现协议
DM
的用户手册中有描述。这些指令和消息的结构等同于
SyncML
数据同步协议,并且管理协议的
DTM
就是来源于
SyncML
数据同步协议的
DTD
5
:节点处理
每一个节点的路径就是设备的唯一统一资源标识,这些标识必须遵循这样一些指定的需求:
SyncML DM
树和描述加以限制和指定
每一个节点都有一个可以决定什么样的管理内容可以用来设置或者读的类型,在节点上操作需要实现定义这个类型的值,当节点被读的时候,这个类型的值将被返回。
举例说明,有的节点只是一个简单文本类型,需要设置,而有的节点是
WAP Provisioning document MIME
的复杂类型,甚至其他节点可能象
WAP
设置或者软件安装这样更复杂的值
SyncML DM
协议的指令的
target
和
souce
由
目标和来源
元素分别指定
target
是接纳着,
source
是来源,这些过程出现的异常都会在管理命令需求中的异常中会被提及
6
:包中的多消息
6
.
1
描述
DM
管理协议中中提供用多个
MESSAGE
来传输一个包的功能,当一个包非常大的时候,分成多个
MESSAGE
进行传输是非常有必要的,这样的局限是可能由传输协议或者终端的功能限制决定,(分成多个
MESSAGE
就可以解决这个问题)。
DM
管理协议中,包作为一个逻辑组的作用是非常有限的,大部分的限制在
MESSAGE
上,而不是在
PACKAGE
上,举例:一个
COMMAND
必须完全适从一个
MESSAGE
。
为了避免大量客户端而有限的资源,服务器等待从客户端的包的
command
返回一个状态,
如果上一个
COMMAND
没有返回一个状态服务器不允许发送一个新的
COMMAND
,换句话来说,大部分
server
发送到客户端的
COMMAND
都会收到
CMMAND
(
package
)的返回信息,除非
SERVER
发送一个大的对象或者请求更多的
MESSAGE
(用
1222 ALERT
)
一个
PACKAGE
包含大对象数据将会被分成很多
MESSAGE
传输,在第七部分会详细描述
说明
server
在处于一下一种包的边界的状态的时候:
1
:
server
有一个完全大的包,在这种状况下,
server
等待从
client
的
COMMAND
返回状态,由于状态和结果非常大(如
GET COMMAND
的结果),
client
将发送多个
MESSAGE
回
server
,然后结束他的回应
2
:
server
从
client
接受到一个完整的包,
server
将会发送一个新的
COMMAND
给
client
3
:
server
发送了包中的一个或多个指令,但是没有发送包中的最后一个指令的时候,只有当
package
中的最后一个指令被发送出去的时候,这次状态才被认为是有效的
由于
SyncML
的传输形式是
request/response
的形式,无论是客户端还是服务器端在传输消息的时候都不应该包含一个开始命令或者一个结束的标志,以便保证
response/request
循环进行下去(言外之意就是有个这个标志就是开始和结束的时候)
.
举例:当
server
在
STATE1,
他可能收到客户端的很多
MESSAGE,
这些
MESSAGE
包含了
status
和
result
。
Server
会对任何一个
message
回应,除了对
NEW COMMAND
进行回应外。
Server
对发送的回应在
SyncHdr
中包含了一个
1222 ALERT
,
client
也指定了,(表示没有结束还有消息)。
STAUTS
必须对
ALERT
的回应进行发送而不是对
RESULT
的回应进行发送
ALERT1222
可以被
ALERT 1223
替换,因为服务器可以主动结束一个过程
下图展示了多个
message
被发送
6
.
2
需求
如果
SyncML package
分成多个
MESSAGE
被传送,最后一个
MESSAGE
必须包含一个
FINAL
的标志,其他么
message
一定不能包含
final
标志。
Final element
由
server
发送而不是由
client
发送,最终停止本次的
PACKAGE
操作。
Server
在每个
MESSAGE
必须发送
FINAL message
,不过在发送大的对象的时候或者发送
NEXT MESSAGE
的相应的时候不会发送
7
:大对象的处理
SyncML dm
协议中,大对象不能完全在一个
Message
中传输,根据
SyncML data
同步协议指定的大对象处理方案可以分成多个
Message
。规则如下:
第一个限制就是支持大对象处理的终端必须显示的之处
DevDetail/LrgObj
的标识为
true
第二个限制是在
server
和
client
传输的
MaxObjSize
有多大,在
SyncML data
同步协议中
MaxObjSize
会在
Meta information
中指定。
DM
协议中被发送着接受的最大对象的大小(
MaxObjSize
)包含在
syncHdr
中(
message
的
META INFO
)
,syncHdr
中指定的
MaxObjSize
,发送者发送的单个对象都不能超过这个大小,如果
MaxObjSize
没有被发送,接收者可以自由发送任何大小的
message
给
server
。
需要指出的是:
MaxObjSize
会影响整个
DM session
,如果在随后的
message
中没有对这个值进行重新设置。新的
MaxObjSize
在后来的
message
指定一个可能的原因是
client
的
free memory
大小的依赖,(有东西创建在
MEMORY
的时候或者删除的时候
FREE MOMORY
会发生变化)。
第三个限制:在上一个单元结束前终端会检测新的对象(
messge
),终端会回复一个
1225
的
alert
posted on 2006-05-23 13:58
小小程序程序员混口饭吃 阅读(2042)
评论(6) 编辑 收藏 所属分类:
读书 、
java