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.