50
Các vấn đề hiện đại Công nghệ thông tin Click icon to add picture NHÓM 5: INTERNET OF THINGS VỚI MQTT Vũ Thanh Long Nguyễn Đức Trung

MQTT Protocol

Embed Size (px)

Citation preview

Page 1: MQTT Protocol

Các vấn đề hiện đại Công nghệ thông tin

Click icon to add picture

NHÓM 5: INTERNET OF THINGS VỚI MQTT Vũ Thanh Long

Nguyễn Đức Trung

Page 2: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

2 NỘI DUNG CHÍNH

01

02

03Giao thức MQTT

Tổng quan về Internet of Things.

Demo ứng dụng MQTT

21/11/2016

Page 3: MQTT Protocol

3

TỔNG QUAN VỀ INTERNET OF THINGS

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016 21/11/2016

Page 4: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

4 Nội dung

1. Khái niệm về Internet of Things

2. Internet of Things ngày nay

3. Các ứng dụng của Internet of Things

21/11/2016

Page 5: MQTT Protocol

5 Nội dung

1. Khái niệm về Internet of Things

2. Internet of Things ngày nay

3. Các ứng dụng của Internet of Things

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016 21/11/2016

Page 6: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

6 Khái niệm về Internet of Things

Internet of Things là thuật ngữ dùng để chỉ các đối tượng có khả năng kết nối được với nhau, với Internet.

(Nguồn http://www.cyberalert.com/blog/index.php/impact-of-internet-of-things-iot-on-marketing-and-pr/)

21/11/2016

Page 7: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

7 Nội dung

1. Khái niệm về Internet of Things

2. Internet of Things ngày nay

3. Các ứng dụng của Internet of Things

21/11/2016

Page 8: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

8 Internet of Things ngày nay

21/11/2016

(Nguồn http://www.cisco.com/c/dam/en_us/about/ac79/docs/innov/IoT_IBSG_0411FINAL.pdf)

Page 9: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

9 Nội dung

1. Khái niệm về Internet of Things

2. Internet of Things ngày nay

3. Các ứng dụng của Internet of Things

21/11/2016

Page 10: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

10 Các ứng dụng của Internet of Things

21/11/2016

(Nguồn https://iot-analytics.com/10-internet-of-things-applications/)

Page 11: MQTT Protocol

11

GIAO THỨC MQTT

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016 21/11/2016

Page 12: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

12 Nội dung

1. Giới Thiệu Tổng Quan và Lịch sử hình thành

2. Các tính năng, đặc điểm nổi bật

3. Mô hình Pub/Sub và Cơ chế hoạt động

1. Mô hình mẫu Pub/Sub

2. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

4. Kiến trúc thành phần

5. Định dạng thông điệp

6. Chất lượng dịch vụ MQTT

7. Luồng làm việc chính trong MQTT

21/11/2016

Page 13: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

13 Nội dung

1. Giới Thiệu Tổng Quan và Lịch sử hình thành

2. Các tính năng, đặc điểm nổi bật

3. Mô hình Pub/Sub và Cơ chế hoạt động

1. Mô hình mẫu Pub/Sub

2. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

4. Kiến trúc thành phần

5. Định dạng thông điệp

6. Chất lượng dịch vụ MQTT

7. Luồng làm việc chính trong MQTT

21/11/2016

Page 14: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

14

Giới thiệu tổng quan

21/11/2016

Page 15: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

15 Vị trí của MQTT trong mô hình IoT tổng quan

21/11/2016

Server (NodeJs, PHP,…)

Mobile app

Web app

SensorAttacher

Thing

Page 16: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

16 Định nghĩa

MQTT (Là viết tắt của: Message Queing Telemetry Transport – Tạm dịch là giao vận tầm xa) là giao thức truyền thông điệp (message) theo mô hình cung cấp/thuê bao (publish/subcribe). Sử dụng cho các thiết bị Internet of Things với băng thông thấp, độ tin cậy cao và khả năng được sử dụng trong mạng lưới không ổn định. Nó dựa trên 1 Broker (Tạm dịch là điểm trung gian) “nhẹ” (khá ít xử lý) và được thiết kế có tính mở (tức là không đặc trưng cho ứng dụng cụ thể nào), đơn giản và dễ cài đặt.

(Được dịch từ: http://www.ibm.com/developerworks/webservices/library/ws-mqtt/index.htm)

21/11/2016

Page 17: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

17 Môi trường lí tưởng

Những nơi mà giá network (mạng viễn thông) đắt đỏ hoặc băng thông thấp hay thiếu tin cậy.

Khi chạy trên thiết bị nhúng bị giới hạn về tài nguyên tốc độ và bộ nhớ.

Bởi vì giao thức này sử dụng băng thông thấp trong môi trường có độ trễ cao nên nó là một giao thức lý tưởng cho các ứng dụng M2M (Machine to machine).

21/11/2016

Page 18: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

18 Giả thiết ???

21/11/2016

Server Client

Giữa client và server có sự thay đổi????

Làm sao để biết và cập nhật???

Page 19: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

19

Lịch sử hình thành

21/11/2016

Page 20: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

20 Nhà phát minh

MQTT được phát minh bởi Andy Stanford - Clark (IBM) và Arlen Nipper (EUROTECH) cuối năm 1999 khi mà nhiệm vụ của họ là tạo ra một giao thức sao cho sự hao phí năng lượng và băng thông là thấp nhất để kết nối đến đường ống dẫn dầu thông qua sự kết nối của vệ tinh

21/11/2016

Page 21: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

21 Quá trình phát triển

21/11/2016

(Nguồn:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/csprd02/mqtt-v3.1.1-csprd02.pdf)

Page 22: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

22 Nội dung

1. Giới Thiệu Tổng Quan và Lịch sử hình thành

2. Các tính năng, đặc điểm nổi bật

3. Mô hình Pub/Sub và Cơ chế hoạt động

1. Mô hình mẫu Pub/Sub

2. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

4. Kiến trúc thành phần

5. Định dạng thông điệp

6. Chất lượng dịch vụ MQTT

7. Luồng làm việc chính trong MQTT

21/11/2016

Page 23: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

23 Các tính năng, đặc điểm nổi bật

Dạng truyền message theo mô hình cung cấp/thuê bao cung cấp việc truyền tin phân tán một - nhiều, tách biệt với phần ứng dụng.

Việc truyền thông điệp là luôn không quan tâm đến nội dung được truyền.

Sử dụng TCP/IP là giao thức nền. Tồn tại ba mức độ tin cậy cho việc truyền dữ liệu

Hầu như chỉ 1 lần

Ít nhất 1 lần

Chính xác chỉ 1 lần

Phần bao bọc dữ liệu truyền nhỏ (có độ dài cố định luôn là 2byte) và được giảm đến mức tối thiểu để giảm tải cho đường truyền.

21/11/2016

Page 24: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

24 Nội dung

1. Đặt Vấn Đề

2. Giới Thiệu Tổng Quan và Lịch sử hình thành

3. Các tính năng, đặc điểm nổi bật

4. Mô hình Pub/Sub và Cơ chế hoạt động

1. Mô hình mẫu Pub/Sub

2. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

5. Kiến trúc thành phần

6. Định dạng thông điệp

7. Chất lượng dịch vụ MQTT

8. Luồng làm việc chính trong MQTT

21/11/2016

Page 25: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

25 Thành phần

Publisher - nơi gửi thông điệp

Subscriber – nơi nhận thông điệp

Broker – điểm trung gian

21/11/2016

Page 26: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

26 Đặc điểm nổi bật

Tách biệt giữa publisher và subscriber

Cả publisher và subscriber đều là client và nó luôn luôn 1 kết nối đến broker trung tậm

Sử dụng 1 thành phần, phương thức nào đó để xác định thông điệp nào sẽ được chuyền đến client nào (Mà với MQTT đó chính là kênh (“topics”))

21/11/2016

Page 27: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

27 Ưu điểm Kết nối riêng rẽ Khả năng mở rộng

21/11/2016

(Nguồn:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/csprd02/mqtt-v3.1.1-csprd02.pdf)

Page 28: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

28 Ưu điểm

Thời gian tách biệt (Time decoupling)

Đồng bộ riêng rẽ (Synchronization decoupling)

21/11/2016

Page 29: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

29 Nhược điểm

Điểm trung gian (broker) không cần thông báo về trạng thái gửi thông điệp. Do đó không có cách nào để phát hiện xem thông điệp đã gửi đúng hay chưa.

Publisher không hề biết gì về trạng thái của subscribe và ngược lại. Vậy làm sao chúng ta có thể đảm bảo mọi thứ đều ổn

Những kẻ xấu (malicious publisher) có thể gửi những thông điệp xấu, và các subcribers sẽ truy cập vào những thứ mà họ không nên nhận

21/11/2016

Page 30: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

30 Nội dung

1. Đặt Vấn Đề

2. Giới Thiệu Tổng Quan và Lịch sử hình thành

3. Các tính năng, đặc điểm nổi bật

4. Mô hình Pub/Sub và Cơ chế hoạt động

1. Mô hình mẫu Pub/Sub

2. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

5. Kiến trúc thành phần

6. Định dạng thông điệp

7. Chất lượng dịch vụ MQTT

8. Luồng làm việc chính trong MQTT

21/11/2016

Page 31: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

31 Tính thừa kế và những đặc điểm riêng

Tính thừa kế Space decoupling (Không gian tách biệt) Time decoupling (Thời gian tách biệt) Synchronization decoupling (Sự đồng bộ riêng rẽ) …..

Đặc điểm riêng biệtMQTT sử dụng cơ chế lọc thông điệp dựa vào tiêu đề (subject-based )MQTT có một tầng gọi là chất lượng dịch vụ (Quality of Services – QoS). Nó giúp

cho dễ dàng nhận biết được là message có được truyền thành công hay không

21/11/2016

Page 32: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

32 Cơ chế tổng quan

21/11/2016

(Nguồn:sách MQTT – MQ Telemetry Transport của Peter R. Egli)

Page 33: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

33 Cơ chế tổng quan

21/11/2016

MQTT hoạt động theo cơ chế client/server, nơi mà mỗi cảm biến là một khách hàng (client) và kết nối đến một máy chủ, có thể hiểu như một điểm trung gian (broker), thông qua giao thức TCP (Transmission Control Protocol). Broker chịu trách nhiệm điều phối tất cả các thông điệp giữa phía gửi đến đúng phía nhận.

MQTT là giao thức định hướng bản tin. Mỗi bản tin là một đoạn rời rạc của tín hiệu và broker không thể nhìn thấy. Mỗi bản tin được publish một địa chỉ, có thể hiểu như một kênh (Topic). Client đăng kí vào một vài kênh để nhận/gửi dữ liệu, gọi là subscribe. Client có thể subcribe vào nhiều kênh. Mỗi client sẽ nhận được dữ liệu khi bất kì trạm nào khác gửi dữ liệu vào kênh đã đăng kí. Khi một client gửi một bản tin đến một kênh nào đó gọi là publish.

Page 34: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

34 Ví dụ

21/11/2016

(Nguồn: http://www.hivemq.com/blog/mqtt-essentials-part2-publish-subscribe)

Page 35: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

35 Nội dung

1. Đặt Vấn Đề

2. Giới Thiệu Tổng Quan và Lịch sử hình thành

3. Các tính năng, đặc điểm nổi bật

4. Mô hình Pub/Sub và Cơ chế hoạt động

1. Mô hình mẫu Pub/Sub

2. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

5. Kiến trúc thành phần

6. Định dạng thông điệp

7. Chất lượng dịch vụ MQTT

8. Luồng làm việc chính trong MQTT

21/11/2016

Page 36: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

36 Kiến trúc thành phần

21/11/2016

(Nguồn:sách MQTT – MQ Telemetry Transport của Peter R. Egli)

Page 37: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

37 Nội dung

1. Đặt Vấn Đề

2. Giới Thiệu Tổng Quan và Lịch sử hình thành

3. Các tính năng, đặc điểm nổi bật

4. Mô hình Pub/Sub và Cơ chế hoạt động

1. Mô hình mẫu Pub/Sub

2. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

5. Kiến trúc thành phần

6. Định dạng thông điệp

7. Chất lượng dịch vụ MQTT

8. Luồng làm việc chính trong MQTT

21/11/2016

Page 38: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

38 Định dạng thông điệp

21/11/2016

(Nguồn: Sách MQTT – MQ Telemetry Transport của Peter R. Egli)

Page 39: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

39 Ví dụ

21/11/2016

(Nguồn: Sách MQTT – MQ Telemetry Transport của Peter R. Egli)

Page 40: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

40 Nội dung

1. Đặt Vấn Đề

2. Giới Thiệu Tổng Quan và Lịch sử hình thành

3. Các tính năng, đặc điểm nổi bật

4. Mô hình Pub/Sub và Cơ chế hoạt động

1. Mô hình mẫu Pub/Sub

2. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

5. Kiến trúc thành phần

6. Định dạng thông điệp

7. Chất lượng dịch vụ MQTT

8. Luồng làm việc chính trong MQTT

21/11/2016

Page 41: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

41 Chất lượng dịch vụ MQTT

21/11/2016

(Nguồn: Sách MQTT – MQ Telemetry Transport của Peter R. Egli)

Page 42: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

42 Chất lượng dịch vụ MQTT

Với mức độ tin cậy mức 0, việc truyền nhận dựa hoàn toàn vào tính tin cậy của TCP/IP.

(Nguồn http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels)

21/11/2016

Page 43: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

43 Chất lượng dịch vụ MQTT

Với mức độ tin cậy mức 1, các thông điệp được đảm bảo sẽ được nhận nhưng có thể có lặp.

(Nguồn http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels)

21/11/2016

Page 44: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

44 Chất lượng dịch vụ MQTT

Mức độ tin cậy mức 2 là sự kết hợp hoàn hảo của hai mức độ tin cậy trước đó.

(Nguồn http://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels)

21/11/2016

Page 45: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

45 Nội dung

1. Đặt Vấn Đề

2. Giới Thiệu Tổng Quan và Lịch sử hình thành

3. Các tính năng, đặc điểm nổi bật

4. Mô hình Pub/Sub và Cơ chế hoạt động

1. Mô hình mẫu Pub/Sub

2. Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

5. Kiến trúc thành phần

6. Định dạng thông điệp

7. Chất lượng dịch vụ MQTT

8. Luồng làm việc chính trong MQTT

21/11/2016

Page 46: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

46 Luồng làm việc chính trong MQTT

Luồng kết nối trong MQTT

(Nguồn http://www.hivemq.com/blog/mqtt-essentials-part-3-client-broker-connection-establishment)

21/11/2016

Page 47: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

47 Luồng làm việc chính trong MQTT

Luồng gửi dữ liệu trong MQTT

(Nguồn http://www.hivemq.com/blog/mqtt-essentials-part-4-mqtt-publish-subscribe-unsubscribe)

21/11/2016

Page 48: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

48 Luồng làm việc chính trong MQTT

Luồng đăng ký trong MQTT

(Nguồn http://www.hivemq.com/blog/mqtt-essentials-part-4-mqtt-publish-subscribe-unsubscribe)

21/11/2016

Page 49: MQTT Protocol

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016

49 Luồng làm việc chính trong MQTT

Luồng hủy đăng ký trong MQTT

(Nguồn http://www.hivemq.com/blog/mqtt-essentials-part-4-mqtt-publish-subscribe-unsubscribe)

21/11/2016

Page 50: MQTT Protocol

50

DEMO NHO NHỎ

Các Vấn Đề Hiện Đại Của Công Nghệ Thông Tin | UET 2016 21/11/2016