1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO LUẬN VĂN TỐT NGHIỆP KHÓA 6 ĐẠI HỌC CNTT TP.HCM

176 67 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 176
Dung lượng 7,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung đề tài: mục tiêu của đề tài xây dựng một mạng cảm biến không dây thu thập dự liệu môi trường để hiển thị lên web. Để hiện thực hệ thống, đề tài tập trung nghiên cứu xây dựng một hệ thống gồm: một webserver có nhiệm vụ tiếp nhận thông tin được gửi từ các node cảm biến, các node thu thập dữ liệu môi trường (phần cứng mã nguồn mở và công nghệ truyền không dây) và thông tin được hiển thị lên web tất cả tạo thành một hệ thống hoàn chỉnh có thể áp dụng vào thực tế.

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

BÙI NGUYỄN MẠNH TUẤN

LÊ NGUYỄN QUANG VŨ

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG INTERNET OF THINGS

DỰA TRÊN NỀN TẢNG WEB

KỸ SƯ NGÀNH TRUYỀN THÔNG VÀ MẠNG MÁY TÍNH

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

BÙI NGUYỄN MẠNH TUẤN– 11520451

LÊ NGUYỄN QUANG VŨ – 11520695

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG ỨNG DỤNG INTERNET OF THINGS

DỰA TRÊN NỀN TẢNG WEB

KỸ SƯ NGÀNH TRUYỀN THÔNG VÀ MẠNG MÁY TÍNH

GIẢNG VIÊN HƯỚNG DẪN

TS LÊ TRUNG QUÂN

Trang 3

TP HỒ CHÍ MINH, 2015

DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ………ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin

1 ……… – Chủ tịch.

2 ……… – Thư ký

3 ……… – Ủy viên

4 ……… – Ủy viên

Trang 4

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT

Tên khóa luận:

XÂY DỰNG ỨNG DỤNG INTERNET OF THINGS DỰA TRÊN NỀN TẢNG WEB

Nhóm SV thực hiện: Cán bộ hướng dẫn:

QUÂN

Đánh giá Khóa luận

1 Về cuốn báo cáo:

Số trang _ Số chương _

Số bảng số liệu _ Số hình vẽ _

Số tài liệu tham khảo _ Sản phẩm _

Một số nhận xét về hình thức cuốn báo cáo:

Trang 5

Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp

kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình

Điểm từng sinh viên:

Bùi Nguyễn Mạnh Tuấn:……… /10

Lê Nguyễn Quang Vũ:……… /10

Người nhận xét

(Ký tên và ghi rõ họ tên)

Trang 6

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT

XÂY DỰNG ỨNG DỤNG INTERNET OF THINGS DỰA TRÊN NỀN TẢNG WEB

Nhóm SV thực hiện: Cán bộ phản biện:

Đánh giá Khóa luận

5 Về cuốn báo cáo:

Số trang _ Số chương _

Số bảng số liệu _ Số hình vẽ _

Số tài liệu tham khảo _ Sản phẩm _

Một số nhận xét về hình thức cuốn báo cáo:

Trang 7

Đánh giá chung: Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp

kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình

Điểm từng sinh viên:

Bùi Nguyễn Mạnh Tuấn:……… /10

Lê Nguyễn Quang Vũ:……… /10

Người nhận xét

(Ký tên và ghi rõ họ tên)

Trang 8

LỜI CẢM ƠN

Lời đầu tiên, nhóm tác giả xin được gửi lời cảm ơn chân thành và sâu sắc đến cácthầy cô trong khoa Mạng Máy tính và Truyền thông nói riêng cũng như các thầy côtrong trường Đại học Công nghệ Thông tin nói chung đã truyền đạt những kiến thực bổích, những kinh nghiệm quý báu của mình trong suốt quá trình nhóm học tập và nghiêncứu tại trường

Tiếp theo, nhóm tác giả xin đặc biệt cảm ơn thầy TS Lê Trung Quân – người thầy

đã truyền cảm hứng, niềm đam mê nghiên cứu, sáng tạo cho nhóm Thầy là người đãtận tình hướng dẫn, hỗ trợ và tạo mọi điều kiện tốt nhất cho nhóm tác giả hoàn thànhkhóa luận này Nhóm cũng xin chân thành cảm ơn đến thầy Nguyễn Đình Khương vàthầy Nguyễn Hạo Nhiên (Phòng dữ liệu và công nghệ thông tin) đã nhiệt tình giúp đỡ

và hỗ trợ kịp thời cho nhóm trong suốt thời gian làm khóa luận

Bên cạnh đó, nhóm tác giả cũng xin gửi lời cảm ơn tới các anh chị và bạn bè trongkhoa Mạng Máy tính và Truyền thông nói chung cũng như các bạn trong lớp học tậpnói riêng đã giúp đỡ, trao đổi kiến thức trong suốt thời gian nhóm học tập và nghiêncứu tại trường

Cuối cùng, nhóm tác giả xin được gửi lời cảm ơn tới gia đình vì đã luôn bên cạnh,động viên nhóm Gia đình chính là nguồn động lực to lớn, là chỗ dựa tinh thần vữngchắc không chỉ trong quá trình học tập, nghiên cứu mà còn trong mọi hoạt động cuộcsống thường ngày của nhóm tác giả

TP Hồ Chí Minh, tháng 01 năm 2016

Nhóm tác giả

Trang 9

Cán bộ hướng dẫn: TS Lê Trung Quân

Thời gian thực hiện: Từ ngày 30/9/2013 đến ngày 17/1/2014

Sinh viên thực hiện:

Bùi Nguyễn Mạnh Tuấn – 11520451

Lê Nguyễn Quang Vũ – 11520695

Nội dung đề tài: mục tiêu của đề tài xây dựng một mạng cảm biến không dây thu

thập dự liệu môi trường để hiển thị lên web Để hiện thực hệ thống, đề tài tập trungnghiên cứu xây dựng một hệ thống gồm: một webserver có nhiệm vụ tiếp nhậnthông tin được gửi từ các node cảm biến, các node thu thập dữ liệu môi trường(phần cứng mã nguồn mở và công nghệ truyền không dây) và thông tin được hiểnthị lên web tất cả tạo thành một hệ thống hoàn chỉnh có thể áp dụng vào thực tế

Kế hoạch thực hiện:

Từ 15/9/2015 đến 30/9/2015 lên ý tưởng, thiết kế hệ thống.

Từ 1/10/2015 đến 31/10/2015 nghiên cứu, tìm hiểu các giải pháp kỹ thuật.

Từ 1/11/2015 đến 15/12/2015 hiện thực hệ thống.

Trang 10

Phân công công việc:

Công việc chung: lên ý tưởng, thiết kế hệ thống, kiểm tra, đánh giá kết quả và viết báo cáo

Bùi Nguyễn Mạnh Tuấn:

 Tìm hiểu và hiện thức Webserver sử dụng Apache

 Tìm hiểu và hiện thực kỹ thuật cân bằng tải

 Phát triển trang chủ của Web

Lê Nguyễn Quang Vũ:

 Tìm hiểu về mạng cảm biến không dây, phần cứng mã nguồn mở Arduino vàgiao tiếp không dây giữa các node từ đó xây dựng mô hình mạng cảm biến

 Hổ trợ phát triển trang Web

Trang 11

MỤC LỤ

DANH SÁCH HÌNH VẼ

DANH SÁCH BẢNG

DANH SÁCH TỪ VIẾT TẮT

Chương 1 GIỚI THIỆU 4

1.1 Tổng quan 4

1.2 Phát biểu vấn đề, mục tiêu của Luận Văn 6

1.3 Phạm vi của đề tài, các giới hạn của đề tài 7

1.3.1 Phạm vi đề tài 7

1.3.2 Giới hạn của đề tài 7

1.4 Cấu trúc của Luận Văn 7

Chương 2 TỔNG QUAN VỀ TÌNH HÌNH NGHIÊN CỨU, CÁC CÔNG VIỆC LIÊN QUAN 9

2.1 Web Server 9

2.1.1 INTERNET INFORMATION SERVER (IIS) 10

2.1.2 APACHE WEB SERVER 11

2.2 Cân bằng tải cho hệ thống web server 12

2.2.1 Giới thiệu tổng quan 12

2.2.2 Kỹ thuật cân bằng tải web server 16

2.3 Wireless Sensor Network 36

2.3.1 Giới thiệu về mạng cảm biến không dây 36

2.3.2 Kiến trúc truyền thông trong mạng cảm biến 36

2.3.3 Cấu trúc cơ bản của mạng cảm biến không dây 41

2.3.4 Các ứng dụng 50

2.4 Tìm hiểu hệ thống cảm biến Wireless Sensor Network sử dụng mạch Arduino 53 2.4.1 Tìm hiểu về Arduino 53

Trang 12

2.5 Tìm hiểu về mạng Zigbee 61

2.5.1 Các đặt tính của mạng Zigbee 62

2.5.2 Kiến trúc mạng cơ bản của ZigBee 66

2.5.3 Application Layer 69

2.5.4 Network Layer 74

2.5.5 MAC và PHY Layer 86

Chương 3 PHƯƠNG PHÁP LUẬN 87

3.1 Xây dựng mạng cảm biến không dây 87

3.1.1 Hướng phát triển của mạng cảm biến không dây 87

3.1.2 Cấu trúc mạng của đề tài 87

3.2 Xây dựng Webserver 89

3.2.1 Dự kiến topology mạng của server 89

3.2.2 Xây dựng hệ thống cân bằng tải 90

3.2.3 Cài đặt bộ cân bằng tải vào hệ thống 91

3.2.4 Dự kiến database của Webserver 96

3.2.5 Dự kiến xây dựng website cho đề tài 97

3.3 Hướng tiếp cận phần cứng nguồn mở 106

3.4 Truyền không dây giữa các node 108

3.4.1 Truyền không dây RF 433MHz 108

3.4.2 Thư viện VirtualWire 109

3.4.3 Công nghệ Zigbee 110

Chương 4 HIỆN THỰC, ĐÁNH GIÁ 112

4.1 Xây dựng hệ thống High-availability và Loadbalancing cho Web Server trên CentOS 6 sử dụng HAProxy và Keepalived 112

4.1.1 Cấu hình Load Balancing và Reverse Proxy sử dụng HAproxy và keepalived cho Web server 112

4.1.2 Kiểm tra 121

4.1.3 Đồng bộ dữ liệu trên 2 Database Server sử dụng MySQL Server 123

4.1.4 Đồng bộ dữ liệu hai chiều trên 2 Webserver bằng unison 127

Trang 13

4.2 Xây dựng hệ thống cảm biến Wireless Sensor Network sử dụng mạch Arduino

Uno R3 và Mạch thu phát DRF1605H 134

4.2.1 Mạch đọc nhiệt độ - độ ẩm với cảm biến DHT11 134

4.2.2 Mạch đọc cường độ ánh sáng với cảm biến BH1750 136

4.2.3 Mạch truyền dữ liệu với RF 433MHz 138

4.2.4 Hiện thực truyền nhận dữ liệu cảm biến giữa 2 Arduino 141

4.3 Hiện thực hóa Website chính thức 142

Chương 5 KẾT LUẬN 155

5.1 Kết quả đạt được 155

5.2 Hạn chế 155

5.3 Hướng phát triển 155

DANH SÁCH THAM KHẢO 157

Trang 14

DANH SÁCH HÌNH VẼ

Hình 1-1 Internet of things – xu hướng mới của thế giới công nghệ hiện đại 22

Hình 2-1 Thị phần trang web đang hoạt động sử dụng web server qua các năm [1] 29

Hình 2-2 Cách làm việc của cookie user=1 38

Hình 2-3 Mô hình Global Server Load Balacing 40

Hình 2-4 Cân bằng tải sử dụng phần cứng 45

Hình 2-5 Mô hình triển khai các node cảm biến không dây 55

Hình 2-6 Ngăn xếp giao thức mạng cảm biến không dây[5] 55

Hình 2-7 Cấu trúc phẳng của mạng cảm biến không dây 59

Hình 2-8 Bus Topology[3] 60

Hình 2-9 Ring Topology[3] 61

Hình 2-10 Cấu trúc phân cấp của mạng cảm biến không dây 62

Hình 2-11 Tree Topology[3] 64

Hình 2-12 Star Topology[3] 65

Hình 2-13 Mesh Topology[3] 66

Hình 2-14 Circular Topology[3] 67

Hình 2-15 Grid Topology[3] 68

Hình 2-16 Hình ảnh của một board mạch Arduino Uno R3 75

Hình 2-17 Cảm biến độ ẩm, nhiệt độ DHT11 77

Hình 2-18 Cảm biến cường độ ánh sáng BH1750 78

Hình 2-19 Mô hình truyền dẫn mạng ZigBee 81

Hình 2-20 Ứng dụng của mạng Zigbee 84

Hình 2-21 Kiến trúc mạng cơ bản của Zigbee [6] 85

Hình 2-22 Sơ đồ stack của Application Layer [6] 87

Hình 2-23 Mã hóa dùng khóa đối xứng trong mạng Zigbee [6] 90

Hình 2-24 Quá trính thiết lập mạng Zigbee [6] 97

Hình 2-25 Quá trình tham gia của mạng Zigbee [6] 99

Hình 3-1 Cấu trúc mạng cảm biến 106

Hình 3-2 Mô hình xây dựng hệ thống server cân bằng tải 107

Hình 3-3 Mối quan hệ giữa các bảng trong database 115

Hình 3-4 Sơ đồ phân cấp chức năng phía Admin site 119

Hình 3-5 Sơ đồ phân cấp chức năng phía User site 119

Hình 3-6 Sơ đồ luồng dữ liệu mức ngữ cảnh 120

Hình 3-7 Sơ đồ luồng dữ liệu mức 1 – Quản lý thành viên 120

Hình 3-8 Sơ đồ luồng dữ liệu mức 1 – Quản lý node 121

Hình 3-9 Sơ đồ luồng dữ liệu mức 1 – Quản lý thông báo 121

Hình 3-10 Sơ đồ luồng dữ liệu mức 1 – Quản lý báo cáo 122

Trang 15

Hình 3-11 Xây dựng mô hình thực thể user 122

Hình 3-12 Xây dựng mô hình thực thể project 123

Hình 3-13 Xây dựng mô hình thực thể project 123

Hình 3-14 Xây dựng mô hình thực thể sensor 124

Hình 3-15 Mô hình thực thể liên kết 124

Hình 3-16 Mạch thu phát RF 433MHz 126

Hình 4-1 Mô hình hệ thống server xây dựng trên openstack cloud 130

Hình 4-2 SSH vào web server 1 131

Hình 4-3 Kết quả khi truy cập WebServer thông qua IP Floating 132

Hình 4-4 SSH vào web server 2 132

Hình 4-5 Kết quả chạy lệnh ip addr sh eth0 138

Hình 4-6 Webserver1 tạm thời được pause 140

Hình 4-7 Kiểm tra trên HAProxy 140

Hình 4-8 Sử dụng WinSCP kết nối đến database server1 142

Hình 4-9 Sử dụng WinSCP kết nối đến database server2 143

Hình 4-10 Kết quả đồng bộ dữ liệu trên database server 1 145

Hình 4-11 Kết quả đồng bộ dữ liệu trên database server 2 145

Hình 4-12 Tạo key pair trên webserver 1 146

Hình 4-13 Tạo key pairs trên webserver 1 147

Hình 4-14 Trao đổi key pairs trên webserver 1 147

Hình 4-15 Trao đổi key pairs trên webserver 2 148

Hình 4-16 Kiểm tra public key được chuyển từ Webserver1 148

Hình 4-17 Kiểm tra public key được chuyển từ Webserver2 149

Hình 4-18 Kết nối Arduino với cảm biến DHT11 152

Hình 4-19 Sơ đồ nối chân giữa Arduino và DHT11 152

Hình 4-20 Kết nối Arduino với cảm biến BH1750 154

Hình 4-21 Sơ đồ nối chân giữa Arduino và BH1750 154

Hình 4-22 Kết nối Arduino với mạch phát TX 433 Mhz 156

Hình 4-23 Kết nối Arduino với mạch thu TX 433 Mhz 156

Hình 4-24 Sơ đồ nối chân giữa Arduino và RF 433MHz kit 157

Hình 4-25 Cấu trúc node cảm nhận và node thu thập dữ liệu 159

Hình 4-26 Kết quả dữ liệu nhận được 159

Hình 4-27 Giao diện đăng nhập của trang Web 160

Hình 4-28 Giao diện trang quản lý (admin site) 161

Hình 4-29 Menu của tab trang quản lý 161

Hình 4-30 Giao diện thêm dự án 162

Hình 4-31 Giao diện Quản lý mô hình dự án 163

Trang 16

Hình 4-32 Menu tab thống kê 163

Hình 4-33 Giao diện trang thống kê các node 164

Hình 4-34 Giao diện thống kê người dùng 165

Hình 4-35 Menu tab báo cáo 165

Hình 4-36 Kết quả báo cáo được xuất 166

Hình 4-37 Menu tab quản lý người dùng 166

Hình 4-38 Giao diện đăng ký người dùng 167

Hình 4-39 Giao diện trang quản lý 168

Hình 4-40 Menu tab trang quản lý 168

Hình 4-41 Giao diện thêm node 169

Hình 4-42 Giao diện xóa node 169

Hình 4-43 Menu tab mô hình 170

Hình 4-44 Giao diện tạo mô hình giả lập 170

Hình 4-45 Giao diện sơ đồ lắp đặt các node 171

Hình 4-46 Giao diện bảng thống kê các node 171

Hình 4-47 Chức năng quản lý hồ sơ cá nhân 172

Hình 4-48 Giao diện hiển thị thông tin người dùng 172

DANH SÁCH BẢN

Trang 17

Bảng 2-1 Đánh giá thay đổi sau 1 tháng (tháng 9/2015 so với tháng 8/2015) 31

Bảng 2-2 So sánh IIS và Apache [2] 31

Bảng 2-3 So sánh việc sử dụng một server và nhiều server 32

Bảng 2-4 So sánh các phương tìm đường trong ZigBee 104

Bảng 3-1 Bảng so sánh hệ thống cân bằng tải và hệ thống thông thường Với đề tài mà nhóm đã xây dựng thì việc sử dụng hệ thống cân bằng tải là rất hợp lý 110

Bảng 3-2 Cấu trúc bảng users 115

Bảng 3-3 Cấu trúc bảng sensors 115

Bảng 3-4 Cấu trúc bảng nodes 116

Bảng 3-5 Cấu trúc bảng projects 116

Bảng 3-6 Mô tả chức năng chính dành cho giao diện admin 117

Bảng 3-7 Mô tả chức năng chính của giao diện dành cho user 117

Bảng 3-8 So sánh giữa 3 phần cứng mã nguồn mở được sử dụng phổ biến hiện nay được khảo sát bởi Digital Diner 126

Bảng 3-9 So sánh xu hướng ứng dụng giữa các giao thức wireless khác và ZigBee 130

Bảng 4-1 Kết nối chân giữa Arduino và DHT11 154

Bảng 4-2 Kết nối chân giữa Arduino và BH1750 156

Bảng 4-3 Kết nối chân giữa Arduino và RF 433MHz (phát) 158

Bảng 4-4 Kết nối chân giữa Arduino và RF 433MHz (nhận) 158

Trang 18

DANH SÁCH TỪ VIẾT TẮT

API Application Programming Interface

NLDE-SAP Network Layer Data Entity Service Access Point

APS Application Support Sublayer

TCP Transmission Control Protocol

SPOF Single point of failure

Trang 19

TÓM TẮT KHÓA LUẬN

Mạng cảm biến không dây được quản lý thông qua website là đề tài có thể phục vụ chonhiều lĩnh vực khác nhau trong cuộc sống tùy vào mục đích của người dùng, với việcquản lý thông tin dữ liệu được gửi về từ cảm biến bằng website sẽ làm việc điều khiển,quản lí, giám sát môi trường trở nên đơn giản và thông minh hơn, người dùng thể nắmbắt được thông tin môi trường dù ở bất cứ đâu qua Internet Đề tài tập trung xây dựngmột webserver sử dụng cơ chế cân bằng tải để tăng tính sẵn sàng cho hệ thống do dữliệu cảm biến được gửi về liên tục và cũng để phục vụ người dùng kịp thời, nghiên cứu

và cố gắng hiện thực một mạng cảm biến không dây với board Arduino, các thiết bịcảm biến và các thiết bị truyền không dây Bên cạnh đó, đề tài còn tiếp cận và lập trìnhWeb để hiển thị thông tin dữ liệu cảm biến thu thập giúp người dùng dễ dàng quản lýđược môi trường sống cũng như làm việc của mình Đề tài cố gắng hoàn thiện một hệthống hoàn chỉnh có thể ứng dụng thực tế trong quá trình hiện thực

Trang 20

LỜI MỞ ĐẦU

Khái niệm Internet of Things được thực sự đưa ra vào năm 1999, khi mà người ta bắtđầu nhìn nhận được tiềm năng của xu hướng này, lúc mà các rào cản giới hạn Internet,khoa học công nghệ dần được khai phá

Mặc dù khái niệm Internet of Things được đưa ra từ lâu Nhưng trong những năm gầnđây nó mới được nhiều doanh nghiệp cũng như các nhà khoa học để ý và phát triểnmạnh mẽ Trong các năm gần đây tại các triển lãm công nghệ CES, triển lãm di độngtoàn cầu các hãng sản xuất lớn thay nhau đưa ra các thiết bị thông minh: tivi thôngminh, tủ lạnh thông minh và ý tưởng về nhà thông minh liên tục được giới thiệu Cácứng dụng giám sát này thông qua một thiết bị gateway để giao tiếp với các node cảmứng trong mạng bằng các giao thức như JSP, bluetooth, wifi, nhưng với kiến trúcnày thì phải có mặt người quản trị ở đó để cấu hình và quản lý

Vì lý do trên việc xây dựng một Webserver sẽ giúp cho người cho công việc quản lýcũng như cấu hình trở nên dễ dàng hơn Nhóm sử dụng thiết bị đầu cuối là những cảmbiến không dây (wireless sensor) được lắp đặt ở các vị trí quanh một căn phòng tạothành các điểm nút (node), chúng sẽ gửi và nhận thông tin thông qua máy trạmWebserver đóng vai trò là gateway Dữ liệu được xử lý và thông báo trên giao diệnweb cho người quản trị có thể theo dõi và nắm bắt được các thông số: nhiệt độ, độ ẩm,ánh sáng, … và cấu hình thiết bị từ xa không nhất thiết phải có mặt ở nơi đặt thiết bịcảm biến

Với sự bùng nổ mạnh mẽ của Internet of Things như hiện nay, việc nhóm lựa chọn

đề tài này để thực hiện là nắm bắt và đón đầu công nghệ Thể hiện sự sáng tạo và bắtkịp xu hướng mới nhất hiện nay

Nắm bắt được những vấn đề trên, nhóm đã quyết định thực hiện khóa luận với ýtưởng Xây dựng ứng dụng Internet of things dựa trên nền tảng web với các chức năng

Trang 21

chính là ứng dụng các cảm biến không dây để lấy thông số cần thiết trả về Webserver

để xử lý và hiển thị trên giao diện quản lý từ người quản trị

Nội dung của khóa luận sẽ trình bày về cách thực hiện hóa ý tưởng của nhóm thôngqua các phần Giới thiệu đề tài, Kiến thức nền tảng, các Phiên bản (bao gồm Tìm hiểu

và Phân tích yêu cầu; Thiết kế Hệ thống theo yêu cầu; Triển khai xây dựng Hệ thống;Tổng kết và đánh giá những kết quả đạt được cũng như chưa đạt được) và Kết luận vàHướng phát triển trong các phiên bản tiếp theo

Tuy đã có nhiều tìm tòi, nghiên cứu và cố gắng, cộng với sự hướng dẫn tận tình củagiảng viên hướng dẫn nhưng trong quá trình thực hiện đề tài, nhóm tác giả khó tránhkhỏi những thiếu sót và hạn chế Chính vì vậy, nhóm kính mong sự chia sẻ cũng nhưnhững đóng góp quý báu từ thầy cô, bạn bè và gia đình để nhóm tác giả có thể hoànthiện đồ án này hơn nữa

TP Hồ Chí Minh, tháng 01 năm 2016

Nhóm tác giả

Trang 22

Chương 1 GIỚI THIỆU

Hình 1-1 Internet of things – xu hướng mới của thế giới công nghệ hiện đạiThực chất, biểu hiện của Internet of Things (IoT) đã xuất hiện ngay từ thời kỳ sơ khaicủa Internet, khi các nhà phát minh mong muốn kết nối tất cả mọi thứ qua một mạnglưới đồng nhất để có thể điều khiển chúng phục vụ cho mục đích của con người

Trong các tư liệu về IoT, người ta thường nhắc đến một chiếc máy bán nước giải khát

tự động tại trường Đại học Carnegie Melon (Mỹ) vào đầu những năm 1980 như là mộtthiết bị đầu tiên mở màn cho xu hướng này, chiếc máy được lập trình để có thể kết nối

Trang 23

với người điều khiển qua Internet, nhằm kiểm tra tình trạng của máy và bổ sung nướckhi cần thiết mà không cần sự tiếp xúc kiểm tra trực tiếp [20].

Sau đó, khái niệm Internet of Things chỉ thực sự được đưa ra vào năm 1999, khi màngười ta bắt đầu nhận thấy tiềm năng của xu hướng này, bên cạnh việc mạng Internetcũng như nhiều rào cản về mặt khoa học công nghệ đã dần được khai phá

Có thể tạm hiểu, Internet of Things là khi tất cả mọi thứ đều được kết nối với nhau quamạng Internet, người dùng (chủ) có thể kiểm soát mọi đồ vật của mình qua mạng màchỉ bằng một thiết bị thông minh, chẳng hạn như smartphone, tablet, PC hay thậm chíchỉ bằng một chiếc smartwatch nhỏ bé trên tay

Viễn cảnh tưởng chừng chỉ có trên phim ảnh này đã dần hiển hiện 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ôngthể không kể tới sự mở rộng không gian địa chỉ lên IPv6 thay vì IPv4 như trước đây.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, bao gồm hàng tỷ thiết bị di động,tivi, máy giặt, …

Để thấy được sự phát triển của lĩnh vực này, họ cũng đưa ra số liệu vào năm 1984, khi

mà Cisco mới thành lập mới chỉ có khoảng 1.000 thiết bị được kết nối mạng toàn cầu,đến năm 2010, con số này đã lên mức 10 tỷ [20]

Intel, đơn vị mới tham gia vào thị trường sản xuất chip cho các thiết bị thông minhphục vụ IoTs cũng đã thu về hơn 2 tỷ USD trong năm 2014 từ lĩnh vực này, tăngtrưởng 19% so với năm 2013 [20]

Và không thể không kể tới một thương hiệu Việt Nam là Bkav cũng đã đạt được nhữngthành tựu đáng ghi nhận về Internet of Things Hệ thống nhà thông minh SmartHomecủa Bkav là một tổ hợp các thiết bị thông minh trong 1 ngôi nhà, đều được kết nốiInternet và có thể tự động điều chỉnh cũng như điều khiển qua smartphone

Trang 24

Sau hàng chục năm nghiên cứu và sản xuất, Bkav SmartHome đã có chỗ đứng nhấtđịnh trên thị trường và hoàn toàn có thể cạnh tranh với những giải pháp nhà thôngminh khác trên thế giới.

Bên cạnh đó, các ông lớn như Google, Apple, Samsung, Microsoft cũng không hề giấudiếm ý định xâm nhập thị trường này, hứa hẹn một cuộc cạnh tranh mạnh mẽ trong thờigian tới đây, đưa kỷ nguyên IoTs đến sớm hơn với mọi người

1.2 Phát biểu vấn đề, mục tiêu của Luận Văn

Để có được một hệ thống hoạt động ổn định và hiệu quả, các vật không những đượckết nối với nhau mà còn phải kết nối với nền tảng web cùng với một hệ thống server đủmạnh

Từ thực tế đó nhóm đã tiến hành và xây dựng một hệ thống IoTs bao gồm các thiết bịcảm biến wireless sensor (đo nhiệt độ, độ ẩm, ánh sáng đầu cuối); thiết bị nhận dữ liệu

từ các wireless sensor và giao tiếp trực tiếp với server; webserver (nhận dữ liệu thuđược và hiển thị lên trang web quản lý) Việc tạo ra từng thành phần trong hệ thốngcũng không quá khó khăn, nhưng việc kết nối và tạo ra một hệ thống hoạt động hiệuquả là không hề dễ dàng, nhất là một hệ thống đáp ứng nhu cầu sử dụng của ngườidùng đầy tính thực tiễn này

Mục tiêu của luận văn là ứng dụng những kiến thức tích lũy trong quá trình học tập từnhà trường, những môn học từ căn bản đến chuyên ngành kết hợp với việc tham khảo ýkiến từ phía những nhà chuyên môn, thầy cô để tạo ra một sản phẩm không nhữngmang tính lý thuyết mà còn giàu tính thực tiễn Hệ thống mà nhóm tạo ra không nhữnggiúp cho cuộc sống tốt đẹp hơn khi không những quản lý được tình hình thời tiết trongngôi nhà của mình mà còn có thể ứng dụng trong sản xuất nông nghiệp với quản lýnhiệt độ, độ ẩm, ánh sáng để nhắc nhở việc tưới tiêu cây trồng, chăm sóc vật nuôi…

Trang 25

1.3 Phạm vi của đề tài, các giới hạn của đề tài

1.3.1 Phạm vi đề tài

Trong giới hạn của đề tài này, đối tượng nghiên cứu của khóa luận bao gồm:

 Các thiết bị cảm biến (đo nhiệt độ, độ ẩm, ánh sáng), board mạch Arduino,mạch thu phát Zigbee, RF thông thường

 Ngôn ngữ lập trình PHP, MySQL, CSS, Java Script

 Hệ điều hành CentOS

 Apache Webserver

 Openstack cloud

1.3.2 Giới hạn của đề tài

Nhóm còn bị giới hạn về chi phí để đầu tư thiết bị nghiên cứu cũng như giới hạn vềthời gian khi tiếp cận và nghiên cứu công nghệ mới Đề tài chỉ mới bước đầu phát triểnnên còn chưa có thời gian để ứng dụng trên thực tế nhiều Những giải pháp kỹ thuậtchưa thật sự tối ưu về mặt giá thành và công nghệ Những ngữ cảnh điều khiển hiện chỉ

là những nghiên cứu ban đầu, chưa thật sự tối ưu và linh hoạt Do đó, để trở thành mộtsản phẩm hoàn thiện còn rất nhiều vấn đề mà đề tài chưa giải quyết được như bảo mật,

độ an toàn của hệ thống, giá thành…

1.4 Cấu trúc của Luận Văn

Chương 1: Giới thiệu

Trong chương này, nhóm sẽ giới thiệu tổng quan về đề tài nghiên cứu, phát biểu các vấn đề và mục tiêu mà đề tài hướng đến, trình bày về phạm vi thực hiện của đề tài, giớihạn của đề tài

Chương 2: Tổng quan về tình hình nghiên cứu, các công việc liên quan

Tổng quan kết quả trong quá trình nghiên cứu các Webserver phổ biến, kỹ công nghệcân bằng tải, các kiến thức về mạng cảm biến không dây, phần cứng mã nguồn mở

Trang 26

Chương 3: Phương pháp luận

Trình bày về các hướng mà nhóm sẽ tiếp cận giúp cho việc hiện thức hóa đề tài về cácthành phần sau: lựa chọn webserver, database server, hệ thống cân bằng tải, phần cứng

mã nguồn mở, thiết bị giao tiếp không dây, mô hình mạng cảm biến không dây, thiết kếdatabase và các chức năng mà website sẽ phục vụ

Chương 4: Hiện thực, đánh giá

Trình bày về cách thức, quá trình hiện thực hóa đề tài, trình bày các bước xây dựng, càiđặt, cấu hình server, hệ thống cân bằng tải, xây dựng mạng cảm biến không dây vớiArduino, các cảm biến và RF truyền không dây, xây dựng giao diện cũng như chứcnăng của website

Chương 5: Kết luận

Tổng kết quá trình nghiên cứu học hỏi và làm việc của nhóm, các kết quả thực hiệnđược, những mặt còn hạn chế trong quá trình thực hiện, cũng như hạn chế của hệ thốngmạng cảm biến không dây, đề ra hướng phát triển cho đề tài

Trang 27

Chương 2 TỔNG QUAN VỀ TÌNH HÌNH NGHIÊN CỨU, CÁC CÔNG VIỆC LIÊN QUAN

2.1 Web Server

Web Server (máy phục vụ Web): máy tính mà trên đó cài đặt phần mềm phục vụ Web,đôi khi người ta cũng gọi chính phần mềm đó là Web Server Tất cả các Web Serverđều hiểu và chạy được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụmột số kiểu file chuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp, *.aspx ;Apache dành cho *.php ; Sun Java System Web Server của SUN dành cho *p

Khái niệm về Web server đơn giản chỉ là một chương trình mà chúng chờ đợi nhữngyêu cầu từ phía client và đáp ứng những yêu cầu đó khi nhận được Web server kết nốivới các trình duyệt hoặc các client sử dụng giao thức HTTP, đó là một giao thức đãđược chuẩn hóa các phương thức của các yêu cầu gửi đi và xử lý các yêu cầu đó Nócho phép rất nhiều các client khác nhau kết nối với các server cung cấp mà không gặpbất kỳ một trở ngại nào trong vấn đề tương thích

Nếu bất ngờ người sử dụng hỏi bằng cách nào để tạo ra một trang Web Thì họ sẽ giápmặt với hàng loạt các vấn đề có liên quan mà họ cần phải tìm hiểu trước khi bắt đầuviết mã một trang HTML đầu tiên Vấn đề quan trọng nhất và là lý do cơ bản nhất làphải lựa chọn phần mềm server nào để sử dụng, với những thông tin cơ bản nhất màcuốn báo cáo này cung cấp, sự lựa chọn có lẽ là không khó

Web Server Software còn có thể được tích hợp với CSDL (Database), hay điều khiểnviệc kết nối vào CSDL để có thể truy cập và kết xuất thông tin từ CSDL lên các trangWeb và truyền tải chúng đến người dùng

Server phải hoạt động liên tục 24/24 giờ, 7 ngày một tuần và 365 ngày một năm, đểphục vụ cho việc cung cấp thông tin trực tuyến Vị trí đặt server đóng vai trò quantrọng trong chất lượng và tốc độ lưu chuyển thông tin từ server và máy tính truy cập.Các vấn đề mà cần phải quan tâm khi lựa chọn một Web server để giao phó công việc

Trang 28

- Phần mềm trả tiền hay đươc miễn phí.

- Hỗ trợ đối với các phần mềm thứ ba

Dựa trên các vấn đề nêu trên nhóm xin đưa ra hai web server thông dụng nhất hiện nay:

là Internet Information server (IIS) và Apache Web Server

2.1.1 INTERNET INFORMATION SERVER (IIS)

IIS là một dịch vụ tuỳ chọn của Windows NT server cung cấp các tính năng vềWebsite Giải pháp phổ biến nhất của Microsoft cho một Web site là chạy IIS trên nềnWindows NT server

IIS là một thành phần cơ bản để xây dựng một Internet hoặc Intranet server trền nềnWindows NT 4.0, Workstation và Win 95 IIS được tích hợp đầy đủ trong Windows

NT 4.0 Với một bộ đầy đủ IIS và Windows NT 4.0 người sử dụng sẽ nhận được sựthuận tiện khi xây dựng một cơ chế bảo mật trên Windows NT server và Windows NTFile System (NTFS)

Người sử dụng có thể sử dụng các kỷ thuật Internet thêm vào được cung cấp bởi IIS đểnâng cao các tính năng Microsoft Back Office, bao gồm các thành phần sau:

- Hệ thống quản trị cơ sở dữ liệu Microsoft SOL Server Client/Server

- Hệ thống thông báo Microsoft Exchange Server Client/Server

- Microsoft Proxy Server

Trang 29

- Microsoft SNA Server kết nối với mạng IBM enterprise.

- Hệ thống quản lý Server của Microsoft (tập trung quản lý các hệ thống phântán)

-Microsoft Commercial Internet Server (MCIS)

Với IIS người sử dụng có thể triển khai liên tục các ứng dụng mạng lên các server rađời muộn các nội dung Web mơi nhất IIS đầy đủ hỗ trợ các hệ thống ngôn ngữ lậptrình VB, VB Script, J ScriptTM được phát triển bởi Microsoft và Java Component Nócũng hỗ trợ các ứng dụng CGI dành cho các ngôn ngữ lập trình Web cơ sở và ISAPI

mở rộng và các bộ lọc [Error: Reference source not found]

2.1.2 APACHE WEB SERVER

Apache là một phần mềm Web server được cung cấp bởi tập đoàn Apache Group Đây

là một Web server được hỗ trợ để chạy chủ yếu trên UNIX va LINUX và rất được phổbiến bởi tính chặt chẽ, uyển chuyển và linh hoạt

Hình 2-2 Thị phần trang web đang hoạt động sử dụng web server qua các năm [1]

Ta nhận thấy Apache vẫn giữ vị thế độc tôn qua các năm Microsoft đang dần bị nginxchiếm vị trí thứ 2

Trang 30

Bảng 2-1 Đánh giá thay đổi sau 1 tháng (tháng 9/2015 so với tháng 8/2015)

Nền tảng hề điều hành Chỉ chạy trên Windows Chạy đa nền tảng: UNIX,

MAC OS, Linux,Windows

Nhà phát triển sản phẩm Do đội ngũ nhân viên của

Microsoft

Do chính cộng đồng khắpthế giới tạo nên

Bảng 2-2 So sánh IIS và Apache [2]

Apache là một trong các Web server đơn giản nhất và phổ thông nhất để phát triển các

dự án website, và từ 1996 Apache trở thành phần mềm webserver phổ biến nhất thếgiới, và cho tới năm 2009 Apache đã chiếm 46 % tổng số website chạy trên nền tảngcủa nó Apache lại có những chức năng mở rộng mà không phải webserver nào cũng cónhư: digest acces authentication, CGI, administrative console, htaccess

Với những so sánh và đánh giá như trên, nhóm đã quyết định sử dụng Apache làm

dịch vụ để cài đặt hệ thống webserver của mình

2.2 Cân bằng tải cho hệ thống web server

2.2.1 Giới thiệu tổng quan

Yêu cầu đặt ra đối với người quản trị website là cần phải giải quyết vấn đề quá tải, làmsao để bất cứ người dùng nào truy cập vào website đều được phục vụ một cách nhanhnhất Để làm được điều đó, người quản trị phải nâng cấp hệ thống server Nghĩa là phải

Trang 31

tăng cấu hình máy server hoặc tăng số lượng server, đó chính là một trong hai phương

án mở rộng server: mở rộng theo chiều dọc (scaling up) và mở rộng theo chiều ngang(scaling out) Mở rộng theo chiều dọc nghĩa là năng cấp một server có cấu hình ngàycàng mạnh hơn tùy theo nhu cầu của người dung, phương pháp này khá tốt trongtrường hợp số lượng người dung không nhiều, tuy nhiên giá thành của nó đắt và khảnăng mở rộng kém Mở rộng theo chiều ngang nghĩa là sử dụng một hệ thống nhiềuserver nhỏ với chi phí thấp hơn và mỗi server phục vụ một lượng người dùng nhấtđịnh, phương pháp này có khả năng mở rộng tốt (lắp thêm khi cần) và hoạt động kháhiệu quả Với những trang có số lượng người truy cập nhiều và tỉ lệ truy cập cao, cácnhà quản trị hệ thống thường lựa chọn phương án thứ hai – mở rộng theo chiều ngang

Một server cực mạnh Nhiều server nhỏ

Ưu điểm - Dễ dàng thực hiện

- Hệ thống hoạt động hiệuquả

- Giảm thiểu chi phí

- Phục vụ được lượng userrất lớn nếu giải quyết tốtbài toán cân bằng

Nhược

điểm

- Chi phí rất đắt (đặc biệt khi

số lượng người dùng tăngcao)

- Có giới hạn nhất định

- Downtime problems

- Phát sinh nhiều vấn đề:cân bằng tải, quản lýsession, cần thiết phải cóload balancer

Bảng 2-3 So sánh việc sử dụng một server và nhiều serverNhà quản trị sử dụng kiến trúc web với khả năng mở rộng (scalable web architecture).Cách tiếp cận này cho phép nhà quản trị tăng hiệu năng của hệ thống, cho khả năng mởrộng và khả năng có sẵn cao, đáp ứng được yêu cầu trong suốt đối với người dùng(user-transparent), tuy nhiên có rất nhiều cách thức cần vượt qua để xây dựng được cácchức năng của một hệ thống website trên nền trình duyệt web và HTTP

Trang 32

Để xây dựng một website theo kiến trúc này, nhà quản trị website phải thiết kế mộtcách nhịp nhàng các thành phần của hệ thống, các thành phần chính bao gồm xây dựng

hệ thống web-server, xây dựng hệ thống database-server, quản lý session, thiết kế bộcache cho hầu hết các thành phần của hệ thống Một website xây dựng theo kiến trúcnày khi muốn nâng cấp mở rộng sẽ theo chiều hướng scaling out, nghĩa là hệ thống sẽ

có nhiều web-server và nhiều database-server kết nối với nhau, khi cần mở rộng sẽ lắpđặt thêm các server mới

Khi hệ thống có nhiều server thì vấn đề đặt ra là khi một người dùng truy cập vàowebsite, yêu cầu của người dùng đó sẽ được chuyển đến server nào xử lý, lấy dữ liệu ởdatabase-server nào? Làm thế nào để các server trong hệ thống nhận được lượng tảiphù hợp với server đó, đảm bảo không server nào bị quá tải? Làm sao để hệ thống cóthể đáp ứng được số lượng người dùng cao nhất? Đó chính là bài toán cân bằng tải(Load Balancing - LB) cho các server, cũng chính là phần quan trọng nhất trong việcgiữ cho hệ thống hoạt động ổn định, là nhân tố quyết định đến khả năng đáp ứng ngườidùng của hệ thống Thuật ngữ cân bằng tải không những chỉ dùng cho server, mà còndùng trong hầu hết các thành phần còn lại của kiến trúc web với khả năng mở rộng, đó

là cân bằng tải cho database, cân bằng tải cho cache, cân bằng tải cho firewall… Mộtwebsite được cân bằng tải tốt sẽ tận dụng được cao nhất nguồn lực sẵn có Chẳng hạnnhư website với 1 web-server có thể đáp ứng được cho 1000 người dùng cùng lúc, khinâng cấp lên 4 server, nếu cân bằng tải tốt sẽ có khả năng đáp ứng cho 4000 ngườicùng lúc, ngược lại sẽ chỉ có thể đáp ứng được 2000 người, thậm chí là còn ít hơn số

đó Một trang web được xử lý tốt vấn đề cân bằng tải sẽ đáp ứng được người dùng mộtcách tốt nhất và có khả năng mở rộng cao

Để cân bằng tải cho cụm server, cần phải xây dựng các bộ cân bằng tải (LoadBalancer) Các bộ cân bằng tải này được cài đặt ở giữa người dùng và hệ thống server,nhận yêu cầu từ phía người dùng, sau đó chuyển chúng đến webserver phù hợp Bộ cân

Trang 33

bằng tải lúc đó đóng vai trò là web-server duy nhất đối với tất cả mọi người dùng, chỉcần truy cập đến địa chỉ chứa bộ cân bằng tải, người dùng sẽ nhận được thông tin mìnhcần, không cần biết phía sau đó hệ thống có bao nhiêu server, cũng không cần nhớ địachỉ của các server này

Một bộ cân bằng tải cần đáp ứng được hai yêu cầu chính Thứ nhất, cũng là quan trọngnhất, đó là khả năng xử lý và chuyển yêu cầu của người dùng đến server phù hợp, đểgiải quyết vấn đề này, cần phải xây dựng một thuật tóan phân tải hoạt động “mềm dẻo”trên nhiều yếu tố khác nhau Thứ hai, nó cần phải kiểm tra và cập nhật được các thống

số kỹ thuật cũng như trạng thái của các serverrr, kiểm tra xem server nào hoạt động,server nào đang tạm nghỉ, server nào vừa được thêm vào cụm server, hay vừa được đưa

ra (để sửa chữa, bảo trì…) trong hệ thống, kiểm tra sự thay đổi trong khả năng phục vụ(chẳng hạn số kết nối lớn nhất) hay trọng số của các server Giải quyết tốt hai bài toántrên sẽ cho ra một bộ cân bằng tải hoạt động hiệu quả và ổn định

Điểm mấu chốt trong hoạt động của các bộ cân bằng tải là thuật toán phân phối tải.Không có một thuật toán nào thực sự phù hợp cho mọi môi trường Với những điềukiện hệ thống nhất định, yêu cầu đặt ra là phải chọn thuật toán nào cho phù hợp Cácthuật toán phân tải đang được sử dụng thường được chia ra làm hai loại chính, đó làthuật toán phân tải tĩnh và thuật toán phân tải động Các thuật toán phân tải tĩnh dễ thiết

kế, hoạt động đơn giản nhưng hiệu suất không cao Chúng được gọi là thuật toán tĩnh

vì phương pháp chọn server để gửi yêu cầu tiếp theo dựa trên các yếu tố tĩnh, khôngthay đổi Ngược lại, các thuật toán phân tải động dựa trên các nhân tố động, thay đổiliên tục, do đó các thuật toán động này hoạt động linh hoạt hơn và đáp ứng yêu cầuphân tải một cách tốt hơn Tuy vậy không có một thuật toán nào có thể đáp ứng đượctrong mọi trường hợp Cần phải có một sự kết hợp mềm dẻo dựa các thuật toán nàymới có thể xây dựng được một bộ cân bằng tải cao hơn

Trang 34

2.2.2 Kỹ thuật cân bằng tải web server

Cân bằng tải web server là phần quan trọng nhất trong quy trình xây dựng website theokiến trúc mở rộng Một trang web được cân bằng tải tốt sẽ tránh được tình trạng tắcnghẽn server, luôn trả về yêu cầu của người dùng trong khoảng thời gian ngắn nhất, do

đó sẽ khiến người dùng hài lòng Có nhiều kỹ thuật để thực hiện cân bằng tải choserver, một trong những kỹ thuật thường được đề cập rộng rãi trên internet là sử dụngDNS (Domain Name System) Là một phần của cân bằng tải toàn cầu, DNS server sẽchứa thông tin về địa chỉ của rất nhiều host dưới một cái tên host duy nhất Khi ngườidùng truy cập vào host bằng tên này, DNS sẽ trả về host theo thứ tự quay vòng, nhưvậy người dùng khác nhau sẽ truy cập vào các địa chỉ khác nhau dưới cùng một tên.Tuy nhiên kỹ thuật này chưa cho thấy được tầm quan trọng

Điều quan trọng nhất trong cân bằng tải server chính là thiết kế và xây dựng bộ cânbnwgf tải Bộ cân bằng tải này sẽ trước cụm server, nhận yêu cầu từ người dùng, sau

đó phân tải vào các server một cách phù hợp

2.2.2.1 Lý thuyết xây dựng bộ cân bằng tải cho web-server

Một bộ cân bằng tải cần phải thực hiện được 4 chức năng cốt lõi sau:

- Cân bằng tải cho server (server load balancing): có nhiệm vụ phân phối tải giữacác server, tăng khả năng mở rộng của hệ thống, giúp cho hệ thống vẫn hoạtđộng khi có server bị “chết”

- Cân bằng tải cho server toàn cầu (global server load balancing): có nhiệm vụchuyển hướng yêu cầu của người dùng đến các data center khác nhau trongtrường hợp website có nhiều trung tâm dữ liệu trên thế giới Góp phần tăng tốc

độ phản hồi cho người dùng và giúp cho hệ thống vẫn có khả năng hoạt độngkhi có trung tâm dữ liệu bị “chết”

Trang 35

- Cân bằng tải cho firewall (firewall load balancing): có nhiệm vụ phân phối tảigiữa các firewall, giúp cho hệ thống vẫn hoạt động được khi có firewall bị

“chết”

- Chuyển mạch cache trong suốt (transparent cache switching): giúp chuyểnhướng lưu lượng một cách “trong suốt” đến các caches, góp phần tăng thời gianđáp ứng và hiệu năng của hệ thống

2.2.2.1.1 Kỹ thuật cân bằng tải server

Như đã đề cập, bộ cân bằng tải có nhiệm vụ kết nối giữa người dùng và server, do đó

có thể hoạt động như một proxy hoặc gateway Một proxy có nhiệm vụ luân chuyểnyêu cầu và dữ liệu đáp trả giữa người dùng và server, trong khi đó một gateway chỉ cónhiệm vụ tạo ra một kết nối hai đối tượng này và không làm gì thêm Có thể sử dụngphần cứng hoặc phần mềm được cài đặt trên một front server, hoặc trên chính webserver Thêm nữa, khi số lượng người dùng tăng lên, để tránh SPOF, cần phải cài đặthai bộ cân bằng tải song song, hoạt động theo cơ chế active-active hoặc active-backup.Các phần mềm cân bằng tải thường được cài đặt như một proxy Để xây dựng một bộcân bằng tải phần mềm, các kỹ thuật cần phải chú trọng, đó là: kiểm tra trang tháiserver, lựa chọn server tốt nhất để gửi yêu cầu và kỹ thuật duy trì kết nối người dùng

2.2.2.1.1.1 Kiểm tra trạng thái server

Để chọn được server phù hợp để gửi request, bộ cân bằng tải cầ phải biết được servernào đang có sẵn Vì vậy, nó cần phải dùng biện pháp nào đó để kiểm tra trạng thái củaserver, chẳng hạng như gửi lệnh ping, các yêu cầu, thử kết nối hay bất cứ phương phápnào mà người quản trị nghĩ là dùng được Kỹ thuật kiểm tra này thường được gọi là

“health checks”

Một server bị down có thể trả lời lệnh ping nhưng không thể trả lời các kết nối TCP,một server bị treo có khả năng trả lời kết nối TCP nhưng không thể trả lời các yêu cầu

Trang 36

HTTP Khi một ứng dụng web nhiều lớp được kích hoạt, một số yêu cầu HTTP có thểtrả lời ngay lập tức trong khi số khác sẽ thất bại.

Chính vì thế, việc chọn một phương pháp test phù hợp được chấp nhận bởi ứng dụngweb và bộ cân bằng tải là rất thú vị Một số test đôi khi phải cần truy xuất dữ liệudatabase nhằm đảm bảo rằng toàn bộ quá trình của nó là đúng Hạn chế lớn nhất lànhững phương pháp kiểm tra này sẽ chiếm tài nguyên của hệ thống như CPU,threads…

Do đó, cân bằng thời gian kiểm tra chính là vấn đề khó nhất trong kỹ thuật lựa chọnserver Khoảng thời gian giữa 2 lần test liên tiếp phải đủ dài để không tốn quá nhiều tàinguyên của hệ thống cũng cần đủ ngắn để nhanh chóng phát hiện ra những server

“chết” Vì “health checks” là một trong những khía cạnh phức tạp nhất của kỹ thuậtcân bằng tải, nên thường sau một vài kiểm tra, các nhà phát triển ứng dụng sẽ thực thimột yêu cầu đặc biệt dành riêng cho bộ cân bằng tải, giúp cho nó thực hiện một sốkiểm tra nội bộ

Phần mềm cân bằng tải có khả năng cung cấp scripting, do đó nó đạt được độ linh hoạtrất cao Thêm nữa, nếu như một bài kiểm tra nào đó đòi hỏi phải chỉnh sửa code, nó cóthể thực hiện trong một khoảng thời gian ngắn

2.2.2.1.1.2 Lựa chọn server tốt nhất

Việc lựa chọn server tốt nhất chính là phần trọng tâm của thuật toán cân bằng tải.Phương pháp dễ nhất và thường được sử dụng nhất trong các hệ thống nhỏ là RoundRobin, các server được lựa chọn quay vòng, tuy nhiên phương pháp này có nhược điểm

là 2 requests liên tục từ một người dùng sẽ vào 2 server khác nhau, thông tin giữa 2 yêucầu liên tiếp sẽ bị mất, như vậy sẽ không thể tối ưu hóa được sử dụng tài nguyên Đặcbiệt là khi cần phải cài đặt kết nối cho các phiên chạy – ví dự như SSL key negociation– sẽ rất tốn thời gian

Trang 37

Một cách khắc phục nhược điểm này là sử dụng một hàm băm theo địa chỉ IP, như vậyrequest từ cùng một địa chỉ IP sẽ chỉ vào một server duy nhất Tuy vậy phương phápnày đòi hỏi người dùng phải có IP tĩnh Vậy thì cách khắc phục cho những hạn chế trên

là gì? Đó chính là kỹ thuật Session Persistence

2.2.2.1.1.3 Kỹ thuật Session Persistence

Vấn đề cần giải quyết chính là làm sao để giữ cho các yêu cầu một người dùng đượcgửi vào một máy duy nhất trong suốt phiên làm việc của người đó Tất cả các yêu cầungười dùng này cần phải được chuyển vào cùng một server Nếu server bị chết, hoặcngừng để bảo trì, cần phải có cơ chế để chuyển session của người dùng này sang máyserver khác Đó chính là kỹ thuật Session Persistence

Một số phương pháp đưa ra để tiếp cận kỹ thuật này, chẳng hạn như sử dụng responseHTTP 302 hay tạo ra liên kết giữa người dùng – server Tuy vậy 2 phương pháp nàyđều có những hạn chế, sử dụng HTTP 302 sẽ khiến người dùng luôn tìm cách kết nốivới một server duy nhất, kể cả khi server này đã “chết” Dùng cách taojo liên kết đòihỏi user phải có IP tĩnh suốt phiên làm việc

Vậy để giải quyết vấn đề này ta sử dụng cookie Cookie là một đối tượng được điều

khiển bởi Web Servers Trong kết quả trả về cho người dùng web servers sẽ chèn thêmmột số thông tin Những yêu cầu tiếp theo của người dùng gửi đến server sẽ chứa thêmthông tin của cookie này, server sẽ đọc các cookie và biết phải làm gì với các yêu cầunày

2.2.2.1.1.4 Cookie

Một cookie được định nghĩa bằng cặp tên = giá trị (name = value) Hình … miêu tảhoạt động của cookie với cặp user=1, cho biết tên cookie là user và giá trị của nó là 1.Bên phía người dùng, cookie được điều khiển bởi trình duyệt và “trong suốt” đối với

Trang 38

Hình 2-3 Cách làm việc của cookie user=1Trong thiết kế của bộ cân bằng tải, có 3 cách để sử dụng cookie: Cookie chỉ đọc(Cookie-Read), bộ cân bằng tải chèn cookie nhằm chứng thực server (Cookie-Insert)

và ghi đè cookie (Cookie-Rewrite) Phạm vi nghiên cứu đề tài không đề cập sâu đếncách thức hoạt động của 3 cách sử dụng cookie này

Phương pháp Cookie-Rewrite có ưu điểm là tránh cho bộ cân bằng tải làm việc quámức và tránh cho gói tin bị chia nhỏ Phương pháp này khắc phục được nhược điểmcủa 2 phương pháp còn lại và thường được chọn dùng trong các bộ cân bằng tải

2.2.2.1.2 Cân bằng tải cho server toàn cầu (GSLB)

Có 2 nhân tố chính thể hiện sự cần thiết của GSLB, đó là khả năng có sẵn và thời gianđáp ứng

Để đảm báo tính có sẵn của cụm server chúng ta sử dụng 1 bộ cân bằng tải để thực hiệnkiểm tra “health checks” đối với các server Để đảm bảo bộ cân bằng tải không bị quátải, chúng ta có thể cài đặt nhiều bộ cân bằng tải hoạt động theo chế độ active-activehoặc active-backup Nhưng chuyện gì xảy ra nếu như toàn bộ trung tâm dữ liệu chứacác server và các bộ cân bằng tải không thể hoạt động vì mất điện, động đất hoặc lũlụt? Tất nhiên người dung sẽ không thể truy cập vào website Để tránh trường hợp nàyxảy ra, chúng ta có thể cài đặt website ở nhiều trung tâm dữ liệu khác nhau và sử dụngGSLB để đồng bộ giữa các trung tâm này Phương án này đảm bảo rằng, nếu có mộttrung tâm nào đó bị hỏng thì vẫn còn trung tâm khác hoạt động

Trang 39

Trong mạng internet, có những yếu tố bất lợi mà chúng ta không thể giải quyết mộtcách triệt để, một trong những yếu tố đó là “thời gian trễ của đường truyền internet”(internet delay), đây cũng chính là yếu tốt quyết định đến thời gian đáp ứng củawebsite đối với người dung Thời gian đáp ứng người dùng phụ thuộc vào thời gian trễcủa người dùng (client-side delay), thời gian trễ của server (server-side delay), và thờigian trễ của đường truyền internet Các phương án giảm thiểu tối đa thời gian củaserver đã được bàn ở phần cân bằng tải cho server Do chúng ta không thể kiểm soátđược thời gian trễ của người dùng, nên phần này sẽ đi sâu vào các phương pháp cài đặt

hệ thống server để hạn chế được thời gian trễ của đường truyền mạng

2.2.2.1.2.1 Domain Name System

GSLB có thể đạt được bằng nhiều cách khác nhau, nhưng cách được dùng nhiều nhất

là sử dụng Domain Name System (DNS) Khi người dung truy cập vào websitewww.facebook.com, thì “facebook.com” chính là tên miền (domain), có nhiều loại tênmiền khác nhau, chỉ định bằng đuôi của chúng Chẳng hạn như tên miền com làcommercial (các trang web thương mại), tên miền org thay cho organization (tổ chức),hoặc tên miền edu thay cho education (giáo dục) Trong mỗi tên miền lại có những tênmiền con, chẳng hạn như “daa.uit.edu.vn” hay “iot.uit.edu.vn”, chúng còn được gọi làcác vùng (zones) của tên miền chính Một name server lưu trữ thông tin về các tênmiền, và có trách nhiệm trả về tất cả các vấn đề không gian tên của các tên miền này.Một tên miền có thể được lưu trữ ở nhiều DNS khác nhau, nhưng sẽ có một DNS cóthẩm quyền cao nhất (authoritative DNS), DNS này có trách nhiệm cập nhật tất cả cácthay đổi cho các DNS có thẩm quyền thấp hơn

Server tên miền cục bộ (local DNS) là name server được lưu trữ ở trong mạng LANcủa người dung Khi người dung truy cập một tên miền như www.facebook.com, localDNS sẽ chuyển tên miền này thành 1 địa chỉ IP, như mô hình trong hình … Vậy thì nó

Trang 40

liệu trả về sẽ là danh sách các tên miền có đuôi là com (3) Sau đó, Local DNS sẽchuyển yêu cầu đến “.com name server” (4), và name server này sẽ trả về IP củaauthoritative DNS của website facebook.com (5) Local DNS gửi yêu cầu đến địa chỉ

IP này (6), và nhận dữ liệu trả về là IP của một trong các web server của trangfacebook.com (7), IP này được trả về cho trình duyệt và được dung để truy xuất dữ liệu(8,9)

Hình 2-4 Mô hình Global Server Load BalacingTrong bước (7), đôi khi dữ liệu trả về sẽ là một danh sách các địa chỉ IP của websitecần truy cập, hoặc có khi DNS sẽ dùng round-robin để trả về danh sách này theo thứ tựquay vòng, như vậy mỗi lần sẽ trả về một địa chỉ IP khác nhau Nếu local DNS nhậnđược một list các IP trả về, nó sẽ chuyển về trình duyệt các IP này theo thuật toánRound Robin

Khi Local DNS nhận dữ liệu trả về, nó sẽ lưu trữ thông tin của các dữ liệu này trongmột khoảng thời gian (gọi là Time-To-Live - TTL) Trong khoảng thời gian này, bất cứyêu cầu nào với tên miền là con của tên miền gốc sẽ được trả về địa chỉ IP giống nhưyêu cầu gốc Nếu hết thời gian TTL mà vẫn không có yêu cầu, dữ liệu này sẽ tự động

bị xóa đi Giá trị TTL giảm sẽ khiến local DNS truy cập vào authoritative DNS nhiềuhơn, tăng giá trị TTL sẽ khiến local DNS có nguy cơ thừa quá nhiều dữ liệu khôngdùng đến Vì vậy chọn giá trị TTL phải tùy thuộc vào từng website và thời điểm cụ thể

Ngày đăng: 08/07/2020, 14:13

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w