Tải bản đầy đủ (.pdf) (64 trang)

Nghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mở (Luận văn thạc sĩ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.28 MB, 64 trang )

i

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu riêng của tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai
công bố trong bất kỳ công trình nào khác.

Học viên

Nguyễn Duy Thành


ii

LỜI CẢM ƠN
Trước tiên, tôi xin gửi lời cảm ơn sâu sắc nhất đến thầy giáo PGS. TS. Hà
Hải Nam - Phó viện trưởng Viện Khoa học Kỹ thuật Bưu điện. Người đã tận tình
hướng dẫn chỉ bảo tôi trong suốt quá trình thực hiện khóa luận. Tôi cũng đồng thời
cảm ơn các thầy cô Khoa Công nghệ Thông tin I – Học viện Công nghệ Bưu chính
Viễn thông đã truyền đạt những kiến thức bổ ích. Tôi cũng xin cảm ơn các thầy cô
Khoa Đào tạo Sau Đại học đã giúp đỡ trong quá trình tôi làm luận văn.
Tôi xin chân thành cảm ơn gia đình tôi đã giúp đỡ để tôi có thời gian hoàn
thành khóa luận. Cuối cùng, tôi xin chân thành cảm ơn các anh chị, bạn bè và các
bạn sinh viên đã giúp đỡ tôi trong quá trình thu thập và xử lý dữ liệu.
Hà Nội, ngày 09 tháng 11 năm 2017
Học viên

Nguyễn Duy Thành


iii



MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ............................................................................................................ ii
MỤC LỤC ................................................................................................................ iii
DANH MỤC CÁC TỪ VIẾT TẮT ........................................................................... v
DANH SÁCH BẢNG ............................................................................................... vi
DANH SÁCH CÁC HÌNH ...................................................................................... vii
MỞ ĐẦU ................................................................................................................... 1
CHƯƠNG 1: GIỚI THIỆU VẤN ĐỀ NGHIÊN CỨU .............................................. 2
1.1 Giới thiệu hệ thống nền IoT (IoT Platform) ................................................ 2
1.1.1 Giới thiệu về IoT ..................................................................................... 2
1.1.2 Giới thiệu hệ thống nền IoT .................................................................... 5
1.2 Nghiên cứu tổng quan về yêu cầu đối với hệ thống nền IoT ...................... 6
1.2.1 Quản lý thiết bị ........................................................................................ 6
1.2.2 Khả năng kết nối hai chiều và linh hoạt .................................................. 7
1.2.3 Phân tích dữ liệu ...................................................................................... 7
1.2.4 Tính sẵn sàng, khả năng mở rộng, và độ tin cậy ..................................... 8
1.2.5 An ninh và bảo mật dữ liệu ..................................................................... 9
1.3 Nghiên cứu, khảo sát, đánh giá các hệ thống nền IoT trên thị trường ...... 10
1.3.1 Kaa......................................................................................................... 10
1.3.2 OpenIoT................................................................................................. 11
1.3.3 Nimbits .................................................................................................. 13
1.3.4 Eclipse IoT smart home ......................................................................... 14
1.3.5 OpenRemote (HIT)................................................................................ 16
1.3.6 FIWARE ................................................................................................ 17
1.4 Kết luận ..................................................................................................... 21
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG NỀN IoT .................................................... 22
2.1 Yêu cầu kiến trúc đối với hệ thống nền IoT .............................................. 22
2.2 Thiết kế kiến trúc hệ thống nền IoT .......................................................... 25

2.3 Một số vấn đề và giải pháp trong hiện thực hóa kiến trúc hệ thống IoT .. 27
2.4 Kết luận ..................................................................................................... 32
CHƯƠNG 3: THỬ NGHIỆM HỆ THỐNG NỀN CHO BÀI TOÁN GIÁM SÁT
MÔI TRƯỜNG TRỒNG TRỌT NÔNG NGHIỆP ................................................. 33
3.1 Mô tả bài toán tử nghiệm ............................................................................... 33
3.2 Thiết kế giải pháp hiện thực hóa hệ thống nền IoT trên nền tảng ảo hóa . 35
3.2.1 Eclipse Mostquitto ................................................................................. 37
3.2.2 Apache Kafka ........................................................................................ 39
3.2.3 Apache Spark ........................................................................................ 44
3.3 Cài đặt, cấu hình tùy biến các thành phần của hệ thống nền IoT .............. 46


iv

3.3.1 Cài đặt Mosquitto Server ....................................................................... 46
3.3.2 Cài đặt Kafka Server ............................................................................. 49
3.3.3 Cài đặt Spark ......................................................................................... 52
3.4 Kết luận ..................................................................................................... 55
KẾT LUẬN .............................................................................................................. 56
DANH MỤC TÀI LIỆU THAM KHẢO ................................................................. 57


v

DANH MỤC CÁC TỪ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt


IoT

Internet of Things

Internet kết nối vạn vật

API

Application Programming

Giao diện lập trình ứng dụng

Interface
RFID

Radio Frequency Identification

Nhận dạng đối tượng bằng
sóng vô tuyến

M2M

Machine to machine

Giao tiếp giữa máy với máy

RBAC

Role-based access control


Kiểm soát truy cập dựa vào vai
trò

SDK

Software development kit

Bộ phát triển phần mềm

MQTT

Message Queuing Telemetry

Truyền thông điệp hàng đợi từ

Transport

xa

SSO

Single sign-on

Đăng nhập một lần

MQTT

Message Queuing Telemetry
Transport


ICT

Information Communication

Công nghệ thông tin và truyền

Technology

thông


vi

DANH SÁCH BẢNG
Bảng 2.1: Cấu trúc yêu cầu của kiến trúc ................................................................ 22
Bảng 2.2: Yêu cầu về tích hợp ứng dụng IoT .......................................................... 23
Bảng 2.3: Yêu cầu về các dịch vụ kết nối dữ liệu.................................................... 23
Bảng 2.4: Yêu cầu về tích hợp dữ liệu IoT .............................................................. 23
Bảng 2.5: Yêu cầu về bảo mật ................................................................................. 24
Bảng 2.6: Yêu cầu về khả năng mở rộng và độ sẵn sàng ........................................ 24
Bảng 2.7: Yêu cầu về khả năng thích ứng, độ linh hoạt và linh động ..................... 25


vii

DANH SÁCH CÁC HÌNH
Hình 1.1 Các thiết bị được kết nối Internet và sự phát triển trong tương lai ............. 3
Hình 1.2 Chiều hướng mới được giới thiệu trong Internet of Things ........................ 3
Hình 1.3 Kiến trúc IoT theo khuyến nghị ITU-T Y.2060 .......................................... 4

Hình 1.4 Platform của Kaa....................................................................................... 10
Hình 1.5 Platform của OpenIoT............................................................................... 12
Hình 1.6 Platform của Nimbits ................................................................................ 14
Hình 1.7 Platform của Eclipse Smart Home ............................................................ 15
Hình 1.8 Platform của OpenRemote ........................................................................ 17
Hình 1.9 Platform của FIWARE .............................................................................. 19
Hình 2.1 Kiến trúc tham chiếu IoT với hạ tầng dịch vụ IoT.................................... 26
Hình 2.2 Mô hình giải pháp cho thu thập và xử lý dữ liệu tin cậy. ......................... 28
Hình 2.3 Mô hình hoạt động hệ thống DMS. .......................................................... 28
Hình 2.4 Kiến trúc hệ thống RBPS. ......................................................................... 29
Hình 2.5 Mô hình triển khai DCS với DMS ............................................................ 30
Hình 3.1 Mô hình tổng quan hệ thống thử nghiệm .................................................. 35
Hình 3.2 Mô hình triển khai hệ thống nền IoT ........................................................ 36
Hình 3.3 Mô hình Publish/Subcribe trong giao thức MQTT ................................... 38
Hình 3.4 Mô hình kết nối của MQTT sử dụng Bridge ........................................... 39
Hình 3.5 Mô hình đọc/ghi dữ liệu vào một topic của Kafka ................................... 41
Hình 3.6 Mô hình Partition trong Kafka .................................................................. 42
Hình 3.7 Mô hình Apache Kafka kết nối tới nguồn là MQTT server...................... 43
Hình 3.8 Thành phần của Apache Spark ................................................................. 44
Hình 3.9 Mô hình tổng quan của Spark Streaming .................................................. 45
Hình 3.10 Mô hình xử lý luồng dữ liệu của Spark Streaming ................................. 45
Hình 3.11 Mô hình của một Dstream....................................................................... 46
Hình 3.12 Cách xử lí dữ liệu trên Dstream .............................................................. 46


1

MỞ ĐẦU
Lý do chọn đề tài:
Hệ thống nền IoT (IoT Platform) là một thành phần cốt lõi trong kiến trúc

tổng thể IoT. Hệ thống nền IoT cung cấp các công cụ phát triển các sản phẩm, ứng
dụng IoT một cách thuận tiện và nhanh chóng. Hệ thống nền IoT đóng vai trò kết
nối các thiết bị, cảm biến, IoT gateway và cho phép chúng trao đổi dữ liệu với nhau
một cách an toàn theo thời gian thực; quản lý số lượng lớn các thiết bị kết nối; thu
thập và phân tích dữ liệu; thiết lập khả năng liên động giữa các thiết bị; tạo các dịch
vụ đám mây cho các ứng dụng IoT… Việc nghiên cứu, lựa chọn, làm chủ giải pháp
mã nguồn mở cho hệ thống nền IoT đóng vai trò sống còn trong xây dựng, triển
khai các ứng dụng IoT.
Đề tài tập trung nghiên cứu xây dựng một hệ thống nền IoT dựa trên các giải
pháp mã nguồn mở, với kết quả là hệ thống nền IoT được triển khai thử nghiệm để
xây dựng một ứng dụng IoT
Mục tiêu nghiên cứu:
Xây dựng và làm chủ trong triển khai, tùy biến và phát triển mở rộng một hệ
thống nền IoT dựa trên mã nguồn mở.
Áp dụng hệ thống nền xây dựng được với bài toán thử nghiệm cụ thể.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Một số hệ thống nền IoT mã nguồn mở điển hình.
- Phạm vi nghiên cứu: Nghiên cứu xây dựng hệ thống nền IoT và ứng dụng
với bài toán thử nghiệm “Giám sát môi trường trồng trọt nông nghiệp”.
Phương pháp nghiên cứu
Phương pháp nghiên cứu lý thuyết với thực nghiệm và phân tích, đánh giá
kết quả.


2

CHƯƠNG 1: GIỚI THIỆU VẤN ĐỀ NGHIÊN CỨU
1.1 Giới thiệu hệ thống nền IoT (IoT Platform)
1.1.1 Giới thiệu về IoT
Khái niệm IoT

IoT – Internet of Things là một cụm từ thường xuyên bắt gặp trong cuộc
sống hiện nay và được các chuyên gia đánh giá là nó sẽ bùng nổ trong thời gian tới
đây với sự gia tăng về số lượng thiết bị cũng như các ứng dụng IoT áp dụng cho đời
sống hàng ngày. Vì vậy chúng ta có thể thấy rằng IoT chính là một xu thế của công
nghệ trong cuộc sống hiện đại.
Những ý tưởng ban đầu về Internet of Things (IoT) đã xuất hiện ngay từ thời
kỳ sơ khai của Internet, khi các nhà phát minh mong muốn kết nối tất cả mọi thứ
qua một mạng lưới đồng nhất để có thể điều khiển chúng để phục vụ cho mục đích
của con người. Trong các tư liệu về IoT, người ta thường nhắc đến một chiếc máy
bán nước giải khát tự động tại trường Đại học Carnegie Melon (Mỹ) vào đầu những
năm 1980 như là một thiết bị đầu tiên mở màn cho xu hướng này. Chiếc máy được
lập trình để có thể kết nối với người điều khiển qua Internet, nhằm kiểm tra tình
trạng của máy và bổ sung nước khi cần thiết mà không cần có sự tiếp xúc kiểm tra
trực tiếp. IoT là thuật ngữ dùng để chỉ các đối tượng có thể được nhận biết cũng
như chỉ sự tồn tại của chúng trong một kiến trúc mang tính kết nối. Cụm từ này
được đưa ra bởi Kevin Ashton vào năm 1999. Ông là một nhà khoa học sáng lập ra
trung tâm Auto-ID ở Đại học MIT, nơi thiết lập các quy chuẩn toàn cầu cho RFID
(phương thức giao tiếp không dây dùng sóng radio) cũng như một số loại cảm biến
khác. IoT sau đó cũng được dùng nhiều trong các ấn phẩm đến từ các hãng và nhà
phân tích.


3

Hình 1.1 Các thiết bị được kết nối Internet và sự phát triển trong tương lai

Hầu hết các tài liệu nghiên cứu đều xem IoT bao gồm các đối tượng thông
minh được liên kết truyền thông với nhau. Khuyến nghị ITU-T Y.2060 mở rộng
khái niệm này, bao gồm các thứ ảo. ITU Y.2060 đặc tả IoT bằng cách bổ sung thêm
chiều “truyền thông với bất kỳ thứ nào” vào các công nghệ thông tin và truyền

thông đã khả dụng cung cấp truyền thông “Ở bất kỳ thời điểm nào” và “bất kỳ địa
điểm nào”

Hình 1.2 Chiều hướng mới được giới thiệu trong Internet of Things


4

Như vậy có thể hiểu Internet of Things là tất cả mọi thứ được kết nối với
nhau qua mạng Internet, người dùng có thể kiểm soát mọi đồ vật của mình qua
mạng mà chỉ bằng một chiếc smartwatch nhỏ bé trên tay. Gần đây, Internet of
Things còn bao gồm cả những giao tiếp kiểu máy với máy (M2M), giúp hạn chế sự
tác động của con người trong sản xuất năng lượng hay các ngành công nghiệp nặng.
Viễn cảnh này đã dần trở thành hiện thực trên thực tế, với sự phát triển của nhà
thông minh, TV thông minh, tủ lạnh thông minh,… và cũng không thể kể tới sự mở
rộng không gian địa chỉ từ IPv4 lên IPv6 như hiện nay.
Kiến trúc tổng quát của IoT
Hình 3 mô tả kiến trúc IoT theo ITU-T Y.2060, bao gồm bốn lớp cũng như
các khả năng quản lý và các khả năng bảo mật áp dụng qua các lớp. Như ở trên
chúng ta đã mô tả lớp thiết bị. Theo thuật ngữ chức năng truyền thông, lớp thiết bị
bao gồm các lớp vật lý và liên kết dữ liệu OSI

Hình 1.3 Kiến trúc IoT theo khuyến nghị ITU-T Y.2060


5

-

Lớp mạng: thực hiện hai chức năng cơ bản. Các khả năng kết nối mạng đề cập

đến việc truyền tải dịch vụ IoT và thông tin cụ thể ứng dụng cũng như thông tin
quản lý và điều khiển liên quan đến IoT. Về cơ bản, các khả năng này tương ứng
với các khả năng của mạng OSI và các lớp truyền tải.

-

Lớp hỗ trợ dịch vụ và ứng dụng: cung cấp các khả năng mà ứng dụng sử dụng.
Rất nhiều các ứng dụng khác nhau có thể sử dụng các khả năng hỗ trợ tổng quát.
Các ví dụ bao gồm các khả năng xử lý dữ liệu phổ biến và các khả năng quản lý
cơ sở dữ liệu. Các khả năng hỗ trợ cụ thể là các khả năng phục vụ cho các yêu
cầu của một tập con các ứng dụng IoT cụ thể.

-

Lớp ứng dụng: Bao gồm tất cả các ứng dụng tương tác với các thiết bị IoT

-

Lớp các khả năng quản lý: Bao gồm các chức năng quản lý định hướng truyền
thống như lỗi, cấu hình, tính toán và quản lý chất lượng.
Lớp các khả năng bảo mật bao gồm các khả năng bảo mật tổng quát độc lập

với các ứng dụng. ITU-T Y.2060 đưa ra các ví dụ sau đây về khả năng bảo mật tổng
quát:
-

Lớp ứng dụng: Cấp phép, xác thực, bảo vệ toàn vẹn và tin cậy dữ liệu ứng dụng bảo
vệ tính riêng tư, kiểm toán bảo mật và chống lại virus.

-


Lớp mạng: Cấp phép, xác thực, bảo vệ tin cậy dữ liệu người dùng và dữ liệu báo
hiệu, và bảo vệ toàn vẹn báo hiệu.

-

Lớp thiết bị: Xác thực, cấp phép, hợp lệ hoá toàn vẹn thiết bị, điều khiển truy nhập,
tin cậy dữ liệu và bảo vệ toàn vẹn
Các khả năng bảo mật liên quan đến các yêu cầu ứng dụng cụ thể như các yêu cầu
bảo mật trả tiền qua di động…

1.1.2 Giới thiệu hệ thống nền IoT
Hệ thống nền IoT (IoT Platform) là một thành phần cốt lõi trong kiến trúc
tổng thể IoT. Hệ thống nền IoT cung cấp công cụ phát triển sản phẩm, ứng dụng
IoT một cách thuận tiện, nhanh chóng và đáp ứng các yêu cầu đối với một hệ thống
nền IoT cần phải có. Hệ thống nền IoT đóng vai trò kết nối với các thiết bị, cảm
biến, IoT Gateway và cho phép chúng trao đổi dữ liệu với nhau một cách an toàn


6

theo thời gian thực, quản lý số lượng lớn các thiết bị kết nối, thu thập và phân tích
dữ liệu, tạo các ứng dụng đám mây cho các ứng dụng IoT.
Thông qua bảng hiện thị trực quan (Dashboards), các API, các công cụ dữ
liệu và các thuật toán, một nền tảng (Platform) cho phép các thành phần và các
vùng mạng lưới nghiệp vụ để kết nối, theo dõi, và giao tiếp với nhau với tốc độ cao
hơn và linh hoạt hơn mà chúng ta chưa từng được thấy. Dữ liệu từ một hệ sinh thái
ngày càng được mở rộng có thể được thu thập, sắp xếp và khai thác chúng hoàn
toàn trên kênh trực tuyến. Một nền tảng cũng cho phép khả năng ưu tiên dữ liệu,
một tính tăng quan trọng tại một thời điểm mà các máy, cảm biến và các đối tượng

khác bắt đầu đưa ra quá nhiều thông tin.

1.2 Nghiên cứu tổng quan về yêu cầu đối với hệ thống nền IoT
Đối với IoT Platform người ta quan tâm đến độ tin cậy nhiều hơn chứ không
phải là sự đổi mới, đó là sự tiêu chí khi phát triển phần cứng và phần mềm đối với
hệ thống nền IoT. Sự khác biệt đó là các dịch vụ điều khiển từ xa, các màn hình
thông minh và các tương tác M2M (Machine to machine) là trọng tâm của giải pháp
IoT. Bằng sự tập trung vào những vấn đề đó, các doanh nghiệp có thể xây dựng
được các hệ thống IoT của họ được nhanh hơn, hiệu quả hơn và chi phí ít hơn cho
nghiên cứu và các nguồn đầu tư.
Nhưng để đạt được điều đó, nền tảng này phải được đưa vào trong nhiều mặt
trận. Các chỉ số của một nền tảng IoT công nghiệp chủ yếu được xác định bởi mức
độ linh hoạt, số lượng các chức năng, tính ổn định và sự an toàn trong nó. Các thành
phần thiết yếu của một nền tảng IoT bao gồm như sau:
1.2.1 Quản lý thiết bị
Các thiết bị không phải lúc nào cũng hoạt động trong một tình trạng ổn định.
Chúng cần được liên tục quản lý, cấu hình lại, cập nhật cũng như điểu khiển cài đặt.
Các thiết bị Edge đóng vai trò như là một thành phần biên dịch và cổng dữ liệu giữa
các mạng, và nó tạo ra khá nhiều vấn đề khi vận hành và chúng cần được sửa chữa
theo cách thủ công. Vì vậy điều khiển truy cập từ xa thông qua nền tảng IoT là rất
cần thiết cho yêu cầu đối với một hệ thống IoT.


7

Kiến trúc quản lý thiết bị phải có 2 chiều (chiều nhận thông tin từ các thiết bị
IoT và gửi các thông điệp điều khiển đến các thiết bị) và linh hoạt để cho phép tất
cả các thành phần trong mạng được kết nối với nhau, giám sát và có khả năng giao
tiếp. Trong trường hợp bị lỗi thời, hư hỏng hoặc vi phạm an ninh thì hệ thống quản
lý của platform có thể loại bỏ hoặc đưa thiết bị đó vào danh sách cần phải xem xét.

Bởi vì có rất nhiều các thiết bị cần được theo dõi cũng như được kết nối với
hệ thống nền IoT. Việc xây dựng thủ công cho từng thiết bị để chúng có thể kết nối
được với nhau là một điều không thực tế, vì vậy việc tinh giản trong quản lý tất cả
các thiết bị là một yếu tố rất quan trọng trong hệ thống IoT.
1.2.2 Khả năng kết nối hai chiều và linh hoạt
Ngày nay, ngay cả khi IoT trở thành hiện thực cho nhiều ngành công nghiệp,
nó thường được xem như một khả năng đơn thuần là thu thập dữ liệu. Nhưng cách
suy nghĩ này đã làm cho nền tảng này không được chú trọng cho các doanh nghiệp
trong thế kỷ 20. Kết nối hai chiều giúp kiểm soát tốt hơn các sản phẩm, phân phối
các bản cập nhật liên tục, và đưa ra phản hồi nhanh hơn cho các vấn đề cần phải xử
lý.
Về góc độ người dùng thông thường, việc kết nối 2 chiều này là một điều tất
yếu cần phải có. Những chiếc điện thoại thông minh sẽ không được đánh giá cao
khi nó không thể nhận được bản cập nhật của hệ thống mà không bất tiện cho người
dùng. Khi áp dụng nguyên tắc này vào góc độ công nghiệp, chúng giúp giảm chi phí
vận hành, bảo trì rất nhiều. Chúng ta thử hình dung nếu như việc một công ty sản
xuất ra hàng loạt những phương tiện bị hỏng một chi tiết nào đó, điều gì sẽ xảy ra
nếu nó bị tương tự trong phần mềm. Một nền tảng có khả năng kết nối 2 chiều sẽ có
thể giải quyết vấn đề thông qua bản cập nhật phần mềm, và sẽ tiết kiệm được rất
nhiều chi phí.
1.2.3 Phân tích dữ liệu
Dữ liệu sau khi được thu thập từ các thiết bị IoT, thì chúng cần được phân
tích cũng như sàng lọc để đem lại những thứ giá trị cao trong việc quản lý cũng như
giải quyết các vấn đề cấp bách cho các thành phần trong hệ thống IoT. Dữ liệu được


8

coi là “huyết mạch” của hệ thống IoT. Một nền tảng IoT cần cung cấp đầy đủ các
phương tiện phân tích, từ đó đưa ra các giá trị và giữ cho doanh nghiệp không bị lụt

với rất nhiều những dòng thông tin và không biết phải xử lý chúng như thế nào để
đưa ra giải pháp cho từng vấn đề. Vì vậy việc phân tích dữ liệu, chuẩn đoán, ảo hóa
dữ liệu bằng những biểu đồ trên các Dashboard là yêu cầu cần thiết đối với hệ thống
nền IoT. Mục tiêu là để nâng cao khả năng chuẩn đoán của hệ thống, tinh lọc các
chức năng và giải quyết vấn đề, đồng thời có khả năng đáp ứng thời gian thực với
các tình huống khẩn cấp.
Không phải tất cả các dữ liệu nhận được từ các thiết bị đều cần được xử lý
theo thời gian thực. Một giải pháp IoT cần phải tạo ra được sự tách biệt rõ ràng giữa
những luồng dữ liệu nào cần được xử lý thời gian thực và luồng dữ liệu nào sẽ được
xử lý và có giá trị trong thời gian dài sau đó. Việc tách biệt này giúp làm rõ ra
những loại dữ liệu với những mục đích riêng, từ đó giúp tối ưu được khả năng xử lý
dữ liệu của hệ thống IoT.
1.2.4 Tính sẵn sàng, khả năng mở rộng, và độ tin cậy
Đó là những vấn đề luôn được đặt ra với bất kỳ giải pháp công nghệ nào.
Thông qua việc thiếu tầm nhìn và không xem xét các kịch bản có thể xảy ra đối với
hệ thống. Hệ thống nền phải được thiết kế theo cách tăng cường khả năng thích
ứng, độ linh hoạt và linh động của môi trường công nghệ nhằm cung cấp khả năng
tái cấu hình và tái sắp xếp để thích ứng những thay đổi trong các mục tiêu và
phương hướng nghiệp vụ một cách hiệu quả về chi phí và kịp thời.
Các công nghệ được triển khai cần được rà soát cẩn thận nhằm xác định các
yếu tố có thể ảnh hưởng đến khả năng thích ứng, tính sẵn sàng, khả năng mở rộng
và độ tin cậy của chúng. Các công nghệ và giải pháp về phân tán và mở rộng luôn
sẵn sàng về các khía cạnh sau:
-

Lưu trữ dữ liệu

-

Năng lực tính toán

Mức độ sẵn sàng hoạt động liên tục 24/7 với các giải pháp sao lưu

nóng/nguội nhằm đảm bảo thời gian "chết" của hệ thống ở mức tối thiểu.


9

1.2.5 An ninh và bảo mật dữ liệu
Đây là một vấn đề thách thức lớn nhất đối với một hệ thống nền IoT. Hệ
thống nền IoT kết nối tới hàng triệu các thiết bị cũng như các IoT Gateway, vì vậy
việc an toàn cũng như bảo mật dữ liệu của các kết nối đó được đặt lên hàng đầu.
Đối với mỗi lần mở rộng mạng lưới của hệ thống xuống đến các thiết bị cảm biến
hoặc thiết bị IP đều có khả năng sẽ có một sự vi phạm bảo mật mới có thể có. Một
nền tảng IoT phải được hỗ trợ bảo mật xuyên suốt tại nhiều điểm trên các thành
phần phần cứng và phần mềm. Các IoT Gateway và các thiết bị Edge cần phải tinh
vi và linh hoạt, đủ để thích ứng với các phương pháp bảo mật mới. Lớp thiết bị nên
hỗ trợ mức cao của mã hóa để gửi cũng như nhận thông điệp. Hệ thống nền cần
phải cung cấp các phương thức xác thực khi kết nối với các Gateway cũng như các
thiết bị khác. Có thể sử dụng các cơ chế đã được kiểm chứng như TLS/SSL để mã
hóa các thông tin trong truyền thông tin.
Người dùng trái phép truy cập vào một hệ thống IoT có thể gây ra sự nguy
hại cho một tổ chức. Mỗi người dùng tham gia giải pháp IoT phải được chứng thực
bằng cách sử dụng cơ chế xác thực đa yếu tố. Nền tảng IoT nên hỗ trợ chứng thực
và ủy quyền được tích hợp chặt chẽ với một nền tảng nhận dạng hiện có như một
thư mục của công ty. Kiểm soát truy cập dựa vào vai trò (RBAC) nên được sử dụng
để thực hiện ủy quyền ở cấp độ nhóm. Nền tảng IoT phải hỗ trợ một hệ thống dựa
trên chính sách toàn diện xác định sự cho phép của các thiết bị và người dùng. Mỗi
chính sách xác định rõ các quyền của mỗi thiết bị, người dùng, vai trò và ứng dụng.
Ví dụ, chỉ có các nhà hoạch định chính sách cấp cao của tổ chức mới có quyền truy
cập vào các báo cáo tình báo kinh doanh trong khi các giám sát viên sàn chỉ có thể

kiểm soát các thiết bị được triển khai trên sàn của mình.


10

1.3 Nghiên cứu, khảo sát, đánh giá các hệ thống nền IoT trên thị trường
1.3.1 Kaa
Kaa là platform IoT để xây dựng các giải pháp IoT toàn diện, các ứng dụng
được kết nối và các sản phẩm thông minh. Platform Kaa cung cấp một công cụ giàu
tính mã nguồn mở để phát triểu sản phẩm IoT, do đó giảm chi phí, rủi ro và thời
gian đưa ra thị trường.

Hình 1.4 Platform của Kaa

Kaa cho phép quản lý dữ liệu cho các đối tượng được kết nối và hạ tầng
back-end bằng cách cung cấp server và các phần từ SDK đầu cuối. Các SDK được
nhúng vào thiết bị được kết nối và thực hiện trao đổi dữ liệu song hướng với server.
Các SDK của Kaa có khả năng tích hợp với hầu hết các kiểu thiết bị hoặc microchip
được kết nối.


11

Kaa server cung cấp tất cả các chứng năng back-end cần thiết để hoạt động
trên quy mô rộng và trong các giải pháp IoT quan trọng. Nó điều khiển tất cả các
truyền thông giữa các đối tượng được kết nối, bao gồm tính nhất quán và bảo mật
dữ liệu, liên kết hoạt động của thiết bị và kết nối không bị thất bại.
Kaa server có tính năng gồm các giao diện được thiết lập tốt cho việc tích
hợp với quản lý dữ liệu và các hệ thống phân tích, cũng như các dịch vụ sản phẩm
cụ thể. Nó đóng vai trò là nền tảng cho hệ thống back-end, do đó cho phép tự do mở

rộng và tuỳ biến để đáp ứng các yêu cầu cụ thể của sản phẩm.
Kaa hỗ trợ các kết nối mạng như Wifi, Ethernet, Zigbee, MQTT, CoAP,
XMPP, TCP để đơn giản hoá việc tạo ra các ứng dụng truyền thông với các thiết bị.
Kaa chủ yếu tập trung vào việc thu thập dữ liệu và xử lý sự kiện từ các điểm đầu
cuối thiết bị và làm cho điều này khả dụng cho nhiều ứng dụng. API của Kaa chủ
yếu là RESTful, cung cấp tập đa dạng thư viện client để kết nối các thiết bị IoT. Sự
thực hiện bao gồm các SDK client cho Java, C, C++ và Objective C. Để làm việc
với các thiết bị sử dụng Bluetooth hoặc Zigbee, Kaa yêu cầu gateway để kết nối các
thiết bị này, được xây dựng dựa trên các SDK.
Kaa là platform mã nguồn mở, việc sử dụng platform là hoàn toàn miễn phí
và việc làm chủ yếu các phần từ platform là để dành cho người dùng đầu cuối. Hiện
nay cộng đồng thực hiện các dự án Kaa là lớn hơn 100+. Để tích hợp các thiết bị
IoT với nhau, platform cung cấp các thư viện gồm Intel Edison, beaglebone,
RasberryPi… Kaa hỗ trợ các hệ điều hành Android, iOS, Linux, Ubuntu, Snappy và
QNX
1.3.2 OpenIoT
Open IoT là một platform mã nguồn mở cho các ứng dụng IoT, cho phép kết
nối các thiết bị được kết nối Internet và các dịch vụ Web ngữ nghĩa thông qua một
giao diện người dùng thân thiện, làm việc qua môi trường điện toán đám mây hoặc
với một server cục bộ.
OpenIoT khả dụng như một Kit phát triển ảo, cung cấp giải pháp đám mây
toàn diện cho IoT, cho phép người sử dụng dễ dàng kích hoạt, vận hành và nhận


12

thông tin từ các đám mây cảm biến và kết nối thông tin này với các dịch vụ Web mà
không cần quan tâm đến các loại cảm biến khác nhau được sử dụng.

Hình 1.5 Platform của OpenIoT


Platform OpenIoT bao gồm các tính năng duy nhất như khả năng soạn các
dịch dụ IoT cơ bản và quan trọng trên nền ứng dụng hoặc đám mây. OpenIoT là nỗ
lực liên kết của cộng đồng mã nguồn mở hướng tới cho phép phát triển các ứng
dụng IoT thông minh trên quy mô rộng mở theo mô hình phân tán của điện toán
đám mây. Hạ tầng OpenIoT cung cấp các phương thức để:
-

Thu thập các xử lý dữ liệu từ hầu hết các cảm biến, bao gồm các thiết bị vật
lý, các thuật toán xử lý cảm biến, các thuật toán xử lý phương tiện xã hội.

-

Truyền tải dòng dữ liệu từ các cảm biến khác nhau với hạ tầng điện toán
đám mây.


13

-

Khám phá/truy vấn động các cảm biến và dữ liệu của chúng.

-

Soạn và phân phát các dịch vụ IoT bao gồm dữ liệu từ nhiều cảm biến.

-

Ảo hoá dữ liệu IoT dựa trên các mashup phù hợp (các biểu đồ, đồ thị, bản

đồ…).

-

Tối ưu hoá các tài nguyên trong OpenIoT middleware và hạ tầng điện toán
đám mây.
OpenIoT cung cấp các API tiểu chuẩn, mã nguồn mở, OpenIoT là một dự án

mã nguồn mở toàn diện, tất cả các mã nguồn mở có thể tải cho người phát triển và
người sử dụng đầu cuối có thể kiểm tra và sử dụng mở OpenIoT platform. OpenIoT
cũng cung cấp khả năng phân tích ngữ nghĩa dữ liệu cảm biến.
1.3.3 Nimbits
Nimbits là một platform mã nguồn mở được xây dựng dựa trên kiến trúc
điện toán đám mây PaaS, có thể tài về từ Raspberry Pi, Web server, Amazone EC2,
hoặc Google App Engine. Platform được sử dụng để phát triển các giải pháp phần
cứng và phần mềm có thể kết nối tới đám mây hoặc tới nhau và cho phép logging
và nhận được lượng lớn dữ liệu từ các thiết bị vật lý, khởi sự các sự kiện hoặc các
cảnh báo hoặc thực hiện các phân tích phức tạp. Nimbits là một platform để kết nối
con người, các cảm biến và phần mềm tới đám mây và với nhau. Nó dựa trên việ
logging dữ liệu và công nghệ dựa trên các quy tắc. Nó giải quyết sự phức tạp của
đám mây biên trong IoT bằng cách phát triển một platform được xây dựng dựa trên
hệ thống nhúng nội bộ và sau đó lọc tạp âm, chạy engine quy tắc và sau đó đẩy dữ
liệu rất quan trọng lên đám mây. Nó trước tiên ghi lại và xử lý các thông tin không
gian và dữ liệu được gắn nhãn thời gian và sau đó cung cấp quy tắc hình thành
thôngtin đó. Các quy tắc có thể là các cảnh báo thư điện tử, đẩy thông báo, các
thôgns kê hoặc tính toán bất kỳ. Đám mây công cộng Nimbits là một ví dụ của
Nimbits server.


14


Hình 1.6 Platform của Nimbits

Các đặc tính chính của Nimbits platform gồm.
-

Tải các Nimbits server on chips, các server trên đám mây.

-

Là một platform mã nguồn mở.

-

Làm thuận tiện việc khởi sự sự kiện và các cảnh báo.

-

Xử lý dữ liệu được gắn nhãn không gian và thời gian.

-

Được xây dựng cung cấp cho Google App Engine và các hệ thống Linux để
phát triển.

-

Tương thích hầu hết các J2EE server

1.3.4 Eclipse IoT smart home

Eclipse Smart Home (ESH) là một platform mã nguồn mở, bao gồm mã
chương trình và các cấu trúc dữ liệu cần thiết trong server tự động ngôi nhà. ESH
được phát triển bởi cộng đồng Eclipse Java. ESH dựa trên Java CSGI và chạy trên
các thực thi Java có khả năng như vậy. Nó tập trung chủ yếu vào các môi trường


15

đồng nhất, tức là các giải pháp liên quan đến việc tích hợp các giao thức và các tiêu
chuẩn khác nhau. Mục đích của ESH là cung cấp truy nhập đồng nhất tới các thiết
bị và thông tin và làm thuận tiện các thể loại tương tác khác nhau với chúng. Các
đặc tính chính của ESH bao gồm engine quy tắc dựa trên Xtext/ Xbase, các mô tả
giao diện người sử dụng khai báo và một giao diện REST API mở rộng.
Các nhà phát triển có thể dễ dàng xây dựng giải pháp ngôi nhà thông minh
riêng lẻ bằng cách bổ sung các mở rộng của chính mình vào framework này – kết
quả có thể được triển khai trên các thiết bị nhúng, có thể chạy JVM như Raspberry
Pi. Kiến trúc giao thức đầu đủ là Java/OSGI và được xây dựng trên nền Equinox,
EMF và Jetty.

Hình 1.7 Platform của Eclipse Smart Home

Eclipse Smart Home là một framework để xây dựng các giải pháp thông
minh với việc tích hợp các giao thức hoặc các tiêu chuẩn khác nhau. ESH được sử
dụng như là cơ sở của openHAB và QIVICON bởi Deutsche Telecom.


16

ESH là một platform mã nguồn mở với hơn 2000 công cụ, ứng dụng, dự án… khả
dụng trên thị trường dưới các kiểu giấy phép khác nhau.

1.3.5 OpenRemote (HIT)
OpenRemote là một platform tích hợp phần mềm mã nguồn mở cho tự động
hoá toà nhà thương mại và dân cư. Platform OpenRemote không thể nhận biết giao
thức tự động, hoạt động trên phần cứng có sẵn và khả dụng miễn phí dưới giấy phép
mã nguồn mở. Kiến trúc của OpenRemote cho phép tự trị đầy đủ và các toà nhà
thông minh độc lập với người sử dụng. Các giao diện điều khiển người sử dụng đầu
cuối khả dụng cho các thiết bị iOS và Android, và cho các thiết bị có các trình duyệt
web hiện đại. Việc thiết kế giao diện người sử dụng, quản lý tích hợp và cấu hình có
thể điều khiển từ xa bởi các công cụ thiết kế dựa trên đám mây OpenRemote.
-

Tích hợp: AMX, KNX, Lutron, Z-Wave, 1-Wire, EnOcean, xPL, Insteaon, X10,
hồng ngoại, Russound, GlobalCache, IRTrans, XBMC, VLC, paStamps, Denon
AVR, FreeBox, MythTV…

-

Thiết kế: Tuỳ biến các giao diện điều khiển cho mỗi thiết bị, cá nhân hoá các
giao diện người sử dụng cho mỗi người sử dụng.

-

Điều khiển: Điều khiển các panel cho các thiết bị Android và iOS, các trình
duyệt web di động, cá máy tính để bàn.

-

Tự động hoá: Các toà nhà thông minh với các quy tắc, các script và các sự kiện
được tự động hoá.


-

Quản lý: Cập nhật từ xa, thay đổi giao diện người sử dụng, chuẩn hoá hệ thống,
các công cụ nạp, phát hiện thiết bị.

-

Cross-platform: Cài đặt trên Windows, Linux, Mac, Raspberry Pi, Alix,
Synology, ReadyNAS, QNAP…


17

Hình 1.8 Platform của OpenRemote

OpenRemote là dự án mã nguồn mở với mục tiêu là khắc phục các thách
thức của việc tích hợp giữa nhiều giao thức và các giải pháp khác nhau khả dụng
cho tự động hoá ngôi nhà, và cung cấp các công cụ ảo hoá. Các đặc tính chính của
OpenRemote là:
-

Tích hợp nhiều giao thức khác nhau.

-

Tuỳ biến các giải pháp để phù hợp với nhu cầu.

-

Từ các tài khoản đơn lẻ đến các giải pháp có thương hiệu đầy đủ.


-

Các công cụ thiết kế dựa trên đám mây.
Sử dụng các công cụ thiết kế dựa trên đám mây của OpenRemote để phát

triển các giải pháp tuỳ biến toàn diện, nâng cấp được thực hiện hợp lý.
1.3.6 FIWARE
FIWARE là một platform mã nguồn mở, cung cấp tập các công cụ cho các
chức năng khác nhau, là một hệ thống tiên tiến để tạo ra các ứng dụng mới và các
dịch vụ Internet.


18

Platform cung cấp các khả năng đám mây dựa trên OpenStack và tập các
công cụ và các thư viện được gọi là Generic Enablers (Ges) với các đặc tả và giao
diện công cộng và nguồn mở. Các FIWARE GE được phân phối ở các chương khác
nhau và cung cấp các khả năng khác nhau. Ví dụ, chương Internet of Things cung
cấp các công cụ để kết nối cảm biến và các thiết bị khác, trong khi chương các ứng
dụng cung cấp các công cụ thông minh thương mại mạnh và để phát triển các giao
diện, chương các giao diện tiên tiến cho phép thực hiện các chức năng liên quan đến
thực tế ảo, thực tế gia tăng hoặc 3D.
FIWARE Lab là môi trường thí nghiệm nơi mà các nhà cung cấp công nghệ,
các nhà phát triển giải pháp và các nhà đầu tư và các nhà cung cấp dữ liệu có thể
mô tả các vấn đề, thiết kế và xây dựng các giải pháp trên platform và thí nghiệm
với chúng.
Khả năng cơ bản khác của kiến trúc FIWARE là quản lý ngữ cảnh. FIWARE
cung cấp cơ chế để tạo ra, thu thập, xuất bản hoặc truy vấn thông tin ngữ cảnh rộng
và sử dụng nó cho các ứng dụng để phản ứng tới ngữ cảnh của chúng. Đây là một

quá trình phức tạp, bởi vì thông tin này có thể đến từ các nguồn khác nhau: các hệ
thống, các người sử dụng các ứng dụng di động, các mạng cảm biến… Đó là
Context Broker, thông qua thực hiện REST của API OMA NGSI, cho phép tạo
dạng và truy nhập bất kể nguôn là gì.


×