1. Trang chủ
  2. » Cao đẳng - Đại học

Khóa luận tốt nghiệp ứng dụng công nghệ zeebe, xây dựng ứng dụng quản lí sự kiện chuỗi cung ứng

120 150 1
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

Định dạng
Số trang 120
Dung lượng 4,11 MB

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

Nội dung

Logistics hỗ trợ nhà quản lý ra quyết định chính xác trong hoạt động sản xuất kinh doanh : Trong quá trình sản xuất kinh doanh, nhà quản lý phải giải quyết nhiều bài toán hóc búa về nguồ

Trang 1

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

SINH VIÊN THỰC HIỆN

LỤC THIÊN BÌNH – 16520092

BÙI GIA HÒA – 16520422

TP HỒ CHÍ MINH, 2021

Trang 3

1

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 theoQuyế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

2

LỜI CẢM ƠN

Sau hơn 4.5 năm học tập và rèn luyện tại Trường Đại Học Công Nghệ

Thông Tin, được sự chỉ bảo và giảng dạy nhiệt tình của quý thầy cô, đặc biệt

quý thầy cô trong khoa Công Nghệ Phần Mềm, em đã học tập được rất nhiều

kiến thức bổ ích về lý thuyết và thực hành trong thời gian qua Trong khoảng

thời gian thực hiện luận văn tốt nghiệp, em càng học hỏi thêm được nhiều

kiến thức, kinh nghiệm để áp dụng và đã hoàn thành được luận văn tốt

nghiệp

Xin chân thành cảm ơn quý thầy cô Khoa Công Nghệ Phần mềm, đặc

biệt là cô Đỗ Thị Thanh Tuyền và thầy Vũ Đức Lung đã tận tình hướng dẫn

em hoàn thành luận văn tốt nghiệp này

Bên cạnh đó, em xin gửi lời cảm ơn đến các bạn cùng lớp đã có những

lời góp ý, động viên để nhóm có thêm động lực thực hiện khóa luận trong

khoảng thời gian khó khăn này

Trong suốt quá trình em tìm hiểu và thực hiện khóa luận, do đề tài sử

dụng công nghệ còn khá mới, thời gian và khả năng có giới hạn nên em vẫn

còn nhiều thiếu sót Do đó, em rất mong nhận được sự thông cảm và những ý

kiến đóng góp chân thành từ quý thầy cô và các bạn Một lần nữa, em xin

chân thành cảm ơn mọi người

Lục Thiên Bình – Bùi Gia Hòa TpHCM, tháng 1 năm 2021

Trang 5

3

MỤC LỤC

TÓM TẮT ĐỀ TÀI 1

Chương 1 Tổng quan đề tài 2

Chương 2 Zeebe và các sản phẩm tương tự khác trên thị trường 3

2.1 Zeebe là gì ? 3

2.2 Zeebe dành cho ai, hoàn cảnh nào ? 3

2.3 Các sản phẩm công cụ tương tự khác: 5

2.3.1 Camunda BPM 5

2.3.2 Google cloud composer 7

2.3.1 Apache Kafka – chung 1 phần ý tưởng 10

2.3.1.1 Giới thiệu 10

2.3.1.2 Các thành phần cơ bản của Kafka 10

2.3.1.3 Tại sao nên sử dụng Apache Kafka? 12

2.4 Workflow engine là gì ? 13

2.4.1 Giới thiệu 13

2.4.2 Các thuật ngữ cơ bản của workflow engine 13

2.4.3 Concept của 1 workflow engine 14

2.4.1 Ích lợi khi sử dụng workflow engine 15

Chương 3 Quá trình phát triển của Zeebe (Roadmap) 17

3.1 Lịch sử ra đời 17

3.2 Zeebe – Phiên bản production ready 17

3.3 Roadmap của Zeebe theo từng quý qua các năm 18

3.3.1 Qúy 1 năm 2020 18

3.3.2 Quý 4 năm 2019 18

Trang 6

4

3.3.3 Quý 3 năm 2019 19

3.3.4 Quý 2 năm 2019 19

3.3.5 Quý 1 năm 2019 20

3.3.6 Quý 4 năm 2018 20

3.3.7 Quý 3 năm 2018 21

Chương 4 Các thành phần và chức năng của nó trong Zeebe 22

4.1 Kiến trúc của Zeebe 22

4.1.1 Các thành phần chính của Zeebe 22

4.1.2 Client 22

4.1.3 Gateway 23

4.1.4 Broker 23

4.1.5 Exporter 24

4.2 Quy trình nghiệp vụ (workflow) trong Zeebe 24

4.2.1 Trình tự 25

4.2.2 Dòng dữ liệu 25

4.2.3 Điều kiện dựa vào dữ liệu 26

4.2.4 Sự kiện 26

4.2.5 Tách hay gộp flow 26

4.2.6 Các ký hiệu khác của BPMN 27

4.2.7 BPMN Modeler – Zeebe Modeler 27

4.3 Job worker trong Zeebe – Zeebe worker 27

4.3.1 Khái niệm 27

4.3.2 Yêu cầu công việc từ broker: 28

4.3.3 Long polling: 29

Trang 7

5

4.3.4 Job Queueing 30

4.4 Partitions (phân mảnh) 30

4.4.1 Ví dụ sử dụng 31

4.4.2 Khả năng mở rộng 31

4.4.3 Partition Data Layout 31

4.4.4 Replication 32

4.5 Protocols (giao thức kết nối) 32

4.6 Quá trình xử lý trạng thái bên trong 33

4.6.1 Xuất record 33

4.6.2 Máy trạng thái 33

4.6.3 Sự kiện và Lệnh 34

4.6.4 Xử lý dòng trạng thái 35

4.7 Exporter 35

4.8 Clustering 37

4.8.1 Giao thức thành viên Gossip 38

4.8.2 Giao thức đồng thuận và nhân rộng Raft 38

4.8.3 Cam kết bền vững 39

Chương 5: Tìm hiểu quản lí chuỗi cung ứng vận chuyển và phân tích các ứng dụng phổ biến trên thị trường 40

5.1 Tìm hiểu quản lí chuỗi cung ứng vận chuyển: 40

5.1.1 Giới thiệu: 40

5.1.2 Các nguyên tắc trong vận chuyển hàng hóa: 40

5.1.3 Các chức năng quản lí vận chuyển hàng hóa: 41

5.1.4 Theo dõi trạng thái của đơn hàng trong vận tải: 44

Trang 8

6

5.1.5 Quản lý sự kiện sự kiện chuỗi cung ứng: 45

5.1.6 Hệ thống quản lý sự kiện chuỗi cung ứng: 46

5.2 Phân tích các ứng dụng phổ biến trên thị trường: 46

5.2.1 Ứng dụng GHN Express: 46

5.2.2 Ứng dụng Ahamove 47

5.2.3 Ứng dụng ViettelPost: 49

Chương 6: Các công nghệ sử dụng chung với Zeebe 52

6.1 Ngôn ngữ lập trình goLang: 52

6.1.1 Giới thiệu: 52

6.1.2 Ưu điểm: 52

6.1.3 Nhược điểm: 54

6.2 API: 55

6.2.1 Giới thiệu: 55

6.2.2 Ưu điểm: 56

6.2.3 Nhược điểm: 57

6.3 Rest API: 57

6.3.1 Giới thiệu: 57

6.3.2 Ràng buộc Rest: 58

6.3.3 Ưu điểm: 59

6.4 React.JS: 59

6.4.1 Giới thiệu: 59

6.4.2 React là gì: 60

6.4.3 Ưu điểm: 62

6.4.4 Nhược điểm: 62

Trang 9

7

6.5 React Native: 63

6.5.1 Giới thiệu: 63

6.5.2 Ưu điểm: 63

6.5.3 Nhược điểm: 64

Chương 7: Xây dựng ứng dụng 65

7.1 Sơ đồ Use Case: 65

7.2 Danh sách các Actor: 65

7.3 Danh sách một số Use Case chính: 66

7.4 Đặc tả một số Use Case chính: 66

7.4.1 Tạo transport type: 66

7.4.2 Tạo long ship: 67

7.4.3 Tạo order: 68

7.5 Sơ đồ lớp: 70

7.5.1 Sơ đồ lớp tổng quát: 70

7.5.2 Mô tả các thành phần trong cơ sở dữ liệu: 71

7.6 Thiết kế giao diện: 81

7.6.1 Giao diện ứng dụng điện thoại: 81

7.6.2 Giao diện màn hình web: 92

Chương 8: Kết luận và hướng phát triển: 99

8.1Kết quả đạt được: 99

8.2Nhận xét: 99

8.2.1 Ưu điểm: 99

8.2.2 Khuyết điểm: 99

8.3 Hướng phát triển: 99

Trang 10

8 Tài liệu kham khảo 100

Trang 11

9

DANH MỤC HÌNH VẼ

Hình 2.1 Mô hình quy trình làm việc đặt hàng của khách hàng ……….3

Hình 2.2 Hình thống kê thông tin và tính năng của Zeebe ………5

Hình 2.3 Kiến trúc của Camunda BPM ……… 6

Hình 2.4 Kiến trúc của google cloud composer ……….8

Hình 2.5 Kiến trúc của apache kafka ……… 10

Hình 2.6 Các thành phần cơ bản của Kafka ……….12

Hình 2.7 Kiến trúc cơ bản của workflow engine ……….14

Hình 4.1 Các thành phần chính của Zeebe ……… 22

Hình 4.2 Ví dụ quy trình nghiệp vụ cơ bản trong Zeebe ……….24

Hình 4.3 Xử lí trình tự trong Zeebe ……….25

Hình 4.4 Xử lí dòng dữ liệu trong Zeebe ……….26

Hình 4.5 Minh họa workflow của Zeebe ……….29

Hình 4.6 Cách các thành phần trong Zeebe xử lí dữ liệu ……….30

Hình 4.7 Hành động được thực hiện trong long polling ……… 31

Hình 4.8 Minh họa các Zeebe phân mảnh dữ liệu ……… 32

Hình 4.9 Các trạng thái xử lí dữ liệu trong Zeebe ……… 34

Hình 4.10 Xử lí dòng trạng thái trong Zeebe ……… 35

Hình 4.11 Minh họa cách chạy dữ liệu trong exporter ………36

Hình 4.12 Minh họa clustering trong Zeebe ………37

Hình 4.13 Giao thực đồng thuận trong Zeebe ……… 38

Hình 5.1 Chức năng quản lí vận chuyển hàng hóa ……… 41

Hình 5.2 Quy trình quản lí vận chuyển hàng hóa ………43

Trang 12

10

Hình 5.3 Theo dõi trạng thái của đơn hàng trong vận tải ………45

Hình 5.4 Ứng dụng GHN Express ……… 47

Hình 5.5 Ứng dụng giao hàng Ahamove ……….48

Hình 5.6 Ứng dụng giao hàng ViettelPost ……… 50

Hình 5.7 Ứng dụng giao hàng LaLaMove ……… 51

Hình 6.1 Min họa về Golang ………53

Hình 6.2 Minh hoạ về web api ……….56

Hình 6.3 Thiết kế của rest api ……… 58

Hình 6.4 So sánh giữa virtual DOM và real DOM ……… 60

Hình 7.1 Sơ đồ Use Case ……….65

Hình 7.2 Sơ đồ lớp ……… 70

Hình 7.3 Màn hình trang Home ……… 81

Hình 7.4 Màn hình trang Notifications ………82

Hình 7.5 Màn hình trang Profiles ……….83

Hình 7.6 Màn hình tạo đơn hàng ……….84

Hình 7.7 Màn hình tạo đơn hàng chi tiết ……….85

Hình 7.8 Màn hình tạo đơn hàng chi tiết ……….86

Hình 7.9 Màn hình tạo đơn hàng chi tiết ……….87

Hình 7.10 Màn hình xem danh danh sách đơn hàng ………88

Hình 7.11 Màn hình xem đơn hàng chi tiết ……….89

Hình 7.12 Màn hình xem đơn hàng chi tiết ……….90

Hình 7.13 Màn hình cập nhật thông tin người dùng ………91

Hình 7.14 Màn hình danh sách nhân viên ………92

Trang 13

11

Hình 7.15 Màn hình tạo nhân viên ……… 93

Hình 7.16 Màn hình danh sách khách hàng ……….93

Hình 7.17 Màn hình tạo khách hàng ………94

Hình 7.18 Màn hình dach sách loại dịch vụ vận chuyển ……….94

Hình 7.19 Màn hình tạo loại dịch vụ vận chuyển ………95

Hình 7.20 Màn hình danh sách giao hàng liên tỉnh ……….95

Hình 7.21 Màn hình tạo giao hàng liên tỉnh ………96

Hình 7.22 Màn hình danh sách đơn hàng ………97

Hình 7.23 Màn hình tạo đơn hàng ……… 98

Hình 7.24 Màn hình danh sách đơn hàng nội thành ………98

Hình 7.25 Màn hình cập nhật giao hàng nội thành ……… 99

Trang 14

12

DANH MỤC BẢNG

Bảng 7.1 Danh sách các Actor ……….66

Bảng 7.2 Danh sách một số Use Case chính ………66

Bảng 7.3 Đặc tả Use Case tạo transport type ……… 67

Bảng 7.4 Đặc tả Use Case tạo long ship ……… 68

Bảng 7.5 Đặc tả Use Case tạo đơn hàng ……… 69

Bảng 7.6 Thành phần cơ sở dữ liệu Customer ……….71

Bảng 7.7 Thành phần cơ sở dữ liệu CustomerCredit ……… 71

Bảng 7.8 Thành phần cơ sở dữ liệu UserAuthenticate ……….72

Bảng 7.9 Thành phần cơ sở dữ liệu UserFCMToken ……… 72

Bảng 7.10 Thành phần cơ sở dữ liệu Employee ……… 73

Bảng 7.11 Thành phần cơ sở dữ liệu OrderInfo ……… 74

Bảng 7.12 Thành phần cơ sở dữ liệu OrderPay ……… 75

Bảng 7.13 Thành phần cơ sở dữ liệu OrderShortShip ……….76

Bảng 7.14 Thành phần cơ sở dữ liệu OrderLongShip ……….77

Bảng 7.15 Thành phần cơ sở dữ liệu LongShip ……… 78

Bảng 7.16 Thành phần cơ sở dữ liệu OrderWorkflowData ……….79

Bảng 7.17 Thành phần cơ sở dữ liệu TransportType ……… 80

Bảng 7.18 Thành phần cơ sở dữ liệu LongShipWorkflowData ……… 80

Trang 15

ĐỀ CƯƠNG CHI TIẾT KHÓA LUẬN TỐT NGHIỆP

Tên đề tài: Ứng dụng công nghệ Zeebe, xây dựng ứng dụng quản lí sự kiện chuỗi cung ứng

Cán bộ hướng dẫn: Ths Đỗ Thị Thanh Tuyền PGS.TS Vũ Đức Lung

Thời gian thực hiện: Từ ngày 01/09/2020 đến ngày 27/12/2020

Sinh viên thực hiện:

1 Bùi Gia Hòa: 16520422

- Nhân viên: Được công ty tuyển dụng để thực hiện các công việc nhập liệu, đóng gói, vận chuyển hàng lên/ xuống xe, giao hàng tận nơi cho khách hàng

- Chủ nhà xe: Giám sát tổng thể thông tin của hệ thống, trích xuất báo cáo thông kê

Trang 16

14

 Phương pháp thực hiện:

- Phân tích đề tài

- Tìm hiểu các dịch vụ vận chuyển hàng hóa đang có mặt trên thị trường

- Mô hình hóa sơ đồ hệ thống tổng quát

- Lên kế hoạch phát triển sản phẩm và đặt ra mục tiêu cho từng giai đoạn

- Kiểm thử và hoàn thiện

 Kết quả mong đợi:

- Hoàn thiện một ứng dụng với đầy đủ các chức năng đã thiết kế, giao

diện thân thiện, mang lại trải nghiệm tốt nhất cho người dùng Triển khai

thành công website và ứng dụng mobile quản lý tình trạng đơn hàng với

độ chính xác cao

Kế hoạch thực hiện: (thời gian thực hiện trong 17 tuần)

công

Phase 1: Tìm hiểu và xây dựng prototype cho dịch vụ vận

chuyển hàng hóa

7 tuần (01/09/2020 – 18/10/2020)

1

Sprint 1: Tìm hiểu về các hoạt động cơ bản

của vận chuyển hàng hóa:

1.1

- Các yêu cầu cơ bản của một hệ thống vận

chuyển hàng hóa?

Tuần 1 – 2 (01/09/2020 -14/09/2020)

Trang 17

15

2.1 - Tìm hiểu quy trình nghiệp vụ vận chuyển hàng hóa

theo các tiêu chuẩn quốc tế

Tuần 3 - 4

(13/09/2020 26/09/2020)

-Bình

2.2

- Tìm hiểu các ứng dụng vận chuyển hàng hóa như

Grab, Vnpost, Viettel Post, Giaohangnhanh Hòa

- Tìm hiểu cách tính giá cước nội thành, liên tỉnh

- Tìm hiểu các thông tin mà đơn hàng cần có

- Phân tích các usecase cơ bản

Tuần 5 (27/09/2020 - 3/10/2020)

Hòa

3.1.2

- Tìm hiểu các công cụ hỗ trợ quá trình nhận hàng

- Tìm hiểu các công cụ hỗ trợ tính giá cước vận

- Xây dựng API bằng Spring Boot

- Xây dựng các workflow bằng công cụ của

Zeebe

- Xây dựng front-end (cơ bản)

Tuần 8 - 9 (18/10/2020 - 31/10/2020)

Cả nhóm

5 Sprint 5: Xây dựng frontend web bằng reactJS và mobile app bằng react native

Trang 18

16

5.1

- Xây dựng UI cho các trang

- Hiển thị dữ liệu lấy từ API

Tuần 10 - 12 (1/11/2020 - 21/11/2020

Cả nhóm

7 Sprint 7: Vận hành và kiểm thử

7.1 - Thực hiện công việc kiểm thử sản phẩm

Tuần 15 - 16 (6/12/2020 - 19/12/2020)

Cả nhóm

7.2 - Sửa lỗi trong quá trình chạy trước khi deploy

7.3 - Đóng gói sản phẩm và chuẩn bị các thông tin cần thiết cho buổi báo cáo

Tuần 17 (20/12/2020 - 27/12/2020)

Trang 19

17

MỞ ĐẦU

Lý do chọn đề tài:

Khi thị trường toàn cầu phát triển với các tiến bộ công nghệ, đặc biệt là việc

mở cửa thị trường ở các nước đang và chậm phát triển, logistic được các nhà quản

lý coi như là công cụ, một phương tiện liên kết các lĩnh vực khác nhau của chiến lược doanh nghiệp Logistic tạo ra sự hữu dụng về thời gian và địa điểm cho các hoạt động của doanh nghiệp Phát triển dịch vụ logistic một cách hiệu quả sẽ góp phần tăng năng lực cạnh tranh của doanh nghiệp và nền kinh tế quốc gia

Là công cụ liên kết các hoạt động trong chuỗi giá trị toàn cầu (GVC-Global Value Chain) như cung cấp, sản xuất, lưu thông phân phối, mở rộng thị trường cho các hoạt động kinh tế Khi thị trường toàn cầu phát triển với các tiến bộ công

nghệ,đặc biệt là việc mở cửa thị trường ở các nước đang và chậm phát triển, logistic được các nhà quản lý coi như là công cụ, một phương tiện liên kết các lĩnh vực khác nhau của chiến lược doanh nghiệp Logistics tạo ra sự hữu dụng về thời gian và địa điểm cho các hoạt động của doanh nghiệp Thế giới ngày nay được nhìn nhận như các nền kinh tế liên kết, trong đó các doanh nghiệp mở rộng biên giới quốc gia và khái niệm quốc gia về thương mại chỉ đứng hàng thứ 2 so với hoạt động của các doanh nghiệp, ví dụ như thị trường tam giác bao gồm 3 khu vực địa lý: Nhật, Mỹ-Canada và EU Trong thị trường tam giác này, các công ty trở nên quan trọng hơn quốc gia vì quyền lực kinh tế của họ đã vượt quá biên giới quốc gia, quốc tịch của công ty đã trở nên mờ nhạt Ví dụ như hoạt động của Toyota hiện nay, mặc dù phần lớn cổ đông của Toyota là người Nhật và thị trường quan trọng nhất của Toyota là

Mỹ nhưng phần lớn xe Toyota bán tại Mỹ được sản xuất tại nhà máy của Mỹ thuộc

sở hữu của Toyota Như vậy, quốc tịch của Toyota đã bị mờ đi nhưng đối với thị trường Mỹ thì rõ ràng Toyota là nhà sản xuất một số loại xe ô tô và xe tải có chất lượng cao

Logistics có vai trò quan trọng trong việc tối ưu hóa chu trình lưu chuyển của sản xuất kinh doanh từ khâu đầu vào nguyên vật liệu,phụ kiện, … tới sản phẩm cuối cùng đến tay khách hàng sử dụng Từ thập niên 70 của thế kỷ XX, liên tiếp các cuộc khủng hoảng năng lượng buộc các doanh nghiệp phải quan tâm tới chi phí, đặc biệt

là chi phí vận chuyển Trong nhiều giai đoạn, lãi suất ngân hàng cũng cao khiến các doanh nghiệp có nhận thức sâu sắc hơn về vốn, vì vốn bị đọng lại do việc duy trì quá nhiều hàng tồn kho Chính trong giai đoạn này, cách thức tối ưu hóa quá trình sản xuất, lưu kho, vận chuyển hàng hóa được đặt lên hàng đầu Và với sự trợ giúp của công nghệ thông tin, logistics chính là một công cụ đắc lực để thực hiện điều này Logistics hỗ trợ nhà quản lý ra quyết định chính xác trong hoạt động sản xuất kinh doanh : Trong quá trình sản xuất kinh doanh, nhà quản lý phải giải quyết nhiều bài toán hóc búa về nguồn nguyên liệu cung ứng, số lượng và thời điểm hiệu quả để

bổ sung nguồn nguyên liệu, phương tiện và hành trình vận tải, địa điểm, khi bãi chứa thành phẩm,bán thành phẩm,… Để giải quyết những vấn đề này một cách có hiệu quả không thể thiếu vai trò của logistics vì logistics cho phép nhà quản lý kiểm

Trang 20

ở mức tối thiểu Sự phát triển mạnh mẽ của tin học cho phép kết hợp chặt chẽ quá trình cung ứng, sản xuất, lưu kho hàng hóa, tiêu thụ với vận tải giao nhận, làm cho

cả quá trình này trở nên hiệu quả hơn, nhanh chóng hơn, nhưng đồng thời cũng phức tạp hơn

Hiện nay, trên thị trường có nhiều phần quản lí vận chuyển trong logistic phát triển mạnh mẽ Tuy vậy, đa số phần mềm còn gặp nhiều khó khăn trong việc

hỗ trợ nhu cầu của khách hàng, đơn vị vận chuyển và người quản lí Tụi em mong muốn khi thực hiện đề tài này sẽ đóng góp một phần nhỏ trong việc tạo ra ứng dụng mang đến trải nghiệm tốt nhất cho người dùng

Trang 21

1

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

- Tổng quan đề tài: đặt vấn đề, lý do chọn đề tài, mục tiêu và phạm vi tiếp cận

đề tài

- Tìm hiểu thực trạng, thị trường, khả năng phát triển

- Nghiên cứu các công nghệ, cấu trúc, cơ chế hoạt động của Zeebe và các công nghệ sẽ sử dụng trong đồ án như: goLang, reactJS, react native

- Tim hiểu về các ứng dụng quản lí sự kiện chuỗi cung ứng phổ biến trên thị trường

- Tìm hiểu các cách để xây dựng ứng dụng quản lí sự kiện chuỗi cung ứng

- Thiết kế hệ thống vận chuyển hàng hóa ứng dụng công cụ quản lí quy trình nghiệp

vụ Zeebe

- Trình bày kết luận và hướng phát triển đồ án

Trang 22

-Xây dựng ứng dụng quản lý công việc vận chuyển hàng hóa bao gồm web

và mobile có tích hợp Zeebe để quản lí tình trạng đơn hàng tốt hơn và giúp tăng độ chịu tải của ứng dụng khi xử lí nhiều đơn hàng

1.1.2 Phạm vi:

-Khách hàng: Học sinh, sinh viên, nhân viên văn phòng, người dùng độ tuổi

từ 18-60 biết sử dụng điện thoại di động có nhu cầu vận chuyển hàng hóa nội thành hay liên tỉnh

-Nhân viên: Được công ty tuyển dụng để thực hiện các công việc nhập liệu, đóng gói, vận chuyển hàng lên/ xuống xe, giao hàng tận nơi cho khách hàng

-Chủ nhà xe: Giám sát tổng thể thông tin của hệ thống, trích xuất báo cáo thông kê

1.2 Nội dung thục hiện:

Trang 23

3

Chương 2 Zeebe và các sản phẩm tương tự khác trên thị

trường 2.1 Zeebe là gì?

Zeebe là một công cụ thực hiện quy trình nghiệp vụ và điều phối các nghiệp

vụ đó đến microservice

Khi nói đến"quy trình nghiệp vụ", nó có nghĩa là "một chuỗi các nhiệm vụ cho phép chúng ta đạt được một số mục tiêu." “Quy trình nghiệp vụ” có thể được sử dụng đồng nghĩa với “quy trình kinh doanh” hoặc “quy trình”

Trong quy trình nghiệp vụ được điều phối bởi Zeebe, mỗi tác vụ thường được thực hiện bởi một microservice khác nhau

2.2 Zeebe dành cho ai, hoàn cảnh nào?

Các quy trình nghiệp vụ của một công ty hầu như luôn sử dụng nhiều hơn một microservice Ví dụ: trong một công ty thương mại điện tử, quy trình làm việc

“đặt hàng của khách hàng” có thể liên quan đến dịch vụ vi mô thanh toán, dịch vụ vi

mô hàng tồn kho, dịch vụ vi mô vận chuyển,

Hình 2.1 Mô hình quy trình làm việc “đặt hàng của khách hàng”

Các quy trình công việc yêu cầu nhiều microservice này là động lực thúc đẩy doanh thu cốt lõi của công ty, nhưng chúng hiếm khi được mô hình hóa (modeled) và giám sát (monitored); thông thường, luồng sự kiện thông qua các dịch vụ nhỏ khác nhau chỉ được thể hiện ngầm trong code

Trang 24

4

Vì thế để giải quyết các vấn đề này Zeebe cung cấp cho bạn:

1 Tầm nhìn: quản lí lỗi phát sinh, cho bạn biết trạng thái, số lượng thời gian

chạy trung bình và những lỗi hiện tại của workflow

2 Điều phối các quy trình: dựa trên trạng thái hiện tại của workflow, Zeebe

tạo ra những “câu lệnh” như là sự kiện có thể tiếp nhận bởi một hay nhiều microservice, đảm bảo sự phát triển của workflow dựa trên định nghĩa của nó

3 Quản lí timeout: hay là những lỗi của workflow với khả năng cấu hình lỗi.

Zeebe được thiết kế để quyết các bài toán điều phối các microservice cho các project có quy mô lớn Nó làm được điều đó bởi vì:

1 Khả năng scale theo chiều ngang: không có sự phụ thuộc vào DB bên

ngoài; Zeebe viết dữ liệu trực tiếp vào file hệ thống của cùng một server nơi

mà Zeebe được deployed Zeebe giúp việc phân tán quá trình đơn giản nhằm đảm bảo thông lượng cao

2 Khả năng chịu lỗi: nhờ vào cơ chế sao chép dễ configure, đảm bảo Zeebe

khắc phục lỗi mà không bị mất dữ liệu trong khoảng thời gian ngắn nhất

3 Model tương tác: có nghĩa là những microservice có thể liên kết với Zeebe

nhằm giúp khả năng quản lí cao

4 Visual workflow BPMN 2.0: nhờ đó các nhà đầu tư dù có rảnh về kĩ thuật

hay không đều có thể làm việc với thiết kế workflow

5 Mô hình ứng dụng đa ngôn ngữ của client: giúp có thể xây dựng ứng dụng

khách Zeebe bằng bất kỳ ngôn ngữ lập trình nào mà tổ chức sử dụng để xây dựng các dịch vụ nhỏ

Bảng thống kê các thông tin và tính năng Zeebe:

Trang 25

Hơn thế nữa, Họ muốn Camunda còn có thể được sử dụng bởi những lập trình viên khác Đó chính là lí do BPM tạo ra REST API giúp build các ứng dụng kết nối với các process engine từ xa.

Trang 26

6

Camunda BPM có thể dùng như là một process egine riêng lẻ hay nhúng vào các ứng dụng Java khác Khả năng nhúng vào các ứng dụng là một yếu tố quan trọng khi cân nhắc tới thiết kế kiến trúc của Camunda BPM

Hình 2.3 Kiến trúc của Camunda BPM

Process engine API công khai: API hướng dịch vụ cho phép các ứng dụng

của Java tương tác với process engine Những trách nhiệm khác nhau của process engine được chia ra thành những dịch vụ riêng biệt API công khai cung cấp tính năng mẫu truy cập: những thread vào process engine sẽ được định tuyến nhờ vào Interceptor mà được dùng cho việc tạo loại cho thread ví dụ như là thanh toán

BPMN 2.0 core engine: đây là phần cốt lõi của process engine Nó cung cấp

một engine nhẹ cho cấu trúc biểu đồ (máy ảo chạy chương trình), BPMN 2.0 parser chuyển đổi file BPMN 2.0 XML thành một đối tượng trong Java và một chuỗi hành

vi thực thi của BPMN (cung cấp cho BPMN những thứ như là cổng giao tiếp hay tác vụ dịch vụ)

Job executor: chịu trách nhiệm cho xử lí công việc bất đồng bộ như là hẹn

giờ, hoặc là chạy bất đồng bộ trong quá trình diễn ra

Trang 27

7

Persistence layer: process engine cung cấp nó chịu trách nhiệm cung cấp

trạng thái cho cở sở dữ liệu quan hệ Nhà phát triển sử dụng MyBatis cung cấp thông tin engine cho các đối tượng liên quan

Hình 2.4 So sánh giữa Camunda BPM và Zeebe

2.3.2 Google cloud composer

Google cloud composer là một công cụ quản lí quy trình nghiệp vụ được xây dựng dựa trên Apache Airflow Lập trình viên sử dụng Cloud Composer để lên phân quyền, lên kế hoạch và quản lí phát triển phần mềm

Đường dẫn của cloud composer được sắp xếp như những biểu đồ (DAG) nhằm cung cấp file Python và giảm bớt những phiền toái trao quyền và quản lí quy trình nghiệp vụ

Là một phần của Google Cloud Platform, Cloud Composer tương tác với các công cụ như là Big Query, Data Flow, Dataproc

Google Cloud Composer giúp thiết lập môi trường một cách nhanh chóng và hiệu quả, giúp dễ dàng tương tác với các thư viện được yêu cầu của Python Việc deploy ứng dụng khá là dễ dàng nhờ tính năng kéo thả Quy trình nghiệp vụ thì sắp xếp hợp lí cho người sử dụng Vì Cloud Composer là phần mềm mã nguồn mở nên cho phép thường xuyên cập nhật và nâng cấp phần mềm của người sử dụng

Trang 28

8

Hình 2.4 Kiến trúc của google cloud composer

Cấu tạo của Tenant Project:

Nhằm đảm bảo danh tính và quản lí tốt vấn đề truy cập, bảo mật Cloud Composer deploy

Cloud SQL và App Engine ở Tenant Project

Cloud SQL:

 Nó lưu trữ dữ liệu về AirFlow Để bảo vệ đường truyền và thông tin quy trình nghiệp vụ, Cloud Composer giới hạn quyền truy cập cơ sở dữ liệu ở mức mặc định, hay acount service đã được tùy chỉnh để tạo ra môi trường Cloud Composer lưu một bản sao dữ liệu Airflow hàng ngày để giảm thiểu khả năng dữ liệu bị mất

 Service account tạo ra môi trường Cloud Composer là tài khoản duy nhất được truy cập cơ sở dữ liệu Cloud SQL

App engine:

Trang 29

9

 App engine quản lí Airflow web server Mặc định, Airflow web server tương tác với Identity Aware Proxy (IAP) Cloud Composer giấu đi thông tin chi tiết của IAP và cho phép người dùng sử dụng chính sách IAM

Cấu tạo của Customer Project:

Cloud Composer deploy Cloud Storage, Google Kubernetes Engine, Cloud Logging, và Cloud Monitoring trong customer project

Cloud Storage:

 Cung cấp nơi lưu trữ dữ liệu cho DAG, log và dữ liệu phụ thuộc Để depoly quy trình nghiệp vụ, chúng ta sao chép những file này vào bucket Cloud Composer sẽ phụ trách đồng bộ hóa DAG giữa các worker với nhau, và web server Với Cloud Storage, chúng ta có thể lưu trữ dữ liệu, log mà không cần quan tâm tới kích thước tối đa và có đầu đủ quyền truy cập tới dữ liệu

 Google Kubernetes Engine:

1 Mặc định, Cloud Composer deploy những thành phần chính như trình quản lí Airflow, worker node, và CeleryExecutor Để đảm bảo độ scale và tính bảo mật, Cloud Composer còn hỗ trợ VPC-native cluser sử dụng Alias IPS

2 Redis, message broker cho CeleryExecutor, chạy như là một ứng dụng

StatefulSet nhờ đó tin nhắn vẫn được duy trì đối với tất cả container kể cả khi nó khởi động lại

3 Chạy trình sắp xếp và worker trên GKE giúp chúng ta có thể sử dụng

KubernetesPodOperator để chạy bất kì khối lượng công việc container Mặc định, Cloud Composer tự động cập nhật và nâng cấp để bảo vệ nhóm GKE khỏi các vấn đề về bảo mật

Trang 30

10

2.3.1 Apache Kafka – chung 1 phần ý tưởng 2.3.1.1 Giới thiệu

Kafka là hệ thống message pub/sub phân tán (distributed messaging system)

Bên pulbic dữ liệu được gọi là producer, bên subscribe nhận dữ liệu theo topic được gọi là consumer

Kafka có khả năng truyền một lượng lớn message theo thời gian thực, trong trường hợp bên nhận chưa nhận message vẫn được lưu trữ sao lưu trên một hàng đợi và cả trên ổ đĩa bảo đảm an toàn Đồng thời nó cũng được replicate trong cluster giúp phòng tránh mất dữ liệu

Hình 2.5 Kiến trúc của apache kafka

2.3.1.2 Các thành phần cơ bản của Kafka

Kafka có thể hiểu là một hệ thống logging để lưu lại các trạng thái của hệ

thống đề phòng tránh mất thông tin

Định nghĩa trên được giải thích bằng các khái niệm sau:

Trang 31

11

PRODUCER: Kafka lưu, phân loại message theo topic, sử dụng producer để

publish message vào các topic Dữ liệu được gửi đển partition của topic lưu trữ trên Broker

CONSUMER: Kafka sử dụng consumer để subscribe vào topic, các

consumer được định danh bằng các group name Nhiều consumer có thể cùng đọc một topic

TOPIC: Dữ liệu truyền trong Kafka theo topic, khi cần truyền dữ liệu cho

các ứng dụng khác nhau thì sẽ tạo ra cá topic khác nhau

PARTITION: Đây là nơi dữ liệu cho một topic được lưu trữ Một topic có

thể có một hay nhiều partition Trên mỗi partition thì dữ liệu lưu trữ cố định và được gán cho một ID gọi là offset Trong một Kafka cluster thì một partition có thể replicate (sao chép) ra nhiều bản Trong đó có một bản leader chịu trách nhiệm đọc ghi dữ liệu và các bản còn lại gọi là follower Khi bản leader bị lỗi thì sẽ có một bản follower lên làm leader thay thế Nếu muốn dùng nhiều consumer đọc song song dữ liệu của một topic thì topic đó cần phải có nhiều partition

BROKER: Kafka cluster là một set các server, mỗi một set này được gọi là

1 broker

ZOOKEEPER: được dùng để quản lý và bố trí các broker.

Trang 32

12

Hình 2.6 Các thành phần cơ bản của Kafka

2.3.1.3 Tại sao nên sử dụng Apache Kafka?

Kafka là dự án opensoure, đã được đóng gói hoàn chỉnh, khả năng chịu lỗi cao, hiệu năng rất tốt và dễ dàng mở rộng mà không cần dừng hệ thống

Kafka thật sự đáng tin cậy, có khả năng lưu trữ lượng dữ liệu lớn nên nó đang dần được thay thế cho hệ thống message truyền thống

Một vài use case cho kafka:

 Sử dụng như một hệ thống message queue thay thế cho ActiveMQ hay RabbitMQ

 Website Activity Monitoring: theo dõi hoạt động của website

 Stream Processing: Kafka là một hệ thống rất thích hợp cho việc xử lý dòng dữ liệu trong thời gian thực Khi dữ liệu của một topic được thêm mới ngay lập tức được ghi vào hệ thống và truyền đến cho bên nhận

Ngoài ra Kafka còn là một hệ thống có đặc tính durability dữ liệu có thể

được lưu trữ an toàn cho đến khi bên nhận sẵn sàng nhận nó

 Log Aggregation: tổng hợp log

 Metrics Collection: thu thập dữ liệu, tracking hành động người dùng như các thông số như page view, search action của user sẽ được publish vào một topic và sẽ được xử lý sau

Trang 33

13

Event-Sourcing: Lưu lại trạng thái của hệ thống để có thể tái hiện

trong trường hợp system bị down

2.4 Workflow engine là gì?

2.4.1 Giới thiệu

Quy trình nghiệp vụ được sử dụng trong nhiều trường hợp cho quá trình xử lí

tự động và CI/CD để sắp xếp hệ thống quản lí ở các cửa hàng online/offline hay là đặt một cuốc taxi Chúng ta sẽ tìm thấy rất nhiều giải pháp từ các dự án nhỏ trên github đến các hệ thống của doanh nghiệp

Có vô số loại để thực thi: những framework có thể được gắn vào hệ thống của bạn, những giải pháp độc lập, công cụ quản lí quy trình nghiệp vụ mà nó đang được sử dụng trong các hệ thống phức tạp như là một phần của tính năng và ,,,,

Đây là danh sách của công cụ quản lí quy trình nghiệp vụ: Jenkins, Gitlab Pipelines, Cadence, Airflow, Conductor,…

2.4.2 Các thuật ngữ cơ bản của workflow engine

Trước khi tìm hiểu sâu thêm, chúng ta cần phải hiểu những thuật ngữ: quy trình nghiệp vụ, quản lí trạng thái, công cụ quản lí quy trình nghiệp vụ

Dựa vào trang web Wikipedia, nó định nghĩa rằng:

Quy trình nghiệp vụ (workflow): bao gồm một mẫu các hành động được

điều phối và có tính chất lặp đi lặp lại Mẫu các hảnh động này được khởi tổ chức

hệ thống của nguồn mà chuyển đổi tài liệu, cung cấp dịch vụ, hay xử lí thông tin

Quản lí trạng thái (state machine): là mô hính toán học của máy tính Nó

là một định nghĩa trừu tượng theo đó một machine sẽ có những trạng thái khác nhau, nhưng trong một khoảng thời gian nhất định để thực hiện các tác vụ cần thiết

Công cụ thực hiện quy trình nghiệp vụ (workflow engine): điều phối và

vận hành các trạng thái của hoạt động trong quy trình nghiệp vụ như là xử lí và

Trang 34

14

chấp thuận đơn xin cho vay, và quyết định hoạt động mới nào sẽ được thực thi tiếp dựa vào quy trình nghiệp vụ

2.4.3 Concept của 1 workflow engine

Hình 2.7 Kiến trúc cơ bản của workflow engine

Quản lí quy trình nghiệp vụ gồm có 6 thành phần chính:

Nơi lập kế hoạch:

Đây là phần chính của quản lí quy trình nghiệp vụ Nó lên lịch cho việc chạy tác vụ, biết về định nghĩa của luồng, quản lí kết quả của từng tác vụ Nơi lập kế hoạch được kích họat bởi những sữ kiện như là hẹn giờ, API

Nơi chứa dữ liệu:

Là nơi chứa dự liệu mà nơi lập kế hoạch cần đề điều phối các phiên chạy Phụ thuộc vào đối tượng được thực thi, nơi chứa dữ liệu có thể nằm trong cấu trúc

bộ nhớ hay là cơ sở dữ liệu

Trang 35

15

Thành phần chịu trách nhiệm chạy các tác vụ và cung cấp kết quả từ tác vụ được thực thi đó Nó có thể là những thread độc lập trong ứng dụng của chúng ta, container, hay là máy ảo

Flow repository:

Nơi mà định nghĩa được chửa và tùy thuộc vào từng thực thi khác nhau mà

vị trí của nó sẽ khác nhau và cung cấp thêm nhiều tính năng ngoài việc lưu trữ các định nghĩa Dòng được hiểu một cách khải quát là mô tả của quy trỉnh nghiệp vụ

Shared context:

Ngay khi quy trình nghiệp vụ của chúng ta trở nên phức tạp ta cần chuyển những ngữ cảnh từ tác vụ này sang tác vụ khác ngay lập tức Thành phần này chịu trách nhiệm làm công việc đó

2.4.1 Ích lợi khi sử dụng workflow engine

1 Hỗ trợ quy trình nghiệp vụ:

Sự giới thiệu về các thành phần của quản lí quy trình nghiệp vụ vào trong cơ

sở hạ tầng công nghệ thông tin giúp các doanh nghiệp hợp tác và cung cấp những quy trình nghiệp vụ kinh doanh

2 Qúa trình được quan sát một cách dễ dàng:

Việc quá trình diễn và trạng thái quá trình đó được hiểu là một chuyện hết sức quan trọng Tích hợp quản lí quy trình nghiệp vụ giúp nhân viên có thể thấy được trang thái của quy trình nghiệp vụ, đang chạy tới tác vụ nào và ai đang làm tác

vụ đó

3 Nâng cao hiệu suất:

Việc đưa quản lí quy trình nghiệp vụ vào hệ thống giúp các công ty đưa ra những quyết định nhanh hơn Trong thực tế, sẽ không còn hàng đống giấy tờ được chuyển qua lại giữa các bộ phận với nhau Điều đó dẫn tới giảm thời gian cho quản

lí và nhân viên phải theo dõi các hoạt động này

Trang 36

16

4 Quản lí quy trình nghiệp vụ phù hợp cho các doanh nghiệp:

+ Mất tài liệu trong quy trình nghiệp vụ thường ngày

+ Giam thiểu thời gian quản lí và hợp tác và giành nó cho phát triển công ty + Tăng sự rõ ràng và hiệu suất của quản lí

Trang 37

và Camunda đã quyết định rằng đây là một hướng đi đúng đắn của mình

Camunda thấy một lượng lớn quan tâm của các lập trình viên đối với Zeebe ngay lập tức, đặc biệt là từ các tổ chức lớn hơn đang thiết lập kiến trúc dựa trên các microservice

Vào năm 2018, một bản rework toàn bộ kiến trúc của Zeebe đã xảy ra, khi chưa có khả năng phục hồi và khả năng chịu lỗi (là các vấn đề bắt buộc đối với một công nghệ như thế này) Bản sửa lỗi này cũng chính do nhu cầu của khách hàng và cũng là một bài học quý giá cho Zeebe và Camunda

Vào năm 2020, phiên bản chính thức dành cho production đã ra đời sau 2 năm phát triển

3.2 Zeebe – Phiên bản production ready

Kể từ Zeebe 0.20.0, nhãn “developer preview” đã được gở ra khỏi Zeebe Điều đó làm cho Zeebe 0.20.0 trở thành sản phẩm “production-ready” đầu tiên của Zeebe

“Production-ready” là một định nghĩa mà Zeebe đã tự đưa ra Điều đó có nghĩa là Zeebe đáp ứng các yêu cầu cơ bản nhất của về sản phẩm:

Hỗ trợ các kí hiệu BMPN cần thiết cho hầu hết các usecase của quản lý microservice

Có thể deploy thành một nhóm trên Kubernetes và scale theo chiều ngang để đảm bảo yêu cầu về thông lượng

Khả năng chịu lỗi tốt: có nghĩa là khắc phục được sự cố mất dữ liệu khi một node chạy fail và khả năng khắc phục lỗi đó

Trang 38

3.3 Roadmap của Zeebe theo từng quý qua các năm

Các cải tiến của Zeebe nhằm đáp ứng nhu cầu của khách hàng cho tới hiện tại:

3.3.1 Qúy 1 năm 2020

 Hỗ trợ BMPN:

o Hỗ trợ quản lí lỗi và đang tiếp tục cải tiến

 Cải thiện trạng thái RockDB và hiệu suất của snapshot:

o Hỗ trợ nâng cấp RockDB

o Đảm bảo độ ổn định của public API

 Hỗ trợ chạy Zeebe trên đám mây:

o Zeebe cung cấp các thống kê cho vận hành trên đám mây và cảnh báo

o Zeebe cung cấp kiểm tra trạng thái hiện tại của bản thân

o Tài liệu hướng dẫn cho nâng cấp Zeebe trong cụm Kubernetes

 Độ ổn định và khả năng phục hồi:

o Hỗ trợ độ ổn định của log phân tán và hiệu suất

o Zeebe xóa các dữ liệu không sử dụng một cách đáng tin cậy

o Zeebe broker có thể tắt đi và khởi động lại khi có lỗi

 Sự cải tiến workflow engine Zeebe:

o Cải thiện các bước xử lý của workflow engine

o Thêm biểu thức vào thuộc tính kỹ thuật

3.3.2 Quý 4 năm 2019

 Hỗ trợ BPMN:

o Các sự kiện lỗi, các sự kiện quá trình phụ, hoạt động gọi (0.22)

Trang 39

19

 Hỗ trợ thêm cho các use case phổ biến

o Hỗ trợ “await workflow instance result”

o Hỗ trợ thu nhập tin nhắn

 Hỗ trợ khả năng mở rộng và độ ổn định của Zeebe:

o Khả năng phân phối log

o Khả năng mở rộng của Zeebe khi chịu lỗi

 Nâng cao năng suất của Zeebe:

o Hỗ trợ long - polling cho job worker

o Thực hiện định nghĩa back pressure

 Hỗ trợ các phiên bản Java mới nhất

 Mở rộng hệ sinh thái của Zeebe

3.3.4 Quý 2 năm 2019

 Giúp cho cho Zeebe cluster có thể chạy vĩnh viễn: để đảm bảo Zeebe có thể chạy một cách lâu dài, Zeebe sẽ xóa những dữ liệu không cần thiết cho sự hoạt động của quy trình nghiệp vụ

o Zeebe chỉ giữ lại một vài snapshot trong suốt quá trình chạy, xóa bỏ đi những snapshot cũ

o Xỏa bỏ những log cũ so với snapshot

 Đảm bảo Zeebe có khả năng chịu lỗi: để đảm bảo Zeebe sẵn sàng để được sử dụng chính thức, chúng ta cần kiểm tra kĩ khả năng chịu lỗi của Zeebe

o Zeebe cluster có thể khởi động lại hoàn toàn

o Một node trong cluster có thể khởi động lại trong quá trình chạy

Trang 40

20

o Cluster có thể tự sửa lỗi từ sự phân mảnh của mạng

o Một node có thể tham gia mặc dù đã mất hết dữ liệu

 Cung cấp hướng dẫn để sử dụng Zeebe: để đảm bảo Zeebe có thể vận hành trơn tru bởi người dùng, nhà phát triển đã cải tiến tài liệu hướng dẫn

và thêm nhiều thứ mới

o Tạo ra một hướng dẫn cụ thể để deploy Zeebe

o Cung cấp Zeebe checklist nhằm giúp người sử dụng có thể Zeebe được sử dụng trong sản phẩm của họ

3.3.5 Quý 1 năm 2019

 Hỗ trợ BPMN:

o Tin nhắn / hẹn giờ sự kiện bắt đầu

o Tin nhắn / hẹn giờ sự kiện không kết thúc

 Khái niệm “payload” để hỗ trợ phạm vi và đồng thời:

o Khai báo biến được lưu trữ trong một phạm vi, để có thể thông báo khi biến trong phạm vi đó thay đổi

 Cải tiến nhắn tin lỗi từ hướng người dùng:

o Cải thiện hiển thị và tính chi tiết của lỗi người dùng, nhờ đó đưa ra nhiều thông tin hữu ích giúp dev hiểu và xử lí những trường hợp lỗi

 Cơ sở hạ tầng ban đầu thay đổi để cải thiện độ ổn định:

o Đưa ra những thay đổi cần thiết để cải thiện độ ổn định của cluster, cụ thể là các cluster thành viên, nhận biết lỗi và sao chép

 Khái niệm “payload” để hỗ trợ phạm vi và đồng thời:

 Tách rời việc giải quyết các lỗi khi trạng thái thay đổi

Ngày đăng: 05/09/2021, 20:51

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w