BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
NGUYỄN CHUNG LỰC
NGHIÊN CỨU KIẾN TRÚC VÀ CÁC DỊCH VỤ NỀN TẢNG MẠNG
XÃ HỘI ỨNG DỤNG CHO INTERNET OF THINGS
LUẬN VĂN THẠC SĨ KỸ THUẬT
Hà Nội – 2017
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Nguyễn Chung Lực
NGHIÊN CỨU KIẾN TRÚC VÀ CÁC DỊCH VỤ NỀN TẢNG MẠNG
XÃ HỘI ỨNG DỤNG CHO INTERNET OF THINGS
Chuyên ngành : Kỹ thuật điện tử
LUẬN VĂN THẠC SĨ KỸ THUẬT
Cán bộ hướng dẫn khoa học:
Ts. Ngô Vũ Đức
Hà nội – 2017
LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình nghiên cứu của riêng 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.
Tơi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này đã được
cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc.
Học viên thực hiện Luận văn
(Ký và ghi rõ họ tên)
Nguyễn Chung Lực
1
LỜI CẢM ƠN
Trước tiên, em xin gửi lời cảm ơn chân thành tới TS. Ngô Vũ Đức, người thầy đã tận
tình giúp đỡ em trong suốt q trình làm khóa luận. Em cũng xin gửi lời cảm ơn tới các
Thầy, Cô trong viện, người đã hướng dẫn em trong giai đoạn chuẩn bị nhận đề tài.
Em xin gửi lời biết ơn sâu sắc tới thầy, cô trong Trường Đại Học Bách Khoa Hà Nội.
Thầy, cơ đã dìu dắt, truyền lại cho chúng em không chỉ những kiến thức chuyên ngành
mà còn dạy bảo chúng em đạo làm người, rèn luyện cho chúng em nghị lực, khát vọng
vươn lên, phát huy khả năng tư duy sáng tạo trong mọi lĩnh vực.
Cuối cùng, tơi xin được cảm ơn gia đình, bạn bè, những người thân yêu nhất của tôi.
Mọi người luôn ở bên cạnh tơi, động viên, khuyến khích tơi vươn lên trong cuộc sống.
Hà nội, tháng 3 năm 2017
Nguyễn Chung Lực
2
DANH MỤC TỪ VIẾT TẮT
Ký hiệu viết tắt
STT
Tên của ký hiệu viết tắt
1
IOT
Internet of Things
2
SIOT
Social Internet of Things
3
UI
User Interface
4
SoC
System on Chip
5
UUID
Universally Unique IDentifier
6
SMTP
Simple Mail Transfer Protocol
7
M2M
Machine to Manchine
8
MQTT
Message Queuing Telemetry Transport
9
XACML
eXtensible Access Control Markup Language
10
SCADA
Supervisory Control And Data Acquisition
11
UCC
User Creat Content
12
CoAP
Constrained Application Protocol
13
RSS
Really Simple Syndication
14
WSNs
Wireless Sensor Networks
15
UPC
Universal Product Code
16
EPC
Electronic Product Code
17
OP
Object Profiling
18
OC
Owner Control
19
SD
Service Discovery
20
RM
Relationship Manager
21
SC
Service Composition
22
SNS
Social Network Service
23
PEP
Policy Enforcement Point
24
PDP
Policy Decision Point
25
HTTP
Hyper Text Transfer Protocol
3
DANH MỤC HÌNH VẼ
Chƣơng 1
Hình 1.1: Kết nối mọi vật ............................................................................................... 14
Hình 1.2: Mơ hình kết nối hệ thống IoT ........................................................................ 19
Hình 1.3: Kiến trúc tham chiếu cho IoT ........................................................................ 22
Hình 1.4: Kiến trúc phân lớp ứng dụng ......................................................................... 32
Chƣơng 2
Hình 2.1: Kiến trúc mạng xã hội IoT ............................................................................. 37
Hình 2.2: Kiến trúc của SIoT trong tương lai ................................................................ 40
Hình 2.3: Thành phần cơ bản của nền tảng mạng xã hội ............................................... 43
Hình 2.4: Kiến trúc của SIoT: client bên trái và server bên phải. .................................. 46
Chƣơng 3
Hình 3.1: Mơ hình tổng thể hệ thống SIoT .................................................................... 50
Hình 3.2: Mơ hình kết nối giữa các máy chủ / cloud. .................................................... 51
Hình 3.3: Quản lý thiết bị trong SIoT ............................................................................ 51
Hình 3.4: Sơ đồ use case cho người dùng ...................................................................... 54
Hình 3.5: Sơ đồ use case của Deverloper ...................................................................... 57
Hình 3.6: Quy trình khai báo và đăng ký một thiết bị ................................................... 59
Hình 3.7: Sơ đồ các bước đăng ký tạo ứng dụng mới .................................................... 60
Hình 3. 8: Sơ đồ use case truy xuất dữ liệu, quản lý thiết bị ......................................... 60
Hình 3. 9: Hình ảnh thực tế Arduino.............................................................................. 66
Hình 3. 10: Sơ đồ kết nối Themistor 10k với Arduino .................................................. 67
Hình 3. 11: Sơ đồ kêt nối ESP8266 với Arduino ........................................................... 68
Hình 3. 12: Giao diện hướng dẫn sử dụng API .............................................................. 70
Hình 3. 13: Trang chủ của Heli ...................................................................................... 71
Hình 3.14: Danh sách bạn bè ......................................................................................... 71
Hình 3.15: Giao diện thông tin trên trang cá nhân ......................................................... 72
4
Hình 3.16: Giao diện quản lý ứng dụng ......................................................................... 72
Hình 3.17: Quản lý danh sách node của ứng dụng ........................................................ 73
Hình 3.18: Thơng tin của node ....................................................................................... 74
Hình 3.19: Quản lý dữ liệu của Node ............................................................................ 74
Hình 3. 20: Giao diện thêm mới ứng dụng .................................................................... 75
5
MỤC LỤC
LỜI NÓI ĐẦU ............................................................................................................... 8
LỜI CẢM ƠN ................................................................................................................ 2
Chƣơng 1: Tổng quan ................................................................................................. 10
1.1
Xuất xứ của đề tài ............................................................................................. 10
1.2
Sự phát triển của SIoT trên thế giới và tại Việt Nam ....................................... 11
1.2.1
Trên thế giới ............................................................................................... 11
1.2.2
Tại Việt Nam ............................................................................................. 12
1.3
Tổng quan về Internet of Things ...................................................................... 12
1.3.1
Khái niệm Internet of Things ..................................................................... 12
1.3.2
Đặc điểm cơ bản và yêu cầu của hệ thống IoT .......................................... 15
1.3.3
Kiến trúc tham chiếu cho Internet of Things ............................................. 17
1.4
Tổng quan về mạng xã hội ............................................................................... 26
1.4.1
Khái niệm về mạng xã hội ......................................................................... 26
1.4.2
Lịch sử hình thành và phát triển các mạng xã hội ..................................... 27
1.4.3
Đặc điểm cơ bản của mạng xã hội ............................................................. 27
1.4.4
Tính năng của mạng xã hội ........................................................................ 29
1.4.5
Kiến trúc cơ bản của một mạng xã hội ...................................................... 31
1.4.6
Một số công nghệ cơ bản trong các mạng xã hội hiện nay........................ 35
Chƣơng 2: Nghiên cứu kiến trúc và dịch vụ nền tảng mạng xã hội ....................... 36
2.1
Giới thiệu hệ thống mạng xã hội vạn vật.......................................................... 36
2.2
Từ mạng cảm biến không dây đến mạng xã hội vạn vật .................................. 38
2.3
Kiến trúc nền tảng mạng xã hội của vạn vật (SIoT) ......................................... 39
2.3.1
Thành phần của SNS.................................................................................. 42
2.3.2
Thành phần của SIoT ................................................................................. 43
2.3.3
Kiến trúc của hệ thống mạng xã hội vạn vật ............................................. 45
Chƣơng 3: Thiết kế, xây dựng, thử nghiệm SIoT .................................................... 48
6
3.1
Đặt vấn đề bài tốn ........................................................................................... 48
3.2
Phân tích thiết kế hệ thống ............................................................................... 49
3.2.1
Một số đặc điểm của Heli .......................................................................... 52
3.2.2
Sơ đồ kịch bản sử dụng cho người dùng ................................................... 54
3.2.3
Sơ đồ kịch bản sử dụng cho Deverloper .................................................... 56
3.2.4
Truy xuất dữ liệu, điều khiển thiết bị ........................................................ 58
3.3
Xây dựng các Application ................................................................................ 62
3.3.1
Xây dựng ứng dụng trên hệ thống SIOT ................................................... 62
3.3.2
Quản lý ứng dụng ...................................................................................... 62
3.3.3
Xây dựng hệ thống riêng biết sử dụng API của SIOT ............................... 64
3.3.4
Chia sẻ dữ liệu với các Developer khác .................................................... 64
3.4
Sử dụng Application của Developer................................................................. 65
3.5
Xây dựng phát triển ứng dụng .......................................................................... 65
3.5.1
Yêu cầu thiết kế phần cứng........................................................................ 65
3.5.2
Thiết kế phần mềm hệ thống ..................................................................... 68
3.6
Kết quả đề tài .................................................................................................... 71
3.6.1
Trang chủ của hệ thống:............................................................................. 71
3.6.2
Tiện ích thơng qua giao diện hệ thống....................................................... 71
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ................................................................. 77
TÀI LIỆU THAM KHẢO .......................................................................................... 79
7
LỜI NÓI ĐẦU
Trên thế giới, trong ba thập kỷ qua đã diễn ra sự bùng nổ về công nghệ viễn
thông và công nghệ thông tin. Sự liên kết giữa viễn thông và công nghệ thông tin ngày
càng chặt chẽ. Hệ thống viễn thông trở thành những xa lộ để phục vụ các ứng dụng
cơng nghệ thơng tin chạy trên nó. Trong những năm gần đây, chúng ta thường xuyên
được nhắc tới một phương thức truyền tải và trao đổi thông tin phổ biến và được nhiều
người ưu thích là mạng xã hội. Mặc dù đây là loại hình dịch phụ ra đời sau, tuy nhiên
do mức độ tương tác, truyền tải thơng tin và tính kết nối cao hơn hẳn các loại hình khác
nên chỉ sau một thời gian ngắn ra đời, mạng xã hội đã có những bước phát triển vượt
bậc. Một trong những lợi ích lớn do dịch vụ mạng xã hội mang lại là nguồn thông tin
khổng lồ được lưu trữ, chia sẻ. Các nội dụng trên mạng xã hội hoàn toàn do người
dùng tự tạo ra, còn nhà cung cấp dịch vụ chỉ xây dựng một nền tảng phục vụ nhu cầu
tạo lập và chia sẻ nội dung cho người dùng. Do đó thơng tin trên mạng xã hội tăng theo
số lượng người dùng.
Với mạng xã hội, con người có thể chia sẻ những cảm nhận, tri thức mà mình
đã thu thập được cho mọi người và từ đó cũng thu thập lại các kiến thức từ mạng xã
hội do những thành viên khác chia sẻ lại. Ngày nay công nghệ ngày càng phát triển,
mọi đồ vật đều có thể kết nối đến internet (Internet of Things) do đó các thiết bị điện tử
cũng đều có những thông tin riêng. Với sự phát triển không ngừng của công nghệ, các
thiết bị điện tử ngày nay không chỉ cung cấp các tiện ích một cách đơn thuần cho con
người mà đã ngày càng “thông minh” hơn, chúng có thể cảm nhận mơi trường xung
quanh, có khả năng xử lý các thông tin thu thập được để phản ứng lại với những thay
đổi của môi trường. Mỗi thiết bị chỉ có thể thu thập được một số thơng tin nhất định
phù hợp với chức năng của nó, nhưng nếu kết hợp thông tin của nhiều thiết bị con
người có thể có được thơng tin đầy đủ hơn, chính xác hơn, sâu rộng hơn, để từ đó có
8
thể có thêm cơ sở để đưa ra các tiện ích, các thiết bị tốt hơn nữa phục vụ cho đời sống
con người hiện đại.
Xuất phát từ yêu cầu đó tôi lựa chọn đề tài ―Nghiên cứu kiến trúc và các dịch vụ nền
tảng mạng xã hội ứng dụng cho Internet of Things‖ tập chung xây dựng một mạng xã
hội dành cho các thiết bị, là nơi các thiết bị điện tử chia sẻ, cập nhật thông tin dưới sự
quản lý của con người - người sở hữu các thiết bị.
9
Chƣơng 1: Tổng quan
1.1 Xuất xứ của đề tài
Trên cơ sở số liệu thống kê của trang web: wearesocial.sg tháng 01 năm 2014, tỉ
lệ truy cập Internet qua các thiết bị di đông tại Việt Nam là khoảng 36% tổng số dân,
trong đó tỷ lệ các thuê bao di động sử dụng dịch vụ internet di động 3G là 16% [9].
Với tốc độ phát triển hạ tầng viễn thông được xếp hạng hàng đầu châu Á và thế giới, tỷ
lệ người Việt dùng Intetnet di động vẫn đang và sẽ tiếp tục tăng nhanh.
Cũng theo số liệu của wearesocial [8], có 58% người dùng Internet Việt Nam sử dụng
thường xuyên các ứng dụng mạng xã hội trên điện thoại di động, điển hình là mạng xã
hội Facebook. Các số liệu trên là tiền đề cơ sở cho các nhà phát triển cơng nghệ thơng
tin và truyền thơng có thể chuyển xu hướng phát triển các sản phẩm phần mềm, phần
cứng đơn lẻ, độc lập chuyển sang các mơ hình dựa trên mạng xã hội.
Mạng xã hội được xem là dịch vụ nối kết các thành viên trên mạng [5]. Trong suốt lịch
sử phát triển của mạng xã hội từ khi ra đời năm 1995 đến nay, đối tượng quản lý chính
của các mạng xã hội là các tài khoản trên mạng (user account). Phải đến gần đây, với
sự phát triển như vũ bão của các ứng dụng Intetnet kết nối các thiết bị/đồ vật (Internet
of things - IoT), mạng xã hội kết nối các thiết bị (Social Internet of things - SIoT) mới
ra đời [1]. Trong đó, SIoT là một mạng xã hội dành cho các thiết bị nhằm cung cấp mơi
trường để người sử dụng có thể quản lý thiết bị từ xa, tìm các dịch vụ cho các thiết bị
mà họ có, đồng thời cung cấp API để nhà phát triển có thể khai thác và cung cấp các
tiện ích dựa trên các thơng tin được các thiết bị chia sẻ [1].
Mặc dù đã bắt đầu xuất hiện một vài sản phẩm SIoT trên thế giới như
[10] và đặc biệt Facebook
cũng đã bắt đầu quan tâm đến triển khai tích hợp SIoT [9], tuy nhiên chưa có những
mạng SIoT nào được cộng đồng người sử dụng quan tâm và sử dụng rộng rãi.
10
Xuất phát từ thực tế thông qua các khảo sát trên, chúng tôi đã nảy sinh ý tưởng
xây dựng một mạng xã hội cho vạn vật. Khi tham gia vào mạng, nhà phát triển được
khai thác, sử dụng API, tài nguyên của hệ thống, được quảng bá ứng dụng trên các
thiết bị đến người dùng. Bên cạnh đó, các thơng tin của nhiều thiết bị của người dùng
có thể được kết hợp với nhau để nhà phát triển khai thác tạo nên những ứng dụng, thiết
bị tự động hóa, hiện đại. Người dùng có thể quản lý được các thiết bị của mình từ xa,
có thể tìm kiếm thêm dịch vụ cho các thiết bị mà mình đang có. Thiết bị trở nên hữu
ích hơn với người sử dụng do các thơng tin mà nó thu thập được khai thác triệt để, đem
lại nhiều lợi ích về kinh tế, xã hội.
1.2 Sự phát triển của SIoT trên thế giới và tại Việt Nam
1.2.1 Trên thế giới
Trên thế giới, các hệ thống cung cấp SIoT đang trong giai đoạn hình thành và
phát triển, tuy nhiên cộng đồng người sử dụng SIoT còn chưa nhiều, chưa thể tạo một
mạng xã hội rộng lớn như Facebook, do các hệ thống SIoT được xây dựng với khuynh
hướng dành cho nhà phát triển thiết bị và ứng dụng, mang tính kỹ thuật cao, cịn xa lạ
với người sử dụng phổ thơng. Ví dụ như một vài hệ thống SIoT:
được xây dựng từ năm 2014, là một trang SIoT được đầu tư
xây dựng kỹ lưỡng, tuy nhiên số lượng thành viên hiện chưa nhiều, do phải tính phí
trên mỗi thiết bị mà một người quản lý nên sẽ khó mở rộng thành một mạng xã hội,
bên cạnh đó trang khơng cung cấp nhiều chức năng để cho phép con người có thể tìm
kiếm tiện ích, tìm kiếm thơng tin của các thiết bị cùng loại, chia sẻ thông tin giữa các
người dùng mà chủ yếu tập trung vào việc cho phép nhà phát triển xây dựng các tiện
ích với thơng tin từ các thiết bị và các API được cung cấp.
được phát triển từ năm 2015, mục tiêu khác
với thethings, iotglobalnetwork lại tập trung vào khía cạnh thương mại của SIoT, trong
đó người dùng có thể tìm kiếm các dịch vụ và thương mại hóa các sản phẩm của mình
11
mà không tập trung vào các nhà phát triển nhỏ lẻ hay tập trung về khía cạnh chia sẻ
thơng tin của các thiết bị.
Trên đây là một số thông tin về sự phát triển của SIoT trên thế giới mà tơi đã thu
thập được, tuy chưa có nhiều tư liệu, nhưng qua khảo sát chúng tơi nhận thấy rằng
SIoT cịn đang ở giai đoạn tiền phát triển, mỗi một nhà cung cấp dịch vụ lại khai thác
một mặt riêng của SIoT, tuy nhiên để mở rộng được tính xã hội cần được quan tâm
hơn, đó chính là ưu điểm của hệ thống Heli mà đề tài đang phát triển.
1.2.2 Tại Việt Nam
Các hệ thống SIoT hiện tại chưa được phát triển mạnh mẽ tại Việt Nam, SIoT
đang được nghiên cứu và mới chỉ khai thác một phần nhỏ trong đó như mạng cảm biến,
ngôi nhà thông minh… mà chưa thực sự khai thác được tính xã hội của IoT. Đây cũng
là một thực tế khách quan khi chưa có nhiều hệ thống SIoT thành cơng trên thế giới,
bên cạnh đó SIoT khai thác và cung cấp tiện ích cho các thiết bị thông minh, tạo ra
những hệ thống tự động hóa và chia sẻ thơng tin hiện đại, trong khi đó việc sử dụng các
hệ thống như vậy ở nước ta còn nhiều hạn chế.
1.3 Tổng quan về Internet of Things
1.3.1 Khái niệm Internet of Things
Mạng lưới vạn vật kết nối Internet hoặc là mạng lưới thiết bị kết nối Internet viết
tắt là IoT (Internet of Things) là một kịch bản của thế giới, khi mà mỗi đồ vật, con
người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải,
trao đổi thơng tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực
tiếp giữa người với người, hay người với máy tính. IoT đã phát triển từ sự hội tụ
của công nghệ không dây, công nghệ vi cơ điện tử và Internet. Nói đơn giản là một tập
hợp các thiết bị có khả năng kết nối với nhau, với Internet và với thế giới bên ngoài để
thực hiện một cơng việc nào đó.
IoT là thuật ngữ dùng để chỉ các đối tượng có thể được nhận biết (identifiable)
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
12
đượ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 tồn cầu cho RFID
(một 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.
Vào tháng 6 năm 2009, Ashton từng cho biết rằng hiện nay máy tính Internet gần như phụ thuộc hồn tồn vào con người để chuyển tải dữ liệu. Gần như tất cả trong
số 50 petabyte dữ liệu đang có trên Internet (vào thời điểm đó) đều được ghi lại hoặc
tạo ra bởi con người chúng ta, thông qua các các thức như gõ chữ, nhấn nút, chụp ảnh,
quét mã vạch... Con người chính là nhân tố quyết định trong thế giới Internet hiện nay.
Thế nhưng con người lại có nhiều nhược điểm: chúng ta chỉ có thời gian hạn chế, khả
năng tập trung và độ chính xác cũng ở mức thấp so với máy móc. Điều đó có nghĩa là
chúng ta không giỏi trong việc thu thập thông tin về thế giới xung quanh, và đây là một
vấn đề lớn.
Ví dụ đơn giản như sau: chiếc tủ lạnh thông thường của bạn không được kết nối
với thiết bị nào khác. Nếu chúng ta muốn ghi lại nhiệt độ ở từng thời điểm của tủ,
chúng ta chỉ có cách ghi lại thủ cơng rồi nhập vào một máy tính hay thiết bị lưu trữ nào
đó. Hay như bóng đèn neon ở nhà chẳng hạn, chúng ta muốn thu thập, điều chỉnh độ
sáng của nó thì phải đo thủ cơng rồi ghi lại.
Cịn nếu như máy tính có khả năng giúp con người thu thập tất cả những dữ liệu
về mọi thứ xung quanh, chúng ta có thể theo dõi và đếm mọi thứ, giúp giảm hao phí,
chi phí và lỗ. Chúng ta sẽ biết chính xác khi nào các vật dụng cần phải sửa chữa, thay
thế, khi nào chúng còn mới và khi nào thì chúng hết hạn sử dụng. Chưa kể đến việc
chúng ta có thể kiểm sốt chúng mọi lúc mọi nơi. IoT có tiềm năng thay đổi thế giới,
giống như cách mà Internet đã thay đổi cuộc sống của chúng ta. Ngơi nhà thơng minh
với các bóng đèn thơng minh, máy giặt thơng minh, tủ lạnh thơng minh... có thể xem là
bước đầu của IoT bởi chúng đều được liên kết với nhau và/hoặc liên kết vào Internet.
13
IoT có thể được coi là một tầm nhìn sâu rộng của công nghệ và cuộc sống. Từ
quan điểm của tiêu chuẩn kỹ thuật, IoT có thể được xem như là một cơ sở hạ tầng
mang tính tồn cầu cho xã hội thông tin, tạo điều kiện cho các dịch vụ tiên tiến thông
qua sự liên kết các “Things”. IoT dự kiến sẽ tích hợp rất nhiều cơng nghệ mới, chẳng
hạn như các công nghệ thông tin machine-to-machine, mạng tự trị, khai thác dữ liệu và
ra quyết định, bảo vệ sự an ninh và sự riêng tư, điện toán đám mây. Như hình dưới,
một hệ thống thơng tin trước đây đã mang đến 2 chiều – “Any TIME” và “Any
PLACE” communication. Giờ đây IoT đã tạo thêm một chiều mới trong hệ thống thơng
tin đó là “Any THING” Communication (Kết nối vạn vật).
Hình 1.1: Kết nối mọi vật
Trong hệ thống IoT, “Things” là đối tượng của thế giới vật chất (Physical) hoặc
các thơng tin (Virtual). “Things” có khả năng nhận diện và có thể tích hợp vào mạng
thơng tin. “Things” có liên quan đến thơng tin, có thể là tĩnh hay động. “Physical
Things” tồn tại trong thế giới vật lý và có khả năng được cảm nhận, được kích thích và
kết nối. Ví dụ về “Physical Things” bao gồm các mơi trường xung quanh, robot cơng
nghiệp, hàng hóa, hay thiết bị điện. “Virtual Things” tồn tại trong thế giới thông tin và
có khả năng được lưu trữ, xử lý, hay truy cập. Ví dụ về “Virtual Things” bao gồm các
nội dung đa phương tiện và các phần mềm ứng dụng. Hay hiểu một cách đơn giản IoT
14
là tất cả các thiết bị có thể kết nối với nhau. Việc kết nối thì có thể thực hiện qua WiFi, mạng viễn thông băng rộng (3G, 4G), Bluetooth, ZigBee, hồng ngoại… Các thiết bị
có thể là điện thoại thơng minh, máy pha cafe, máy giặt, tai nghe, bóng đèn, và nhiều
thiết bị khác. Cisco, nhà cung cấp giải pháp và thiết bị mạng hàng đầu hiện nay dự báo:
Đến năm 2020, sẽ có khoảng 50 tỷ đồ vật kết nối vào Internet, thậm chí con số này cịn
gia tăng nhiều hơn nữa. IoT sẽ là mạng khổng lồ kết nối tất cả mọi thứ, bao gồm cả con
người và sẽ tồn tại các mối quan hệ giữa người và người, người và thiết bị, thiết bị và
thiết bị. Một mạng lưới IoT có thể chứa đến 50 đến 100 nghìn tỉ đối tượng được kết nối
và mạng lưới này có thể theo dõi sự di chuyển của từng đối tượng. Một con người sống
trong thành thị có thể bị bao bọc xung quanh bởi 1000 đến 5000 đối tượng có khả năng
theo dõi.
1.3.2 Đặc điểm cơ bản và yêu cầu của hệ thống IoT
1.3.2.1 Đặc tính cơ bản của IoT
- Tính kết nối liên thơng (interconnectivity): với IoT, bất cứ điều gì cũng có thể kết
nối với nhau thông qua mạng lưới thông tin và cơ sở hạ tầng liên lạc tổng thể.
- Những dịch vụ liên quan đến “Things”: hệ thống IoT có khả năng cung cấp các dịch
vụ liên quan đến “Things”, chẳng hạn như bảo vệ sự riêng tư và nhất quán giữa
Physical Thing và Virtual Thing. Để cung cấp được dịch vụ này, cả công nghệ phần
cứng và công nghệ thông tin (phần mềm) sẽ phải thay đổi.
- Tính khơng đồng nhất: Các thiết bị trong IoT là khơng đồng nhất vì nó có phần cứng
khác nhau, và network khác nhau. Các thiết bị giữa các network có thể tương tác với
nhau nhờ vào sự liên kết của các network.
- Thay đổi linh hoạt: Status của các thiết bị tự động thay đổi, ví dụ, ngủ và thức dậy,
kết nối hoặc bị ngắt, vị trí thiết bị đã thay đổi và tốc độ đã thay đổi… Hơn nữa, số
lượng thiết bị có thể tự động thay đổi.
- Quy mơ lớn: Sẽ có một số lượng rất lớn các thiết bị được quản lý và giao tiếp với
nhau. Số lượng này lớn hơn nhiều so với số lượng máy tính kết nối Internet hiện nay.
15
Số lượng các thông tin được truyền bởi thiết bị sẽ lớn hơn nhiều so với được truyền bởi
con người.
1.3.2.2 Yêu cầu ở mức cao đối với một hệ thống IoT
- Kết nối dựa trên sự nhận diện: Nghĩa là các “Things” phải có ID riêng biệt. Hệ
thống IOT cần hỗ trợ các kết nối giữa các “Things” và kết nối được thiết lập dựa trên
định danh (ID) của Things.
- Khả năng cộng tác: hệ thống IoT khả năng tương tác qua lại giữa các mạng và
Things.
- Khả năng tự quản của mạng: Bao gồm tự quản lý, tự cấu hình, tự recovery, tự tối ưu
hóa và tự có cơ chế bảo vệ. Điều này cần thiết để mạng có thể thích ứng với các lĩnh
vực ứng dụng khác nhau, môi trường truyền thông khác nhau, và nhiều loại thiết bị
khác nhau.
- Dịch vụ thoả thuận: dịch vụ này để có thể được cung cấp bằng cách thu thập, giao
tiếp và xử lý tự động các dữ liệu giữa các “Things” dựa trên các quy tắc (rules) được
thiết lập bởi người vận hành hoặc tùy chỉnh bởi các người dùng.
- Các khả năng dựa vào vị trí (location-based capabilities): Thơng tin liên lạc và các
dịch vụ liên quan đến một cái gì đó sẽ phụ thuộc vào thơng tin vị trí của Things và
người sử dụng. Hệ thống IoT có thể biết và theo dõi vị trí một cách tự động. Các dịch
vụ dựa trên vị trí có thể bị hạn chế bởi luật pháp hay quy định, và phải tuân thủ các yêu
cầu an ninh.
- Bảo mật: Trong IoT, nhiều “Things” được kết nối với nhau. Chình điều này làm
tăng mối nguy trong bảo mật, chẳng hạn như bí mật thông tin bị tiết lộ, xác thực sai,
hay dữ liệu bị thay đổi hay làm giả.
- Bảo vệ tính riêng tư: tất cả các “Things” đều có chủ sở hữu và người sử dụng của
nó. Dữ liệu thu thập được từ các “Things” có thể chứa thơng tin cá nhân liên quan chủ
sở hữu hoặc người sử dụng nó. Các hệ thống IoT cần bảo vệ sự riêng tư trong quá trình
16
truyền dữ liệu, tập hợp, lưu trữ, khai thác và xử lý. Bảo vệ sự riêng tư không nên thiết
lập một rào cản đối với xác thực nguồn dữ liệu.
- Plug and play: các Things phải được plug-and-play một cách dễ dàng và tiện dụng.
- Khả năng quản lý: hệ thống IoT cần phải hỗ trợ tính năng quản lý các “Things” để
đảm bảo mạng hoạt động bình thường. Ứng dụng IoT thường làm việc tự động mà
không cần sự tham gia của con người, nhưng tồn bộ q trình hoạt động của họ nên
được quản lý bởi các bên liên quan.
1.3.3 Kiến trúc tham chiếu cho Internet of Things
Internet của Sự vật (IoT) là khái niệm về mọi vật đều có thể kết nối Internet
thơng qua các bộ cảm biến (sensor). Hệ thống IoT có thể bao gồm: các thiết bị đeo
(wearable) theo dõi chỉ số y tế, thiết bị đo từ xa, nhà thông minh, mạng cảm biến không
dây đo thông số môi trường, ô tô kết nối Internet, điện thoại di động tương tác với môi
trường... Kết quả là khơng có một kiến trúc chung duy nhất phù hợp cho mọi lĩnh vực
ứng dụng nêu trên. Tuy nhiên, một kiến trúc kiểu mô đun cho phép thêm/bớt tính năng
theo u cầu của từng tình huống ứng dụng là rất hữu ích. Đó là điểm khởi đầu giúp
cho các nhà kiến trúc tạo ra những giải pháp IoT nền tảng cho việc phát triển sau này.
Trong phần này trình bày một kiến trúc tham chiếu (Reference Architecture) cho IoT
theo kiểu mô đun như vậy.
Các nhà kiến trúc hệ thống đưa ra bốn lý do chính về sự cần thiết nên có kiến trúc tham
chiếu cho IoT như sau:
- Thiết bị IoT có bản chất kết nối mạng liên tục nên cần có phương thức tương
tác 24x7 với các thiết bị này như qua tường lửa (firewall), NAT và một số cách
khác.
- Đã có hàng tỷ thiết bị IoT xuất hiện trên thế giới và con số này tiếp tục tăng
nhanh nên chúng ta cần kiến trúc có thể mở rộng (scalable).
- Các thiết bị IoT có thể khơng có giao diện người dùng (UI), sử dụng hàng ngày
nên cần hỗ trợ cập nhật tự động và quản lý được từ xa.
17
- Hầu hết thiết bị IoT dùng để thu thập và phân tích dữ liệu cá nhân. Vì vậy, cần
có mơ hình quản lý định danh và điều khiển truy nhập cho các thiết bị IoT
cũng như cách xuất bản, sử dụng những dữ liệu này.
1.3.3.1 Phân loại thiết bị IoT và phương thức kết nối Internet
Các thiết bị IoT rất đa dạng nhưng có thể phân thành ba loại chủ yếu, xét theo kích cỡ:
- Những thiết bị IoT có kích thước nhỏ nhất dùng bộ điều khiển 8 bit nhúng,
kiểu cả hệ thống trên chip SoC (System on Chip) và thường khơng có hệ điều
hành. Ví dụ điển hình là nền tảng phần cứng nguồn mở Arduino 8 bit.
- Mức cao hơn là hệ thống dựa trên chip ARM và Arthero có kiến trúc 32 bit rút
gọn (limited). Những thiết bị này thường là các bộ router nhỏ dành cho gia
đình và những biến thể khác. Hệ thống thường chạy trên nền tảng nhúng Linux
rút gọn hoặc hệ điều hành nhúng dành riêng. Một số trường hợp không sử dụng
hệ điều hành như Arduino Zero hoặc Arduino Yun.
- Hệ thống IoT lớn nhất là loại sử dụng nền tảng 32 hoặc 64 bit đầy đủ. Những
hệ thống như Raspberry Pi hay BeagleBone có thể chạy hệ điều hành Linux
đầy đủ hoặc Android. Nhiều trường hợp chính là điện thoại di động hoặc dựa
trên công nghệ điện thoại di động. Những thiết bị này có thể đóng vai trị
gateway hoặc cầu (bridge) cho các thiết bị nhỏ hơn. Ví dụ: thiết bị đeo kết nối
qua Bluetooth công suất thấp với điện thoại di động hay Raspberry Pi, để sau
đó làm cầu nối với mạng Internet.
Có một số giải pháp kết nối giữa thiết bị với Internet hoặc gateway:
- Kết nối Ethernet hoặc Wi-Fi trực tiếp qua giao thức TCP hoặc UDP.
- Bluetooth công suất thấp.
- Kết nối trường gần (NFC).
- Zigbee hoặc các mạng vô tuyến khác.
- SRF và kết nối vô tuyến điểm-điểm.
- UART hoặc kênh nối tiếp (serial lines).
18
- SPI hoặc kênh I2C (wired buses).
Tóm lại, có hai mơ hình chính là trực tiếp kết nối Internet hoặc qua gateway (Hình
1.2).
Hình 1.2: Mơ hình kết nối hệ thống IoT
1.3.3.2 Các yêu cầu của kiến trúc tham chiếu cho IoT
Yêu cầu chung là kiến trúc tham chiếu cho IoT phải trung lập với nhà sản xuất,
không phụ thuộc vào cơng nghệ cụ thể nào. Có những u cầu khá đặc thù cho thiết bị
IoT và môi trường hỗ trợ nhưng cũng có những yêu cầu xuất phát từ quá trình sản xuất
và sử dụng. Có thể tóm tắt các yêu cầu của kiến trúc tham chiếu cho IoT trong 5 nhóm
sau:
Kết nối và giao tiếp
Các giao thức hiện tại như HTTP có vị trí rất quan trọng trong nhiều thiết bị.
Thậm chí ngay cả bộ điều khiển 8 bit cũng có thể tạo ra lệnh GET, POST và giao thức
HTTP tạo ra kết nối đồng nhất quan trọng. Tuy nhiên, phần mào đầu của HTTP và một
số giao thức Internet truyền thống chưa phù hợp cho giao tiếp IoT vì hai lý do. Thứ
19
nhất, kích cỡ bộ nhớ của chương trình q lớn so với những thiết bị nhỏ. Vấn đề thứ
hai còn lớn hơn: HTTP yêu cầu công suất tương đối cao so với thiết bị IoT nhỏ. Do
vậy, cần có một giao thức nhị phân đơn giản, nhỏ gọn và có khả năng đi qua tường lửa.
Đối với thiết bị IoT kết nối Internet qua gateway cần 2 giao thức: một giao thức kết nối
gateway còn giao thức khác kết nối từ gateway với Internet. Cuối cùng, kiến trúc phải
hỗ trợ giao thức truyền thơng (communications) và bắc cầu. Ví dụ, giao thức nhị phân
dùng cho thiết bị IoT phải cho phép API (dựa trên HTTP) điều khiển được thiết bị khi
kết nối với bên thứ ba.
Quản lý thiết bị
Hiện nay, nhiều thiết bị IoT chưa được quản lý ở chế độ tích cực (active) trong
khi chế độ quản lý này đã phổ biến và ngày càng trở nên quan trọng trong PC, điện
thoại di động và các thiết bị khác. Như vậy, chế độ tích cực là yêu cầu cần có trong
quản lý thiết bị IoT, cụ thể bao gồm những tính năng sau:
- Khả năng ngắt kết nối với thiết bị hỏng hoặc bị đánh cắp.
- Khả năng cập nhật phần mềm trên thiết bị.
- Cập nhật các thông số bảo mật.
- Khả năng bật/tắt từ xa một số tính năng phần cứng.
- Xác định vị trí thiết bị mất cắp.
- Xóa dữ liệu bảo mật khỏi thiết bị mất cắp.
- Cấu hình lại từ xa các thơng số của Wi-Fi, GPRS hoặc các thông số mạng
khác.
Thu thập, phân tích và khởi động dữ liệu
Một số thiết bị IoT có giao diện UI nhưng nói chung hầu hết các thiết bị IoT tập
trung vào trang bị một đến hai bộ cảm biến có thể kèm theo (hoặc khơng) một bộ kích
động (actuator) hoặc nhiều hơn. u cầu của hệ thống là thu thập dữ liệu từ rất nhiều
thiết bị, lưu trữ, phân tích và ra quyết định hành động dựa trên kết quả phân tích gần
như theo thời gian thực. Kiến trúc tham chiếu được thiết kế để quản lý số lượng lớn
20
thiết bị. Nếu những thiết bị đó tạo ra dịng dữ liệu ổn định, liên tục thì sẽ có lượng dữ
liệu khá lớn. Yêu cầu là hệ thống lưu trữ cần có tính khả mở cao, xử lý được khối
lượng dữ liệu lớn và đa dạng.
Tính khả mở (scalability)
Bất kỳ kiến trúc phía máy chủ (server-side) nào đều cần tính khả mở cao, có thể
hỗ trợ hàng triệu thiết bị liên tục gửi, nhận và hoạt động dựa trên dữ liệu. Tuy nhiên,
kiến trúc khả mở cao kéo theo giá thành cao cả về phần cứng, phần mềm và độ phức
tạp. Yêu cầu quan trọng đối với kiến trúc này là phải hỗ trợ tính mở từ mức triển khai
nhỏ cho đến số lượng thiết bị rất lớn. Tính năng có thể mở co giãn (elastic) và có thể
triển khai dạng cloud như dịch vụ Amazon EC2 là rất cần thiết.
An toàn bảo mật
Đây là yêu cầu quan trọng nhất. Các thiết bị IoT thường thu thập dữ liệu có tính
cá nhân cao và đưa lên Internet (và ngược lại). Điều đó dẫn đến hai loại nguy cơ mất an
toàn:
- Những nguy cơ gắn với bản chất mất an tồn thơng tin của mạng Internet mà
nhà thiết kế/sản xuất thiết bị IoT khơng nhận thức được. Đó có thể chỉ đơn
giản là việc mở các cổng trên thiết bị. Ví dụ, tủ lạnh kết nối Internet có server
dùng giao thức SMTP khơng an tồn nên có thể gửi tin rác (spam).
- Những nguy cơ riêng từ chính bản thân thiết bị IoT, nhất là phần cứng. Ví dụ,
nhiều thiết bị IoT quá nhỏ, không hỗ trợ cơ chế mã hóa phi đối xứng phù hợp
nên khơng bảo đảm an tồn.
Có hai vấn đề quan trọng, đặc thù của bảo mật IoT là quản lý định danh và truy nhập.
Quản lý định danh cho thiết bị IoT và giao tiếp máy-máy (M2M) bằng cách dùng cặp
"tên/mật khẩu" là sai lầm thông dụng. Giải pháp lý tưởng là sử dụng token cấp theo
chuẩn của OAuth/OAuth2. Đối với quản lý truy nhập, sai lầm thường thấy là sử dụng
luật truy nhập đã lập trình cứng trong mã nguồn phía client và server. Cách tiếp cận tốt
nhất hiện nay là sử dụng tiêu chuẩn XACML. Cách tiếp cận này không dùng mạch
21
logic lập trình sẵn mà đưa vào chính sách ra quyết định cho phép truy nhập. Ưu điểm
của cách này là:
- Đưa ra quyết định phù hợp hơn.
- Dựa trên bối cảnh cụ thể như: vị trí, hoặc mạng nào đang được sử dụng, hoặc
thời gian.
- Có thể phân tích và thẩm định yêu cầu truy nhập.
- Có thể cập nhật, thay đổi chính sách truy nhập mà khơng cần lập trình lại hay
chỉnh sửa thiết bị.
1.3.3.3 Mơ hình kiến trúc tham chiếu cho IoT
Kiến trúc tham chiếu IoT bao gồm 5 lớp xếp chồng [6]. Mỗi lớp có một chức
năng riêng, có thể minh họa bằng những cơng nghệ cụ thể. Có 2 lớp theo chiều dọc là
quản lý thiết bị và quản lý định danh & truy nhập.
Hình 1.3: Kiến trúc tham chiếu cho IoT
22
Lớp Thiết bị (Devices)
Các thiết bị IoT phải có giao thức truyền thông trực tiếp (Arduino, Raspberry Pi,
Intel Galileo qua Ethernet hoặc Wi-Fi) hoặc gián tiếp kết nối được với Internet
(ZigBee, Bluetooth hoặc Bluetooth công suất thấp qua điện thoại di động,...).
Mỗi thiết bị cần có định danh thuộc một trong các loại: định danh duy nhất (UUID) ghi
sẵn trong phần cứng (thường là một phần của SoC hoặc chip thứ cấp), UUID gửi qua
hệ thống vô tuyến phụ (ví dụ: định danh Bluetooth, địa chỉ Wi-Fi MAC), token
OAuth2 Refresh/Bearer (có thể là bổ sung cho các loại khác), định danh lưu trong bộ
nhớ chỉ đọc như EEPROM.
Các chuyên gia khuyến nghị, mỗi thiết bị IoT nên có một UUID (tốt nhất lưu cố định
trong phần cứng) và một token OAuth2 Refresh/Bearer lưu trong EEPROM. OAuth2
token có mục đích tạo ra một token định danh tách biệt với số định danh cố định ghi
trong mỗi thiết bị. Bearer token được dùng ban đầu để gửi đến bất kỳ server hay dịch
vụ nào cần định danh. Bearer token có thời gian sống ngắn hơn Refresh token. Nếu
Bearer token hết hạn, Refresh token được gửi đến lớp Định danh để tạo ra bản cập nhật
của Bearer token.
Lớp Truyền thông (Communications)
Lớp truyền thông hỗ trợ kết nối các thiết bị. Nhiều giao thức có thể sử dụng trong
lớp này như HTTP/HTTPS, MQTT 3.1/3.1.1, CoAP (Constrained Application
Protocol). Trong đó, HTTP là giao thức lâu đời và phổ biến nhất nên có nhiều thư viện
hỗ trợ. Vì đó là giao thức dựa trên ký tự đơn giản nên nhiều thiết bị nhỏ như bộ điều
khiển 8 bit đều có thể hỗ trợ HTTP. Các thiết bị 32 bit lớn hơn có thể sử dụng các thư
viện HTTP client đầy đủ.
Có một số giao thức được tối ưu riêng cho IoT, trong đó nổi bật nhất là 2 giao thức
MQTT và CoAP. MQTT được phát minh vào năm 1999 để giải quyết các vấn đề của
hệ thống nhúng và SCADA. Giao thức MQTT có phần mào đầu nhỏ (chỉ 2
byte/message), chạy được trên nền TCP và có khả năng chịu được mơi trường mạng
23