XCAP 詳解

引言

如名字所示,XCAP 是一種配置訪問協議。它使用 XML 文檔格式來存儲應用程序的配置數據,允許客戶端讀取、寫入及修改配置數據。

 

XCAP映射 XML 文檔的子樹和元素屬性到 HTTP URL ,所以這些組件可以通過 HTTP 直接獲取。 XCAP 是一種映射 XML 文檔和文檔屬性到 HTTP URL 的一種慣例,一個資源的修改如何影響其他資源的規則,數據驗證的約束,訪問資源時相關的授權策略。因爲這種結構,普通 HTTP 能夠用來操作數據。 XCAP 很大長度上借鑑了Application Configuration Access Protocol ( ACAP ),但它不是 ACAP 的擴展,也不依賴 ACAP 。像 ACAP 一樣, XCAP 支持多種應用程序配置的需要,而不只是一種。

 

應用程序

在很多通信應用程序中,如 VoIP, IM 和 presence ,需要網絡服務器去獲取 個性化 用戶信息給服務請求的進程。這些 個性化 用戶信息存在於網絡中,但由終端用戶自己管理。這些管理可通過各種獲取終端完成,包括web,無線手機,或 pc 應用程序。個性化用戶信息的例子包括 presence ,授權策略和 presence lists 。Presence lists 一個觀察者需要的一些用戶的 presence 。一種獲取列表的 presence 信息的方法是訂閱代表presence list 的資源。在這種情況下,資源列表服務器( Resource List Server  , RLS )需要獲取這個列表來處理自身的 SIP  訂閱請求。另一種獲取用戶 presence list 的方法是單獨訂閱每個用戶。在這種情況下,可以使用一個服務器來方便地存儲 list ,當客戶端啓動時,它從服務器獲取 list 。這允許用戶從不同的終端獲取他們的資源列表。

 

更詳細的解釋:

SIMPLE規定允許一個用戶( watcher )訂閱另一個用戶( presentity )來知道他的 presence 信息。

 

當希望訂閱一個presence list 時,標準的做法是要求 watcher 創建和維護訂閱到每個 presentity 的列表。對於大的列表,需要的帶寬會更大,特別是在無線網絡環境下。一個 SIP 事件框架的擴展是,允許 watcher 使用單一的訂閱來訂閱資源列表。這樣的訂閱需要一個叫做 Resource List Server 的服務器,這個服務器持有用戶希望訂閱的資源列表的 presence list  的拷貝。通過使用 XCAP ,一個終端能夠展示並按需操作服務器上 presence list 。

 

 

操作概述

每個利用 XCAP的 應用程序可以指定應用程序的用法。這種應用程序的用法定義了被應用程序使用的數據的XML模式,和其他關鍵信息片段。 XCAP 的首要任務就是允許客戶端讀、寫、修改、創建和刪除數據片段。這些操作支持使用 HTTP 1.1 。

 

一個 XCAP服務器扮演了一組 XML 文檔的倉庫。每個應用程序都有一組文檔,每個應用程序的每個用戶也都有一組文檔。爲了訪問這些文檔中的一個文檔的某一組件, XCAP 定義了一個算法來構建能夠指向那個組件的 URL 。組件指示了文檔裏的所有元素或屬性。因此, XCAP 使用的 HTTP URL 指向文檔或 XML 文檔本身的一塊信息。一個遵守此處定義的命名慣例和驗證約束的 HTTP  資源就叫做 XCAP 資源。

 

因爲 XCAP資源也是 HTTP 資源,它們可以使用 HTTP 方法獲取。使用 HTTP GET 獲取 XCAP 資源,用HTTP PUT 創建或修改, HTTP DELETE 刪除資源。與 HTTP 關聯的資源的屬性,如實體標籤,也被應用到XCAP 資源。實體標籤在 XCAP 裏非常有用,因爲它們允許執行一組條件操作。

 

一個 XCAP資源不過是 XML 文檔, XML 文檔裏的元素,關聯到元素的屬性。每個 HTTP GET 、 PUT 、DELETE 方法能夠執行到屬於一個用戶的特定應用的資源。

 

映射 XCAP資源到 HTTP URI 可下面方式完成:

<? xml   version = "1.0"   encoding = "ISO-8859-1" ?>

< xcap-caps >

< users >

< user1 > [email protected] </ user1 >

< user2 > [email protected] </ user2 >

</ users >

</ xcap-caps >

 

獲取<user1> 的 HTTP URI 看起來是這樣的:

Part1 

Part2 

Part3 

HTTP Method)

XCAP Root/Application(k)/user(m)/document(i)/~~/xcap-caps/users/user1

HTTP(v) 

GET/PUT/DELETE

XML裏描述資源的真實路徑

HTTP 1.0/1.1

 

 

Part2詳解:

服務器檢索被訪問的應用程序,按照 XCAP Root/Application(k) 。如前面提到的,每個應用程序和每個應用程序的用戶有它們自己的目錄。所以整個系統是以層次化的結構存儲的,以 XCAP ROOT作爲頂層,應用程序作爲這個根的直接子節點,用戶構成應用程序的子節點,每個用戶目錄下有一組 XML 文件。每個 XML 文件裏面,所有元素有一個根節點,每個元素可以有一些屬性。

 

上面的路徑嘗試在 XCAP服務器上 獲取應用程序 k下的用戶 m 的 i 文檔。目前爲止的這個路徑(Application(k)/user(m)/document(i) )叫做文檔選擇器。“ ~~ ”叫路徑分隔符,它分隔了文檔選擇器和節點選擇器。路徑之後的就是節點選擇器,所以上面請求的節點選擇器是“ xcap-caps/users/user1 ”,這告訴服務器,從文檔i 的根節點 <xcap-caps> 開始,在 <xcap-caps> 裏找到 <users> ,在 <users> 裏找到 <user1> 。當目標被定位到時,可執行指定的方法( GET, PUT, DELETE )。

 

如果節點選擇器爲空,則HTTP 的方法將被應用到選定的文檔上。

 

 

 

個人總結:

1、 XCAP是一種能夠映射 HTTP URL 到服務器上的 XML 內部結構的協議,這些 XML 文檔保存每個應用程序裏的每個用戶的個性化信息。

2、 一個符合XCAP 的 URL 由三部分組成,第一部分叫文檔選擇器,與普通 HTTP URL 類似,用於定位 XML 文檔,路徑結構是: Application/User/Document ;第二部分是路徑分隔符: ~~ ;第三部分叫節點選擇器,使用XPath 表達式來定位 XML 的元素、屬性等。

3、 XCAP 服務器可以用 HTTP 協議直接訪問,對於定位到的 XML 元素、屬性等,可用 HTTP GET 方法查詢值, HTTP PUT 創建或修改,用 HTTP DELETE 刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章