Tải bản đầy đủ (.docx) (55 trang)

Báo cáo Đồ án Cơ sở ngành mạng 10 điểm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.36 MB, 55 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN

CƠ SỞ NGÀNH MẠNG
Đề tài Nguyên lý hệ điều hành:

XÂY DỰNG CHƯƠNG TRÌNH GIẢI QUYẾT BÀI TOÁN
READERS WRITER
Đề tài Lập trình mạng:

XÂY DỰNG ỨNG DỤNG ANDROID NHẬN THÔNG BÁO TỪ
TRANG HỆ THỐNG THÔNG TIN SINH VIÊN SỬ DỤNG MÔ
HÌNH CLIENT SERVER
GVHD : TS. Lê Trần Đức
SVTH : Trần Văn Dương
MSSV : 102160211
LỚP : 16TCLC2
NHÓM : 16Nh15

Đà Nẵng, 12/2019

1


Đ Ồ ÁN
CƠ SỞ

MỤC LỤC



DANH MỤC HÌNH VẼ

2


Đ Ồ ÁN
CƠ SỞ

MỞ ĐẦU
PHẦN I: NGUYÊN LÝ HỆ ĐIỀU HÀNH
TIÊU ĐỀ: XÂY DỰNG CHƯƠNG TRÌNH GIẢI QUYẾT BÀI TOÁN
READERS WRITER
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1. Sơ lược về Hệ điều hành:
b) Khái niệm:
Hệ điều hành là một phần mềm chạy trên máy tính và các thiết bị di động, dùng
để điều hành, quản lý các thiết bị phần cứng và các tài nguyên phần mềm trên máy
tính, và các thiết bị di động. Hệ điều hành đóng vai trò trung gian trong việc giao
tiếp giữa người sử dụng và phần cứng máy tính, cung cấp một môi trường cho phép
người sử dụng phát triển và thực hiện các ứng dụng của họ một cách dễ dàng.

3

SVTH: Trần Văn Dương – Lớp 16TCLC2


Đ Ồ ÁN
CƠ SỞ


Hình 1: Một số hệ điều hành thông dụng hiện nay

-

-

-

c) Chức năng chủ yếu của hệ điều hành:
Quản lý chia sẻ tài nguyên: Tài nguyên của hệ thống (CPU, bộ nhớ, thiết bị ngoại
vi,...) vốn rất giới hạn, nhưng trong các hệ thống đa nhiệm, nhiều người sử dụng có
thể đồng thời yêu cầu nhiều tài nguyên. Hệ điều hành có cơ chế và chiến lược thích
hợp để quản lý việc phân phối tài nguyên. Ngoài yêu cầu dùng chung tài nguyên để
tiết kiệm chi phí, người sử dụng còn cần phải chia sẻ thông tin, tài nguyên phần
mềm lẫn nhau.
Giả lập một máy tính mở rộng: Hệ điều hành làm ẩn đi các chi tiết phần cứng,
người sử dụng được cung cấp một giao diện đơn giản, dễ hiểu, dễ sử dụng và không
phụ thuộc vào thiết bị phần cứng cụ thể.
Ngoài ra có thể chia chức năng của hệ điều hành theo bốn chức năng sau:
+ Quản lý tiến trình
+ Quản lý bộ nhớ
+ Quản lý hệ thống lưu trữ giao tiếp với người dùng

2. Tìm hiểu tiến trình là gì?
- Trong khoa học máy tính, tiến trình là một thực thể điều khiển đoạn mã lệnh có
riêng một không gian địa chỉ, có ngăn xếp riêng rẽ, có bảng chứa các số miêu tả tệp
được mở cùng tiến trình và đặc biệt là có một định danh (PID) duy nhất trong toàn
bộ hệ thống vào thời điểm tiến trình đang chạy.
- Một tiến trình là một chương trình đang được thực thi. Nhưng một chương trình
không phải là một tiến trình. Vì chương trình là một tệp, hay một thư mục bị động

nằm trên máy. Trong khi đó, một tiến trình là một chương trình đang hoạt động,
đang chạy và đã được tải lên bộ nhớ chính để hoạt động.

4


Đ Ồ ÁN
CƠ SỞ

- Một chương trình có thể có hai (hay nhiều) tiến trình đang chạy, nhưng chúng
được coi là hai (hay nhiều) quá trình độc lập với nhau.
- Các thay đổi trạng thái của một tiến trình được trình bày ở sơ đồ trạng thái sau:

Hình 2: Sơ đồ trạng thái của một tiến trình

+ New: tiến trình mới được tạo.
+ Running: tiến trình đang được thực thi/ chạy.
+ Waiting: tiến trình đợi I/O hoặc tín hiệu nào đó.
+ Ready: tiến trình sẵn sàng được CPU chạy.
+ Terminated: tiến trình hoàn thành việc.
- Những tiến trình của một chương trình cần phải tải lên bộ nhớ chính trước khi
được CPU nhận và thực hiện những yêu cầu của chương trình.
Các bước chuyển quá trình của tiến trình:
(1) Những tiến trình được chương trình tạo ra, được sắp vào “hàng chờ”
(2) Tiến trình được CPU thấy và thực thi.
(3) Khi trình quá lớn, CPU phải nhả để thực hiện tiến trình khác
(4) Khi tiến trình đã được thực hiện xong.
(5) Khi tiến trình đang thực hiện và yêu cầu I/O hay các tín hiệu khác.
Ví dụ:
Cần in ra một tệp văn bản, tiến trình sẽ phải nói cho CPU, CPU gửi tín hiệu cho

máy in, máy in in ra rồi báo lại CPU. Trong thời gian đó, để tiết kiệm thời gian, tiến
trình này sẽ được chuyển qua trạng thái chờ, cho tiến trình khác vào thực hiện.
(6) Sau khi I/O hay tín hiệu đã đến, tiến trình được sắp lại vào “hàng chờ”, chờ thực
thi.
a) Cấu trúc tiến trình:
Một tiến trình được đặc trưng bởi nhiều thuộc tính do hệ thống duy trì như:

5

SVTH: Trần Văn Dương – Lớp 16TCLC2


Đ Ồ ÁN
CƠ SỞ

Trạng thái của nó.
Định danh của nó.
Các giá trị của các thanh ghi, bao gồm cả bộ đếm chương trình.
Mã định danh người sử dụng có tên mà tiến trình đang thực hiện.
Thông tin được kernel sử dụng để thiết lập lịch biểu của các tiến trình.
Thông tin về không gian địa chỉ của tiến trình.
Thông tin về các nhập/xuất được tiến trình thực hiện.
Tính tương thích thông tin tổng kết các tài nguyên do tiến trình sử dụng.
b) Các loại tiến trình:
- Tiến trình tuần tự (MS_DOS) là các tiến trình mà điểm khởi tạo của nó là
điểm kết thúc của tiến trình trước đó.
- Tiến trình song song là các tiến trình mà điểm khởi tạo của tiến trình này
nằm ở thân của các tiến trình khác, tức là có thể khởi tạo một tiến trình mới
khi các tiến trình trước đó chưa kết thúc.
Trong này tiến trình song song được chia thành nhiều loại.

+ Tiến trình song song độc lập: Các tiến trình hoạt động song song nhưng
không có quan hệ thông tin với nhau.
+ Tiến trình song song có quan hệ thông tin : Trong quá trình hoạt động các
tiến trình trao đổi thông tin với nhau.
+ Tiến trình song song phân cấp : Trong qua trình hoạt động một tiến trình
có thể khởi tạo các tiến trình khác hoạt động song song với nó, tiến trình
khởi tạo được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con.
+ Tiến trình song song đồng mức: Là các tiến trình hoạt động song song sử
dụng chung tài nguyên theo nguyên tắc lần lượt, mỗi tiến trình sau một
khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho
tiến trình kia.
-

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ BÀI TOÁN
1. Yêu cầu bài toán:
- Giả sử khi có một tài nguyên chia sẻ đang được truy cập bởi nhiều tiến trình
khác nhau. Đó là Writer và Reader. Việc các tiến trình writer cùng thực hiện việc
ghi dữ liệu hoặc một tiến trình reader đọc dữ liệu và một tiến trình writer ghi dữ liệu
cũng thực hiện cùng một lúc thì sẽ dẫn đến xung đột dữ liệu.
- Tóm lại vấn đề chú ý ở đây: Sự xung đột dữ liệu, dữ liệu không nhất quán.
2. Mô tả bài toán:
- Chúng ta sẽ xây dựng một chương trình đơn giản mô phỏng sự truy cập dữ liệu
đồng thời của các tiến trình
- Mỗi tiến trình đọc dữ liệu từ tài nguyên sẽ không làm thay đổi dữ liệu nên sẽ cho
chép các tiến trình kiểu này truy cập đồng thời.

6


Đ Ồ ÁN

CƠ SỞ

- Đối với mỗi tiến trình ghi dữ liệu từ tài nguyên sẽ thực hiện một thay đổi khác
nhau của dữ liệu. Nên việc cho phép truy cập đồng thời truy cập dữ liệu để ghi sẽ
làm xung đột dữ liệu. Vậy các tiến trình ghi dữ liệu sẽ phải thực hiện tuần tự.
- Mặt khác, khi việc cho phép nhiều tiến trình đọc dữ liệu và một tiến trình ghi dữ
liệu cũng xảy ra trường hợp dữ liệu không nhất quán. Nên trường hợp này cũng
buộc phải không được xảy ra.
3. Sơ đồ hoạt động

Hình 3: Sơ đồ hoạt động

CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ
1. Môi trường triển khai
Hệ điều hành MacOS
Ngôn ngữ Java, IDE Eclipse
2. Triển khai
Bước 1: Khởi tạo các tiến trình reader và writer
-

TienTrinhReader reader1 = new TienTrinhReader("reader 1", 1200, 150);
TienTrinhReader reader2 = new TienTrinhReader("reader 2", 1200, 150);
TienTrinhReader reader3 = new TienTrinhReader("reader 3", 1200, 150);

TienTrinhWriter writer1 = new TienTrinhWriter("writer 1", 1200, 150);

7

SVTH: Trần Văn Dương – Lớp 16TCLC2



Đ Ồ ÁN
CƠ SỞ

TienTrinhWriter writer2 = new TienTrinhWriter("writer 2", 1200, 150);
TienTrinhWriter writer3 = new TienTrinhWriter("writer 3", 1200, 150);

(TienTrinhReader, TienTrinhWriter là đã được định nghĩa, mô tả ở phụ lục)

Bước 2: Khởi tạo giá trị ban đầu của dữ liệu chia sẽ dùng chung
MoPhongDuLieu dulieu = new MoPhongDuLieu(950+200, 200);
tailieu.content="Nội dung ban đầu";
(Lớp MoPhongDuLieu là đã được định nghĩa, mô tả ở phụ lục)

Bước 3: Biểu diễn ngẫu nhiên sự truy cập của các tiến trình
Vòng lặp
Random rd = new Random();
Sleep(rd.nextInt(5)*1000);

Tiến trình writer yêu cầu ghi
Kết thúc vòng lặp
...
Vòng lặp
Random rd = new Random();
Thread.sleep(rd.nextInt(5)*1000);

Tiến trình reader yêu cầu đọc dữ liệu
Kết thúc vòng lặp

Bước 4: Quan sát kết quả thu được, sửa lỗi, bổ sung


3. Thiết kế giao diện
a) Giao diện tiến trình writer:

8


Đ Ồ ÁN
CƠ SỞ

Hình 4: Tiến trình tiến hành ghi khi không có reader nào

Hình 5: Tiền trình bị block do đang cố gắng ghi khi có reader đang đọc dữ liệu
b) Giao diện tiến trình reader:

Hình 6. Tiến trình tiến hành đọc khi không có writer nào

9

SVTH: Trần Văn Dương – Lớp 16TCLC2


Đ Ồ ÁN
CƠ SỞ

Hình 7. Tiến trình bị block do đang cố gắng ghi khi có writer đang ghi dữ liệu

4. Kết quả chạy chương trình
a) Kết quả khi có một tiến trình writer đang truy cập:
Khi có một tiến trình writer đang truy cập, tất cả những tiến trình khác cố gắng truy

cập sẽ bị tạm block.

Hình 8. Mô phỏng quá trình writer đang ghi dữ liệu

10


Đ Ồ ÁN
CƠ SỞ

b) Kết quả khi có nhiều tiến trình reader truy cập để đọc dữ liệu
Khi có nhiều tiến trình reader đang đọc dữ liệu, những tiến trình writer nào cố gắng
truy cập để ghi sẽ bị tạm block

Hình 9. Mô phỏng quá trình những reader đang đọc dữ liệu

5. Đánh giá:
Chương trình đã thỏa mãn yêu cầu bài toán đặt ra về việc giải quyết xung đột giữa
các tiến trình khi cùng truy cập vào một vùng nhớ được chia sẻ tại cùng một thời
điểm.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết luận
Việc tìm hiểu cách giải quyết xung đột giữa các tiến trình khi cùng truy cập vào một
vùng nhớ được chia sẻ tại cùng một thời điểm đã giúp em hiểu rõ hơn về đặc điểm
cũng như cách tiếp cận giải quyết các vấn đề khác tương tự.

11

SVTH: Trần Văn Dương – Lớp 16TCLC2



Đ Ồ ÁN
CƠ SỞ

2. Hướng phát triển
Đồ án chỉ dừng lại trong phạm vi mô phỏng giải pháp giải quyết bài toán Readers
Writer

PHẦN II: LẬP TRÌNH MẠNG
TIÊU ĐỀ: XÂY DỰNG ỨNG DỤNG ANDROID NHẬN THÔNG BÁO
TỪ TRANG HỆ THỐNG THÔNG TIN SINH VIÊN SỬ DỤNG MÔ
HÌNH CLIENT SERVER
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1. Giao thức HTTP:
a) Định nghĩa
HTTP (HyperText Transfer Protocol - Giao thức truyền tải siêu văn bản) là một
trong các giao thức chuẩn về mạng Internet, được dùng để liên hệ thông tin giữa
Máy cung cấp dịch vụ (Web server) và Máy sử dụng dịch vụ (Web client), là giao
thức Client - Server dùng cho World Wide Web – WWW HTTP là một giao thức
ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet).

Hình 10. Giao thức HTTP

b) Phương thức hoạt động của giao thức HTTP?
HTTP hoạt động dựa trên mô hình Client – Server. Trong mô hình này, các máy
tính của người dùng sẽ đóng vai trò làm máy khách (Client). Sau một thao tác nào
đó của người dùng, các máy khách sẽ gửi yêu cầu đến máy chủ (Server) và chờ đợi
câu trả lời từ những máy chủ này. Hay nói cách khác, yêu cầu hiện tại không biết
những gì đã hoàn thành trong yêu cầu trước đó. HTTP cho phép tạo các yêu cầu gửi

và nhận các kiểu dữ liệu, do đó cho phép xây dựng hệ thống độc lập với dữ liệu
được chuyển giao.

12


Đ Ồ ÁN
CƠ SỞ

Hình 11. Sơ đồ hoạt động của HTTP

c) Các thành phần chính của HTTP:
HTTP Request:
- HTTP Request Method là phương thức để chỉ ra hành động mong muốn
được thực hiện trên tài nguyên đã xác định.
- Cấu trúc của một HTTP Request:
+ Một Request - line = Phương thức + URI–Request + Phiên bản HTTP.
Giao thức HTTP định nghĩa một tập các giao thức GET, POST, PUT,…
+ Có thể có hoặc không các trường header.
+ Một dòng trống để đánh dấu sự kết thúc của các trường Header.
+ Request Header Fields: Các trường header cho phép client truyền thông tin
bổ sung về yêu cầu, và về chính client, đến server. Một số trường:AcceptCharset, Accept-Encoding, Accept-Language, Authorization, Expect, From,
Host,…
+ Tùy chọn một thông điệp

13

SVTH: Trần Văn Dương – Lớp 16TCLC2



Đ Ồ ÁN
CƠ SỞ

Hình 12. Các phương thức của giao thức HTTP

HTTP - Responses:
- Cấu trúc của một HTTP response:
+ Một Status-line = Phiên bản HTTP + Mã trạng thái + Trạng thái
+ Có thể có hoặc không có các trường header
+ Một dòng trống để đánh dấu sự kết thúc của các trường header
+ Tùy chọn một thông điệp
Mã trạng thái: Thông báo về kết quả khi nhận được yêu cầu và xử lí bên
server cho client.
Các kiểu mã trạng thái:
1xx: Thông tin (100 -> 101)
2xx: Thành công (200 -> 206)
3xx: Sự điều hướng lại (300 -> 307)
4xx: Lỗi phía Client (400 -> 417)
5xx: Lỗi phía Server (500 -> 505)

14


Đ Ồ ÁN
CƠ SỞ

2. Mô hình Client-Server:
Mô hình client - server là một mô hình nổi tiếng trong mạng máy tính, được áp
dụng rất rộng rãi và là mô hình của mọi trang web hiện có. Ý tưởng của mô hình
này là máy con gửi một yêu cầu để máy chủ, máy chủ sẽ xử lý và trả kết quả về cho

máy khách. Một mô hình ngược lại là mô hình master - slaver, trong đó máy chủ sẽ
gửi dữ liệu đến máy con bất kể máy con có cần hay không.

Hình 13. Mô hình client - server.

a) Ưu điểm mô hình client server là gì?
Ưu điểm của mô hình client server là với mô hình client - server thì mọi thứ
dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa
(bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin,…) với nhiều dịch
vụ đa dạng mà mô hình cũ không thể làm được. Mô hình client - server cung cấp
một nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế
hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý…
b) Nhược điểm mô hình client server là gì?
Một trong những vấn đề nảy sinh trong mô hình này đó là tính an toàn và bảo
mật thông tin trên mạng. Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác nhau
cho nên dễ dàng xảy ra hiện tượng thông tin truyền trên mạng bị lộ.

15

SVTH: Trần Văn Dương – Lớp 16TCLC2


Đ Ồ ÁN
CƠ SỞ

3. Tìm hiểu Firebase Realtime Database:

Firebase Realtime database là một cloud hosted database hỗ trợ đa nền tảng:
Android, IOS và Web. Tất cả dữ liệu được lưu trữ ở định dạng JSON và với bất kể
một sự thay đổi dữ liệu nào thì có sự phản hồi ngay lập tức, hiển thị đồng bồ trên

các nền tảng và các thiết bị.

Hình 14. Mô hình hoạt động của Firebase Realtime Database
a) Dữ liệu được lưu trữ dạng Json:

Firebase Realtime Database lưu trữ dữ liệu theo định dạng JSON. Về cơ bản thì
toàn bộ dữ liệu là một cây JSON lớn cùng với nhiều điểm nút. Nên khi xây dựng dữ
liệu, chúng ta cần chuẩn bị một cấu trúc json để dễ dàng cho việc truy cập tránh việc
các nút con bị lồng nhau.

16


Đ Ồ ÁN
CƠ SỞ

Hình 15. Dữ liệu dạng JSON

17

SVTH: Trần Văn Dương – Lớp 16TCLC2


Đ Ồ ÁN
CƠ SỞ

b) Realtime:
Firebase Realtime Database sử dụng đồng bộ dữ liệu mối khi dữ liệu có thay đổi,
mọi thiết bị được kết nối sẽ nhận được thay đổi trong vài mili giây.


Hình 16. Sự đồng bộ dữ liệu giữa các thiết bị
c) Dữ liệu offline:

Khi người dùng ngoại tuyến, dữ liệu sẽ được lưu trên bộ nhớ cache của thiết bị
và tự động đồng bộ khi thiết bị quay lại trực tuyến. Tất cả là tự động

18


Đ Ồ ÁN
CƠ SỞ

Hình 17. Dữ liệu ngoại tuyến được đồng bộ khi trực tuyến

4. Tìm hiểu Firebase Cloud Messaging:
a) Giới thiệu:
Firebase Cloud Messaging (FCM) là một dịch vụ miễn phí của Google. Thông
qua FCM, nhà phát triển ứng dụng có thể gửi thông điệp một cách nhanh chóng, an
toàn tới các thiết bị cài đặt ứng dụng của họ.

19

SVTH: Trần Văn Dương – Lớp 16TCLC2


Đ Ồ ÁN
CƠ SỞ

b) Cách thức hoạt động:


Hình 18. Mô hình hoạt động Firebase Cloud Messaging

Trên đây, hình 18 mô tả luồng hoạt động của Firebase Cloud Messaging.
- Server sẽ soạn thảo tin nhắn cần thông báo tới người sử dụng ứng dụng.
- Firebase sẽ chịu trách nhiệm gửi tới các thiết bị cài đặt ứng dụng.
Như vậy, để các thiết bị có thể nhận được thông điệp, Firebase phải xác đinh thông
qua một mã gọi là Token khi thiết bị cài đặt ứng dụng.

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

20


Đ Ồ ÁN
CƠ SỞ

1. Yêu cầu bài toán
- Trang sv.dut.udn.vn (Hệ thống thông tin sinh viên - Trường Đại học Bách Khoa Đại học Đà Nẵng), hiện tại có 4 vấn đề đang gặp phải:
+ Vấn đề về “Thông báo chung”: sự bất tiện của hệ thống này khi buộc sinh
viên phải chủ động kiểm tra thông báo trên trang sv.dut.udn.vn. Đặc biệt vào
mùa hè khi mà sinh viên vẫn đang nghỉ giải lao thì trường lại thông báo làm
một số việc, khiến sinh viên bỏ lỡ.
+

Vấn đề về “TB lớp học phần”: Khi một giảng viên dạy bù hoặc nghỉ một
buổi của học phần nào đó. Sẽ có thông báo trên trang đào tạo nhưng sinh
viên chỉ chủ động liên tục kiểm tra ở trang web mới có thể biết được thông
báo đó. Khắc phục nhược điểm trên giảng viên thường gửi mail đến lớp
trưởng của lớp học đó. Nhưng đối với những sinh viên học trái lớp, học
ghép, học vượt, … thì lại bị bỏ lỡ thông báo.


+ Lịch học của các môn: Trang web thường xảy ra tình trạng không đăng nhập
được. Nên rất khó xem lại lịch trong nhiều trường hợp.
+ Tuần học hiện tại: Tuần học hiện là bao nhiêu thì rất mơ hồ. Chẳng hạn, thầy
cô thường thông báo là tuần 34 thi giữa kỳ. Sinh viên không biết chắc chắn
thời gian.
- Yêu cầu bài toán đặt ra: Khi trường thông báo một số công việc, thầy cô thông báo
nghỉ học hoặc học bù, sinh viên không bỏ lỡ.

2. Mô tả bài toán
Xây dựng ứng dụng Android thông báo từ việc lấy dữ liệu từ sv.dut.udn.vn:
- Xây dựng ứng dụng Android
- Đăng nhập và đăng xuất
- Nhận "Thông báo chung”
- Nhận “Thông báo đến lớp học phần"
- Xem lịch học các môn ngoại tuyến
- Luôn hiển tuần học hiện tại là bao nhiêu, chính xác, ngoại tuyến
- Xem tổng hợp sơ bộ về kết quả học tập

3. Thiết kế hệ thống

Hệ thống gồm máy chủ và các máy điện thoại Android :
- Server :

21

SVTH: Trần Văn Dương – Lớp 16TCLC2


Đ Ồ ÁN

CƠ SỞ

+ Xử lý thông báo: Mỗi thời gian 5 phút, sẽ thực hiện lấy dữ liệu thông báo
sv.dut.udn.vn bằng giao thức HTTP
+ Xử lý về tuần học: Mỗi 5 phút, lấy dữ liệu về tuần học từ
dut.udn.vn/LichTuan21 bằng giao thức HTTP
+ Xử lý đăng nhập: Lấy thông tin đăng nhập của client gửi lên, gửi qua
sv.dut.udn.vn để lấy thông tin và trả về kết quả đăng nhập.
+ Lưu các dữ liệu vào Database MySQL về những thông báo, học phần sinh
viên, điểm số của sinh viên, token của thiết bị,…
+ Lưu các thông báo, tuần học, học phần của từng sinh viên trên Firebase
Realtime Database để truy cập đồng thời nhiều sinh viên, đảm bảo thời gian truy
cập ngắn
+ Gửi thông điệp đến Firebase Cloud Messaging, để thông báo đẩy đến các thiết
bị Android.
- Client (thiết bị Android) :
+ Đăng nhập và đăng xuất: Gửi thông tin mã số sinh viên và mật khẩu lên server
để yêu cầu đăng nhập.
+ Nhận thông báo đẩy từ Firebase Cloud Messaging
+ Xem thông báo, tuần học, học phần từ dữ liệu trên Firebase Realtime Database
mà server đã đặt vào

3. Sơ đồ hoạt động
a) Sơ đồ hoạt động

22


Đ Ồ ÁN
CƠ SỞ


Hình 19. Sơ đồ hoạt động của ứng dụng

b) Mô tả sơ đồ:
- Quá trình đăng nhập:
(1) Client gửi thông tin đăng nhập và token lên server
(2) Server tiến hành lấy thông tin đăng nhập để lấy được thông tin sinh viên về
thông tin cá nhân và học phần của sinh viên này
(3.1) Lưu thông tin cá nhân, và học phần về cơ sở dữ liệu MySQL
(3.2) Lưu học phần vào Firebase Realtime Database
(3.3) Phản hồi kết quả đăng nhập
- Quá trình server xử lý thông báo:
(4) Sau mỗi 30 phút, server tiến hành lấy dữ liệu thông báo từ trang sv.dut.udn.vn
(5.1), (5.2) Dựa vào dữ liệu thông báo và dữ liệu sinh viên, tiến hành phân tích
thông báo đến từng sinh viên
(6.1) Lưu dữ liệu thông báo vào Firebase Realtime Database để client truy cập
(6.2) Gửi thông báo và token lên Firebase Cloud Messaging
(7) Firebase Cloud Messaging có nhiệm vụ phân phát thông báo đến clien dựa vào
token
- Quá trình server xử lý dữ liệu về tuần học:

23

SVTH: Trần Văn Dương – Lớp 16TCLC2


Đ Ồ ÁN
CƠ SỞ

(8) Sau mỗi 30 phút, server tiến hành lấy dữ liệu tuần học từ trang

dut.udn.vn/lichtuan21
(9) Lưu dữ liệu tuần học về Firebase Realtime Database
- Quá trình client xem thông báo, lịch tuần và học phần:
(10) Client lấy dữ liệu thông báo, lịch tuần và học phần dựa vào nút “Mã Sinh Viên“

CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
1. Môi trường triển khai
- Hệ điều hành MacOS, Android
- Ngôn ngữ: Java, XML, Javascript (Node JS)
- Trình soạn thảo: IDE Eclipse, Android Studio, Notepad++, WebStorm

2. Các công việc
- Triển khai việc lấy dữ liệu từ trang sv.dut.udn.vn bằng giao thức HTTP
- Triển khai việc lấy dữ liệu tuần học từ dut.udn.vn/LichTuan21
- Triển khai gửi thông tin đăng nhập từ client gửi qua sv.dut.udn.vn để đăng nhập,

lấy thông tin sinh viên.
- Thiết kết cơ sở dữ liệu và triển khai kết nối cơ sở dữ liệu MySQL trên server để
lưu thông tin về những thông báo, học phần sinh viên, điểm số của sinh viên,
token của thiết bị,…
- Triển khai cấu hình Firebase Database Realtime để lưu các dữ liệu thông báo,
học phần, tuần học. Qua đó, các thiết bị có thể truy cập đồng thời dữ liệu theo
thời gian thực.
- Triển khai cấu hình các thông tin về Firebase Cloud Messaging trên server để đẩy
các thông báo đẩy về cho các thiết bị. Mục đích để nhắc sinh viên có thông báo.
3. Thiết kế giao diện
a. Giao diện Client

- Giao diện đăng nhập: gồm ô nhập mã sinh viên, mật khẩu và nút đăng nhập


24


Đ Ồ ÁN
CƠ SỞ

Hình 20. Giao diện đăng nhập

-

25

Giao diện trang cá nhân, thống kê một số thông tin về sinh viên

SVTH: Trần Văn Dương – Lớp 16TCLC2


×