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

Xu hướng - Dự báo - Ngày đăng : 21:01, 03/11/2015

Hệ thống IoT có thể bao gồm: các thiết bị đeo (wearable) theo dõi chỉ số y tế, thiết bị đo từ xa, nhà thông minh, mạng cảm biến không dây đo thông số môi trường, ô tô kết nối Internet, điện thoại di động tương tác với môi trường...

 Internet của Sự vật (IoT) là khái niệm về mọi vật đều có thể kết nối Internet thông qua các bộ cảm biến (sensor). Hệ thống IoT có thể bao gồm: các thiết bị đeo (wearable) theo dõi chỉ số y tế, thiết bị đo từ xa, nhà thông minh, mạng cảm biến không dây đo thông số môi trường, ô tô kết nối Internet, điện thoại di động tương tác với môi trường... Kết quả là không có một kiến trúc chung duy nhất phù hợp cho mọi lĩnh vực ứng dụng nêu trên. Tuy nhiên, một kiến trúc kiểu mô- đun cho phép thêm/bớt tính năng theo yêu cầu của từng tình huống ứng dụng là rất hữu ích. Đó là điểm khởi đầu giúp cho các nhà kiến trúc tạo ra những giải pháp IoT nền tảng cho việc phát triển sau này. Bài báo này trình bày một kiến trúc tham chiếu (Reference Architecture) cho IoT theo kiểu mô-đun như vậy.

VÌ SAO CẦN CÓ KIẾN TRÚC THAM CHIẾU CHO IoT?

Các nhà kiến trúc hệ thống đưa ra bốn lý do chính về sự cần thiết nên có kiến trúc tham chiếu cho IoT như sau:

-Thiết bị IoT có bản chất kết nối mạng liên tục nên cần có phương thức tương tác 24x7 với các thiết bị này như qua tường lửa (firewall), NAT và một số cách khác.

-Đã có hàng tỷ thiết bị IoT xuất hiện trên thế giới và con số này tiếp tục tăng nhanh nên chúng ta cần kiến trúc có thể mở rộng (scalable).

-Các thiết bị IoT có thể không có giao diện người dùng (UI), sử dụng hàng ngày nên cần hỗ trợ cập nhật tự động và quản lý được từ xa.

-Hầu hết thiết bị IoT dùng để thu thập và phân tích dữ liệu cá nhân. Vì vậy, cần có mô hình quản lý định danh và điều khiển truy nhập cho các thiết bị IoT cũng như cách xuất bản, sử dụng những dữ liệu này.

PHÂN LOẠI THIẾT BỊ IoT VÀ PHƯƠNG THỨC KẾT NỐI INTERNET

Các thiết bị IoT rất đa dạng nhưng có thể phân thành ba loại chủ yếu, xét theo kích cỡ:

-Những thiết bị IoT có kích thước nhỏ nhất dùng bộ điều khiển 8 bit nhúng, kiểu cả hệ thống trên chip SoC (System on Chip) và thường không có hệ  điều hành. Ví dụ điển hình là nền tảng phần cứng nguồn mở Arduino 8 bit.

-Mức cao hơn là hệ thống dựa trên chip ARM và Arthero có kiến trúc 32 bit rút gọn (limited). Những thiết bị này thường là các bộ router nhỏ dành cho gia đình và những biến thể khác. Hệ thống thường chạy trên nền tảng nhúng Linux rút gọn hoặc hệ điều hành nhúng dành riêng. Một số trường hợp không sử dụng hệ điều hành như Arduino Zero hoặc Arduino Yun.

-Hệ thống IoT lớn nhất là loại sử dụng nền tảng 32 hoặc 64 bit đầy đủ. Những hệ thống như Raspberry Pi hay BeagleBone có thể chạy hệ điều hành Linux đầy đủ hoặc Android. Nhiều trường hợp chính là điện thoại di động hoặc dựa trên công nghệ điện thoại di động. Những thiết bị này có thể đóng vai trò gateway hoặc cầu (bridge) cho các thiết bị nhỏ hơn. Ví dụ: thiết bị đeo kết nối qua Bluetooth công suất thấp với điện thoại di động hay Raspberry Pi, để sau đó làm cầu nối với mạng Internet.

Có một số giải pháp kết nối giữa thiết bị với Internet hoặc gateway:

-Kết nối Ethernet hoặc Wi-Fi trực tiếp qua giao thức TCP hoặc UDP.

-Bluetooth công suất thấp.

-Kết nối trường gần (NFC).

-Zigbee hoặc các mạng vô tuyến khác.

-SRF và kết nối vô tuyến điểm-điểm.

-UART hoặc kênh nối tiếp (serial lines).

-SPI hoặc kênh I2C (wired buses).

Tóm lại, có hai mô hình chính là trực tiếp kết nối Internet hoặc qua gateway (Hình 1).

CÁC YÊU CẦU CỦA KIẾN TRÚC THAM CHIẾU CHO IoT

Yêu cầu chung là kiến trúc tham chiếu cho IoT phải trung lập với nhà sản xuất, không phụ thuộc vào công nghệ cụ thể nào. Có những yêu cầu khá đặc thù cho thiết bị IoT và môi trường hỗ trợ nhưng cũng có những yêu cầu xuất phát từ quá trình sản xuất và sử dụng. Có thể tóm tắt các yêu cầu của kiến trúc tham chiếu cho IoT trong 5 nhóm sau: 

Kết nối và giao tiếp

Các giao thức hiện tại như HTTP có vị trí rất quan trọng trong nhiều thiết bị. Thậm chí ngay cả bộ điều khiển 8 bit cũng có thể tạo ra lệnh GET, POST và giao thức HTTP tạo ra kết nối đồng nhất quan trọng. Tuy nhiên, phần mào đầu của HTTP và một số giao thức Internet truyền thống chưa phù hợp cho giao tiếp IoT vì hai lý do. Thứ nhất, kích cỡ bộ nhớ của chương trình quá lớn so với những thiết bị nhỏ. Vấn đề thứ hai còn lớn hơn: HTTP yêu cầu công suất tương đối cao so với thiết bị IoT nhỏ. Do vậy, cần có một giao thức nhị phân đơn giản, nhỏ gọn và có khả năng đi qua tường lửa. Đối với thiết bị IoT kết nối Internet qua gateway cần 2 giao thức: một giao thức kết nối gateway còn giao thức khác kết nối từ gateway với Internet. Cuối cùng, kiến trúc phải hỗ trợ giao thức truyền thông (communications) và bắc cầu. Ví dụ, giao thức nhị phân dùng cho thiết bị IoT phải cho phép API (dựa trên HTTP) điều khiển được thiết bị khi kết nối với bên thứ ba.

Quản lý thiết bị

Hiện nay, nhiều thiết bị IoT chưa được quản lý ở chế độ tích cực (active) trong khi chế độ quản lý này đã phổ biến và ngày càng trở nên quan trọng trong PC, điện thoại di động và các thiết bị khác. Như vậy, chế độ tích cực là yêu cầu cần có trong quản lý thiết bị IoT, cụ thể bao gồm những tính năng sau:

-Khả năng ngắt kết nối với thiết bị hỏng hoặc bị đánh cắp.

-Khả năng cập nhật phần mềm trên thiết bị.

-Cập nhật các thông số bảo mật.

-Khả năng bật/tắt từ xa một số tính năng phần cứng.

-Xác định vị trí thiết bị mất cắp.

-Xóa dữ liệu bảo mật khỏi thiết bị mất cắp.

-Cấu hình lại từ xa các thông số của Wi-Fi, GPRS hoặc các thông số mạng khác.

Thu thập, phân tích và khởi động dữ liệu

Một số thiết bị IoT có giao diện UI nhưng nói chung hầu hết các thiết bị IoT tập trung vào trang bị 1-2 bộ cảm biến có thể kèm theo (hoặc không) 1 bộ kích động (actuator) hoặc nhiều hơn. Yêu cầu của hệ thống là thu thập dữ liệu từ rất nhiều thiết bị, lưu trữ, phân tích và ra quyết định hành động dựa trên kết quả phân tích gần như theo thời gian thực. Kiến trúc tham chiếu được thiết kế để quản lý số lượng lớn thiết bị. Nếu những thiết bị đó tạo ra dòng dữ liệu ổn định, liên tục thì sẽ có lượng dữ liệu khá lớn. Yêu cầu là hệ thống lưu trữ cần có tính khả mở cao, xử lý được khối lượng dữ liệu lớn và đa dạng.

Tính khả mở (scalability)

Bất kỳ kiến trúc phía máy chủ (server-side) nào đều cần tính khả mở cao, có thể hỗ trợ hàng triệu thiết bị liên tục gửi, nhận và hoạt động dựa trên dữ liệu. Tuy nhiên, "kiến trúc khả mở cao" kéo theo giá thành cao cả về phần cứng, phần mềm và độ phức tạp. Yêu cầu quan trọng đối với kiến trúc này là phải hỗ trợ tính mở từ mức triển khai nhỏ cho đến số lượng thiết bị rất lớn. Tính năng có thể mở co giãn (elastic) và có thể triển khai dạng cloud như dịch vụ Amazon EC2 là rất cần thiết.

An toàn bảo mật

Đây là yêu cầu quan trọng nhất. Các thiết bị IoT thường thu thập dữ liệu có tính cá nhân cao và đưa lên Internet (và ngược lại). Điều đó dẫn đến hai loại nguy cơ mất an toàn:

-Những nguy cơ gắn với bản chất mất an toàn thông tin của mạng Internet mà nhà thiết kế/sản xuất thiết bị IoT không nhận thức được. Đó có thể chỉ đơn giản là việc mở các cổng trên thiết bị. Ví dụ, tủ lạnh kết nối Internet có server dùng giao thức SMTP không an toàn nên có thể gửi tin rác (spam).

-Những nguy cơ riêng từ chính bản thân thiết bị IoT, nhất là phần cứng. Ví dụ, nhiều thiết bị IoT quá nhỏ, không hỗ trợ cơ chế mã hóa phi đối xứng phù hợp nên không bảo đảm an toàn.

Có hai vấn đề quan trọng, đặc thù của bảo mật IoT là quản lý định danh và truy nhập. Quản lý định danh cho thiết bị IoT và giao tiếp máy-máy (M2M) bằng cách dùng cặp "tên/mật khẩu" là sai lầm thông dụng. Giải pháp lý tưởng là sử dụng token cấp theo chuẩn của OAuth/OAuth2 [2]. Đối với quản lý truy nhập, sai lầm thường thấy là sử dụng luật truy nhập đã lập trình cứng trong mã nguồn phía client và server. Cách tiếp cận tốt nhất hiện nay là sử dụng tiêu chuẩn XACML [3]. Cách tiếp cận này không dùng mạch logic lập trình sẵn mà đưa vào chính sách ra quyết định cho phép truy nhập. Ưu điểm của cách này là:

-Đưa ra quyết định phù hợp hơn.

-Dựa trên bối cảnh cụ thể như: vị trí, hoặc mạng nào đang được sử dụng, hoặc thời gian.

-Có thể phân tích và thẩm định yêu cầu truy nhập.

-Có thể cập nhật, thay đổi chính sách truy nhập mà không cần lập trình lại hay chỉnh sửa thiết bị.

ThS. Nguyễn Khánh Tiềm

(còn nữa)