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. Tiếp theo bài viết “Thiết kế kiến trúc các luồng dữ liệu trong ứng dụng nhà thông minh sử dụng điện toán đám mây IoT”, bài viết này đề xuất thiết kế hệ thống nhà thông minh sử dụng nền tảng AWS IoT như Hình 1 và Hình 2 dưới đây:
Hình 1: Kiến trúc dữ liệu từ Thiết bị -> Đám mây -> Ứng dụng
Hình 2: 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 chuỗi bài viết chia sẻ này để 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á.
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, ngoà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 [1]. Kiến trúc bên trong dịch vụ AWS IoT Core được trình bày ở Hình 3:
Hình 3: 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 [2]. 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.
Đối với AWS IoT, mỗi thiết bị hoặc ứng dụng khách được kết nối yêu cầu phải có chứng chỉ xác thực để tương tác với AWS IoT. Tất cả lưu lượng truy cập đến và đi từ AWS IoT được gửi an toàn qua giao thức bảo mật TLS, cơ chế bảo mật trên đám mây AWS cũng bảo vệ dữ liệu khi dữ liệu được truyền tải giữa AWS IoT và các dịch vụ AWS khác.
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) [3]. 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 [4].
Qua bài viết này, mình đã cung cấp các thông tin về AWS IoT Core, một dịch vụ đóng vai trò trung tâm và cốt lõi trong số các dịch vụ IoT được cung cấp bởi nền tảng điện toán đám mây AWS.
Chuỗi bài viết được thực hiện và chia sẻ bởi LCV.Khải và Các nhóm nghiên cứu tại Cộng đồng Kỹ thuật TAPIT
Chúc các bạn thành công!
Tham khảo
[1] AWS, “AWS IoT Core services”, AWS IoT Core Developer Guide, Amazon Web Services, 2020.
[2] AWS, “Communication protocols used by AWS IoT”, AWS IoT Core Developer Guide, Amazon Web Services, 2020.
[3] AWS, “Security in AWS IoT”, AWS IoT Core Developer Guide, Amazon Web Services, 2020.
[4] AWS, “AWS IoT rules tutorials”, AWS IoT Core Developer Guide, Amazon Web Services, 2020.