国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

BlueTooth探索系列(二)---發(fā)現(xiàn)服務(wù)框架

2019-11-18 16:19:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
BlueTooth探索系列(二)---發(fā)現(xiàn)服務(wù)框架

作者cleverpig


版權(quán)申明:可以自由轉(zhuǎn)載, 轉(zhuǎn)載請(qǐng)保留下面的作者信息:
作者 cleverpig(http://www.matrix.org.cn/blog/cleverpig)
關(guān)鍵詞: 藍(lán)牙,jsr,j2me,BlueTooth,SDP

二、Service Discovery PRotocol:

1.service Discovery Protocol適用范疇:

自由的使用藍(lán)牙設(shè)備上的服務(wù)是我們所期待的目標(biāo),但是這些藍(lán)牙設(shè)備上提供的服務(wù)是以一種不可確定甚至無(wú)法控制的方式動(dòng)態(tài)增減著。為了幫助使用藍(lán)牙設(shè)備的用戶(hù)有序地羅列出每次都在變化的服務(wù),并從中選擇一些為他所用,JSR組織制定了Service Discovery Protocol(簡(jiǎn)稱(chēng)SDP)——服務(wù)發(fā)現(xiàn)協(xié)議。當(dāng)遇到未知藍(lán)牙服務(wù)時(shí),遵守這個(gè)標(biāo)準(zhǔn)化的框架的藍(lán)牙產(chǎn)品將能夠定位服務(wù)所在位置,識(shí)別和有選擇的使用服務(wù)。藍(lán)牙協(xié)議堆棧包含了SDP,這個(gè)協(xié)議能夠在周?chē)乃{(lán)牙設(shè)備中定位有效的服務(wù)提供給用戶(hù),作為用戶(hù)選擇服務(wù)使用的依據(jù)。有關(guān)選擇、訪問(wèn)、使用服務(wù)的內(nèi)容不屬于本文的范疇,然而盡管SDP沒(méi)有直接的被防問(wèn)服務(wù)所調(diào)用,但通過(guò)將SDP所獲得信息作為屬性條件來(lái)讓本地藍(lán)牙協(xié)議堆棧訪問(wèn)指定設(shè)備的方式對(duì)使用指定設(shè)備上的服務(wù)起到了極其重要的促進(jìn)作用。

SDP協(xié)議框架定義了在一個(gè)藍(lán)牙設(shè)備上運(yùn)行的服務(wù)發(fā)現(xiàn)應(yīng)用所要使用的協(xié)議和過(guò)程兩個(gè)方面:服務(wù)發(fā)現(xiàn)應(yīng)用按照這個(gè)協(xié)議和過(guò)程來(lái)定位其它設(shè)備上的服務(wù)并使用它們。從這個(gè)框架的角度來(lái)看,服務(wù)發(fā)現(xiàn)應(yīng)用是一個(gè)特定的由用戶(hù)發(fā)起的應(yīng)用。從這個(gè)框架與其它的藍(lán)牙協(xié)議框架的比較看來(lái),兩者是不同的:服務(wù)發(fā)現(xiàn)工作與兩個(gè)在藍(lán)牙設(shè)備中的SDP實(shí)例交互,其目的是使用某個(gè)特定的傳輸服務(wù)(RFCOMM)或者特定的用途(文件傳輸、無(wú)線電話(huà)、LAN AP等)。其中后者(將服務(wù)用于特定的用途)的詳細(xì)描述在相應(yīng)的Bluetooth usage scenarioprofile(藍(lán)牙用途框架)文檔中可以查到。在其它的框架文檔中,服務(wù)發(fā)現(xiàn)也出現(xiàn)在了一些地方:協(xié)議講解、訪問(wèn)某個(gè)特定服務(wù)需要的協(xié)議參數(shù)等。無(wú)論怎樣,SDP框架說(shuō)明了服務(wù)發(fā)現(xiàn)的過(guò)程和在這些過(guò)程中如何使用SDP協(xié)議。與在其它框架文檔中不同的是這些過(guò)程在SDP框架中被用在了用戶(hù)層面,而其它的框架文檔中將它使用在了應(yīng)用級(jí)別的行為上。

SDP直接支持以下幾種服務(wù)查詢(xún):
1).通過(guò)服務(wù)類(lèi)進(jìn)行服務(wù)查詢(xún);
2).通過(guò)服務(wù)屬性對(duì)服務(wù)進(jìn)行查詢(xún);
3).服務(wù)瀏覽。

一般的服務(wù)發(fā)現(xiàn)應(yīng)用都被以上的三種服務(wù)查詢(xún)所覆蓋。其中前兩個(gè)代表了查詢(xún)已知或者指定的服務(wù),并對(duì)類(lèi)似“服務(wù)A是否有效?”或者“具有B和C特性的服務(wù)A是否有效?”的問(wèn)題作出了回答。后面的服務(wù)瀏覽代表了另外一種服務(wù)查詢(xún),對(duì)類(lèi)似“有效的服務(wù)有哪些?”或者“有效的類(lèi)型A的服務(wù)有哪些”的問(wèn)題給出解答。

上面的服務(wù)查詢(xún)段落可以被實(shí)現(xiàn)為兩種方式:
1).用戶(hù)有意識(shí)地連接到某個(gè)設(shè)備,并查找這個(gè)設(shè)備上的服務(wù);
2).通過(guò)無(wú)意識(shí)地連接本地設(shè)備周?chē)脑O(shè)備,并執(zhí)行服務(wù)查詢(xún)。
這兩種實(shí)現(xiàn)方式都需要設(shè)備首先被發(fā)現(xiàn)、被連接、被查詢(xún)它們所支持的服務(wù)。

2.sdp概貌:
1).SDP框架的堆棧:

BlueTooth探索系列(二)---發(fā)現(xiàn)服務(wù)框架(圖一)

上圖顯示了藍(lán)牙協(xié)議和使用SDP的應(yīng)用實(shí)例。

如圖中,SrvDscApp這個(gè)服務(wù)發(fā)現(xiàn)用戶(hù)應(yīng)用位于本地設(shè)備LocDev上,通過(guò)與藍(lán)牙SDP客戶(hù)端的接口,發(fā)送服務(wù)查詢(xún)請(qǐng)求并接收從位于遠(yuǎn)端設(shè)備RemDevs上的SDP服務(wù)器的服務(wù)查詢(xún)響應(yīng)。SDP使用了面向連接的L2CAP協(xié)議來(lái)傳輸服務(wù),這種L2CAP協(xié)議使用基帶異步無(wú)連接(ACL)來(lái)實(shí)現(xiàn)最終裝載/傳輸SDP的PDU(協(xié)議數(shù)據(jù)單元)。
服務(wù)發(fā)現(xiàn)過(guò)程以與發(fā)現(xiàn)設(shè)備過(guò)程密切相關(guān),發(fā)現(xiàn)設(shè)備過(guò)程又與執(zhí)行設(shè)備查詢(xún)和設(shè)備捆綁的過(guò)程密切相關(guān)。這樣,這個(gè)SrvDscApp應(yīng)用通過(guò)使用BT_module_Cntrl實(shí)例與基帶進(jìn)行接口,而用BT_module_Cntrl實(shí)例在進(jìn)入查詢(xún)模式的操作時(shí)負(fù)責(zé)指揮藍(lán)牙模塊。

注:BT_module_Cntrl可以是藍(lán)牙協(xié)議堆棧實(shí)現(xiàn)的一部分或者是SrvDscApp應(yīng)用的一個(gè)低級(jí)部分。正因?yàn)檫@樣,也沒(méi)有關(guān)于任何特定協(xié)議堆棧或者SrvDscApp應(yīng)用實(shí)現(xiàn)被完成的假設(shè),BT_module_Cntrl實(shí)例代表著一個(gè)與SrvDscApp分離的邏輯實(shí)體,它既不是SrvDscApp的一部分,也不是協(xié)議堆棧的部件或者任何相應(yīng)的代碼片斷。
服務(wù)記錄數(shù)據(jù)庫(kù)在上圖中顯示在SDP server的右側(cè),它是一個(gè)邏輯實(shí)體,工作起來(lái)就像服務(wù)發(fā)現(xiàn)的相關(guān)信息的倉(cāng)庫(kù),可被client用來(lái)查找特定服務(wù),可被server用來(lái)發(fā)布服務(wù)。

2).配置與角色:
以下角色被定義在SDP框架中:
本地設(shè)備(LocDev):本地設(shè)備是一個(gè)發(fā)起服務(wù)發(fā)現(xiàn)過(guò)程的設(shè)備。它必須至少包含藍(lán)牙SDP框架的客戶(hù)端部分:被用戶(hù)用來(lái)發(fā)起發(fā)現(xiàn)服務(wù)過(guò)程的服務(wù)發(fā)現(xiàn)應(yīng)用(SrvDscApp),顯示發(fā)現(xiàn)結(jié)果的顯示功能。
遠(yuǎn)程設(shè)備(RemDev):遠(yuǎn)程設(shè)備是一種參與服務(wù)發(fā)現(xiàn)過(guò)程,對(duì)來(lái)自本地設(shè)備LocDev的服務(wù)查詢(xún)請(qǐng)求作出回應(yīng)。它必須包含藍(lán)牙SDP框架中的服務(wù)器部分:即包含一個(gè)服務(wù)記錄數(shù)據(jù)庫(kù),用來(lái)組成對(duì)服務(wù)發(fā)現(xiàn)請(qǐng)求的回應(yīng)部分。

賦予一個(gè)設(shè)備的LocDev或者RemDev角色不是永久的也不是唯一的。某個(gè)RemDev可能像SDP客戶(hù)端那樣安裝了SrvDscApp,而某個(gè)LocDev也可能有一個(gè)SDP Server。對(duì)于一個(gè)安裝了SrcDscApp、SDP客戶(hù)端、SDP Server的設(shè)備,這個(gè)設(shè)備的角色賦值是由每次的SDP會(huì)話(huà)過(guò)程決定的。因此,一個(gè)設(shè)備可以在一個(gè)特定的SDP會(huì)話(huà)中擔(dān)任LocDev角色,也可能在另一次SDP會(huì)話(huà)中擔(dān)任RemDev角色。由上圖看出,一個(gè)沒(méi)有UI的設(shè)備,不能接收用戶(hù)輸入并顯示服務(wù)查詢(xún)的結(jié)果,那么這個(gè)設(shè)備就不被看作是LocDev的候選者。但無(wú)論如何,即使這樣一個(gè)設(shè)備不被看作是一個(gè)LocDev的候選者,如果運(yùn)行在這個(gè)設(shè)備上的應(yīng)用需要執(zhí)行服務(wù)發(fā)現(xiàn)會(huì)話(huà)時(shí),在下面章節(jié)的過(guò)程描述仍能應(yīng)用。
BlueTooth探索系列(二)---發(fā)現(xiàn)服務(wù)框架(圖二)

上圖是一個(gè)典型的服務(wù)發(fā)現(xiàn)結(jié)構(gòu)。圖中notebook作為本地設(shè)備正在查詢(xún)周邊的遠(yuǎn)程設(shè)備上的服務(wù)。進(jìn)入討論組討論。

(出處:http://m.survivalescaperooms.com)



發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 镇原县| 绵阳市| 石柱| 长沙县| 尉氏县| 阜南县| 荔浦县| 砚山县| 青阳县| 威信县| 门头沟区| 镇原县| 喜德县| 福清市| SHOW| 清新县| 磴口县| 余干县| 松阳县| 石狮市| 三门县| 玉环县| 普宁市| 芷江| 益阳市| 阿克| 瑞金市| 济阳县| 崇义县| 逊克县| 阳泉市| 扶余县| 威宁| 治多县| 安多县| 和田市| 吉林市| 宁远县| 北海市| 东兰县| 东安县|