版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
服務(wù)發(fā)現(xiàn)
1.
服務(wù)發(fā)現(xiàn)的功能
在一個(gè)以網(wǎng)絡(luò)為中心的計(jì)算環(huán)境中,尋找和使用一個(gè)網(wǎng)絡(luò)中的服務(wù)越來(lái)越重要。網(wǎng)絡(luò)服務(wù)的形式各種各樣,每個(gè)設(shè)備可提供的服務(wù)也日趨多樣。對(duì)于藍(lán)牙設(shè)備來(lái)說(shuō),要想訪(fǎng)問(wèn)另一個(gè)設(shè)備的服務(wù),必須知道該設(shè)備所提供的服務(wù),以及獲取該服務(wù)的一些信息(如該服務(wù)使用的各種協(xié)議棧、服務(wù)名稱(chēng)、服務(wù)提供者和獲得服務(wù)所需要的參數(shù))。查詢(xún)服務(wù)服務(wù)記錄1服務(wù)記錄2服務(wù)記錄3………常用的服務(wù)發(fā)現(xiàn)方式:服務(wù)定位協(xié)議SLP(ServiceLocationProtocol)通用即插即用UPnP(UniversalPlugandPlay)藍(lán)牙SIG專(zhuān)門(mén)為藍(lán)牙系統(tǒng)制定了一個(gè)服務(wù)發(fā)現(xiàn)協(xié)議SDP(ServiceDiscoveryProtocol),它非常適合藍(lán)牙系統(tǒng)移動(dòng)性較強(qiáng)的的特點(diǎn),并且可以和其它服務(wù)發(fā)現(xiàn)協(xié)議共存于藍(lán)牙環(huán)境中,符合藍(lán)牙系統(tǒng)開(kāi)放性的特點(diǎn)。藍(lán)牙服務(wù)發(fā)現(xiàn)協(xié)議的基本出發(fā)點(diǎn)是發(fā)現(xiàn)服務(wù)但不提供對(duì)服務(wù)的訪(fǎng)問(wèn),對(duì)服務(wù)的訪(fǎng)問(wèn)需要通過(guò)其它協(xié)議來(lái)實(shí)現(xiàn)?;卦砟夸?.
客戶(hù)機(jī)-服務(wù)器模型
回原理目錄
客戶(hù)機(jī)-服務(wù)器交互是大多數(shù)網(wǎng)絡(luò)通信的基礎(chǔ)模式??蛻?hù)機(jī)發(fā)送請(qǐng)求,等待響應(yīng)。而服務(wù)器等待請(qǐng)求并完成基于請(qǐng)求的動(dòng)作,形成響應(yīng)的數(shù)據(jù)包,返回給客戶(hù)機(jī)。
服務(wù)發(fā)現(xiàn)協(xié)議是典型的客戶(hù)機(jī)-服務(wù)器模型。每個(gè)服務(wù)發(fā)現(xiàn)協(xié)議分為客戶(hù)端部分和服務(wù)器端部分,兩部分在不同的藍(lán)牙設(shè)備上工作。一個(gè)藍(lán)牙設(shè)備可以既是服務(wù)器同時(shí)又是客戶(hù)機(jī)。請(qǐng)求服務(wù)的藍(lán)牙設(shè)備運(yùn)行服務(wù)發(fā)現(xiàn)協(xié)議的客戶(hù)端部分,提供服務(wù)的藍(lán)牙設(shè)備運(yùn)行服務(wù)發(fā)現(xiàn)協(xié)議的服務(wù)器端部分。服務(wù)發(fā)現(xiàn)協(xié)議中:
客戶(hù)機(jī)組成服務(wù)查詢(xún)請(qǐng)求的協(xié)議數(shù)據(jù)單元PDU(ProtocolDataUnit)發(fā)送給服務(wù)器,服務(wù)器根據(jù)不同的請(qǐng)求,查詢(xún)本地服務(wù)記錄數(shù)據(jù)庫(kù),組成適當(dāng)?shù)捻憫?yīng)PDU,返回給客戶(hù)機(jī),從而完成一次查詢(xún)。流程如下圖所示。服務(wù)器應(yīng)該滿(mǎn)足多個(gè)請(qǐng)求同時(shí)到達(dá)的情況,并且對(duì)數(shù)據(jù)庫(kù)進(jìn)行保護(hù)。SDP客戶(hù)端與服務(wù)器交互模型
3.
數(shù)據(jù)元的編解碼由于查詢(xún)結(jié)果多種多樣,因此需要靈活的表示方式。同時(shí)這些數(shù)據(jù)在空中交互,所以應(yīng)該采用盡量小的包以節(jié)約帶寬。藍(lán)牙協(xié)議中采用數(shù)據(jù)元的形式來(lái)表示變長(zhǎng)數(shù)據(jù),這樣可以減少對(duì)無(wú)線(xiàn)信道資源的浪費(fèi);數(shù)據(jù)庫(kù)中的信息存儲(chǔ)也以數(shù)據(jù)元的形式表示,這樣可以節(jié)約存儲(chǔ)資源。下面我們將介紹數(shù)據(jù)元、通用專(zhuān)有識(shí)別符、服務(wù)記錄、服務(wù)屬性的概念。數(shù)據(jù)元的結(jié)構(gòu)數(shù)據(jù)元可以有效地表示可變長(zhǎng)和不同屬性的數(shù)據(jù)庫(kù)信息,其結(jié)構(gòu)如上圖所示,它由頭域和數(shù)據(jù)域構(gòu)成。頭域用于描述數(shù)據(jù)域的數(shù)據(jù)類(lèi)型和大小,它又分為類(lèi)型描述府、尺寸描述符和附加位三部分。(見(jiàn)書(shū)28頁(yè))頭域(>8bits)數(shù)據(jù)域(長(zhǎng)度根據(jù)頭域)類(lèi)型描述符(5bits)
尺寸描述符(3bits)附加位數(shù)據(jù)元
數(shù)據(jù)元的編解碼
編碼過(guò)程:將服務(wù)記錄用數(shù)據(jù)元格式表示出來(lái),在注冊(cè)函數(shù)中調(diào)用。
解碼過(guò)程:將查詢(xún)返回的服務(wù)屬性數(shù)據(jù)元解析成可以理解的服務(wù)記錄形式,用樹(shù)形結(jié)構(gòu)給出?;卦砟夸浲ㄓ脤?zhuān)有識(shí)別符UUID
a.服務(wù)屬性的屬性值常常需要用通用專(zhuān)有識(shí)別符UUID(UniversallyUniqueIdentifier)來(lái)標(biāo)識(shí),它在時(shí)間和空間上都是唯一的,用于標(biāo)識(shí)某一事物如服務(wù)、協(xié)議等。
b.UUID長(zhǎng)度為128比特。為了減少存儲(chǔ)和傳輸負(fù)擔(dān),對(duì)一些常用的和已注冊(cè)的用途預(yù)先分配了UUID,這些UUID的長(zhǎng)度為16比特或32比特,它們可以轉(zhuǎn)換為128比特UUID。
(書(shū)46頁(yè)附表)服務(wù)記錄(ServiceRecord) 服務(wù)發(fā)現(xiàn)協(xié)議服務(wù)器中關(guān)于一個(gè)服務(wù)的所有信息構(gòu)成了一條服務(wù)記錄; 一條服務(wù)記錄含有一個(gè)服務(wù)的所有服務(wù)屬性; 每個(gè)服務(wù)記錄有一個(gè)服務(wù)記錄句柄(Servicerecordhandle)與之對(duì)應(yīng);
服務(wù)記錄句柄對(duì)于每個(gè)服務(wù)記錄來(lái)說(shuō)是唯一的。在同一個(gè)服務(wù)發(fā)現(xiàn)協(xié)議服務(wù)器端,不同的服務(wù)記錄有不同的服務(wù)記錄句柄值。但在不同的SDP服務(wù)器端,同一種服務(wù)記錄的句柄之間相互獨(dú)立,也就是說(shuō)可能相同。服務(wù)屬性(ServiceAttribute) 用于描述一個(gè)服務(wù)中的一條特性。它由屬性ID和屬性值構(gòu)成;
屬性ID用于標(biāo)識(shí)該服務(wù)屬性描述的是何種特性,屬性值表示該屬性的具體內(nèi)容; 在服務(wù)發(fā)現(xiàn)協(xié)議服務(wù)器中,屬性ID和屬性值以數(shù)據(jù)元的形式表示; 服務(wù)發(fā)現(xiàn)協(xié)議對(duì)服務(wù)的查找機(jī)制是基于通用專(zhuān)有識(shí)別符UUID的。服務(wù)屬性的屬性值通常用UUID來(lái)表示,即一個(gè)服務(wù)的特性是由一些UUID描述的。 不同的服務(wù)屬性,屬性值有不同規(guī)定。
(書(shū)29頁(yè))
服務(wù)發(fā)現(xiàn)協(xié)議定義的3種服務(wù)屬性:通用屬性:是所有服務(wù)記錄都可以包含的服務(wù)屬性,但并非所有的服務(wù)記錄都必須含有所有的通用屬性。
專(zhuān)門(mén)用于描述“服務(wù)發(fā)現(xiàn)服務(wù)器服務(wù)”的服務(wù)屬性:專(zhuān)門(mén)用于描述“瀏覽組描述符服務(wù)”的服務(wù)屬性(書(shū)30頁(yè))服務(wù)屬性項(xiàng)定義類(lèi)型屬性值屬性IDServiceClassIDList0x0001ServiceClass0SerialPortUUID
UUIDProtocolDescriptorList0x0004Protocol0UUIDL2CAPProtocol1UUIDRFCOMMProtocolSpecificParameter0UINT8N=serverchannel
ServiceNameTextname
String“COM5”0x0100
由上所述,一個(gè)服務(wù)記錄中的所有服務(wù)屬性可以按樹(shù)形列舉出來(lái),從而組成針對(duì)服務(wù)特定的一條記錄。一個(gè)串口服務(wù)的服務(wù)記錄4.
PDU交互的工作流程
SDP定義了2種獲取服務(wù)信息的方式:查找服務(wù)方式:在用戶(hù)知道服務(wù)的UUID的情況下,用戶(hù)通過(guò)指定服務(wù)類(lèi)型(ServiceSearchPattern)來(lái)直接獲得服務(wù)記錄信息; 服務(wù)發(fā)現(xiàn)協(xié)議的服務(wù)器端是根據(jù)服務(wù)類(lèi)型來(lái)找與用戶(hù)所要求的服務(wù)相匹配的服務(wù)記錄的,它是唯一的查找服務(wù)的手段。瀏覽服務(wù)方式:不知道服務(wù)的UUID,瀏覽各個(gè)服務(wù)記錄; 為了支持該方式,服務(wù)記錄必須含有BrowseGroupList屬性,該屬性說(shuō)明了該服務(wù)屬于何種瀏覽組。
為了實(shí)現(xiàn)上面的兩種服務(wù)方式,協(xié)議定義了協(xié)議數(shù)據(jù)單元PDU(ProtocolDataUnit),服務(wù)器端和客戶(hù)端間交換的就是這些協(xié)議數(shù)據(jù)單元。建立邏輯鏈路PDU交互斷開(kāi)邏輯鏈路
服務(wù)發(fā)現(xiàn)協(xié)議完成服務(wù)發(fā)現(xiàn)流程的前提是已經(jīng)建立好邏輯鏈路。因此工作流程首先是鍵鏈過(guò)程,PDU交互,最后斷開(kāi)鏈接。
由于建立和斷開(kāi)邏輯鏈路不是本實(shí)驗(yàn)的內(nèi)容,因此我們主要關(guān)注PDU的交互在完成服務(wù)發(fā)現(xiàn)中的作用。對(duì)于不同的PDU交互實(shí)際上就是對(duì)應(yīng)于不同的服務(wù)發(fā)現(xiàn)查詢(xún)模式。在實(shí)驗(yàn)中,我們將SDP對(duì)等協(xié)議之間傳遞的各種PDU顯示給同學(xué)看。在不同的服務(wù)發(fā)現(xiàn)模式下,了解如何用不同的PDU來(lái)完成服務(wù)發(fā)現(xiàn)的功能。
PDUID用于標(biāo)示該P(yáng)DU的類(lèi)型,它的值決定了該P(yáng)DU后面的參數(shù);
TransactionID用于標(biāo)示一個(gè)請(qǐng)求類(lèi)型的PDU。服務(wù)器端發(fā)出響應(yīng)PDU時(shí),其必須與請(qǐng)求類(lèi)型PDU中的相同。所有發(fā)出的請(qǐng)求類(lèi)型的PDU的應(yīng)互不相同。
ParameterLength用于標(biāo)示后面參數(shù)的總長(zhǎng)度(byte)。
PDU的種類(lèi)目前有7種:值類(lèi)型0x00保留0x01SDP_ErrorResponse0x02SDP_ServiceSearchRequest0x03SDP_ServiceSearchResponse0x04SDP_ServiceAttributeRequest0x05SDP_ServiceAttributeResponse0x06SDP_ServiceSearchAttributeRequest0x07SDP_ServiceSearchAttributeResponse0x07-0xFF保留
3種查找服務(wù)方式:ServiceSearchTransaction方式: 這種方式是客戶(hù)端指定服務(wù)類(lèi)型,服務(wù)器端找出滿(mǎn)足條件的服務(wù)記錄后將它們的服務(wù)記錄句柄值返回給客戶(hù)端。PDUTypePDUIDParametersSDP_ServiceSearchRequest
0x02ServiceSearchPattern,MaximumServiceRecordCount,ContinuationState
ServiceAttributeTransaction方式:這種方式是客戶(hù)端指定一個(gè)服務(wù)記錄句柄值,并指定需要服務(wù)器端返回該服務(wù)記錄哪些服務(wù)屬性,服務(wù)器端把這些服務(wù)屬性(如果存在的話(huà))返回給客戶(hù)端。該方式是工作于ServiceSearchTransaction基礎(chǔ)上的,因?yàn)閷?duì)同一種服務(wù),在不同的藍(lán)牙設(shè)備上,服務(wù)記錄句柄值可以不同。PDUTypePDUIDParametersSDP_ServiceAttributeRequest
0x04ServiceRecordHandle,MaximumAttributeByteCount,AttributeIDList,ContinuationState
ServiceSearchAttributeTransaction方式:這種方式是客戶(hù)端指定服務(wù)類(lèi)型,并指定需要服務(wù)器端返回的服務(wù)屬性,服務(wù)器端找出滿(mǎn)足條件的服務(wù)記錄后,把它們的服務(wù)屬性返回給客戶(hù)端。
PDUTypePDUIDParametersSDP_ServiceSearchAttributeRequest
0x06
ServiceSearchPattern,MaximumAttributeByteCount,AttributeIDList,ContinuationState回原理目錄實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)流程數(shù)據(jù)分析1.
實(shí)驗(yàn)流程在服務(wù)器端注冊(cè)本機(jī)的服務(wù)記錄客戶(hù)端查詢(xún)服務(wù)器已注冊(cè)的服務(wù)記錄
查詢(xún)同組設(shè)備建立物理鏈路的鏈接 用3種方式進(jìn)行服務(wù)發(fā)現(xiàn)分析交互PDU分析查詢(xún)返回的數(shù)據(jù)斷開(kāi)物理鏈路回內(nèi)容目錄服務(wù)器端注冊(cè)界面客戶(hù)機(jī)端服務(wù)發(fā)現(xiàn)界面2.
數(shù)據(jù)分析觀察客戶(hù)機(jī)發(fā)起請(qǐng)求,服務(wù)器端給出響應(yīng)的過(guò)程。將服務(wù)器端注冊(cè)的服務(wù)記錄表示成數(shù)據(jù)元的格式,將查詢(xún)結(jié)果的數(shù)據(jù)元的形式改寫(xiě)為服務(wù)記錄的方式,從中了解對(duì)多種類(lèi)型且可變長(zhǎng)的數(shù)據(jù)的一種簡(jiǎn)潔的表示方法。觀察同層協(xié)議之間真正傳遞的PDU,了解和比較各種查詢(xún)方式的優(yōu)劣。根據(jù)自己填寫(xiě)的服務(wù)記錄屬性值,寫(xiě)出數(shù)據(jù)元的二進(jìn)制碼,和實(shí)驗(yàn)程序給出的是否相同。根據(jù)不同的查找服務(wù)方式,判斷給出的PDU是否正確,是否符合理解?;貎?nèi)容目錄實(shí)驗(yàn)知識(shí)點(diǎn)客戶(hù)機(jī)-服務(wù)器模式藍(lán)牙服務(wù)發(fā)現(xiàn)協(xié)議ServiceDiscoveryProtocol數(shù)據(jù)元DataElement服務(wù)記錄ServiceRecord服務(wù)屬性ServiceAttribute(3種服務(wù)屬性)服務(wù)記錄句柄ServiceRecordHandle通用專(zhuān)有識(shí)別符UniversallyUniqueIdentifier協(xié)議數(shù)據(jù)單元ProtocolDataUnit2種獲取服務(wù)信息的方式:
查找服務(wù)方式SearchingforServices
瀏覽服務(wù)方式Browsingf
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院醫(yī)療服務(wù)價(jià)格與收費(fèi)管理制度制度
- 企業(yè)爭(zhēng)創(chuàng)四優(yōu)活動(dòng)策劃方案
- 財(cái)務(wù)部門(mén)預(yù)算編制與執(zhí)行控制制度
- 厭氧顆粒污泥廢水處理技術(shù)改進(jìn)方案
- 青春期孩子心理叛逆輔導(dǎo)方案
- 八年級(jí)心理健康教育教案方案
- 大型戶(hù)外音樂(lè)節(jié)策劃與執(zhí)行完整方案
- 財(cái)務(wù)審計(jì)報(bào)告范本及風(fēng)險(xiǎn)分析模板
- 0-6歲腦癱兒童康復(fù)家庭指導(dǎo)方案
- 基礎(chǔ)建設(shè)施工組織策劃方案模板
- 人工智能推動(dòng)金融數(shù)據(jù)治理轉(zhuǎn)型升級(jí)研究報(bào)告2026
- 2026長(zhǎng)治日?qǐng)?bào)社工作人員招聘勞務(wù)派遣人員5人備考題庫(kù)含答案
- 期末教師大會(huì)上校長(zhǎng)精彩講話(huà):師者當(dāng)備三盆水(洗頭洗手洗腳)
- 2026年濰坊職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題附答案詳解
- 工兵基礎(chǔ)知識(shí)課件
- 2026年貴州省交通綜合運(yùn)輸事務(wù)中心和貴州省鐵路民航事務(wù)中心公開(kāi)選調(diào)備考題庫(kù)及答案詳解參考
- 2025四川雅安市名山區(qū)茗投產(chǎn)業(yè)集團(tuán)有限公司招聘合同制員工10人參考題庫(kù)附答案
- 人工智能應(yīng)用與實(shí)踐 課件 -第5章-智能體開(kāi)發(fā)與應(yīng)用
- 2025浙江紹興越城黃酒小鎮(zhèn)旅游開(kāi)發(fā)有限公司編外人員第二次招聘總筆試歷年典型考點(diǎn)題庫(kù)附帶答案詳解2套試卷
- 聘用2025年3D建模合同協(xié)議
- 2025-2026學(xué)年西南大學(xué)版小學(xué)數(shù)學(xué)六年級(jí)(上冊(cè))期末測(cè)試卷附答案(3套)
評(píng)論
0/150
提交評(píng)論