Mô hình Client – ServerTìm hiểu về mô hình Client – Server cài đặt và lập trình một phần mềm quản lý sinh viên và môn học mô phỏng mô hình Client – Server.Phần mềm được lập trình bằng fr
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC THĂNG LONG
BÁO CÁO BÀI TẬP LỚN
NGUYÊN LÝ HỆ ĐIỀU HÀNH
Trang 2Mục lục
PHẦN 1 MÔ TẢ BÀI TOÁN 3
1.1 Mô hình Client – Server 3
1.2 Dịch vụ Cloud Server ( Firebase ) 3
PHẦN 2 CƠ SỞ LÝ THUYẾT 4
2.1 Mô hình Client – Server 4
2.1.1 Client 4
2.1.2 Server 5
2.1.3 Ưu điểm của mô hình Client-Server 5
2.2 Firebase 5
2.2.1 Các tính năng của Firebase 6
2.2.2 Ưu và nhược điểm của việc sử dụng Firebase 7
PHẦN 3 CÀI ĐẶT CHƯƠNG TRÌNH VÀ KẾT QUẢ 8
3.1 Mô hình Client – Server ( ExpressJs, MongoDB) 8
3.1.1 Tổ chức code theo mô hình MVC 8
3.1.2 Cài đặt lập trình phần mềm 9
3.1.3 Mô tả về cách thức hoạt động của phần mềm 12
3.2 Firebase (Java, Firebase) 13
Trang 3PHẦN 1 MÔ TẢ BÀI TOÁN
1.1 Mô hình Client – Server
Tìm hiểu về mô hình Client – Server cài đặt và lập trình một phần mềm quản lý sinh viên
và môn học mô phỏng mô hình Client – Server
Phần mềm được lập trình bằng framework ExpressJs và sử dụng cơ sở dữ liệuMongoDB
1.2 Dịch vụ Cloud Server ( Firebase )
Tìm hiểu về dịch vụ Cloud Server Firebase cài đặt và lập trình một Android app sử dụngngôn ngữ lập trình Java và cơ sở dữ liệu thời gian thực
Trang 4PHẦN 2 CƠ SỞ LÝ THUYẾT
2.1 Mô hình Client – Server
Client server là mô hình mạng máy tính gồm có 2 thành phần chính đó là máy khách(client) và máy chủ (server) Server chính là nơi giúp lưu trữ tài nguyên cũng như cài đặtcác chương trình dịch vụ theo đúng như yêu cầu của client Ngược lại, Client bao gồmmáy tính cũng như các loại thiết bị điện tử nói chung sẽ tiến hành gửi yêu cầu đến server
Người dùng nhập URL (Uniform Resource Locator) của trang web hoặc tệp Sau
đó, Trình duyệt sẽ yêu cầu Máy chủ DNS (HỆ THỐNG TÊN MIỀN)
DNS Server tra cứu địa chỉ của WEB Server
Máy chủ DNS phản hồi bằng địa chỉ IP của Máy chủ WEB
Trình duyệt gửi yêu cầu HTTP/HTTPS tới IP của Máy chủ WEB (do máy chủDNS cung cấp )
Máy chủ gửi qua các tập tin cần thiết của trang web
Trình duyệt sau đó hiển thị các tập tin và trang web được hiển thị Việc kết xuấtnày được thực hiện với sự trợ giúp của trình thông dịch DOM (Mô hình đối tượngtài liệu), trình thông dịch CSS và Công cụ JS được gọi chung là Trình biên dịchJIT hoặc (Just in Time)
2.1.1 Client
Client chính là khách hàng sử dụng dịch vụ Nó có thể là một tổ chức hay cá nhân cụ thểnào đó Và khi khái niệm này được sử dụng trong lĩnh vực kỹ thuật số thì cũng mang ý
Trang 5nghĩa tương tự như vậy Trong Client Server thì Client chính là một máy tính (Host).Chúng có khả năng nhận thông tin từ nhà cung cấp và sử dụng dịch vụ cụ thể (Server).2.1.2 Server
Server là từ dùng để nói về một máy chủ hoặc một phương tiện được sử dụng để phục vụcác dịch vụ nào đó Khi khái niệm này được sử dụng trong lĩnh vực công nghệ thì Server
là một máy tính từ xa Chúng có chức năng là cung cấp các thông tin (dữ liệu) cho mộtdịch vụ cụ thể nào đó hoặc quyền truy cập đối với dịch vụ
2.1.3 Ưu điểm của mô hình Client-Server
Ưu điểm của mô hình Client-Server:
Hệ thống tập trung với tất cả dữ liệu ở một nơi duy nhất
Chi phí hiệu quả đòi hỏi ít chi phí bảo trì hơn và có thể phục hồi dữ liệu.Dung lượng của Máy khách và Máy chủ có thể được thay đổi riêng biệt
Nhược điểm của mô hình Client-Server:
Máy khách dễ bị nhiễm vi-rút, Trojan và sâu nếu có trong Máy chủ hoặc được tảilên Máy chủ
Máy chủ dễ bị tấn công từ chối dịch vụ (DOS)
Các gói dữ liệu có thể bị giả mạo hoặc sửa đổi trong quá trình truyền
Lừa đảo hoặc lấy thông tin đăng nhập hoặc thông tin hữu ích khác của người dùng
là phổ biến và các cuộc tấn công MITM (Người đàn ông ở giữa) là phổ biến
Trang 62.2.1 Các tính năng của Firebase
a) Xây dựng các ứng dụng tốt hơn
Các dịch vụ bao gồm trong tính năng này là:
- Cơ sở dữ liệu thời gian thực
- Cloud Firestore
- Xác thực
- Cấu hình từ xa
- Lưu trữ
- Nhắn tin đám mây Firebase (FCM)
b) Cải thiện chất lượng ứng dụng
Trang 7Gói miễn phí cho người mới bắt đầu.
Cơ sở dữ liệu thời gian thực có sẵn
Trang 8PHẦN 3 CÀI ĐẶT CHƯƠNG TRÌNH VÀ KẾT QUẢ
3.1 Mô hình Client–Server ( ExpressJs, MongoDB)
3.1.1 Tổ chức code theo mô hình MVC
Controller tiếp nhận kết quả từ model chọn View phù hợp để hiển thị kết quả chongười dùng
Quá trình trên ra một luồng hoạt động mạch lạc giữa các thành phần của mô hìnhMVC, giúp quá trình phát triển và bảo trì ứng dụng dễ dàng hơn
Trang 93.1.2 Cài đặt lập trình phần mềm
Bước 1: Cài đặt các thư viện cần thiết
Bước 2: Cấu hình các tuyến đường
Trang 10Bước 3: Cấu hình Model
Trang 11Bước 4: Lập trình các chức năng trong Controller để tương tác với model
Trang 12Từ đó Model tiếp nhận và tương tác với Database
Bước 5: Lập trình giao diện
3.1.3 Mô tả về cách thức hoạt động của phần mềm
Từ phía Client sẽ tương tác với phần mềm qua Browser
Người dùng sẽ tương tác với các URL tương ứng với các chức năng đã được càiđặt trong phầm mềm
Trang 13Khi người dùng muốn cập nhật hay thêm một đối tượng vào phầm mềm sẽ tươngtác qua một form data và khi submit form sẽ gửi lên server một action và mộtforrm data.
Trang 14hiệu quả và nhanh chóng thông qua REST API và SDK Firebase Điều này giúp ứngdụng của bạn cung cấp các tính năng như chat thời gian thực, cập nhật trực tiếp và đồng
bộ dữ liệu trên nhiều người dùng
- Cấu trức dữ liệu các bảng trên Realtime Database
- Cách thức, vai trò của từng bảng dữ liệu:
Bảng Bags : Chứa dữ liệu giỏ hàng của từng User gồm các sản phẩm tươngứng trong bảng Products khi được người dùng chọn thêm vào giỏ hàng.Bảng HomePageImageLinks: Chứa các link ảnh quảng bá thương hiệu, giớithiệu sản phẩm
Bảng Products: Chứa dữ liệu từng sản phẩm
Bảng Users: Chứa dữ liệu của mỗi người dùng
3.2.1.2 Storage Storage là dịch vụ lưu trữ đám mây được cung cấp để lưu trữ tệp tin và nội dung
đa phương tiện Với Firebase Storage, bạn có thể lưu trữ hình ảnh, video, âm thanh và cácloại tệp tin khác một cách an toàn và dễ dàng truy cập từ ứng dụng của mình FirebaseStorage cũng cung cấp tính năng quản lý phân quyền truy cập tệp tin, giúp bạn kiểm soátviệc chia sẻ và truy cập dữ liệu một cách linh hoạt
- Cấu trúc dữ liệu trên Storage
- Cách thức, vai trò của từng folder:
Trang 15Folder HomePageImageLinks: Chứa các ảnh của quảng bá thương hiệu,giới thiệu sản phẩm trong phần mềm.
Folder Products: Chứa các ảnh của từng sản phẩm
- Xác thực tài khoản người dùng bằng email và password:
3.2.2 Cài đặt lập trình phầm mềm:
3.2.2.1 Thêm các thư viện Firebase cần thiết:
Trang 16- Đăng nhập vào tài khoản người dùng
3.2.2.3 Sử dụng Realtime Database
- Tạo đối tượng người dùng mới
Trang 17Model hồ sơ người dùng
Trang 18- Đọc các đối tượng sản phẩm
Model sản phẩm
Trang 20- Xóa đối tượng sản phẩm khỏi giỏ hàng
- Cập nhập đối tượng sản phẩm trong giỏ hàng
Trang 213.2.3 Mô tả cách hoạt động
- Tạo tài khoản người dùng
Giao diện:
Trang 22Cách thức hoạt động:
Khi người dùng nhập email và mật khẩu vào các ô và click vào “LOGIN” thì trên Firebase Authentication sẽ kiểm tra các tài khoản có tương ứng với email và mật khẩu mà người dùng đã nhập bên trên không Nếu đúng thì sẽ đăng nhập vào tài khoản, và không thì sẽ không cho đăng nhập
- Đọc dữ liệu các sản phẩm
Giao diện:
Trang 23Cách thức hoạt động
Ứng dụng đọc dữ liệu từ đối tượng cha “Products” trên Realtime Database,đọc từng đối tượng con bên trong , mỗi đối tượng con là 1 đối tượng sảnphẩm và đọc các thuộc tính của mỗi sản phẩm và hiển trị lên trên ứng dụng
- Thêm sản phẩm vào giỏ hàng
Giao diện:
Trang 24Cách thức hoạt động:
Trang 25Khi người dùng chọn màu và kích thước sản phẩm và nhấn “Add to Bag”,ứng dụng sẽ truy cập tới giỏ hàng của người dùng và thêm sản phẩm vàogiỏ hàng với các màu sắc, kích thước tương ứng.
- Cập nhập và xóa dữ liệu sản phẩm trong giỏ hàng
Giao diện