Kiến trúc tham chiếu cho Internet của sự vật (P2)

03/11/2015 21:01
Theo dõi ICTVietnam trên

Trong thực tế thiết kế, quyết định lựa chọn công nghệ nào phụ thuộc vào những yêu cầu cụ thể của kiến trúc IoT và dựa vào những thực tiễn tốt nhất (best practices) để xây dựng các kiến trúc Internet khả mở và linh hoạt.

KIẾN TRÚC THAM CHIẾU IoT

Kiến trúc tham chiếu IoT bao gồm 5 lớp xếp chồng. Mỗi lớp có một chức năng riêng, có thể minh họa bằng những công nghệ cụ thể. Có 2 lớp theo chiều dọc là quản lý thiết bị và quản lý định danh & truy nhập.

-Lớp Thiết bị (Devices)

Các thiết bị IoT phải có giao thức truyền thông trực tiếp (Arduino, Raspberry Pi, Intel Galileo qua Ethernet hoặc Wi-Fi) hoặc gián tiếp kết nối được với Internet (ZigBee, Bluetooth hoặc Bluetooth công suất thấp qua điện thoại di động,...).

Mỗi thiết bị cần có định danh thuộc một trong các loại: định danh duy nhất (UUID) ghi sẵn trong phần cứng (thường là một phần của SoC hoặc chip thứ cấp), UUID gửi qua hệ thống vô tuyến phụ (ví dụ: định danh Bluetooth, địa chỉ Wi-Fi MAC), token OAuth2 Refresh/Bearer (có thể là bổ sung cho các loại khác), định danh lưu trong bộ nhớ chỉ đọc như EEPROM.

Các chuyên gia khuyến nghị, mỗi thiết bị IoT nên có một UUID (tốt nhất lưu cố định trong phần cứng) và một token OAuth2 Refresh/Bearer lưu trong EEPROM. OAuth2 token có mục đích tạo ra một token định danh tách biệt với số định danh cố định ghi trong mỗi thiết bị. Bearer token được dùng ban đầu để gửi đến bất kỳ server hay dịch vụ nào cần định danh. Bearer token có thời gian sống ngắn hơn Refresh token. Nếu Bearer token hết hạn, Refresh token được gửi đến lớp Định danh để tạo ra bản cập nhật của Bearer token.

Lớp Truyền thông (Communications)

Lớp truyền thông hỗ trợ kết nối các thiết bị. Nhiều giao thức có thể sử dụng trong lớp này như HTTP/HTTPS, MQTT 3.1/3.1.1, CoAP (Constrained Application Protocol). Trong đó, HTTP là giao thức lâu đời và phổ biến nhất nên có nhiều thư viện hỗ trợ. Vì đó là giao thức dựa trên ký tự đơn giản nên nhiều thiết bị nhỏ như bộ điều khiển 8 bit đều có thể hỗ trợ HTTP. Các thiết bị 32 bit lớn hơn có thể sử dụng các thư viện HTTP client đầy đủ.

Có một số giao thức được tối ưu riêng cho IoT, trong đó nổi bật nhất là 2 giao thức MQTT và CoAP. MQTT được phát minh vào năm 1999 để giải quyết các vấn đề của hệ thống nhúng và SCADA. Giao thức MQTT có phần mào đầu nhỏ (chỉ 2 byte/message), chạy được trên nền TCP và có khả năng chịu được môi trường mạng thường bị gián đoạn và suy hao cao. Ủy ban kỹ thuật của tổ chức tiêu chuẩn OASIS đang xem xét chuẩn hóa phiên bản MQTT hiện nay (3.1.1). Giao thức CoAP do tổ chức tiêu chuẩn IETF xem xét phát triển trên cơ sở HTTP nhưng dựa trên mã nhị phân chứ không phải ký tự nên nhỏ gọn hơn, có thể chạy trên nền UDP.

Lớp Hợp nhất/Bus (Aggregation/ Bus)

Đây là lớp quan trọng để hợp nhất và chuyển đổi các thông điệp (message broker hay middleware) truyền thông với 3 chức năng sau:

-Hỗ trợ máy chủ HTTP và/hoặc chức năng chuyển đổi MQTT để giao tiếp với thiết bị.

-Hợp nhất nội dung truyền từ các thiết bị khác nhau và định tuyến truyền thông tới một thiết bị cụ thể (có thể qua gateway).

-Bắc cầu và chuyển đổi giữa 2 giao thức khác nhau, ví dụ chuyển đổi API dựa trên HTTP ở lớp trên vào thông điệp MQTT đến thiết bị.

Lớp Bus cũng có thể cung cấp một số tính năng tương quan (correlation) và ánh xạ đơn giản từ các mô hình tương quan khác nhau (nghĩa là ánh xạ số định danh thiết bị sang số định danh của người sở hữu thiết bị và ngược lại).

Cuối cùng, lớp Hợp nhất/Bus cần thực hiện 2 nhiệm vụ an toàn bảo mật là Máy chủ tài nguyên OAuth2 (thẩm định Bearer token và các truy nhập tài nguyên liên quan) và Điểm tăng cường chính sách (PEP) đối với truy nhập dựa trên chính sách. Trong mô hình ở Hình 2, lớp Bus yêu cầu lớp Quản lý truy nhập và Định danh thẩm định các yêu cầu truy nhập. Lớp Quản lý truy nhập và Định danh đóng vai trò như Điểm quyết định chính sách (PDP) trong quá trình này. Sau đó, lớp Bus thực hiện theo kết quả do PDP mang đến, nghĩa là cho phép hoặc không cho phép truy nhập tài nguyên.

Lớp Xử lý Sự kiện và Phân tích (Event Processing and Analytics)

Lớp này xử lý các sự kiện từ lớp Bus chuyển lên. Yêu cầu chủ yếu ở đây là khả năng lưu trữ dữ liệu vào cơ sở dữ liệu. Mô hình truyền thống sẽ viết một ứng dụng phía máy chủ (ví dụ, JAX-RS). Tuy nhiên, có một số cách tiếp cận khác linh hoạt hơn. Thứ nhất là sử dụng các nền tảng phân tích dữ liệu lớn. Đó là nền tảng dựa trên cloud khả mở hỗ trợ các công nghệ như Apache Hadoop để cung cấp những phân tích map-reduce (quy trình xử lý dữ liệu siêu lớn) đối với tập hợp dữ liệu đến từ các thiết bị. Cách tiếp cận thứ hai là hỗ trợ phương thức Xử lý Sự kiện Phức tạp (Complex Processing Event) để thực hiện các hoạt động gần như theo thời gian thực và ra quyết định hành động dựa theo kết quả phân tích dữ liệu từ các thiết bị chuyển đến.

Lớp Truyền thông ngoài (External Communication)

Lớp nào tạo ra giao diện giúp quản lý các thiết bị IoT như: web/portal, dashboard (bảng hiển thị tổng hợp) hoặc hệ thống quản lý API. Với web/portal, kiến trúc cần hỗ trợ các công nghệ Web phía máy chủ như Java Servlets/JSP, PHP, Python, Ruby ... Web server dựa trên Java phổ biến nhất là Apache Tomcat. Dashboard là hệ thống tái sử dụng tập trung vào việc trình bày đồ thị mô tả dữ liệu đến từ các thiết bị và lớp xử lý sự kiện. Lớp quản lý API có 3chức năng. Thứ nhất là cung cấp portal tập trung vào hỗ trợ lập trình viên tác nghiệp (chứ không phải là người sử dụng như portal thông thường) và quản lý các phiên bản của API được xuất bản. Thứ hai là đóng vai trò gateway quản lý truy nhập vào các API, kiểm tra việc điều khiển truy nhập (đối với yêu cầu từ bên ngoài), điều tiết sử dụng dựa trên chính sách, định tuyến và cân bằng tải. Cuối cùng là chức năng gateway đẩy dữ liệu vào lớp phân tích để lưu trữ và xử lý, giúp hiểu được các API đã được sử dụng như thế nào.

Lớp Quản lý Thiết bị (Device Management)

Trong lớp Quản lý thiết bị, hệ thống phía máy chủ DM (Device Manager) giao tiếp với các thiết bị thông qua các giao thức khác nhau và điều khiển phần mềm của từng thiết bị hoặc một nhóm thiết bị (có thể khóa hoặc xóa dữ liệu trên thiết bị khi cần), quản lý định danh các thiết bị và ánh xạ vào chủ nhân các thiết bị đó. DM phải phối hợp với lớp Quản lý Định danh và Truy nhập để quản lý việc điều khiển truy nhập vào thiết bị (những người có quyền truy nhập vào thiết bị ngoài chủ nhân, quyền điều khiển của chủ nhân thiết bị so với người quản trị...).

Lớp Quản lý Định danh và Truy nhập (Identity and Access Management)

Lớp này cần cung cấp các dịch vụ: Phát hành và thẩm định Oauth2 token; Các dịch vụ định danh khác, gồm cả SAML2 SSO và OpenID Connect; XACML PDP; Danh bạ cho người dùng (ví dụ: LDAP); Quản lý chính sách điều khiển truy nhập (PCP).

KẾT LUẬN

Nội dung trên đã nêu tổng quan các lĩnh vực chính của kiến trúc tham chiếu cho IoT và một số công nghệ liên quan trong từng lớp để minh họa. Trong thực tế thiết kế, quyết định lựa chọn công nghệ nào phụ thuộc vào những yêu cầu cụ thể của kiến trúc IoT và dựa vào những thực tiễn tốt nhất (best practices) để xây dựng các kiến trúc Internet khả mở và linh hoạt.

Tài liệu tham khảo

[1].A Reference Architectute for the Internet of Things, WSO2, version 0.8.0 (http://wso2.com).
[2].http://oauth.net.
[3].https://www.oasis-open.org.

ThS. Nguyễn Khánh Tiềm


Nổi bật Tạp chí Thông tin & Truyền thông
Đừng bỏ lỡ
Kiến trúc tham chiếu cho Internet của sự vật (P2)
POWERED BY ONECMS - A PRODUCT OF NEKO