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

Luận văn tốt nghiệp Khoa học máy tính: Hệ thống hỗ trợ quản lý giao hàng

150 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Hệ thống hỗ trợ quản lý giao hàng
Tác giả Nguyễn Trọng Dư
Người hướng dẫn THS. Lưu Quang Huân, THS. Vương Bá Thịnh, THS. Trần Hồng Tài
Trường học Trường Đại Học Bách Khoa
Chuyên ngành Khoa học máy tính
Thể loại Luận văn tốt nghiệp đại học
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 150
Dung lượng 3,6 MB

Nội dung

Những ưu điểm chính của LVTN: - Luân văn đưa ra ứng dụng cụ thể sát với thực tế của như cầu giao nhận hàng hóa.. Trong quy trình nghiệp vụ giao hàng hiện nay của các đơn vị cung cấp, tại

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

TP HỒ CHÍ MINH, 8/2021

Trang 3

 &ѫVӣOêWKX\ӃWQӅQWҧQJKLӋQWKӵFYjQKӳQJF{QJFөWULӇQNKDLFNJQJÿѭӧFWKDPNKҧRÿҫ\ÿӫWUѭӟFNKLYұQGөQJWURQJTXiWUuQKWKӵFKLӋQJLҧLSKiSÿӅ[XҩWWKHRPөFWLrXÿmÿӅUD

 ĈӅ[XҩWPӝWNLӃQWU~FYӟLVӵSKkQOӟSU}UjQJQKӳQJWKjQKSKҫQFөWKӇWURQJNLӃQWU~FYjVӵWѭѫQJWiFWUDRÿәLGӳOLӋXJLӳDQKӳQJWKjQKSKҫQQj\PӝWFiFKWѭӡQJPLQK7URQJÿyQKӳQJÿӕLWѭӧQJWURQJKӋWKӕQJQKӳQJÿӕLWѭӧQJQJRjLKӋWKӕQJYjYDLWUzFKӭFQăQJFӫDQKӳQJÿӕLWѭӧQJQj\ÿѭӧFOjPU}

 ĈҫXWѭWuPKLӇXYjiSGөQJQKLӅXF{QJFөWLӋQtFKSKәELӃQÿӇWULӇQNKDLÿӅWjLQKѭQKӳQJ'HY2SVWKӵFWKөQrQÿmWtFKKӧSWKjQKF{QJӭQJGөQJGLÿӝQJYӟL5HDO7LPH6HUYLFHFNJQJQKѭYӟLKӋWKӕQJ[iFWKӵFQJѭӡLGQJWӯPӝWÿӅWjLNKiF

 &yWLQKWKҫQWUiFKQKLӋPFDRNKLOjPYLӋFQKyPELӃWOҳQJQJKHWuPKLӇXYjÿӅ[XҩW

SKѭѫQJiQNKҳFSKөFQKӳQJVӵFӕSKiWVLQKWURQJWURQJVXӕWTXiWUuQKKLӋQWKӵFWULӇQNKDLNLӇPWKӱGӵiQ

1KӳQJWKLӃXVyWFKtQKFӫD/971

 7X\P{KuQKNLӇPWKӱNKiEjLEҧQYӟLF{QJFөNLӇPWUDWӵÿӝQJQKѭQJQӝLGXQJNLӇPWUDFzQÿѫQJLҧQYӟLWұSKӧSWLrXFKtNLӇPWUDFKѭDSKӫKӃWQKӳQJOӛLWLӅPҭQ

 &KѭDKLӋQWKӵFWHVWWҧLYӟLVӕOѭӧQJWKLӃWEӏÿӗQJWKӡLÿӫOӟQQrQSKҫQWULӇQNKDLJLҧLSKiSPӟLGӯQJOҥLӣJLDLÿRҥQ3R&

 &ҫQKLӋQWKӵFWKrPJLDRGLӋQÿӇQJѭӡLGQJWKHRG}LÿѫQKjQJPӝWFiFKWUӵFTXDQFNJQJQKѭFҧLWLӃQFiFKWKӭFWtQKÿLӇPWjL[ӃPӝWFiFKWKX\ӃWSKөFKѫQ

ĈӅQJKӏ ĈѭӧFEҧRYӋ□ %әVXQJWKrPÿӇEҧRYӋ□ K{QJÿѭӧFEҧRYӋ□

FkXKӓL69SKҧLWUҧOӡLWUѭӟF+ӝLÿӗQJ

Trang 4

D 0ӝWJLDRGӏFKÿѭӧF[HPOjKRjQWҩWNKLWRjQEӝTX\WUuQK³JLDRQKұQ´GLӉQUDVX{QVҿQӃXTXiWUuQKQj\JһSVӵFӕYӅNӻWKXұW YtGөOӛLÿѭӡQJWUX\ӅQÿLӋQWKRҥLPҩWQJXӗQ**

*36PҩWVyQJ WKuKӋWKӕQJFy[ӱOêQJRҥLOӋNK{QJ"

E /jPVDRÿӇKҥQFKӃUӫLURGR\ӃXWӕFRQQJѭӡLWURQJYLӋFEҧRÿҧPWjLVҧQFӫDQJѭӡLJӱLNK{QJEӏÿiQKFҳSWUiRÿәLWURQJPӝWJLDRGӏFK"

F 9LӋFÿӏQKGDQKQJѭӡLQKұQTXDQWUӑQJQKѭWKӃQjRWURQJP{KuQKTX\WUuQKQJKLӋSYөJLDRQKұQKjQJKyD"

ĈiQKJLiFKXQJ EҵQJFKӳJLӓLNKi7%  *LӓL ĈLӇP

.êWrQ JKLU}KӑWrQ

Trang 5

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc

-Ngày 23 tháng 12 năm 2021

PHIẾU CHẤM BẢO VỆ LVTN

(Dành cho người hướng dẫn/phản biện)

1 Họ và tên SV: Nguyễn Trọng Dư

MSSV: 1610569 Ngành (chuyên ngành): Khoa Học Máy Tính

2 Đề tài: Hệ thống hỗ trợ quản lý giao hàng

3 Họ tên người hướng dẫn/phản biện: /Trần Hồng Tài

4 Tổng quát về bản thuyết minh:

- Số bản vẽ vẽ tay Số bản vẽ trên máy tính:

6 Những ưu điểm chính của LVTN:

- Luân văn đưa ra ứng dụng cụ thể sát với thực tế của như cầu giao nhận hàng hóa

- Luận văn tìm hiểu ưu điểm, nhược điểm của các nền tảng, mô hình liên quan như grab, gojek, be như việc chưa có khả năng định danh người nhận, một số nền tảng chưa có chức năng giao đơn

hang nhiều điểm dừng

- Đưa ra đề xuất để cải thiện các mô hình trước đó như định danh người nhận bằng mã QR, thiết lậpchức năng giao hàng nhiều điểm dừng

- Có định hướng phát triển tiếp theo cho đề tài

7 Những thiếu sót chính của LVTN:

- Các hình ảnh về quy trình, sơ đồ trong luận văn có cỡ chữ tương đối nhỏ khó quan sát

- Chức năng cấp định danh người nhận là bắt buộc và bắt buộc người nhận phải có tài khoản để

được cấp định danh

- Chưa đưa ra các quy trình để xử lý tình huống xấu phát sinh như tài xế bị hư xe trong quá trình giao hàng

8 Đề nghị: Được bảo vệ  Bổ sung thêm để bảo vệ  Không được bảo vệ 

9 3 câu hỏi SV phải trả lời trước Hội đồng:

- Nêu hướng cải tiến để định danh trong trường hợp cần gửi hàng cho người nhận không có tài

khoản

-

-

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Khá Điểm: 7.8 /10

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

Trần Hồng Tài

Trang 6

LỜI CAM ĐOAN

Chúng tôi xin cam đoan đây là công trình nghiên cứu và thực hiện của nhóm chúngtôi Các số liệu sử dụng phân tích trong luận văn có nguồn gốc được dẫn chứng và công

bố rõ ràng Mọi sao chép không hợp lệ, vi phạm các quy định, chúng tôi xin hoàn toànchịu trách với mọi hình thức kỷ luật được đề ra

NHÓM THỰC HIỆN ĐỀ TÀI

Trang 7

LỜI CẢM ƠN

Trước hết chúng tôi xin dành hết lòng biết ơn của mình cho ThS Lưu Quang Huân giảng viên khoa Khoa học và Kỹ thuật Máy tính (trường Đại học Bách Khoa - ĐHQG-TP.HCM) Trong suốt khoảng thời gian vừa qua, đã không ngừng dành thời gian quantâm, theo dõi, đưa ra những hướng dẫn mang tính quyết định đối với đề tài để nhómthực hiện chúng tôi có thể hoàn thành được đề cương luận văn này ở mức tốt nhất cóthể Cũng như đưa ra hướng phát triển để chúng tôi có thể nhận thấy và thực hiện trongkhoảng thời gian này

-Bên cạnh đó, chúng tôi xin cảm ơn những kiến thức, kinh nghiệm và những sự giúp

đỡ của tập thể giảng viên, nhân viên khoa Khoa học và Kỹ thuật Máy tính (trường Đạihọc Bách Khoa - ĐHQG-TP.HCM) đã truyền đạt cho chúng tôi trong những năm thángvừa qua để tạo ra nền tảng kiến thức vững chắc cho chúng tôi thực hiện đề tài ngày hômnay

Cuối cùng, chúng tôi mới gửi lời cảm ơn sâu sắc đến gia đình và bạn bè, những người

đã tạo ra động lực phi thường giúp chúng tôi hoàn thành đề cương luận văn một cách đầy

đủ nhất

NHÓM THỰC HIỆN ĐỀ TÀI

Trang 8

TÓM TẮT NỘI DUNG

Trao đổi hàng hóa là một nhu cầu bức thiết trong xã hội, từ người có hàng hóa vậnchuyển tới người có nhu cầu Khi chưa ứng dụng công nghệ thông tin hoàng hóa chủyếu được vận chuyển thông qua kênh bưu điện, các chuyến xe khách liên tỉnh hay xe ômtruyền thống Dẫn đến nhiều bất cập như phụ thuộc về giá và chưa đảm bảo được tính antoàn, bảo mật

Hiện nay đã có những công ty ứng dụng công nghệ thông tin tạo ra các sản phẩm giúp

hỗ trợ quá trình giao nhận hàng hóa như Grab, Ahamove, Gojek Thông qua nền tảngcủa từng công ty người dùng có thể dễ dàng gửi các kiện hàng tới một địa điểm trongkhi có thể theo dõi hành trình tài xế và biết trước giá cước vận chuyển

Trong luận văn này, mục tiêu của chúng tôi là nghiên cứu và xây dựng một hệ thốngnguyên bản cho phép thực hiện các tác vụ cơ bản nhất của hệ thống liên quan đến giaohàng nhiều điểm dừng và định danh người nhận thông qua mã QR

Trang 9

Mục lục

1.1 Động lực 2

1.2 Mục tiêu đề tài 3

1.3 Phạm vi đề tài 3

1.4 Cấu trúc báo cáo 4

2 Các giải pháp liên quan 5 2.1 Grab 6

2.2 Gojek 8

2.3 Be 9

2.4 Tổng kết 11

2.4.1 So sánh tính năng của từng dịch vụ 11

2.4.2 Ưu điểm 11

2.4.3 Khuyết điểm 12

2.4.4 Kết luận 12

3 Kiến thức nền tảng 13 3.1 Django 14

3.1.1 Ưu điểm 15

3.1.2 Khuyết điểm 16

3.2 React Native 17

3.2.1 Ưu điểm 18

3.2.2 Khuyết điểm 19

3.3 PostgreSQL 20

Trang 10

3.3.1 Ưu điểm 20

3.3.2 Khuyết điểm 21

3.4 Redis 22

3.4.1 Ưu điểm 22

3.4.2 Nhược điểm 23

4 Giải pháp đề xuất 24 4.1 Đối tượng sử dụng 25

4.1.1 Quản trị viên 25

4.1.2 Tài xế 25

4.1.3 Người gửi hàng 25

4.1.4 Người nhận hàng 25

4.2 Phân tích yêu cầu nghiệp vụ 26

4.2.1 Yêu cầu chức năng của quản trị viên 26

4.2.2 Yêu cầu chức năng của tài xế 29

4.2.3 Yêu cầu chức năng của người gửi hàng 36

4.2.4 Yêu cầu chức năng của người nhận hàng 41

4.2.5 Yêu cầu phi chức năng 42

4.3 Kiến trúc hệ thống 42

4.3.1 Module tương tác người dùng 42

4.3.2 Kiến trúc ứng dụng di động 43

4.3.2.1 Redux 43

4.3.2.2 UI Component 44

4.3.2.3 Socket Component 44

4.3.3 Server 44

4.3.4 Kiến trúc Server 46

4.3.4.1 Delivery Handler 46

4.3.4.2 Realtime Handler 47

4.4 Thiết kế giao diện người dùng 48

4.4.1 Giao diện web quản trị viên 48

4.4.1.1 Dashboard trang quản trị viên 48

4.4.1.2 Quản lý tài khoản 49

Trang 11

4.4.1.3 Quản lý vận đơn 51

4.4.2 Giao diện ứng dụng di động người gửi hàng 55

4.4.3 Giao diện ứng dụng di động người nhận hàng 66

4.4.4 Giao diện ứng dụng tài xế 67

4.5 Hiện thực 76

4.5.1 Lược đồ thực thi 76

4.5.1.1 Quy trình “Đăng nhập” 76

4.5.1.2 Quy trình “Tài xế sẵn sàng nhận vận đơn” 78

4.5.1.3 Quy trình “Tạo vận đơn” 79

4.5.1.4 Quy trình “Tài xế chấp nhận vận đơn” 81

4.5.1.5 Quy trình “Tài xế thông báo tới điểm nhận vận đơn” 83 4.5.1.6 Quy trình “Tài xế xác nhận nhận vận đơn” 84

4.5.1.7 Quy trình “Tài xế quét mã QR xác nhận người nhận” 85 4.5.1.8 Quy trình “Tài xế xác nhận hoàn tất vận đơn” 87

4.5.1.9 Quy trình “Hủy vận đơn” 88

4.5.1.10 Quy trình “Quản trị viên xem vận đơn” 90

4.5.1.11 Quy trình “Quản trị viên cập nhật vận đơn” 91

4.5.2 Mô tả chức năng thành phần hệ thống 93

4.5.2.1 Delivery Handler 93

4.5.2.2 Realtime Handler 95

4.5.3 Thiết kế cơ sở dữ liệu 109

4.5.3.1 Thiết kế cở sở dữ liệu ý niệm 109

4.5.3.2 Thiết kế cở sở dữ liệu vật lý 114

4.6 Quản lý mã nguồn 118

4.6.1 Git 118

4.6.2 GitFlow 120

4.6.2.1 Service 121

4.6.2.2 Ứng dụng di động 122

5 Triển khai và kiểm thử 123 5.1 Triển khai 124

5.1.1 Môi trường triển khai 124

Trang 12

5.1.1.1 Heroku 124

5.1.1.2 Google Map 124

5.2 Kiểm thử 125

5.2.1 Loại kiểm thử 125

5.2.2 Tích hợp kiểm thử 125

5.2.3 Kết quả kiểm thử 127

6 Tổng kết 128 6.1 Đánh giá kết quả đạt được 129

6.1.1 Đối với tìm hiểu quy trình nghiệp vụ 129

6.1.2 Đối với công nghệ 129

6.1.3 Đối với phân tích và thiết kế hệ thống 129

6.1.4 Kết quả hiện thực 129

6.1.4.1 Đối với ứng dụng dành cho khách hàng 129

6.1.4.2 Đối với ứng dụng dành cho tài xế 130

6.1.4.3 Đối với ứng dụng dành cho quản trị viên 130

6.1.4.4 Đối với back-end 130

6.1.5 Hạn chế 131

6.1.6 Ý nghĩa thực tiễn 131

6.2 Hướng phát triển đề tài 131

Trang 13

Danh sách hình vẽ

2.1 Grab 6

2.2 Gojek 8

2.3 Be 9

3.1 Django 14

3.2 React Native 17

3.3 PostgreSQL 20

3.4 Redis 22

4.1 Use case quản trị viên 27

4.2 Use case xác thực tài xế 29

4.3 Use case tính năng tài xế 32

4.4 Use case xác thực người gửi 36

4.5 Use case tính năng người gửi hàng 38

4.6 Kiến trúc Ứng dụng di động 43

4.7 Kiến trúc Server 46

4.8 Giao diện web quản trị viên - Dashboard trang quản trị viên 48

4.9 Giao diện web quản trị viên - Quản lý tài khoản 49

4.10 Giao diện web quản trị viên - Thêm tài khoản 49

4.11 Giao diện web quản trị viên - Cập nhật trạng thái tài khoản 50

4.12 Giao diện web quản trị viên - Cập nhật thông tin tài khoản 50

4.13 Giao diện web quản trị viên - Xem thông tin người nhận 51

4.14 Giao diện web quản trị viên - Cập nhật thôn tin người nhận 52

4.15 Giao diện web quản trị viên - Báo cáo trạng thái vận đơn 52

4.16 Giao diện web quản trị viên - Tính năng báo cáo trạng thái vận đơn 53

Trang 14

4.17 Giao diện web quản trị viên - Khách hàng mới 53

4.18 Giao diện web quản trị viên - Khách hàng mới 54

4.19 Giao diện di động - Màn hình thông tin vận đơn 55

4.20 Giao diện di động - Màn hình tìm kiếm địa chỉ 56

4.21 Giao diện di động - Màn hình điểm dừng thứ nhất 57

4.22 Giao diện di động - Màn hình điểm dừng thứ hai 58

4.23 Giao diện di động - Màn hình xác nhận tạo vận đơn 59

4.24 Giao diện di động - Màn hình thông tin tài xế 60

4.25 Giao diện di động - Màn hình trạng thái gửi vận đơn 61

4.26 Giao diện di động - Màn hình trạng thái tài xế xác nhận vận đơn 62

4.27 Giao diện di động - Màn hình trạng thái tài xế tới điểm nhận vận đơn 63

4.28 Giao diện di động - Màn hình trạng thái tài xế xác nhận nhận vận đơn 64 4.29 Giao diện di động - Màn hình trạng thái hoàn tất vận đơn 65

4.30 Giao diện di động - Màn hình mã qr cho người nhận hàng 66

4.31 Giao diện di động - Màn hình tài xế chưa sẵn sàng 67

4.32 Giao diện di động - Màn hình tài xế sẵn sàng 68

4.33 Giao diện di động - Màn hình thông tin vận đơn 69

4.34 Giao diện di động - Màn hình thông báo tới điểm nhận vận đơn 70

4.35 Giao diện di động - Màn hình xác nhận nhận vận đơn 71

4.36 Giao diện di động - Màn hình xác nhận bắt đầu vận chuyển 72

4.37 Giao diện di động - Màn hình xác nhận hoàn tất vận đơn 73

4.38 Giao diện di động - Màn hình quét mã qr 74

4.39 Giao diện di động - Màn hình thông báo tổng cước phí vận chuyển 75

4.40 Quy trình “Đăng nhập” 77

4.41 Quy trình “Tài xế sẵn sàng nhận vận đơn” 78

4.42 Quy trình “Tạo vận đơn” 80

4.43 Quy trình “Tài xế chấp nhận vận đơn” 82

4.44 Quy trình “Tài xế thông báo tới điểm nhận vận đơn” 83

4.45 Quy trình “Tài xế xác nhận nhận vận đơn” 85

4.46 Quy trình “Tài xế quét mã QR xác nhận người nhận” 86

4.47 Quy trình “Tài xế xác nhận hoàn tất vận đơn” 87

Trang 15

4.48 Quy trình “Hủy vận đơn” 89

4.49 Quy trình “Quản trị viên xem vận đơn” 90

4.50 Quy trình “Quản trị viên cập nhật vận đơn” 92

4.51 Flowchart lấy danh sách vận đơn 93

4.52 Flowchart cập nhật vận đơn 95

4.53 Flowchart kiểm tra yêu cầu kết nối Realtime Handler 96

4.54 Flowchart tài xế sẵn sàng nhận vận đơn 98

4.55 Flowchart tạo vận đơn 100

4.56 Flowchart tài xế chấp nhận vận đơn 101

4.57 Flowchart tài xế thông báo tới điểm nhận vận đơn 102

4.58 Flowchart tài xế xác nhận nhận vận đơn 103

4.59 Flowchart tài xế quét mã QR xác nhận người nhận 104

4.60 Flowchart tài xế xác nhận hoàn tất vận đơn 106

4.61 Flowchart hủy vận đơn 107

4.62 Flowchart cập nhật vị trí tài xế 108

4.63 ERD 109

4.64 Thực thể User 109

4.65 Thực thể Customer 110

4.66 Thực thể Shipment 113

4.67 Thực thể DriverOn 113

4.68 Thực thể Item 113

4.69 Thiết kế cơ sở dữ liệu vật lý 115

4.70 Hệ thống mã nguồn phân tán [15] 119

4.71 Các trạng thái của file trong Git [16] 120

5.1 Heroku 124

5.2 Google Map 125

5.3 Postman 125

5.4 Bước 2 tạo collection 126

5.5 Bước 3 tạo các test request 126

5.6 Bước 4 Cấu hình chạy kiểm thử định kỳ 127

5.7 Kết quả kiểm thử 127

Trang 16

Danh sách bảng

2.1 So sánh các giải pháp vận tải 11

2.2 So sánh giải pháp tăng tính bảo mật cho vận đơn 11

4.1 Flowchart cập nhật vận đơn 94

4.2 Cấu trúc gói tin gửi tới Realtime Handler 97

4.3 Dữ liệu sự kiện "Tài xế sẵn sàng nhận vận đơn" 98

4.4 Dữ liệu sự kiện "Tạo vận đơn" 99

4.5 Dữ liệu sự kiện "Tài xế chấp nhận vận đơn" 100

4.6 Dữ liệu sự kiện "Tài xế thông báo tới điểm nhận vận đơn" 101

4.7 Dữ liệu sự kiện "Tài xế xác nhận nhận vận đơn" 103

4.8 Dữ liệu sự kiện "Tài xế quét mã QR xác nhận người nhận" 104

4.9 Dữ liệu sự kiện "Tài xế xác nhận hoàn tất vận đơn" 105

4.10 Dữ liệu sự kiện "Hủy vận đơn" 107

4.11 Dữ liệu sự kiện "cập nhật vị trí tài xế" 108

4.12 Bảng mô tả thực thể User 109

4.13 Bảng mô tả thực thể Customer 111

4.14 Bảng mô tả thực thể Shipment 112

4.15 Bảng mô tả thực thể DriverOn 112

4.16 Bảng mô tả thực thể Item 114

4.17 Mô trường dữ liệu chính của bảng Users 116

4.18 Mô trường dữ liệu chính của bảng Customer 117

4.19 Mô trường dữ liệu chính của bảng DriverOn 117

4.20 Mô trường dữ liệu của bảng Shipment 118

4.21 Mô trường dữ liệu của bảng Item 118

4.22 Cấu trúc thư mục gốc của Service 121

12

Trang 17

4.23 Cấu trúc thư mục Customer 1214.24 Cấu trúc thư mục gốc ứng dụng di động 1224.25 Cấu trúc thư mục app 122

Trang 18

Chương 1

Giới thiệu

Trang 1

Trang 19

1.1 Động lực

Trải qua hàng nghìn năm sống trên trái đất con người luôn muốn tìm kiếm những giảipháp hiệu quả, tiến bộ hơn để nâng cao chất lượng đời sống Qua ba cuộc cách mạngcông nghiệp con người đã đạt được những thành tựu đáng kể từ những cỗ máy vận hàngbằng động cơ hơi nước, những dây truyền sản xuất đồng loạt dùng năng lượng điện vàcho tới những cỗ máy tự động hóa có thể thay thế một phần chức năng của con người[1]

Hiện nay chúng ta đang ở giai đoạn đầu của cuộc cách mạng công nghiệp lần thứ 4, Cuộc

cách mạng công nghiệp 4.0[2], cuộc cách mạng có thể giúp máy móc tự động tương tác

để hoàn thành công việc mà không cần tới sự can thiệp của con người Thế giới chuyểnđộng ngày càng nhanh, nhu cầu ứng dụng khoa học công nghệ vào các ngành nghề cốtlõi của đời sống để tối ưu hóa, giảm thiểu chi phí giúp con người có thêm không gian vàthời gian tập trung vào những công việc quan trọng ngày càng cấp thiết

Giao nhận hàng hóa là một vấn đề xảy ra thường xuyên trong đời sống Không ítnhững công ty, tập đoàn đưa ra các giải pháp hỗ trợ quá trình vận chuyển, giao nhận

hàng có thể kể đến như Uber, Grab, Gojek, Be, LOGIVAN[3] Các giải pháp đã giúp

quá trình di chuyển, giao nhận hàng trở nên đơn giản và hiệu quả hơn Tuy nhiên, xã hộiluôn không ngừng phát triển kéo theo sự thay đổi liên tục trong nhu cầu tiêu dùng, vẫntồn tại những khía cạnh có thể cải tiến nhằm giúp nâng cao hiệu quả trong vấn đề liênquan đến giao nhận hàng hóa

Trong quy trình nghiệp vụ giao hàng hiện nay của các đơn vị cung cấp, tại thời điểmgiao hàng tài xế liên hệ và định danh người nhận thông qua số điện thoại, hoặc khi tớiđiểm giao hàng nếu có người nhận hàng tài xế sẽ tiến hành giao hàng không thông quabước định danh người giao hàng Hiện nay hàng hóa được vận chuyển chủ yếu từ cáctrang thương mại điện tử, đồ ăn, uống những mặt hàng không yêu cầu tính bảo mật

và chính xác cao nên được ưa chộng sử dụng Ngoài những mặt hàng kể trên còn nhữngloại hàng hóa đặc thù yêu cầu tính bảo mật và chính xác cao như công văn, giấy tờ, sổtiết kiệm cần phải có một cách thức định danh người nhận giúp tăng niềm tin đối vớikhách hàng và giảm khả năng nhầm lẫn

Vì vậy, chúng tôi thực hiện dự án này nhằm đưa ra một giải pháp hữu hiệu giúp quản

lý quá trình giao nhận hàng hiệu quả, giảm thiểu tỷ lệ sai sót, giảm áp lực trên hệ thống

Trang 20

khi tham gia khắc phục hậu quả đồng thời gia tăng niềm tin đối với khách hàng.

1.2 Mục tiêu đề tài

Tìm hiểu, phân tích quy trình nghiệp vụ các mô hình vận tải đơn lẻ, các giải pháp giaohàng bằng xe ô tô và xe gắn máy

Phân tích, thiết kế hệ thống đáp ứng các yêu cầu chức năng và phi chức năng

Hiện thực, triển khai phiên bản cơ bản nhất của hệ thống

Tiến hành kiểm thử, đánh giá tính ứng dụng và khả thi của giải pháp đề xuất

Cụ thể: Tạo ra 2 ứng dụng riêng biệt và một giao diện web: 2 ứng dụng riêng biệt gồmmột ứng dụng dành cho tài xế và một ứng dụng dành cho khách hàng Một giao diện webdành cho quản trị viên

• Đối với ứng dụng dành cho tài xế:

– Cập nhật vị trí tài xế theo thời gian thực nhằm giúp tìm kiếm vận đơn gần vị trí

tài xế

– Nhận (từ chối) vận đơn.

– Cập nhật trạng thái vận đơn theo thời gian thực.

– Định danh khách hàng bằng QR.

• Đối với ứng dụng dành cho khách hàng:

– Tìm kiếm các tài xế phù hợp với vận đơn.

– Kiểm soát đơn hàng theo thời gian thực dựa vào trạng thái vận đơn và vị trí của

Trang 21

• Hiện thực một hệ thống có khả năng thể hiện tối thiểu các tính năng được đề xuất.Bao gồm:

– Ứng dụng cho khách hàng.

– Ứng dụng cho tài xế.

– Hệ thống xử lý các yêu cầu từ các ứng dụng.

– Giao diện quản lý ở mức xem thông tin hệ thống.

1.4 Cấu trúc báo cáo

Báo cáo gồm 5 chương sau

Chương 1 Giới thiệu

Chương 2: Các giải pháp liên quan: Trình bày các giải pháp liên quan đến đề tài Chương 3: Kiến thức nền tảng: Trình bày các cơ sở lý thuyết và công nghệ được sử

dụng trong đề tài này

Chương 4: Giải pháp đề xuất: Trình bày về giải pháp mà nhóm đề xuất bao gồm:

Phân tích yêu cầu, các đặc tả, biểu đồ có liên quan

Chương 5: Tổng kết: Tổng kết giai đoạn Đề cương luận văn và hướng phát triển

Trang 22

Chương 2

Các giải pháp liên quan

Trang 5

Trang 23

Nội dung chương sẽ trình bày tổng quan về các ứng dụng, mô hình có liên quan Tậptrung phân tích, so sánh và đánh giá các tính năng, ưu điểm và nhược điểm của giải phápliên quan.

2.1 Grab

Grab là ứng dụng gọi xe phổ biến nhất tại Đông Nam Á dựa trên nền tảng ứng dụng điệnthoại, có trụ sở chính tại Singapore Grab phát triển theo hướng siêu ứng dụng tích hợpnhiều dịch vụ như di chuyển, giao nhận, dịch vụ đặt đồ ăn và dịch vụ tài chính.[4]

Hình 2.1: Grab

Grab được ra đời vào năm 2012 bởi Anthony Tan tại Malaysia với tên ban đầu là "

My Teksi" được gọi là GrabTaxi tại các quốc gia khác Bắt đầu từ ý tưởng tạo ra mộtứng dụng có thể cải thiện tình hình giao thông hiên tại của quốc gia mình Grab là cầunối giữa các tài xế có xe muốn kiếm thêm thu nhập trong thời gian rảnh với khách hàng

có nhu cầu sử dụng dịch vụ xe ôm công nghệ Grab ra đời như một cách thức tuyệt vời

để đáp ứng nhu cầu và lợi nhuận cho cả hai bên Tại Việt Nam, Grab đang mở rộng thịtrường một cách mạnh mẽ Theo thống kê, Grab đang là ứng dụng gọi xe phổ biến nhấttại Việt Nam, chiếm 74,6% thị phần gọi xe với tổng cộng 62.5 triệu cuốc xe được thựchiện trong nửa đầu năm 2020 [5]

Grab cung cấp nhiều dịch vụ bao gồm:

• GrabBike: Kết nối tài xế xe hai bánh với khách hàng

• GrabTaxi: Kế nối taxi thông thường với khách hàng Chi phí khách hàng phải trả làchi phí hiển thị trên đồng hồ của hãng taxi, chi phí hiển thị trên ứng dụng chỉ là chiphí ước tính

Trang 24

• GrabCar: Kết nối tài xế xe ô tô với khách hàng là dịch vụ xe hơi theo hợp đồng điện

tử Chi phí diển thị trên ứng dụng là chi phí khách hàng phải trả cho tài xế

• JustGrab: Là tính năng mở rộng của hai tính năng GrabTaxi và GrabCar, hệ thốnglựa chọn grabtaxi hoặc grabcar dựa trên tiêu chí khoảng cách

• GrabRent: Kết nối tài xế xe ô tô với khách hàng Thuê xe và tài xế theo giờ, trongsuốt thời gian thuê tài xế di chuyển theo lộ trình khách hàng đưa ra

• GrabFood: Kết nối khách hàng với các nhà hàng phục vụ đồ ăn Khách hàng có thểmua các sản phẩm do nhà hàng phục vụ sau đó các tài xế GrabBike đóng vai tròtrung gian nhận đồ ăn vào giao tới khách hàng

• GrabMart: Kết nối khách hàng với các của hàng tạp hóa, siêu thị khách hàng có thểmua đồ ăn vặt, rau củ quả cho tới các sản phẩm chăm sóc sức khỏe, các sản phẩmlàm đẹp GrabMart sẽ đóng vai trò trung gian mua và giao hàng cho khách trongvòng 1 giờ

• GrabExpress: Kết nối tài xế chở hàng với khách hàng Đối với dịch vụ giao nhậnhàng Grab có các tính năng chính bao gồm:

– Thay đổi lộ trình: Khách hàng có thể thay đổi lộ trình không giới hạn Phụ phí

của mỗi lần thay đổi lộ trình là 5km, người nhận sẽ thanh toán khoản phụ phícho tài xế khi nhận hàng

– Giao hàng tạm ứng(COD): Hình thức giao hàng tạm ứng áp dụng với các đơn

hàng có giá trị tối đa là 1.000.000đ

– Giao hàng nhiều điểm dừng: Khách hàng có thể giao cùng lúc nhiều đơn hàng

đến nhiều khách hàng khác nhau chỉ trong một lần đặt Tài xế sẽ giao tới cácđiểm nhận hàng theo thứ tự khách hàng đặt Tính năng giúp tăng sự tiện lợicho khách hàng khi có nhu cầu gửi nhiều hàng hóa tới các địa điểm khác nhaukhông phải thực hiện đặt nhiều lần grab riêng lẻ

• GrabPay(Moca): Ví điện tử được tích hợp trong ứng dụng Grab là phương thứcthanh toán không tiền mặt Ví Moca có thể thanh toán cho các dịch vụ trên nền tảngcủa Grab bao gồm: Di chuyển, Chuyển tiền, GrabFood, Nạp tiền điện thoại, Thanhtoán tại của hàng, Thanh toán hóa đơn

Trang 7

Trang 25

2.2 Gojek

Gojek là công ty công nghệ hàng đầu cung cấp hệ sinh thái siêu ứng dụng tại Đông Nam

Á, có trụ sở chính tại Indonesia Gojek phát triển theo hướng siêu ứng dụng tích hợpnhiều loại dịch vụ như di chuyển, giao nhận hàng hóa, đồ ăn.[6]

Hình 2.2: Gojek

"Ojek" trong tiếng Indonesia có nghĩa là xe ôm đó cũng là nguồn gốc xuất phát chocái tên Gojek Gojek ra đời vào năm 2010 tại Indonesia với mục đích loại bỏ những khókhăn liên quan đến việc di chuyển, loại bỏ thời gian và lỗ lực trong những việc vô nghĩatập trung thời gian và sức lực để giải quyết những việc quan trọng trong cuộc sống.Năm

2019, Fortune gọi tên Gojek đứng thứ 11 trong danh sách 50 công ty thay đổi thế giới,

so sánh với Apple đứng thứ 16.[7]

Gojek cung cấp nhiều dịch vụ bao gồm:

• GoRide: Kết nối tài xế xe hai bánh với khách hàng

• GoFood: Kết nối khách hàng với các nhà hàng phục vụ đồ ăn Khách hàng có thểmua các sản phẩm do nhà hàng phục vụ sau đó các tài xế GoFood đóng vai trò trunggian nhận đồ ăn vào giao tới khách hàng

• GoSend: Kết nối tài xế chở hàng với khách hàng

Trang 26

Be cung cấp các giải pháp tới hai nhóm khách hàng: Khách hàng cá nhân và kháchhàng doanh nghiệp.

Đối với khách hàng doanh nghiệp, be cung cấp các giải bao gồm:

• beCorporate: Giúp quản lý nhu cầu di chuyển hàng ngày của Doanh nghiệp mộtcách dễ dàng và hiệu quả Cùng với hệ thống quả trị giúp doanh nghiệp thiết lậpchính sách theo từng nhóm nhân viên, theo thời gian, cấu hình giới hạn địa lý, hạnmức và loại hình dịch vụ

• beCoupon: Giúp doanh nghiệp tạo phiếu ưu đãi cho dịch vụ vận chuyển Doanhnghiệp có thể dùng beCoupon để làm quà tặng cho người thân, nhân viên và quýđối tác

• beAds: Cung cấp giải pháp truyền thông cho các doanh nghiệp tới các khách hàngcủa be thông qua hình thức online trên nền tảng di động và offline

Trang 9

Trang 27

Đối với khách hàng cá nhân, be cung cấp các giải bao gồm:

• Vận chuyển: Kết nối khách hàng có nhu cầu di chuyển với các tài xế có phươngtiện hai bánh, bốn bánh Phân thành các hình thức gồm beBike, beCar và beTaxi

Be cung cấp phải pháp di chuyển liên tỉnh đối với hai loại hình là beBike và beCar

là điểm đặc biệt so với Grab và Gojek Cùng với các giải pháp hỗ trợ sự linh hoạttrong chuyến đi gồm có: Thay đổi điểm đến, Chuyến đi nhiều điểm đến Chi tiết vềbeBike, baCar và beTaxi như sau:

– beBike: Kết nối tài xế xe hai bánh với khách hàng Bao gồm giải pháp beBike,

beBike đi tỉnh một chiều, beBike đi tỉnh hai chiều

– beCar: Kết nối tài xế xe bốn bánh với khách hàng beCar hỗ trợ hai loại phương

tiện là bốn chỗ và bảy chỗ Bao gồm giải pháp beCar, beCar bốn chỗ đi tỉnhmột chiều, beCar bốn chỗ đi tỉnh hai chiều, beCar bảy chỗ đi tỉnh một chiều vàbeCar bảy chỗ đi tỉnh hai chiều

– beTaxi: Kết nối taxi thông thường với khách hàng beTaxi hỗ trợ hai loại phương

tiện là bốn chỗ và bảy chỗ

• Giao hàng: Kết nối tài xế chở hàng với khách hàng Đối với giải pháp giao hàng becung cấp các giải pháp như sau:

– beDelivery: Giao hàng cho khách hàng nhanh nhất có thể, hỗ trợ hình thức

giao hàng tạm ứng(COD) áp dụng đối với các đơn hàng có giá trị nhỏ hơn2.0000.000đ và giao hàng nhiều địa điểm

– beDelivery 2H: Be sẽ nỗ lực giao hàng cho khách hàng trong vòng hai giờ kể từ

khi khách hàng phát sinh giao dịch đặt hàng trên hệ thống, đồng thời be cũng

hỗ trợ hình thức giao hàng tạm ứng(COD) áp dụng đối với các đơn hàng có giátrị nhỏ hơn 1.000.000đ

– be Đi chợ: Tài xế be tạm ứng tiền mua hàng hóa tại các đỉa điểm theo yêu cầu

của khách hàng sau đó giao tới cho khách

• Ngân hàng số Cake by VPbank: Một sản phẩm hợp tác giữa Ngân hàng TMCP ViệtNam Thịnh Vượng (VPBank) và Công ty TNHH BeFinancial[9] giải pháp thay toánthay thế tiền mặt hỗ trợ quá trình thanh toán nhanh gọn hiểu quả

Trang 28

2.4 Tổng kết

2.4.1 So sánh tính năng của từng dịch vụ

Bảng bên dưới so sánh các loại hình dịch vụ vận tải giữa các giải pháp nêu trên:

Grab

Phương tiện hai bánhPhương tiện bốn bánhThuê xe và tài xế theo giờ

Giao hàngGiao hàng nhiều chặng

Kết nối nhà hàngKết nối siêu thịGojek Phương tiện hai bánh Giao hàng Kết nối nhà hàng

Be

Phương tiện hai bánhPhương tiện bốn bánhChuyến đi nhiều điểm dừng

Giao hàngGiao hàng nhiều chặng

Đi chợ theo yêu cầu

Các ứng dụng trên có các ưu điểm bao gồm:

• Các giải pháp nên trên đã triển khai và có lượng khách hàng lớn

• Cung cấp các dịch vụ đa dạng và chuyên sâu trên nhiều lĩnh vực khác nhau nhằmtối ưu hóa trải nghiệm của khách hàng

• Nền tảng công nghệ vững chắc giúp ứng dụng hoạt động ổn định theo thời gian vớilượng người dùng lớn đồng thời mở rộng cung cấp các dịch vụ khác

Trang 11

Trang 29

2.4.3 Khuyết điểm

Các ứng dụng trên có các khuyết điểm bao gồm:

• Chưa có phương thức định danh người nhận trong trường hợp xảy ra sai xót hệ thốngtốn nhiều chi phí để khắc phục và truy tìm lại hàng hóa

• Đối với những hàng hóa quan trọng như giấy tờ, công văn có thể gây ảnh hưởngnghiêm trọng tới tính bảo mật của dữ liệu

• Bên cạnh những khuyết điểm chung một số giải pháp chưa hỗ trợ hình thức giaohàng nhiều điểm dừng giúp tăng hiệu quả trên một vận đơn

2.4.4 Kết luận

Tóm lại, dựa trên những phân tích phía trên, các giải pháp đã triển khai thành công trongthực tế với nhiều ưu điểm, đó là những điều đáng để học hỏi để xây dựng một đề tàithành công Bên cạnh đó, mỗi giải pháp đều có những khuyết điểm riêng, dựa trên việcphân tích những khuyết điểm này và khai thác những khía cạnh khác của vấn đề đề tàinày nhằm đưa ra một giải pháp tiếp cận tới những nhóm đối tượng khác với cách tiếp cậnmới mẻ hơn

Trang 30

Chương 3

Kiến thức nền tảng

Trang 13

Trang 31

Nội dung chương này sẽ trình bày tóm lược về các công nghệ được sử dụng trong đềtài cũng như nhìn nhận ưu và khuyết điểm của những công nghệ nói trên.

3.1 Django

Hình 3.1: Django

Django là một web framework miễn phí mã nguồn mở được viết bằng Python Django

sử dụng mô hình Model-View-Control (MVC) Django được phát triển bởi Django ware Foundation(DSF) – một tổ chức phi lợi nhuận độc lập.[10]

Soft-Có nhiều trang web lớn sử dụng ngôn ngữ lập trình này như: Dropbox, Instagram,Youtube [11]

Một số đặc điểm quan trọng giúp Django là một trong những sự lựa chọn phát triểnphần mềm:

• Hoàn thiện: Django được thiết kế để giúp các nhà phát triển đưa các ứng dụng từ ýtưởng đến hoàn thành càng nhanh càng tốt

• Đa năng: Django có thể được dùng để xây dựng hầu hết các loại website, từ hệ thốngquản lý nội dung, cho đến các trang mạng xã hội hay web tin tức Nó có thể làmviệc với framework client-side, và chuyển nội dung hầu hết các loại format (HTML,RESS, JSON, XML, )

Trang 32

• Đảm bảo về tính bảo mật: Django giúp các developer tránh các lỗi bảo mật thôngthường bằng cách cung cấp framework rằng có những kĩ thuật "phải làm như vậy"

để bảo vệ website Ví dụ: Django cung cấp bảo mật quản lý tên tài khoản và mậtkhẩu, tránh các lỗi cơ bản như để thông tin session lên cookie, mã hóa mật khẩuthay vì lưu thẳng

• Khả năng mở rộng tốt: Django sử dụng kiến trúc shared-nothing dựa vào component(mỗi phần của kiến trúc sẽ độc lập với nhau, và có thể thay thế hoặc sửa đổi nếucần thiết) Có sự chia tách rõ ràng giữa các phần nghĩa là nó có thể mở rộng choviệc gia tăng lưu lượng bằng cách thêm phần cứng ở mỗi cấp độ: caching, servers,database servers, hoặc application servers Nhiều web về kinh doanh đã thành côngkhi Django được mở rộng đáp ứng yêu cầu của họ

• Dễ bảo trì: Code Django được viết theo nguyên tắc thiết kế và pattern có thể khuyếnkhích ý tưởng bảo trì và tái sử dụng code Trên thực tế, nó sự theo khái niệm Don’tRepeat Yourself làm cho không có sự lặp lại không cần thiết, giảm một lượng code

• Tính linh động: Django được viết bằng Python, nó có thể chạy đa nền tảng Nó cónghĩa rằng bạn không ràng buộc một platform server cụ thể Django được hỗ trợ tốt

ở nhiều nhà cung cấp hosting, họ sẽ cung cấp hạ tầng và tài liệu cụ thể cho hostingweb Django

3.1.1 Ưu điểm

Khách quan:

• Các vấn đề xung quanh liên quan tới việc phát triển ứng dụng như khả năng bảomật, khả năng mở rộng và bảo trì đã được django tối ưu giúp nhà phát triển có thểtập trung vào business logic Thích hợp xây dựng những dự án lớn

• Django có thư viện django rest framework giúp việc xây dựng api trở lên dễ dàng

• Sử dụng Python - một ngôn ngữ dễ học và sử dụng

• Có thư viện và modules có sẵn rộng dễ sử dụng

Chủ quan: Đã có kinh nghiệm làm việc với Django qua quá trình học tập và làm việc

Trang 15

Trang 34

3.2 React Native

Hình 3.2: React Native

React Native ra đời nhằm mang đến những sức mạnh của React lên các thiết bị diđộng Bằng cách sử dụng duy nhất ngôn ngữ JavaScript, React Native hỗ trợ xây dựngứng trên cả hai nền tảng IOS và Android Điều này giúp cho việc viết viết mã nguồn trởnên nhanh chóng và thuận tiện khi nhà phát triển không còn phải bắt buộc học các ngônngữ native cho từng hệ điều hành khác nhau.[12]

React Native có các đặc điểm tương tự như react React là một thư viện Javascript sửdụng để xây dựng giao diện người dùng Bằng cách thay đổi DOM, React Native có thểthay đổi nội dung của trang web mà không cần tải lại - khái niệm quan trọng nhất củasingle page application

• Tính khai báo (Declarative): Giảm thiểu độ phức tạp của việc thiết kế giao diệntương tác Giao diện được thiết kế sẽ hoạt động dựa theo trạng thái hiện tại và chỉcác thành phần chịu tác động bởi trạng thái được cập nhật khi trạng thái được cậpnhật

• Hướng thành phần (Component-Based): Giao diện xây dựng bằng React được chianhỏ thành nhiều thành phần con Trong đó có những thành phần logic và nhữngthành phần hiển thị, từ đó tạo ra sự tách bạch giữa logic và hiển thị

• Khả năng tích hợp tốt: React có thể được sử dụng trong các dự án hiện tại như mộtthành phần mới Điều này giúp React trở nên linh hoạt trong phát triển phần mềm

Trang 17

Trang 35

Những khái niệm cơ bản trong React:

• Virtual DOM:

– Virtual DOM là một khái niệm được sử dụng để chỉ một cây DOM (DOM tree)

ảo được chứa trong bộ nhớ và đồng bộ với cây DOM thật (trong trường hợp này

là ReactDOM)

– React sẽ thực hiện các thay đổi lên cây DOM thật ở các nhánh cần thiết thay

đổi bằng các so sánh những thay đổi trạng thái trên cây DOM ảo Từ đó, giảmthiểu việc hiển thị lại các thành phần không thay đổi, tăng tốc độ hiển thị vàtăng khả năng xử lý

• State:

– State là trạng thái của một thành phần (component) trong React.

– State được thay đổi gián tiếp thông qua hàm setState Việc thay đổi trực State

có thể dẫn đến hành động hiển thị không mong muốn

• React có thể được sử dụng để lập trình sau đó biên dịch ra thành ứng dụng Native

• Khả năng tích hợp tốt: React Native có thể được sử dụng để xây dựng một ứng dụngmới hoàn chỉnh hoặc một thành phần của ứng dụng đã được xây dựng trên ngôn ngữNative trước đó

• Phát triển ứng dụng nhanh:

– React Native có thể được sử dụng để xây dựng ứng dụng trên cả IOS và Android

đồng thời bằng cách bọc các API của ngôn ngữ Native với những React NativeAPI

Trang 36

– Khả năng cập nhật nhanh: Những thay đổi trong code React Native được lập

tức đồng bộ lên thiết bị di động với tốc độ nhanh, giúp giảm đáng kể thời giandebug ứng dụng

Chủ quan: Đã có kinh nghiệm làm việc với React Native qua quá trình học tập và làmviệc

3.2.2 Khuyết điểm

Đối với các ứng dụng yêu cầu hiệu xuất cao như ứng dụng 3D, game React Native khôngphải là sự lựa chọn tốt nhất vì React Native tuy giảm thời gian viết mã những không tối

ưu được mã nguồn như khi viết trên các ngôn ngữ native

Cùng một đoạn mã nguồn được viết bởi React Native khi biên dịch qua các ngôn ngữnative như Java, Swift/Objective-C giao diện hiển thị khác nhau khiến các nhà phát triểnphải có những cấu hình riêng cho từng loại ngôn ngữ native

Trang 19

Trang 37

3.3 PostgreSQL

Hình 3.3: PostgreSQL

PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ-đối tượng (object-relationaldatabase management system) có mục đích chung, hệ thống cơ sở dữ liệu mã nguồn mởtiên tiến nhất hiện nay.[13]

PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX Tuy nhiên, greSQL sau đó cũng được điều chỉnh linh động để có thể chạy được trên nhiều nền tảngkhác nhau như Mac OS X, Solaris và Windows

Post-Cơ sở dữ liệu PostgreSQL là một hệ thống quản lý dữ liệu nguồn mở cấp doanhnghiệp Nó hỗ trợ cả SQL cho quan hệ và JSON cho các truy vấn không quan hệ Post-greSQL không yêu cầu quá nhiều công tác bảo trì bởi có tính ổn định cao Do đó, nếubạn phát triển các ứng dụng dựa trên PostgreSQL, chi phí sở hữu sẽ thấp hơn so với các

Trang 38

• PostgreSQL hỗ trợ các đối tượng địa lý để bạn có thể sử dụng nó cho các dịch vụdựa trên vị trí và hệ thống thông tin địa lý.

Chủ quan: Đã có kinh nghiệm làm việc với PostgreSQL qua quá trình học tập và làmviệc

3.3.2 Khuyết điểm

Nhiều ứng dụng nguồn mở hỗ trợ MySQL, nhưng có thể không hỗ trợ PostgreSQL

Về số liệu hiệu suất, PostgreSQL chậm hơn MySQL

Trang 21

Trang 39

Redis có thể được mở rộng bằng cách tạo ra các cluster.

Ngoài ra Redis còn hỗ trợ nhiều tính năng khác như:

• Cơ chế transaction

• Cơ chế pub/sub

• Lập trình bằng Lua

• Cơ chế tự động xóa dữ liệu trong trường hợp đầy bộ nhớ

• Cặp key-value có thời gian hết hạn

Trang 40

• Hỗ trợ cluster giúp việc mở rộng và đảm bảo tính sẵn sàng của hệ thống Đặc biệtvới các hệ thống thời gian thực.

Chủ quan: Đã có kiến thức và kinh nghiệm sử dụng Redis trong thực tế

3.4.2 Nhược điểm

Có rất ít công cụ quản lý và hỗ trợ cho Redis đặc biết là các công cụ có GUI hỗ trợ pháttriển và debug nhanh chóng

Chi phí vận hành cao do sử dụng RAM để lưu trữ

Chưa hỗ trợ nhiều loại câu truy vấn

Truy vấn ở cường độ lớn đòi hỏi nhà phát triển phải có kiến thức với Lua để gia tănghiệu suất

Trang 23

Ngày đăng: 31/07/2024, 10:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN