在SyncML的數(shù)據(jù)模型里有兩種元素: 一是設(shè)備管理樹(DM Tree),包含可以操作的對象,二是設(shè)備描述框架,由設(shè)備管理樹的meta信息所組成。
設(shè)備管理樹:可以用來被管理,一個用戶設(shè)備必須把它的內(nèi)部數(shù)據(jù)揭露在管理服務(wù)器中。管理樹的功用是在用戶設(shè)備里組織全部的管理對象成為一個階層式樹形架構(gòu),而在那里URI是唯一能處理管理的對象。 SyncML DM對下列三項事件情的標(biāo)準(zhǔn)化規(guī)范:增加,刪除,修改,恢復(fù)各節(jié)點內(nèi)容的規(guī)則。
● 用戶可指定增加,修改,刪除,存取節(jié)點的存取控制權(quán)利的方法
● 在管理樹和他們的屬性里有不同類型的節(jié)點
設(shè)備描述框架:如果服務(wù)器想要管理用戶設(shè)備,它需要知道用戶設(shè)備的樹形架構(gòu)。因為有許多功能性不同的設(shè)備在市場上,所以樹形架構(gòu)還不能標(biāo)準(zhǔn)化。因此,管理服務(wù)器必須要能夠知道用戶設(shè)備的樹形架構(gòu)和它的屬性。因此,當(dāng)新設(shè)備發(fā)布到市場時,客戶端設(shè)備供貨商會提供新設(shè)備的樹形架構(gòu)。而SyncML DM描述框架為市場上所有的新設(shè)備建立ㄧ種普遍的樹形架構(gòu),因此管理服務(wù)器能藉此設(shè)備描述框架而容易理解設(shè)備。
協(xié)議
SyncML規(guī)范了在client和Server之間的信息交換的語法和語義。Representation Protocol規(guī)范描述語法;Device Management Protocol規(guī)范語義。
Representation Protoco SyncML Representation Protocol定義了信息交換的語法。SyncML DM對于一個或多個SyncML DM訊息操作用了一個概念性框架的SyncML封包來達(dá)成。而這些SyncML訊息則用良好格式的XML文件來表示。每個信息由一個SyncHdr和一個 SyncBody組成。SyncHdr定義了路由、版本和會議信息,而SyncBody則扮演容器用來存放操作管理樹的命令(如Copy、Delete、 Replace以及使用Get命令擷取特殊節(jié)點的內(nèi)容)。 命令是描述命令的細(xì)節(jié)的其它要素類型的貨柜。 那些服務(wù)器可以藉由SyncBody送命令來增加,復(fù)制,刪除,替換操作那些樹管理。而客戶透過Result命令傳回內(nèi)容,并且Status命令傳送另一個命令的執(zhí)行結(jié)果。
Representation Protocol定義了兩種DTD:
● SyncML DTD,規(guī)定基本的SyncML訊息格式。SyncML 規(guī)定各種各樣的命令;這些命令的元素被規(guī)定在這DTD里。
● Meta-Information DTD,它包含數(shù)據(jù)的形式。不同的SyncML命令用不同的數(shù)據(jù)形式送數(shù)據(jù)。有關(guān)于這些數(shù)據(jù)的信息根據(jù)此DTD被設(shè)定成meta-element格式。
Device Management Protocol SyncML Device Management Protocol規(guī)范了handshake(交越)的機制,對于一個成功的management session規(guī)則如下,包括:
● 對于客戶端(client)和伺服端(server)的狀態(tài)機
● client和server能傳送命令
● client和server能彼此互相認(rèn)證的方法
● 傳送的objects要大于傳輸message size的機制
安裝階段:
● packet 0是來自服務(wù)器,是一個可選擇的packet,服務(wù)器使用額外的信號機制通知客戶去連結(jié)服務(wù)器并與服務(wù)器建立一個management session。
● packet 1是來自客戶端, 包含session information,credentials,alert通知(假如客戶端自愿連結(jié)或者服務(wù)器要它連結(jié)),以及設(shè)備信息。
● packet 2是來自服務(wù)器那里,包含這packet 1的狀態(tài)碼。如果被客戶和管理命令要求,它包含證書信息。假如client端或管理的命令要求,也會包含認(rèn)證信息。假如服務(wù)器沒有傳送任何管理命令在 packet內(nèi),則此次session就會結(jié)束。 如果認(rèn)證訊息是錯誤或者不被指定的,安裝階段也許會重新認(rèn)證幾次。
管理階段:
● packet 3中包含client響應(yīng)在packet 2中server管理命令的響應(yīng)。如果server要求任何訊息,則packet 3中的響應(yīng)會包括管理操作的狀態(tài)和結(jié)果。 如果server沒在packet 2中包含任何命令或是沒要求client送下一條信息,則client將不傳送packet 3,此時management session結(jié)束。
● packet 4則是來自server,其中會包含管理命令。
管理階段可以經(jīng)歷多次迭代,在這期間server會送命令并且client對它們作出回應(yīng)。
Device management的管理策略
為了管理不同的對象,一個設(shè)備能連接不同的服務(wù)器。 例如, 為了管理服務(wù)操作的設(shè)定,它能連接一臺服務(wù)提供商的管理服務(wù)器, 或者能連接一臺設(shè)備制造商的管理服務(wù)器來管理一些應(yīng)用。 因此,為了能讓樹節(jié)點上有特別規(guī)范的操作方法和服務(wù)器,SyncML DM規(guī)范了存取控制列表(Access Control Lists, ACL)這個政策。SyncML DM除了規(guī)范了ACL語法,也規(guī)定了參數(shù)設(shè)定規(guī)則、繼承屬性和其它等等。
Device management的安全性
安全性在設(shè)備管理中扮演重要的角色,因為從服務(wù)器到客戶端的信息傳輸是很敏感的。如果你不保證它的安全,則一臺存心不良的管理服務(wù)器能完整的控制客戶端。SyncML DM有下列部署去實現(xiàn)安全的解決方案:
● 驗證: 檢驗用戶設(shè)備或管理服務(wù)器的身份。 你透過一個機制取得驗證,在這個機制里,客戶設(shè)備和服務(wù)器能為彼此詢問驗證的信息,例如用戶賬戶名稱和密碼。 你能使用一個經(jīng)過B64編碼的用戶賬戶名稱和密碼傳送證明, 或者更安全的Message Digest Algorithm算法(MD5),其中包含了nonce。這些驗證信息全部放在SyncML message header中。
● 完整性: 可以確認(rèn)它的內(nèi)容是否已經(jīng)被修改。當(dāng)客戶使用不安全的傳輸時,你將需要完整性的支持。透過計算一個具有shared secret信息的雜湊信息認(rèn)證碼(Hashing for Message Authentication, HMAC)并且在傳輸?shù)臉?biāo)頭上嵌入它,將可以取得在客戶和服務(wù)器之間的信息交換的完整性。信息接受后基于接受的信息與shared secret重算HMAC。如果雜湊配對通過,它暗示信息沒被竄改;否則雜湊配對失敗,信訊息被丟掉。
● 機密性: 從兩個實體交換信息時保持信息內(nèi)容的機密。它雖不限制信息的能見度,但是它能確實防止第3人解譯被傳送的數(shù)據(jù)。除了發(fā)送與接收信息者,有效的阻止任何人解譯消息的內(nèi)容。
SyncML DM有兩類型的機密性:
● 在transport protocol上信息傳輸?shù)臋C密性。SyncML DM沒有規(guī)范如何維護這類型的機密性。 不過,你能在以下兩種模式下取得它: 一是使用一個傳送協(xié)議,它必須支持加密,如Transport Layer Security(TLS);二是HTTPS或是管理組件的加密,它們是可以被客戶端或者服務(wù)器端解密。
● 在設(shè)備管理服務(wù)器之間信息的機密性。 你能使用SyncML DM規(guī)范存取控制列表(Access Control Lists, ACL)控制服務(wù)器管理客戶端的設(shè)備管理樹(如存取、更新、刪除信息的權(quán)力)。
評論