Tải bản đầy đủ (.pdf) (76 trang)

Kiến trúc microservices và hệ thống quản lý đấu giá quảng cáo trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.06 MB, 76 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

NGUYỄN VŨ QUYỀN

KIẾN TRÚC MICROSERVICES VÀ HỆ THỐNG
QUẢN LÝ ĐẤU GIÁ QUẢNG CÁO TRỰC TUYẾN
Chuyên ngành: Kỹ thuật phần mềm

LUẬN VĂN THẠC SĨ KỸ THUẬT

HÀ NỘI – 2019


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

NGUYỄN VŨ QUYỀN

KIẾN TRÚC MICROSERVICES VÀ HỆ THỐNG
QUẢN LÝ ĐẤU GIÁ QUẢNG CÁO TRỰC TUYẾN
Chuyên ngành: Kỹ thuật phần mềm
LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. Nguyễn Thị Thu Trang

HÀ NỘI - 2019



LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn TS. Nguyễn Thị Thu Trang, Bộ môn Công
nghệ phần mềm, Trường Đại học Bách Khoa Hà Nội, đã nhiệt tình hướng dẫn,
truyền đạt những kiến thức cần thiết và định hướng cho em trong quá trình thực
hiện đề tài để có thể hồn thành bài luận văn tốt nghiệp này.
Em cũng chân thành cảm ơn thầy, cô Viện Công nghệ Thông tin và Truyền thông Trường Đại học Bách Khoa Hà Nội đã truyền đạt kiến thức, định hướng trong quá
trình học tại trường.
Dù đã cố gắng nhưng luận văn chắc chắn khơng tránh khỏi nhiều thiếu sót, em rất
mong nhận được ý kiến đóng góp của các thầy cô.
Em xin chân thành cảm ơn!

1


LỜI CAM ĐOAN
Tôi - Nguyễn Vũ Quyền - cam kết luận văn là cơng trình nghiên cứu của bản thân tôi
dưới sự hướng dẫn của TS. Nguyễn Thị Thu Trang.
Các kết quả nêu trong luận văn là trung thực, không phải là sao chép tồn văn của
bất kỳ cơng trình nào khác.
Hà Nội, ngày 20 tháng 10 năm 2019
Học viên

Nguyễn Vũ Quyền

2


MỤC LỤC
ĐẶT VẤN ĐỀ............................................................................................................. 8

Lý do chọn đề tài ....................................................................................................... 8
Mục đích nghiên cứu của luận văn ........................................................................... 9
Tóm tắt luận điểm cơ bản và đóng góp mới của tác giả ........................................... 9
Phương pháp nghiên cứu ........................................................................................ 10
CHƯƠNG 1. KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU HỆ THỐNG ĐẤU GIÁ
TRỰC TUYẾN ......................................................................................................... 11
1.1.

Khảo sát hiện trạng ............................................................................ 11

1.2.

Tổng quan hệ thống ........................................................................... 13

1.2.1.

Biểu đồ use case tổng quan ............................................................... 15

1.2.2.

Biểu đồ use case phân rã ................................................................... 16

CHƯƠNG 2. KIẾN TRÚC MICROSERVICES VÀ CÁC CÔNG NGHỆ SỬ
DỤNG ....................................................................................................................... 22
2.1.

Kiến trúc microservices ..................................................................... 22

2.1.1.


Microservices là gì ............................................................................ 22

2.1.2.

Đặc điểm của Microservices ............................................................. 23

2.1.3.

Microservices giao tiếp với nhau như thế nào................................... 24

2.1.4.

Ưu và nhược điểm của Microservices ............................................... 24

2.2.

CQRS Pattern .................................................................................... 26

2.2.1.

Command Pattern .............................................................................. 26

2.2.2.

Command Bus ................................................................................... 27

2.2.3.

CQRS Pattern là gì? .......................................................................... 29


2.3.

API gateway ...................................................................................... 31

2.4.

Các công nghệ sử dụng ..................................................................... 33

2.4.1.

Ngôn ngữ lập trình Golang ................................................................ 33

2.4.2.

Hệ thống thơng điệp NATS ............................................................... 36

2.4.3.

Protobuf (Protocol Buffers) ............................................................... 38

3


2.4.4.

gRPC (gRPC Remote Procedure Calls) ............................................39

2.4.5.

Hệ quản trị cơ sở dữ liệu Postgresql .................................................. 42


CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG ĐẤU GIÁ TRỰC
TUYẾN VỚI KIẾN TRÚC MICROSERVICES ...................................................... 44
3.1.

Kiến trúc Microservices cho hệ thống đấu giá trực tuyến ................. 44

3.2.

Thiết kế chi tiết .................................................................................. 47

3.2.1.

Dịch vụ đấu giá .................................................................................. 49

3.2.2.

Dịch vụ quản lý đấu giá .....................................................................51

3.2.3.

Dịch vụ lịch sử đấu giá ......................................................................55

3.3.

Xây dựng ứng dụng ...........................................................................58

3.4.

Kết quả đạt được ................................................................................ 63


CHƯƠNG 4. THỬ NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG ĐẤU GIÁ ................ 64
4.1.

Thử nghiệm hệ thống đấu giá ............................................................ 64

4.1.1.

Kịch bản thử nghiệm .........................................................................65

4.1.2.

Kiểm thử hệ thống ............................................................................. 66

4.2.

Đánh giá hệ thống .............................................................................. 71

4.3.

Phương hướng cải tiến .......................................................................71

KẾT LUẬN ............................................................................................................... 72
DANH MỤC CÁC TÀI LIỆU THAM KHẢO ......................................................... 73

4


DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Từ viết tắt, thuật ngữ


Từ viết đầy đủ

CSDL

Cơ sở dữ liệu

MSA
CQRS
CRUD
HTTP
TCP/IP
RPC
CPU

Microservices Architecture
Command Query Responsibility Segregation
Create, Read, Update, Delete
Hyper Text Transfer Protocol
Transmission Control Protocol / Internet Protocol
Remote Procedure Call
Central Processing Unit

REST

Representational State Transfer

JSON

JavaScript Object Notation


Service

Dịch vụ

API

Application Programming Interface

API Gateway

Cổng API

SOA

Services Oriented Architecture

CAP

Consistency, Availability, Partition tolerance

Publisher

Người xuất bản

Subscriber

Người theo dõi

GUI


Graphical user interface

NATS

Neural Autonomic Transport System

5


MỤC LỤC HÌNH ẢNH
Hình 1. Biểu đồ use case tổng quan ......................................................................... 15
Hình 2. Biểu đồ phân rã use case đấu giá................................................................. 16
Hình 3. Biểu đồ phân rã use case quản lý đấu giá.................................................... 18
Hình 4. Biểu đồ phân rã use case lịch sử đấu giá ..................................................... 20
Hình 5. Kiến trúc microservices ............................................................................... 22
Hình 6. Mơ hình giao tiếp giữa các Microservice .................................................... 24
Hình 7. Mơ hình command bus ................................................................................ 29
Hình 8. Mơ hình CQRS ............................................................................................ 30
Hình 9. Mơ hình API gateway ................................................................................. 32
Hình 10. Mơ hình hoạt động của NATS .................................................................. 38
Hình 11. Giao tiếp giữa các máy chủ sử dụng gRPC ............................................... 40
Hình 12. Kiến trúc microservice cho hệ thống đấu giá trực tuyến .......................... 44
Hình 13. Kiến trúc microservices theo mẫu CQRS ................................................. 45
Hình 14. Tăng quy mơ cho dịch vụ đấu giá ............................................................. 46
Hình 15. Biểu đồ thực thể hệ thống đấu giá ............................................................. 47
Hình 16. Luồng nghiệp vụ đấu giá cơng khai .......................................................... 48
Hình 17. Luồng dịch vụ đấu giá ............................................................................... 49
Hình 18. Luồng dịch vụ quản lý đấu giá .................................................................. 51
Hình 19. Luồng dịch vụ truy vấn lịch sử đấu giá ..................................................... 55

Hình 20. Cấu trúc hệ thống ...................................................................................... 58
Hình 21. Cấu trúc phát triển dịch vụ ........................................................................ 59
Hình 22. Khởi tạo kết nối trong tệp main.go ........................................................... 60
Hình 23. Khai báo chức năng trong handler interface ............................................. 60
Hình 24. Đăng kí api với tệp proto ........................................................................... 61
Hình 25. Khai báo chức năng trong service interface .............................................. 61
Hình 26. Định nghĩa thực thể và khai báo chức năng trong storage interface ......... 62
Hình 27. Luồng xử lý của hệ thống .......................................................................... 62
Hình 28. Khởi tạo dịch vụ lịch sử đấu giá................................................................ 64
Hình 29. Khởi tạo dịch vụ đấu giá ........................................................................... 64
Hình 30. Khởi tạo dịch vụ admin ............................................................................. 64
Hình 31. Admin tạo danh sách phiên đấu giá .......................................................... 66
Hình 32. Màn hình tạo phiên đấu giá ....................................................................... 67
Hình 33. Danh sách các phiên đấu giá ..................................................................... 68
Hình 34. Màn hình lịch sử đấu giá ........................................................................... 68
Hình 35. Màn hình gọi dịch vụ đấu giá .................................................................... 69

6


Hình 36. Màn hình thơng báo giá khơng hợp lệ .......................................................69
Hình 37. Thơng báo đấu giá thành cơng ...................................................................70
Hình 38. Màn hình lịch sử đấu giá sau khi người dùng đấu giá ...............................70

7


ĐẶT VẤN ĐỀ
Lý do chọn đề tài
Trong thời đại bùng nổ công nghệ thông tin như hiện nay, nhu cầu nắm bắt các tin

tức, mua sắm trực tuyến của người dân ngày càng tăng cao. Ngoài các hệ thống như
các trang thương mại điện tử, trang báo điện tử thông thường, cịn có một kênh
thơng tin nữa cần được khai thác quảng cáo, đó chính là hệ thống báo nói của VBee.
Do việc đọc báo trở nên tốn thời gian hơn khi trong một ngày có quá nhiều bài báo
được viết nói về các sự kiện trong nước cũng như trên thế giới, người dùng nếu
muốn cập nhật kịp thời sẽ khơng thể rời mắt khỏi màn hình. Khơng những thế, đọc
báo điện tử trong thời gian dài có thể gây ra các bệnh về mắt như mỏi mắt, nhược
thị, cận thị… Báo nói ra đời nhằm khắc phục những nhược điểm trên mà đồng thời
phục vụ đầy đủ những lợi ích mà báo điện tử đem lại. Người dùng có thể vừa lái xe,
vừa nghe tin tức trên báo điện tử những chuyên mục mình quan tâm: các bạn trẻ có
thể cập nhật tin tức sự kiện về các ngơi sao, thần tượng của mình, các xu hướng thời
trang, doanh nhân liên tục được cập nhật các tin tức tài chính như cổ phiếu, chứng
khốn, người già khơng cần nhờ con cháu đọc hộ bài báo nào đó khi đã mệt… và
còn nhiều trường hợp khác nữa. Từ tập người dùng lớn như vậy, nếu ta có thể tận
dụng để thương mại hóa bằng cách cho phép các doanh nghiệp, cá nhân đấu giá
quảng cáo. Dựa vào thói quen cũng như sở thích của người dùng, ta cũng có thể lọc
và đưa ra quảng cáo tới đúng tập khách hàng tiềm năng.
Để xây dựng hệ thống đấu giá trực tuyến phục vụ cho hàng triệu người dùng, kiến
trúc monolithic truyền thống khó có thể đáp ứng được yêu cầu. Với kiến trúc
monolithic, phải đảm bảo toàn bộ hệ thống ln cùng hoạt động, khi một thành
phần cần bảo trì hay sửa chữa, cả hệ thống sẽ phải xây dựng và triển khai lại. Một
mơ hình khác là kiến trúc hướng dịch vụ (SOA - Service Oriented Architecture) cho
phép tích hợp các ứng dụng và quy trình nghiệp vụ với nhau để đáp ứng nhu cầu
nghiệp vụ của phần mềm. SOA nhanh và linh hoạt cho các quy trình nghiệp vụ. Các
thay đổi về quy trình hoặc ứng dụng sẽ được chuyển đến một thành phần cụ thể mà
không ảnh hưởng đến toàn bộ hệ thống. Tuy nhiên trong SOA, tất cả các đầu vào

8



được xác nhận trước khi nó được gửi đến dịch vụ. Nếu bạn đang sử dụng nhiều dịch
vụ thì nó sẽ làm quá tải hệ thống của bạn với tính tốn thêm. Kiến trúc
microservices ra đời nhằm mục đích khắc phục những nhược điểm trên.
Mục đích nghiên cứu của luận văn
Để phục vụ cho người dùng tiếp cận với hình thức quảng cáo trực tuyến, tăng trải
nghiệm người dùng, hệ thống sẽ được xây dựng sử dụng kiến trúc microservices.
Bằng cách tách nhỏ hệ thống ra thành những dịch vụ nhỏ hơn, phục vụ cho mục
đích riêng biệt giúp việc tăng quy mô trở nên dễ dàng hơn. Về định hướng phát
triển, ứng dụng kiến trúc microservices để phát triển tồn bộ hệ thống về cùng một
cơng nghệ để đảm báo tính nhất quán. Cung cấp API tới người dùng, phân loại
người sử dụng dựa trên các API Gateways.
Tóm tắt luận điểm cơ bản và đóng góp mới của tác giả
Các luận điểm cơ bản:
 Tìm hiểu nghiệp vụ đấu giá trực tuyến, cách thức thực hiện.
 Thêm hình thức quảng cáo tới người dùng và tăng số lượng tập khách hàng.
 Tạo công cụ giúp doanh nghiệp và cá nhân có thể cạnh tranh tiện lợi, cơng
bằng và minh bạch.
 Hướng đến một hệ thống thông tin ứng dụng mang tính tổng qt và tinh gọn
trong q trình triển khai.
 Ứng dụng MSA tạo ra các ứng dụng trực tuyến mạnh mẽ và có khả năng linh
hoạt để mở rộng, dễ xây dựng, triển khai và bảo trì mã nguồn dễ dàng.
 Áp dụng các công nghệ mới nhất để phục vụ cho quá trình phát triển sản
phẩm, giúp tối ưu hiệu năng.
Đóng góp mới của luận văn như sau:
 Luận văn xây dựng dịch vụ ứng dụng hệ thống đấu giá trực tuyến theo mơ
hình MSA.

9



 Luận văn xây dựng dịch vụ đấu giá theo CQRS pattern để tối ưu hiệu suất,
dịch vụ này có thể ứng dụng vào các hệ thống quản lý khác bên ngoài hệ
thống quản lý đấu giá quảng cáo trực tuyến.
Phương pháp nghiên cứu
Về lý thuyết: thu thập thông tin thông qua đọc các bài báo, tài liệu điện tử, việc
tham khảo các tài liệu để có cái nhìn tổng thể, từ đó tổng hợp lại những mối quan hệ
giữa các thông tin từ lý thuyết đã thu thập được nhằm mục đích tìm chọn những
khái niệm cơ bản làm cơ sở cho đề tài sau đó đưa ra các đối tượng và những thuộc
tính của đối tượng nghiên cứu và thiết kế cấu trúc phù hợp với mơ hình bài tốn ban
đầu.
Phương pháp mơ hình hóa giúp phản ánh những mặt xung quanh đối tượng, mơ
hình hóa đối tượng nghiên cứu dưới dạng trực quan, xây dựng mơ hình các đối
tượng nghiên cứu các thông tin về gồm cấu trúc, thuộc tính, chức năng, luồng dữ
liệu.
Nghiên cứu theo định hướng theo mục đích ứng dụng quản lý dịch vụ đấu giá trực
tuyến.

10


CHƯƠNG 1. KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU HỆ THỐNG
ĐẤU GIÁ TRỰC TUYẾN
1.1.

Khảo sát hiện trạng

Hệ thống đấu giá trực tuyến là mơ hình mà người dùng tham gia đấu thầu sản phẩm
và dịch vụ. Phiên đấu giá này được thực hiện dễ dàng hơn bằng cách sử dụng phần
mềm trực tuyến giúp điều chỉnh các quy trình có liên quan. Có khá nhiều phương
thức hay loại đấu giá khác nhau, và một trong những phương thức phổ biến nhất đó

chính là hệ thống đấu giá cơng khai. Hệ thống này đã được thiết kế để có khả năng
mở rộng cao và có khả năng hỗ trợ số lượng lớn các nhà thầu trong một cuộc đấu
giá. Vì vậy, nó phải ln ln ở trong tình trạng sẵn sàng và minh bạch.
Hiện nay có khá nhiều hệ thống đấu giá lớn đã và đang rất thành cơng có thể kể đến
như eBay, eBid, Bonanza… Chúng đều có giao diện rất bắt mắt và thu hút người sử
dụng. Các chức năng có thể kể tới đó là:
 Đăng kí, đăng nhập.
 Xem danh sách các món hàng đang được đấu giá.
 Tìm kiếm món hàng theo tên, theo danh mục, theo mức giá...
 Tham gia đấu giá món hàng.
 Đăng kí trở thành người bán hàng.
 Đăng bán món hàng.
Dựa vào những hệ thống đã thành công kể trên và kết hợp với hệ thống báo nói trực
tuyến, hệ thống quản lý đấu giá quảng cáo trực tuyến ra đời nhằm mục đích tận
dụng khai thác thêm tập người dùng từ báo nói. Báo nói đã và đang phát triển ngày
một phổ biến hơn. Những ưu điểm khi chuyển sử dụng báo nói thay vì báo viết là
rất nhiều. Có thể kể đến như giảm tác hại khi nhìn màn hình trong thời gian dài đối
với mắt, khi khơng cần phải tập trung nhìn màn hình, người dùng có thể làm việc
khác trong khi vẫn có thể nghe tin tức ưa thích của mình. Báo chí từ chỗ chỉ có độc
giả, ta đã có thêm thính giả. Khi nhu cầu sử dụng báo nói tăng cao, hệ thống có một
tập người dùng đủ lớn, lúc này ta có thể triển khai hệ thống đấu giá trực tuyến trên

11


hệ thống báo nói. Cá nhân và doanh nghiệp có thể đăng ký đấu giá các khung giờ để
phát quảng cáo trên báo nói.
Hiện nay, hệ thống đấu giá quảng cáo trực tuyến khơng có nhiều, tại Việt Nam
Appota cũng đang phát triển ứng dụng đấu giá trực tuyến thời gian thực hỗ trợ
quảng cáo trên Google Ads. Hệ thống Admicro chuyên quảng cáo trực tuyến trên

các báo lớn như dantri, afamily, kenh14, cafebiz… nhưng hệ thống đấu giá quảng
cáo trực tuyến cũng chưa phát triển tới tay người dùng mà vẫn phải thông qua đội
hỗ trợ đặt quảng cáo. Thêm vào đó, hệ thống vẫn phát triển theo mơ hình một khối
nên tốc độ khơng đáp ứng được nếu đưa tới cho người sử dụng… Tính mở rộng
khơng cao hạn chế lượng người dùng tương tác và trải nghiệm đối với hệ thống, quy
trình đăng kí phức tạp, khơng thân thiện với người dùng, tốn phí dịch vụ. Dịch vụ
đấu giá trực tuyến ra đời nhằm khắc phục những nhược điểm này. Áp dụng kiến
trúc microservices, nếu số lượng người dùng tăng đột biến trong một khoảng thời
gian, ta có thể dễ dàng mở rộng, tránh trường hợp thời gian đáp ứng chậm hoặc
thậm chí bị sập hệ thống.
Luận văn sẽ tập trung vào đề xuất xây dựng Dịch vụ đấu giá trực tuyến. Phạm vi sẽ
giới hạn trong nghiệp vụ đấu giá theo hệ thống đấu giá Anh. Theo Wikipedia quá
trình đấu giá của hệ thống đấu giá Anh sẽ diễn ra như sau:
 Một tài sản được bán thông qua đề nghị mở dự thầu hoặc bắt đầu bằng giá
được đặt bởi người bán.
 Sau đó, nhà đấu giá chấp nhận giá thầu ngày càng cao từ sàn, bao gồm những
người mua quan tâm đến mặt hàng. Nhà đấu giá thường xác định mức tăng
tối thiểu của giá thầu, thường tăng giá khi giá thầu tăng cao.


Người trả giá cao nhất tại bất kỳ thời điểm nào được coi là có giá thầu đứng,
chỉ có thể được thay thế bằng giá thầu cao hơn từ người mua cạnh tranh.

 Nếu khơng có nhà thầu cạnh tranh nào thách thức giá thầu đứng trong khung
thời gian nhất định, thì người đưa ra giá thầu đứng sẽ trở thành người chiến
thắng và mặt hàng được bán cho người trả giá cao nhất với giá bằng với giá
thầu của họ.

12



 Nếu khơng có nhà thầu chấp nhận giá khởi điểm, nhà đấu giá sẽ bắt đầu hạ
giá khởi điểm dần dần, các nhà thầu được phép trả giá thấp hơn giá khởi
điểm, hoặc mặt hàng sẽ không được bán, theo mong muốn của người bán
hoặc giao thức của nhà đấu giá.
Q trình này có tính chất cạnh tranh cơng bằng và có xác suất cao món hàng sẽ
được bán. Từ nghiệp vụ nói trên, em sẽ tiến hành xây dựng hệ thống quản lý đấu giá
trực tuyến mà mặt hàng ở đây là quảng cáo trên báo nói. Nói về quảng cáo trên báo
nói, mặt hàng này khơng khác nhiều so với các mặt hàng thông thường, sự khác biệt
rõ nhất đó là đây là mặt hàng phi vật thể, không thể cất giữ cũng như bảo tồn. Giá
trị của quảng cáo được quyết định bởi khung giờ phát quảng cáo. Sau khi thính giả
nghe một số lượng bài báo nhất định sẽ phát một đoạn quảng cáo ngắn chèn vào khi
chuyển bài báo, có thể bắt buộc (giống với sportify) trong khung giờ được đấu giá.
Dựa vào thống kê, ta có thể biết khung giờ nào người dùng sử dụng báo nói nhiều
nhất, từ đó đưa ra được mức giá sàn hợp lý cho các khung giờ để đấu giá. Quản trị
thậm chí có thể cơng khai số liệu này để người dùng nắm được và tự tìm hiểu xem
quảng cáo của mình sẽ cần nhắm tới đối tượng người dùng ra sao.
Đối tượng áp dụng là cá nhân và doanh nghiệp muốn mở rộng tập khách hàng,
quảng bá thơng tin tới người sử dụng báo nói.
1.2.

Tổng quan hệ thống

Quảng cáo trực tuyến cũng giống như các hình thức quảng cáo khác, đều nhắm tới
cung cấp thông tin, đẩy nhanh tiến độ giao dịch giữa người mua và người bán.
Quảng cáo trực tuyến cịn có ưu điểm là nó giúp người tiêu dùng có thể tương tác,
lấy thống tin chi tiết của sản phẩm cũng như xem nhiều mẫu mã khác bằng cách
nhấn vào chi tiết quảng cáo. Thậm chí, người dùng cịn có thể mua sản phẩm trực
tiếp trên website. Thêm vào đó, quảng cáo trực tuyến còn tạo cơ hội cho các nhà
quảng cáo sản phẩm nhắm chính xác vào tập người dùng tiềm năng.


13


Trong phạm vi luận văn, em sẽ thực hiện luồng nghiệp vụ đơn giản nhất đó là đấu
giá cơng khai. Hệ thống sẽ có các đối tượng như sau:
 Quản trị viên.
 Người duyệt.
 Người dùng (ở đây là khách hàng và doanh nghiệp).
Quản trị viên có chức năng tạo mới, cập nhật, phát hành hoặc đóng phiên đấu giá.
Mỗi khi phát hành một phiên đấu giá, người dùng có thể biết được thông qua danh
sách phiên đấu giá được cập nhật. Người dùng từ danh sách nói trên, nếu có khung
giờ phù hợp với nhu cầu thì sẽ tham gia đấu giá. Lịch sử đấu giá cũng sẽ được cập
nhật liên tục tới hệ thống và chuyển đến cho người dùng. Một khách hàng sẽ có thể
được đấu giá liên tục cho tới khi phiên kết thúc. Phiên đấu giá kết thúc khi đến thời
gian quy định (do quản trị viên đặt ra) hoặc quản trị viên chủ động đóng phiên giao
dịch.
Các chức năng cần xây dựng trong hệ thống bao gồm:
 Quản lý khung giờ.
 Quản lý phiên đấu giá khung giờ.
 Xem danh sách khung giờ.
 Đấu giá khung giờ trong phiên đấu giá.

14


1.2.1.

Biểu đồ use case tổng quan


Luồng hoạt động của hệ thống từ quản trị viên tạo ra các khung giờ đăng quảng cáo.
Tiếp theo đó, tạo phiên đấu giá cho khung giờ vừa tạo. Người duyệt sẽ là người
quyết định phiên đấu giá có được phép public tới người dùng hay khơng. Nếu hợp
lệ, người đó sẽ thay đổi trạng thái phiên sang đã duyệt để đưa tới người dùng. Từ
danh sách các phiên đã duyệt và có thể tham gia đấu giá, người dùng sẽ quyết định
tham gia phiên đấu giá nào và bắt đầu đấu giá cho tới khi phiên kết thúc.

Hình 1. Biểu đồ use case tổng quan

Các tác nhân tham gia bao gồm:
 Người dùng: có thể xem và tham gia đấu giá.
 Quản trị viên: có nhiệm vụ quản lý phiên đấu giá.
 Người duyệt: có quyền thực hiện use case CRUD phiên đấu giá, ngồi ra cịn
có quyền thực hiện use case “publish đấu giá” nên có quan hệ extend.

15


Biểu đồ use case phân rã

1.2.2.

Biểu đồ use case đấu giá
Biểu đồ hình 2 thể hiện use case người dùng sử dụng hệ thống đấu giá. Hệ thống
cho phép người dùng có thể xem danh sách các phiên đấu giá. Từ danh sách này, có
thể xem chi tiết q trình đấu giá đã và đang diễn ra. Người dùng có thể tham gia
đấu giá nếu phiên vẫn chưa kết thúc bằng cách nhập giá mình muốn (giá này phải
thỏa mãn điều kiện lớn hơn giá lớn nhất của phiên tại thời điểm đó). Chức năng
quan trọng nhất ở đây là chức năng đấu giá, cần đảm bảo giá người dùng đưa ra là
hợp lệ và thông báo về cho người dùng nếu chưa đúng. Tác nhân duy nhất là người

dùng, quản trị viên không được phép sử dụng chức năng này.

Hình 2. Biểu đồ phân rã use case đấu giá

Kịch bản Use case Danh sách phiên đấu giá
Mã use case

UC001

Tên use case

Tác nhân

Người dùng

Tiền điều kiện

Người dùng đã đăng nhập

16

Danh sách phiên đấu giá


Luồng sự kiện

STT Thực hiện bởi Hành động

chính


1

Tác nhân

Chọn xem danh sách phiên đấu giá

(Thành công)

2

Hệ thống

Hiện danh sách phiên đấu giá

3

Tác nhân

Điền thông tin lọc phiên đấu giá

4

Hệ thống

Kiểm tra thông tin được điền vào form

5

Hệ thống


Hiện danh sách phiên đấu giá đã lọc

6

Tác nhân

Chọn phiên đấu giá

7

Hệ thống

Hiện chi tiết phiên đấu giá

Kịch bản Use case đấu giá
Mã use case

UC002

Tác nhân

Người dùng

Tiền điều kiện

Người dùng đã đăng nhập

Luồng sự kiện
chính
(Thành cơng)


Tên use case

Hành động
Chọn nút đấu giá trong chi tiết đấu giá
Hiển thị form điền thông tin đấu giá
Điền thông tin đấu giá và nhấn lưu
Kiểm tra quyền người đăng nhập
Kiểm tra thông tin được điền vào form
Lưu thông tin giá đấu và cập nhật giá
trong chi tiết đấu giá
7
Hệ thống
Quay về màn hình chi tiết đấu giá
Luồng sự kiện STT Thực hiện bởi Hành động
thay thế
4a
Hệ thống
Nếu không phải tác nhân người dùng, hệ
thống sẽ từ chối thực thi và trả về thông
báo lỗi.
5a
Hệ thống
Nếu giá điền thấp hơn giá cao nhất trong
phiên đấu giá, hệ thống trả về thông báo
lỗi
6a
Hệ thống
Nếu lưu giá không thành công, trả về
thông báo lỗi

Hậu điều kiện Giá đấu được lưu vào cơ sở dữ liệu và thông báo về cho người
dùng.
STT
1
2
3
4
5
6

Thực hiện bởi
Tác nhân
Hệ thống
Tác nhân
Hệ thống
Hệ thống
Hệ thống

Đấu giá

17


Biểu đồ use case quản lý đấu giá
Quản lý đấu giá cho phép quản trị viên có thể thêm mới, cập nhật và duyệt khung
giờ. Khung giờ này sẽ được đem ra đấu giá tại các phiên. Để làm được như vậy,
quản trị viên cần có chức năng tạo, cập nhật phiên đấu giá. Chức năng mở phiên đấu
giá cho phép phiên đấu giá được phép xuất hiện trong danh sách có thể tham gia
đấu giá phía người dùng.


Hình 3. Biểu đồ phân rã use case quản lý đấu giá

Phần tiếp theo em sẽ mô tả kịch bản use case. Để tránh lan man, em sẽ không đặc tả
hai use case CRUD khung giờ và CRUD phiên đấu giá, mà sẽ chỉ đặc tả use case
mở phiên đấu giá.

18


Kịch bản Use case Mở phiên đấu giá
Mã use case

UC003

Tên use case

Tác nhân

Người duyệt

Tiền điều kiện

Người duyệt đã đăng nhập

Mở phiên đấu giá

STT Thực hiện bởi Hành động
1
Tác nhân
Chọn nút duyệt phiên đấu giá

2
Hệ thống
Hiển thị xác nhận hành động “Chắc
chắn mở phiên hay không”
3
Tác nhân
Xác nhận mở phiên
4
Hệ thống
Kiểm tra quyền người đăng nhập
5
Hệ thống
Lưu hệ thống trạng thái phiên đấu giá đã
mở
6
Hệ thống
Quay lại màn hình danh sách phiên
Luồng sự kiện STT Thực hiện bởi Hành động
thay thế
aa
Hệ thống
Nếu không phải tác nhân người duyệt,
hệ thống sẽ từ chối thực thi và trả về
thông báo lỗi.
6a
Hệ thống
Nếu hệ thống lưu thất bại, hiển thị thông
báo lỗi.
Hậu điều kiện Trạng thái phiên đấu giá được đổi thành đã mở.
Luồng sự kiện

chính
(Thành cơng)

19


Biểu đồ use case xem lịch sử đấu giá
Dịch vụ lịch sử đấu giá chứa thông tin tất cả các phiên đấu giá, chi tiết phiên đấu giá
bao gồm thông tin người tham gia và giá họ đưa ra. Lịch sử đấu giá cá nhân và lịch
sử phiên đấu giá có quan hệ mật thiết với nhau và là quan hệ n-n. Hình 4 mơ tả mối
quan hệ giữa các chức năng trong dịch vụ đối với các tác nhân của hệ thống.

Hình 4. Biểu đồ phân rã use case lịch sử đấu giá

Kịch bản Use case Xem lịch sử đấu giá cá nhân
Mã use case

UC004

Tác nhân

Người dùng

Tiền điều kiện

Xem lịch sử đấu giá cá nhân

Tên use case

Người dùng đã đăng nhập, là người có tham gia các phiên đấu

giá trong danh sách lịch sử

Luồng sự kiện

STT Thực hiện bởi Hành động

chính

1

Tác nhân

Chọn xem lịch sử đấu giá cá nhân

(Thành công)

2

Hệ thống

Hiện danh sách đấu giá cá nhân

3

Tác nhân

Điền thông tin lọc phiên đấu giá

4


Hệ thống

Kiểm tra thông tin được điền vào form

5

Hệ thống

Hiện danh sách phiên đấu giá đã lọc

20


Kịch bản Use case Xem lịch sử phiên đấu giá
Xem lịch sử phiên đấu giá

Mã use case

UC005

Tên use case

Tác nhân

Quản trị viên

Tiền điều kiện

Quản trị viên đã đăng nhập


Luồng sự kiện

STT Thực hiện bởi Hành động

chính

1

Tác nhân

Chọn xem lịch sử phiên đấu giá

(Thành công)

2

Hệ thống

Hiện danh sách phiên đấu giá

3

Tác nhân

Điền thông tin lọc phiên đấu giá

4

Hệ thống


Kiểm tra thông tin được điền vào form

5

Hệ thống

Hiện danh sách phiên đấu giá đã lọc

21


CHƯƠNG 2. KIẾN TRÚC MICROSERVICES VÀ CÁC CÔNG NGHỆ
SỬ DỤNG
2.1.

Kiến trúc microservices

2.1.1. Microservices là gì
Đây là loại kiến trúc đang dần trở nên phổ biến trong những năm gần đây nhờ khả
năng mơ-đun hóa và khả năng mở rộng. Kiến trúc microservice có thể cung cấp hầu
hết các tính năng của một ứng dụng một khối. Ngồi ra, nó cung cấp nhiều tính
năng và linh hoạt hơn, do đó nó là sự lựa chọn ưu việt cho ứng dụng phức tạp.
Khơng giống như kiến trúc một khối, khá khó để khái qt hóa kiến trúc
microservices vì nó có thể thay đổi nhiều tùy thuộc vào trường hợp sử dụng và triển
khai.
Kiến trúc này được trực quan hóa như hình 5 bên dưới.

Hình 5. Kiến trúc microservices

22



Theo như trang microservices.io, microservice được định nghĩa như sau:
Microservice hay còn được gọi là kiến trúc Microservice là một kiến trúc, cấu trúc
một ứng dụng như một tập hợp các dịch vụ. [10]

Kiến trúc Microservices cho phép phân phối nhanh chóng, thường xuyên và đáng
tin cậy cho các ứng dụng lớn và phức tạp.
2.1.2. Đặc điểm của Microservices
Theo như tài liệu tham khảo [13], Microservices có các đặc điểm sau:
 Decoupling - Các dịch vụ trong một hệ thống phần lớn được tách rời. Vì
vậy, tồn bộ ứng dụng có thể dễ dàng được xây dựng, thay đổi và thu nhỏ.
 Componentization - Microservices được coi là các thành phần độc lập có
thể dễ dàng thay thế và nâng cấp.
 Business Capabilities - mỗi một thành phần trong kiến trúc microservice rất
đơn giản và tập trung vào một nhiệm vụ duy nhất.
 Autonomy - các lập trình viên hay các nhóm có thể làm việc độc lập với
nhau trong quá trình phát triển.
 Continuous Delivery - Cho phép phát hành phần mềm thường xuyên, liên
tục.
 Responsibility
 Decentralized Governance - khơng có mẫu chuẩn hóa hoặc bất kỳ mẫu
cơng nghệ nào. Được tự do lựa chọn các công cụ hữu ích tốt nhất để có thể
giải quyết vấn đề.
 Agility - microservice hỗ trợ phát triển theo mơ hình Agile.

23



×