CHƯƠNG 6: THIẾT KẾ KIẾN TRÚC

Một phần của tài liệu ĐỒ án 2 đề tài PET TINDER (Trang 86 - 91)

6.1. Mục tiêu kiến trúc và ràng buộc

6.1.1. Server side

Là một ứng dụng mạng xã hội, Pet Tinder Server bao gồm nhiều tính năng phức tạp và yêu cầu cao về hiệu năng cũng như tính ổn định, phần Server sẽ được triển khai trên hệ thống nhiều máy chủ, kéo theo đó Server sẽ được tách thành nhiều service nhỏ đặt ở nhiều nơi. Tổng thể đây sẽ là hệ thống Server phân tán nhằm đáp ứng các nhu cầu về hiệu năng.

Hệ thống sẽ sử dụng MySQL làm cơ sở dữ liệu chính. Giao thức được sử dụng chính sẽ là HTTP và Websocket.

6.1.2. Client side

Là ứng dụng trên thiết bị di động nên người dùng muốn sử dụng ứng dụng Pet Tinder phải có ít nhất một thiết bị di động sử dụng hệ điều hành Android hoặc iOS.

6.1.3. Bảo mật

Ứng dụng Pet Tinder là ứng dụng mạng xã hội, do đó việc đăng nhập để sử dụng à điều bắt buộc. Ngồi ra, ứng dụng cịn lưu trữ những thơng tin cá nhân tương đối nhạy cảm của của người dùng như vị trí hiện tại (theo kết quả thu được từ dịch vụ Google Map), tên và số điện thoại, email và hình ảnh. Do đó việc bảo mật thơng tin của người dùng phải được đặt lên hàng đầu và cung cấp cơ chế để người dùng kiểm sốt khả năng truy cập vào thơng tin cá nhân mà mình đã cung cấp.

6.1.4. Persistence

Ứng dụng sử dụng hệ thống nhiều cơ sở dữ liệu triển khai theo mơ hình master-slave để lưu trữ dữ liệu. Việc sử dụng mơ hình master-slave giúp tăng tính ổn định cũng như hiệu năng của hệ thống CSDL. Ngoài ra, các dữ liệu quan trọng như mật khẩu của người dùng sẽ được mã hóa.

6.1.6. Hiệu năng

Dự án mang tính chất của mạng xã hội kèm theo mục tiêu phục vụ nhóm đối tượng người dùng lớn. Kèm theo các dữ liệu có được sau khi phân tích u cầu và tính chất của ứng dụng, ta có thể thấy lượng yêu cầu từ người dùng thường tăng cao vào những khoảng thời gian được dùng để nghỉ ngơi trong ngày, do đó hiệu năng là vấn được được quan tâm và kỳ vọng rất cao.

6.1.7. Tính tái sử dụng

Về tính tái sử dụng, cần phân tích ở 2 khu vực cụ thể là Server và Client:

Server: Các chức năng có thể dùng chung sẽ được tách ra thành service riêng để có thể gọi từ

những service khác, từ đó đáp ứng được tiêu chí tái sử dụng. Ví dụ:

- Upload và Lưu trữ nội dung đa phương tiện (Hình ảnh, Video)

- Xác thực phiên truy cập

- Gửi thơng báo dạng notification tới client

Client: Nhóm dự định sẽ sử dụng React Native Framework để xây dựng ứng dụng ở phía

client. Ưu điểm của React Native là có thể tách nhỏ ra thành các thành phần có thể tái sử dụng ở nhiều nơi một cách dễ dàng và nhanh chóng.

6.2. Kiến trúc tổng quát

Hệ thống được thiết kế theo mơ hình Client-Server và kiến trúc microservice. Để đáp ứng được nhu cầu truy cập mọi lúc mọi nơi, nhóm sử dụng mơ hình Client-Server, – Client và Server sẽ kết nối với nhau thông qua mạng Internet.

Server sử dụng kiến trúc microservice để tăng hiệu năng của hệ thống, đáp ứng được yêu cầu về hiệu năng của dự án.

Các service có thể hoạt động riêng biệt và triển khai trên nhiều host khác nhau. Được quản lý bằng Service Discovery và giao tiếp với nhau thông qua Message Broker. Database sẽ được thiết kế thành một system riêng và quản lý tập trung để đảm bảo tính tồn vẹn dữ liệu.

Hình 6.1. Kiến trúc tổng quát

6.3. Môi trường triển khai

Là ứng dụng trên điện thoại di động nên người dùng sẽ chỉ phải cài ứng dụng trên thiết bị di động và có kết nối internet là đã có thể sử dụng. Ngồi ra người dùng khơng cần cài thêm bất cứ thành phần nào khác.

Phần Backend được triển khai theo kiến trúc microservice và sử dụng ngơn ngữ lập trình Java, vì vậy mỗi service và các thành phần khác của Backend phải được triển khai trên một trong những môi trường sau đây:

Cơ sở dữ liệu có thể được đặt ở các máy chủ khác nhau, nhưng phải đảm bảo môi trường kết nối của các máy chủ này có thể giao tiếp với nhau, có thể thơng qua mạng LAN hoặc mạng Internet.

Ngồi ra, vì các xử lý phức tạp được thực hiện ở Backend, người dùng chỉ phải cài đặt ứng dụng hoặc sử dụng trình duyệt nên người dùng khơng cần sử dụng một hệ thống máy tính hoặc thiết bị chun dụng có cấu hình mạnh để có thể sử dụng dịch vụ.

6.4. Hiện thực kiến trúc

Bảng 6.1. Kiến trúc hiện thực

Tên thành phần Diễn giải

Client Application Ứng dụng di động Pet Tinder

API Gateway Có nhiệm vụ phân loại và điều hướng

connection tới đúng service mong muốn. Ngồi ra ở thành phần này cịn có chức năng kiểm tra xác thực của kết nối.

Authentication Server Quản lý việc xác thực connection.

User Service Quản lý các tính năng liên quan đến User Model

Tinder Service Quản lý các tính năng liên quan đến Tinder, MatchItem Model,

Ở service này cịn đảm nhiệm tính năng tính tốn, gợi ý những thú cưng phù hợp với nhu cầu tìm kiếm của người dùng.

Admin Service Quản lý các tính năng liên quan đến Admin

Model

Pet Service Quản lý các tính năng liên quan đến Pet Model

Chat Service Quản lý các tính năng liên quan đến Chat

Report Service Quản lý các tính năng liên quan đến báo cáo người dùng.

đốn giống thú cưng.

Service Discovery Quản lý các service bên trên. Ngồi ra cịn làm nhiệm vụ cân bằng tải.

Database System Cơ sở dữ liệu của cả hệ thống. Cài đặt và cấu hình theo kiến trúc cluster. Có thể cài đặt trên nhiều máy chủ khác nhau.

Message Broker Tiếp nhận và phân phối các mẫu tin (messages) giữa các service. Phục vụ cho việc giao tiếp giữa các service.

Một phần của tài liệu ĐỒ án 2 đề tài PET TINDER (Trang 86 - 91)

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

(135 trang)