XCAP 协议
XML配置訪問協(xié)議(XCAP)The XML Configuration Access Protocol,是一種應(yīng)用層協(xié)議,它允許一個(gè)客戶端來讀,寫,修改和刪除應(yīng)用程序配置數(shù)據(jù)存儲(chǔ)在服務(wù)器上的XML格式。(相關(guān)文檔:rfc4825-XCAP 協(xié)議標(biāo)準(zhǔn)文檔 )
XCAP映射XML文件子樹和元素屬性到HTTP URIs,使這些組件可以直接使用HTTP協(xié)議的客戶端訪問。
引言
如名字所示,XCAP是一種配置訪問協(xié)議。它使用XML文檔格式來存儲(chǔ)應(yīng)用程序的配置數(shù)據(jù),允許客戶端讀取、寫入及修改配置數(shù)據(jù)。
XCAP映射XML文檔的子樹和元素屬性到HTTP URL,所以這些組件可以通過HTTP直接獲取。XCAP是一種映射XML文檔和文檔屬性到HTTP URL的一種慣例,一個(gè)資源的修改如何影響其他資源的規(guī)則,數(shù)據(jù)驗(yàn)證的約束,訪問資源時(shí)相關(guān)的授權(quán)策略。因?yàn)檫@種結(jié)構(gòu),普通HTTP能夠用來操作數(shù)據(jù)。XCAP很大長度上借鑒了Application Configuration Access Protocol(ACAP),但它不是ACAP的擴(kuò)展,也不依賴ACAP。像ACAP一樣,XCAP支持多種應(yīng)用程序配置的需要,而不只是一種。
應(yīng)用程序
在很多通信應(yīng)用程序中,如VoIP,IM和presence,需要網(wǎng)絡(luò)服務(wù)器去獲取個(gè)性化用戶信息給服務(wù)請(qǐng)求的進(jìn)程。這些個(gè)性化用戶信息存在于網(wǎng)絡(luò)中,但由終端用戶自己管理。這些管理可通過各種獲取終端完成,包括web,無線手機(jī),或pc應(yīng)用程序。個(gè)性化用戶信息的例子包括presence,授權(quán)策略和presence lists。Presence lists一個(gè)觀察者需要的一些用戶的presence。一種獲取列表的presence信息的方法是訂閱代表presence list的資源。在這種情況下,資源列表服務(wù)器(Resource List Server,RLS)需要獲取這個(gè)列表來處理自身的SIP?訂閱請(qǐng)求。另一種獲取用戶presence list的方法是單獨(dú)訂閱每個(gè)用戶。在這種情況下,可以使用一個(gè)服務(wù)器來方便地存儲(chǔ)list,當(dāng)客戶端啟動(dòng)時(shí),它從服務(wù)器獲取list。這允許用戶從不同的終端獲取他們的資源列表。
更詳細(xì)的解釋:
SIMPLE規(guī)定允許一個(gè)用戶(watcher)訂閱另一個(gè)用戶(presentity)來知道他的presence信息。
當(dāng)希望訂閱一個(gè)presence list時(shí),標(biāo)準(zhǔn)的做法是要求watcher創(chuàng)建和維護(hù)訂閱到每個(gè)presentity的列表。對(duì)于大的列表,需要的帶寬會(huì)更大,特別是在無線網(wǎng)絡(luò)環(huán)境下。一個(gè)SIP事件框架的擴(kuò)展是,允許watcher使用單一的訂閱來訂閱資源列表。這樣的訂閱需要一個(gè)叫做Resource List Server的服務(wù)器,這個(gè)服務(wù)器持有用戶希望訂閱的資源列表的presence list?的拷貝。通過使用XCAP,一個(gè)終端能夠展示并按需操作服務(wù)器上presence list。
操作概述
每個(gè)利用XCAP的應(yīng)用程序可以指定應(yīng)用程序的用法。這種應(yīng)用程序的用法定義了被應(yīng)用程序使用的數(shù)據(jù)的XML模式,和其他關(guān)鍵信息片段。XCAP的首要任務(wù)就是允許客戶端讀、寫、修改、創(chuàng)建和刪除數(shù)據(jù)片段。這些操作支持使用HTTP 1.1。
一個(gè)XCAP服務(wù)器扮演了一組XML文檔的倉庫。每個(gè)應(yīng)用程序都有一組文檔,每個(gè)應(yīng)用程序的每個(gè)用戶也都有一組文檔。為了訪問這些文檔中的一個(gè)文檔的某一組件,XCAP定義了一個(gè)算法來構(gòu)建能夠指向那個(gè)組件的URL。組件指示了文檔里的所有元素或?qū)傩?。因?#xff0c;XCAP使用的HTTP URL指向文檔或XML文檔本身的一塊信息。一個(gè)遵守此處定義的命名慣例和驗(yàn)證約束的HTTP資源就叫做XCAP資源。
因?yàn)?/span>XCAP資源也是HTTP資源,它們可以使用HTTP方法獲取。使用HTTP GET獲取XCAP資源,用HTTP PUT創(chuàng)建或修改,HTTP DELETE刪除資源。與HTTP關(guān)聯(lián)的資源的屬性,如實(shí)體標(biāo)簽,也被應(yīng)用到XCAP資源。實(shí)體標(biāo)簽在XCAP里非常有用,因?yàn)樗鼈冊(cè)试S執(zhí)行一組條件操作。
一個(gè)XCAP資源不過是XML文檔,XML文檔里的元素,關(guān)聯(lián)到元素的屬性。每個(gè)HTTP GET、PUT、DELETE方法能夠執(zhí)行到屬于一個(gè)用戶的特定應(yīng)用的資源。
映射XCAP資源到HTTP URI可下面方式完成:
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<xcap-caps>
<users>
<user1>hgs@cs.columbia.edu</user1>
<user2>mss2103@cs.columbia.edu</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里描述資源的真實(shí)路徑 | HTTP 1.0/1.1 |
Part2詳解:
服務(wù)器檢索被訪問的應(yīng)用程序,按照XCAP Root/Application(k)。如前面提到的,每個(gè)應(yīng)用程序和每個(gè)應(yīng)用程序的用戶有它們自己的目錄。所以整個(gè)系統(tǒng)是以層次化的結(jié)構(gòu)存儲(chǔ)的,以XCAP ROOT作為頂層,應(yīng)用程序作為這個(gè)根的直接子節(jié)點(diǎn),用戶構(gòu)成應(yīng)用程序的子節(jié)點(diǎn),每個(gè)用戶目錄下有一組XML文件。每個(gè)XML文件里面,所有元素有一個(gè)根節(jié)點(diǎn),每個(gè)元素可以有一些屬性。
上面的路徑嘗試在XCAP服務(wù)器上獲取應(yīng)用程序k下的用戶m的i文檔。目前為止的這個(gè)路徑(Application(k)/user(m)/document(i))叫做文檔選擇器?!?/span>~~”叫路徑分隔符,它分隔了文檔選擇器和節(jié)點(diǎn)選擇器。路徑之后的就是節(jié)點(diǎn)選擇器,所以上面請(qǐng)求的節(jié)點(diǎn)選擇器是“xcap-caps/users/user1”,這告訴服務(wù)器,從文檔i的根節(jié)點(diǎn)<xcap-caps>開始,在<xcap-caps>里找到<users>,在<users>里找到<user1>。當(dāng)目標(biāo)被定位到時(shí),可執(zhí)行指定的方法(GET, PUT, DELETE)。
如果節(jié)點(diǎn)選擇器為空,則HTTP的方法將被應(yīng)用到選定的文檔上。
個(gè)人總結(jié):
1、XCAP是一種能夠映射HTTP URL到服務(wù)器上的XML內(nèi)部結(jié)構(gòu)的協(xié)議,這些XML文檔保存每個(gè)應(yīng)用程序里的每個(gè)用戶的個(gè)性化信息。
2、一個(gè)符合XCAP的URL由三部分組成,第一部分叫文檔選擇器,與普通HTTP URL類似,用于定位XML文檔,路徑結(jié)構(gòu)是:Application/User/Document;第二部分是路徑分隔符:~~;第三部分叫節(jié)點(diǎn)選擇器,使用XPath表達(dá)式來定位XML的元素、屬性等。
3、XCAP服務(wù)器可以用HTTP協(xié)議直接訪問,對(duì)于定位到的XML元素、屬性等,可用HTTP GET方法查詢值,HTTP PUT創(chuàng)建或修改,用HTTP DELETE刪除。
總結(jié)
- 上一篇: 简单JS实现对表的行的增删
- 下一篇: OAuth认证与授权