隨筆-109  評論-187  文章-25  trackbacks-0

          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 回復通知,那么Alert1200)標識由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 commandreplace command需求如下

          ? Cmdid 是必須的

          ? Dm tree 每個節點的item都可以被找到,在DMSTDOBJ中有詳細描述

          ? Source element 必須包含一個指定的URI 節點

          ? Data element 用來裝載device 信息數據

          ?

          Final element 必須包含在Syncbody 的最后一個message

          posted on 2006-05-24 13:41 小小程序程序員混口飯吃 閱讀(863) 評論(1)  編輯  收藏 所屬分類: 讀書java

          評論:
          # re: DM1.1.2協議的翻譯第二部分 2006-05-25 18:51 | pc
          主站蜘蛛池模板: 苏尼特右旗| 卢龙县| 九江市| 天门市| 海南省| 盐城市| 枝江市| 汨罗市| 岳阳市| 中方县| 东平县| 孟州市| 南安市| 石狮市| 江西省| 庆元县| 顺义区| 怀集县| 麦盖提县| 云阳县| 沿河| 常熟市| 景泰县| 鸡东县| 凯里市| 秦安县| 买车| 徐汇区| 望城县| 大新县| 拉萨市| 白水县| 卓尼县| 区。| 五家渠市| 大荔县| 卢氏县| 高唐县| 德惠市| 甘肃省| 海丰县|