Nghiên cứu xây dựng hệ thống nền IoT dựa trên mã nguồn mở (tt) - Pdf 47

1
MỞ ĐẦU

1
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

Hệ thống nền IoT (IoT Platform) là một thành phần cốt lõi

1.1.1. Giới thiệu về IoT

trong kiến trúc tổng thể IoT. Hệ thống nền IoT cung cấp các công cụ

Khái niệm IoT:

phát triển các sản phẩm, ứng dụng IoT một cách thuận tiện và nhanh

Những ý tưởng ban đầu về Internet of Things (IoT) đã xuất

chóng. Hệ thống nền IoT đóng vai trò kết nối các thiết bị, cảm biến,

hiện ngay từ thời kỳ sơ khai của Internet, khi các nhà phát minh

IoT gateway và cho phép chúng trao đổi dữ liệu với nhau một cách

mong muốn kết nối tất cả mọi thứ qua một mạng lưới đồng nhất để

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;

có thể điều khiển chúng để phục vụ cho mục đích của con người.


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 dung nghiên cứu và bố cục của đề tài:
- Phần Mở Đầu

nối. Cụm từ này được đưa ra bởi Kevin Ashton vào năm 1999
Như vậy có thể hiểu Internet of Things là tất cả mọi thứ được

- Chương 1: Giới thiệu vấn đề nghiên cứu

kết nối với nhau qua mạng Internet, người dùng có thể kiểm soát mọi

- Chương 2: Thiết kế hệ thống nền IoT

đồ vật của mình qua mạng mà chỉ bằng một chiếc smartwatch nhỏ bé

- Chương 3: Thử nghiệm hệ thống nền cho bài toán giám

trên tay. Gần đây, Internet of Things còn bao gồm cả những giao tiếp

sát môi trường trồng trọt nông nghiệp.
- Kết luận

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.



qua các lớp. Như ở trên chúng ta đã mô tả lớp thiết bị. Theo thuật

và linh hoạt để cho phép tất cả các thành phần trong mạng được kế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à

nối với nhau, giám sát và có khả năng giao tiếp. Trong trường hợp bị

liên kết dữ liệu OSI

lỗi thời, hư hỏng hoặc vi phạm an ninh thì hệ thống quản lý của

- Lớp mạng

platform có thể loại bỏ hoặc đưa thiết bị đó vào danh sách cần phải

- Lớp hỗ trợ dịch vụ và ứng dụng

xem xét.

- Lớp ứng dụng

1.2.2. Khả năng kết nối hai chiều linh hoạt

- Lớp các khả năng quản lý:

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

1.1.2. Giới thiệu hệ thống nền IoT

các kết nối đó được đặt lên hàng đầu. Các IoT Gateway và các thiết

cập nhật các trạng thái, cấu hình, cập nhật phần mềm.

bị Edge cần phải tinh vi và linh hoạt, đủ để thích ứng với các phương

1.2.3. Phân tích dữ liệu

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 để

Dữ liệu sau khi được thu thập từ các thiết bị IoT, thì chúng cần

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

được phân tích cũng như sàng lọc để đem lại những thứ giá trị cao

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

trong việc quản lý cũng như giải quyết các vấn đề cấp bách cho các

bị khác. Có thể sử dụng các cơ chế đã được kiểm chứng như

thành phần trong hệ thống IoT. Một nền tảng IoT cần cung cấp đầy

TLS/SSL để mã hóa các thông tin trong truyền thông tin.

đủ các phương tiện phân tích, từ đó đưa ra các giá trị. Mục tiêu là để

Mỗi người dùng tham gia giải pháp IoT phải được chứng thực


1.3.1. Kaa

1.2.4. Tính sẵn sàng, khả năng mở rộng và độ tin cậy

Kaa cho phép quản lý dữ liệu cho các đối tượng được kết nối

Đó là những vấn đề luôn được đặt ra với bất kỳ giải pháp công

và hạ tầng back-end bằng cách cung cấp server và các phần từ SDK

nghệ nào. Hệ thống nền phải được thiết kế theo cách tăng cường khả

đầu cuối. Các SDK được nhúng vào thiết bị được kết nối và thực hiện

năng thích ứng, độ linh hoạt và linh động của môi trường công nghệ

trao đổi dữ liệu song hướng với server. Các SDK của Kaa có khả

nhằm cung cấp khả năng tái cấu hình và tái sắp xếp để thích ứng

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

những thay đổi trong các mục tiêu và phương hướng nghiệp vụ một

nối

cách hiệu quả về chi phí và kịp thời.
Các công nghệ và giải pháp về phân tán và mở rộng luôn sẵn

Kaa server cung cấp tất cả các chức năng back-end cần thiết để


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

OpenIoT khả dụng như một Kit phát triển ảo, cung cấp giải

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

pháp đám mây toàn diện cho IoT, cho phép người sử dụng dễ dàng

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

kích hoạt, vận hành và nhận thông tin từ các đám mây cảm biến và

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

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

- Được xây dựng cung cấp cho Google App Engine và các hệ

đến các loại cảm biến khác nhau được sử dụng.
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.

thống Linux để phát triển.
- Tương thích hầu hết các J2EE server
1.3.4 Eclipse IoT


Nimbits là một platform mã nguồn mở được xây dựng dựa trên

nhúng, có thể chạy JVM như Raspberry Pi.

kiến trúc điện toán đám mây PaaS, có thể tài về từ Raspberry Pi, Web

Eclipse Smart Home là một framework để xây dựng các giải

server, Amazone EC2, hoặc Google App Engine. Platform được sử

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

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

khác nhau. ESH được sử dụng như là cơ sở của openHAB và

nối tới đám mây hoặc tới nhau và cho phép logging và nhận được

QIVICON bởi Deutsche Telecom.


8

9

ESH là một platform mã nguồn mở với hơn 2000 công cụ, ứng

- Sự thực hiện cụ thể API được thực hiện bởi Bộ cho phép


- Mỗi yêu cầu của HTTP trong một FIWARE RESTful API có
thể yêu cầu bao gồm các uỷ nhiệm xác thực cụ thể.

- Việc biể diễn tài nguyên được phát giữa client và server bằng
cách sử dụng giao thức HTTP 1.1, được định nghĩa bởi IETF RFC2616.
- Các FIWARE RESTful API có thể hỗ trợ XML hoặc JSON
như là định dạng biểu diễn cho các tham số yêu cầu và đáp ứng.


10
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG NỀN IoT

11
cùng nhau một cách hiệu quả và có khả năng mở rộng thông qua hỗ
trợ cơ chế tích hợp ứng dụng.

2.1. Yêu cầu kiến trúc đối với hệ thống nền IoT:

Các dịch vụ bảo mật: Thành phần này cung cấp các giải pháp

a. Yêu cầu về tích hợp ứng dụng IoT

nhận diện và bảo mật đối với việc chứng thực, cấp phép và quản lý

b. Yêu cầu về các dịch vụ kết nối dữ liệu

an toàn các ứng dụng và quy trình nghiệp vụ.

c. Yêu cầu về tích hợp dữ liệu IoT


Các dịch vụ chung: Các dịch vụ này là các dịch vụ tiện ích
thường được sử dụng trong chung cho các ứng dụng IoT
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
Thực tế khi hiện thực hóa hạ tầng dịch vụ IoT trong kiến trúc
đề xuất cho thấy một số khó khăn cơ bản: 1) đảm bảo thu thập dữ liệu
đồng thời từ số lượng lớn các thiết bị IoT một cách tin cậy; 2) xử lý
dữ liệu lớn cho bài toán đòi hỏi xử lý luồng dữ liệu chuỗi thời gian
theo thời gian thực; 3) cơ chế phát hiện lỗi và hồi phục đối với các
thành phần thu thập và xử lý dữ liệu IoT.
Hệ thống truyền thông điệp phân tán (Distributed Messaging
System - DMS) được thiết kế như là một hệ thống phân tán nhằm
đảm bảo khả năng mở rộng hoạt động với thông lượng lớn theo mô
hình publish/subscribe. Một giao thức phổ biến trong ứng dụng IoT
hoạt động theo mô hình publish/subscribe là MQTT. Hệ thống hỗ trợ
nhiều thành phần đăng kỹ và tự động cân bằng tải khi xay ra lỗi.
Trong hệ thống DMS, một luồng các thông điệp cùng loại được định
nghĩa là một chủ đề (topic) ở đó các thông điệp được xuất bản đến.
Một Publisher là một thực thể thực hiện xuất bản thông điệp đến một
chủ đề nào đó. Một Consumer có thể đăng ký một hoặc nhiều chủ đề
và sử dụng các thông điệp được xuất bản bằng cách lấy dữ liệu từ


12

13

phân cụm DMS. Một phân cụm DMS bao gồm nhiều thể hiện DMS
chạy song song.


Trong mô hình mô hình triển khai DCS với DMS này các
Producer và Consumer được hệ thống DCS gửi thông báo về sự xuất

Hệ thống xử lý dữ liệu lớn thời gian thực (Realtime Bigdata

hiện của một thể hiện DMS hoặc về sự cố gây lỗi của một thể hiện

Processing System– RBPS) thực hiện xử lý tức thời luồng dữ liệu lớn

DCS. Khi nhận được các thông báo từ hệ thống DCS, các Producer

từ các thiết bị IoT được thu nhận qua hệ thống DMS. Đối với ứng

và Consumer ra quyết định bắt đầu điều phối hoạt động đến một thể

dụng IoT, dữ liệu hướng luồng là một nhóm liên tục các bản ghi dữ

hiện DMS khác.

liệu được tạo từ các thiết bị IoT. Xử lý dữ liệu hướng luồng theo thời

Chương này trình bày về một hướng tiếp cận trong xây dựng

gian thực đóng vai trò quan trọng trong các ứng dụng như bản tin

và hiện thức hóa kiến trúc hệ thống IoT. Một số vấn đề và giải pháp

trực tiếp, hệ thống tư vấn thời gian thực hoặc các hệ thống chẩn đoán

trong hiện thực hóa kiến trúc IoT như vấn đề thu thập dữ liệu lớn và



14
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

15
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
Phần này chúng ta sẽ thiết kế giải pháp triển khai cụ của hệ
thống nền IoT, như đã trình bày ở trên hệ thống nền chúng ta sẽ xây

3.1. Mô tả bài toán thử nghiệm
Luận văn thử nghiệm kịch bản giám sát môi trường sinh
trưởng của cây trồng từ xa với 3 tham số giám sát cơ bản: nhiệt độ,

dựng sẽ có những thành phần sau:
- Sử dụng giao thức MQTT để giao tiếp với các thiết bị IoT
hoặc các IoT Gateway.

độ ẩm đất và ánh sáng. Đây là 3 tham số cơ bản ảnh hưởng đến quá

- Hệ thống truyền thông điệp phân tán.

trình sinh trưởng của cây trồng cả trong môi trường nuôi cấy mô

- Hệ thống điều phối phân tán.

trong nhà lẫn môi trường ngoài trời. Mục đích của thử nghiệm kịch

kí” theo dõi cho phép việc lấy thông điệp ra gần như tức thời ngay


16

17

khi dữ liệu đi vào hàng đợi. Kafka được thiết kế hỗ trợ tốt cho việc

nhiệm vụ đẩy dữ liệu vào một hoặc nhiều topic. Người dùng có thể

thu thập dữ liệu thời gian thực.

quyết định liệu những thông điệp (mỗi dòng của dữ liệu) nào sẽ cùng

Apache Kafka là hệ thống lưu trữ thông điệp được phát triển
tại LinkedIn. Kafka có những đặc điểm sau đây :
- Tốc độ nhanh
- Khả năng mở rộng

thuộc vào một partition thông qua một chuỗi khóa đính kèm với
thông điệp. Nếu không producer sẽ gán một khóa ngẫu nhiên và
quyết định đích đến của thông điệp dựa trên giá trị băm của khóa.
Consumer: sẽ đọc dữ liệu từ broker. Kafka là hệ thống sử

- Độ tin cậy

dụng mô hình truyền thông public-subscribe nên mỗi một topic có

Các thành phần chính của Kafka như sau:

Partition: mỗi topic sẽ được phân chia thành nhiều partition.
Partition là nơi lưu trữ dữ liệu cho 1 topic, trên mỗi partition, dữ liệu
sẽ được lưu theo một thứ tự bất biến và được gán cho một id gọi là
offset, được hiểu như chỉ số của một mảng. Offset trên mỗi partition
là độc lâp. Một partition có thể được sao chép trên hiều máy khác

Hình 3.7 Mô hình Apache Kafka kết nối tới

nhau trong một cụm Kafka

nguồn là MQTT server

Broker: Kafka chạy trên một cụm bao gồm một hoặc nhiều

Các thông điệp được publish đến một topic trên MQTT Server

máy (node), mỗi máy được gọi là một broker. Broker là nơi lưu trữ

sẽ được mapping tới một topic trên Kafka server, từ đó khi một

các partition, một broker có thể lưu trữ nhiều partition.

Consumer subscribe topic này của Kafka server cũng sẽ đọc được

Producer: sẽ viết dữ liệu tới broker. Cụ thể hơn, producer có
nhiệm vụ chọn message nào để đưa vào topic nào, nhiệm vụ này rất
quan trọng giúp cho Kafka có khả năng mở rộng tốt. Producer có

thông tin các thông tin mà được publish tới một topic trên MQTT
server ban đầu.

Hadoop YARN, Apache Mesos hoặc trên chính cluster manager được
cung cấp bởi Spark được gọi là Standalone Scheduler.

Hình 3.10 Mô hình xử lý luồng dữ liệu của Spark Streaming
Spark Streaming nhận dữ luồng dữ liệu trực tiếp từ Kafka, sau
đó nó sẽ chia nhỏ luồng dữ liệu thành các batch, sau đó các batch

- Spark SQL cho phép truy vấn dữ liệu cấu trúc qua các câu

được sử lý dữ liệu bởi Spark Engine và đưa ra kết quả của dữ liệu đã

lệnh SQL. Spark SQL có thể thao tác với nhiều nguồn dữ liệu như

qua xử lý với các batch tương ứng. Mỗi batch được xem như là một

Hive tables, Parquet, và JSON.

tập các RDD (Resilient Distributed Dataset) và một dãy các RDD thì

- Spark Streaming cung cấp API để dễ dàng xử lý dữ liệu

Spark gọi đó là DStream.

stream
- MLlib Cung cấp rất nhiều thuật toán của học máy như:
classification, regression, clustering, collaborative filtering…
- GraphX là thư viện để xử lý đồ thị.
Đối với hệ thống nền IoT, Spark Streaming đóng vai trò quan
trọng trong việc xử lý luồng dữ liệu và lưu trữ dữ liệu.



nghiệp thông minh. Từ đó giúp chúng ta có cơ sở để có thể dễ dàng

Dữ liệu sau khi xử lý sẽ được trả lại bằng một Dstream mới với

xây dựng cũng như triển khai một ứng dựng IoT một cách nhanh

giá trị của mỗi RDD là kết quả đã được xử lý tương ứng. Như hình

chóng.

24 là một ví dụ minh họa cho chúng ta thấy rằng dữ liệu sau khi xử lý

Tùy với từng ứng dụng IoT cụ thể, ta có thể mở rộng hệ thống

sẽ được lưu tại một DStream mới với các RDD là các kết quả xử lý

nền này phù hợp theo yêu cầu ứng dụng. Do có những hạn chế nhất

của DStream ban đầu. Từ đó chúng ta sẽ sử dụng DStream mới này

định về mặt thời gian của luận văn, thì luận văn mới đưa ra một kịch

để truyền lên màn hình điều khiển trực tiếp (DashBoard) hoặc lưu trữ

bản thử nghiệm chạy thử hệ thống nền với những tính năng cơ bản

xuống dưới cơ sở dữ liệu tùy vào nghiệp vụ cũng như yêu cầu của

trong nông nghiệp thông minh. Nghiên cứu tiếp theo đó là sẽ tích hợp


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status