Kiến trúc hệ thống

Một phần của tài liệu Xây dựng ứng dụng hỗ trợ môn học (Trang 36 - 39)

3.2.1. Sơ đồ kiến trúc tổng quát

25

3.2.2. Mô tả kiến trúc Front-End

Front-End được xây dựng bằng React Native và được chia thành ba thành phần chính như sau:

STT Thành phần Ý nghĩa, ghi chú

1 Components Là các thành phần giao diện hiển thị cho người dùng

2 Store Nơi lưu trữ dữ liệu và quản lý state của ứng dụng

3 Gateway Có chức năng như cổng giao tiếp liên quan đến các

kết nối API

Bảng 3.2 - Mô tả thành phần kiến trúc front-end

Mối quan hệ giữa các thành phần:

- Components sử dụng Store để lưu trữ và quản lý dữ liệu.

- Dữ liệu được quản lý bởi Store sẽ được cập nhật tự động cho các Components liên quan mỗi khi dữ liệu đó có sự thay đổi

- Gateway cung cấp các kết nối API lấy dữ liệu từ Back-End và trả về cho

Component xử lý hiển thị hoặc cập nhật dữ liệu trong Store để đồng bộ dữ

liệu của ứng dụng

3.2.3. Mô tả kiến trúc Back-End

Back-End sử dụng công nghệ .NET core xây dựng theo chuẩn RESTful API và được chia thành bốn thành phần chính như sau:

26

STT Thành phần Ý nghĩa, ghi chú

1 Controllers

Có nhiệm vụ nhận HTTP request (GET, POST) từ Client, xử lý tính hợp lệ của payload và trả response về cho người dùng

2 Core Là thành phần xử lý logic, nghiệp vụ chính của hệ

thống

3 Models Là thành phần có chức năng lưu trữ và thao tác với dữ liệu

4 Service

Đảm nhiệm vai trò kết nối với các dịch vụ của bên thứ ba như các dịch vụ về Firebase (Authentication,

Cloud,...), các API, cơ sở dữ liệu,...

Bảng 3.3 - Mô tả thành phần kiến trúc back-end

Mối quan hệ giữa các thành phần:

- Controllers sau khi nhận request và kiểm tra tính hợp lệ của payload sẽ gọi

đến thành phần Core xử lý để lấy thông tin cần trả về cho Front-End

- Core nhận yêu cầu xử lý từ Controllers, lấy dữ liệu từ Service và xử lý để trả

kết quả về cho Controllers

- Service nhận yêu cầu sử dụng dịch vụ từ Core và trả về kết quả để Core xử lý

- Model giúp cho các thành phần Controllers, Core, Service truyền dữ liệu và

giao tiếp với nhau

Ngồi ra hệ thống Back-End cịn sử dụng JSON Web Token (JWT) để xác thực và cấp quyền cho mỗi request từ phía Client nhằm đảm bảo tính bảo mật và an tồn dữ liệu của hệ thống.

Sử dụng Redis Cache để lưu trữ dữ liệu lấy được từ API về nhằm giảm request tới API của bên thứ ba và truy xuất dữ liệu nhanh hơn khi dữ liệu đó đã được lưu lại trong cache giúp cho việc tối ưu hoá trải nghiệm người dùng, đảm bảo cho hệ thống chạy ổn định.

27

CHƯƠNG 4 - HIỆN THỰC HỆ THỐNG

Một phần của tài liệu Xây dựng ứng dụng hỗ trợ môn học (Trang 36 - 39)

Tải bản đầy đủ (PDF)

(54 trang)