1. Trang chủ
  2. » Thể loại khác

ĐẠI HỌC ĐÀ NẴNGKHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNGBÁO CÁO THỰC ĐỒ ÁN CƠ SỞ 4ĐỀ TÀI: WEBSITE TRÒ CHUYỆN TRỰC TUYẾN

47 28 0

Đ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 47
Dung lượng 4,31 MB

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

Nội dung

Hiện nay các website và ứng dụng trò chuyện trực tuyến nhiều vô số kể,bên cạnh những ứng dụng thành công thì cũng không ít những dụng đã chết ngaykhi bắt đầu hoạt động vì không thể cạnh

Trang 1

ĐẠI HỌC ĐÀ NẴNG

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BÁO CÁO THỰC ĐỒ ÁN CƠ SỞ 4

ĐỀ TÀI: WEBSITE TRÒ CHUYỆN TRỰC TUYẾN

Đà Nẵng, tháng 12 năm 2019

Trang 2

MỞ ĐẦU

Những tiến bộ to lớn về công nghệ, đặc biệt là công nghệ thông tin trongnhững thập niên cuối của thế kỷ 20 đã tạo ra bước ngoặt mới cho sự phát triểnkinh tế xã hội toàn cầu Nhu cầu trao đổi thông tin, liên lạc giữa con người vì thếngày càng tăng cao Để đáp ứng nhu cầu đó, những website, ứng dụng di độnggiúp con người trao đổi, liên lạc trực tuyến xuất hiện ngày một nhiều

Nhắc đến ứng dụng trao đổi thông tin, liên lạc thì không thể không nhắcđến những gã khổng lồ như Messenger của Facebook, Zalo của Việt Nam, và vô

số những ứng dụng khác trên thị trường Mỗi ứng dụng đều có điểm mạnh và yếuriêng của mình Chung quy lại, chức năng chính của những ứng dụng này là đểgửi nhận tin nhắn văn bản, hình ảnh hoặc tệp đính kèm Một số ứng dụng sẽ cóchức năng hội thoại, thậm chí là trò chuyện bằng video

Điểm mạnh của ứng dụng trò chuyện trực tuyến đó là tính tiện lợi, nhanhchóng và tiết kiệm Chỉ cần có internet, mọi thông tin hay tệp dữ liệu của bạn cóthể gửi đến bất cứ đâu, bất cứ lúc nào với tốc độ cực kỳ nhanh Không cần tốntiền gửi thư, gửi bưu phẩm, hay phải chờ hàng tháng trời để nhận được thư vàphản hồi

Hiện nay các website và ứng dụng trò chuyện trực tuyến nhiều vô số kể,bên cạnh những ứng dụng thành công thì cũng không ít những dụng đã chết ngaykhi bắt đầu hoạt động vì không thể cạnh tranh nổi với những ứng dụng mạnh mẽtrước đó

Trang 3

LỜI CẢM ƠN

Để hoàn thành đồ án cơ sở 4 này trước tiên em xin gửi đến các quý thầy

cô giáo khoa Công nghệ thông tin và Truyền thông lời cảm ơn chân thành vàsâu sắc nhất

Đặc biệt, em xin gửi đến thầy kỹ sư Lê Song Toàn - người đã tận tìnhhướng dẫn, giúp đỡ em hoàn thành báo cáo đồ án cơ sở 4 này lời cảm ơn sâu sắcnhất Cảm ơn thầy đã giúp đỡ em trong việc lựa chọn đề tài, tài liệu tham khảo,hướng tiếp cận và giúp em chỉnh sửa những thiếu sót trong quá trình hoàn thànhbáo cáo đồ án

Dù đã cố gắng hoàn thành đề tài trong phạm vi và khả năng cho phépnhưng chắc chắn sẽ không tránh khỏi những thiếu sót Em rất mong nhận được

sự thông cảm, góp ý và tận tình chỉ bảo của quý thầy cô

Em xin chân thành cảm ơn!

Trang 4

NHẬN XÉT (Của giảng viên hướng dẫn)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Đà Nẵng, ngày … tháng … năm 20…

Giảng viên hướng dẫn

KS Lê Song Toàn

Trang 5

MỤC LỤC

Chương 1: 7

GIỚI THIỆU 7

1.1 Tổng quan: 7

1.1.1 Bối cảnh thực hiện đề tài: 7

1.1.2 Vấn đề cần giải quyết: 7

1.1.3 Đề xuất nội dung thực hiện: 7

1.2 Phướng pháp, kết quả: 7

1.2.1 Phướng pháp: 8

1.2.2 Kết quả: 8

1.3 Cấu trúc đồ án: 8

Chương 2: 10

NGHIÊN CỨU TỔNG QUAN 10

2.1 Giới thiệu tổng quan về trò chuyện trực tuyến: 10

2.2 Một số ưu và nhược điểm của trò chuyện trực tuyến: 10

2.2.1 Ưu điểm: 10

2.2.2 Nhược điểm: 11

2.3 Một số ứng dụng trò chuyện trực tuyến tiêu biểu: 11

2.3.1 Facebook Messenger: 11

2.3.2 Zalo: 11

2.4 Tổng quan về các công nghệ và mô hình sử dụng trong dự án: 11

2.4.1 Javascript: 11

2.4.2 Jquery: 13

2.4.3 NodeJs: 14

2.4.4 MongoDB: 15

2.4.5 Socket.IO: 17

2.4.6 Giao thức TCP/IP: 18

Chương 3: 22

PHÂN TÍCH THIẾT KẾ HỆ THỐNG 22

3.1 Mô hình tổng quan: 22

3.1.1 Mục đích: 22

3.1.2 Phạm vi: 22

3.2 Xác định các tác nhân: 22

3.2.1 Xác định các Actor (Tác nhân): 22

Trang 6

3.2.2 Biểu đồ Use Case: 22

3.2.3 Danh sách Use Case: 23

3.2.4 Đặc tả Use Case: 24

3.3 Biểu đồ lớp: 28

3.3.1 Biểu đồ lớp theo mô hình MVC: 29

3.3.2 Mô tả biểu đồ: 29

3.4 Biểu đồ hoạt động: 31

3.4.1 Hoạt động truy cập: 31

3.4.2 Hoạt động trò chuyện: 32

3.5 Biểu đồ tuần tự: 32

3.5.1 Biểu đồ tuần tự đăng nhập: 33

3.5.2 Biểu đồ tuần tự đăng ký: 33

3.5.2 Biểu đồ tuần tự kết bạn: 34

3.6 Biểu đồ thành phần: 34

3.7 Biểu đồ triển khai: 34

Chương 4: 36

TRIỂN KHAI XÂY DỰNG 36

4.1 Mô tả chi tiết các chức năng: 36

4.1.1 Đăng nhập: 36

4.1.2 Đăng ký: 36

4.1.3 Thay đổi hồ sơ người dùng: 36

4.1.4 Thay đổi mật khẩu: 36

4.1.5 Kết bạn: 36

4.1.6 Xóa bạn: 37

4.1.7 Tạo nhóm trò chuyện: 37

4.1.8 Gửi tin nhắn văn bản: 37

4.1.9 Gửi hình ảnh: 37

4.1.10 Gửi tệp đính kèm: 37

4.1.10 Trò chuyện video: 37

4.1 Giao diện và hướng dẫn sử dụng: 38

Trang 7

Chương 1:

GIỚI THIỆU1.1 Tổng quan:

1.1.1 Bối cảnh thực hiện đề tài:

Trong quá trình phát triển xã hội, công nghệ thông tin đã và đang phát triểnmạnh mẽ, ngày càng thâm nhập sâu, trở thành một công cụ hỗ trợ đắc lực cho conngười trong mọi lĩnh vực

Nhu cầu liên lạc, trao đổi thông tin giữa người với người ngày càng tăngcao và cần thiết Dựa trên xu thế phát triển của xã hội cũng như nhu cầu thiết thựccủa con người, website trò chuyện trực tuyến ra đời

1.1.2 Vấn đề cần giải quyết:

Để đáp ứng nhu cầu liên lạc trực tuyến, chạy theo xu hướng phát triển của

xã hội Một website, ứng dụng trò chuyện trực tuyến cần đáp ứng được những yêucầu thiết yếu như trò chuyện văn bản, trao đổi hình ảnh, tệp dữ liệu, hay thậm chí

là thực hiện các cuộc hội thoại bằng giọng nói hay trò chuyện bằng hình ảnh trựctuyến (video chat) Vấn đề thứ nhất cần giải quyết là đảm bảo ứng có đủ các chứcnăng cần thiết

Một website, ứng dụng trò chuyện muốn được người dùng đón nhận cầnphải hoạt động ổn định và dễ sử dụng Một điều cực kỳ quan trọng nữa đó là bảomật và an toàn thông tin cũng như dữ liệu của người dùng Vấn đề thứ hai là tính

ổn định và bảo mật của website

Hiện nay các website và ứng dụng trò chuyện trực tuyến nhiều vô số kể,bên cạnh những ứng dụng thành công thì cũng không ít những dụng đã chết ngaykhi bắt đầu hoạt động vì không thể cạnh tranh nổi với những ứng dụng mạnh mẽtrước đó Vấn đề thứ ba là khả năng marketing và cạnh tranh của ứng dụng

1.1.3 Đề xuất nội dung thực hiện:

Thực hiện khảo sát và nghiên cứu về thị trường, nhu cầu cung ứng củamảng này Nghiên cứu, tham khảo các ứng dụng đã có, những điểm mạnh và yếu

Vì sao ứng dụng đó thành công hoặc thất bại Rút ra được những bài học từ nhữngngười đi trước

1.2 Phướng pháp, kết quả:

1.2.1 Phướng pháp:

Trang 8

Nghiên cứu thị trường, tham khảo những ứng dụng đã có sẵn Tiếp thuđiểm mạnh và loại bỏ điểm yếu.

Thực hiện nghiên cứu những công nghệ, công cụ cần sử dụng để thực hiện

dự án Lựa chọn những công nghệ tối ưu và hiện đại nhất để bắt kịp xu thế pháttriển không ngừng của công nghệ hiện nay

Sau khi đã nắm bắt được công nghệ và hướng đi, bắt tay vào lập kế hoạchtriển khai dự án, đứa ra những công việc cụ thể cần thực hiện Tiến hành phân tíchthiết kế, chỉ những rủi ro, tính khả thi cũng như bất khả thi của những công việccần thực hiện

Sau khi phân tích, tiến hành thiết kế cơ sở dữ liệu, thiết kế giao diện vàtừng bước hoàn thiện, ghép nối dự án thành sản phẩm hoàn chỉnh

Sau khi có sản phẩm hoàn chỉnh, tiến hành thử nghiệm và chỉnh sửa, cậpnhật những sai sót

Cuối cùng là tổng kết và đưa ra hướng phát triển trong tương lai

1.2.2 Kết quả:

Nghiên cứu và học hỏi từ những ứng dụng nổi bật như Zalo, Messenger.Nghiên cứu và học tập được các công nghệ mới, được áp dụng để pháttriển ứng dụng như Socket.io, WebRTC…

Sau quá trình thực hiện, kết quả thu được là một ứng dụng trò chuyện trựctuyến với các chức năng:

 Trò chuyện văn bản giữa hai cá nhận

 Trao đổi hình ảnh giữa hai cá nhân

 Gửi tệp dữ liệu giữa hai cá nhân

 Trò chuyện video giũa hai cá nhân

 Trò chuyện văn bản giữa một nhóm gồm nhiều thành viên

 Trao đổi hình ảnh giữa một nhóm gồm nhiều thành viên

 Gửi tệp dữ liệu giữa một nhóm gồm nhiều thành viên

Bên cạnh đó, vẫn còn tồn tại một vài hạn chế như chưa thể trò chuyệnvideo giữa một nhóm nhiều thành viên

Trang 9

 Giới thiệu về ứng dụng: Những công nghệ, mô hình sử dụng.

o Biểu đồ use case: đặc tả use case, danh sách use case

o Biểu đồ lớp: biểu đồ lớp theo mô hình MVC, mô tả biểu đồ

o Biểu đồ tuần tự: biểu đồ hoạt động truy cập, biểu đồ hoạt động thựchiện các chức năng…

o Biểu đồ thành phần

o Biểu đồ triển khai

Triển khai xây dựng:

 Xây dựng cở sở dữ liệu

 Xây dựng giao diện

 Kết hợp thành sản phẩm hoàn thiện

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

 Nhìn nhận, đánh giá những điểm được và chưa được trong quá trình thựchiện dự án Rút kinh nghiệm lần sau

 Hoạch định ra hướng phát triển trong tương lai

Trang 10

Chương 2:

NGHIÊN CỨU TỔNG QUAN2.1 Giới thiệu tổng quan về trò chuyện trực tuyến:

Trò chuyện trực tuyến (hay nhắn tin nhanh, tin nhắn tức khắc, chát –

từ chat trong tiếng Anh, IM viết tắt của Instant Messaging), là dịch vụ cho phép

hai người trở lên nói chuyện trực tuyến với nhau qua một mạng máy tính

Mới hơn IRC, nhắn tin nhanh là trò chuyện mạng, phương pháp nói chuyệnphổ biến hiện nay Nhắn tin nhanh dễ dùng hơn IRC, và có nhiều tính năng hay,như khả năng trò chuyện nhóm, dùng biểu tượng xúc cảm, truyền tập tin, tìm dịch

vụ và cấu hình dễ dàng bản liệt kê bạn bè

Nhắn tin nhanh đã thúc đẩy sự phát triển của Internet trong đầu thậpniên 2000

Có nhiều cách để thực hiện nhắn tin nhanh, thông qua các dịch vụnhư IRC, hay các dịch vụ của Yahoo!, Microsoft, do nhắn tin nhanh hỗ trợ rấtnhiều giao thức khác nhau Một số người dùng bị giới hạn vì sử dụng ứng dụngkhách chỉ truy cập một giao thức/mạng IM, như MSN hay Yahoo!

Một giao thức phổ biến đó là giao thức XMPP (Jabber) Đây là giao thức

mở, an toàn, và máy chủ nào hỗ trợ giao thức này đều có thể kết nối được vớinhau Ứng dụng khách Jabber có khả năng truy cập mọi giao thức/mạng IM: MSNMessenger, Yahoo!, AIM, ICQ, Gadu-Gadu, ngay cả IRC và SMS Chỉ mộtchương trình Jabber có thể nói chuyện với bạn bè trên mọi mạng

Có một số ứng dụng khách Jabber là phần mềm tự do đa nền tảng và đãdịch sang tiếng Việt Psi, Gaim và JWChat Cũng có Gossip dành cho hệ điềuhành Linux/UNIX

Ứng dụng nhắn tin nhanh có khả năng VoIP, nói chuyện trực tiếp qua máytính, như điện thoại

2.2 Một số ưu và nhược điểm của trò chuyện trực tuyến:

2.2.1 Ưu điểm:

 Khá dễ dàng tiếp cận và sử dụng

 Tính tiện dụng cao, có tể sử dụng mọi lúc mọi nơi thông qua internet

 Tốc độ truyền tải nhanh, có thể truyền tải được nhiều dạng dữ liệu khácnhau như văn bản, âm thanh, hình ảnh…

Trang 11

 Độ phổ biến rộng rãi.

 Tích hợp cho nhiều nền tảng cả smartphone (Android, iOS) và máy tính(Window, MacOS, Linux, Ubuntu)

2.2.2 Nhược điểm:

 Phụ thuộc vào internet

 Chưa đảm bảo được tính bảo mật và an toàn thông tin khi sử dụng

2.3 Một số ứng dụng trò chuyện trực tuyến tiêu biểu:

2.3.1 Facebook Messenger:

Facebook Messenger là dịch vụ và ứng dụng phần mềm tin nhắn tức thờichia sẻ giao tiếp bằng ký tự và giọng nói Được tích hợp trên ứng dụng chat củaFacebook và được xây dựng trên giao thức MQTT

Messenger cho phép người dùng Facebook trò chuyện với bạn bè trên cả diđộng và trang web chính Được tích hợp trên ứng dụng Chat (trò chuyện) củaFacebook và được xây dựng trên giao thức MQTT, Messenger cho phép ngườidùng Facebook trò chuyện với bạn bè trên cả di động và trang web chính

Kể từ khi Messenger được tách ra hẳn khỏi Facebook như một ứngdụng độc lập, Facebook đã không ngừng cải tiến và mở rộng khả năng của nó.Messenger hiện nay có thể giúp ta thực hiện gọi video miễn phí như FaceTime,chia sẻ vị trí hiện tại với bạn bè, gửi tiền và rất nhiều tính năng khác nữa

Các công ty gần đây cũng đã bắt đầu sử dụng Messenger để hỗ trợ kháchhàng, khiến ứng dụng này trở thành một công cụ thông tin hằng ngày vô cùng hữuhiệu cho rất nhiều người trên thế giới

2.3.2 Zalo:

Zalo là một dịch vụ OTT (viết tắt của over the top - là thuật ngữ chỉ những

dữ liệu được cung cấp trên nền tảng Internet nhưng không một nhà cung cấpmạng hay bất kỳ tổ chức nào có thể can thiệp tới) Zalo từng lọt top ứng dụngđược nhiều người tải về nhất Cũng như Facebook, Zalo cho phép người dùng cóthể nhắn tin, gọi điện trò chuyện cùng bạn bè một cách miễn phí ở bất cứ đâu Đặcbiệt ứng dụng này do người Việt tạo ra và được phát triển bởi Vinagame

Zalo là từ kết hợp của Zing và Alo (câu thường được nói khi nghe máy ởViệt Nam)

Ứng dụng Zalo xuất hiện trên thị trường vào 08/08/2012 và đến tháng12/2012 thì ứng dụng nhắn tin thuần Việt này bắt hoạt động ổn định và dần phổbiến tại thị trường Việt Nam, hạ gục nhiều đối thủ đáng gờm trước đó

2.4 Tổng quan về các công nghệ và mô hình sử dụng trong dự án:

Trang 12

2.4.1 Javascript:

a Javascript là gì?

JavaScript là một ngôn ngữ lập trình đa nền tảng (cross-platform), ngôn

ngữ lập trình kịch bản, hướng đối tượng JavaScript là một ngôn ngữ nhỏ vànhẹ (small and lightweight) Khi nằm bên trong một môi trường (hostenvironment), JavaScript có thể kết nối tới các object của môi trường đó vàcung cấp các cách quản lý chúng (object)

 Ngôn ngữ lập trình Javascript được giới thiệu đầu tiên vào năm 1995 Mụcđích là để đưa những chương trình vào trang web ở trình duyệt NetscapeNavigator - một trình duyệt web phổ biến những năm 1990

 JavaScript được phát triển bởi Brendan Eich tại Hãng truyền thôngNetscape với cái tên đầu tiên là Mocha, rồi sau đó đổi tên thành LiveScript,

và cuối cùng thành JavaScript Có lẽ việc đổi tên như vậy là để giúpJavaScript được chú ý nhiều hơn Bởi tại thời điểm này, Java đang đượccoi là một hiện tượng và trở nên phổ biến

 Trên thực tế, JavaScript không được phát triển dựa trên Java Và chúng làhai ngôn ngữ hoàn toàn khác biệt

b Đặc điểm của Javascript:

 Là ngôn ngữ lập trình bậc cao (high-level) giống như: C/C++, Java,Python, Ruby, Nó rất gần với ngôn ngữ tự nhiên của con người Trongkhi ngôn ngữ lập trình bậc thấp (low-level) như: Assembly sẽ gần vớimáy tính hơn

 Là ngôn ngữ lập trình động (dynamic programming language): nhưPython, Ruby, Perl, Chúng được tối ưu hoá nhằm nâng cao hiệu suất cholập trình viên Trong khi ngôn ngữ lập trình tĩnh (static programminglanguage): như C/C++, lại được tối ưu hoá để nâng cao hiệu suất chophần cứng máy tính

 Là ngôn ngữ lập trình kịch bản (scripting language): nghĩa là không cầnbiên dịch (compile) hay liên kết (linked) giống như ngôn ngữ lập trình biêndịch (C/C++, Java, ) mà nó sẽ được dịch tại thời điểm chạy

 Là ngôn ngữ dựa trên đối tượng (object-based): tức nó gần giống như ngônngữ lập trình hướng đối tượng, ngoại trừ JavaScript không hỗ trợ tính kếthừa và đa hình

 Là ngôn ngữ dựa trên nguyên mẫu (prototype-based): là một kiểu của lậptrình hướng đối tượng, trong đó các hành vi của đối tượng được sử dụnglại

Trang 13

 Một số database sử dụng JavaScript như là kịch bản và là ngôn ngữ query:MongoDB, CouchDB.

 JavaScript có thể dùng để xây dựng ứng dụng Desktop với framework:Electron Những ứng dụng nổi tiếng có thể kể đến là: Atom, Visual StudioCode, GitKraken, Wordpress.com,

 Để xây dựng ứng dụng điện thoại đa nền tảng (Android, IOS) có thể dùng:React-native

d Khuyết điểm của Javascript:

 Dễ bị khai thác

 Có thể được dùng để thực thi mã độc trên máy tính của người dùng

 Nhiều khi không được hỗ trợ trên mọi trình duyệt

b Ưu điểm của Jquery:

Dễ sử dụng: Đây là lợi thế chính khi sử dụng jquery, nó dễ dàng hơn so

với nhiều thư viện javascript chuẩn khác bởi cú pháp đơn giản và bạn chỉ phải viết ít dòng lệnh để tạo ra các chức năng tương tự Chỉ với 10 dòng lệnh JQuery bạn có thể thay thế cả 20 chục dòng lệnh DOM javaScript, tiếtkiệm thời gian của người lập trình

Là một thư viện lớn của javascript: Thực thi được nhiều chức năng hơn

so với các thư viện jascript khác

Cộng đồng mã nguồn mở mạnh mẽ (một số plugin jquery có sẵn):

JQuery đang còn tương đối mới, có một cộng đồng dành thời gian của họ

để phát triển các plugin của JQuery Như vậy có hàng trăm plugin được viết trước đó có sẵn để tải về ngay lập tức để đẩy nhanh quá trình viết codecủa bạn Một lợi thế khác đằng sau này là hiệu quả và an toàn của các script

Có nhiều tài liệu và hướng dẫn chi tiết: Các trang web JQuery có một

toàn bộ tài liệu và hướng dẫn để ngay cả một người mới bắt đầu lập trình cũng có thể làm được quả bóng lăn với thư viện jquery này

Hỗ trợ ajax: JQuery cho phép bạn phát triển các template Ajax một cách

dễ dàng Ajax cho phép một giao diện kiểu dáng đẹp trên website, các chức

Trang 14

năng có thể được thực hiện trên các trang mà không đòi hỏi toàn bộ trang được reload lại.

b Nhược điểm của Jquery:

Làm client trở nên chậm chạp: Client không những phải chỉ mình hiển

thị nữa mà còn phải xử lý nhiều chức năng được tạo thành từ jquery Nếulạm dụng quá nhiều jquery sẽ làm cho client trở nên chậm chạp, đặc biệtnhững client yếu Chính vì vậy mà lập trình viên phải dùng thêm cache

Chức năng có thể không có: JQuery đã có rất nhiều chức năng, tùy thuộc

vào yêu cầu trên trang web của bạn Nhưng nhiều chức năng vẫn chưađược phát triển, do đó bạn vẫn phải sử dụng javascript thuần để xây dựngchức năng này

2.4.3 NodeJs:

a Khái niệm:

Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng ở trên

Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứngdụng mạng một cách nhanh chóng và dễ dàng mở rộng

 Nodejs được xây dựng và phát triển từ năm 2009, bảo trợ bởi công tyJoyent, trụ sở tại California, Hoa Kỳ

 Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gianthực

 Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộngnhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất cóthể

b Những ứng dụng nên viết bằng Nodejs:

Rõ ràng, không phải cứ hot và mới là Nodejs làm gì cũng tốt, ví dụ nhưmột ứng dụng cần tính ổn định cao, logic phức tạp thì các ngôn ngữ PHP hayRuby… vẫn là sự lựa chọn tốt hơn Còn dưới đây là những ứng dụng có thể vànên viết bằng Nodejs:

Websocket server: Các máy chủ web socket như là Online Chat, Game

Server…

Fast File Upload Client: là các chương trình upload file tốc độ cao.

Ad Server: Các máy chủ quảng cáo.

Cloud Services: Các dịch vụ đám mây.

RESTful API: đây là những ứng dụng mà được sử dụng cho các ứng dụng

khác thông qua API

Any Real-time Data Application: bất kỳ một ứng dụng nào có yêu cầu về

tốc độ thời gian thực Micro Services: Ý tưởng của micro services là chia

Trang 15

nhỏ một ứng dụng lớn thành các dịch vụ nhỏ và kết nối chúng lại với nhau.Nodejs có thể làm tốt điều này.

c Những kết luận sai lầm về Nodejs:

Thứ nhất, Nodejs là một nền tảng (platform), không phải Web

Framework, cũng không phải ngôn ngữ lập trình

 Thứ hai, Nodejs không hỗ trợ đa luồng, nó là một máy chủ đơn luồng

Và một điều nữa, Nodejs không dành cho người mới tinh mà chưa biết gì

về lập trình, vì như đã nói ở trên, Nodejs không phải là ngôn ngữ lập trình, để học được Nodejs thì bạn cần phải biết về Javascript, kỹ thuật lập

trình, một số giao thức…

d Lý do để tự tin sử dụng Nodejs:

Các ứng dụng Nodejs được viết bằng javascript, ngôn ngữ này là một ngôn

ngữ khá thông dụng Theo tác giả của ngôn ngữ Javascript, Ryan

Dahl: “Javascript có những đặc tính mà làm cho nó rất khác biệt so với

các ngôn ngữ lập trình động còn lại, cụ thể là nó không có khái niệm về đa luồng, tất cả là đơn luồng và hướng sự kiện.”

 Nodejs chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiệnEvent-driven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả

 Có thể chạy ứng dụng Nodejs ở bất kỳ đâu trên máy Mac – Window –Linux, hơn nữa cộng đồng Nodejs rất lớn và hoàn toàn miễn phí Các bạn

có thể thấy cộng đồng Nodejs lớn như thế nào tại đây, các package đềuhoàn toàn free: https://www.npmjs.com/

 Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đathiết bị

e Những công ty lớn nào đang sử dụng Nodejs.

 Amazon, Ebay, Linkedin, Microsoft, Paypal, trello, Uber và còn nhiều cáitên nổi tiếng khác nữa Theo như Paypal thì sử dụng Nodejs làm giảm thờigian đáp ứng lên tới 35%

 Còn về phía Linkedin chuyển từ Ruby sang sử dụng Nodejs để xử lý cáctruy cập từ mobile, và con số Server sử dụng giảm từ 30 còn 3, nghĩa làgiảm gần 90%

Trang 16

Management System - Hệ quản trị cơ sở dữ liệu quan hệ) về tốc độ, tínhnăng, khả năng mở rộng,

 Với NoSQL bạn có thể mở rộng dữ liệu mà không lo tới những việc nhưtạo khóa ngoại, khóa chính, kiểm tra ràng buộc v.v

 NoSQL bỏ qua tính toàn vẹn của dữ liệu và transaction để đổi lấy hiệu suấtnhanh và khả năng mở rộng

 NoSQL được sử dụng ở rất nhiều công ty, tập đoàn lớn, ví dụ nhưFaceBook sử dụng Cassandra do FaceBook phát triển, Google phát triển và

hệ nên truy vấn sẽ rất nhanh

 Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan

hệ (như MySQL hay SQL Server ) sử dụng các bảng để lưu dữ liệu thì

với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng

So với RDBMS thì trong MongoDB collection ứng với table, còn document sẽ ứng với row , MongoDB sẽ dùng các document thay

cho row trong RDBMS

 Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phépcác dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định

 Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanhthông qua ngôn ngữ truy vấn MongoDB

c Ưu điểm của mongoDB:

 Do MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nênmỗi một collection sẽ có các kích cỡ và các document khác nhau, linhhoạt trong việc lưu trữ dữ liệu, nên bạn muốn gì thì cứ insert vào thoảimái

 Dữ liệu trong MongoDB không có sự ràng buộc lẫn nhau, không có joinnhư trong RDBMS nên khi insert, xóa hay update nó không cần phảimất thời gian kiểm tra xem có thỏa mãn các ràng buộc dữ liệu như trongRDBMS

 MongoDB rất dễ mở rộng (Horizontal Scalability) Trong MongoDB cómột khái niệm cluster là cụm các node chứa dữ liệu giao tiếp với nhau,khi muốn mở rộng hệ thống ta chỉ cần thêm một node với vào cluster:

 Trường dữ liệu “_id” luôn được tự động đánh index (chỉ mục) để tốc độtruy vấn thông tin đạt hiệu suất cao nhất

 Khi có một truy vấn dữ liệu, bản ghi được cached lên bộ nhớ Ram, đểphục vụ lượt truy vấn sau diễn ra nhanh hơn mà không cần phải đọc từ ổcứng

Trang 17

 Hiệu năng cao: Tốc độ truy vấn (find, update, insert, delete) củaMongoDB nhanh hơn hẳn so với các hệ quản trị cơ sở dữ liệu quan hệ(RDBMS) Với một lượng dữ liệu đủ lớn thì thử nghiệm cho thấy tốc độinsert của MongoDB có thể nhanh tới gấp 100 lần so với MySQL.

d Nhược điểm của mongoDB:

 Một ưu điểm của MongoDB cũng chính là nhược điểm của nó MongoDBkhông có các tính chất ràng buộc như trong RDBMS nên khi thao tác vớimongoDB thì phải hết sức cẩn thận

 Tốn bộ nhớ do dữ liệu lưu dưới dạng key-value, các collection chỉ khác vềvalue do đó key sẽ bị lặp lại Không hỗ trợ join nên dễ bị dữ thừa dữ liệu

 Khi insert/update/remove bản ghi, MongoDB sẽ chưa cập nhật ngay xuống

ổ cứng, mà sau 60 giây MongoDB mới thực hiện ghi toàn bộ dữ liệu thayđổi từ RAM xuống ổ cứng điêù này sẽ là nhược điểm vì sẽ có nguy cơ bịmất dữ liệu khi xảy ra các tình huống như mất điện

“keep-sự kiện, thay vì phải thực thi lại một loạt các thủ tục kết nối phức tạp nhưtrước, và ứng dụng của bạn sẽ trở thành ứng dụng thời gian thực ví dụ:Yahoo Messenger, Skype v.v… đều là các ứng dụng được xây dựng theo

mô hình Socket

 Trong lập trình web trước đây, việc xây dựng client-server theo mô hìnhsocket phải thông qua các phần mềm thứ Vì mô hình socket không phùhợp với các ngôn ngữ lập trình Server như: PHP, ASP.NET, JSP v.v… Cácngôn ngữ này luôn làm việc theo cách: Die ngay connection khi Server trảlời Client xong Tuy nhiên, mình nhấn mạnh: Chúng ta có thể làm đượcweb-socket với bất kỳ ngôn ngữ lập trình nào Chỉ có điều, với các ngônngữ cũ, việc làm này cần bạn phải am hiểu các giao thức http, tcp; hiểu thếnào là 1 request header, v.v…

 Socket là một điểm cuối (end-point) của liên kết truyền thông hai chiều(two-way communication) giữa hai chương trình chạy trên mạng Các lớpSocket được sử dụng để biểu diễn kết nối giữa client và server, được ràngbuộc với một cổng port (thể hiện là một con số cụ thể) để các tầng TCP(TCP Layer) có thể định danh ứng dụng mà dữ liệu sẽ được gửi tới

 Lập trình socket là lập trình cho phép người dùng kết nối các máy tínhtruyền tải và nhận dữ liệu từ máy tính thông qua mạng

Trang 18

 Hiểu đơn giản, socket là thiết bị truyền thông hai chiều gửi và nhận dữ liệu

từ máy khác

c Socket.IO là gì?

 Để xây dựng một ứng dụng realtime cần sử dụng socketio Socketio sẽ giúpcác bên ở những địa điểm khác nhau kết nối với nhau, truyền dữ liệu ngaylập tức thông qua server trung gian Socketio có thể được sử dụng trongnhiều ứng dụng như chat, game online, cập nhật kết quả của một trận đấuđang xảy ra,

 Socketio không phải là một ngôn ngữ, mà chỉ là 1 công cụ giúp thực hiệnnhững ứng dụng realtime Vì thế, không thể sử dụng socketio để thay thếhoàn toàn cho một ngôn ngữ, mà phải sử dụng kết hợp với một ngôn ngữkhác Ngôn ngữ đó có thể là php, asp.net, nodejs,

d Cơ chế hoạt động của socket.IO:

 Cơ chế hoạt động của một ứng dụng realtime đó là thông qua server để lắngnghe (listen) data và truyền data về các máy client Vì vậy cần cài khai báo

sử dụng socketio ở cả phía server và client

 Để lắng nghe data, ta sử dụng câu lệnh socket.on(), để phát dữ liệu thì sửdụng lệnh socket.emit()

 Ví dụ, client gửi 1 đoạn chat đi, thì khi đó ở phía server cần viết code đểnhận dữ liệu đoạn code đó và truyền dữ liệu chat đó đi đến các server khác.Đồng thời ở ở phía client cũng cần viết code để gửi và nhận dữ liệu từserver

2.4.6 Giao thức TCP/IP:

a Tổng quan:

TCP/IP là bộ giao thức cho phép kết nối các hệ thống mạng không đồng nhất với nhau Ngày nay TCP/IP được sử dụng rộng rãi trong mạng cục bộ cũng như mạng toàn cầu TCP/IP được xem như giản lược của mô hình tham chiếu OSIvới 4 tầng như sau:

 Tầng Liên Kết (Datalink Layer)

Trang 19

 Tầng Mạng (Internet Layer)

 Tầng Giao Vận (Transport Layer)

 Tầng Ứng Dụng (Application Layer)

Hình 02 Các tầng trong bộ giao thích TCP/IP

Tầng liên kết: Tầng liên kết (còn được gọi là tầng liên kết dữ liệu hay tầng giao

tiếp mạng) là tầng thấp nhất trong mô hình TCP/IP, bao gồm các thiết bị giao tiếpmạng và các chương trình cung cấp các thông tin cần thiết để có thể hoạt động,truy nhập đường truyền vật lý qua các thiết bị giao tiếp mạng đó

Tầng Internet: Tầng Internet ( hay còn gọi là tầng Mạng) xử lý quá trình truyền

gói tin trên mạng, các giao thức của tầng này bao gồm : IP ( Internet Protocol) ,ICMP ( Internet Control Message Protocol) , IGMP ( Internet Group MessageProtocol )

Tầng giao vận: Tầng giao vận phụ trách luồng dữ liệu giữa 2 trạm thực hiện các

ứng dụng của tầng trên, tầng này có 2 giao thức chính là TCP ( TransmissonControl Protocol) và UDP ( User Datagram Protocol ) - TCP cung cấp luồng dữliệu tin cậy giữa 2 trạm, nó sử dụng các cơ chế như chia nhỏ các gói tin ở tầngtrên thành các gói tin có kích thước thích hợp cho tầng mạng bên dưới, báo nhậngói tin, đặt hạn chế thời gian timeout để đảm bảo bên nhận biết được các gói tin

đã gửi đi Do tầng này đảm bảo tính tin cậy nên tầng trên sẽ không cần quan tâmđến nữa - UDP cung cấp một dịch vụ rất đơn giản hơn cho tầng ứng dụng Nóchỉ gửi dữ liệu từ trạm này tới trạm kia mà không đảm bảo các gói tin đến đượctới đích Các cơ chế đảm bảo độ tin cậy được thực hiện bởi tầng trên tầng ứngdụng

Trang 20

Tầng ứng dụng: Là tầng trên của mô hình TCP/IP bao gồm các tiến trình và các

ứng dụng cung cấp cho người sử dụng để truy cập mạng Có rất nhiều ứng dụngđược cung cấp trong tầng này, mà phổ biến là Telnet: sử dụng trong việc truy cậpmạng từ xa, FTP ( File Transport Protocol ) dịch vụ truyền tệp tin., EMAIL : dịch

vụ truyền thư tín điện tử WWW ( Word Wide Web )

b Phương thức hoạt động của bộ giao thức TCP/IP:

Hình 03 Quá trình đóng gói dữ liệu trong TCP/IP

Cũng tương tự như trong mô hình OSI, khi truyền dữ liệu , quá trình tiếnhành từ tầng trên xuống tầng dưới, qua mỗi tầng dữ liệu được thêm vào thông tinđiều khiển gọi là Header Khi nhận dữ liệu thì quá trình xảy ra ngược lại, dữ liệuđược truyền từ tầng dưới lên và qua mỗi tầng thì phần header tương ứng sẽ đượclấy đi và khi đến tầng trên cùng thì dữ liệu không còn phần header nữa

Trang 21

Hình 04 Cấu trúc dữ liệu trong TCP/IP

Hình trên cho ta thấy lược đồ dữ liệu qua các tầng Trong hình ta thấy tạicác tầng khác nhau dữ liệu được mang những thuật ngữ khác nhau:

 Trong tầng giao vận: đơn vị dữ liệu mà TCP gửi xuống gọi là TCPsegment

Hình 05 ISO và TCP/IP

Sự khác nhau giữa TCP/IP với OSI:

 Tầng ứng dụng trong mô hình TCP/IP bao gồm luôn cả 3 tầng trên của môhình OSI

 Tầng giao vận trong mô hình TCP/IP không phải luôn đảm bảo độ tin cậycủa việc truyền tin như ở trong tầng giao vận của OSI mà cho phép thêmmột lựa chọn khác là UDP

Trang 22

Chương 3:

PHÂN TÍCH THIẾT KẾ HỆ THỐNG3.1 Mô hình tổng quan:

3.1.1 Mục đích:

Tạo ra website có khả năng trò chuyện trực tuyến giữ cá nhân hoặc nhóm.với các chức năng trò chuyện văn bản, truyền tải ảnh, truyền tải tệp đính kèm.Ngoài ra còn cho phép người dùng thực hiện cuộc gọi video

3.2.2 Biểu đồ Use Case:

Trang 23

Hình 06 Biểu đồ Use Case

3.2.3 Danh sách Use Case:

STT Actor sử dụng Tên

1 Người dùng Use Case “Đăng nhập”

2 Người dùng Use Case “Đăng ký”

3 Người dùng Use Case “Tìm kiếm người dùng”

4 Người dùng Use Case “Gửi lời mời kết bạn”

5 Người dùng Use Case “Xác nhận yêu cầu kết bạn”

6 Người dùng Use Case “Xóa bạn bè”

7 Người dùng Use Case “Gửi tin nhắn”

8 Người dùng Use Case “Tạo cuộc trò chuyện nhóm”

9 Người dùng Use Case “Thự hiện trò chuyện video”

10 Người dùng Use Case “Thay đổi thông tin cá nhân”

11 Người dùng Use Case “Thay đổi mật khẩu”

Bảng 01 Danh sách Use Case

Ngày đăng: 20/04/2021, 22:31

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