Tải bản đầy đủ - 0 (trang)
5 Tổng quan về ứng dụng thời gian thực (Realtime)

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

Tải bản đầy đủ - 0trang

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 số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 ngồ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 đề, tồ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 ln 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 ln ở 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 q 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 tồ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 hồn tồ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 qn 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



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

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

Tải bản đầy đủ ngay(0 tr)

×