第三章 研究方法
3.2 系統架構
3.2.2 系統流程
本文規劃之系統流程,包含 Gateway 註冊、Node 註冊、使用者註冊、on Demand
22
使用者請求與 Periodical 使用請求,以下將分別詳細說明:
Gateway 註冊:如 Figure 10 所示,首先,若要加入本系統所應用之範圍,Gateway 必須要先向 Server 進行註冊,若收到不明的 Gateway 請求註冊(例如:此 Gateway 的
IP 並非本系統的認可範圍內),為了系統安全性會將此封包丟棄,不處理任何事情。
若此 Gateway 為本系統所認可之範圍內(例如:為本系統認可的 IP 位址),Server 將 會判斷此 Gateway 是否已註冊過,若確認 Data Center 內無此 Gateway 的資料,則 由管理者進行審核後(確保此 Gateway 為本系統所架設),通知 Gateway 已加入本系 統,Server 亦會將 Gateway 資訊,送至位於 Azure Cloud 的 Data Center 內創建新資 料表(詳細於 3.3.3 節,Table.5 Gateway 資料表)並儲存其相關資料,其儲存 Gateway 相關資訊包含:IP 位址、系統給予的 Gateway 編號、所提供之應用服務編號、所 管轄範圍內的 Node 數目等。
Figure 10: Gateway 註冊流程
23
Node 註冊:Node 註冊流程,如 Figure 11 所示。Gateway 會定期使用 BlueZ 所提供 的命令搜尋附近是否存在 BLE Node,如 Figure 12 所示,使用命令為:hcitool lescan,
hcitool 為 BlueZ[42]所提供之藍牙相關功能,lescan 為命令 Gateway 上的 Bluetooth Dongle 搜尋 BLE 裝置並在螢幕上顯示搜尋到的結果,顯示附近所在的 BLE 設備名 稱以及 Bluetooth Device Address,Node 收到後,可選擇是否加入至 Gateway 所管 轄範圍內,並由 Gateway 搜尋到 BLE 裝置的 Bluetooth Device Address,依此資訊 建立與 Node 之間連線後,Gateway 會發送 Advertisement(包含自身的 Prefix)至 Node,
而 Node 可利用 auto-configure 能力組成 IPv6 address,執行成功後,可向 Server 進 行 Node 註冊,由 Server 判斷此 Node 先前是否於此 Gateway 範圍內已註冊成功(依 照 Gateway 給予的 Prefix 進行判斷),若無此 Node 資料,則傳遞 Node 資料至 Data Center,建立 Node 資料表(詳細於 3.3.3 節,Table.6 Node 感測服務資料表)並儲存 NodeProfile 即完成註冊。其儲存 Node 相關資訊,包含:系統配給的服務編號、IP 位址、提供之服務屬性、服務內容、CoAP URI。
24
Figure 11: Node 註冊流程
Figure 12: 搜尋 BLE Node
使用者註冊:如 Figure 13 所示,使用者要使用本系統提供之 Web Portal,第一次使 用必須先要進行註冊,才可提出後續的應用請求。首先,使用者於 Web Portal 登入 畫面下方(如 Figure 2 所示),點選註冊鈕,填妥相關使用者資料,即可向 Server 進 行註冊手續,由 Server 判別此使用者是否已註冊過,若先前無註冊資料,待系統管 理者審核後,Server 將使用者資料(詳細於 3.3.3 節,Table.3 使用者資料表)存放至 Data Center 內,並由 Server 通知使用者已完成註冊。其使用者相關資訊,包含:
系統給予的使用者編號、使用者帳號、密碼、聯絡電話、姓名、信箱、服務項目編
25
號以及訂閱的服務項目內容。
Figure 13: 使用者註冊流程
使用者請求:如 Figure 14 所示,使用者送出服務請求,由 Server 判斷是否為 on
Demand 或 Periodical 的應用服務類型(目前為使用者選擇目前訂閱服務後,選擇 on Demand 或 Periodical,給予不同服務。或可由使用者訂閱服務指定此服務的類型)。
例如為 CoAP PUT/GET 等請求命令為 on Demand 類型,傳送請求至提供此服務的 Node 位置,依照 Data Center 所存放的 Node IP 位址加上服務資源 Path,組成 CoAP URI,並由 Web Portal 進行 CoAP Server Resource Discovery(Service Discovery 於 3.2.5 節說明。CoAP Client 實驗結果於 4.4 節說明),Node 收到後會執行對應的動作,如 果為 GET 命令,則將感測器傳遞出的訊息放置 Payload 中,並透過 Gateway 送給 使用者,傳遞至 Data Center 內儲存。若為 PUT 命令,則開啟對應的設備開關。如 Figure 15 所示,系統若判斷為 Periodical 的請求,會從 Data Center 中抓取先前定期 儲存的感測資料,且以圖表顯示給使用者(於 3.4 節說明)。此外,於 Data Center 儲
26
存之 Node 相關資訊(詳細於 3.3.3 節,Table.6 Node 感測服務資料表),包含:感測 到數值的時間、感測到的資料等。
Figure 14: on Demand 使用者請求流程
Figure 15: Periodical 使用者請求流程