4
:簡介
?
Dm
協(xié)議允許管理指令在節(jié)點(diǎn)上執(zhí)行,跟
SyncML
同步協(xié)議和
SyncML
表示協(xié)議類似都采用的是包的形式。設(shè)備的一個(gè)節(jié)點(diǎn)表示為一組可配置參數(shù),可以這個(gè)節(jié)點(diǎn)進(jìn)行讀和設(shè)定參數(shù)的鍵、值操作,而終端的應(yīng)用軟件另外一個(gè)節(jié)點(diǎn)可能是的正在可運(yùn)行環(huán)境中(意思是不會(huì)影響到別的節(jié)點(diǎn)的功能),對(duì)這類型的節(jié)點(diǎn)操作可以對(duì)軟件的一部分功能進(jìn)行下載、升級(jí)或者卸載
.
?
SyncML DM
這些指令代表這些操作,在
SymcML
表現(xiàn)協(xié)議和
SyncML
表現(xiàn)協(xié)議
DM
的用戶手冊(cè)中有描述。這些指令和消息的結(jié)構(gòu)等同于
SyncML
數(shù)據(jù)同步協(xié)議,并且管理協(xié)議的
DTM
就是來源于
SyncML
數(shù)據(jù)同步協(xié)議的
DTD
?
5
:節(jié)點(diǎn)處理
?
每一個(gè)節(jié)點(diǎn)的路徑就是設(shè)備的唯一統(tǒng)一資源標(biāo)識(shí),這些標(biāo)識(shí)必須遵循這樣一些指定的需求:
SyncML DM
樹和描述加以限制和指定
?
每一個(gè)節(jié)點(diǎn)都有一個(gè)可以決定什么樣的管理內(nèi)容可以用來設(shè)置或者讀的類型,在節(jié)點(diǎn)上操作需要實(shí)現(xiàn)定義這個(gè)類型的值,當(dāng)節(jié)點(diǎn)被讀的時(shí)候,這個(gè)類型的值將被返回。
舉例說明,有的節(jié)點(diǎn)只是一個(gè)簡單文本類型,需要設(shè)置,而有的節(jié)點(diǎn)是
WAP Provisioning document MIME
的復(fù)雜類型,甚至其他節(jié)點(diǎn)可能象
WAP
設(shè)置或者軟件安裝這樣更復(fù)雜的值
?
SyncML DM
協(xié)議的指令的
target
和
souce
由
目標(biāo)和來源
元素分別指定
target
是接納著,
source
是來源,這些過程出現(xiàn)的異常都會(huì)在管理命令需求中的異常中會(huì)被提及
?
?
6
:包中的多消息
?
6
.
1
描述
? DM
管理協(xié)議中中提供用多個(gè)
MESSAGE
來傳輸一個(gè)包的功能,當(dāng)一個(gè)包非常大的時(shí)候,分成多個(gè)
MESSAGE
進(jìn)行傳輸是非常有必要的,這樣的局限是可能由傳輸協(xié)議或者終端的功能限制決定,(分成多個(gè)
MESSAGE
就可以解決這個(gè)問題)。
?
? DM
管理協(xié)議中,包作為一個(gè)邏輯組的作用是非常有限的,大部分的限制在
MESSAGE
上,而不是在
PACKAGE
上,舉例:一個(gè)
COMMAND
必須完全適從一個(gè)
MESSAGE
。
?
?
為了避免大量客戶端而有限的資源,服務(wù)器等待從客戶端的包的
command
返回一個(gè)狀態(tài),
如果上一個(gè)
COMMAND
沒有返回一個(gè)狀態(tài)服務(wù)器不允許發(fā)送一個(gè)新的
COMMAND
,換句話來說,大部分
server
發(fā)送到客戶端的
COMMAND
都會(huì)收到
CMMAND
(
package
)的返回信息,除非
SERVER
發(fā)送一個(gè)大的對(duì)象或者請(qǐng)求更多的
MESSAGE
(用
1222 ALERT
)
一個(gè)
PACKAGE
包含大對(duì)象數(shù)據(jù)將會(huì)被分成很多
MESSAGE
傳輸,在第七部分會(huì)詳細(xì)描述
?
說明
server
在處于一下一種包的邊界的狀態(tài)的時(shí)候:
?
?
?1
:
server
有一個(gè)完全大的包,在這種狀況下,
server
等待從
client
的
COMMAND
返回狀態(tài),由于狀態(tài)和結(jié)果非常大(如
GET COMMAND
的結(jié)果),
client
將發(fā)送多個(gè)
MESSAGE
回
server
,然后結(jié)束他的回應(yīng)
?
?2
:
server
從
client
接受到一個(gè)完整的包,
server
將會(huì)發(fā)送一個(gè)新的
COMMAND
給
client
?
?3
:
server
發(fā)送了包中的一個(gè)或多個(gè)指令,但是沒有發(fā)送包中的最后一個(gè)指令的時(shí)候,只有當(dāng)
package
中的最后一個(gè)指令被發(fā)送出去的時(shí)候,這次狀態(tài)才被認(rèn)為是有效的
?
?
由于
SyncML
的傳輸形式是
request/response???
的形式,無論是客戶端還是服務(wù)器端在傳輸消息的時(shí)候都不應(yīng)該包含一個(gè)開始命令或者一個(gè)結(jié)束的標(biāo)志,以便保證
response/request
循環(huán)進(jìn)行下去(言外之意就是有個(gè)這個(gè)標(biāo)志就是開始和結(jié)束的時(shí)候)
.
?
舉例:當(dāng)
server
在
STATE1,
他可能收到客戶端的很多
MESSAGE,
這些
MESSAGE
包含了
status
和
result
。
Server
會(huì)對(duì)任何一個(gè)
message
回應(yīng),除了對(duì)
NEW COMMAND
進(jìn)行回應(yīng)外。
Server
對(duì)發(fā)送的回應(yīng)在
SyncHdr
中包含了一個(gè)
1222 ALERT
,
client
也指定了,(表示沒有結(jié)束還有消息)。
STAUTS
必須對(duì)
ALERT
的回應(yīng)進(jìn)行發(fā)送而不是對(duì)
RESULT
的回應(yīng)進(jìn)行發(fā)送
?
?
ALERT1222
可以被
ALERT 1223
替換,因?yàn)榉?wù)器可以主動(dòng)結(jié)束一個(gè)過程
?
下圖展示了多個(gè)
message
被發(fā)送
6
.
2
需求
?
?
如果
SyncML package
分成多個(gè)
MESSAGE
被傳送,最后一個(gè)
MESSAGE
必須包含一個(gè)
FINAL
的標(biāo)志,其他么
message
一定不能包含
final
標(biāo)志。
Final element
由
server
發(fā)送而不是由
client
發(fā)送,最終停止本次的
PACKAGE
操作。
?? Server
在每個(gè)
MESSAGE
必須發(fā)送
FINAL message
,不過在發(fā)送大的對(duì)象的時(shí)候或者發(fā)送
NEXT MESSAGE
的相應(yīng)的時(shí)候不會(huì)發(fā)送
7
:大對(duì)象的處理
?
? SyncML dm
協(xié)議中,大對(duì)象不能完全在一個(gè)
Message
中傳輸,根據(jù)
SyncML data
同步協(xié)議指定的大對(duì)象處理方案可以分成多個(gè)
Message
。規(guī)則如下:
?
第一個(gè)限制就是支持大對(duì)象處理的終端必須顯示的之處
DevDetail/LrgObj
的標(biāo)識(shí)為
true
第二個(gè)限制是在
server
和
client
傳輸?shù)?/span>
MaxObjSize
有多大,在
SyncML data
同步協(xié)議中
MaxObjSize
會(huì)在
Meta information
中指定。
DM
協(xié)議中被發(fā)送著接受的最大對(duì)象的大小(
MaxObjSize
)包含在
syncHdr
中(
message
的
META INFO
)
,syncHdr
中指定的
MaxObjSize
,發(fā)送者發(fā)送的單個(gè)對(duì)象都不能超過這個(gè)大小,如果
MaxObjSize
沒有被發(fā)送,接收者可以自由發(fā)送任何大小的
message
給
server
。
?
需要指出的是:
MaxObjSize
會(huì)影響整個(gè)
DM session
,如果在隨后的
message
中沒有對(duì)這個(gè)值進(jìn)行重新設(shè)置。新的
MaxObjSize
在后來的
message
指定一個(gè)可能的原因是
client
的
free memory
大小的依賴,(有東西創(chuàng)建在
MEMORY
的時(shí)候或者刪除的時(shí)候
FREE MOMORY
會(huì)發(fā)生變化)。
第三個(gè)限制:在上一個(gè)單元結(jié)束前終端會(huì)檢測新的對(duì)象(
messge
),終端會(huì)回復(fù)一個(gè)
1225
的
alert
?
?
?
?
?
?
?
posted on 2006-05-23 13:58
小小程序程序員混口飯吃 閱讀(2052)
評(píng)論(6) 編輯 收藏 所屬分類:
讀書 、
java