Luận văn nghiên cứu về phương pháp xây dựng một hệ thống Internet of Things thực tế ứng dụng nền tảng điện toán đám mây IoT. Luận văn đề xuất mô hình kiến trúc dữ liệu của hệ thống IoT sử dụng nền tảng điện toán đám mây bao gồm thiết kế về khung phân loại gói tin chung; xác định và phân loại gói tin trong hệ thống nhà thông minh; thiết kế một số kiến trúc luồng dữ liệu chính của hệ thống và cuối cùng triển khai các thiết kế trên hai nền tảng điện toán đám mây AWS IoT và Google Cloud IoT để thực hiện đánh giá, so sánh và rút ra kết luận.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
- -
LÊ CÔNG VĨNH KHẢI
SO SÁNH VÀ ĐÁNH GIÁ CÁC NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY IOT TRONG KỊCH BẢN NHÀ THÔNG MINH
LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ
DUT.LRCC
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
LÊ CÔNG VĨNH KHẢI
SO SÁNH VÀ ĐÁNH GIÁ CÁC NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY IOT TRONG KỊCH BẢN NHÀ THÔNG MINH
Chuyên ngành : Kỹ thuật điện tử
Trang 3DUT.LRCC
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
MỤC LỤC …… ii
DANH MỤC CÁC HÌNH v
DANH MỤC CÁC BẢNG……… vii
MỞ ĐẦU……… 1
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 5
1.1 Tổng quan về Internet of Things 5
1.1.1 Định nghĩa Internet of Things 5
1.1.2 Kiến trúc Internet of Things 5
1.2 Tổng quan về điện toán đám mây 6
1.2.1 Định nghĩa điện toán đám mây 6
1.2.2 Phân loại điện toán đám mây 7
1.2.3 Các mô hình triển khai điện toán đám mây 7
1.2.4 Lợi ích của điện toán đám mây 8
1.3 Phân tích và lựa chọn nền tảng điện toán đám mây IoT cho đề tài 9
1.3.1 Các yếu tố của nền tảng điện toán đám mây IoT 9
1.3.2 Lựa chọn nền tảng điện toán đám mây IoT 10
1.4 Phương pháp thực hiện quy trình đánh giá và đề xuất tiêu chí đánh giá 11
1.4.1 Phương pháp thực hiện quy trình đánh giá 11
1.4.2 Đề xuất tiêu chí đánh giá 12
1.5 Kết luận chương 12
CHƯƠNG 2 THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH VÀ ĐỀ XUẤT MÔ HÌNH KIẾN TRÚC DỮ LIỆU 13
2.1 Thiết kế kịch bản nhà thông minh 13
2.2 Đề xuất mô hình kiến trúc dữ liệu hệ thống sử dụng nền tảng điện toán đám mây IoT 14
2.2.1 Các đối tượng chính trong hệ thống IoT 14
2.2.2 Định nghĩa khung phân loại gói tin chung cho hệ thống IoT 14
2.2.3 Xác định và phân loại gói tin theo khung đề xuất 16
2.2.4 Thiết kế kiến trúc luồng dữ liệu 17
2.3 Thiết kế phần cứng hệ thống 19
DUT.LRCC
Trang 52.3.1 Sơ đồ kết nối phần cứng 19
2.3.2 Chi tiết phần cứng sử dụng 21
2.3.3 Lưu đồ thuật toán thiết bị 22
2.4 Kết luận chương 25
CHƯƠNG 3 QUẢN LÝ HỆ THỐNG NHÀ THÔNG MINH SỬ DỤNG NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY AWS IOT 26
3.1 Kiến trúc dữ liệu hệ thống nhà thông minh sử dụng nền tảng AWS IoT 26
3.1.1 Dịch vụ AWS IoT Core 26
3.1.2 Lựa chọn và mô tả dịch vụ CSDL 29
3.1.3 Quy trình luồng dữ liệu cảm biến 30
3.1.4 Quy trình luồng dữ liệu điều khiển và cập nhật trạng thái 34
3.1.5 Thiết kế API tương tác ứng dụng website 37
3.2 Kết luận chương 40
CHƯƠNG 4 QUẢN LÝ HỆ THỐNG SỬ DỤNG NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY GOOGLE CLOUD IOT 41
4.1 Kiến trúc dữ liệu hệ thống nhà thông minh sử dụng nền tảng Google Cloud IoT 41 4.1.1 Dịch vụ Cloud IoT Core 42
4.1.2 Lựa chọn và mô tả dịch vụ CSDL 45
4.1.3 Dịch vụ Cloud Pub/Sub 48
4.1.4 Quy trình luồng dữ liệu cảm biến 49
4.1.5 Quy trình luồng dữ liệu điều khiển và cập nhật trạng thái 51
4.1.6 Thiết kế API tương tác ứng dụng website 53
4.2 Kết luận chương 54
CHƯƠNG 5 KẾT QUẢ THỰC NGHIỆM VÀ SO SÁNH, ĐÁNH GIÁ 55
5.1 Kết quả thực nghiệm 55
5.2 Đánh giá định lượng 55
5.3 Đánh giá định tính 66
5.4 Kết luận chương 70
KẾT LUẬN VÀ KIẾN NGHỊ 71
DANH MỤC TÀI LIỆU THAM KHẢO 72
QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN 74
PHỤ LỤC 75
DUT.LRCC
Trang 6SO SÁNH VÀ ĐÁNH GIÁ CÁC NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY IOT
TRONG KỊCH BẢN NHÀ THÔNG MINH
Học viên: Lê Công Vĩnh Khải Chuyên ngành: Kỹ thuật điện tử
Mã số: 8520203 Khóa: K38.KĐT Trường Đại học Bách khoa – ĐHĐN Tóm tắt – Luận văn nghiên cứu về phương pháp xây dựng một hệ thống Internet of Things thực
tế ứng dụng nền tảng điện toán đám mây IoT Luận văn đề xuất mô hình kiến trúc dữ liệu của hệ thống IoT sử dụng nền tảng điện toán đám mây bao gồm thiết kế về khung phân loại gói tin chung; xác định và phân loại gói tin trong hệ thống nhà thông minh; thiết kế một số kiến trúc luồng dữ liệu chính của hệ thống và cuối cùng triển khai các thiết kế trên hai nền tảng điện toán đám mây AWS IoT và Google Cloud IoT để thực hiện đánh giá, so sánh và rút ra kết luận
Từ khóa – Internet of Things; Điện toán đám mây; AWS IoT; Google Cloud IoT; Định tính dịch vụ; Định lượng thông lượng;
COMPARISON AND EVALUATION OF IOT CLOUD PLATFORMS IN THE
CONTEXT OF SMART HOME
Abstract – This thesis studies a method of deploying an actual Internet of Things system using the IoT cloud platforms The thesis has proposed a data architecture model of an IoT system using IoT cloud platform including the design of a common message classification framework; identifying and classifying messages in smart home systems; designing some of the main data flow architectures of the system and finally implementing designs on both AWS IoT and Google Cloud IoT platforms to evaluate, compare, and draw conclusions
Keywords – Internet of Things; Cloud platform; AWS IoT; Google Cloud IoT; Qualitative service; Quantitative throughput;
DUT.LRCC
Trang 7DANH MỤC CÁC HÌNH
Hình 1: Các thành phần cơ bản của hệ thống Internet of Things 5
Hình 2: Bốn lĩnh vực công nghệ chính gắn với Internet of Things 6
Hình 3: Kiến trúc Internet of Things 6
Hình 4: Nền tảng IoT trong hệ sinh thái IoT 9
Hình 5: Mô hình các khối tính năng của nền tảng IoT hoàn chỉnh 10
Hình 6: Xếp hạng các nền tảng IoT trên thế giới năm 2019 11
Hình 7: các đối tượng chính trong hệ thống IoT 14
Hình 8: Thiết kế của hệ thống IoT đơn giản 17
Hình 9: Kiến trúc luồng dữ liệu cảm biến theo quy trình 4 bước 17
Hình 10: Mô hình lưu trữ và luồng dữ liệu trạng thái thiết bị 18
Hình 11: Sơ đồ khối tổng quát kết nối phần cứng hệ thống 20
Hình 12: Bản thiết kế nguyên lý mạch phần cứng 20
Hình 13: ESP32 DevKit V1.0 Doit 21
Hình 14: Cảm biến DHT11 21
Hình 15: Cảm biến MQ2 22
Hình 16: Màn hình cảm ứng NX4024T032 22
Hình 17: Lưu đồ thuật toán luồng xử lý chính 23
Hình 18: Lưu đồ thuật toán luồng xử lý nhấn nút tại bảng điều khiển cảm ứng 24
Hình 19: Lưu đồ thuật toán luồng xử lý nhận dữ liệu điều khiển và cấu hình 24
Hình 20: Kiến trúc dữ liệu từ Thiết bị -> Đám mây -> Ứng dụng 26
Hình 21: Kiến trúc dữ liệu từ Ứng dụng -> Đám mây -> Thiết bị 26
Hình 22: Kiến trúc dịch vụ AWS IoT Core 27
Hình 23: Mô hình bảo mật và xác thực của AWS IoT 28
Hình 24: Mô tả cấu trúc DynamoDB 30
Hình 25: Quy trình luồng dữ liệu cảm biến trên nền tảng AWS 30
Hình 26: Cấu hình chuyển tiếp dữ liệu từ AWS IoT Rule đến SQS 31
Hình 27: Minh họa bước 1 trong quy trình vòng đời tin nhắn SQS 31
Hình 28: Minh họa bước 2 trong quy trình vòng đời tin nhắn SQS 32
Hình 29: Minh họa bước 3 trong quy trình vòng đời tin nhắn SQS 32
Hình 30: Cấu hình SmhQueue làm trình kích hoạt Lambda đến hàm 33
Hình 31: Lambda sử dụng trình kích hoạt ánh xạ sự kiện đọc dữ liệu từ 33
Hình 32: Giá trị cảm biến lưu trữ trong DynamoDB 34
Hình 33: Quy trình luồng dữ liệu điều khiển và cập nhật trạng thái trên nền tảng AWS 34
Hình 34: Tài liệu shadow lưu dữ liệu trạng thái và điều khiển 37
Hình 35:Tài liệu shadow lưu dữ liệu cấu hình 37
Hình 36: Sơ đồ kiến trúc thiết kế API cho ứng dụng website theo kiến trúc REST 38
Hình 37: Quá trình hoạt động của các thành phần API Gateway 40
Hình 38: Kiến trúc dữ liệu từ Thiết bị -> Đám mây -> Ứng dụng 41
Hình 39: Kiến trúc dữ liệu từ Ứng dụng -> Đám mây -> Thiết bị 42
DUT.LRCC
Trang 8Hình 40: Các thành phần của dịch vụ Google Cloud IoT Core 43
Hình 41: Quy trình xác thực thiết bị trong Cloud IoT Core 45
Hình 42: Giao diện tổ chức dữ liệu của Cloud Firestore 48
Hình 43: Mô hình hoạt động của dịch vụ Cloud Pub/Sub 48
Hình 44: Các dịch vụ có thể kết nối với Cloud Pub/Sub 49
Hình 45: Quy trình luồng dữ liệu cảm biến trên nền tảng GCP 50
Hình 46: Giá trị cảm biến lưu trữ trong Firestore 50
Hình 47: Quy trình luồng dữ liệu điều khiển và cập nhật trạng thái trên nền tảng GCP 51
Hình 48: Tổ chức dữ liệu theo kiến trúc reported-desired trong Firestore 52
Hình 49: Sơ đồ kiến trúc thiết kế API cho ứng dụng website theo kiến trúc REST 53
Hình 50: Giao diện website quản lý hệ thống 55
Hình 51: Các bước dùng để đánh giá định lượng 56
Hình 52: Dấu thời gian gói tin bắt đầu trên AWS (trường hợp 1) 57
Hình 53: Dấu thời gian gói tin kết thúc trên AWS (trường hợp 1) 58
Hình 54: Dấu thời gian gói tin bắt đầu trên AWS (trường hợp 2) 58
Hình 55: Dấu thời gian gói tin kết thúc trên AWS (trường hợp 2) 59
Hình 56: Biểu đồ tất cả quá trình với độ phân giải 1 phút trên AWS (trường hợp 1) 59
Hình 57: Biểu đồ tất cả quá trình với độ phân giải 1 phút trên AWS (trường hợp 2) 60
Hình 58: Biểu đồ tổng số gói tin của các quá trình trên AWS (trường hợp 1) 60
Hình 59: Biểu đồ tổng số gói tin của các quá trình trên AWS (trường hợp 2) 61
Hình 60: Dấu thời gian gói tin bắt đầu trên GCP (trường hợp 1) 61
Hình 61: Dấu thời gian gói tin kết thúc trên GCP (trường hợp 1) 62
Hình 62: Dấu thời gian gói tin bắt đầu trên GCP (trường hợp 2) 62
Hình 63: Dấu thời gian gói tin kết thúc trên GCP (trường hợp 2) 63
Hình 64: Biểu đồ tất cả quá trình với độ phân giải 1 phút trên GCP (trường hợp 1) 63
Hình 65: Biểu đồ tất cả quá trình với độ phân giải 1 phút trên GCP (trường hợp 2) 64
Hình 66: Biểu đồ tổng số gói tin của các quá trình trên GCP (trường hợp1) 64
Hình 67: Biểu đồ tổng số gói tin của các quá trình trên GCP (trường hợp 2) 65
DUT.LRCC
Trang 9DANH MỤC CÁC BẢNG
Bảng 1: Ánh xạ tiêu chí đánh giá và kịch bản nhà thông minh 14
Bảng 2: Khung phân loại gói tin cơ sở 15
Bảng 3: Sắp xếp gói tin hệ thống nhà thông minh vào khung phân loại gói tin cơ sở 16
Bảng 4: Phân loại các dịch vụ CSDL của AWS và mục đích sử dụng 29
Bảng 5: các phương thức truy vấn với dịch vụ Device Shadow 35
Bảng 6: So sánh các dịch vụ CSDL được hỗ trợ bởi GCP 46
Bảng 7: So sánh Cloud Firestore và Firebase Realtime Database 46
Bảng 8: Dấu thời gian quá trình thử nghiệm ở phía thiết bị 56
Bảng 9: Kết quả phân tích thông lượng trên hai nền tảng đám mây 66
DUT.LRCC
Trang 10MỞ ĐẦU
1 Tính cấp thiết của đề tài
Internet of Things (IoT) là một trong những thuật ngữ phổ biến nhất trong thế giới công nghệ ngày nay Việc ứng dụng hiệu quả các hệ thống IoT đang góp phần cải tiến hiệu quả hoạt động trong rất nhiều lĩnh vực khác nhau, giúp cuộc sống con người ngày càng tiện lợi hơn, tuy nhiên số lượng thiết bị IoT tăng đột biến cũng đặt ra rất nhiều bài toán cho các nhà nghiên cứu trong lĩnh vực này
Hiện nay, trên thế giới nói chung và đặc biệt tại Việt Nam nói riêng các hệ thống IoT đang được ứng dụng trong rất nhiều lĩnh vực, từ công nghiệp cho đến nông nghiệp như các ứng dụng nhà thông minh, thành phố thông minh, trường học thông minh, nông trại thông minh,… Các tổ chức, doanh nghiệp ứng dụng IoT ngoài mục đích tối ưu hóa các quy trình vận hành, còn có thể khai thác hiệu quả từ lượng dữ liệu để lưu trữ, phân tích và đưa ra các quyết định, điều chỉnh phù hợp từ dữ liệu đó Tuy nhiên phần lớn các giải pháp IoT hiện nay đều triển khai theo hướng thủ công và cục bộ tức là phải thiết kế và xây dựng toàn bộ hệ thống từ thành phần thiết bị, máy chủ cho đến các hạ tầng giao thức kết nối Mặt khác, các máy chủ cục bộ thường sẽ bị giới hạn về dung lượng lưu trữ, tốc độ xử
lý và có khả năng mở rộng thấp, vì vậy có rất nhiều vấn đề cần giải quyết khi triển khai một hệ thống IoT như vậy: khả năng quản lý hệ thống, khả năng mở rộng, yêu cầu về bảo mật kết nối, bảo mật thiết bị, xác thực, chi phí triển khai, khả năng lưu trữ và phân tích dữ liệu,…
Trong những năm gần đây, các hãng công nghệ lớn về điện toán đám mây đã cho ra đời rất nhiều loại dịch vụ về công nghệ học máy, trí tuệ nhân tạo, dữ liệu lớn, cơ sở dữ liệu (CSDL), website… và một dịch vụ với sự kết hợp giữa ưu điểm của điện toán đám
mây và nền tảng IoT được gọi là nền tảng điện toán đám mây IoT điển hình là: Amazon
AWS IoT, Google Cloud IoT, Microsoft Azure IoT, Oracle IoT Cloud, IBM Watson IoT,… Với công nghệ nền tảng này, các doanh nghiệp và tổ chức không cần phải xây dựng thêm phần cứng máy chủ, cấu hình quản lý mô hình mạng và hạ tầng triển khai hệ thống Các thiết bị được kết nối có thể tương tác với nền tảng cũng như tương tác với các thiết bị khác một cách dễ dàng và bảo mật, các nền tảng điện toán đám mây IoT có khả năng hỗ trợ kết nối lên đến hàng tỉ thiết bị hay lưu trữ, xử lý hàng nghìn tỉ gói tin và có thể liên kết đến các dịch vụ mạnh mẽ khác bên trong hệ sinh thái của mỗi hãng công nghệ Vì vậy, giải pháp này sẽ giúp tiết kiệm được thời gian triển khai hệ thống, cắt giảm
DUT.LRCC
Trang 11chi phí triển khai vận hành và giải quyết được rất nhiều bài toán thực tế khác nhau như đã trình bày ở trên
Luận văn nghiên cứu về phương pháp xây dựng một hệ thống Internet of Things thực
tế ứng dụng nền tảng điện toán đám mây IoT, đề xuất quy trình kiến trúc dữ liệu hệ thống IoT, lựa chọn và thực hiện khảo sát hai trong số những nền tảng điện toán đám mây IoT lớn nhất hiện nay dựa trên các kịch bản mô hình nhà thông minh Từ đó so sánh và đánh giá hai nền tảng theo bộ tiêu chí đánh giá được đề xuất trong đề tài
- So sánh, đánh giá các nền tảng đã khảo sát dựa trên các kết quả triển khai thực tế
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
- Kiến trúc Internet of Things;
- Dịch vụ điện toán đám mây;
- Nền tảng điện toán đám mây IoT;
- Phân loại nền tảng điện toán đám mây IoT;
- Các giao thức truyền thông (MQTT, HTTP);
- Mô hình nhà thông minh;
- Xác thực và bảo mật trong hệ thống IoT;
- Trợ lý ảo giọng nói
3.2 Phạm vi nghiên cứu
- Tìm hiểu kiến trúc hệ thống IoT;
- Thiết kế quy trình hệ thống IoT ứng dụng nền tảng điện toán đám mây;
- Tìm hiểu các nền tảng điện toán đám mây IoT: AWS IoT Core, Google Cloud IoT Core, Azure IoT Hub,…;
- Xây dựng thuật toán cho các thiết bị kết nối đến nền tảng điện toán đám mây IoT;
- So sánh và đánh giá các nền tảng điện toán đám mây
4 Phương pháp nghiên cứu
DUT.LRCC
Trang 12Phương pháp luận của luận văn là kết hợp nghiên cứu lý thuyết, đề xuất kiến trúc và xây dựng mô hình, mô phỏng để làm rõ nội dung đề tài Cụ thể như sau:
- Nghiên cứu phương pháp ứng dụng các nền tảng điện toán đám mây IoT và các dịch vụ liên quan vào thiết kế hệ thống IoT;
- Đề xuất bộ tiêu chí đánh giá định tính và định lượng phù hợp để đánh giá các nền tảng điện toán đám mây IoT;
- Đề xuất mô hình kiến trúc dữ liệu cho hệ thống IoT;
- Xây dựng các kịch bản cụ thể về nhà thông minh phù hợp để đánh giá dựa trên bộ tiêu chí đã đề xuất;
- Thiết kế và thi công mô hình nhà thông minh, kết nối hệ thống với các nền tảng điện toán đám mây IoT;
- Thực hiện các kịch bản và rút ra đánh giá, so sánh các nền tảng điện toán đám mây IoT
5 Ý nghĩa khoa học và thực tiễn của đề tài
Ý nghĩa khoa học: luận văn tìm hiểu các kiến trúc liên quan đến hệ thống IoT ứng
dụng nền tảng điện toán đám mây IoT Từ kiến trúc thiết kế ban đầu và kết quả so sánh đánh giá, luận văn đưa ra những đề xuất về mặt thiết kế đối với hệ thống IoT giúp quản lý
và vận hành dễ dàng, tăng tính bảo mật dữ liệu, bảo mật kết nối, quản lý truy cập, khả năng mở rộng,… có ý nghĩa khoa học trong lĩnh vực thiết kế hệ thống IoT, điện toán đám mây IoT và bảo mật thông tin
Ý nghĩa thực tiễn: luận văn nghiên cứu và đề xuất mô hình kiến trúc dữ liệu cho hệ
thống IoT ứng dụng nền tảng điện toán đám mây, thực hiện các đánh giá định tính và định lượng để so sánh một số nền tảng điện toán đám mây IoT lớn nhất hiện nay Từ mô hình triển khai với kịch bản nhà thông minh, kết quả luận văn có khả năng áp dụng cho các hệ thống IoT khác nhau trong thực tế và có cơ sở giúp lựa chọn nền tảng phù hợp cho từng ứng dụng cụ thể
6 Cấu trúc của luận văn
Nội dung của luận văn gồm 5 chương và có nội dung như sau:
Chương 1 – Tổng quan đề tài Trình bày các nội dung lý thuyết về Internet of Things,
điện toán đám mây, thực hiện phân tích để lựa chọn nền tảng điện toán đám mây IoT phù hợp thực hiện trong đề tài Cuối cùng là phương pháp thực hiện quy trình đánh giá và đề xuất tiêu chí đánh giá
Chương 2 – Đề xuất mô hình kiến trúc dữ liệu và thiết kế mô hình nhà thông minh
Thiết kế kịch bản thực tế của mô hình nhà thông minh, đề xuất mô hình kiến trúc dữ liệu
hệ thống sử dụng nền tảng điện toán đám mây IoT và chi tiết thiết kế phần cứng hệ thống
DUT.LRCC
Trang 13Chương 3 – Quản lý hệ thống sử dụng nền tảng điện toán đám mây AWS IoT Thực
hiện triển khai hệ thống nhà thông minh ứng dụng nền tảng AWS IoT với các thiết kế lý thuyết đã thực hiện ở Chương 2, làm cơ sở kiến thức để thực hiện các so sánh đánh giá về sau
Chương 4 – Quản lý hệ thống sử dụng nền tảng điện toán đám mây Google Cloud IoT
Thực hiện triển khai hệ thống nhà thông minh ứng dụng nền tảng Google Cloud IoT với các thiết kế lý thuyết đã thực hiện ở Chương 2, làm cơ sở kiến thức để thực hiện các so sánh đánh giá về sau
Chương 5 – Kết quả thực nghiệm và so sánh, đánh giá Trình bày các kết quả thực
nghiệm của quá trình thực hiện luận văn, thực hiện trực quan hóa kết quả, đúc kết kiến thức và cuối cùng đưa ra các đánh giá, so sánh theo các tiêu chí định tính và định lượng
DUT.LRCC
Trang 14CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Tổng quan về Internet of Things
1.1.1 Định nghĩa Internet of Things
Thuật ngữ Internet of Things (IoT) lần đầu tiên xuất hiện năm 1999 [1], trong hơn 2 thập kỷ qua định nghĩa về IoT đã tổng quát hơn rất nhiều vì sự phát triển nhanh chóng và được ứng dụng trong rất nhiều lĩnh vực khác nhau Nhìn chung, Internet of Things là thuật ngữ mô tả mạng lưới các thực thể vật lý, tích hợp các cảm biến, phần mềm và các công nghệ khác nhằm mục đích kết nối, trao đổi dữ liệu với các thực thể khác qua môi trường Internet [2]
Trong hệ thống IoT, các đối tượng có thể là bất cứ thứ gì từ những vật thể nhỏ nhất như vi điều khiển cho đến các vật thể lớn mà chúng ta nhìn thấy hằng ngày như xe ô tô, tivi, đồng hồ,… Các thiết bị này phải được định danh duy nhất, thường sẽ tích hợp các cảm biến và cơ cấu truyền động, có thể giao tiếp với nhau bằng các công nghệ truyền thông không dây (WSN, WiFi, Bluetooth, Zigbee, LoRa,…) hoặc có dây (CAN, Ethernet) Cảm biến giúp thu thập thông số môi trường, quá trình hoạt động của thiết bị
và cơ cấu truyền động giúp thực hiện các quyết định điều khiển
Hình 1: Các thành phần cơ bản của hệ thống Internet of Things
1.1.2 Kiến trúc Internet of Things
Sự phát triển của IoT không phải là sự phát triển của một công nghệ riêng lẻ nào mà là
sự tổng hợp, thúc đẩy cải tiến không ngừng của hàng loạt các lĩnh vực công nghệ nền tảng khác nhau, trong đó gồm 4 lĩnh vực công nghệ chính luôn gắn liền với sự phát triển xu thế IoT bao gồm: phần cứng, truyền thông kết nối, phần mềm và ứng dụng[3]
DUT.LRCC
Trang 15Hình 2: Bốn lĩnh vực công nghệ chính gắn với Internet of Things (Nguồn: Beecham)
Để triển khai thực tế, đòi hỏi định nghĩa một kiến trúc tổng quát IoT theo các lớp của
mô hình lý thuyết OSI để có thể ứng dụng chung trong nhiều lĩnh vực, ngữ cảnh Sau nhiều năm phát triển và từ các nghiên cứu chỉ ra rằng kiến trúc IoT có thể chia thành 3 lớp, 4 lớp hoặc thậm chí là 5 lớp tùy theo tính chi tiết của kiến trúc, nhưng nhìn chung mô hình 4 lớp phổ biến và được ứng dụng nhiều nhất gồm các lớp: tri giác (perceptual), mạng (network), hỗ trợ (support) và ứng dụng (application), bên cạnh đó yếu tố bảo mật đi kèm mỗi lớp cũng cực kỳ quan trọng [4]
Hình 3: Kiến trúc Internet of Things (Nguồn: K Ashton)
1.2 Tổng quan về điện toán đám mây
1.2.1 Định nghĩa điện toán đám mây
Điện toán đám mây là việc cung cấp các dịch vụ diện toán theo yêu cầu bao gồm: máy chủ; dịch vụ lưu trữ; CSDL; phần mềm; công cụ phân tích, tính toán,… qua môi trường
DUT.LRCC
Trang 16Internet Điều khác biệt của dịch vụ điện toán đám mây là thay vì mua, sở hữu và duy trì các trung tâm dữ liệu thì người dùng có thể truy cập và sử dụng các dịch vụ điện toán trên
cơ sở hạ tầng của một nhà cung cấp như Amazon Web Service, Google Cloud Platform, Microsoft Azure,… [7]
1.2.2 Phân loại điện toán đám mây
Hầu hết các dịch vụ điện toán đám mây được chia thành 3 loại chính: cơ sở hạ tầng như một dịch vụ (IaaS), nền tảng như một dịch vụ (PaaS), và phần mềm như một dịch vụ (SaaS) [8] Mỗi loại điện toán đám mây cung cấp các cấp độ kiểm soát, tính linh hoạt và khả năng quản lý khác nhau để người dùng có thể lựa chọn tập hợp các dịch vụ phù hợp với nhu cầu riêng
Cơ sở hạ tầng nhƣ một dịch vụ (IaaS): đây là loại cơ bản nhất của dịch vụ điện toán
đám mây, chứa các khối hạ tầng cơ bản cho lĩnh vực công nghệ thông tin và thường cung cấp các dịch vụ về mạng, máy chủ chuyên dụng hoặc máy ảo, dịch vụ lưu trữ, hệ điều hành với hình thức dùng bao nhiêu trả bấy nhiêu, cung cấp mức độ linh hoạt cao nhất và
có quyền quản lý, kiểm soát đối với tất cả tài nguyên được thuê
Nền tảng nhƣ một dịch vụ (PaaS): đề cập đến các dịch vụ điện toán đám mây cung
cấp môi trường theo yêu cầu để phát triển, thử nghiệm, phân phối và quản lý các ứng dụng phần mềm PaaS thường được thiết kế để giúp các nhà phát triển dễ dàng tạo nhanh các ứng dụng web hoặc ứng dụng dành cho thiết bị di động mà không cần lo lắng về việc thiết lập hoặc quản lý cơ sở hạ tầng cơ bản của máy chủ (thường là phần cứng và hệ điều hành)
Phần mềm nhƣ một dịch vụ (SaaS): cung cấp cho khách hàng một sản phẩm phần
mềm hoàn chỉnh được duy trì và quản lý bởi nhà cung cấp dịch vụ Trong hầu hết các trường hợp, SaaS đề cập đến các ứng dụng của người dùng cuối, nghĩa là người sử dụng không cần quan tâm về cách thức dịch vụ được duy trì hoặc cơ sở hạ tầng bên dưới được quản lý như thế nào mà chỉ cần quan tâm đến mục đích sử dụng phần mềm cụ thể đó là gì
1.2.3 Các mô hình triển khai điện toán đám mây
Không phải tất cả các mô hình điện toán đám mây đều giống nhau và cũng không có loại điện toán đám mây nào là phù hợp cho tất cả trường hợp sử dụng Vì vậy để triển khai mô hình điện toán đám mây phù hợp với từng hệ thống có thể sử dụng một trong ba
mô hình sau:
- Đám mây công cộng (Public cloud): là mô hình điện toán đám mây mà các tài
nguyên dịch vụ được sở hữu và vận hành bởi một bên thứ ba cụ thể là nhà cung cấp dịch vụ điện toán đám mây Với mô hình này, tất cả tài nguyên bao gồm phần
DUT.LRCC
Trang 17cứng, phần mềm và cơ sở hạ tầng hỗ trợ khác đều do nhà cung cấp đám mây sở hữu và quản lý Người sử dụng chỉ có thể truy cập các dịch vụ này và quản lý tài khoản của mình bằng trình duyệt web hoặc các công cụ chuyên dụng từ xa
- Đám mây riêng tƣ (Private cloud): là mô hình điện toán đám mây mà các tài
nguyên được sở hữu riêng, thường là doanh nghiệp hoặc tổ chức Một số công ty cũng trả chi phí để thuê các nhà cung cấp dịch vụ bên thứ ba để lưu trữ đám mây riêng tư của họ Đối với mô hình này, các dịch vụ và cơ sở hạ tầng thường được duy trì, vận hành trên một mạng riêng tư
- Đám mây kết hợp (Hybrid cloud): là mô hình kết hợp giữa hai mô hình đám mây
công cộng và đám mây riêng tư được ràng buộc, liên kết với nhau bằng một số công nghệ để có thể chia sẻ dữ liệu và ứng dụng giữa chúng Bằng cách cho phép
dữ liệu và ứng dụng có thể chia sẻ lẫn nhau giữa hai mô hình, đám mây kết hợp mang lại cho doanh nghiệp sự linh hoạt, nhiều tùy chọn triển khai hơn và giúp tối
ưu hóa cơ sở hạ tầng, bảo mật và quy trình hiện có
1.2.4 Lợi ích của điện toán đám mây
Sự ra đời của điện toán đám mây là sự thay đổi lớn so với mô hình truyền thống và luận văn nêu ra 5 lý do quan trọng giải thích vì sao các tổ chức dần chuyển sang sử dụng dịch vụ điện toán đám mây [9]:
- Chi phí: điện toán đám mây giúp loại bỏ chi phí đầu tư ban đầu khi mua phần
cứng và phần mềm cũng như chi phí để thiết lập trung tâm dữ liệu tại chỗ: không gian đặt máy chủ, điện năng tiêu thụ, hệ thống làm mát, chuyên gia CNTT quản lý
cơ sở hạ tầng,… sẽ làm chi phí tăng lên nhanh chóng
- Tốc độ triển khai: với tính sẵn sàng cao và khả năng cung cấp dịch vụ theo yêu
cầu, một lượng lớn tài nguyên máy tính cũng có thể được cung cấp trong vài phút với chỉ vài thao tác trên giao diện website, mang lại cho doanh nghiệp sự linh hoạt, đẩy nhanh tốc độ triển khai hệ thống và giảm bớt áp lực trong việc hoạch định năng suất
- Khả năng mở rộng: điện toán đám mây cung cấp một lợi ích cực kỳ mạnh mẽ đó
là khả năng mở rộng và co giãn lượng tài nguyên tự động theo nhu cầu sử dụng Điều này sẽ giúp doanh nghiệp không lo lắng về khả năng mở rộng và mặt khác cũng giúp tối ưu về mặt chi phí khi chỉ cần trả phí cho lượng tài nguyên đã sử dụng
- Độ tin cậy: điện toán đám mây cung cấp tính năng sao lưu dữ liệu, khôi phục dữ
liệu khi gặp sự cố và đảm bảo sự liên tục trong vận hành Đây là yếu tố rất quan trọng đối với các doanh nghiệp lớn với lượng khách hàng sử dụng và dữ liệu khổng
lồ
DUT.LRCC
Trang 18- Bảo mật: các nhà cung cấp dịch vụ đám mây thường cung cấp một loạt các chính
sách, quy trình về bảo mật và kiểm soát truy cập giúp bảo vệ dữ liệu, ứng dụng và
cơ sở hạ tầng của người dùng khỏi các mối đe dọa tiềm ẩn
1.3 Phân tích và lựa chọn nền tảng điện toán đám mây IoT cho đề tài
1.3.1 Các yếu tố của nền tảng điện toán đám mây IoT
Nền tảng điện toán đám mây IoT ra đời là kết quả tất yếu với sự kết hợp giữa công nghệ IoT và điện toán đám mây, đóng vai trò là thành phần trung tâm trong kiến trúc IoT giúp kết nối thế giới thực với thế giới ảo và cho phép các đối tượng giao tiếp với nhau[5], Trong 4 lĩnh vực công nghệ chính tạo nên các ứng dụng IoT được mô tả ở phần trên, nền tảng IoT xuất hiện như là một thành phần phụ trợ tập trung ở lĩnh vực phần mềm, phải được tích hợp các tiêu chuẩn khác nhau cả về phần mềm lẫn phần cứng và cho phép các khả năng tương tác đa dạng
Hình 4: Nền tảng IoT trong hệ sinh thái IoT (Nguồn: IoT-Analytics)
Ở cấp độ đơn giản nhất, nền tảng IoT chỉ cho phép tạo kết nối giữa các đối tượng và ở hình thức phức tạp hơn, một nền tảng IoT đầy đủ sẽ bao gồm 8 khối tính năng quan trọng bao gồm: kết nối và chuẩn hóa (Connectivity & normalization), quản lý thiết bị (device management), cơ sở dữ liệu (database), xử lý và quản lý hành động (processing & action management), phân tích (analytics), trực quan hóa (visualization), các công cụ bổ sung và giao diện bên ngoài (additional tools, and external interfaces) [10]
DUT.LRCC
Trang 19Hình 5: Mô hình các khối tính năng của nền tảng IoT hoàn chỉnh (Nguồn: IoT-Analytics)
1.3.2 Lựa chọn nền tảng điện toán đám mây IoT
Trong thực tế khi nghiên cứu thực hiện đề tài luận văn tôi nhận thấy rằng có rất nhiều
công ty cung cấp giải pháp gọi là “nền tảng IoT” nhưng nếu không hiểu rõ và phân tích
kỹ các tính năng mà nền tảng đó cung cấp sẽ khó có thể phân biệt được liệu giải pháp đó
có đề cập đến một nền tảng IoT hoàn chỉnh hay không Một nền tảng IoT trưởng thành và hoàn chỉnh yêu cầu phải có tất cả 8 yếu tố mô tả Hình 5
Theo báo cáo của tổ chức chuyên nghiên cứu về thị trường IoT có tên IoT Analytics, nhóm dẫn dầu (Leaders) về cung cấp nền tảng điện toán đám mây IoT gồm một số hãng công nghệ nổi tiếng như Amazon AWS IoT, Microsoft Azure IoT, Google Cloud IoT hay Oracle IoT Cloud,… được thể hiện trong Hình 6 Trong phạm vi đề tài luận văn, tôi sẽ lựa chọn 2 trong số các nền tảng điện toán đám mây thuộc nhóm dẫn đầu này và đáp ứng đầy
đủ 8 mô đun tính năng kể trên là: Amazon AWS IoT (thuộc Amazon Web Server) là một
trong số những nền tảng IoT ra đời sớm nhất (năm 2015) được xem là nền tảng đứng đầu
thế giới trong nhiều năm qua và Google Cloud IoT (thuộc Google Cloud Platform) là
nền tảng ra đời muộn hơn (năm 2017) nhưng với hạ tầng điện toán đám mây có sẵn mạnh
mẽ đang cho thấy được tốc độ phát triển cực kỳ nhanh
DUT.LRCC
Trang 20Hình 6: Xếp hạng các nền tảng IoT trên thế giới năm 2019 (Nguồn: IoT-Analytics)
1.4 Phương pháp thực hiện quy trình đánh giá và đề xuất tiêu chí đánh giá
1.4.1 Phương pháp thực hiện quy trình đánh giá
Thực hiện đánh giá và so sánh toàn diện 2 nền tảng IoT hàng đầu thế giới với rất nhiều dịch vụ và tính năng khác nhau trong khuôn khổ đề tài luận văn giới hạn về nội dung và thời gian thực hiện là không khả thi Vì vậy luận văn thực hiện đánh giá 2 nền tảng bằng phương pháp cùng triển khai song song trên mô hình hệ thống IoT thực tế với kịch bản nhà thông minh, quy trình cụ thể bao gồm các bước sau:
- Bước 1: Nghiên cứu, đề xuất kiến trúc tổng quát của một hệ thống IoT khi triển
khai ứng dụng nền tảng điện toán đám mây Các đề xuất gồm: khung phân loại gói
tin, kiến trúc luồng dữ liệu, định dạng gói tin;
- Bước 2: Đề xuất bộ tiêu chí đánh giá hai nền tảng điện toán đám mây IoT dựa trên
quá trình khảo sát, tìm hiểu tổng quan gồm: tiêu chí đánh giá định lượng và tiêu chí đánh giá định tính;
- Bước 3: Thiết kế các kịch bản nhà thông minh phù hợp để thực hiện đánh giá bộ tiêu chí đề xuất ở Bước 2;
- Bước 4: Thiết kế 2 mô hình phần cứng hệ thống với nguyên lý giống nhau hoàn
toàn (dùng cho 2 nền tảng) có khả năng thực thi các kịch bản nhà thông minh trong
thực tế đã thiết kế ở Bước 3;
DUT.LRCC
Trang 21- Bước 5: Triển khai hệ thống nhà thông minh đã xây dựng ứng dụng nền tảng AWS IoT và Google IoT theo quy trình kiến trúc tổng quát đã đề xuất ở Bước 1;
- Bước 6: Thực hiện phân tích đánh giá định lượng (dựa trên các tính toán, biểu đồ
trực quan số liệu) và các đánh giá định tính (dựa trên nguồn tài liệu chính của mỗi nền tảng cùng với các đúc kết, kinh nghiệm rút ra được trong suốt quá trình triển
khai hệ thống)
1.4.2 Đề xuất tiêu chí đánh giá
Để thực hiện đánh giá và so sánh hai nền tảng, luận văn đề xuất bộ tiêu chí được gán nhãn từ T1 đến T8 gồm:
- Tiêu chí đánh giá định lượng:
T1: Thông lượng
- Tiêu chí đánh giá định tính:
T2: Quản lý thiết bị
T3: Định tuyến gói tin từ IoT Core đến các dịch vụ khác
T4: Giao thức hỗ trợ kết nối thiết bị và ứng dụng
T5: Thông báo đẩy
T6: Bảo mật, xác thực và ủy quyền máy khách
mô hình triển khai và lợi ích chính của điện toán đám mây cùng với Internet of Things; bên cạnh đó là phân tích lựa chọn nền tảng điện toán đám mây IoT cho đề tài cùng phương pháp thực hiện quy trình đánh giá và đề xuất tiêu chí đánh giá Chi tiết về quá
trình thiết kế và triển khai sẽ được trình bày cụ thể ở các chương sau
DUT.LRCC
Trang 22CHƯƠNG 2 THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH VÀ ĐỀ XUẤT MÔ HÌNH KIẾN TRÚC DỮ LIỆU
2.1 Thiết kế kịch bản nhà thông minh
Để đảm bảo có cơ sở tốt giúp đánh giá hai nền tảng điện toán đám mây IoT theo bộ tiêu chí đã đề xuất, đòi hỏi phải thiết kế hệ thống nhà thông minh với các ngữ cảnh đa dạng tính năng, mỗi ngữ cảnh được sử dụng để đánh giá được ít nhất 1 tiêu chí trong bộ tiêu chí đề xuất Hệ thống nhà thông minh được xây dựng bao gồm các ngữ cảnh được gắn nhãn từ N1 đến N7 như sau:
- N1: Giám sát các giá trị thông số môi trường bao gồm: nhiệt độ, độ ẩm, khí gas và
thu thập định kỳ mỗi 5 giây để cập nhật đến giao diện người dùng cuối
- N2: Hỗ trợ tính năng phát hiện có người để cảnh báo trộm, có thể cấu hình từ xa
qua giao diện website để kích hoạt khi cần hoặc vô hiệu hóa tính năng này
- N3: Trong trường hợp tính năng chống trộm được kích hoạt, nếu phát hiện có
người hoặc đối tượng lạ sẽ thực hiện báo động âm thanh và gửi cảnh báo đến người dùng
- N4: Hỗ trợ tính năng báo động âm thanh và gửi cảnh báo đến người dùng nếu khí
gas vượt ngưỡng, có thể cấu hình ngưỡng từ xa qua giao diện website
- N5: Giám sát trạng thái các thiết bị điện trong nhà
- N6: Hỗ trợ tính năng điều khiển các thiết bị điện trong nhà bằng 2 phương pháp:
tại chỗ qua công tắc cảm ứng hoặc từ xa qua giao diện website
- N7: Hỗ trợ cảnh báo qua giao diện website nếu thiết bị gặp sự cố mất kết nối đột
ngột đến nền tảng đám mây
Ngoài ra có một số tính năng khác cũng được tích hợp giúp đa dạng hóa trải nghiệm
hệ thống nhà thông minh nhưng không dùng để đánh giá tiêu chí như:
- Toàn bộ thông số hệ thống sẽ được hiển thị trên màn hình cảm ứng HMI được gắn trong nhà phục vụ giám sát hệ thống tại chỗ
- Khi bị mất kết nối WiFi sẽ cho phép cấu hình WiFi từ xa thông qua điện thoại hoặc máy tính
- Tích hợp trợ lý ảo giọng nói có thể truy vấn trạng thái, điều khiển thiết bị từ xa qua giọng nói
Mỗi ngữ cảnh từ N1 đến N7 sẽ được sử dụng để phân tích, đánh giá 2 nền tảng IoT theo các tiêu chí từ T1 đến T8 được sắp xếp ở Bảng 1:
DUT.LRCC
Trang 23Bảng 1: Ánh xạ tiêu chí đánh giá và kịch bản nhà thông minh
2.2.1 Các đối tượng chính trong hệ thống IoT
Một hệ thống IoT điển hình thường gồm 3 thành phần đối tượng chính tương tác với nhau như sau:
Device (Thiết bị): thành phần gồm các thiết bị của hệ thống, thông thường tích hợp vi
điều khiển kết nối các cảm biến, ngoại vi,… đảm nhiệm chức năng thu thập các thông số
về môi trường xung quanh hoặc thông số của chính thiết bị và điều khiển các thiết bị ngoại vi
Server (Máy chủ hoặc đám mây): thành phần trung tâm của hệ thống, có vai trò
quản lý, lưu trữ, phân phát gói tin
Application (ứng dụng): thành phần ứng dụng người dùng, giúp người dùng tương
tác với hệ thống từ xa qua website hoặc ứng dụng điện thoại
2.2.2 Định nghĩa khung phân loại gói tin chung cho hệ thống IoT
Các hệ thống IoT được ứng dụng trong nhiều lĩnh vực đa dạng, mỗi hệ thống khác nhau sẽ có các đặc điểm riêng và loại gói tin cũng khác nhau Ví dụ gói tin thu thập giá trị
Trang 24cảm biến định kỳ, gói tin điều khiển thiết bị từ xa từ ứng dụng người dùng, gói tin cập nhật firmware, gói tin cấu hình ngưỡng cảnh báo, …
Mỗi loại gói tin sẽ có một số tính chất đặc thù như: mục đích sử dụng, dung lượng gói, tần suất gửi tin, yêu cầu về độ tin cậy gói,… Vì vậy việc định nghĩa và chuẩn hóa một khung phân loại các gói tin cơ bản rất cần thiết để làm cơ sở trước khi xây dựng mô hình kiến trúc dữ liệu cho các gói tin cụ thể
Luận văn xây dựng khung phân loại gói tin cơ sở bằng cách lấy đối tượng thiết bị làm gốc để xét phân loại, vì hầu hết dữ liệu truyền nhận trong hệ thống IoT đều có yếu tố
“Thing” nghĩa là sẽ xuất phát từ thiết bị hoặc đích đến dữ liệu là thiết bị Luận văn sử dụng kiến trúc gồm 4 loại gói tin cơ sở: STATE, TELEMETRY, CONFIGURATION, COMMAND cho một hệ thống IoT bất kỳ được mô tả trong Bảng 2:
Bảng 2: Khung phân loại gói tin cơ sở
Loại gói tin Hướng truyền Chức năng Tần
bị đến máy chủ (đám mây)
Ít Giá trị phiên
bản firmware hiện tại, trạng thái on/off của thiết bị, dung lượng pin,… TELEMETRY Thiết bị -> Máy
chủ
Gửi dữ liệu sự kiện thu thập từ thiết bị (thường mang tính chất định kỳ) đến máy chủ (đám mây) phục vụ mục đích lưu trữ, giám sát, phân tích
Nhiều Giá trị thông
số môi trường xung quanh được thu thập bởi cảm biến
CONFIGURATION Máy chủ -> Thiết
bị
Chứa dữ liệu yêu cầu cấu các hình trạng thái nội tại thiết bị
Ít Yêu cầu cập
nhật firmware mới, yêu cầu thay đổi ngưỡng cảnh báo,…
COMMAND Máy chủ -> Thiết
Trang 25thái các thiết bị ngoại vi
2.2.3 Xác định và phân loại gói tin theo khung đề xuất
Các gói tin trong hệ thống nhà thông minh được đề xuất phân loại theo loại dữ liệu bao gồm:
- Dữ liệu cấu hình: Dữ liệu cấu hình các thông số hoạt động của thiết bị từ xa qua
website như cấu hình ngưỡng, chế độ hoạt động, phiên bản firmware, cập nhật firmware từ xa…
- Dữ liệu yêu cầu điều khiển (gọi tắt là dữ liệu điều khiển): dữ liệu chứa lệnh yêu
cầu điều khiển các thiết bị trong nhà từ xa qua ứng dụng website
- Dữ liệu cảm biến: dữ liệu giám sát thông số môi trường xung quanh như nhiệt độ,
độ ẩm, khí ga,… được gửi từ thiết bị đến đám mây để thực hiện lưu trữ, phân tích, hiển thị
- Dữ liệu cập nhật trạng thái (gọi tắt là dữ liệu trạng thái): dữ liệu cập nhật trạng
thái hiện tại của các thiết bị trong nhà, được gửi từ thiết bị đến đám mây
- Dữ liệu cảnh báo: dữ liệu sự kiện hoặc vượt ngưỡng cảnh báo cần thực hiện gửi
thông báo đến người dùng qua email hoặc website
- Dữ liệu phân tích: dữ liệu cảm biến, trạng thái, hoặc bất kỳ dữ liệu nào của hệ
thống được gửi từ thiết bị đến đám mây với mục đích lưu trữ, phân tích chuyên sâu giúp cải thiện hệ thống bằng cách ứng dụng công nghệ dữ liệu lớn (Big data), trí tuệ nhân tạo (AI) trên nền tảng đám mây
Các loại gói tin được sắp xếp theo khung phân loại gói tin 4 loại cơ sở ở Bảng 3: Bảng 3: Sắp xếp gói tin hệ thống nhà thông minh vào khung phân loại gói tin cơ sở
Loại gói tin của hệ
Trang 262.2.4 Thiết kế kiến trúc luồng dữ liệu
Việc ra quyết định lựa chọn sử dụng dịch vụ nào trên nền tảng đám mây để hệ thống đạt hiệu quả thực tế tốt nhất sẽ phụ thuộc vào yêu cầu cụ thể và thiết kế ban đầu của hệ thống Luận văn đề xuất thiết kế luồng dữ liệu cho 3 loại gói tin chính trong tổng số 6 loại gói tin đã phân loại để thực hiện so sánh đánh giá là: dữ liệu cảm biến, dữ liệu điều khiển
và dữ liệu trạng thái
Thiết kế luồng dữ liệu cảm biến: đây là luồng dữ liệu quan trọng nhất trong hầu hết
các hệ thống IoT, các cảm biến được xem là giác quan của một hệ thống IoT Dữ liệu cảm biến giúp kích hoạt các giải pháp IoT trong ứng dụng thực tế Đối với thiết kế của một hệ thống đơn giản, dữ liệu từ thiết bị gửi đến máy chủ thường sẽ gửi trực tiếp đến cổng (port) một tiến trình chuyên biệt như web server, serverless function,… tiến trình này sẽ liên kết với CSDL thực hiện việc lưu trữ dữ liệu hoặc các logic khác
Tuy nhiên kiến trúc như vậy sẽ chỉ vận hành tốt trong điều kiện hệ thống có quy mô nhỏ, số lượng thiết bị và dữ liệu ít, khó khăn khi cần mở rộng nâng cấp hệ thống Luận văn đề xuất thiết kế luồng dữ liệu cảm biến với quy trình 4 bước nhằm đảm bảo tính tin
cậy, khả năng mở rộng đối với lượng dữ liệu lớn theo thời gian ở Hình 9:
Hình 9: Kiến trúc luồng dữ liệu cảm biến theo quy trình 4 bước
Chi tiết các bước:
(1) Thiết bị sẽ kết nối đến đám mây qua các giao thức ứng dụng trên nền giao thức TCP (MQTT, Websocket hoặc HTTP) tích hợp các phương thức bảo mật, xác thực được cung cấp bởi đám mây, sau đó có thể gửi dữ liệu an toàn đến đám mây qua kết nối đã được thiết lập
(2) Dữ liệu sau khi gửi đến đám mây sẽ được đưa vào hàng đợi chuyên dụng (tiêu chuẩn hoặc FIFO) trước khi đẩy đến dịch vụ thực hiện các logic chính của hệ thống được xây dựng dưới dạng serverless function Đây là bước khác biệt so với các mô hình đơn giản, vì trong trường hợp dữ liệu được gửi lên tăng đột biến không đoán trước được,
Web server (serverless function)
Hình 8: Thiết kế của hệ thống IoT đơn giảnDUT.LRCC
Trang 27trong thời gian serverless function đang thực thi một sự kiện thì có thể có hàng trăm nghìn gói tin khác được gửi lên sẽ dẫn đến tình trạng lỗi thắt cổ chai làm mất gói tin Việc sử dụng cơ chế hàng đợi lưu trữ trước khi đẩy đến các dịch vụ xử lý phía sau sẽ mang lại các ưu điểm như khả năng mở rộng, chịu tải cao tránh trường hợp xảy ra lỗi thắt cổ chai làm mất gói tin, có thể lựa chọn sử dụng hàng đợi theo cấu trúc FIFO hoặc tiêu chuẩn tùy ứng dụng cụ thể đảm bảo tính linh động, ngoài ra giúp tăng thêm lớp bảo mật và xác thực tài nguyên truy cập dữ liệu
(3) Dữ liệu được tổ chức lưu trữ ở hàng đợi sẽ được serverless function thực hiện đọc ra
và xử lý tuần tự theo các logic được lập trình sẵn trước khi lưu vào CSDL
(4) Dữ liệu được lưu trữ vào CSDL theo định dạng và cấu trúc NoSQL được tạo sẵn
Thiết kế luồng dữ liệu điều khiển và cập nhật trạng thái: Trong các hệ thống IoT,
một tính năng quan trọng khác điều khiển từ xa và đồng bộ trạng thái thiết bị Vấn đề đặt
ra là việc điều khiển, cập nhật trạng thái thiết bị sẽ đến từ nhiều nguồn khác nhau (từ ứng dụng website, ứng dụng điện thoại, điều khiển tại chỗ) rất dễ xảy ra xung đột nên cần có một quy trình truyền, nhận, xử lý dữ liệu đảm bảo các yêu cầu: ứng dụng người dùng có thể giám sát trạng thái hiện tại của thiết bị, ứng dụng người dùng có thể điều khiển thiết bị
từ xa, thiết bị có thể được điều khiển tại chỗ, giải quyết được bài toán về đồng bộ trạng thái thực của thiết bị và trạng thái hiển thị trên ứng dụng người dùng, giải quyết được bài toán về điều khiển từ xa khi thiết bị mất kết nối với đám mây Luận văn đề xuất sử dụng
mô hình tổ chức dữ liệu thiết bị gọi là Current state (Trạng thái hiện tại) sẽ được tổ chức
lưu trữ thành 2 khối riêng biệt trong CSDL theo kiến trúc No-SQL gọi là reported và desired được trình bày trong Hình 10
Hình 10: Mô hình lưu trữ và luồng dữ liệu trạng thái thiết bị
DUT.LRCC
Trang 28- Reported: đại diện cho trạng thái thực của thiết bị, chỉ có thiết bị mới được cập
nhật trạng thái vào khối này Ứng dụng nếu muốn biết được trạng thái hiện tại của thiết bị để thực hiện tính năng giám sát sẽ thực hiện truy vấn đọc dữ liệu từ khối reported này
- Desired: đại diện cho trạng thái điều khiển, cập nhật mà ứng dụng mong muốn
thiết bị thực hiện, các ứng dụng khác nhau có thể cùng cập nhật trạng thái vào khối này Dữ liệu của khối này sẽ tự động được gửi đến thiết bị khi có yêu cầu điều khiển mới từ ứng dụng hoặc thiết bị có thể chủ động đọc dữ liệu từ khối này khi cần thực hiện quá trình đồng bộ Sau khi đọc dữ liệu từ khối desired, thiết bị sẽ xử
lý yêu cầu và thực hiện đồng bộ trạng thái lên khối reported
Mô hình reported-desired phân tách dữ liệu của thiết bị và ứng dụng thành hai khối riêng biệt đảm bảo tính độc lập, không bị xung đột hoặc bất đồng bộ trong quá trình sử dụng vì các nguyên tắc:
- Dữ liệu ở khối reported được cập nhật bởi thiết bị, giá trị chỉ thay đổi khi trạng thái thực thiết bị thay đổi, vì vậy ứng dụng khi đọc trạng thái hiện tại của thiết bị sẽ không bị sai đảm bảo độ tin cậy khi theo dõi giám sát từ xa
- Trong trường hợp thiết bị mất kết nối đến đám mây, ứng dụng vẫn có thể thực hiện yêu cầu cập nhật trạng thái từ xa vào khối desired và không lưu đè vào khối reported tránh làm sai trạng thái thực của thiết bị; thiết bị có thể đọc về và xử lý yêu cầu khi trực tuyến trở lại và cập nhật ngược lại reported khi thành công để đồng bộ với ứng dụng
Khi triển khai thực tế, ngoài mục đích giải quyết các bài toán về quá trình điều khiển, giám sát, đồng bộ trạng thái các thiết bị có tính năng điều khiển từ xa và tương tác tại chỗ
(ví dụ: relay, đèn, quạt,…), dữ liệu lưu trữ ở CSDL Trạng thái hiện tại có thể được sử
dụng kết hợp lưu trữ thêm các thông số khác của thiết bị như giá trị cảm biến, thông số hoạt động,… vì mặc dù giá trị cảm biến thường có CSDL riêng lưu theo cấu trúc chuỗi
thời gian phục vụ giám sát phân tích số lượng lớn nhưng nếu tận dụng CSDL Trạng thái
hiện tại này để lưu trữ giá trị cảm biến gần nhất thì sẽ rất thuận tiện cho việc truy xuất giá
trị tức thời thay vì phải kết nối truy vấn đến CSDL tập trung với dung lượng dữ liệu lớn
sẽ tiêu tốn nhiều tài nguyên và thời gian thực thi hơn Mỗi loại dữ liệu khác nhau như vậy
được xem là một Khối dữ liệu trong mô hình ở trên
2.3 Thiết kế phần cứng hệ thống
2.3.1 Sơ đồ kết nối phần cứng
Hệ thống sử dụng chip SoC tích hợp WiFi ESP32 32-bit của hãng Expressif làm vi điều khiển trung tâm giao tiếp với các ngoại vi khác và kết nối với nền tảng điện toán đám mây IoT Để giám sát các thông số môi trường trong nhà, hệ thống sử dụng cảm biến
DUT.LRCC
Trang 29DHT11 để đo giá trị nhiệt độ, độ ẩm; cảm biến MQ2 để đo giá trị nồng độ khí ga và cảm biến hồng ngoại HC-SR501 để chống trộm Đối với tính năng giám sát và điều khiển trạng thái các thiết bị điện, hệ thống sử dụng module cảm ứng điện dung TTP223 kết hợp relay cách ly Ngoài ra hệ thống tích hợp còi báo động và màn hình HMI 3.2” hiển thị các thông số hệ thống để người dùng giám sát tại chỗ
Hình 11: Sơ đồ khối tổng quát kết nối phần cứng hệ thống
Hình 12: Bản thiết kế nguyên lý mạch phần cứng DUT.LRCC
Trang 302.3.2 Chi tiết phần cứng sử dụng
Board ESP32 DevKit V1: sử dụng chip SoC ESP32 32-bit tích hợp chip WiFi
2.4GHz và Bluetooth ESP32 được sử dụng để giao tiếp với các thiết bị cảm biến, ngoại
vi và kết nối Internet để giao tiếp truyền nhận dữ liệu với các nền tảng điện toán đám mây IoT
Hình 13: ESP32 DevKit V1.0 Doit
Cảm biến DHT11: là cảm biến đo nhiệt độ, độ ẩm có độ chính xác cao lấy dữ liệu
thông qua giao tiếp một dây Cảm biến được tích hợp bộ tiền xử lý tín hiệu giúp dữ liệu nhận về được chính xác mà không cần phải qua bất kỳ tính toán nào
Hình 14: Cảm biến DHT11 DUT.LRCC
Trang 31Cảm biến MQ2: là cảm biến khí ga cấu tạo từ chất bán dẫn SnO2 được thiết kế với
độ nhạy cao, thời gian đáp ứng nhanh Giá trị đọc được từ cảm biến sẽ được đọc về từ chân Analog của vi điều khiển
Hình 15: Cảm biến MQ2
Màn hình cảm ứng NX4024T032: là màn hình cảm ứng được sản xuất bởi hãng
Nextion với mục đích giúp người sử dụng có thể thiết kế các giao diện điều khiển và hiển thị (GUI) trên màn cảm ứng 1 cách dễ dàng và trực quan nhất Màn hình sẽ giao tiếp với
vi điều khiển qua giao tiếp UART
Hình 16: Màn hình cảm ứng NX4024T032
2.3.3 Lưu đồ thuật toán thiết bị
Lưu đồ thuật toán chương trình chính của thiết bị gồm ba luồng chính, được mô tả ở Hình17, 18 và 19:
DUT.LRCC
Trang 32Hình 17: Lưu đồ thuật toán luồng xử lý chính
DUT.LRCC
Trang 33Hình 18: Lưu đồ thuật toán luồng xử lý nhấn nút tại bảng điều khiển cảm ứng
Hình 19: Lưu đồ thuật toán luồng xử lý nhận dữ liệu điều khiển và cấu hình từ ứng dụng
DUT.LRCC
Trang 34DUT.LRCC
Trang 35CHƯƠNG 3 QUẢN LÝ HỆ THỐNG NHÀ THÔNG MINH SỬ DỤNG NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY AWS IOT
3.1 Kiến trúc dữ liệu hệ thống nhà thông minh sử dụng nền tảng AWS IoT
AWS IoT là dịch vụ cung cấp các dịch vụ nền tảng về IoT sâu rộng, từ điện toán cạnh
đến điện toán đám mây Từ các quy trình phân loại gói tin và thiết kế luồng dữ liệu ở
Chương 2, luận văn đề xuất thiết kế hệ thống nhà thông minh sử dụng nền tảng AWS IoT
như Hình 20 và Hình 21:
Hình 20: Kiến trúc dữ liệu từ Thiết bị -> Đám mây -> Ứng dụng
Hình 21: Kiến trúc dữ liệu từ Ứng dụng -> Đám mây -> Thiết bị
Trong sơ đồ trên, các đường dữ liệu biểu thị bởi đường nét liền được thực hiện trong
đề tài luận văn để so sánh đánh giá, còn đường Dữ liệu phân tích biểu thị bởi đường nét
đứt được đề xuất nhưng không thực hiện triển khai đánh giá trong luận văn
3.1.1 Dịch vụ AWS IoT Core
Trong số các dịch vụ IoT mà AWS cung cấp, dịch vụ đóng vai trò trung tâm và cốt lõi nhất là dịch vụ AWS IoT Core với nhiệm vụ cung cấp cách thức (địa chỉ broker, giao thức, phương thức bảo mật) để các thiết bị trong hệ thống IoT có thể kết nối đến AWS,
DUT.LRCC
Trang 36ngoài ra AWS IoT Core cũng là điểm đầu cuối để các dịch vụ đám mây khác có thể dễ dàng tương tác với dữ liệu hệ thống [11] Kiến trúc bên trong dịch vụ AWS IoT Core được trình bày ở Hình 22:
Hình 22: Kiến trúc dịch vụ AWS IoT Core (Nguồn: AWS)
AWS IoT Core quản lý giao tiếp thiết bị thông qua một dịch vụ gọi là message broker đại diện bởi một địa chỉ gọi là điểm cuối (endpoint hoặc URL), các thiết bị và ứng dụng khách có thể kết nối đến broker bằng cách sử dụng các giao thức MQTT, MQTT qua WebSocket (WSS) và HTTPS [12] Thiết bị ESP32 trong hệ thống nhà thông minh sử dụng giao thức MQTT để truyền nhận dữ liệu
Giao thức Địa chỉ điểm cuối
(endpoint hoặc URL)
khác
DUT.LRCC
Trang 37Hình 23: Mô hình bảo mật và xác thực của AWS IoT (Nguồn: AWS)
Khi thiết bị kết nối với AWS IoT, quá trình bảo mật bao gồm hai quá trình là xác thực (authentication) và ủy quyền (authorization) [13] Cơ chế xác thực bao gồm xác thực máy chủ và xác thực máy khách:
- Xác thực máy chủ: Khi thiết bị hoặc ứng dụng khách khác kết nối với AWS IoT
Core, máy chủ AWS IoT Core sẽ gửi chứng chỉ X.509 để thiết bị sử dụng nhằm xác thực danh tính máy chủ Quá trình xác thực diễn ra ở lớp TLS thông qua xác thực chuỗi chứng chỉ X.509, đây là phương pháp tương tự được trình duyệt sử
dụng khi truy cập vào các website hỗ trợ HTTPS
- Xác thực máy khách: AWS IoT hỗ trợ 3 phương thức để xác thực thiết bị hoặc
ứng dụng khách là: chứng chỉ khách X.509, qua dịch vụ IAM và qua dịch vụ Amazon Cognito Các phương thức trên được AWS IoT cung cấp với mục đích sử dụng phù hợp cho nhiều loại máy khách như là thiết bị, ứng dụng mobile, website hay ứng dụng desktop Thông thường thiết bị sẽ sử dụng chứng chỉ X.509, ứng dụng mobile sử dụng Amazon Cognito và ứng dụng website, desktop sẽ sử dụng IAM
Trong đề tài luận văn, thiết bị ESP32 khi kết nối đến AWS sẽ thực hiện xác thực danh tính lẫn nhau sử dụng chứng chỉ X.509 qua giao thức bảo mật TLS với cơ chế mật mã hóa khóa công khai (mật mã hóa bất đối xứng) thông qua cặp khóa công khai-riêng tư (public-private key)
Để cung cấp cho thiết bị khả năng tương tác với các dịch vụ khác bên trong nền tảng AWS, luận văn sử dụng dịch vụ AWS IoT Rule, các rule được phân tích và thực thi dựa trên các topic của giao thức MQTT, được định nghĩa bằng cú pháp giống với cấu trúc SQL bao gồm 3 mệnh đề chính là: SELECT-FROM-WHERE, khi được kích hoạt sẽ sử dụng cơ chế publish-subscribe để xử lý nhận, chuyển tiếp gói tin từ thiết bị đến các dịch
vụ khác [14]
DUT.LRCC
Trang 383.1.2 Lựa chọn và mô tả dịch vụ CSDL
Lựa chọn dịch vụ CSDL: Khi thiết kế hệ thống IoT sử dụng dịch vụ điện toán đám
mây AWS, việc lựa chọn dịch vụ CSDL phù hợp để lưu trữ các loại dữ liệu là rất quan
trọng AWS cung cấp nhiều loại CSDL cho các mục đích sử dụng khác nhau
Bảng 4: Phân loại các dịch vụ CSDL của AWS và mục đích sử dụng (Nguồn: AWS)
Đối với dữ liệu IoT có thể phù hợp với ba loại là Key-value (DynamoDB), Document (DocumentDB) và Time series (Timestream), trong đó Timestream là dịch vụ đang ở giai đoạn thử nghiệm nên chỉ đang ở phiên bản sử dụng thử (preview) Nhìn chung, hai CSDL DynamoDB và DocumentDB đều được AWS hỗ trợ đầy đủ các tính năng quan trọng về khả năng mở rộng, bảo mật, và cách thức truy vấn riêng Tuy nhiên DynamoDB được phát triển, sử dụng và duy trì bởi đội ngũ phát triển AWS, được hỗ trợ đầy đủ về hạ tầng quản lý, xác thực, ủy quyền Với DynamoDB, quản trị viên không phải định cấu hình bất
kỳ cơ sở hạ tầng nào mà chỉ cần định cấu hình khả năng đọc/ghi dữ liệu sau khi tạo bảng một cách nhanh chóng Dữ liệu được tự động sao chép trên các máy chủ khả dụng và DynamoDB tự động mở rộng khả năng lưu trữ theo yêu cầu Vì vậy luận văn sử dụng dịch vụ CSDL DynamoDB làm CSDL chính cho hệ thống nhà thông minh đã thiết kế
Mô tả dịch vụ CSDL DynamoDB: Là dịch vụ CSDL NoSQL được cung cấp bởi nền
tảng điện toán đám mây AWS, cho phép nhà phát triển giảm bớt gánh nặng quản trị của việc vận hành và mở rộng CSDL phân tán Các thành phần cốt lõi trong DynamoDB là bảng (table), mục (item) và thuộc tính (attribute); một bảng là tập hợp của các mục và mỗi
mục là tập hợp các thuộc tính [15]
DUT.LRCC
Trang 39DynamoDB sử dụng các khóa chính (primary key) để định danh duy nhất từng mục trong bảng và sử dụng các chỉ mục phụ (secondary index) để cung cấp tính linh hoạt khi truy vấn dữ liệu, cấu trúc tổng quát được mô tả ở Hình 24
Hình 24: Mô tả cấu trúc DynamoDB
3.1.3 Quy trình luồng dữ liệu cảm biến
Theo quy trình luồng dữ liệu cảm biến theo 4 bước đã thiết kế ở chương 2, trên nền tảng điện toán đám mây AWS luận văn đề xuất thiết kế ở Hình 25 :
Hình 25: Quy trình luồng dữ liệu cảm biến trên nền tảng AWS
SQS action: mỗi khi dữ liệu định kỳ từ cảm biến được thiết bị thu thập gửi đến AWS
IoT Core, SQS action sẽ được kích hoạt theo quy tắc được định nghĩa ở câu lệnh sau:
Câu lệnh trên có chức năng trích xuất dữ liệu mã thiết bị
(current.state.reported.sensorValue) nhận được từ topic
DUT.LRCC
Trang 40$aws/things/SmhThing/shadow/update/documents để gửi đến hàng đợi của dịch vụ hàng
đợi SQS có tên là SmhQueue:
Hình 26: Cấu hình chuyển tiếp dữ liệu từ AWS IoT Rule đến SQS
Amazon SQS (Simple Queue Service): là dịch vụ hàng đợi được cung cấp bởi đám
mây AWS với các tính năng bảo mật, dữ liệu lưu trữ bền vững an toàn cho phép tích hợp
và phân tách các hệ thống nhắn tin phân tán
Có ba thành phần chính trong hệ thống nhắn tin phân tán:
- Thành phần của hệ thống phân tán gồm thành phần sản xuất (AWS IoT Core) và
thành phần tiêu thụ (Lambda)
- Hàng đợi: AWS SQS
- Tin nhắn lưu trữ trong hàng đợi: dữ liệu cảm biến
Quy trình về vòng đời tin nhắn được xử lý gồm 3 bước:
- Bước 1: thành phần sản xuất (thành phần 1) gửi tin nhắn A đến hàng đợi và được lưu trữ phân phối dự phòng trên các máy chủ Amazon SQS
Hình 27: Minh họa bước 1 trong quy trình vòng đời tin nhắn SQS
- Bước 2: Khi một đối tượng tiêu thụ (thành phần 2) sẵn sàng xử lý tin nhắn, đối tượng sẽ thực hiện gửi yêu cầu tiêu thụ tin nhắn và tin nhắn A sẽ được trả về, trong khi tin nhắn A đang được xử lý, nó vẫn nằm trong hàng đợi và không được phép
DUT.LRCC