1 / 40

報告者 : 陳鵬宇 指導 教授 : 廖峻鋒老師

智慧家庭中資源導向隨插即用服務管理協定的設計與 實現 Resource-Oriented Plug-and-Play Service Management Protocol for Smart Home Environment. 報告者 : 陳鵬宇 指導 教授 : 廖峻鋒老師. 大綱. 前言 相關研究 系統設計 預計實驗 結論與未來研究. 前言. 智慧家庭環境 佈 滿不同廠牌的電子產品, ex: 感測器、手機、冷氣等等 服務 (service) 是由環境中各個位置的軟硬體元件,藉由互相合作來提供各式服務

yosefu
Télécharger la présentation

報告者 : 陳鵬宇 指導 教授 : 廖峻鋒老師

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 智慧家庭中資源導向隨插即用服務管理協定的設計與實現Resource-Oriented Plug-and-Play Service Management Protocol for Smart Home Environment 報告者:陳鵬宇 指導教授:廖峻鋒老師

  2. 大綱 • 前言 • 相關研究 • 系統設計 • 預計實驗 • 結論與未來研究

  3. 前言 • 智慧家庭環境 • 佈滿不同廠牌的電子產品,ex:感測器、手機、冷氣等等 • 服務(service)是由環境中各個位置的軟硬體元件,藉由互相合作來提供各式服務 • ex:感測器負責感測溫度,藉由軟體運算來控制冷氣達到溫控服務

  4. 前言 • 服務管理 • 智慧家庭環境使用服務管理機制 • 管理協調服務中的各式軟硬體元件 • 處理各式設備、軟體與裝置的偵測、發現、資料傳送及組合等問題 • UPnP (Universal Plug and Play)就是一種管理機制

  5. 前言 • UPnP • 由UPnPForum所推廣的一套網路協定 • 目標是使家庭網路的各種設備互相連線,並簡化相關網路的實作 • 協定主要有三種: • 發現 Discovery - SSDP • 控制 Control - SOAP • 事件Eventing-GENA

  6. 前言 • 研究問題及目標 • 問題與困難 • UPnP控制步驟SOAP效能較差 • UPnP技術門檻需求高 • 目標 • 設計一個新的服務管理協定 • Resource-Oriented Service Administration (ROSA) • 優點 • 使用Representational State Transfer(REST)軟體架構風格 • 提供簡單的操作方法 • 通過大家熟悉的HTTP方法來操作服務,降低使用的技術門檻

  7. 前言 • 使用REST軟體架構風格優點 • REST相較於SOAP明顯的更加簡潔與輕量 • programmableweb網站的統計資料中,REST應用日漸增加 • 2014年REST已到70%,而SOAP只有21% • REST嚴格遵守HTTP,能夠提供統一介面讓使用者操作 • REST的無狀態溝通性質,適合應用在智慧家庭環境 • 將server繁重的附載轉移到client • client擁有相對於server較強的運算設備

  8. 相關研究-URI • Uniform Resource Identifier用來標識網際網路資源 • URI可使client對資源透過特定的協議進行操作 • 在REST與HTTP中,資源皆由URI所表示 • ROSA URI設計 • 使用AURI代替一組資源(Caporuscioet al.) • 通過AURI發送multicast • 根據IETF 5785 • 使用 /.well-known/註冊已知資源 • ex : GET /.well-known/discover

  9. 相關研究- HTTP • HTTP是目前網際網路上應用最廣泛的一種網路傳輸協議 • 在REST中經常使用到HTTP的標準方法有四種 • GET • 向指定資源發出讀取請求,使用GET方法只在讀取資源狀態 • POST • 向指定資源送出資料,請求伺服器進行處理,用於新增資源 • PUT • 向指定資源位置上傳其最新內容,用於更新資源狀態 • DELETE • 請求伺服器刪除指定資源 • HTTPU與HTTPMU • 在UDP基礎上實現HTTP • 用來實現廣播(multicast)的機制

  10. 相關研究-廣播 • 廣播 • 把訊息同時傳遞給一組目的地址 • 單點傳送將相同資料送到n台主機,需傳送n次才完成 • 廣播只需傳送一次即可 • 可以節省網路上的資訊傳送量 • UPnP使用239.255.255.250作為廣播位址

  11. 相關研究 • Representational State Transfer(REST) • Fielding在2000年提出的軟體架構風格 • 遵守幾項關鍵原則 • 所有資源都要有一個唯一id • REST中的一切都被認為是一種資源,每個資源都由URI表示 • 將所有資源鏈接在一起 • 資源在網路互相連結,可使讓資源互相提供服務 • 使用標準方法 • REST嚴格遵守HTTP,並使用HTTP中的標準方法 • 無狀態溝通 • request必須是完整且獨立的,發送時要包含所有需要用到的數據 • Ex:當在瀏覽網頁時現在頁面是第5頁,若要求翻回上一頁的話,此要求要附帶第5頁這個狀態,而不是只要求上一頁。

  12. 相關研究 - RMM • Richardson Maturity Model • 判斷符合rest設計風格的模型 • 分為四個等級

  13. 相關研究 • Level 0 sling plain old XML POST /appointmentService HTTP/1.1 <openSlotRequest date = "2010-01-04" doctor = "mjones"/> HTTP/1.1 200 OK <openSlotList> <slot start = "1400" end = "1450"> <doctor id = "mjones"/> </slot> <slot start = "1600" end = "1650"> <doctor id = "mjones"/> </slot> </openSlotList>

  14. 相關研究 • Level 1Resources POST /doctors/mjones HTTP/1.1 <openSlotRequest date = "2010-01-04"/> HTTP/1.1 200 OK <openSlotList> <slot id = "1234" doctor = "mjones" start = "1400" end = "1450"/> <slot id = "5678" doctor = "mjones" start = "1600" end = "1650"/> </openSlotList>

  15. 相關研究 • Level 2HTTP method GET /doctors/mjones/slots?date=20100104&status=open HTTP/1.1 HTTP/1.1 200 OK <openSlotList> <slot id = "1234" doctor = "mjones" start = "1400" end = "1450"/> <slot id = "5678" doctor = "mjones" start = "1600" end = "1650"/> </openSlotList>

  16. 相關研究 • Level 3Hypermedia Controls GET /doctors/mjones/slots?date=20100104&status=open HTTP/1.1 HTTP/1.1 200 OK <openSlotList> <slot id = "1234" doctor = "mjones" start = "1400" end = "1450"> <link rel = "/linkrels/slot/book" uri = "/slots/1234"/> </slot> … </openSlotList>

  17. 系統實作-設備架構 • UPnP的網路服務是由Device、Service、Action、Argument、State Variable 及Control Point 組成 • ROSA服務管理機制將上述元素皆視為resource • ROSA URI http://127.0.0.1:8080 /light /lightService /lightLevel

  18. 系統實作-UPnP發現 • 在發現步驟中由SSDP操作 • SSDP是由HTTPU與HTTPMU為基礎來實作 • 發現步驟會有兩種情況 • M-SEARCH • 控制點(ControlPoint)透過SSDP發現有興趣的服務 • Presence Announcement • 設備(Device)加入網路,透過SSDP宣告自己的存在

  19. 系統實作-UPnP發現 • 控制點想要搜尋有興趣的服務或設備 • 已搜索設備種類以TV為例 M-SEARCH * HTTP/1.1 Host: 239.255.255.250:1900 Man: "ssdp:discover" MX: 3 ST: urn:schemas-upnp-org:device:TV:1 HTTP/1.1 200 OK Location: http://140.134.26.63:4004/description.xml ... Cache-Control: max-age=1800 (or Expires: 1800) ST: urn:schemas-upnp-org:device:InternetGatewayDevice:1

  20. 系統實作-UPnP發現 • 當設備加入網路時會告知當地的控制點 NOTIFY * HTTP/1.1 ... Location:http://140.134.26.63:4004/description.xml NTS: ssdp:alive ST:urn:schemas-upnp-org:device:InternetGatewayDevice:1 … NOTIFY * HTTP/1.1 … NTS: ssdp:bye-bye ST:urn:schemas-upnp-org:device:InternetGatewayDevice:1 …

  21. 系統實作-ROSA發現 • M是一種AURI GET /.well-known/discover HTTP/1.1 Host: 239.255.255.250:1900 MX: 3 RT: http://selab.iecs.fcu.edu.tw/rt/WebCam/1 PORT: 3344 HTTP/1.1 204 No Content URL: http://webcam1.selab.iecs.fcu.edu.tw ... RT: http://selab.iecs.fcu.edu.tw/rt/WebCam/1

  22. 系統實作-ROSA發現 • 當設備加入網路時會告知當地的控制點 PUT /.well-known/presence HTTP/1.1 ... URI:http://127.0.0.1:8080/device/WebCam RT: http://selab.iecs.fcu.edu.tw/rt/WebCam/1 DELETE /.well-known/presence HTTP/1.1 URL:http://127.0.0.1:8080/device/WebCam RT:http://selab.iecs.fcu.edu.tw/rt/WebCam/1

  23. 系統實作-UPnP描述 • 控制點發現設備後,必須獲取描述檔來得知設備的能力 • 設備描述檔能提供的訊息

  24. 系統實作-UPnP描述 • 設備描述檔能提供的訊息

  25. 系統實作-ROSA描述 • 使用Web Application Description Language(WADL)描述服務 • 檔案由發現訊息中URI標頭位址取得 • 以資源http://localhost:8080/device/light/lightLevel為例 HTTP/1.1 204 No Content URL: http://webcam1.selab.iecs.fcu.edu.tw ... RT: http://selab.iecs.fcu.edu.tw/rt/WebCam/1

  26. 系統實作-UPnP控制 • 在控制階段,是使用SOAP進行操作 • 控制點可以透過SOAP • 使用服務或設備 • 查詢服務或設備目前狀態

  27. 系統實作-UPnP控制 <serviceType>urn:schemas-upnp-org:service:DimmingService:1</serviceType> <serviceId>urn:upnp-org:serviceId:DimmingService:1</serviceId> <SCPDURL>/service/level_description.xml</SCPDURL> <controlURL>/service/level/control</controlURL> <eventSubURL>/service/level/eventSub</eventSubURL> • 若想控制設備,必須傳送SOAP訊息 • 以控制燈光亮度為例

  28. 系統實作-UPnP控制 • 若成功,設備會回傳200ok

  29. 系統實作-ROSA控制 • 使用REST架構風格,採用HTTP來傳送 • URI是透過前面ROSA URI命名規則來實作 • Active Resource可以透過HTTP • 使用服務或設備 • 查詢服務或設備目前狀態

  30. 系統實作-ROSA控制 • 以取得燈光狀態為例 • Active Resource會針對該資源使用GET方法取得狀態 • 若該資源存在則會回應成功接受要求的封包 GET http://127.0.0.1:8080/device/light/LightStatus HTTP/1.1 ….. Response-Code: 200 …. Payload: {"LightStatus":"0"}

  31. 系統實作-ROSA控制 • 以控制燈光狀態為例 • Active Resource會針對該資源使用PUT方法更新狀態 • 若該資源存在並且提供服務則會回應成功接受要求的封包 PUT http://140.134.26.63:8080/device/light/LightLevel HTTP/1.1 … Payload: 81 Response-Code: 200 … Payload: {" LightLevel ":"81"}

  32. 系統實作-UPnP事件 • 控制點能對有興趣的服務進行訂閱 • 當動作列表與狀態變數列表改變時,服務會更新並發送事件訊息,訂閱該服務的控制點會接收到這些事件訊息 • 事件訊息通過General Event Notification Architecture (GENA)來進行格式化,再經由HTTP進行傳送

  33. 系統實作-UPnP事件 • 以下為事件訊息範例 • 以通知lightLevel為例 NOTIFY http://127.0.0.1:8080/device/light/3 HTTP/1.1 ... NT: upnp:event SID: F7B18FFD-975E-47FA-B3A4-1768EED8A549 <e:propertysetxmlns:e="urn:schemas-upnp-org:event-1-0"> <e:property> <lightLevel>30</lightLevel> </e:property> </e:propertyset>

  34. 系統實作-UPnP事件 • 訂閱事件時,控制點會向設備發送一個訂閱訊息 • 每個訂閱訊息都包含訂閱期限 • 若成功訂閱,會回傳確認封包 SUBSCRIBE http://127.0.0.1:8080/device/light/5/lightLevel HTTP/1.1 ... Callback: http://127.0.0.1:8080/device/light/2 NT: upnp:event Timeout: max-age=1800 HTTP/1.1 200 OK … SID: F7B18FFD-975E-47FA-B3A4-1768EED8A549 Timeout: max-age=1800

  35. 系統實作-UPnP事件 • 若要保持訂閱,期限內控制點必須在到期前進行續訂動作 • 若不想收到訂閱訊息,則取消訂閱 SUBSCRIBE http://127.0.0.1:8080/device/light/5/lightLevel HTTP/1.1 ... SID: F7B18FFD-975E-47FA-B3A4-1768EED8A549 Timeout: max-age=1800 UNSUBSCRIBE http://127.0.0.1:8080/device/light/5/lightLevel HTTP/1.1 … SID: F7B18FFD-975E-47FA-B3A4-1768EED8A549

  36. 系統實作-ROSA事件 • ROSA利用HTTP來進行訂閱、續訂、通知與取消訂閱 • 訂閱訊息屬於新增資訊,使用POST方法來實作 • 若訂閱成功,resource則會回傳訊息來確定訂閱 • 續訂訊息屬於更新資訊,使用PUT方法實作 POST http:// 140.134.26.63:8080 /.well-known/subscribe/stateVariableName HTTP/1.1 Callback: http://140.134.26.63:8080/.well-known/callback Timeout: max-age=1800 HTTP/1.1 204 No Content SID: uuid:a0d599de-275b-4171-8ae9-c8a0da7aad13 PUT http://140.134.26.63:8080/.well-known/callback HTTP/1.1 SID: uuid:a0d599de-275b-4171-8ae9-c8a0da7aad13 Timeout: max-age=1800

  37. 系統實作-ROSA事件 • 取消訂閱屬於刪除資訊,使用DELETE來實作 • resource狀態改變,會對所有訂閱的resource進行通知 • 狀態改變屬於更新資訊,所以本研究使用PUT來實作 DELETE http://140.134.26.63:8080/.well-known/subscribe HTTP/1.1 SID: uuid:a0d599de-275b-4171-8ae9-c8a0da7aad13 PUT http://140.134.26.63:8080/.well-known/callback HTTP/1.1 … SID: uuid:a0d599de-275b-4171-8ae9-c8a0da7aad13 {“lightLevel”:”30”}

  38. 預計實驗 • 比對兩系統的搜索時間差異 • 了解resource與resource type對發現的影響 • 隨機產生n種resource type,最少三種 • 接著產生m個resource • 產生一段URI例如:http://local:port/rt1/resource01 • 每種resource type有m/n個resource • 啟動m個resource • 每個resource每5秒發布一次存在通知訊息 • 確認收到m個resource通知訊息後 • Control Point/Active Resource開始發出discovery訊息搜尋 • 從n種rt中隨機選3種 • 發出discovery後等待response,先到先選 • 全部完成後停下,記錄全程時間 • 固定n=3,m由10漸漸提升至30 • 固定m=30,n由1漸漸提升至10

  39. 預計實驗 • 比較兩系統在控制時所使用的封包流量 • 了解resource與resource type對控制的影響 • 隨機產生n種resource type,最少三種 • 接著產生m個resource • 產生一段URI例如:http://local:port/rt1/resource01 • 每種resource type有m/n個resource • 啟動m個resource • Control Point/Active Resource隨機選取其中三個resource • GET/PUT各個變數一次,以此來計算流量 • 固定n=3,m由10漸漸提升至30 • 固定m=30,n由1漸漸提升至10

  40. 結論與未來研究 • 提出ROSA服務管理機制 • 提出使用REST改善UPnP的好處 • 以REST取代SOAP改善效能 • HTTP操作介面 • 無狀態溝通更適合智慧家庭環境 • 預期達到RMMLevel3 Hypermedia Controls • 完成ROSA服務管理協定

More Related