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

Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến

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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Building a live streaming platform
Tác giả Nguyen Tan Nga
Người hướng dẫn Ths. Mai Xuan Hung
Trường học Truong Dai Hoc Cong Nghe Thong Tin, Dai Hoc Quoc Gia Thanh Pho Ho Chi Minh
Chuyên ngành He Thong Thong Tin
Thể loại Khoa Luan Tot Nghiep
Năm xuất bản 2023
Thành phố Ho Chi Minh
Định dạng
Số trang 86
Dung lượng 47,06 MB

Nội dung

- Tính năng nỗi bật: + Truyền tải video trực tiếp + Tương tac thời gian thực + Thông báo cho người theo dõi + Ghi lại luồng trực tiếp và chia sẻ + Đa nền tảng và tích hợp + Thống kê và p

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA HE THONG THONG TIN

NGUYEN TAN NGA - 19521879

KHOA LUAN TOT NGHIEP

Building a live streaming platform

KY SU NGANH HE THONG THONG TIN

GIANG VIEN HUONG DAN

Ths MAI XUAN HUNG

TP HO CHi MINH, 2023

Trang 2

LOI CAM ON

Dé hoàn thiện nghiên cứu nay, bên cạnh sự cô găng của ca nhân, em cũng đã nhận

được rất nhiều sự động viên, đóng góp ý kiến và chỉ dẫn tận tình của thầy cô, người

thân và bạn bẻ trong suốt thời gian học tập và thực hiện đề tài

Em xin tỏ lòng biết ơn sâu sắc đối với thầy - Ths Mai Xuân Hùng đã hết lòng giúp

đỡ và tận tình hướng dẫn để em hoàn thiện nghiên cứu này Sự dẫn dắt của thầy làđộng lực cho em có thê bồi đắp thêm kiến thức chuyên môn đề hoàn thành khóa luận

Em xin chân thành cảm ơn quý Thầy Cô khoa Hệ thống thông tin - Trường Đại họcCông nghệ thông tin Đại học quốc gia Thành phố Hồ Chí Minh đã truyền đạt những

kiến thức quý báu trong suốt thời gian qua dé em có thé vận dụng tốt vào trong quá

trình nghiên cứu.

Tuy đã có nhiêu cô găng nhưng chắc chăn còn nhiêu thiêu sót, em rât mong nhận

được đóng góp của quý thầy cô

Xin chân thành cảm on.

Trang 3

MỤC LỤC

Chương 1 MỞ ĐẦU s - 55° s52 2S EsEESESEESEsSESEsEESEseEsrtsrsrtsrsrssrssrsse 2

LD co na 2PB) an 2

1.3 Tìm hiểu các ứng dụng hiện CÓ - - 2-5-5 ss s2 sSses£eEsesesesseses 2

1.3.1 Facebook ÌLIV€ - < c1 29999 SSS ST ST TT 2

1.3.2 Youtube 0à-::aaadđiidđadaaÝŸÝŸÝ 4

1.4 Mu on 6

1.5 Đối tượng và phạm Vi sử dụng . s-s° se sessesessesessesessrsesses 6

Chương 2 CÁC CÔNG NGHỆ SỬ DỤNG - 5c scssscsscseesessessesses 7

2.1 Spring Boot FraIWOTFÌK 0s < G 6 6 S55 99 6899993 6899994 560898999496666996 7

"Na 7

2.1.2 Ưu điểm đe >.s.ea Í ⁄ à o2 8

2.1.3 Nhượđim —> đ> 9

„Non 9

2.2.1 Giới thiỆU - 5-5: Sc SE 3212121211 21221211121 7121111111111 111 re 9

2.2.2 Ưu điểm - 2 SE SE EEEEE2151121521217121712111111111111111 111 xe 9

2.2.3 Nhược điỂm ¿- 52+ 2E2E22E2E2122121221212121712171211121 111.1 crxe 10

Trang 4

2.4.2 Các đặc trưng của WebsocK( - -c 1 HS ng ng 22

2.4.3 Ưu điểm -c:- 5t tt tt 2 H2 H2 re 22

2.4.4 Nhược điỀm -c 2++cttrttr nghe 23

Chương 3 PHAN TICH THIẾT KE HE THONG . . - 5° s2 24

3.1 Mô hình quan HhỆ d- G5 G6 526 S9 99 99.99 99 4 0.9 0 09 009 6.66 24

3.2 Sơ đồ trường hợp sử dụng của ứng dụng (Use case diagram) 28

3.2.1 Use-case tông quất - c2 +kk SE E9EE1215111212111 0111111111 1 cx6 28

3.2.2 Danh sách các use-case của hệ thống -2- + ++cz+x+czx+cse2 29

3.3 Sơ đồ tuần tự (Sequence Diagram) ssssessssesseszsseszssesssse 39

3.3.1 Chức năng đăng ky LH HH HH ngu 39

3.3.2 Chức năng đăng nhập - - - 11g ng ch 40

3.3.3 Chức năng đăng XUẤT -¿- + St SEE 3E 1 111511212111 211111 21211 xe 41

3.3.4 Chức năng tim kiếm phiên livestream và streamer - 42

3.3.5 Chức năng tham gia phòng sfr€aim - -. c5 3+ ‡++svex+seeeresss 43

3.3.6 Chức năng tạo phiên livestream M01 - - 555552 s+++ssx 44

3.3.7 Chức năng phát trực tiếp thông qua chia sẻ màn hình 45

3.3.8 Chức năng chỉnh sửa thông tin livesfream -. 5< ««c+++sxc+sex 46 3.3.9 Chức năng trò chuyện trong phòng sfream - - + +s««+<+e++ 47

3.3.10 Chức năng theo dõi Str€aIm€T - - 5 13+ 31 S9 ve 48

3.3.11 Chức năng chia sé ÏIV€Sfr€AI - vn Sư 49

3.3.12 Chức năng thống kê dữ liệu ¿2 + 2E E+E££E+E£Ee£zEzEererxee 50

Chương 4 XÂY DUNG HE THÓNG -5 5 5s ssesssseeseseesesersese 51

4.1 Tổng quan về hệ thong ccccssscssesescssessscssessssssesessssesesscsssessesesesesseeeseess 51

4.2 Khái quát hệ thong c.cssssscsssscsssscessssessssessssesesseceessceesscsesacseeaeaeeaeseecens 53

Trang 5

4.3 Mô tả các màn hình 555555 5 5 5 5 9 9 9.9.9.9 6666665656855 54

4.3.1 Giao diện trang ChủỦ - eeseeseesneeeseessseceseessseseseesseeesseesseessaeeesees 54 4.3.2 Đăng nhap/Dang ky tài khoản người dùng: <++s-«<+++ 56

4.3.3 Giao diện các chức năng dành cho Streamer -‹-++s-s<+>+ 59

4.3.4 Giao diện các chức năng dành cho VIeW€T: ccsss+sss+ssexe+ 64

4.3.5 Giao điện tối: -: ¿©+- 22t 2t E9212EE212121211212112111 21112111111 rre 67

4.3.6 Đăng XUẤT: - 5-5 S HT E1 11 1111111111101112111 1101110111111 tre, 67

4.4 Phương pháp xây Aung ó5 9 9 90 03 009004996 68

4.4.1 Phần S€TV€T - 5c 52t 2 1921212121211 2121121112111 1111 1111111 re 69

4.4.2 Phần Clieni( - ¿c2 1252 s22 1921515212111 1 2111121111111 0111111111111 re 70

4.5 Ưu điểm của hệ thống - 2-5-5 s52 s£ss£sexeEsexeEsessrsssrsessrssrsess 70

4.5.1 Về chất lượng hình ảnh +: 2 +SE+E£EE+E£EEEEEEEEEEEEEErEerkrrerrree 704.5.2 Về độ trễ của luồng truyền phát + 2+ 2+E+£z+E+EzEerszxerszes 70

4.6 Mô hình xây dựng với WeblRTC - «<< ssssessssesessesexsessesssse 71

Chương 5 KET LUAN cccccsssssssssssssessessssssesessssesessscssessscsesesscsesesecsesesecseseseees 75

Trang 6

DANH MỤC HÌNH

Hình 1.1: Giao diện Facebook Live SE S11 1S SE S1 x22 3

Hình 1.2: Giao diện Youtube LIVe - - - c << c1 1111111111111 1 1111k khen, 6 Hình 2.1: Mô hình WebRTC cơ bản c6 1 11911199 19g ng key 11

Hình 2.2 : Những API chính của Web TÍC 1n ng ng re 13

Hình 2.3: Hàm lấy thiết bị từ JavasCrip( -¿- ¿©5522 2E‡E2EEEEzEeEErEerkrrerkrree 14

Hình 2.4 : Cấu trúc liên kết lưới +: +++cxt+ExttExtttkttttrrsrrrrrrrrrrrrrrree 18Hình 2.5 : Cấu trúc liên kết trỘn -:¿- +t++t2Ext2ExtEEkxrtkkttrtrtrkrrrrrrrrrrrrre 20Hình 2.6: Cấu trúc liên kết định tuyến -¿- + 2 2+E+E+E££E+E+E£EEzEeEeExzEererereee 21

Hình 3.1: Mô hình quan hỆ - - - + - E131 1133211111119 111 ng ng ket 24

Hình 3.2: Usecase tổng quát -¿- ¿5 ++2+2E+2EE2EE2EE2EEEE2E122123121 2121221 xe 28

Hình 3.3: Chức năng đăng Ky Q1 HH HH HH khu 39

Hình 3.4: Chức năng đăng nhập - c1 3122111311111 9111 5911111111 key 40

Hình 3.5: Chức năng đăng xuat - 5-22 S12 232152121121211211121111 1111 cxe 41

Hình 3.6: Chức năng tìm kiếm phiên livestream và streamer : :- 42

Hình 3.7: Chức năng tham gia phòng Sfr€am ¿+ + + ‡++++ssveexeeseeeesrs 43

Hình 3.8: Chức năng tạo phiên livestream TỚI - 555 5s ++++*£see+++seeess+ 44

Hình 3.9: Chức năng phát trực tiếp thông qua chia sẻ màn hình 45

Hình 3.10: Chức năng chỉnh sửa thông tin livestream - - «5< «+ s+ssveesx 46

Hình 3.11: Chức năng trò chuyện trong phòng stream -‹ s+++++<ssx++x 47

Hình 3.12: Chức năng theo dõi sfr€aTm€r + << E33 ** 1 +SESeerreeereeesre 48

Hình 3.13: Chức năng chia sẻ ÏIV€Sfr€aIm - c1 11+ 11139 11 111111 ven 49

Hình 3.14: Chức năng thống kê dữ liệu -¿2¿ 5 2©522S2+E£x+zxezzzzxezxez 50

Hình 4.1: Giao diện trang chủ khi chưa đăng nhập - 555cc 54

Hình 4.2: Giao diện trang chủ khi đã đăng nhập 5 5-5 + 3S x+ssvereses 54

Hình 4.3: Man hình đăng ký tài khoản - c1 332111131111 re 56 Hình 4.4: Màn hình đăng ký tài khoản thành công - 5 sex 56 Hình 4.5: Màn hình đăng nhập tài khoản - - - (5 S3 113k se 57 Hình 4.6: Màn hình đăng nhập thành công 55 <1 *+++*ssvverseseeeesrs 57

Trang 7

Hình 4.7: Nhập thông tin stream «5 211v ng ngư 59

Hình 4.8: Khởi tạo live stream thành cÔng - - << c +32 keeeeeeere 59

Hình 4.9: Màn hình các chế độ khi livestream - - - + SE EE£Ezt+xsErrrrerers 60

Hình 4.10: Màn hình quản lý bình luận - 5 5 2 SE keseesreeeesk 61

Hình 4.11: Màn hình lựa chọn màn hình dé chia sẻ 2-25 +5+x+EeEvEeEees 62

Hình 4.12: Màn hình đang chia sé màn hình ¿2S + 23+ +sevexssserrss 62

Hình 4.13: Màn hình thống kê - 2 - 2 +SE+E£EE+EEEESEEEEEEEEEEEEEEEEEEEErkrrrrkrree 63

Hình 4.14: Màn hình xem livestream từ phía VIeW€T ccẶ se 64

Hình 4.15: Chức năng theo dõi sfreaImer - - << s11 319 kg key 65 Hình 4.16: Chức nang chia sẻ ÏIvesfream c1 n1 S2 ng ve 66

Hình 4.17: Trò chuyện trong phòng Sfr€am - - - - << « s3 vs vrsesseeeere 67

Hình 4.18: Màn hình ở chế độ toi esceecccessscsneesneseseecstecseeesseesseeeseeeseesneenneesneeeneee 67Hình 4.19: Chức năng đăng Xuất -¿- 2- 52s S1EE2E£EE£EEEEEEEEEEEerkrrrrkrrrreree 68Hình 4.20: Sơ đồ phương pháp xây dựng ứng dụng ¿2 + ecs+s+£eczcsez 69Hình 4.21: Mô hình xây dựng tổng quan - ¿+ 2+ 2 2+E+E+E££EzE+Ee£zE+xerszxee 71Hình 4.22: Mô hình các client kết nối trong mạng RTC - 2 2 s+sz+s2 5+2 73

Trang 8

DANH MỤC BANG

Bảng 3.1: Quan hỆ US€TS G G5 1911 HT TH ng nh 25 Bảng 3.2: Quan hệ Streamm - - G 1 S99 TH ng vn 25 Bảng 3.3: Quan hệ Caf€OTV SH ng ket 26 Bảng 3.4: Quan hệ Category_ S†f€am - 2c 1 112g ng 26 Bảng 3.5: Quan hệ FFỌÏOW (G1 THn nu HH 27 Bảng 3.6: Quan hệ Record_ ViC€O - LH TH HH nhu 28 Bảng 3.7: Danh sách các UuS€C8§€ G1 HH ng ng ket 30

Bảng 3.8: Usecase đăng nhập - - - 2 122311122111 111 1 1 ng vn ng ky 31

Bảng 3.9: Usecase đăng Xuat c.ccccccscssessessssssssssessesssssssusssesessessssussusseesecsesussseaeeees 31

Bang 3.10: Usecase đăng Ky cọ ng 32

Bang 3.11: Usecase tìm kiếm phiên livestream và streamer - 2 25+: 33

Bảng 3.12: Usecase tham gia vào phịng stream - -< + esek 33

Bảng 3.13: Usecase tạo phiên ÏIvesfream THỚI - <5 21+ Eessveesek 34

Bang 3.14: Usecase thực hiện truyền trực tiếp thơng qua chia sẻ màn hình 35

Bảng 3.15: Usecase trị chuyện trong phịng sfream -‹ «+ ++++sssess+ 35 Bang 3.16: Usecase theo dõi S{T€aTm€T - - - 5 111113391111 1113991111 re 36

Bảng 3.17: Usecase chia sẻ ÏIV€SfT€am - << 11113 1k vn 37

Bang 3.18: Usecase chỉnh sửa thơng tin Ïivestream - - «se seeereee 37

Bang 3.19: Usecase thống kê dữ liệu -¿- - 52 S22E+E£E£E2EEEE2EEEEEErkrrrrrrkee 38

Bảng 4.1: Khái quát các màn hình của ứng dụng - 5+ s+sssseeess 53

Bang 4.2: Cac chức năng trên giao diện trang chủ - «+ xcs+veseeeese 55 Bang 4.3: Chức năng trên man hình đăng nhập/đăng ky .- «+ S«+ 58

Bang 4.4: Các chức nang tạo ÏIV€S{T€AT - S1 ng ng re 60

Bang 4.5: Các chức năng về chế độ khi livestream - - 2 2 s+se£szszzss+2 61

Bang 4.6: Chức năng bình luận - 5 1 133211113211 115511 11 111 9v ng key 62

Bảng 4.7: Chức năng chia sẻ màn hình - ¿+ +1 13323 EE+sseeeereeeeeesrs 63

Bang 4.8: Chức năng thống kê - ¿©2- ES E219 EE2EEEEE1212111 2121121211 ce 64

Bang 4.9: Chức năng nhận thơng tin livestream của VI€W€T sex 65

Trang 9

DANH MỤC TU VIET TAT

API: Application Programming Interface

DTLS: Datagram Transport Layer Security

ICE: Interactive Communication Establishment

NAT: Network Address Translation

RTC: Real-Time Communications

SCTP: Stream Control Tranmission Protocol

SIP: Session Initiation Protocol

SDP: Session Description Protocol

SRTP: Secure Real Time Protocol

STUN: Simple Traversal Of UDP Through NAT

TCP: Transmission Control Protocol

TURN: Traversal Using NAT Relay

MCU: Multipoint Conferencing Unit

SFU: Selective Forwarding Unit

Trang 10

TOM TAT KHÓA LUẬN

Trong thời đại phát triển các thiết bị điện tử đã sản sinh ra nhiều loại hình giải trí cho

con người Trong đó livestream là một trong những nền tang phát triển vượt trội vìđược người dùng đón nhận đông đảo Vì thế việc phát triển, nâng cấp các app, websitelivestream là lẽ tất yếu

Dé giải quyết nhu cầu này nên tác giả đã tìm hiểu, nghiên cứu và xây dựng thànhcông nền tảng streaming trực tuyến cho phép người dung trao nhận thông tin nhanh,

với số lượng tiếp nhận đông đảo theo thời gian thực

Đề thực hiện điều này, tác giả đã áp dụng công nghệ WebRTC, các công nghệ hỗ trợkhác, để tiến hành hoàn thành khóa luận

Khóa luận gồm có 5 chương với các nội dung chính sau:

* Chương 1: Mở đầu

* Chương 2: Cơ sở lý thuyết

* Chương 3: Phân tích thiết kế hệ thống

* Chương 4: Xây dựng hệ thong

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

Trang 11

trong những nền tảng phát triển vượt trội vì được người dùng đón nhận đông đảo Vì

thế việc phát triển, nâng cấp các app, website livestream là lẽ tất yếu

1.3 Tìm hiểu các ứng dụng hiện có

1.3.1 Facebook Live

Facebook Live là tính năng truyền trực tiếp của mạng xã hội Facebook, chophép người dùng truyền tải video trực tiếp từ điện thoại di động hoặc máy tinh cánhân Với Facebook Live, người dùng có thể chia sẻ và tương tác với khán giả theothời gian thực thông qua bình luận Day là một trong những tinh năng phổ biến nhấtcủa Facebook và đã thu hút được sự quan tâm của nhiều người dùng và các nhà phát

Trang 12

người đang theo dõi mình Người xem sẽ đề lại những bình luận trong livestream mà

bạn có thé giải đáp ngay lập tức Đây là nền tảng livestream nổi tiếng được nhiều

người sử dụng hiện nay Người dùng khá da dạng như: người nổi tiếng, bán hàng

online, phát trực tiếp trò chơi điện tu,

- Tính năng nỗi bật:

+ Truyền tải video trực tiếp

+ Tương tac thời gian thực

+ Thông báo cho người theo dõi

+ Ghi lại luồng trực tiếp và chia sẻ

+ Đa nền tảng và tích hợp

+ Thống kê và phân tích

- Các giao thức được sử dụng trong Facebook Live

+ RTMPS (Real-Time Messaging Protocol Secure): Facebook Live sử dụng

giao thức RTMPS để truyền trực tiếp RTMPS là phiên bản bảo mật của giao thức

Trang 13

RTMP (Real-Time Messaging Protocol), nó sử dụng kết nối mã hóa SSL/TLS dé đảmbảo an toàn và bảo mật trong quá trình truyền tải đữ liệu video RTMPS giúp ngănchặn các cuộc tấn công va bảo vệ nội dung video trực tiếp trên Facebook Live khỏi

sự can thiệp trái phép.

+ DASH (Dynamic Adaptive Streaming over HTTP): Facebook Live cũng sử

dụng công nghệ DASH dé cung cấp trải nghiệm xem video trực tiếp tốt hơn cho người

dùng DASH là một giao thức truyền tải video linh hoạt, cho phép nội dung video

được phân chia thành các đoạn nhỏ và điều chỉnh tỷ lệ bit tuỳ thuộc vào tốc độ mạngcủa người xem Điều này giúp tối ưu hóa chất lượng video và giảm thiểu sự gián đoạnkhi xem video trực tiếp trên Facebook Live

1.3.2 Youtube Live

YouTube Live là một tính năng trực tuyến của nền tảng chia sẻ video YouTube,

cho phép người dùng truyền tải video trực tiếp và tương tác với khán giả trong thờigian thực Với YouTube Live, người dùng có thé phát sóng sự kiện trực tiếp, chia sẻkiến thức, diễn đạt ý tưởng và tạo kết nối với khán giả trên toàn thé giới

- Một số chức năng chính của Youtube Live bao gồm:

+ Phát sóng trực tiếp: cho phép người dùng tạo và phát sóng trực tiếp video với

chất lượng cao và tính năng tương tác với người xem

+ Tương tác trong phòng stream: người xem có thé tương tác với người phát

sóng trực tiếp bằng cách chat và đặt câu hỏi

+ Quản lý và xem lại video: cho phép người dùng quản lý các video phát sóng

trực tiếp, bao gồm chỉnh sửa, xóa và lưu trữ lại các video trên kênh của mình

+ Thống kê và báo cáo: cung cấp cho người dùng các thống kê và báo cáo về

lượng truy cập, tương tác của người xem và các hoạt động khác.

+ Đa nền tảng: Youtube Live cho phép người dùng phát sóng từ các thiết bị

khác nhau như máy tính, điện thoại và máy tính bảng.

Trang 14

+ Tiếp cận đến lượng khán giả rộng lớn: với hơn 2 tỷ người dùng hàng tháng,

Youtube Live cung cap khả năng tiêp cận đên người xem trên toàn câu.

- Giống như Facebook Live, Youtube Live cũng sử dụng các giao thức RTMPS

và DASH để thực hiện việc truyền phát trực tiếp Ngoài ra, Youtube Live còn sử dunggiao thức HLS (HTTP Live Streaming) dé phát trực tiếp trên nền tảng của ho HLS

là giao thức phát trực tuyến được phát triển bởi Apple và đã trở thành một tiêu chuẩn

phô biến trong ngành truyền thông phát trực tiếp Khi người dùng phát trực tiếp trên

Youtube Live, hình ảnh và âm thanh được mã hóa và chia thành các phân đoạn

(segments) nhỏ Các phân đoạn này được tải lên các máy chủ trung gian của Youtube

và sau đó truyền tải đến người xem thông qua giao thức HTTP Mỗi phân đoạn được

tải xuống và phát lại trên máy người xem, cho phép việc tự động điều chỉnh chất

lượng video dựa trên điêu kiện mạng của người xem.

You look li

3S Thanks for Ara:

Trang 15

iu WewabiGalaxy awesome

Hình 1.2: Giao diện Youtube Live

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

Đề tài này sẽ tìm hiéu về giao thức WebRTC và phương pháp xây dựng hệ thong

truyền tải video trực tuyến, nhằm tối ưu hóa chất lượng video (độ trễ, hình ảnh, âm

thanh, ) để đáp ứng nhu cầu của người đùng trong việc xem video trực tuyến

Đây sẽ là một nền tảng livestream đa dang hạng mục theo sở thích người dùng,

điều này tránh gây nhàm chán khi hiện nay các trang web streaming đang cạnh tranh

khá mạnh Do đó, nghiên cứu này chú trọng vào chất lượng thật sự từ hình ảnh, tốc

độ, âm thanh,

1.5 _ Đối tượng và phạm vi sử dụng

Phục vụ cho mọi đối tượng có nhu cầu truyền đạt thông tin và thu nhận thông

tin qua nền tảng streaming trực tuyến

Do đặc trưng các nên tảng livestream luôn đặt ra mục tiêu thu hút nhiêu người xem (viewer) và người livestream (streamer) nhât có thê nên phạm vi sử dụng của sản phâm là toàn câu.

Trang 16

Các đặc điểm chính của Spring Boot:

e Tự cấu hình: Spring Boot giúp tự động cấu hình ứng dụng dựa trên quy ước

mặc định và các thư viện tự động cung cấp Điều này giup giảm thiểu việc cấu hình

thủ công và tăng khả năng linh hoạt trong việc xây dựng ứng dụng.

e Hỗ trợ các chuẩn và các thư viện tích hợp sẵn: Spring Boot tích hợp và hỗ trợcác chuẩn phô biến trong ngành như Servlet, JPA (Java Persistence API), JDBC (JavaDatabase Connectivity) và nhiều công nghệ khác Nó cung cấp các khung làm việc

dé phát triển ứng dụng web, RESTful APIs, xử lý dữ liệu và nhiều lĩnh vực khác

® Microservices-ready: Spring Boot ho trợ kiên trúc microservices bang cach

cung cấp các tính năng như giảm độ trễ, khả năng mở rộng dễ dàng, quản lý tài

nguyên, khả năng triển khai và quản lý các dich vụ độc lập

e Tích hop Spring ecosystem: Spring Boot được tích hợp chặt chẽ với các dự án

khác trong hệ sinh thai Spring như Spring Data, Spring Security, Spring Cloud va

Spring Integration Điều nay giúp người phát triển dé dang sử dung và tích hợp các

thành phan của Spring dé phát triển các ứng dụng phức tap.

1 “Spring Boot - Introduction”

https://www.tutorialspoint.com/spring boot/spring boot introduction.htm

Trang 17

e Cộng đồng hỗ trợ mạnh mẽ: Spring Boot có một cộng đồng lớn và sôi động,với nhiều tài liệu, ví dụ và nguồn tư vấn trực tuyến Điều này giúp người dùng tìmkiếm thông tin, giải đáp câu hỏi và chia sẻ kinh nghiệm với nhau một cách dễ dàng.

2.1.2 Ưu điểm

Các ưu điểm chính của Spring Boot bao gồm:

e Dễ sử dung và triển khai nhanh chóng: Spring Boot cung cấp các cau hình mặcđịnh và tập trung vào sự tiện ích dé giảm thiểu công việc cấu hình và triển khai ứngdụng Điều này giúp người phát triển nhanh chóng xây dựng ứng dụng và tập trung

vào logic kinh doanh quan trọng hon.

e Tự động cấu hình: Spring Boot có khả năng tự động cấu hình dựa trên quy ướcmặc định và phân tích các thư viện đã được sử dụng Điều này giúp giảm thiêu công

việc cau hình thủ công và đảm bảo tính nhất quán trong các ứng dụng

e Hỗ trợ tốt cho việc tích hợp: Spring Boot tích hợp dé dang với các công nghệ

và thư viện phô biến khác như Spring Data, Spring Security, Hibernate, và nhiéu nén

tang cơ sở dữ liệu khác Điều này giúp người phat trién tiết kiệm thời gian và công

sức khi tích hợp các thành phần phức tạp vào ứng dụng

e Kiến trúc microservices: Spring Boot hỗ trợ xây dựng kiến trúc microservices

thông qua các tính năng như khả năng mở rộng dễ dàng, quản lý tài nguyên, và tích

hợp tốt với Spring Cloud Điều này giúp phát triển và quản lý các dịch vụ độc lập một

cách hiệu quả.

e Không có các file cấu hình XML.

e Dễ dàng truy cập vào cơ sở dữ liệu và các dịch vụ hang đợi như MySQL,

Oracle, MongoDB, Redis, ActiveMQ và các dịch vụ khác Spring Boot cung cấp cácmodule và thư viện để tương tác với cơ sở dit liệu quan hệ như MySQL thông qua

Spring Data JPA, giúp đơn giản hóa việc thao tác dit liệu và xử lý truy van SQL.

Ngoài ra, Spring Boot cũng hỗ trợ kết hợp với các cơ sở dữ liệu phi quan hệ như

Trang 18

MongoDB, Redis và các hệ thống dich vụ hàng đợi như ActiveMQ dé có thé làm việc

dễ dàng với chúng trong ứng dụng.

2.1.3 Nhược điểm

e Phức tạp với các ứng dụng lớn: Mặc dù Spring Boot giúp giảm thiểu công việc

cấu hình, nhưng với các ứng dụng lớn và phức tạp, cấu hình có thê trở nên phức tạp

hơn và đòi hỏi hiệu biệt sâu về framework.

e Có thể có khối lượng lớn các tùy chọn cấu hình: Spring Boot cung cấp nhiềutùy chọn cấu hình, và việc lựa chọn đúng có thể là một thách thức Người phát triểncần có hiểu biết rõ về các tùy chon này dé tận dụng hết tiềm năng của Spring Boot

e Có thể gặp khó khăn với các phiên bản cũ: Khi sử dụng các phiên bản cũ của

Spring Boot, bạn có thể gặp khó khăn trong việc tìm kiếm hỗ trợ và tài liệu đầy đủ

Vì vậy, nên luôn sử dụng phiên bản mới nhất để tận dụng các cải tiễn và sự hỗ trợ từcộng đồng

2.2 React

2.2.1 Giới thiệu

React? còn được gọi là Reactjs — là một thư viện JavaScript mã nguồn mở, được

phát triển bởi Facebook, nhằm xây dựng giao diện người dùng đáp ứng các tương táctrên các ứng dụng web React giúp người phát triển xây dựng giao diện người dùnglinh hoạt, dễ bảo trì và có hiệu suất cao Với sự phát triển nhanh chóng và sự hỗ trợmạnh mẽ từ cộng đồng, React đã trở thành một công nghệ phổ biến trong lĩnh vực

phát triển web.

2.2.2 Ưu điểm

e Hiệu suất cao: React sử dụng Virtual DOM và cập nhật giao diện chỉ khi cần

thiết, giúp tối ưu hiệu suất của ứng dụng Thay vì cập nhật toàn bộ DOM, React chỉ

2 “React - A JavaScript library for building user interfaces” https://reactjs.org/

Trang 19

cập nhật các thành phần có thay đổi, giúp giảm độ trễ và tối ưu hóa trải nghiệm người

dùng.

e Tái sử dụng thành phan: React cho phép phát triển giao diện thành từng thành

phần độc lập Các thành phần này có thê được tái sử dụng trong ứng dụng hoặc giữacác dự án khác nhau, giúp tiết kiệm thời gian phát triển và tăng khả năng bảo trì

e Quản lý trạng thái dé dàng: React giúp quan lý trạng thái của ứng dụng một

cách dé dàng thông qua các thành phan có trạng thái (stateful components) Quan lýtrạng thái tập trung và sử dụng các khái niệm như Props và State, giúp kiểm soát và

tái sử dụng dữ liệu trong ứng dụng một cách hiệu quả.

e Hệ sinh thái mạnh mẽ: React đi kèm với một hệ sinh thái phong phú gồm nhiều

công cụ va thư viện phụ trợ như React Router, Redux, React Native, Next.js va nhiéuthư viện khác Điều này giúp mở rộng khả năng phat triển, hỗ trợ cho các tinh năng

và yêu cầu đa dạng trong ứng đụng

® Cộng đồng và tài liệu đa dạng: React có một cộng đồng lớn và nhiệt huyết,

cung cấp nhiều tài liệu, ví dụ và hỗ trợ trực tuyến Điều này giúp người phát triển tìmkiếm thông tin, giải đáp câu hỏi va chia sẻ kinh nghiệm một cách dé dang

2.2.3 Nhược điểm

e Quản lý trạng thái phức tạp: Với ứng dụng lớn va phức tap, quản ly trạng thái

có thê trở nên phức tạp và khó khăn Người phát triển cần có kế hoạch và kiến thức

để quản lý trạng thái một cách hiệu quả, đề tránh sự phức tạp và khó bảo trì trong quátrình phát triển

e_ Một số tinh năng phụ thuộc bên ngoài: React tập trung vào việc xây dựng giaodiện người dùng, trong khi các tính năng khác như định tuyến (routing) và quản lýtrạng thái có thể phụ thuộc vào các thư viện và công cụ bên thứ ba Điều nảy có théđòi hỏi sự học hỏi và tích hợp với các công nghệ khác dé đáp ứng các yêu cầu cu thé

của ứng dụng.

10

Trang 20

2.3 Công nghệ WebRTC

2.3.1 Tống quan về WebRTC

2.3.1.1 Khái niệm

WebRTC là viết tắt của Web Real-Time Communication Đây là giao thức

truyền tải đữ liệu, âm thanh, hình ảnh theo thời gian thực và là công nghệ tiên tiến,

mạnh mẽ, đột phá trong lĩnh vực truyền phát trực tuyến.

thời gian thực giữa các trình duyệt và thiết bị Một trong những ưu điểm chính củaWebRTC là không yêu cau bat ky plugin trình duyệt hoặc phần mềm thứ ba nào làmđiều kiện tiên quyết WebRTC hiện đang được hỗ trợ bởi hầu hết các nhà cung cấptrình duyệt hàng đầu như Safari, Google Chrome, Firefox, Opera và nhiều nhà cungcấp khác Với công nghệ phát trực tuyến video của WebRTC, có thê nhúng videotheo thời gian thực trực tiếp dựa trên trình duyệt, tạo ra trải nghiệm phát trực tuyến

tương tác và hấp dẫn cho khán giả mà không cần lo lăng về độ trễ.

11

Trang 21

2.3.1.2 Lịch sử hình thành

Real-time Communication, hay RTC, là một trong những phần khó khăn nhất

của web Nó cho phép giao tiếp bằng âm thanh và video giữa các cá nhân

Chúng ta cần tương tác với nhau, đặc biệt sau đại dịch Covid-19, bất kế vềkhoảng cách hay địa lý Do đó, RTC đã trở thành phương thức giao tiếp mới của

chúng ta RTC trước đây rất phức tạp, đòi hỏi sự cấp phép hoặc phát triển nội bộ các

công nghệ âm thanh và hình ảnh đắt tiền Việc tích hợp công nghệ RTC với nội dung,

đữ liệu và dịch vụ hiện có đã gặp khó khăn rất lớn và tốn thời gian, đặc biệt là trênInternet

Với việc ra mắt tinh năng trò chuyện video trong Gmail vào năm 2008, Google

đã gia nhập thị trường trò chuyện video Hangouts ban đầu là một phần của Google+

và được Google giới thiệu vào năm 2011 Năm 2013, Hangouts đã trở thành một sản

phẩm độc lập Google rat quan tâm đến các đôi mới về RTC Ho đã mua lại GIPS,một công ty phát triên nhiều thành phần liên quan đến RTC như codec và phươngpháp hủy tiếng vọng Dé đạt được sự nhất quán trong ngành, Google đã công bốcông nghệ mở nguồn được GIPS phát triển và làm việc cùng các tô chức tiêu chuan

như World Wide Web Consortium (W3C) va Internet Engineering Task Force

(IETF) Khi Ericsson tao ra ban trién khai WebRTC dau tién vao tháng 5 năm 2011,

đó là một cột mốc quan trọng đánh dấu tương lai của ngành truyền thông Mục tiêu

của WebRTC là xây dựng một phương pháp giao tiếp thời gian thực bằng video, âmthanh và dữ liệu mà không cần sử dụng plugin

RTC được sử dụng bởi nhiều dịch vụ web như Skype, Facebook và Hangouts,nhưng dé sử dung chúng, người dùng thường cần tải xuống, cài đặt ứng dụng gốc

hoặc plugin Quá trình tải xuống, cài đặt và cập nhật plugin có thể khó khăn Các

3 “Are the WebRTC components from Google’s acquisition of Global IP Solutions?”

Trang 22

plugin thường gặp lỗi và hoạt động không tốt Sử dụng plugin cũng có thể đòi hỏi cáccông nghệ hoặc giấy phép đắt tiền Thuyết phục mọi người tải xuống một plugin cũngkhá khó khăn Với giả định rằng các API phải là mã nguồn mở, miễn phí, tiêu chuanhóa và tích hợp sẵn vào trình duyệt web, WebRTC đã được phát triển.

2.3.1.3 Các API chính

©

WebRTC

MediaStream

(getUserMedia) RTCPeerConnection RTCDataChannel

Cấp quyền truy cập Một interface Cung cấp phương pháp

vào máy ảnh và/hoặc micro cấu hình trỏ chuyện thiết lập đường truyền

của thiết bị và cắm video hoặc audio dữ liệu ngang hàng

tín hiệu vào kết nối RTC giữa các trinh duyệt

các thiết bị đầu vào như webcam và micro dé truyền dữ liệu hình anh va âm thanh

Có hai loại đầu vào và đầu ra trong một MediaStream Đầu ra được sử dụng bởiRTCPeerConnection hoặc dé hién thị màn hình, trong khi đầu vào thu thập dữ liệu

âm thanh và hình ảnh từ nguồn cục bộ Người dùng có thể yêu cầu truy cập vào thiết

bị nhập liệu bằng cách sử dụng API getUserMedia của JavaScript dé tạo một

MediaStream với các track chứa dữ liệu phương tiện Ngoài các track âm thanh và

video, MediaStream cũng có thé bao gồm các track bổ sung Hàm getUserMedia yêu

câu ba đôi sô:

13

Trang 23

e Mot hàm gọi lại khi thành công

e Một hàm gọi lại khi thất bại

e Một đối tượng ràng buộc

eee

-getUserMedia = avigat -getUserMedia;

var constraints = { audio: fa ; Video: t b sắn

var video = d ent.querySelector("video");

getUserMedia đến một phan tử âm thanh hoặc video ké từ phiên bản 25

RTCPeerConnection là một phan quan trọng của WebRTC, cho phép tạo kếtnối giữa các máy tính cục bộ và các máy tinh từ xa Nó cung cấp các phương thức dé

kết nối với máy tính từ xa, duy trì kết nối đó và kiểm soát nó, và cho phép ngắt kết

nối khi không còn cần thiết

Một thành phần của WebRTC gọi là RTCDataChannel cho phép truyền dữliệu không hạn chế giữa các máy tính trong môi trường ngang hàng Có nhiều ứngdụng cho API này, bao gồm truyền tập tin, trò chuyện trực tiếp và trò chơi trực tuyến.Ngoài ra, API cung cấp một loạt các chức năng để tận dụng đầy đủ khả năng của

RTCPeerConnection.

14

Trang 24

e Bao mật tích hợp san dựa trên DTLS và kiểm soát tắc nghẽn.

e Chức năng chia nhóm đa kênh đồng thời với độ ưu tiên

e Thiết lập phiên RTCPeerConnection

Ngay cả khi cần sử dụng máy chủ chuyền tiếp TURN, RTCDataChannel vẫn có

thé nhanh hơn WebSocket vì giao tiếp xảy ra trực tiếp giữa các trình duyệt

2.3.1.4 Tính năng nỗi bật của WebRTC

e_ Giao tiếp video, âm thanh và dữ liệu thời gian thực giữa các thiết bị được thực

hiện bang cách sử dụng WebRTC mà không cần sử dung plugin hoặc các ứng dụng

khác.

e WebRTC không chỉ được sử dụng cho các ứng dụng, mà còn cho phép phat

triển các trò chơi trực tuyến Đề tham gia trò chơi, người chơi chi cần sử dụng một

trình duyệt tương thích hỗ trợ WebRTC, không cần cài đặt phần mềm bổ sung

2.3.1.5 Ưu điểm

Khi xây dựng hệ thống phát trực tiếp, giao thức WebRTC mang đến những lợi

ích sau so với các giao thức khác như RTMP, HLS và DASH:

e_ Phát trực tuyến video với độ trễ thấp: WebRTC cho phép phát trực tuyến video

với độ trễ chỉ 0,5 giây hoặc thấp hơn

¢ Dự án mã nguồn mở và miễn phí: WebRTC là một giải pháp truyền thông thờigian thực hoàn toàn miễn phí và có sẵn trên tất cả các trình duyệt, theo như Google

đã đề cập

e Không cần phần mềm hoặc plugin từ bên thứ ba: WebRTC không yêu cau sửdụng phần mềm hoặc plugin từ bên thứ ba, mang lại sự tiện lợi, tốc độ và tiết kiệm

chi phí.

e Bao mật âm thanh và video: Sử dụng giao thức SRTP (Secure Real-Time

Transport Protocol) để mã hóa và xác thực dữ liệu truyền tải, giúp ngăn chặn việcđánh cắp thông tin âm thanh và video trong quá trình truyền tải

15

Trang 25

e Hỗ trợ đa nền tảng: WebRTC đã hoạt động tốt trên hầu hết các trình duyệt và

hệ điều hành khác nhau, mặc dù nó vẫn đang trong quá trình phát triển

e Don giản trong việc sử dụng: Bang cách sử dụng các API JavaScript và các

Framework sẵn có, WebRTC có thé được tích hợp dễ dàng vào các dịch vụ trực tuyến.

e Tận dụng băng thông một cách hiệu quả: WebRTC sử dụng băng thông một

cách hiệu quả và hoạt động tốt trong mọi môi trường mạng, có khả năng làm việc với

nhiều loại phương tiện và thiết bị kết ni

2.3.1.6 Nhược điểm

e WebRTC không phải là một công nghệ mới, nhưng hiện tại nó vẫn đang được

phát triển và cải tiến Điều này cho thấy việc hỗ trợ cho các nhà phát triển vẫn đanggap khó khăn, và tài liệu liên quan vẫn còn thiếu

e© Ung dụng sử dụng WebRTC có thê hoạt động kém hon do trình duyệt hỗ trợ

số lượng và sự đa dạng các API WebRTC khác nhau Do đó, các lập trình viên phải

đầu tư nhiều thời gian và nỗ lực để tùy chỉnh trang web hoặc ứng dụng của họ để hoạtđộng trên mọi trình duyệt Việc này có thể làm tăng khả năng xảy ra lỗi

2.3.2 WebRTC Server

2.3.2.1 WebRTC Server là gì

WebRTC Server là máy chủ cụ thể được sử dụng trong kiến trúc WebRTC để

hỗ trợ giao tiếp trực tuyến thời gian thực qua Internet giữa các thiết bị Việc thiết lập

và duy trì các kết nối ngang hàng (P2P) sử dụng giao thức WebRTC phải được máychủ này thực hiện giữa các trình duyệt hoặc ứng dụng.

Máy chủ WebRTC thực hiện các nhiệm vụ như quản lý luồng truyền

(streaming), bảo vệ dữ liệu an toàn thông qua việc sử dụng các g1ao thức và kỹ thuật

mã hóa phù hợp, và trung gian giao tiếp (signaling) giữa các bên dé truyền thông tin

về kết nối, chăng hạn như cung cấp địa chỉ IP và thông tin định danh Các máy chủnày cung cấp các công cụ và giao diện lập trình ứng dung (API) dé phát triển và triển

khai các ứng dụng giao tiếp thời gian thực dựa trên WebRTC

16

Trang 26

2.3.2.2 Các loại may chủ WebRTC

- WebRTC application servers: máy chu ứng dụng WebRTC là máy chủ dùng

dé lưu trữ các ứng dụng và trang web triển khai bang công nghệ WebRTC

- WebRTC signaling servers: là máy chủ quản lý các kết nối giữa các thiết bị.Máy chủ này không quan tâm đến lưu lượng truyền thông truyền qua nó; việc truyềntín hiệu (signaling) là ưu tiên chính của nó Điều này bao gồm việc cho phép ngườidùng phát hiện người dùng khác trên mạng, thiết lập kết nối, thiết lập lại kết nối nếucần thiết và kết thúc kết nối Các giao thức signaling phổ biến trong WebRTC baogồm Session Initiation Protocol (SIP), Interactive Connectivity Establishment (ICE),

va trung gian WebRTC (WebRTC Gateway).

- NAT traversal servers for WebRTC: Một kỹ thuật mạng máy tính được gọi

là NAT traversal (điều hướng qua NAT) được sử dụng dé tạo và duy trì các kết nốigiao thức Internet qua các gateway sử dụng NAT Nhiều ứng dụng mạng, như chia

sẻ tap tin ngang hang (peer-to-peer file sharing) va Voice over IP (gọi điện qua IP), đòi hỏi các giải pháp NAT traversal.

- WebRTC media servers: là phần mềm trung gian đa phương tiện (multimedia

middleware) năm giữa hai đầu cuộc giao tiếp và xử lý lưu lượng truyền thông khi nó

đi chuyền từ một bên sang bên kia MCU (Multipoint Conferencing Unit) là một loại

máy chủ truyền thông có thé xử lý các luồng truyền thông và phân phối chúng cho

nhiều người nhận khác nhau Các loại máy chủ truyền thông khác bao gồm việc trộn(chuyền đổi nhiều luồng đầu vào thành một luông tổng hợp duy nhất), chuyển đổi mã

hóa (thích nghi mã hóa và định dạng giữa các peers không tương thích) và ghi lại

luồng phương tiện (lưu trữ vĩnh viễn các phương tiện trao đổi giữa các bên)

17

Trang 27

2.3.3 Cấu trúc liên kết đa bên

2.3.3.1 Cấu trúc liên kết lưới (Mesh Topology)

Mesh Topology là một cấu trúc liên kết cho các ứng dụng đa bên Trong cấutrúc liên kết này, mọi client tham gia gửi luồng phương tiện của mình và nhận lạiphương tiện từ các client khác Mesh là một kỹ thuật rất phô biến trong việc xây dựng

các ứng dụng thời gian thực WebRTC nhỏ gọn (như ứng dụng video call, hội họp

trực tuyến) và cũng là kỹ thuật dễ triển khai nhất vì không yêu cầu bất kỳ máy chủ

trung gian nào.

Trong cấu trúc liên kết lưới, do mỗi máy khách phải liên tục truyền và nhận dữ

liệu đa phương tiện từ tất cả máy khách khác trong cùng phiên nên điều này sẽ dẫnđến việc tiêu tốn lượng lớn băng thông Do đó cấu trúc này không phù hợp đề áp dụngvào việc triển khai một hệ thống streaming trực tiếp, nơi mà yêu cầu khả năng phục

vụ một lượng lớn người xem (viewers).

œ

=⁄271%+

18

Trang 28

Ưu điểm của mesh:

e Chi phí vận hành thấp: các nhà phát triển có thé tiết kiệm chi phí cho thànhphan máy chủ vì không bắt buộc phải dùng máy chủ dé đóng vai trò trung gian truyền

dữ liệu Chi phí lớn nhất trong WebRTC thông thường là băng thông

e Chỉ cần triển khai WebRTC ở phía máy khách

Nhược điểm của mesh:

e Chỉ một số lượng hạn chế người tham gia (4-6 người) có thé kết nối với nhau

e Vì mỗi người tham gia gửi phương tiện cho nhau nên yêu cầu N-1 uplinks và

N-1 downlinks, với N là số người tham gia

2.3.3.2 Cầu trúc liên kết trộn (Mixing Topology) và MCU (Multipoint

Conferencing Unit)

Mixing Topology là một cấu trúc liên kết da bên trong đó mỗi máy khách gửi

luồng phương tiện của mình đến máy chủ trung tâm và nhận luồng phương tiện duynhất từ máy chủ đó sau khi máy chủ trộn (mixing) tất cả (hoặc một số) luồng mà nó

nhận được Máy chủ trung tâm này được gọi là MCU (Multi-Conference Unit).

Máy chủ MCU sẽ thực hiện việc trộn các luồng phương tiện mà nó nhận được

và trả về một luéng phương tiện duy nhất, điều này đồng nghĩa rang máy chủ MCUphải giải mã, sắp xếp và mã hóa lại phương tiện từ tat cả các máy khách tham gia Do

đó, cấu trúc liên kết này đòi hỏi một lượng lớn tài nguyên xử lý từ máy chủ trung tâm,

vì vậy nó không phù hợp dé triển khai một hệ thống phát trực tiếp (live streaming)

19

Trang 29

Ưu điểm của Mixing Topology:

e Chỉ cần triển khai WebRTC ở phía client

e Mỗi client chỉ có một uplink và một downlink.

Nhược điểm của Mixing Topology:

e Bởi vì máy chủ MCU thực hiện giải mã va mã hóa phương tiện của từng client,

nên yêu cầu công suất xử lý cao dẫn đến chi phí dat đỏ.

2.3.3.3 Cấu trúc liên kết định tuyến (Routing Topology) và SFU (Selective

Forwarding Unit)

Routing Topology là một cấu trúc liên kết đa bên trong đó mỗi máy khách gửiluồng phương tiện của mình đến máy chủ trung tâm và nhận tất cả các luồng phương

tiện từ các máy khách khác thông qua máy chủ đó Máy chủ trung tâm này được gọi

là SFU (Selective Forwarding Unit).

20

Trang 30

Trong cau trúc định tuyến, mỗi máy khách sử dụng máy chủ SFU dé phân phối

phương tiện truyền đến các máy khách khác, giúp giảm tải lưu lượng và băng thôngtrên đường truyền lên

Cơ chế định tuyến cũng giúp giảm công việc của máy chủ bằng cách loại bỏ yêu

cầu giải mã, sắp xếp và mã hóa lại các luồng phương tiện được gửi tới tất cả các máykhách Vi vậy, cấu trúc định tuyến này phù hợp dé triển khai một hệ thống phát trực

tiếp (live streaming)

SZ

Hình 2.6: Cầu trúc liên kết định tuyến

Ưu điểm của Routing Topology:

e Máy chủ SFU đòi hỏi ít công suất xử lý hơn máy chủ MCU, điều này giúp

giảm thiểu chi phí khi vận hành hệ thống

e Mỗi client có một uplink và nhiều downlinks: làm giảm tắc nghẽn và đạt được

tốc độ bit cao hơn, phù hợp với hệ thống live streaming

21

Trang 31

Nhược điểm của Routing Topology:

e Yêu cầu máy chủ định tuyến phụ trợ, mặc dù ít tốn kém hơn mixing topology.

2.4 Websocket

2.4.1 Khái niệm

WebSocket* là một giao thức truyền tải dữ liệu hai chiều thông qua một kết nối

mạng đơn duy nhất giữa server va client Nó cung cấp một phương thức dé các ứng

dụng web gửi và nhận dữ liệu thời gian thực một cách hiệu qua, thay vì phải sử dụng

các phương pháp truyền thống như HTTP

2.4.2 Các đặc trưng của Websocket

e Kết nối hai chiều: WebSocket cho phép truyền dif liệu từ máy chủ đến client

và ngược lại một cách đồng thời, không cần thiết lập lại kết nối

e Thời gian thực: Dữ liệu được truyền tải ngay lập tức và có khả năng cập nhật

dữ liệu trực tiếp trên giao điện người dùng

e_ Giao thức độc lập: WebSocket không ràng buộc với bat kỳ giao thức nào khác

e Tích hợp dé dàng: WebSocket dễ dàng tích hợp vào các ứng dung web hiện

có và hỗ trợ trên hầu hết các trình duyệt hiện đại

5 | Fette - Google, Inc., A Melnikov - Isode Ltd., “The WebSocket Protocol”, December 2011.

https://datatracker.ietf.org/doc/html/rfc6455

22

Trang 32

2.4.4 Nhược điểm

e Khả năng mở kết nối: WebSocket yêu cầu máy chủ và client hỗ trợ và duy tri

két nôi liên tục, điêu này có thê tạo áp lực về tài nguyên máy chủ và mạng.

e Hạn chế hỗ trợ: Một số trình duyệt cũ không hỗ trợ hoặc hỗ trợ không day đủ

cho WebSocket, điều này có thể gây khó khăn trong việc triển khai trên môi trường

đa nên tảng.

23

Trang 33

Chương 3 PHAN TÍCH THIẾT KE HE THONG

3.1 Mô hình quan hệ

+ Bang Users: Users (user 1d, username, email, avatar_url, password, isLive,

role)

Tân từ: mỗi dòng trong bang Users tương ứng với từng người dùng trong hệ

thông, gôm một mã sô user_id duy nhât phân biệt với các user khác

THUỘC TÍNH KIEU DU LIEU | RÀNG BUỘC

1 user_id Mã số user INT Khóa chính

2 username Tên đăng nhập VARCHAR(255) | NOT NULL

3 email Email VARCHAR(255) | NOT NULL

4 avatar_url Duong dan anh | VARCHAR(255) Không có

đại diện

24

Trang 34

5 password Mật khẩu VARCHAR(255) | NOT NULL

6 isLive Trang thái trực | BIT NOT NULL

tiếp

7 role Phân quyền VARCHAR(20) | NOT NULL

Bang 3.1: Quan hé users

+ Bang Stream: Stream (stream_id, stream_name, description, status,

start_time, end_time, user_id)

Tân từ: mỗi dòng trong bang Stream tương ứng với từng luồng stream mà người

dùng tạo ra, gôm một mã sô stream_ 1d duy nhât đê phân biệt với các stream khác

STT | THUỘC TÍNH | MÔ TẢ KIEU DU LIEU | RÀNG BUỘC

| stream_id Mã số stream INT Khóa chính

2 stream_name Tén stream VARCHAR(255) | NOT NULL

3 description M6 ta stream VARCHAR(255) | Không có

4 status Trang thai phat | VARCHAR(255) | NOT NULL

25

Trang 35

+ Bang Category: Category (category_id, name, description)

Tân từ: mỗi dòng trong bang Category tương ứng với từng danh mục của stream

và video record, gồm một mã số category_¡d duy nhất dé phân biệt với các category

STT | THUỘC TÍNH | MÔ TẢ KIEU DU LIEU | RÀNG BUỘC

1 category_id Mã số category INT Khóa chính

2 name Tên category VARCHAR(255) | NOT NULL

3 description M6 ta category VARCHAR(255) | Không có

Bảng 3.3: Quan hệ Cafegory

+Bang Category_Stream: Category_ Stream (stream_id, category_ 1d)

Tân từ: quan hệ Category_Stream là mối quan hệ nhiều - nhiều của Category và

Stream, mỗi Stream có thể có nhiều Category và mỗi Category có thể thuộc về nhiều

Stream

STT | THUỘC TÍNH | MÔ TẢ KIEU DU LIỆU | RÀNG BUỘC

1 stream_id Mã số stream INT Liên kết đến

bảng Stream

2 category_id Mã số category INT Liên kết đến

bảng Category Bang 3.4: Quan hệ Category_Stream

+ Bang Follow: Follow (follow_id, follower_id, following_id)

Tân từ: mỗi dòng trong bang follow đại diện cho mối quan hệ theo dõi giữa một

user với một user khác, gôm một mã sô follow_id duy nhat.

26

Trang 36

STT | THUỘC TÍNH | MÔ TẢ KIEU DU LIỆU | RANG BUỘC

1 follow_id Mã sé follow INT Khóa chính

2 follower_1d Mã số người | INT Khóa ngoại

+ Bang Record_Video: Record_Video (record_1d, record_url, record_name,

start_time, end_time, stream_id)

Tân từ: mỗi dòng trong bang Record Video tương ứng với các thông tin của

một video được ghi lại sau khi kết thúc một buôi phát trực tiếp

STT | THUỘC TÍNH | MÔ TẢ KIEU DU LIỆU | RÀNG BUỘC

1 record_id Mã số video được | INT Khóa chính

ghi lại

2 record_name Tên video VARCHAR(255) |NOTNULL

3 record_ url Đường dẫn đến | VARCHAR(255) | NOT NULL

nơi chứa video

4 start_time Thoi gian bat dau | VARCHAR(255) | NOT NULL

ban ghi

27

Trang 37

5 end_time Thời gian kết thúc | VARCHAR(255) | NOT NULL

bản ghi

6 stream_id Mã số stream INT Khóa ngoại

lên kết đến

bảng Stream

Bảng 3.6: Quan hệ Record_ Video

3.2 Sơ đồ trường hợp sử dụng của ứng dụng (Use case diagram)

3.2.1 Use-case tong quát

Tìm kiếm phiên livestream và

streamer

Tham gia vao phong stream

Tạo phiên live stream mới es Cees >

hực hiện truyền trực tiếp thong

<<include>> ar :

Theo dõi streamer - <<include>>

Chia sẻ live stream

Thống kê dữ liệu

Hình 3.2: Usecase tổng quát

28

Trang 38

3.2.2 Danh sách các use-case của hệ thông

STT | Usecase

Usecase đăng nhập Người dùng đăng nhập vào hệ thống

Usecase đăng xuất Người dùng đăng xuất khỏi hệ thống

Usecase đăng ky Người dùng đăng ky tai khoản

Usecase tìm kiêm phiên | Người dùng truy cập vào hệ thông và tìm

livestream và streamer kiêm phiên livestream hoặc streamer tùy

thích

Usecase tham gia vào phòng | Người dùng lựa chọn phòng stream mình

stream thich va nhan tham gia

Usecase tao phiên livestream | Người dùng truy cập vào hệ thống và thực

mới hiện tạo phiên livestream mới

Usecase thực hiện truyền trực | Người dùng sau khi tạo phiên livestream thitiếp thông qua chia sẻ màn | chọn chế độ truyền trực tiếp thông qua chia

Trang 39

Usecase theo dõi streamer Người dùng theo dõi streamer yêu thích

Usecase chia sẻ live stream | Người dùng chia sẻ livestream lên các nên

- Mô tả: Người dùng nhập tên đăng nhập và mật khâu Hệ thống kiểm tra tính

hợp lệ của thông tin đăng nhập

- Điều kiện trước: Không có

- Điều kiện sau: Nếu đăng nhập thành công, hệ thống lưu thông tin đăng nhập,người dùng sẽ thực hiện được các tính năng của website Ngược lại, nếu đăng nhập

sai hệ thống sẽ báo đăng nhập không thành công

- Luông sự kiện:

Hành động của tác nhân Phản ứng của hệ thống

Truy cập website và ấn vào biểu tượng | Chuyển đến trang đăng nhập chứa form

đăng nhập đăng nhập gồm: tên đăng nhập, mật

khâu và nút “Đăng nhập”

30

Trang 40

Người dùng nhập tên đăng nhập và mật

khâu sau đó nhân nút “Đăng nhập”

Hệ thống tiến hành kiểm tra thông tin

người dùng nhập trong CSDL:

+ Nếu người dùng nhập đúng thì hệ

thống xác nhận thành công, người dùng

duoc sử dụng các tính năng của website

+ Nếu người dùng nhập sai thì hệ thống

báo lỗi và chờ người dùng nhập lại

Bang 3.8: Usecase đăng nhập

3.2.2.2 Usecase đăng xuất

- Tác nhân: Tat cả người dùng

- Mô tả: Người dùng đăng xuất khỏi tài khoản đang đăng nhập

- Điều kiện trước: Người dùng đã đăng nhập thành công vào hệ thống

- Điều kiện sau: Người dùng không được sử dụng các tính năng của website liênquan đến đăng nhập như tạo phiên livestream mới, chia sẻ màn hình, chỉnh sửa thông

tin livestream, trò chuyện trong phòng stream, theo dõi streamer, thống kê dữ liệu

- Luông sự kiện:

Hành động của tác nhân Phản ứng của hệ thống

Nhân vào biêu tượng người dùng trên

website và chọn đăng xuât

Hiển thị thông báo xác nhận đăng xuất

+ Nếu đồng ý thì quay lại màn hình đăng

nhập

+ Nếu không đồng ý thì tắt thông báo và

giữ nguyên trạng thái hiện tại

Bảng 3.9: Usecase đăng xuất

3l

Ngày đăng: 02/10/2024, 04:45

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] "Building an Application with Spring Boot," [Online]. Available:https://spring.io/guides/gs/spring-boot/. [Accessed 28 3 2023] Sách, tạp chí
Tiêu đề: Building an Application with Spring Boot
[2] "WebRTC 1.0: Real-Time Communication Between Browsers," [Online].Available: https://www.w3.org/TR/webrtc/. [Accessed 15 3 2023] Sách, tạp chí
Tiêu đề: WebRTC 1.0: Real-Time Communication Between Browsers
[3] "WebRTC API," [Online]. Available: https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API. [Accessed 28 3 2023] Sách, tạp chí
Tiêu đề: WebRTC API
[4] "WebRTC Servers and Multiparty Communication in WebRTC," [Online].Available: https://antmedia.io/webrtc-servers/. [Accessed 15 4 2023] Sách, tạp chí
Tiêu đề: WebRTC Servers and Multiparty Communication in WebRTC
[5] "WebRTC samples," [Online]. Available: https://webrtc.github.io/samples/.[Accessed 28 3 2023] Sách, tạp chí
Tiêu đề: WebRTC samples
[6] "Java - One to many video call," [Online]. Available: https://doc- kurento.readthedocs.io/en/6.18.0/tutorials/java/tutorial-one2many.html.[Accessed 30 3 2023] Sách, tạp chí
Tiêu đề: Java - One to many video call
[7] "Building REST © services with Spring," [Online]. Available:https://spring.io/guides/tutorials/rest/. [Accessed 20 4 2023] Sách, tạp chí
Tiêu đề: Building REST © services with Spring
[8] "Build the backend services needed for a WebRTC app,” [Online]. Available:https://web.dev/webrtc-infrastructure/. [Accessed 20 4 2023] Sách, tạp chí
Tiêu đề: Build the backend services needed for a WebRTC app

HÌNH ẢNH LIÊN QUAN

Hình 1.2: Giao diện Youtube Live - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Hình 1.2 Giao diện Youtube Live (Trang 15)
Hình 2.3: Ham lấy thiết bị từ Javascript Các trình duyệt dựa trên Chromium hiện có thé truyền dữ liệu âm thanh từ getUserMedia đến một phan tử âm thanh hoặc video ké từ phiên bản 25. - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Hình 2.3 Ham lấy thiết bị từ Javascript Các trình duyệt dựa trên Chromium hiện có thé truyền dữ liệu âm thanh từ getUserMedia đến một phan tử âm thanh hoặc video ké từ phiên bản 25 (Trang 23)
Hình 2.6: Cầu trúc liên kết định tuyến - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Hình 2.6 Cầu trúc liên kết định tuyến (Trang 30)
Bảng 3.3: Quan hệ Cafegory - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Bảng 3.3 Quan hệ Cafegory (Trang 35)
Bảng 3.5: Quan hệ Follow + Bang Record_Video: Record_Video (record_1d, record_url, record_name, start_time, end_time, stream_id) - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Bảng 3.5 Quan hệ Follow + Bang Record_Video: Record_Video (record_1d, record_url, record_name, start_time, end_time, stream_id) (Trang 36)
Bảng Users - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
ng Users (Trang 36)
Bảng 3.6: Quan hệ Record_ Video - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Bảng 3.6 Quan hệ Record_ Video (Trang 37)
Bảng Stream - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
ng Stream (Trang 37)
Hình sẻ màn hình - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Hình s ẻ màn hình (Trang 38)
Bảng 3.13: Usecase tạo phiên livestream mới - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Bảng 3.13 Usecase tạo phiên livestream mới (Trang 43)
Hình ảnh người dùng chia sẻ sẽ hién thi lên màn hình và được phát đến tất cả - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
nh ảnh người dùng chia sẻ sẽ hién thi lên màn hình và được phát đến tất cả (Trang 44)
3.3. Sơ đồ tuần tự (Sequence Diagram) - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
3.3. Sơ đồ tuần tự (Sequence Diagram) (Trang 48)
Hình desktop hoặc kết hợp chia sẻ màn hình desktop và webcam - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Hình desktop hoặc kết hợp chia sẻ màn hình desktop và webcam (Trang 54)
Hình 3.11: Chức năng tro chuyện trong phòng stream - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Hình 3.11 Chức năng tro chuyện trong phòng stream (Trang 56)
Hình 3.12: Chức năng theo dõi streamer - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng nền tảng streaming trực tuyến
Hình 3.12 Chức năng theo dõi streamer (Trang 57)

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

TÀI LIỆU LIÊN QUAN