Tải bản đầy đủ

Xây dựng ứng dụng chat nội bộ

ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KINH TẾ
KHOA HỆ THỐNG THÔNG TIN KINH TẾ

ẠI

H


C

KI

N
H

TẾ

H

U




----------

N

G

Đ

KHÓA LUẬN TỐT NGHIỆP
TR

Ư



XÂY DỰNG ỨNG DỤNG CHAT NỘI BỘ
NGUYỄN ĐÌNH TIẾN

Huế tháng 5, 2018


ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KINH TẾ
KHOA HỆ THỐNG THÔNG TIN KINH TẾ


C

KI

N
H

TẾ

H


U



----------

ẠI

H

BÁO CÁO KẾT QUẢ

N

G

Đ

KHÓA LUẬN TỐT NGHIỆP

TR

Ư



XÂY DỰNG ỨNG DỤNG CHAT NỘI BỘ
Sinh viên thực hiện:

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

Nguyễn Đình Tiến
Lớp: K48B Tin Học Kinh Tế

ThS. Lê Viết Mẫn

MSV: 14k4081148
Niên khóa: 2014-2018

Huế tháng 5, 2018


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

LỜI CÁM ƠN
Để hoàn thành khóa luận này, đó là sự đúc kết, nghiên cứu của em trong 3 tháng thực tập
tại công ty Người Quản Lý Thông Minh đồng thời dựa trên kiến thức đã được học tập tại
trương Đại học Kinh Tế Huế trong suốt 4 năm vừa qua.
Với lòng biết ơn chân thành, em xin gửi đến quí thầy cô giáo trong khoa Hệ thống thông
tin Kinh tế - Đại học Kinh tế Huế, cùng với gia đình, bạn bè đã giúp đỡ và động viên

U



trong thời gian hoàn thành khóa luận tốt nghiệp này.

H

Đặc biệt, em xin gửi lời cám ơn đến thầy Lê Viết Mẫn, người đã tận tình hướng dẫn, quan

TẾ

tâm, thường xuyên theo dõi, giải đáp những thắc mắc đồng thời đưa ra những đánh giá,

N
H

nhận xét để em có thể hoàn thành khóa luận tốt nghiệp một cách tốt nhất.

KI

Tiếp theo, em xin gửi lời cám ơn đến công ty Người Quản Lý Thông Minh đã tạo điều


C

kiện cho em được tham gia thực tập, tìm hiểu thực tiễn. Cám ơn các anh chị trong công ty

H

đã truyền đạt những kinh nghiệm quý báu trong suốt thời gian thực tập vừa qua.

ẠI

Vì kiến thức bản thân và năng lực còn hạn chế, trong quá trình thực tập, hoàn thiện khóa

G

Đ

luận này em không tránh khỏi sai sót, kính mong nhận được những ý kiến đóng góp, bổ



N

sung của quý thầy cô để em có thể hoàn thiện đề tài tốt hơn.

TR

Ư

Xin chân thành cám ơn !

Huế ,tháng 5 năm 2018
Sinh viên
Nguyễn Đình Tiến

SVTH: Nguyễn Đình Tiến
i


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

MỤC LỤC
LỜI CÁM ƠN........................................................................................................................ i
MỤC LỤC ............................................................................................................................ii
DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT ............................................................ v
DANH MỤC CÁC HÌNH ...................................................................................................vi
DANH MỤC CÁC BẢNG ............................................................................................... viii
MỞ ĐẦU .............................................................................................................................. 1

U

Ứng dụng Chat ........................................................................................................ 4

H

1.1



CHƯƠNG I. CƠ SỞ LÍ LUẬN ............................................................................................ 4
Một số khái niệm liên quan .............................................................................. 4

1.1.2

Thực trạng sử dụng ứng dụng Chat hiện nay ................................................... 4

1.1.3

Những yêu cầu, chức năng cần thiết khi xây dựng ứng dụng Chat nội bộ ...... 6

KI

N
H

TẾ

1.1.1

HTML và CSS ........................................................................................................ 6

1.3

Ngôn ngữ lập trình Javascript ................................................................................. 6

1.4

Framework Bootstrap.............................................................................................. 7

1.5

Tổng quan về ứng dụng thời gian thực (Realtime) ................................................. 7

Đ

ẠI

H


C

1.2

Hệ thống thời gian thực .................................................................................... 7

1.5.2

Đặc điểm hệ thống thời gian thực .................................................................... 8

N

G

1.5.1

Thư viện Jquery ...................................................................................................... 8

1.7

Tổng quan về Node.js ............................................................................................. 9

1.7.1

TR

Ư



1.6

Định nghĩa ........................................................................................................ 9

1.7.2

Một số khái niệm liên quan đến Node.js.......................................................... 9

1.7.3

Các tính năng vượt trội của Node.js............................................................... 11

1.7.4

Module trong Node.js: ................................................................................... 12

1.8

Hệ quản trị cơ sở dữ liệu NoSQL MongoDB ....................................................... 13

CHƯƠNG II. PHÂN TÍCH, THIẾT KẾ ỨNG DỤNG CHAT NỘI BỘ ........................... 17
2.1

Mô tả hệ thống ...................................................................................................... 17

2.2

Mục tiêu hệ thống ................................................................................................. 17

SVTH: Nguyễn Đình Tiến
ii


Khóa luận tốt nghiệp
2.3

GVHD: ThS. Lê Viết Mẫn

Yêu cầu chung....................................................................................................... 17

2.3.1

Yêu cầu chức năng ......................................................................................... 17

2.3.2

Yêu cầu phi chức năng ................................................................................... 18

2.4

Sơ đồ tình huống hệ thống .................................................................................... 18
Sơ đồ tổng quát .............................................................................................. 18

2.4.2

Chức năng đăng nhập ..................................................................................... 19

2.4.3

Chức năng đăng kí ......................................................................................... 20

2.4.4

Chức năng thao tác trang chủ của User.......................................................... 22

2.4.5

Chức năng của Server .................................................................................... 23

U

H

Sơ đồ tuần tự (Sequence Diagram) ....................................................................... 25

TẾ

2.5



2.4.1

Sơ đồ đăng kí.................................................................................................. 25

2.5.2

Sơ đồ đăng nhập ............................................................................................. 26

2.5.3

Sơ đồ Chat Group........................................................................................... 27

2.5.4

Sơ đồ Chat User ............................................................................................. 28


C

KI

N
H

2.5.1

Mô hình phân rã chức năng................................................................................... 29

2.7

Mô hình dữ liệu của ứng dụng .............................................................................. 30

ẠI

H

2.6

Đ

CHƯƠNG III. CÀI ĐẶT VÀ ĐÁNH GIÁ ........................................................................ 32
Cài đặt công cụ...................................................................................................... 32

3.2

Sơ đồ thuật toán chương trình ............................................................................... 33

3.3

Giao diện chương trình ......................................................................................... 34

3.3.1

TR

Ư



N

G

3.1

Giao diện đăng nhập ...................................................................................... 34

3.3.2

Giao diện đăng ký .......................................................................................... 35

3.3.3

Giao diện chính .............................................................................................. 36

3.3.4

Cơ sở dữ liệu của ứng dụng ........................................................................... 38

3.4

Vận hành hệ thống ................................................................................................ 38

3.5

Đánh giá kết quả ................................................................................................... 40

3.5.1

Những điểm đạt được ..................................................................................... 40

KẾT LUẬN ........................................................................................................................ 41
SVTH: Nguyễn Đình Tiến
iii


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

TR

Ư



N

G

Đ

ẠI

H


C

KI

N
H

TẾ

H

U



TÀI LIỆU THAM KHẢO .................................................................................................. 42

SVTH: Nguyễn Đình Tiến
iv


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT

T

Ký hiệu viết tắt

Tên kí hiệu viết tắt

API

Application Program Interface

2

HTML

HyperText Markup Language

3

CSS

Cascading Style Sheets

5

RDBMS

Relational Database Management System

6

ACID

Atomicity, Consistency, Isolation, Durability

7

DOM

Document Object Model

8

LAN

Local Network Area

9

RDBMS

10

VCS

KI

N
H

TẾ

H

U



1

Version Control System

TR

Ư



N

G

Đ

ẠI

H


C

Relation Database Management System

SVTH: Nguyễn Đình Tiến
v


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

DANH MỤC CÁC HÌNH
Hình 1. 1 Khảo sát các ứng dụng nhắn tin tại Việt Nam ...................................................... 5
Hình 1. 2 Synchronous và Asynchronous ......................................................................... 10
Hình 1. 3 Event-driven ....................................................................................................... 11
Hình 1. 4 Socket.IO ............................................................................................................ 12
Hình 1. 5 Cơ sở dữ liệu MongoDB .................................................................................... 16



Hình 2. 1 Sơ đồ tình huống tổng quát................................................................................. 18

H

U

Hình 2. 2 Sơ đồ đăng nhập ................................................................................................. 19

TẾ

Hình 2. 3 Sơ đồ đăng ký ..................................................................................................... 20

N
H

Hình 2. 4 Sơ đồ thao tác trang chủ ..................................................................................... 22
Hình 2. 5 Sơ đồ thao tác server ......................................................................................... 23

KI

Hình 2. 6 Sơ đồ tuần tự đăng kí .......................................................................................... 25


C

Hình 2. 7 Sơ đồ tuần tự đăng nhập ..................................................................................... 26

H

Hình 2. 8 Sơ đồ tuần tự Chat Group ................................................................................... 27

Đ

ẠI

Hình 2. 9 Sơ đồ tuần tự Chat User ..................................................................................... 28

G

Hình 2. 10 Sơ đồ phân rã chức năng .................................................................................. 29



N

Hình 2. 11 Cơ sở dữ liệu của ứng dụng .............................................................................. 30

Ư

Hình 3. 1 Sơ đồ thuật toán .................................................................................................. 33

TR

Hình 3. 2 Giao diện đăng nhập ........................................................................................... 34
Hình 3. 3 Giao diện đăng ký ............................................................................................... 35
Hình 3. 4 Giao diện chính................................................................................................... 36
Hình 3. 5 Giao diện Chat Group ......................................................................................... 37
Hình 3. 6 Giao diện Chat User ........................................................................................... 37
Hình 3. 7 Cơ sở dữ liệu ứng dụng ...................................................................................... 38
Hình 3. 8 Chạy lệnh mongod .............................................................................................. 39
Hình 3. 9 Chạy lệnh mongo ................................................................................................ 39
SVTH: Nguyễn Đình Tiến
vi


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

TR

Ư



N

G

Đ

ẠI

H


C

KI

N
H

TẾ

H

U



Hình 3. 10 Khởi chạy Server .............................................................................................. 40

SVTH: Nguyễn Đình Tiến
vii


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

DANH MỤC CÁC BẢNG
Bảng 1. 1 So sánh Synchronous và Asynchronous ............................................................ 10
Bảng 1. 2 So sánh RDBMS và NoSQL .............................................................................. 14
Bảng 2. 1 Các tác nhân hệ thống ........................................................................................ 18
Bảng 2. 2 Chức năng đăng nhập của User.......................................................................... 19
Bảng 2. 3 Chức năng đăng kí của User .............................................................................. 21

U



Bảng 2. 4 Thao tác trang chủ .............................................................................................. 22

H

Bảng 2. 5 Thao tác Server .................................................................................................. 24

TẾ

Bảng 2. 6 Document User .................................................................................................. 30

N
H

Bảng 2. 7 Document Room ................................................................................................ 31

TR

Ư



N

G

Đ

ẠI

H


C

KI

Bảng 2. 8 Document Chat .................................................................................................. 31

SVTH: Nguyễn Đình Tiến
viii


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

MỞ ĐẦU
1.

Lý do chọn đề tài
Trong thời đại hiện nay, với sự phát triển không ngừng của Internet đã giúp cho việc

trao đổi thông tin trở nên dễ dàng hơn bao giờ hết. Với sự ra đời của smartphone cùng với
việc xuất hiện của Facebook, Zalo…đã cung cấp cho người dùng thêm một công cụ hữu
hiệu để trò chuyện, vấn đề về khoảng cách không còn là điều gì đó quan trọng.



Nắm bắt được tầm quan trọng, và mức độ sử dụng rộng rãi của ứng dụng chat trong

U

xã hội, từ đó có thể kế thừa và phát triển nó trong phạm vi doanh nghiệp, tạo ra được sự

TẾ

H

đồng bộ và thống nhất trong việc truyền tải thông tin trong tổ chức.

N
H

Với mục đích tạo ra một ứng dụng giúp các cá nhân trong nội bộ (doanh nghiệp,

KI

trường học,…) có thể sử dụng giao tiếp với nhau, trao đổi công việc và đồng thời tránh


C

gây xao nhãng như những ứng dụng Chat có liên quan đến mạng xã hội.

H

Từ những lý do đó, tôi quyết định chọn “Xây dựng ứng dụng Chat nội bộ” làm

Đ

Mục tiêu đề tài

Từ việc nghiên cứu các nền tảng lập trình web, đặc biệt là Node.js, đề tài tập

Ư

-



N

Mục tiêu tổng quát

G

2.

ẠI

hướng nghiên cứu đề tài.

TR

trung phát triển ứng dụng Chat qua website, đầy đủ tính năng cơ bản giúp người
dùng trao đổi thông tin
Mục tiêu cụ thể

3.

-

Nghiên cứu các nền tảng lập trình ứng dụng web như Node.js, Socket.IO

-

Phân tích, thiết kế ứng dụng

-

Cài đặt và đánh giá

Đối tượng và phạm vi nghiên cứu

SVTH: Nguyễn Đình Tiến
1


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

Đối tượng nghiên cứu: Tìm hiểu về các ứng dụng Chat hiện tại đang được sử dụng
trong nội bộ (nhóm, tập thể, tổ chức,…). Từ đó xây dựng ứng dụng Chat riêng phù hợp
hơn trong phạm vi nội bộ.
-

Phạm vi nghiên cứu: Các ứng dụng Chat nội bộ

Để phát triển ứng dụng Chat trong nội bộ trước nhất phải biết sử dụng, kết hợp
nhuần nhuyễn các phương pháp nghiên cứu:
-

Quá trình thu thập dữ liệu sử dụng các phương pháp:

U



+ Phương pháp nghiên cứu tài liệu: Chủ động tìm kiếm thông qua các diễn

H

đàn công nghệ, những thông tin về các sản phẩm đi trước.

TẾ

+ Phương pháp quan sát: Quan sát thao tác người dùng, nhằm tìm ra những

N
H

ưu và nhược điểm của các ứng dụng sẵn có, từ đó kế thừa và phát huy và đưa

KI

vào trong sản phẩm.


C

+ Phương pháp phân tích, đánh giá: Dựa vào việc quan sát, phân tích, lựa
Giai đoạn phân tích thiết kế và thực hiện:

ẠI

-

H

chọn áp dụng những công nghệ phù hợp để phát triển đề tài.

Đ

+ Phương pháp phân tích và thiết kế hệ thống: tổng hợp thông tin đã thu thập


Ư

tiễn.

N

G

được và phân tích thực tế, qua đó xây dựng được ứng dụng phù hợp với thực

TR

+ Phương pháp lập trình: Sau khi tiến hành phân tích, sẽ lựa chọn ngôn ngữ

lập trình Javascript, xây dựng Server Node.js và CSDL Mongodb để xây dựng
ứng dụng Chat trong nội bộ.
4.

Cấu trúc khóa luận
Ngoài mở đầu và kết luận, khóa luận gồm 3 chương:
Chương I: Cơ sở lí luận
Nội dung chương này sẽ trình bày những khái niệm về ứng dụng sẽ phát triển, giới
thiệu các công nghệ sẽ được được áp dụng.

SVTH: Nguyễn Đình Tiến
2


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

Chương II: Phân tích thiết kế hệ thống
Chương này sẽ đi từ khảo sát thực trạng, mô phỏng hệ thống , phân tích thiết kế hệ
thống thông tin, cơ sở dư liệu của hệ thống
Chương III: Cài đặt và đánh giá
Giới thiệu cài đặt, cách vận hành,sơ đồ thuật toán, giao diện chương trình và đánh

TR

Ư



N

G

Đ

ẠI

H


C

KI

N
H

TẾ

H

U



giá kết quả

SVTH: Nguyễn Đình Tiến
3


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

CHƯƠNG I. CƠ SỞ LÍ LUẬN
1.1

Ứng dụng Chat
1.1.1 Một số khái niệm liên quan
Chat là hình thức mà con người trao đổi thông tin với nhau qua mạng máy tính

(Internet, Lan, Man, Wan,…). Trong đời sống thường ngày chúng ta giao tiếp với nhau
thông qua lời nói, hành động, cử chỉ. Còn trên mạng chúng ta thường trao đổi thông tin



qua chat, email,...

U

Hiện nay với sự phát triển không ngừng của Internet đã giúp cho việc trao đổi thông

TẾ

H

tin của chúng ta trở nên dễ dàng hơn. Bởi vậy Chat có vai trò rất quan trọng đối với chúng
ta trong thời đại hiện nay. Chúng ta có thể sử dụng Chat tin nhắn, Chat Voice, Chat

KI

tính, Smartphone,... ) có kết nối Internet.

N
H

Video để trao đổi thông tin với nhau ở bất kì đâu trên thế giới chỉ cần bạn có thiết bị (Máy


C

Thời điểm hiện tại với vô vàn các ứng dụng Chat có sẵn, thì vấn đề khoảng cách

H

không còn là một điều gì đó quá quan trọng. Thông qua Chat, mọi người có thể kết bạn,

ẠI

giao lưu, gặp gỡ, chia sẻ thông tin với nhau thuận tiện, dễ dàng hơn.

G

Đ

Ngoài việc sử dụng những ứng dụng Chat phải kết nối Internet, chúng ta có thể thay

N

thế bằng những ứng dụng Chat thông qua mạng LAN (mạng nội bộ). Nó sẽ phù hợp hơn

Ư



đối với một tổ chức, tập thể có các thiết bị truyền thông kết nối với nhau trong một diện

TR

tích nhất định, có thể trong một văn phòng, một tòa nhà hay là một trường học.
Điều quan trọng ở đây đó là các cá nhân có thể giao tiếp dễ dàng nhất trong nội bộ,
thay thế được các ứng dụng Chat liên quan đến mạng xã hội gây xao nhãng ảnh hưởng
đến năng suất. Đối với mục đích giao tiếp nội bộ, ngoài việc trò chuyện trực tiếp thì sử
dụng ứng dụng Chat nội bộ có thể là giải pháp tốt nhất.
1.1.2 Thực trạng sử dụng ứng dụng Chat hiện nay
Từ khi các ứng dụng Chat ra đời, việc nhắn tin (SMS) theo cách truyền thống giờ
đây gần như ít được sử dụng hơn trong giới trẻ. Với hàng loạt ứng dụng nhắn tin miễn phí
trên Smartphone (Whatapp, Line, Viber,...), hay các ứng dụng mạng xã hội tích hợp tính
SVTH: Nguyễn Đình Tiến
4


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

năng Chat (Faceboon, Zalo,...). Hầu như không còn mấy ai quan tâm vào những tin nhắn
theo cách cổ điển, các nhà mạng cũng đã cố gắng đổi mới cung cấp nhiều gói nhắn tin tiết
kiệm khuyến khích người dùng nhưng cũng không mấy khả quan.
Thời điểm hiện tại việc phát triển và sử dụng các ứng dụng Chat thông qua mạng
Internet chiếm đa số, các ứng dụng Chat nội bộ chỉ chiếm một phần nhỏ, lẻ và hầu như ít
được sử dụng và biết đến.

TR

Ư



N

G

Đ

ẠI

H


C

KI

N
H

TẾ

H

U



Hình 1. 1 Khảo sát các ứng dụng nhắn tin tại Việt Nam

Nguồn: http://www.brandsvietnam.com (2017)
Hình 1.1 là biểu đồ kết quả khảo sát hơn 450 người trong độ tuổi từ 18-39 tại Hồ
Chí Minh và Hà Nội về việc sử dụng các ứng dụng nhắn tin, nhìn vào biểu đồ ta có thể dễ
dàng thấy được sự nổi trội của hai ứng dụng Facebook Messengers với 94% và Zalo 89%.
Tiếp đến là tin nhắn điện thoại SMS chiếm 59% , các ứng dụng còn lại hầu như bị lép vế
với chỉ 37% ứng viên chọn Skype và 33% đối với Viber.
SVTH: Nguyễn Đình Tiến
5


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

1.1.3 Những yêu cầu, chức năng cần thiết khi xây dựng ứng dụng Chat nội bộ
Nắm bắt được tầm quan trọng, và mức độ sử dụng rộng rãi của ứng dụng Chat trong
xã hội, từ đó có thể kế thừa và phát triển nó trong phạm vi nội bộ (doanh nghiệp, trường
học,...), tạo ra được sự đồng bộ và thống nhất trong việc truyền tải thông tin trong tổ chức.
Với mục đích tạo ra một ứng dụng giúp các cá nhân trong tổ chức có thể sử dụng
giao tiếp với nhau, trao đổi công việc và đồng thời tránh gây xao nhãng như những ứng
dụng Chat có liên quan đến mạng xã hội.



Xây dựng mô hình Server dựa trên nền tảng Node.js

U

Xây dựng giao diện thân thiện với người dùng, có thể tương tác qua lại giữa các

TẾ

H

người dùng với nhau.

N
H

Cung cấp chức năng truyền tải dư liệu với dung lượng lớn và tốc độ cao thông qua

HTML và CSS


C

1.2

KI

mạng nội bộ.

HTML (HyperText Markup Language) : là một ngôn ngữ đánh dấu được thiết kế ra

ẠI

H

để tạo nên các trang web, nghĩa là các mẩu thông tin được trình bày trên World Wide Web.

Đ

CSS (Cascading Style Sheets) : định nghĩa về cách hiển thị của một tài liệu HTML.

N

G

CSS đặc biệt hữu ích trong việc thiết kế Web. Nó giúp cho người thiết kế dễ dàng áp đặt



các phong cách đã được thiết kế lên bất kì page nào của website một cách nhanh chóng,

TR

1.3

Ư

đồng bộ.

Ngôn ngữ lập trình Javascript
Javascript là một ngôn ngữ lập trình kịch bản dựa trên các đổi tượng được phát triển

sẵn có hoặc tự định nghĩa từ các ý niệm nguyên mẫu, Javascript được dùng rộng rãi để tạo
ra các trang web có tính tương tác, đồng thời cũng được sử dụng để viết các script trong
các ứng dụng.
Giống như các ngôn ngữ lập trình khác như Java, C/C++, C# thì Javascript cũng có
các cú pháp tương tự các hàm toán học, câu lệnh if-else, vòng lặp. Nhưng điểm đặc biệt ở
SVTH: Nguyễn Đình Tiến
6


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

Javascript đó là chỉ sử dụng cho các ứng dụng chạy trên nền tảng web. Hiện nay
Javascript được hỗ trợ hầu như trên tất cả các trình duyệt (Chrome, CocCoc, Firefox…).
Javascript chứa các thư viện tiêu chuẩn cho các Object, nó có thể mở rộng cho nhiều
mục đích bằng việc bổ sung thêm các Object, ví dụ:
-

Javascript phía máy khách, JavaScript được mở rộng bằng cách cung cấp các
Object để quản lí trình duyệt và DOM (Document Object Model) của nó.Ví dụ, ở
phía máy khách cho phép tác động tới các yếu tố lên một trang HTML và phản
Javsscript phía Server, Javascript được mở rông bằng cách cung cấp thêm các

U

-



hồi hành động cảu người dùng như nhập, click chuột,...

TẾ

H

đối tượng cần thiết để chạy Javascript trên máy chủ.Ví du, ở phía Server cho

N
H

phép ứng dụng kết nối cơ sở dữ liệu (database), cung cấp thông tin một cách liên

Framework Bootstrap


C

1.4

KI

tục, hoặc thực hiện thao tác với các tập tin trên máy chủ.

H

Bootstrap là một framework cho phép thiết kế website reponsive nhanh hơn và dễ

Đ

ẠI

dàng hơn.

G

Bootstrap là bao gồm các HTML templates, CSS templates và Javascript tao ra



N

những cái cơ bản có sẵn như: typography, forms, buttons, tables, navigation, modals,

Ư

image carousels và nhiều thứ khác. Trong bootstrap có thêm các plugin Javascript trong

TR

nó. Giúp cho việc thiết kế reponsive của bạn dễ dàng hơn và nhanh chóng hơn.
1.5

Tổng quan về ứng dụng thời gian thực (Realtime)
1.5.1

Hệ thống thời gian thực

Thời đại hiện nay hệ thống thông tin thời gian thực được sử dụng rất nhiều lĩnh vực
như: trong ngành công nghiệp sản xuất, kiểm soát tiến trình (trong nhà máy, trong y tế,
trong hệ thống giao thông vận tải,…). Sự phát triển của hệ thống thông tin thời gian thực
yêu cầu mỗi phần tử của hệ thống phải ở thời gian thực, tức thời, và một hệ thống được
SVTH: Nguyễn Đình Tiến
7


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

thiết kế theo cách như vậy được gọi là hệ điều hành thời gian thực hay hệ thống thời gian
thực
Ứng dụng thời gian thực (Realtime). Realtime ở đây chính là xử lí giao tiếp từ người
dùng tới máy chủ theo thời gian thực, các ví dụ về Realtime gần gũi mà chúng ta có thể
thấy đó là facebook, gmail,…. Khi bạn nhận được một tin nhắn, một email hay một thông
báo, gần như ngay lập tưc giao diện sẽ hiển thị thông tin mà chúng ta không cần phải
tương tác trước. Tức là không chỉ khi chúng ta gửi yêu cầu lên cho server thì server mới



trả về, mà server sẽ tự biết khi nào gửi thông tin về cho chúng ta. Có thể coi đó như là

1.5.2

Đặc điểm hệ thống thời gian thực

TẾ

H

U

một mối quan hệ hai chiều.

N
H

Một hệ thống thời gian thực phải được thiết kế làm sao cho các dịch vụ của nó có

KI

thể truy cập vào phần cứng, phần mềm với khoảng thời gian tối thiểu. Có những kết hợp


C

thích hợp để đảm bảo cho những xử lý của mọi thành phần không vượt quá thời gian cho

H

phép

Đ

ẠI

Như vậy, một hệ thống đáp ứng được yêu cầu thời gian thực, trong khoảng thời gian

G

ngắn nhất sẽ đem lại những lợi ích thiết thực cho khách hàng, cho chính doanh nghiệp.

Ư

TR

quả thiết thực.



N

Đáp ứng được các yêu cầu về tốc độ truy cập, kết quả mong đợi nhanh nhất, mang lại hiệu

Thư viện Jquery

1.6

Để tạo ra các hiệu ứng trên website thì không thể thiếu được sự kết hợp giữa
Javascript và CSS, nhưng thay vì phải lập trình các đoạn code dài dòng, lặp đi lặp lại gây
khó kiểm soát, bảo trì thì Jquery đã ra đời nhằm giải quyết vấn đề này.
Jquery là một thư viện kiểu mới của Javascript giúp lập trình viên “viết ít hơn, làm
nhiều hơn”. Nó được sử dụng đến 99% tổng số website trên toàn thế giới.
Các đặc trưng cơ bản của Jquery:
-

Thao tác HTML/DOM

SVTH: Nguyễn Đình Tiến
8


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

-

Thao tác CSS

-

Hiệu ứng chuyển động

-

Phương thức sự kiện CSS

-

Ajax

Cải thiện hiệu suất ứng dụng

-

Tương thích với hầu hết các trình duyệt

-

Giúp thực hiện UI mà không phải viết nhiều code

1.7.1

TẾ

Tổng quan về Node.js
Định nghĩa

N
H

1.7

H

U

-



Ưu điểm của Jquery

KI

Nodejs là một mã nguồn chạy trên môi trường Javascript V8 Engine. NodeJS có thể


C

chạy trên đa nền tảng hệ điều hành khác nhau từ Windows, Linux, cho đến MacOs. Bên

H

cạnh đó NodeJS còn cung cấp các thư viện phong phú ở dạng Javascript Module khác

Một số khái niệm liên quan đến Node.js

G

1.7.2

Đ

ẠI

nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất.



N

I/O: là quá trình giao tiếp, giữa môi trường bên ngoài và hệ thống. Trong kiến trúc

Ư

máy tính, sự kết hợp giữa CPU và bộ nhớ chính (RAM), mọi thao tác truyền tải dữ liệu

TR

giữa chúng, được coi là tác vụ I/O.
Callback: Callback có tính chất bất đồng bộ tương đương cho một hàm, Một hàm
callback được gọi khi hoàn thành một nhiệm vụ cụ thể. Tất cả các API trong Node.js đều
viết theo các cách của hàm callback.
RESTful API: là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng
web để quản lí các mã nguồn. RESTful là một trong những kiểu thiết kế API được sử
dụng phổ biến nhất hiện nay.

SVTH: Nguyễn Đình Tiến
9


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

Synchronous và Asynchronous:

Synchronous (Xử lí đồng bộ): Đó là chương trình chạy theo từng bước, khi bước

N
H

-

TẾ

H

U



Hình 1. 2 Synchronous và Asynchronous

KI

thứ 1 thực hiện xong thì chuyển sang bước tiếp theo, khi nào chương trình xong
Asynchronous (Xử lí bất đồng bộ): Ngược lại với Synchronous thì

H

-


C

mới chuyển qua chương trình khác.

ẠI

Asynchronous nghĩa là chương trình có thể chạy bỏ qua một bước nào đó, vì vậy

Đ

Asynchronous được cho là một chương trình hoạt động thiếu sự chặt chẽ và
So sánh mặt tốt, mặt xấu giữa Synchronous và Asynchronous:



-

N

G

không có quy trình nên việc quản lí khó khăn.

TR

Ư

Bảng 1. 1 So sánh Synchronous và Asynchronous
Xử lí
Mặt tốt
Synchronous

Mặt xấu

Chương trình sẽ chạy theo Chương trình chạy theo thứ
đúng trình tự

tự đồng bộ sẽ sinh ra trạng
thái chờ, đôi khi không cần
thiết trong một số trường
hợp

Asynchronous

Có thể xử lí nhiều công Nếu trong chương trình đòi
việc một lúc mà không hỏi phải có qui trình thì

SVTH: Nguyễn Đình Tiến
10


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn
cần phải chờ đợi

không thể sử dụng được

Non-Blocking I/O: Có nghĩa là những công việc có liên quan đến input và output
không thể có quyền ngăn chặn những công việc khác.
Event-driven: để khắc phục vấn đề, toàn bộ server làm việc trên một thread duy
nhất, khi muốn sử dụng thêm tài nguyên từ CPU thì sẽ tạo thêm một yêu cầu mới trên
CPU tương ứng, các tài nguyên sử dụng hoàn toàn độc lập. Ứng dụng sử dụng mô hình
event-driven, để xử lí server chịu sự chi phối của vòng lặp trung tâm

N

Bất đồng bộ: Tất cả các API của Nodejs đều bất đồng bộ, nó chủ yếu dựa trên

Ư

-

Các tính năng vượt trội của Node.js:



1.7.3

G

Đ

ẠI

H


C

KI

N
H

TẾ

H

U



Hình 1. 3 Event-driven

TR

nền của Nodejs Server và chờ đợi Server trả dữ liệu về
-

Tốc độ cao: Vì được xây dựng trên dựa vào nền tảng V8 Javascript nên khả năng
thực thi chương trình nhanh

-

Khả năng mở rộng cao: Một trong những bí mật để Node.js có thể mở rộng đó là
Event Loop. Kiến trúc này giúp nó đáp ứng các yêu cầu cho từng client khác
hoàn toàn khác so với các công nghệ khác, nó có thể đáp ứng được số lượng lớn
client nhiều hơn hàng trăm lần so với các ngôn ngữ khác.

SVTH: Nguyễn Đình Tiến
11


Khóa luận tốt nghiệp
1.7.4

GVHD: ThS. Lê Viết Mẫn

Module trong Node.js:

Module cũng giống như các thư viện ở PHP, C, C#,… Sử dụng Module giúp đơn
giản hóa việc tạo ra các ứng dụng, giúp quản lí mã lệnh một cách dễ dàng hơn. Module có
thể đơn giản là một hàm hay một đối tượng. Mỗi Module thường được khai báo ở một tập
tin riêng lẽ.
Một số Module chính trong việc xây dựng ứng dụng Chat:
-

Express:

U



+ Express là một framework, nó cung cấp rất nhiều tính năng mạnh mẽ trên

H

đa nền tảng, Express dễ dàng để phát triển các ứng dụng nhanh dựa trên Node.js

TẾ

cho các ứng dụng web.

N
H

+ Express hỗ trợ các phương thức HTTP và middleware tạo ra một API
Ejs: là một template engine cho phép người dùng định dạng bố cục HTML đồng


C

-

KI

mạnh mẽ, sử dụng dễ dàng.

TR

Ư



N

G

Hình 1. 4 Socket.IO

ẠI

Socket.io:

Đ

-

H

thời có thể chèn các đoạn mã Javascript thực thi ngay bên trong nó.

+ Được xây dựng nhằm tạo ra ứng dụng real time trên nền tảng Node.js.
Socket.io cung cấp cho lâp trình viên các đặc trưng như event, room và tự
động phục hồi lại kết nối.

SVTH: Nguyễn Đình Tiến
12


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

+ Khi sử dụng Module Socket.io nó sẽ cung cấp cho chúng ta các Object:
socket server quản lí phía server và socket client điều khiển phía người dùng.
+ Socket là cách tổ chức mô hình client-server để trong cả hai bên luôn trong
tình trạng sẵn sàng trả lời bên kia và ngược lại, để quá trình này diễn ra
Client và Server luôn ở trong tình trạng “keep-alive”.
+ Khi client kết nối tới Socket.io server, nó sẽ gửi đến server một “handshake
HTTP request”. Server sẽ phân tích request đó trong suốt quá trình kết nối .

U



Nó sẽ tìm cấu hình của middleware đã được đăng ký với server và thực thi

H

chúng trước khi đưa ra sự kiên kết nối. Khi kết nối thành công thì “connect

TẾ

event listener” được thực thi, tạo ra một dịnh danh của Client mà mỗi một

Express-session: Cơ chế hoạt động của express-session đó là dùng một cookie ở

KI

-

N
H

Client kết nối tới Server sẽ có một định danh


C

client để đánh dấu ID clinet, và data session được lưu lại ở server.
Multer: đây là một middleware xử lí truyền tải các tập tin lên server.

-

Body-parser: là một middleware xử lý JSON, text và mã hóa URL

-

Fs: Module Fs (File System) là module dùng để đọc file trên server

-

Mongoose: đây là module giúp việc giao tiếp, xử lí với MongoDB với Node.js

N

G

Đ

ẠI

H

-

Path: dùng để xử lí các đường dẫn file và tên file như lấy đường dẫn trỏ tới thư

TR

-

Ư



nhanh gọn hơn.

mục, lấy tên file trong đường dẫn, lấy phần mở rộng file.
-

Morgan: dùng để tạo ra log các request đến server

-

Lodash: Lodash cung cấp nhiều chức năng (check null, underfine), chức năng xử
lí (string, object, array).

1.8

Hệ quản trị cơ sở dữ liệu NoSQL MongoDB
NoSQL là một dạng cơ sở dữ liệu mã nguồn mở. NoSQL là viết tắt bởi None-

Relational SQL, hay còn được gọi là Not-Only SQL.
SVTH: Nguyễn Đình Tiến
13


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn

NoSQL database là một database có kiểu lưu trữ, truy vấn dữ liệu hoàn toàn khác so
với SQL. NoSQL bỏ qua tính toàn vẹn của dữ liệu và transaction để đổi lấy hiệu suất
nhanh và khả năng mở rộng (scalability). Vì vậy NoSQL phù hợp trong nhiều dự án Big
Data, các dự án Real-time, số lượng dữ liệu nhiều.
NoSQL Database ra đời, giải quyết được những khuyết điểm của RDBMS:
-

Dữ liệu trong NoSQL Database được lưu dưới dạng document, object. Dễ dàng
trong việc truy vấn và nhanh hơn RDBMS.
NoSQL có thể làm việc hoàn toàn với dữ liệu dạng không có cấu trúc

-

Việc thay đổi cấu trúc dữ liệu (Thêm, xóa trường hoặc bảng) rất dễ dàng và

H

U



-

Vì không đặt nặng tính ACID(Atomicity, Consistency, Isolation, Durability) của

N
H

-

TẾ

nhanh gọn trong NoSQL.

transactions và tính nhất quán của dữ liệu, NoSQL DB có thể mở rộng, chạy trên


C

KI

nhiều máy một cách dễ dàng.

H

Hiện nay, trên thị trường có khá nhiều NoSQL Database Management System:

Đ

ẠI

MongoDB, Redis, RavenDB, Neo4j,… Ta có thể chia NoSQL thành 4 loại:
Key-Value Database

-

Document Database

-

Graph Database

-

Column-Family Database

TR

Ư



N

G

-

So sánh RDBMS và NoSQL
Bảng 1. 2 So sánh RDBMS và NoSQL
Tính năng
Hiệu suất

RDBMS
Kém hơn NoSQL

NoSQL
Rất tốt
Bỏ qua các ràng buộc

Khả năng mở rộng Hạn chế về số lượng, khả Hỗ trợ một lượng rất lớn
SVTH: Nguyễn Đình Tiến
14


Khóa luận tốt nghiệp

GVHD: ThS. Lê Viết Mẫn
năng mở rộng các node

theo chiều ngang

các node trong một hệ
thống

Tốc độ đọc ghi

Kém do thiết kế phải đảm Tốc độ đọc ghi rất nhanh
bảo vào ra liên tục của dữ vì NoSQL thiết kế bỏ đi
các cơ chế ràng buộc

liệu có tính ràng buộc

Mặt khác phải đảm bảo tính toàn vẹn phức tạo.
nhất quán, ràng buộc toàn Mặt khác chúng được
thực hiện chủ yếu trên

U



vẹn của dữ liệu

KI

N
H

TẾ

H

bộ nhớ, sau đó dữ liệu

mới được ghi từ từ
xuống

không

giống

RDBMS.

Đòi hỏi cao về cấu hình Đòi hỏi thấp hơn về cấu


C

Yêu cầu phần cứng

H

phần cứng hoặc cấu hình hình, tính đồng nhất của
phân cứng

Đ

ẠI

đặc biệt

Đảm bảo tính nhất quán và Tính nhất quán và ràng
ràng buộc toàn vẹn dữ liệu



N

G

Tính nhất quán dữ liệu

buộc toàn vẹn yếu, chủ

Ư

yếu được thực thi nhiều

TR

trên code

Thay đổi sô node trong Thông thường phải ngắt kết Không câng ngắt kết nối
hệ thống

nối cả hệ thống

cả hệ thống

Việc thay đổi số node phức Việc thay đổi số node
tạp

đơn giản, ít ảnh hưởng
đén hệ thống

Truy vấn và báo cáo

Dễ dàng sử dụng ngôn ngữ Việc lấy báo cáo dữ liệu

SVTH: Nguyễn Đình Tiến
15


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×