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

Nghiên cứu hệ thống IBM waston IOT

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 (2.26 MB, 60 trang )

1

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC TÂY BẮC
=====o0o=====

PHAN VĂN HOÀN

NGHIÊN CỨU HỆ THỐNG IBM WASTON IOT

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Sơn La, năm 2017


2

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC TÂY BẮC
=====o0o=====

PHAN VĂN HOÀN

NGHIÊN CỨU HỆ THỐNG IBM WASTON IOT

Chuyên ngành: Công nghệ thông tin

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Ngƣời hƣớng dẫn: ThS. Phan Trung Kiên


Sơn La, năm 2017


3

Mục Lục

LỜI CẢM ƠN ........................................................................................................10
MỞ ĐẦU .......................................................................................................11
1.
2.
3.
4.
5.
6.

Lý do chọn đề tài và tính cấp thiết ......................................................11
Mục đích nghiên cứu ...........................................................................12
Đối tƣợng nghiên cứu ..........................................................................12
Nhiệm vụ nghiên cứu ..........................................................................12
Phạm vi nghiên cứu .............................................................................12
Phƣơng pháp nghiên cứu .....................................................................12

CHƢƠNG 1. GIỚI THIỆU INTERNET OF THINGS .........................................13
1.1. Internet of Things (IoT).......................................................................13
1.1.1
Khả năng định danh duy nhất.........................................................13
1.1.2
Xu hƣớng và tính chất của Internet of Things ...............................14
1.1.3

Hệ thống phụ trong IoT ..................................................................15
1.1.4
Ứng dụng của IoT ...........................................................................15
1.2 Giao thức MQTT .................................................................................18
1.2.1
MQTT .............................................................................................18
1.2.2
Gửi, subscribe .................................................................................18
1.2.3
QoS .................................................................................................18
1.2.4
Retain ..............................................................................................19
1.2.5
LWT ................................................................................................19
CHƢƠNG 2. NỀN TẢNG IBM WASTON IOT ..................................................20
2.1 Bluemix ...............................................................................................20
2.2 Nền tảng của IBM Watson IoT ...........................................................21
2.2.1
Apps ................................................................................................21
2.2.2
Dịch vụ............................................................................................22
2.2.3
Infrastructure ..................................................................................22
2.2.4
Kiến trúc Bluemix Clound Foundry...............................................23
2.2.5
Regions ...........................................................................................24
2.2.6
Phục hồi Bluemix ...........................................................................25
2.2.7

Tích hợp với hệ thống của record ..................................................26
2.2.8
Tạo một ứng dụng di động .............................................................26
2.2.9
Điều kiện sử dụng Bluemix ............................................................27
2.3 Kết nối MQTT cho ứng dụng..............................................................28
2.3.1
Chứng thực MQTT .........................................................................28
2.3.2
Sự kiện ouput ..................................................................................28
2.3.3
Thông tin lƣu trữ.............................................................................28


4
2.3.4
Đăng ký sự kiện thiết bị .................................................................29
2.3.5
Đăng ký theo lệnh thiết bị ..............................................................29
2.3.6
Đăng ký nhận Tín hiệu trạng thái thiết bị ......................................29
2.3.7
Đăng ký nhận tín hiệu trạng thái ứng dụng....................................30
2.4 Kết nối MQTT cho thiết bị..................................................................30
2.4.1
Kết nối thiết bị vào Dịch vụ Quickstart .........................................30
2.4.2
Xác thực MQTT .............................................................................30
2.4.3
Tên ngƣời dùng...............................................................................30

2.4.4
Mật khẩu .........................................................................................30
2.4.5
Thông tin giữ lại .............................................................................30
2.4.6
Đăng ký vào lệnh ............................................................................31
2.4.7
Thiết bị quản lý ...............................................................................31
2.4.8
Chất lƣợng của mức dịch vụ và phiên làm việc .............................31
2.4.9
Message Format ..............................................................................32
2.5 MQTT cho gateway.............................................................................32
2.5.1
Xác thực MQTT .............................................................................32
2.5.2
Sự kiện gửi ......................................................................................32
2.5.3
Thông điệp giữ lại...........................................................................33
2.5.4
Đăng ký vào lệnh ............................................................................33
2.5.5
Thông báo trên cổng .......................................................................33
2.5.6
Quản lý cổng ...................................................................................34
2.6 Node-Red .............................................................................................35
2.6.1
Giới thiệu ........................................................................................35
2.6.2
Cài đặt Node-RED trên thiết bị ......................................................36

2.6.3
Register Thiết bị .............................................................................39
CHƢƠNG 3. ỨNG DỤNG DEMO .......................................................................40
3.1 Giới thiệu Raspberry ...........................................................................40
3.1.1
Cấu tạo Raspberry Pi ......................................................................40
3.2 Lựa chọn mục tiêu ...............................................................................42
3.3
3.4
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.5
3.5.1
3.5.2
3.6
3.6.1
3.7

Phân tích yêu cầu .................................................................................42
Thiết kế mức khái niệm. ......................................................................42
Xác định tác nhân ...........................................................................42
Mô hình Use – Case của tác nhân ngƣời dùng ..............................43
Mô hình Use – Case của tác nhân hệ thống IBM Waston IoT ......44
Mô hình Use – Case của tác nhân của thiết bị Raspberry .............44
Mô hình hóa tƣơng tác đối tƣợng. ..................................................45
Biểu đồ lớp thực thể .......................................................................45

Thiết kế giao diện ngƣời dùng ............................................................48
màn hình chính ứng dụng ...............................................................48
Màn hình điều khiển thiết bị ..........................................................48
Sơ đồ mạch trên raspberry Pi ..............................................................50
Giao diện lịch sử đăng nhập ...........................................................50
Sử lý sự kiện ........................................................................................51


5
3.7.1
Trên ứng dụng: ...............................................................................51
3.7.2
Trên hệ thống IBM Waston IoT .....................................................53
3.7.3
Trên Raspberry Pi 3 Mode B..........................................................53
3.8 Hƣớng dẫn sử dụng .............................................................................54
KẾT LUẬN VÀ KIẾN NGHỊ ...............................................................................59
3.9 Kết luận................................................................................................59
3.10 Kiến nghị. ............................................................................................59
TÀI LIỆU THAM KHẢO .....................................................................................60


6
Danh mục bảng biểu
Bảng 3. Region .......................................................................................................25
Bảng 4. Sự kiện gửi................................................................................................33
Bảng 5. Cổng thiết bị .............................................................................................33


7

Danh mục hình ảnh
Hình 1. Giới thiệu về internet of thing ..................................................................13
Hình 2. Ví dụ về Internet of Things ......................................................................15
Hình 3. Một ứng dụng của Internet of Things .......................................................17
Hình 4. Giới thiệu về Node Red ............................................................................35
Hình 5. Quản lí cổng ..............................................................................................36
Hình 6. Tạo một ứng dụng Node-red ....................................................................36
Hình 7. Vào ứng dụng node-red ............................................................................37
Hình 8. Bắt đầu làm việc với node-red ..................................................................37
Hình 9. Thông tin về dự án sử dụng node-red .......................................................38
Hình 10. Triển khai dự án node-red.......................................................................39
Hình 12. Thông tin đăng kí thiết bị .......................................................................39
Hình 13. Raspberry Pi Mode B..............................................................................40
Hình 14. MQTT Mô tả giao tiếp của ứng dụng.....................................................43
Hình 15. Use-Case ngƣời dùng..............................................................................43
Hình 16. Use-case hệ thống IBM Waston IoT ......................................................44
Hình 17. Use-case Raspberry Pi ............................................................................44
Hình 18. Mô hình hóa tƣơng tác ............................................................................45
Hình 19. Login Page Fragment ..............................................................................46
Hình 20. IoT Device ..............................................................................................46
Hình 21. IoT Client ................................................................................................47
Hình 22. ProfilesActivity .......................................................................................47
Hình 23. Giao diện đăng nhập ...............................................................................48
Hình 24. Giao diện điều khiển ...............................................................................49
Hình 25. Sơ đồ mạch..............................................................................................50
Hình 26. Giao diện lịch sử đăng nhập ...................................................................50
Hình 27. Giao diện điền thông tin đăng nhập........................................................54
Hình 28. Giao diện điều khiển bật tắt đèn .............................................................55



8
Hình 29. Thiết bị bật đèn .......................................................................................56
Hình 30. Thiết bị đƣợc tắt đèn ...............................................................................57
Hình 31. Giao diện thông tin đăng nhập................................................................58


9
Danh mục từ viết tắt
Từ viết tắt

Nghĩa từ

IoT

Internet of thing

MQTT

Message Queuing Telemetry Transport

QoS

Qualities of service

API

Application Programming Interface

HTTP


HyperText Transfer Protocol

REST

Representational State Transfer

LWT

Last will and testament


10
LỜI CẢM ƠN

Trƣớc hết, tôi xin chân thành cảm ơn thầy cô Trƣờng Đại học Tây Bắc, đặc biệt
là thầy cô đã tận tình dạy bảo tôi trong suốt quá trình học tập tại trƣờng.
Tôi xin gửi lời biết ơn sâu sắc đến Ths. Phan Trung Kiên, thầy hƣớng dẫn, đã
dành nhiều thời gian và tâm huyết hƣớng dẫn tôi nghiên cứu trong suốt thời gian qua.
Tôi xin gửi lời biết ơn sâu sắc tới Ths.Giang Thành Trung đã hỗ trợ về trang thiết bị và
tạo điều kiện về chỗ làm việc và tổ chức cho tôi đƣợc thảo luận trong nhóm.
Tôi cũng xin chân thành cảm ơn bè của tôi tại Trƣờng Đại học Tây Bắc đã tạo
điều kiện về mặt thời gian để tôi hoàn thành quá trình nghiên cứu khóa luận tốt nghiệp.
Cuối cùng, tôi xin gửi lời cảm ơn tới những ngƣời thân trong gia đình tôi, bè tôi
đã luôn động viên tôi trong quá trình học tập và nghiên cứu.
Mặc dù tôi đã có nhiều cố gắng hoàn thành khóa luận một cách tốt nhất, tuy
nhiên do năng lực còn nhiều hạn chế nên không thể tránh khỏi những thiếu sót. Vì vậy,
tôi rất mong nhận đƣợc những đóng góp quý báu của thầy cô và bạn.
Sơn La, ngày tháng năm 2017
Sinh viên


Phan Văn Hoàn


11
MỞ ĐẦU
1. Lý do chọn đề tài và tính cấp thiết
Xu thế toàn cầu hóa về internet đang diễn ra mạnh mẽ trên khắp thế giới và Việt
Nam cũng nằm trong số đó. Internet là một hệ thống thông tin toàn cầu đƣợc truy nhập
công cộng gồm mạng máy tính đƣợc liên kết với nhau. Hệ thống truyền thông tin, kiểu
nối chuyển gói dữ liệu (packet switching) dựa trên một giao thức liên mạng đã đƣợc
chuẩn hóa (giao thức IP). Hệ thống bao gồm hàng ngàn mạng máy tính nhỏ hơn của
doanh nghiệp, của viện nghiên cứu và trƣờng đại học, của ngƣời dùng cá nhân, và
chính phủ trên toàn cầu.
Máy móc dễ dàng nhận biết và phản hồi lại môi trƣờng xung quanh (ambient
intelligence), chúng cũng tự điều khiển bản thân (autonomous control) mà không cần
đến kết nối mạng. Trong thời gian gần đây nhà khoa học bắt đầu nghiên cứu kết hợp
hai khái niệm IoT( Internet of Thing) và autonomous control lại với nhau. Tƣơng lai
của IoT là một mạng lƣới thực thể thông minh có khả năng tự tổ chức và hoạt động
riêng lẻ theo tình huống, môi trƣờng, đồng thời chúng cũng liên lạc với nhau để trao
đổi thông tin, dữ liệu.
Việc tích hợp trí thông minh vào IoT còn giúp thiết bị, máy móc, phần mềm thu
thập và phân tích dấu vết điện tử của con ngƣời khi chúng ta tƣơng tác với những thứ
thông minh, từ đó phát hiện ra tri thức mới liên quan tới cuộc sống, môi trƣờng, mối
tƣơng tác xã hội cũng nhƣ hành vi con ngƣời.
Thực thể, máy móc trong IoT sẽ phản hồi dựa theo sự kiện diễn ra trong lúc
chúng hoạt động theo thời gian thực. Một mạng lƣới sensor chính là một thành phần
đơn giản của IoT.
Trong một thế giới mở, IoT sẽ mang tính chất phức tạp bởi nó bao gồm một
lƣợng lớn đƣờng liên kết giữa những thiết bị, máy móc, dịch vụ với nhau, ngoài ra còn
bởi khả năng thêm vào nhân tố mới.

Trong IoT vị trí địa lý chính xác của một vật nào đó là rất quan trọng. Hiện nay
Internet chủ yếu đƣợc sử dụng để quản lí thông tin đƣợc xử lý bởi con ngƣời. Do đó
những thông tin nhƣ địa điểm, thời gian, không gian của đối tƣợng không mấy quan
trọng bởi ngƣời xử lí thông tin quyết định thông tin có cần thiết hay không và nếu cần
thì bổ sung thêm. Trong khi đó, IoT về lý thuyết sẽ thu thập rất nhiều dữ liệu, trong đó
có dữ liệu thừa về địa điểm, và việc xử lí dữ liệu đó đƣợc xem nhƣ không hiệu quả.
Ngoài ra, việc xử lí một khối lƣợng lớn dữ liệu trong thời gian ngắn đủ để đáp ứng cho
hoạt động của đối tƣợng cũng là mộttrong những thách thức hiện nay.


12
Với lý do nhƣ trên, tôi đã chọn đề tài “Tìm hiểu nền tảng IBM Waston IoT”
làm đề tài nghiên cứu khóa luận tốt nghiệp.
2. Mục đích nghiên cứu
Nghiên cứu về IoT và hệ thống IBM Waston IoT.
Nghiên cứu về ngôn ngữ Node Red và phƣơng thức liên kết thiết thiết bị phần
cứng với web sever thông qua node-red.
Nghiên cứu về linh kiện Rapberry Pi 3 Mode B.
Cài đặt, lắp ráp phần cứng linh kiện IoT và kết nối modul với hệ thống IoT IBM
Waston và phân tích kết quả thu đƣợc.
3. Đối tƣợng nghiên cứu

Lý thuyết về IoT và cấu trúc trong hệ thống IBM Waston IoT. Cấu trúc và cách
cài đặt kết nối của linh kiện Rapberry Pi 3 Mode B kết nối đến hệ thống IBM Waston
IoT.
4. Nhiệm vụ nghiên cứu
Tìm hiểu về IoT và hệ thống IBM Waston IoT.
Tìm hiểu về ngôn ngữ node-red và thức liên kết thiết thiết bị phần cứng với web
sever thông qua node-red.
Tìm hiểu về linh kiện Rapberry Pi 3 Mode B.

Cài đặt, lắp ráp phần cứng linh kiện IoT và kết nối modul với hệ thống IoT IBM
Waston và phân tích kết quả thu đƣợc.
5. Phạm vi nghiên cứu
Phƣơng thức, giao thức của hệ thống IBM Waston IoT giao tiếp với thiết bị IoT.
6. Phƣơng pháp nghiên cứu
Phƣơng pháp đọc tài liệu, phân tích, tổng hợp. Phƣơng pháp thực nghiệm.


13
CHƢƠNG 1. GIỚI THIỆU INTERNET OF THINGS
1.1. Internet of Things (IoT)

Internet of Things là một hệ thống thiết bị đƣợc kết nối với nhau qua mạng
Internet. Chúng có khả năng trao đổi và truyền tải thông tin, dữ liệu một cách hiệu quả
và tiện lợi thông qua mạng Internet mà không cần sự tƣơng tác trực tiếp giữa ngƣời
với thiết bị. Điều đó có nghĩa là khi mọi thiết bị đã đƣợc “ Internet hóa”, chỉ với một
thiết bị thông minh, nhƣ Smart tivi, Smartphone hay bằng một chiếc smartwatch nhỏ
bé đã đƣợc hỗ trợ IoT, ngƣời dùng điều khiển thiết bị IoT mọi lúc mọi nơi mà không
bị giới hạn về mặt thời gian và không gian.

Hình 1. Giới thiệu về internet of thing

Có một triển vọng rất rõ ràng tạo ra một thế giới nơi mà mọi thứ đều đƣợc kết nối
vào Internet. Mục tiêu đạt đƣợc khi và chỉ khi áp dụng IoT ở tất cả mọi nơi". Việc
trang bị những công nghệ theo dõi, nhận biết vào những vật thông dụng trong đời sống
sẽ làm thay đổi rất nhiều cách con ngƣời tƣơng tác với đồ vật cũng nhƣ cách tƣơng tác
giữa ngƣời với ngƣời.

1.1.1 Khả năng định danh duy nhất
Điểm quan trọng của IoT đó là đối tƣợng phải đƣợc nhận biết và định danh

(identifiable). Nếu mọi đối tƣợng, kể cả con ngƣời, đƣợc "đánh dấu" để phân biệt bản
thân đối tƣợng đó với những thứ xung quanh thì chúng ta hoàn toàn quản lí đƣợc nó
thông qua máy tính. Việc đánh dấu (tagging) đƣợc thực hiện thông qua nhiều công
nghệ, chẳng hạn nhƣ RFID, NFC, mã vạch, mã QR, watermark kĩ thuật số... Việc kết
nối thì thực hiện qua Wi-Fi, mạng viễn băng thông rộng (3G, 4G), Bluetooth, ZigBee,
hồng ngoại...


14
Ngoài những kĩ thuật nói trên, nếu nhìn từ thế giới web, chúng ta sử dụng địa chỉ
độc nhất để xác định từng vật, chẳng hạn nhƣ địa chỉ IP. Sự xuất hiện của IPv6 với
không gian địa chỉ cực kì rộng lớn sẽ giúp mọi thứ dễ dàng kết nối vào Internet cũng
nhƣ kết nối với nhau.
1.1.2 Xu hƣớng và tính chất của Internet of Things

 Thông minh
Thông minh và tự động trong điều khiển thực chất không phải là một phần trong
ý tƣởng về IoT. Máy móc dễ dàng nhận biết và phản hồi lại môi trƣờng xung quanh
(ambient intelligence), chúng cũng tự điều khiển bản thân (autonomous control) mà
không cần đến kết nối mạng. Tuy nhiên, trong thời gian gần đây ngƣời ta bắt đầu
nghiên cứu kết hợp hai khái niệm IoT và autonomous control lại với nhau. Tƣơng lai
của IoT là một mạng lƣới thực thể thông minh có khả năng tự tổ chức và hoạt động
riêng lẻ tùy theo tình huống, môi trƣờng, đồng thời chúng cũng liên lạc với nhau để
trao đổi thông tin, dữ liệu.
Việc tích hợp trí thông minh vào IoT còn giúp thiết bị, máy móc, phần mềm thu
thập và phân tích dấu vết điện tử của con ngƣời, từ đó phát hiện ra tri thức mới liên
quan tới cuộc sống, môi trƣờng, mối tƣơng tác xã hội cũng nhƣ hành vi con ngƣời.
 Kiến trúc dựa trên sự kiện
Thực tế máy móc trong IoT sẽ phản hồi dựa theo sự kiện diễn ra trong lúc chúng
hoạt động theo thời gian thực. Một mạng lƣới sensor chính là một thành phần đơn giản

của IoT.
 Là một hệ thống phức tạp
Trong một thế giới mở IoT sẽ mang tính chất phức tạp bởi nó bao gồm một
lƣợng lớn đƣờng liên kết giữa những thiết bị, máy móc, dịch vụ với nhau, ngoài ra còn
bởi khả năng thêm mới.
 Kích thƣớc tín hiệu
Một mạng lƣới IoT chứa đến 50 đến 100 nghìn tỉ đối tƣợng đƣợc kết nối và mạng
lƣới theo dõi sự di chuyển của từng đối tƣợng.
 Vấn đề không gian, thời gian
Trong IoT, vị trí địa lý chính xác của một vật nào đó là rất quan trọng. Hiện nay,
Internet chủ yếu đƣợc sử dụng để quản lí thông tin đƣợc xử lý bởi con ngƣời. Do đó
những thông tin nhƣ địa điểm, thời gian, không gian của đối tƣợng không mấy quan
trọng bởi ngƣời xử lí thông tin quyết định thông tin có cần thiết hay không và nếu cần


15
thì hệ thống bổ sung thêm. Trong khi đó IoT về lý thuyết sẽ thu thập rất nhiều dữ liệu,
trong đó có dữ liệu thừa về địa điểm, và việc xử lí dữ liệu đó đƣợc xem nhƣ không
hiệu quả. Ngoài ra, việc xử lí một khối lƣợng lớn dữ liệu trong thời gian ngắn đủ để
đáp ứng cho hoạt động của đối tƣợng cũng là một thác thức hiện nay.

1.1.3 Hệ thống phụ trong IoT
Không phải tất cả mọi thứ nằm trong IoT đều nhất thiết phải kết nối vào một
mạng lƣới toàn cầu, chúng hoạt động trong từng hệ thống đơn lẻ (subsystem).
Ví dụ:
Trong một căn nhà thông minh, đồ điện gia dụng tự chúng tƣơng tác với nhau và
hoạt động mà không cần phải vào Internet, trừ khi chúng ta cần điều khiển nó từ xa.
Ngôi nhà đƣợc xem là một subsystem. Cũng giống nhƣ hiện nay chúng ta có mạng
LAN, WAN, mạng ngang hàng nội bộ chứ không kết nối trực tiếp vào Internet.
1.1.4 Ứng dụng của IoT


Hình 2. Ví dụ về Internet of Things

IoT có ứng dụng rộng rãi sau:
 Quản lí chất thải.
 Quản lí và lập kế hoạch quản lí đô thị.
 Quản lí môi trƣờng.
 Phản hồi trong tình huống khẩn cấp.
 Mua sắm thông minh.
 Quản lí thiết bị cá nhân.


16
 Đồng hồ đo thông minh.
 Ngôi nhà thông minh.
 ….
Một trong những vấn đề khó khăn trong việc phát triển IoT đó là khả năng tạo ra
một ứng dụng IoT nhanh chóng. Để khắc phục điều này, hiện nay nhiều hãng, công ty
và tổ chức trên thế giới đang nghiên cứu nền tảng giúp xây dựng nhanh ứng dụng dành
cho IoT.
Ví dụ:
Đại học British Columbia ở Canada hiện đang tập trung vào một bộ toolkit cho
phép phát triển phần mềm IoT chỉ bằng công nghệ Web cũng nhƣ giao thức phổ biến.
Công ty ioBridge thì cung cấp giải pháp kết nối và điều khiển hầu nhƣ bất kì thiết bị
nào có khả năng kết nối Internet, kể cả đèn bàn, quạt máy...
Broadcom mới đây cũng đã giới thiệu hai con chip có mức tiêu thụ điện thấp và
giá rẻ dành cho thiết bị "Internet of Things". Chip BCM4390, đƣợc tích hợp một bộ
thu phát sóng Wi-Fi 802.11 b/g/n hiệu suất cao để dùng với vi điều khiển 8 hoặc 16bit. Sản phẩm dùng trong nồi nấu ăn thông minh, bóng đèn, hệ thống an ninh cũng nhƣ
thiết bị gia dụng có khả năng điều khiển và quản lí từ xa. Chip BCM20732, thì đƣợc
tích hợp bộ thu phát tín hiệu Bluetooth và nhắm đến những máy móc nhƣ bộ đo nhịp

tim, bộ đo bƣớc chạy, thiết bị cảnh báo khi có vật gì đến gần hoặc ổ khóa cửa thông
minh. Broadcom cũng đã đóng góp tập lệnh phần mềm hỗ trợ cho cả công nghệ dự án
Android OpenSource (AOSP).


17

Hình 3. Một ứng dụng của Internet of Things


18
1.2 Giao thức MQTT

1.2.1 MQTT
MQTT (Message Queuing Telemetry Transport) là một giao thức truyền dành
cho các thiết bị IoT 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 đƣờng truyền không ổn định.
Giao thức MQTT, bao gồm định nghĩa "subscribe", "gửi", "QoS", "retain",
"last will and testament (lwt)".

1.2.2 Gửi, subscribe
Trong một hệ thống sử dụng giao thức MQTT, nhiều nút trạm (gọi là MQTT
client) kết nối tới một MQTT server (gọi là broker). Mỗi MQTT client sẽ đăng ký một
vài kênh (topic)
Ví dụ:
"/client1/channel1", "/client1/channel2". Quá trình đăng ký gọi là "subscribe".
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à kênh đã đăng
ký. Khi một client gủi dữ liệu tới kênh đó, gọi là "gửi".

1.2.3 QoS

Có 3 tuỳ chọn *QoS (Qualities of service) * khi "gửi" và "subscribe":
 QoS0 Broker/client sẽ gởi dữ liệu đúng 1 lần, quá trình gởi đƣợc xác nhận
bởi chỉ giao thức TCP/IP.
 QoS1 Broker/client sẽ gởi dữ liệu với ít nhất 1 lần xác nhận từ đầu kia,
nghĩa là có nhiều hơn 1 lần xác nhận đã nhận đƣợc dữ liệu.
 QoS2 Broker/client đảm bảm khi gởi dữ liệu thì phía nhận chỉ nhận đƣợc
đúng 1 lần, quá trình phải trải qua 4 bƣớc.
Một gói tin đƣợc gởi ở bất kỳ QoS nào, và client cũng subscribe với bất kỳ yêu
cầu QoS nào.
Ví dụ:
Nếu 1 gói dữ liệu đƣợc gửi với QoS2, và client subscribe với QoS0, thì gói dữ
liệu đƣợc nhận về client sẽ đƣợc broker gởi với QoS0 và 1 client khác đăng ký cùng
kênh với QoS2, thì nó sẽ đƣợc Broker gởi dữ liệu với QoS2.
Nếu một client subscribe với QoS2 và gói dữ liệu gởi vào kênh đó gửi với QoS0
thì client đó sẽ đƣợc Broker gởi dữ liệu với QoS0. QoS càng cao thì càng đáng tin cậy,
đồng thời độ trễ và băng thông đòi hỏi cũng cao hơn.


19

1.2.4 Retain
Nếu RETAIN đƣợc set bằng 1, khi gói tin đƣợc gửi từ Client, Broker phải lƣu trữ
lại gói tin với QoS, và nó sẽ đƣợc gởi đến bất kỳ client nào subscribe cùng kênh trong
tƣơng lai. Khi một Client kết nối tới Broker và subscribe, nó sẽ nhận đƣợc gói tin cuối
cùng có RETAIN = 1 với bất kỳ topic nào mà nó đăng ký trùng. Tuy nhiên, nếu
Broker nhận đƣợc gói tin mà có QoS = 0 và RETAIN = 1, nó sẽ huỷ tất cả gói tin có
RETAIN = 1 trƣớc đó. Và phải lƣu gói tin lại, nhƣng hoàn toàn huỷ bất kỳ lúc nào.
Khi gửi một gói dữ liệu đến Client, Broker phải đặt RETAIN = 1 nếu gói đƣợc
gởi nhƣ là kết quả của việc subscribe mới của Client. RETAIN phải bằng 0 nếu không
quan tâm tới kết quả của viẹc subscribe.


1.2.5 LWT
Gói tin LWT (last will and testament) không thực sự biết đƣợc Client có trực
tuyến hay không, do gói tin KeepAlive đảm nhận. Tuy nhiên gói tin LWT nhƣ là thông
tin điều gì sẽ xảy đến sau khi thiết bị ngoại tuyến.


20
CHƢƠNG 2. NỀN TẢNG IBM WASTON IOT
2.1 Bluemix
IBM® Bluemix® là nền tảng điện toán đám mây tạo bởi IBM kết hợp dịch vụ
nền tảng (PaaS) với dịch vụ cơ sở hạ tầng (IaaS). Ngoài ra, Bluemix có một danh sách
dịch vụ điện toán đám mây dễ dàng tích hợp với PaaS và IaaS để xây dựng ứng dụng
kinh doanh nhanh chóng.
Bluemix có triển khai điện toán đám mây phù hợp với nhu cầu của ngƣời dùng
phù hợp dù đó là một doanh nghiệp nhỏ có kế hoạch mở rộng quy mô, hoặc một doanh
nghiệp lớn đòi hỏi phải có thêm dịch vụ. Phát triển một dịch vụ đám mây mà yêu cầu
lƣu trữ không có giới hạn, kết nối với dịch vụ tƣ nhân với dịch vụ công cộng Bluemix
sẵn từ IBM và truy cập ứng dụng, dịch vụ và cơ sở hạ tầng trong Bluemix và sử dụng
dữ liệu hiện có, hệ thống, quy trình và công cụ PaaS và IaaS. Nhà phát triển có thể
phát triển nhanh chóng của dịch vụ có sẵn để xây dựng ứng dụng sử dụng ngôn ngữ
lập trình hỗ trợ nhiều thứ tiếng.
Với Bluemix không cần phải đầu tƣ lớn trong phần cứng để kiểm tra hoặc chạy
một ứng dụng mới. Bluemix cung cấp nhiều ứng dụng công cộng dành riêng triển khai
mô hình tích hợp.
Từ khi thành lập đến kiểm thử, phát triển và đến một môi trƣờng sản xuất phân
phối trên toàn cầu với cơ sở hạ tầng tính toán và lƣu trữ, dịch vụ nền tảng mã nguồn
mở, dịch vụ phần mềm và công cụ của IBM Watson. Khi yêu cầu vƣợt quá khả năng
cung cấp của nền tảng riêng của mình, IBM® Bluemix® cũng cung cấp các giải pháp
triển khai linh hoạt. Cung cấp nguồn lực IBM® Bluemix® tại chỗ trong môi trƣờng

điện toán đám mây tƣ nhân chuyên dụng, hoặc ngay trong điện toán đám mây công
cộng và quản lý nguồn lực từ cả ba loại môi trƣờng trong một bảng điều khiển trong
backend.
Tất cả nguồn tài nguyên điện toán đám mây của IBM đƣợc triển khai trong môi
trƣờng công cộng và chuyên dụng đƣợc lƣu trữ từ vị trí IBM® Data Center đám mây
trên toàn thế giới. Trung tâm dữ liệu đám mây của IBM luôn cung cấp dƣ thừa tài
nguyên trong khu vực, một mạng lƣới toàn cầu kết nối tất cả trung tâm dữ liệu, kiểm
soát an ninh nghiêm ngặt, và luôn đƣợc kiểm tra. Thông qua trung tâm dữ liệu đám
mây của IBM, IBM đáp ứng yêu cầu cao nhất nhu cầu mở rộng, an ninh, tuân thủ, và
dữ liệu lƣu trữ tại vị trí nơi gần nhất của ngƣời sử dụng.
IBM cho phép:
 Triển khai tính toán hiệu suất cao và cơ sở hạ tầng lƣu trữ tại trung tâm dữ
liệu đám mây của IBM an toàn trên thế giới.


21
 Kiểm tra và thông qua một loạt dịch vụ điện toán đám mây và khả năng từ
IBM, cộng đồng mã nguồn mở, và nhà phát triển bên thứ ba.
 Kết nối với tất cả hệ thống cũ và ứng dụng từ một nền tảng điện toán đám
mây mở rộng duy nhất thông qua khả năng của mạng và API riêng.
 Chuyển đổi nguồn lực trong thời gian thực khi doanh nghiệp cần hoặc khối
lƣợng công việc đòi hỏi sự thay đổi.
2.2

Nền tảng của IBM Watson IoT

IoT là cơ hội rất lớn cho doanh nghiệp và ngƣời tiêu dùng, đặc biệt là trong lĩnh
vực y tế, kho bãi, vận tải và hậu cần. Giải pháp IoT liên quan nhiều thiết bị IoT đƣợc
kết nối đến điện toán đám mây. Có ba tầng chính của giải pháp IoT IBM Cloud hỗ trợ:
 Thiết bị / cổng: Đây là những thiết bị thông minh hoặc cảm biến thu thập

dữ liệu về thế giới vật chất. Ví dụ: Nhiệt độ của một container lạnh vận
chuyển thực phẩm dễ hƣ hỏng, hoặc dữ liệu sức khỏe cho bệnh nhân
những ngƣời đã nhập viện. Thiết bị đƣợc kết nối với internet để truyền tải
dữ liệu một cách an toàn với một nền tảng IoT để phân tích, xử lý, và điều
khiển dựa trên tín hiệu dữ liệu đƣợc truyền từ thiết bị đến hệ thống.
 IBM Watson IoT: Thu thập dữ liệu từ thiết bị IoT và cung cấp dịch vụ
khác nhau mà phân tích dữ liệu và có những điều khiển tiếp theo để giải
quyết. Watson IoT cung cấp một tập hợp phong phú dịch vụ nhận thức
(nhƣ học máy xử lý ngôn ngữ tự nhiên, và phân tích hình ảnh) để tăng
cƣờng khả năng xử lý dữ liệu phi cấu trúc thu thập từ cảm biến thông minh
khác nhau.
 IBM Bluemix: Bluemix là một tiêu chuẩn mở dựa trên nền tảng điện toán
đám mây để xây dựng, chạy và quản lý ứng dụng và dịch vụ. Nó hỗ trợ
ứng dụng IoT bao gồm khả năng phân tích và nhận thức trong những ứng
dụng dựa trên nhiều runtimes và dịch vụ.

2.2.1 Apps
Ứng dụng bảng điều khiển cung cấp cho nhà phát triển mọi thứ để xây dựng
đƣợc một ứng dụng đáp ứng đƣợc nhu cầu của ngƣời sử dụng, và để quản lý ứng dụng.
Bluemix cung cấp 2 môi trƣờng boilerplates và runtimes phát triển ứng dụng:
 Boilerplates một khuôn mẫu cho một ứng dụng tích hợp môi trƣờng runtime và
dịch vụ đƣợc xác định trƣớc vào một tên miền cụ thể.
 Runtimes tập hợp mã nguồn đƣợc sử dụng để chạy một ứng dụng, và đƣợc cung
cấp bởi IBM Waston và đƣợc phát triển thành nhiều mã nguồn khác nhau phù
hợp với nhiều hệ điều hành.


22
Sử dụng IBM® Bluemix® OpenWhisk cho phân phối, tính toán hƣớng sự kiện.
OpenWhisk chạy ứng dụng logic để đáp ứng với sự kiện hoặc đƣờng dẫn trực tiếp từ

web hoặc ứng dụng di động trên HTTP.
Sử dụng dịch vụ Bluemix di động để kết hợp xây dựng, quản lý, và khả năng mở
rộng dịch vụ đám mây vào ứng dụng điện thoại di động.

2.2.2 Dịch vụ
Bảng điều khiển dịch vụ cung cấp quyền truy cập vào dịch vụ Bluemix sẵn từ
IBM® và nhà cung cấp bên thứ ba. Chúng bao gồm Watson, Internet of Things,
Analytics, di động và dịch vụ DevOps.
Cung cấp ứng dụng mới nhằm tạo ra sản phẩm nhanh hơn và rẻ hơn chỉ với tính
năng phù hợp sử dụng dịch vụ của IBM DevOps và Phƣơng thức Bluemix Garage.
IBM cung cấp cho ngƣời sử dụng cơ sở dữ liệu đám mây phong phú tích hợp
dịch vụ dữ liệu và phân tích.
Dịch vụ IBM Internet of Things cho phép ứng dụng giao tiếp với và phân tích dữ
liệu đƣợc thu thập bởi, thiết bị kết nối, cảm biến và cổng. Chức năng của Bluemix là
giao tiếp dễ dàng giữa thiết bị kết nối với điện toán đám mây của IoT. Sau đó ứng
dụng sử dụng thời gian thực và REST API để giao tiếp với thiết bị nhận phân tích dữ
liệu các thiết bị thu đƣợc.
IBM cung cấp một cơ sở hạ tầng hỗ trợ điện thoại di động áp dụng cho nhiều
phiên bản của điện thoại theo dõi và kiểm tra thiết bị. Cũng tăng cƣờng ứng dụng với
phân tích, bảo mật và liên tục.

2.2.3 Infrastructure
Bảng điều khiển cơ sở hạ tầng cung cấp dịch vụ khác nhau để phù hợp với nhu
cầu cơ sở hạ tầng điện toán đám mây.
Cơ sở hạ tầng Bluemix cung cấp cao nhất thực hiện cơ sở hạ tầng điện toán đám
mây có sẵn. Cơ sở hạ tầng Bluemix là một trong những nền tảng, trong đó có trung
tâm dữ liệu trên toàn thế giới có đầy đủ phạm vi rộng nhất nhà phát triển có thể tùy
chọn điện toán đám mây, sau đó tích hợp và tự động hóa tất cả mọi thứ. Trung tâm dữ
liệu đám mây của IBM lƣu trữ và thiết bị mạng. Mỗi địa điểm đƣợc xây dựng, trang bị,
và hoạt động trong cùng một cách, vì vậy có đƣợc tính chính xác cùng khả năng và sẵn

sàng bất cứ nơi nào. Địa điểm đƣợc nối với nhau bằng mạng-mạng đƣợc tích hợp công
nghệ riêng biệt, tƣ nhân, và mạng lƣới quản lý nội bộ để cung cấp tổng chi phí thấp
hơn mạng, truy cập tốt hơn, và tốc độ cao hơn. Ngoài ra, trung tâm dữ liệu và mạng


23
chia sẻ một hệ thống quản lý độc quyền duy nhất. Một công cụ quản lý cho phép kiểm
soát tất cả mọi thứ - tất cả máy chủ, máy chủ ảo, và thiết bị lƣu trữ - tất cả truy cập
bằng API, cổng thông tin, và ứng dụng di động.
Cơ sở hạ tầng Bluemix cung cấp máy chủ mạnh mẽ và linh hoạt máy chủ ảo
trong một nền tảng liền mạch. Tất cả đều đƣợc cung cấp theo yêu cầu và lập hoá đơn
theo điều khoản hàng tháng hoặc hàng giờ. Máy chủ Bare cung cấp hiệu quả cho bộ xử
lý và khối lƣợng công việc I / O chuyên sâu và đƣợc cấu hình thông số kỹ thuật. Máy
chủ ảo cho phép tốc độ cao của việc triển khai, khả năng mở rộng linh hoạt, thanh toán
và pay-as-you-go. Đối với máy tính hiệu suất cao, cung cấp cho điện toán đám mây
với đơn vị xử lý đồ họa (GPU) máy chủ, có sẵn theo giờ hoặc hàng tháng.
Dịch vụ cơ sở hạ tầng Bluemix đƣợc kết nối với một mạng lƣới ba tầng, phân
chia công cộng, tƣ nhân. Cơ sở hạ tầng trên tài khoản Bluemix của khách hàng chuyển
dữ liệu giữa cơ sở hạ tầng trên mạng riêng miễn phí. Dịch vụ cơ sở hạ tầng, chẳng hạn
nhƣ máy chủ, máy chủ ảo, và lƣu trữ đám mây, kết nối với ứng dụng khác và dịch vụ
trong danh mục Bluemix, chẳng hạn nhƣ dịch vụ Watson, nơi chứa, hoặc runtimes,
qua mạng công cộng. Truyền dữ liệu giữa hai thiết bị đƣợc đo và tính theo giá cƣớc
băng thông mạng tiêu chuẩn.

2.2.4 Kiến trúc Bluemix Clound Foundry
Hệ điều hành và lớp cơ sở hạ tầng khi chạy ứng dụng trên Bluemix trong Cloud
Foundry. Hệ thống tập tin gốc và thành phần trung gian đƣợc trừu tƣợng để tập trung
vào mã ứng dụng.
Tƣơng tác với cơ sở hạ tầng Bluemix bằng cách sử dụng một giao diện ngƣời
dùng dựa trên trình duyệt. Sử dụng một giao diện dòng lệnh của Cloud Foundry gọi là

cf, để triển khai ứng dụng web.
Khách hàng sử dụng ứng dụng di động, ứng dụng chạy bên ngoài, ứng dụng đƣợc
xây dựng trên Bluemix, hoặc nhà phát triển đang sử dụng trình duyệt tƣơng tác với
ứng dụng Bluemix tổ chức. Khách hàng sử dụng REST hoặc HTTP API để yêu cầu
qua Bluemix đến một trong trƣờng hợp ứng dụng hoặc dịch vụ tổng hợp.
Triển khai ứng dụng với khu vực khác nhau Bluemix không cần quan tâm đến
bảo mật. Chọn địa điểm để triển khai hoặc để một khu vực hoặc trên nhiều khu vực.
Khi triển khai một ứng dụng để Bluemix Clound Foundry, phải cấu hình Bluemix
với đầy đủ thông tin để hỗ trợ ứng dụng.
 Đối với một ứng dụng di động, Bluemix chứa một vật đại diện cuối cùng
chuyển đổi lại ứng dụng di động, chẳng hạn nhƣ dịch vụ mà ứng dụng điện
thoại di động sử dụng để giao tiếp với một máy chủ.


24
 Đối với một ứng dụng web, phải đảm bảo rằng thông tin về thời gian chạy và
khung đƣợc truyền đạt tới Bluemix, để Bluemix thiết lập môi trƣờng thực thi
thích hợp để chạy ứng dụng.
Mỗi môi trƣờng thực hiện, bao gồm cả điện thoại di động và web, đƣợc phân lập
từ môi trƣờng thực thi của ứng dụng khác.
Khi tạo một ứng dụng và triển khai nó đến điện toán đám mây Bluemix Foundry,
môi trƣờng Bluemix xác định một máy chủ ảo thích hợp để gửi ứng dụng, hoặc ứng
dụng đại diện. Đối với một ứng dụng điện thoại di động, một chiếc back-end di động
đƣợc tạo ra trên Bluemix. Bất kỳ mã cho ứng dụng điện thoại di động chạy trong đám
mây cuối cùng chạy trong môi trƣờng Bluemix. Đối với một ứng dụng web, mã chạy
trong đám mây là ứng dụng riêng của mình mà nhà phát triển để triển khai Bluemix.
Việc xác định máy chủ ảo đƣợc dựa trên một số yếu tố, bao gồm:
 Tốc độ sử lí
 Runtimes hoặc khuôn khổ hỗ trợ bởi máy chủ ảo.
Sau khi một máy chủ ảo đƣợc chọn, ngƣời quản lý ứng dụng trên mỗi máy chủ

ảo cài đặt và tích hợp thời gian chạy cho ứng dụng. Sau đó ứng dụng đƣợc triển khai
vào mẫu. Khi triển khai hoàn tất ứng dụng đƣợc bắt đầu.
Trong mỗi máy chủ ảo, một ngƣời quản lý ứng dụng giao tiếp với phần còn lại
của cơ sở hạ tầng Bluemix, và quản lý ứng dụng đƣợc triển khai đến máy chủ ảo. Mỗi
máy chủ ảo có vùng chứa để tách và bảo vệ ứng dụng. Trong mỗi nơi chứa, Bluemix
cài đặt khuôn mẫu và thời gian chạy thích hợp đƣợc yêu cầu cho mỗi ứng dụng.
Khi ứng dụng đƣợc triển khai, nếu nó có một giao diện web (nhƣ đối với một
ứng dụng web Java) hoặc dịch vụ dựa trên REST khác (chẳng hạn nhƣ dịch vụ điện
thoại di động tiếp xúc công khai cho ứng dụng điện thoại di động), ngƣời sử dụng ứng
dụng giao tiếp với nó bằng cách sử dụng yêu cầu HTTP tín hiệu bình thƣờng. Mỗi ứng
dụng có một hoặc nhiều URL liên kết ,khi có một request đến Bluemix xem xét yêu
cầu xác định ứng dụng nào đó đƣợc dành cho, sau đó chọn một thể hiện của ứng dụng
nhận yêu cầu.

2.2.5 Regions
Một khu vực Bluemix là một lãnh thổ địa lý đƣợc xác định triển khai ứng dụng
nơi đặt dự án. Tạo ra ứng dụng và trƣờng hợp dịch vụ tại khu vực khác nhau với cơ sở
hạ tầng Bluemix quản lý ứng dụng và chi tiết sử dụng và tính phí riêng cho mỗi khu
vực. Chọn khu vực đó là gần nhất với khách hàng và triển khai ứng dụng đến khu vực
để tín hiệu giao tiếp giữa thiết bị và nền tang có độ trễ thấp nhất. Chọn khu vực nơi
muốn giữ lại dữ liệu ứng dụng để giải quyết vấn đề an ninh. Khi xây dựng ứng dụng ở


25
nhiều vùng, nếu một trong những khu vực trở nên không có sẵn, ứng dụng đƣợc trong
khu vực khác tiếp tục chạy, trợ cấp tài nguyên là nhƣ nhau cho từng vùng sử dụng.
Nhà phát triển muốn thây đổi vị trí nơi đặt dự án thì Bluemix cung cấp hai
phƣơng pháp sau để thay đổi vị trí:
 Nếu sử dụng giao diện ngƣời dùng Bluemix, chuyển sang một khu vực khác
nhau để làm việc với không gian trong khu vực đó. Nhấp vào liên kết tùy

chọn tài khoản ngƣời dùng, mở rộng chọn Region, sau đó chọn khu vực yêu
cầu từ danh sách.
 Nếu sử dụng giao diện dòng lệnh cf, để kết nối với khu vực Bluemix muốn
làm việc với, sử dụng lệnh API cf và xác định điểm cuối API của khu vực.
Ví dụ:
Nhập vào lệnh sau đây để kết nối với Bluemix khu vực Châu Âu nƣớc Anh:
cf api

Một tiền tố duy nhất đƣợc gán cho mỗi khu vực. Bluemix cung cấp khu vực sau
đây và tiền tố khu vực.
Tên vùng

Vị trí địa lý

Khu vực
tiền tố

Điểm cuối API
cf

UI điều khiển

US South
region

Dallas, US

ng

United

Kingdom
region

London,
England

eu-gb

api.eugb.bluemix.net

console.eugb.bluemix.net

Sydney region

Sydney,
Australia

au-syd

api.ausyd.bluemix.net

console.ausyd.bluemix.net

api.ng.bluemix.n console.ng.bluemi
et
x.net

Bảng 1. Region

2.2.6 Phục hồi Bluemix

Bluemix đƣợc thiết kế để lƣu trữ mở rộng ứng dụng mở rộng để đáp ứng nhu
cầu, và nhanh chóng để phục hồi từ vấn đề. Bluemix tách thành phần theo dõi trạng
thái của tƣơng tác (stateful) từ thành phần (stateless). Sự tách biệt cho phép Bluemix
phát triển ứng dụng một cách linh hoạt khi cần thiết để đạt đƣợc khả năng mở rộng và
khả năng phục hồi.
Bluemix triển khai các yêu cầu của trƣờng hợp của ứng dụng và phân phối chúng
qua nhiều máy chủ ảo.


×