• 沒有找到結果。

第三章 研究方法

3.3 系統設計

本章節主要介紹 Server 與 Database 相關設計,其整體規劃主要可包含:系統需求、

Web Portal 設計、Local Database 設計以及 Cloud Database 設計,以下將分別說明。

3.3.1 系統需求

本系統設計之 Server,負責控管與 Server 進行註冊之 Gateway,且與 Database 建立 連結,並判斷目前情況做適當處置,如 Node 註冊,則判斷是否已註冊過,若無則相

Node 提供之相關資料存放至 Cloud Database。並提供系統管理者相關管理介面,可查 詢目前存放於 Database 中的相關表格與訊息。

3.3.2 Web Portal 設計

本系統採用 jQuery Mobile Web framwork 與 ASP.NET 開發 Web Portal。由於目前行 動裝置普及化,但是對於開發給行動裝置所設計之網頁,必須依照各種廠牌螢幕大小 進行畫面設計,為了讓系統提供的 Web Portal 能夠依照使用者目前的裝置大小提供更符

35

合使用習慣的畫面,以及行動裝置所處之平台相異(如:Android、iOS 與 Windows Phone 等),開發者可能需要重新撰寫應用,但 jQuery Mobile 提供很好的解決方式。jQuery

Mobile[48]為一套 JavaScript 函式庫,以 HTML5 為基礎,能夠設計出響應式 Web,且 相容行動裝置以及桌上型電腦的大小,自動調整 Web 配置。開發以 jQuery Mobile 設計 之 Web,可利用模擬器來模擬 Web 開啟於行動裝置之畫面,目前支援之模擬器,包含

Electric Mobile Studio、Windows Phone 模擬器、Opera Mobile Emulator 與 MobiOne Studio 等,本文使用 Opera Mobile Emulator[49]來測試 Web Portal。Web Portal 採用 Visual Studio

2010 撰寫 ASP.NET 網站,為了使用 jQuery Mobile 的 farmwork 須令 ASP.NET 支援,可 使用 Visual Studio 內建之 NuGet 套件管理員,直接下載 jQuery 與 jQuery Mobile 套件即 可使用。

3.2.2.1 CoAP.NET

Constrained Application Protocol(CoAP)[31]為 RESTful 的網頁傳輸協定,並且專為 資源受限的網路或節點所設計,為輕量級協定,因此,適合運用於佈署大量微型節點 的 IoT 環境中。由於目前 CoAP 已成為 RFC7252 標準[31],實現 CoAP 協定的技術逐漸 增加且受到重視,現在已支援 CoAP 協定的方式,分為五種類型[50],包含 Constrained devices、Server-side、Browser-based、Smartphones 與 Commercial implementations。

Server-side 包含以 Java 為基礎之 nCoAP、Leshan。C#為基礎則有 CoAP.NET、CoAP Sharp。

以 Python 為基礎則有 txThing、aiocoap 等。本系統的 Server 使用 C#撰寫,採用

36

CoAP.NET[51],CoAP.NET 能夠實現在.NET 應用中以 CoAP 為基礎之服務。本系統為 驗證正確性,採用以 Firefox 瀏覽器的擴充功能 Copper[52],Copper 在網址列輸入 CoAP URI 即可請求 CoAP Server 資源(實際測試於 4.4 節說明)。

3.3.3 Local Database 設計

本 系 統 初 步 規 劃 時 以 架 設 於 本 地 的 資 料 庫 為 測 試 之 用 , 使 用 MySQL Workbench6.2[53],提供 SQL 開發、伺服器配置與管理、使用者管理、備份以及建立 Enhanced entity-relationship(EER)模型等功能,初步設計資料庫時,可利用 EER 模型的 圖形介面,快速開發資料表、欄位、主鍵、外鍵、關聯性資料表連結等,如 Figure 21 所示,為本系統所規劃之 EER 模型。此外,建立完模型後,可利用 MySQL Workbench 所提供之 Synchronize Model 功能,將此規畫好的模型同步至資料庫中即可使用。

Figure 21: EER 模型

37

userService 使用者訂閱的應用服務 VARCHAR(45) gwdata_Service_num 服務編號(FK) INT

senseddata_nodeServiceNum Node 服務編號(FK) INT userdata_userNum 使用者編號(FK) INT

Table.5 Gateway 資料表

欄位 說明 資料型態

Service_num 應用服務編號(PK) INT

gw_num Gateway 編號 VARCHAR(45)

gw_IP Gateway 的 IP 位址 VARCHAR(45)

node 所管的 Node 數量 INT

node_IP Node 的 IP 位址(FK) VARCHAR(45) nodeServiceNum Node 提供的服務編號(FK) INT

nodeProtocol Node 所使用的通訊技術 VARCHAR(255)

Table.6 Node 感測服務資料表

欄位 說明 資料型態

nodeServiceNum Node 提供的服務編號(PK) INT

nodeIP Node 的 IP 位址 VARCHAR(45)

nodeService Node 提供的服務 VARCHAR(45)

38

nodeSensedData Node 感測到的資料 VARCHAR(45) coapTag Node 的 CoAP URI 資訊 VARCHAR(225)

sensedTime 感測到資料的時間點 VARCHAR(45)

3.3.4 Cloud Database 設計

本系統為提供可靠、穩定之服務,且減少維護管理系統的成本,以 Microsoft Azure[30]

作為本系統之 Cloud Database,Microsoft Azure 提供期間試用服務,租用伺服器存放 SQL 資料庫。目前市面上提供雲端服務,包含:Google App Engine、amazon web service、

cloudControl 與 Microsoft Azure 等,由於本系統使用 C#撰寫,因此選用一定支援 C#的 Microsoft Azure。Microsoft Azure 提供許多功能,包含:部屬 Web 應用程式、創建虛擬 機器、SQL Database、機器學習等。SQL Database 提供大量擴充至數千個資料庫,並可 設定自動還原或資料備份,系統自我管理無須維護等。登入 Microsoft Azure Web Portal 後,選擇租用伺服器之位置,即可在此伺服器中創建 SQL Database,如 Figure 22 所示,

目前已成功創建 SQL Database 畫面且可與本系統連結。

Figure 22: Microsoft Azure Web Portal

3.3.4.1 遷移本地資料庫

於 3.3.3 節提到,原先以本地資料庫 MySQL 為測試之用,為遷移至 Microsoft Azure 上,使用 SQL Server Migration Assistant(SSMA)[54]工具,此工具能夠將既有資料庫轉

39

換至另一個資料庫(如 Figure 23 所示),可轉換的項目,包含資料表結構、SQL 陳述式 與資料轉移等。支援的資料庫有 Oracle、Sybass、Access、MySQL,SSMA 可提供轉移 至 SQL Server 與 Microsoft Azure。

Figure 23: SSMA 工具轉換資料庫成功之畫面

3.3.4.2 連接 Cloud Database

Microsoft Azure 為開發者快速使用雲端資料庫,提供連接字串,其支援語言包含 ADO.NET、PHP、Python 與 JDBC。於設計之 Web Portal 中修改資料庫連接字串,系統 管理者登入系統後,列出於的 Microsoft Azure 所有資料,並可直接進行刪除新增等管 理動作,如 Figure 24 所示,為本系統的管理者畫面。

40

Figure 24: 管理者畫面

相關文件