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 4D 0ӝWJLDRGӏFKÿѭӧF[HPOjKRjQWҩWNKLWRjQEӝTX\WUuQK³JLDRQKұQ´GLӉQUDVX{QVҿQӃXTXiWUuQKQj\JһSVӵFӕYӅNӻWKXұWYtGө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"
ĈiQKJLiFKXQJEҵQJFKӳJLӓLNKi7% *LӓL ĈLӇP
.êWrQJKLU}KӑWrQ
Trang 5TRƯỜ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 6LỜ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 7LỜ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 8TÓ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 9Mụ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 103.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 114.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 125.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 13Danh 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 144.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 154.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 16Danh 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 174.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 18Chương 1
Giới thiệu
Trang 1
Trang 191.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 20khi 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 22Chương 2
Các giải pháp liên quan
Trang 5
Trang 23Nộ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 252.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 26Be 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 282.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 292.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 30Chương 3
Kiến thức nền tảng
Trang 13
Trang 31Nộ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 343.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 35Nhữ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 373.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 39Redis 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