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

BÁO CÁO MÔN HỌC CƠ SỞ NGÀNH MẠNG Xây dựng ứng dụng trên máy điện thoại quản lý quản lý lịch làm việc cá nhân. Chương trình cho phép kết nối với Google Calendar để đồng bộ dữ liệu

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 (619.51 KB, 43 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 MÔN HỌC
CƠ SỞ NGÀNH MẠNG
ĐỀ TÀI :
NGUYÊN LÝ HỆ ĐIỀU HÀNH:
Tìm hiểu kỹ thuật lập trình Hook. Xây dựng ứng
dụng hỗ trợ soạn thảo và tra cứu từ vựng tiếng anh
LẬP TRÌNH MẠNG:
Xây dựng ứng dụng trên máy điện thoại quản lý quản
lý lịch làm việc cá nhân. Chương trình cho phép kết
nối với Google Calendar để đồng bộ dữ liệu.


MỤC LỤ

CHƯƠNG 1: NGUYÊN LÝ HỆ ĐIỀU HÀNH.......................................................1
1.1.
1.2.

Giới thiệu đề tài............................................................................................1
Cơ sở lý thuyết..............................................................................................2
1.2.1. Khái niệm về Hook..............................................................................2
1.2.2. Cơ chế hoạt động của Hook.................................................................2
1.2.3. Phân loại Hook.....................................................................................3
1.2.4. Cách cài đặt Hook................................................................................4
1.2.5. Cách giải phóng Hook..........................................................................4
1.2.6. Ứng dụng của Hook.............................................................................5
1.3. Giải quyết bài toán........................................................................................6


1.3.1. Các bước giải quyết bài toán................................................................6
1.3.2. Kết quả thực hiện.................................................................................7
CHƯƠNG 2: LẬP TRÌNH MẠNG..........................................................................9
2.1.
2.2.

Giới thiệu đề tài............................................................................................9
Cơ sở lý thuyết..............................................................................................9
2.2.1. Use-case...............................................................................................9
2.2.2. Client-Server......................................................................................10
2.2.3. SQL Server.........................................................................................11
2.3. Giải quyết bài tốn......................................................................................12
2.3.1. Các bước giải quyết bài tốn..............................................................12
1)
Phân tích và vẽ sơ đồ use-case của hệ thống...................................12
2)
Phân tích các bảng cơ sở dữ liệu.....................................................12
3)
Phân tích và xây dựng cấu trúc server và client..............................13
2.3.2. Kết quả thực hiện...............................................................................14
CHƯƠNG 3: PHỤ LỤC + MÃ NGUỒN.................................................................18
3.1.

Nguyên lý hệ điều hành..............................................................................18
3.1.1. Đọc dữ liệu từ file:.............................................................................18
3.1.2. Cài đặt Hook:.....................................................................................19
3.1.3. Khởi tạo màn hình gợi ý:....................................................................22
3.2. Lập trình mạng............................................................................................25
3.2.1. Server.................................................................................................25
3.2.2. Client..................................................................................................38



DANH SÁCH HÌNH ẢNH

STT

Hình

Nội dung

1

1.1

Mơ hình Hook

2

1.2

Hiển thị gợi ý khi soạn thảo trên Excel

3

1.3

Hiển thị gợi ý khi soạn thảo trên Notepad

4


1.4

Hiển thị gợi ý khi soạn thảo trên Chrome browser

5

2.1

Sơ đồ use case của hệ thống quản lý cơng việc

6

2.2

Màn hình hiển thị danh sách cơng việc

7

2.3

Màn hình xem chi tiết và chỉnh sửa cơng việc

8

2.4

Màn hình tạo mới công việc

9


2.5

Dữ liệu công việc được đồng bộ lên Google Calendar

DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt

Diễn giải

ID

Identity

ADD

Adding

API

Application Programming Interface

SQL

Structured Query Language

IIS

Internet Information Services

HTTP

SYNC

Hyper-Text Transfer Protocol
Synchronize

MỞ ĐẦU


1.

Tổng quan về đề tài
- Nội dung các đề tài gắn liền với thực tiễn công việc và học tập của sinh
viên.
- Việc vận dung các kiến thức đã học để giải quyết các bài toán trong cuộc
sống nhằm giúp nâng cao khả năng xử lý và giải quyết vấn đề thực tiễn.

2.

Mục đích và ý nghĩa của đề tài

2.1. Mục đích
- Đi sâu và nắm vững một cách có hệ thống kiến thức đã thu nhận được trong
quá trình học lí thuyết, làm bài tập và thực hành.
- Từng bước làm quen với các cơng tác khoa học có định hướng của giáo viên
hướng dẫn và hình thành hành vi nghiên cứu độc lập có sự trợ giúp của tài liệu tham
khảo.
- Gắn q trình học lí thuyết với cơng tác nghiên cứu thực tế.
- Trình bày rõ ràng và khoa học một vấn đề thuộc lĩnh vực nghiện cứu của
mình.
2.2. Ý nghĩa

- Kết quả của cơng việc phản ánh cơng sức, tài năng, trí tuệ của người làm đồ
án và phải được trình bày bằng văn bản trong đồ án môn học theo những chuẩn mực
và yêu cầu của giáo viên hướng dẫn.
- Đồ án môn học phản ánh cơng sức nghiên cứu nên cần phải được trình bày
trước bộ môn và được đánh giá bằng điểm số. Việc trình bày đúng, rõ ràng, ngắn
gọn và khoa học chỉ có được ở những sinh viên có q trình lao động nghiêm túc
cho đề tài và có chuẩn bị đầy đủ kiến thức trong lĩnh vực nghiên cứu đề tài.

3 .Bố cục của đồ án
Báo cáo đồ án bao gồm các nội dung sau:


Mở đầu
Chương 1: Nguyên lý hệ điều hành
Chương 2: Lập trình mạng
Chương 3: Phụ lục
Kết luận và hướng phát triển
Tài liệu tham khảo


Báo cáo đồ án cơ sở ngành mạng

CHƯƠNG 1:

NGUYÊN LÝ HỆ ĐIỀU HÀNH

1.1. Giới thiệu đề tài
Đề tài: Tìm hiểu kỹ thuật lập trình Hook. Xây dựng tra cứu hỗ trợ tra cứu từ
điển và soạn thảo văn bản tiếng Anh.
Mô tả vấn đề:

-

Việc soạn thảo văn bản tiếng anh thường gây ra lỗi chính tả, sai ngữ nghĩa
của câu hay mọi người thường khó khăn khi ghi nhớ các từ vựng, vì vậy để
giúp đỡ người soạn thảo có thể nhanh chóng và làm việc chính xác, ta cần
một công cụ nhằm hỗ trợ tra cứu các thông tin về từ ngữ và ngữ cảnh.

Yêu cầu bài toán:
-

Phải tự động truy xuất đến dữ liệu có liên quan đến nội dung người soạn
thảo đang sử dụng để hỗ trợ , gợi ý từ ngữ phù hợp với ngữ cảnh.

-

Kĩ thuật được sử dụng để giải quyết vấn đề đặt ra là sử dụng Hook

Hình 1.1: Mơ hình Hook

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi

1


Báo cáo đồ án cơ sở ngành mạng

1.2. Cơ sở lý thuyết
1.2.1. Khái niệm về Hook

Trong Windows, khi chúng ta thực hiện các thao tác nhấp chuột, nhấn
phím… thì hệ điều hành sẽ chuyển các sự kiện này thành các thông điệp (message)
rồi đưa vào hàng đợi (queue) của hệ thống. Sau đó, các thơng điệp được trao lại cho
từng ứng dụng cụ thể để xử lý.
Hook là một cơ chế mà một ứng dụng có thể chặn các sự kiện, như các thơng
điệp, thao tác chuột, bàn phím. Hàm dùng để chặn một loại sự kiện riêng biệt được
gọi là hook procedure/ Hook function (thủ tục hook / hàm hook) hoặc Filter
Function (hàm lọc) . Mỗi khi nhận được sự kiện, hookprocedure có thể thay đổi và
thậm chí hủy bỏ các sự kiện đó.
Các mơ hình Hook:
-

Local hook: Là kỹ thuật Hook dùng để bẫy sự kiện ngay trong tiến trình cài

đặt.
-

Remote hook: Là kỹ thuật Hook cho phép bẫy các sự kiện thuộc tiến trình của

ứng dụng khác. Trong mơ hình này lại tồn tại hai kiểu hook khác :
+
+

Thread-specific : Kiểu Hook này sẽ bẫy sự kiện của một luồng cụ thể.
System-wide : Bẫy sự kiện của tất cả các luồng trong tất cả các tiến

trình đang thi hành trong hệ thống.
Hook là một kỹ thuật xử lý thông điệp rất mạnh cho phép chúng ta can thiệp
sâu vào các tiến trình khác nhau, nhưng nó làm ảnh hưởng tới tốc độ của hệ thống,
nhất là hook system-wide. Vì tất cả các sự kiện của hệ thống sẽ được định hướng tới

một hàm nào đó, rõ ràng điều này làm hệ thống chậm đi đáng kể. Vì thế ta chỉ hên
hook những thông điệp thật cần thiết và kết thúc việc hook ngay khi không dùng
đến nữa.
1.2.2. Cơ chế hoạt động của Hook
Có nhiều loại hook (như chuột, bàn phím) và hệ điều hành ln duy trì một
danh sách các hook procedure cho mỗi loại đó. Mỗi danh sách các Hook procedure
này được gọi là hookchain(chuỗi hook) . Bản chất của hook chain là một dãy các
con trỏ hàm trỏ đến các Hook procedure.

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 2


Báo cáo đồ án cơ sở ngành mạng

Khi hệ thống thực hiện một sự kiện nào đó, nó sẽ tìm kiếm trong hook chain
tương ứng với sự kiện đó. Nếu một hook procedure phù hợp được tìm thấy, hệ
thống sẽ thực hiện nó và chỉ lấy lại quyền điều khiển sau khi hook chain kết thúc.
Vì thế khi một hook procedure thực hiện xong, nó phải thực hiện việc chuyển quyền
điều khiển cho hook procedure kế tiếp trong hook chain.
Tuy nhiên cơ chế này còn tùy thuộc vào loại hook. Như một số loại hook chỉ
có thể theo dõi các thơng điệp, vì vậy cho dù hook procedure có chuyển quyền điều
khiển cho hook procedure kế tiếp hay không, hệ thống vẫn sẽ tự động làm việc này.
Một điểm cần lưu ý là hook sẽ làm chậm hệ thống, vì thế bạn chỉ nên cài đặt hook
khi cần thiết và loại bỏ nó khi đã hồn tất cơng việc.
1.2.3. Phân loại Hook
Có nhiều loại hook được phân biệt dựa vào các sự kiện, thông điệp mà Hook
procedure can thiệp vào. Danh sách dưới đây liệt kê các loại hook:
 WH_CALLWNDPROC and WH_CALLWNDPROCRET : cho phép bạn

theo dõi các thông điệp gởi đến các thủ tục cửa sổ (window procedure).
 WH_CBT : Hệ thống gọi thủ tục hook WH_CBT : trước khi activating,
creating, destroying, minimizing, maximizing, moving, hoặcsizing một
cửa sổ ; trước khi hoàn thành một lệnh hệ thống, trước khi loại bỏ một sự
kiện chuột hoặc bàn phím từ hàng đợi thông điệp hệ thống …
 WH_DEBUG : Hệ thống gọi một thủ tục hook WH_DEBUG trước khi
gọi một thủ tục hook kết hợp với bất kỳ hook khác trong hệ thống.
 WH_FOREGROUNDIDLE: Các hook WH_FOREGROUNDIDLE cho
phép bạn thực hiện các tác vụ ưu tiên thấp trong thời gian tác vụ đó đang
ở chế độ foreground idle.
 WH_GETMESSAGE : Hook WH_GETMESSAGE cho phép một ứng
dụng theo dõi các thông điệptrả về bởi hàm GetMessage hoặc
PeekMessage.

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 3


Báo cáo đồ án cơ sở ngành mạng

 WH_JOURNALPLAYBACK :

Các

hook WH_JOURNALPLAYBACK cho phép một ứng dụng chèn thêm
các thông điệp vào hàng đợi thông điệp hệ thống.
 WH_JOURNALRECORD:

Các


hook WH_JOURNALRECORD cho

phép bạn giám sát và ghi lại các sự kiện đầu vào.
 WH_KEYBOARD_LL : Các hook WH_KEYBOARD_LL cho phép bạn
theo dõi các sự kiện bàn phím trong hàng đợi ứng dụng.
 WH_KEYBOARD : Hook WH_KEYBOARD cho phép một ứng dụng
theo

dõi

lưu

lượng

truy

cập

thông

điệp WM_KEYDOWN và WM_KEYUP được

điệp
trả

của

về


bởi

thông
hàm

GetMessage hoặc PeekMessage.
 WH_MOUSE_LL : Các hook WH_MOUSE_LL cho phép bạn theo dõi
các sự kiện chuột trong hàng đợi ứng dụng.
 WH_MOUSE : Các hook WH_MOUSE cho phép bạn theo dõi các thông
điệp chuột được trả về bởi hàm GetMessage hoặc PeekMessage.
 WH_MSGFILTER and WH_SYSMSGFILTER : Cho phép theo dõi
chính các thơng điệp được xử lý bởi menu, scrollbar, dialog…
1.2.4. Cách cài đặt Hook
Một thủ tục hook có thể được cài đặt vào chuỗi hook bằng việc gọi hàm
SetWindowsHookEx và chỉ ra kiểu hook đang gọi thủ tục, việc cài đặt hook có thể
thực hiện trên mọi tiến trình trong hệ thống.
Nếu sử dụng hook tồn cục thì phải đặt trong thư viện liên kết động (DLL).
Ứng dụng muốn sử dụng thư viện liên kết động phải lấy được handle của thư viện
đó. Để nhận Handle của thư viện liên kết động ta có thể sử dụng hàm LoadLibrary
với tham số là tên của thư viện. Sau khi có được Handle của DLL, ta sẽ lấy địa chỉ
của thủ tục hook trong thư viện liên kết động thông qua hàm GetProcAddress. Sau
khi đã có thủ tục hook, sử dụng hàm SetWindowsHookEx để cài đặt thủ tục hook
vào trong chuỗi hook.

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 4


Báo cáo đồ án cơ sở ngành mạng


1.2.5. Cách giải phóng Hook
Một hook nên được bỏ đi nếu như khơng cần thiết nữa bằng cách sử dụng
hàm UnhookWindowsHookEx.
Với thread-specific hook, việc sử dụng hàm UnhookWindowsHookEx sẽ giải
phóng thủ tục hook. Tuy nhiên với hook tồn cục (system-wide hook) thì hàm này
không thể trả tự do cho hàm DLL. Việc gọi hàm LoadLibrary sẽ gọi trong ngữ cảnh
của tất cả các tiến trình, tuy nhiên hàm FreeLibrary thì khơng thể thực hiện với các
tiến trình khác. Vì vậy, khơng có cách nào để giải phóng DLL. Hệ thống chỉ có thể
giải phóng DLL khi tất cả các tiến trình liên kết tới DLL đó phải kết thúc hoặc gọi
FreeLibrary.
Giải pháp đặt ra cho vấn đề này là xây dựng hàm cài đặt ngay trong thư viện
DLL. Bằng việc liên kết tới DLL, ứng dụng có thể cài đặt hook. Và ngay trong DLL
cũng phải có hàm giải phóng hook để giải phóng khi khơng cần đến nữa.
1.2.6. Ứng dụng của Hook
Hook cung cấp các khả năng mạnh cho các ứng dụng chạy trên nền
Windows, các ứng dụng này có thể dùng hook để :


Xử lý hoặc định nghĩa tất cả các thông điệp cho dialog box, message box,
scroll

bar,

hoặc

menu

của


một

ứng

dụng.

(Sử

dụng

hook WH_MSGFILTER).
 Xử lý hoặc định nghĩa tất cả các thông điệp cho dialog box, message box,
scroll bar, hoặc menu của hệ thống. (Sử dụng hook WH_SYSMSGFILTER).
 Xử lý hoặc định nghĩa tất cả các thơng điệp (bất chấp là thơng điệp gì) của hệ
thống mỗi khi GetMessage hoặc PeekMessage được gọi. (Sử dụng
hook WH_GETMESSAGE).
 Xử lý hoặc định nghĩa tất cả các thông điệp (bất chấp là thơng điệp gì) của hệ
thống

mỗi

khi

SendMessage

được

gọi.

(Sử


dụng

hook WH_CALLWNDPROC).
 Thu (Record) và phát lại (Playback) các sự kiện keyboard và mouse . (Sử
dụng hook WH_JOURNALRECORD, WH_JOURNALPLAYBACK).

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 5


Báo cáo đồ án cơ sở ngành mạng

 Xử lý , định nghĩa hoặc hủy bỏ tất cả các sự kiện bàn phím.(Sử dụng
hook WH_KEYBOARD).
 Xử lý , định nghĩa hoặc hủy bỏ tất cả các sự kiện chuột (Sử dụng
hook WH_MOUSE).
Tận dụng các khả năng trên, các ứng dụng có thể sử dụng hook để :
 Cung cấp phím trợ giúp F1 hỗ trợ menu, dialog box và message box (Sử
dụng hook WH_MSGFILTER).
 Cung cấp các tính năng thu và phát các sự kiện mouse và keyboard, thường
được gọi là các macro. (Sử dụng hook WH_JOURNALRECORD,
WH_JOURNALPLAYBACK).
 Theo dõi các thông điệp để biết được thông điệp nào được gởi đến cửa sổ
nào cũng như các hành động nào sẽ làm phát sinh thông điệp tương ứng. (Sử
dụng hook WH_GETMESSAGE & WH_CALLWNDPROC). Chương trình
Spy trong bộ Win32™ SDK của Windows NT đã rất thành công trong việc
sử dụng hook để thực hiện tác vụ này.
1.3. Giải quyết bài toán

1.3.1. Các bước giải quyết bài toán
Các bước giả quyết bài toán:
 Bước 1: Khởi tạo dữ liệu từ điển.
 Bước 2: Cài đặt hook keyboad để bắt trạng thái nhấn phím của người
dùng trên hệ thống.
 Bước 3: Cài đặt hook mouse để xác định vị trí con trỏ soạn thảo văn bản
trên các ứng dụng.
 Bước 4: Khi bắt được dữ liệu nhập từ bàn phím, chương trình sẽ kiểm tra
xem dữ liệu đã có trong từ điển hay chưa:
 Bước 4.1: Nếu có thì lọc danh sách rồi hiển thị cửa sổ gợi
ý.

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 6


Báo cáo đồ án cơ sở ngành mạng

 Bước 4.2: Nếu khơng tìm thấy dữ liệu thì thực hiện ẩn cửa
sổ gợi ý.
1.3.2. Kết quả thực hiện

Hình 1.2: Hiển thị gợi ý khi soạn thảo trên Excel

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 7



Báo cáo đồ án cơ sở ngành mạng

Hình 1.3: Hiển thị gợi ý khi soạn thảo trên Notepad

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 8


Báo cáo đồ án cơ sở ngành mạng

Hình 1.4: Hiển thị gợi ý khi soạn thảo trên Chrome browser

CHƯƠNG 2:

LẬP TRÌNH MẠNG

2.1. Giới thiệu đề tài
Đề tài: Xây dựng ứng dụng trên máy điện thoại quản lý lịch làm việc cá nhân.
Chương trình cho phép kết nối với Google Calendar để đồng bộ dữ liệu.
Mô tả vấn đề:
-

Người dùng thường quản lý công việc cá nhân của sinh viên bằng các thao
tác thủ công, và việc lưu trữ thông tin nội dung cơng việc cũng gặp nhiều
khó khăn. Ứng dụng quản lý công việc sẽ thực hiện chức năng quản lý, lưu
trữ thơng tin để có thể dễ dàng đồng bộ khi online.

Yêu cầu đặt ra:
-


Sinh viên tạo một lịch học mới hay một việc làm thêm.

-

Sinh viên sửa đổi thông tin công việc cần thực hiện.

-

Sinh viện thực hiện xóa các cơng việc đã làm.

-

Sinh viên đồng bộ dữ liệu lên google calenda

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 9


Báo cáo đồ án cơ sở ngành mạng

2.2. Cơ sở lý thuyết
2.2.1. Use-case
Use case là một kỹ thuật được dùng trong kỹ thuật phần mềm và hệ thống để
nắm bắt yêu cầu chức năng của hệ thống. Use case mô tả sự tương tác đặc trưng
giữa người dùng bên ngoài (actor) và hệ thống. Nó thể hiện ứng xử của hệ thống đối
với bên ngoài, trong một hoàn cảnh nhất định, xét từ quan điểm của người sử dụng.
Nó mơ tả các yêu cầu đối với hệ thống, có nghĩa là những gì hệ thống phải làm chứ
khơng phải mơ tả hệ thống làm như thế nào. Tập hợp tất cả Use case của hệ thống

sẽ mô tả tất cả các trường hợp mà hệ thống có thể được sử dụng.
Mỗi use case mô tả cách thức actor tương tác với hệ thống để đạt được mục
tiêu nào đó. Một hoặc nhiều kịch bản (scenario) có thể được tạo ra từ mỗi use case,
tương ứng với chi tiết về mỗi cách thức đạt được mục tiêu nào đó. Khi mơ tả Use
case, người ta thường tránh dùng thuật ngữ kỹ thuật, thay vào đó họ sử dụng ngơn
ngữ của người dùng cuối hoặc chuyên gia về lĩnh vực đó. Để tạo ra use case, cần
phải có sự hợp tác chặt chẽ giữa người phân tích hệ thống và người dùng cuối. Một
trong những cách biểu diễn trực quan phổ biến hiện nay là lược đồ use
case của UML.
2.2.2. Client-Server
Mơ hình client server hay cịn được gọi là mơ hình khách – chủ
Trong mơ hình client server thì máy khách là các máy tính, các thiết bị điện tử như
máy in, máy fax,….các máy khách client gửi yêu cầu đến máy chủ server. máy chủ
server tiếp nhận yêu cầu, xử lý các yêu cầu đó và trả về kết quả
Nguyên lý hoạt động :


Client Trong mơ hình client/server, người ta cịn định nghĩa cụ thể cho một

máy client là một máy trạm mà chỉ được sử dụng bởi 1 người dùng với để muốn thể
hiện tính độc lập cho nó. Máy client có thể sử dụng các hệ điều hành bình thường
như Win9x, DOS, OS/2… Bản thân mỗi một client cũng đã được tích hợp nhiều
chức năng trên hệ điều hành mà nó chạy, nhưng khi được nối vào một mạng LAN,
WAN theo mơ hình client/server thì nó cịn có thể sử dụng thêm các chức năng do
SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 10


Báo cáo đồ án cơ sở ngành mạng


hệ điều hành mạng (NOS) cung cấp với nhiều dịch vụ khác nhau (cụ thể là các dịch
vụ máy chủ trên mạng này cung cấp), ví dụ như nó có thể u cầu lấy dữ liệu từ một
server hay gửi dữ liệu lên server đó…


Thực tế trong các ứng dụng của mơ hình client/server, các chức năng hoạt

động chính là sự kết hợp giữa client và server với sự chia sẻ tài nguyên, dữ liệu trên
cả hai máy Vai trò của client Trong mơ hình client/server, client được coi như là
người sử dụng các dịch vụ trên mạng do một hoặc nhiều máy chủ cung cấp và
server được coi như là người cung cấp dịch vụ để trả lời các yêu cầu của các clients.
Điều quan trọng là phải hiểu được vai trò hoạt động của nó trong một mơ hình cụ
thể, một máy client trong mơ hình này lại có thể là server trong một mơ hình khác.
Ví dụ cụ thể như một máy trạm làm việc như một client bình thường trong
mạng LAN nhưng đồng thời nó có thể đóng vai trò như một máy in chủ (printer
server) cung cấp dịch vụ in ấn từ xa cho nhiều người khác (clients) sử dụng.
Client được hiểu như là bề nổi của các dịch vụ trên mạng, nếu có thơng tin
vào hoặc ra thì chúng sẽ được hiển thị trên máy client.
2.2.3. SQL Server
SQL, viết tắt của Structured Query Language (ngôn ngữ hỏi có cấu
trúc), là cơng cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu đuợc lưu trữ trong
các cơ sở dữ liệu. SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng
để t ương tác với cơ sở dữ liệu quan hệ.
Khả năng của SQL vượt xa so với một công cụ truy xuất dữ liệu, mặc d ù
đây là mục đích ban đầu khi SQL được xây dựng nên và truy xuất dữ liệu vẫn còn là
một trong những chức năng quan trọng của nó. SQL được sử dụng để điều khiển tất
cả các chức năng m à một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao
gồm:
 Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu,

các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành
phần dữ liệu.

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 11


Báo cáo đồ án cơ sở ngành mạng

 Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng thực hiện
các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ
liệu.
 Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các
thao tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ
liệu
 Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ
sở dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các
thao tác cập nhật cũng như các lỗi của hệ thống.

2.3. Giải quyết bài toán
2.3.1. Các bước giải quyết bài toán
1) Phân tích và vẽ sơ đồ use-case của hệ thống

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 12


Báo cáo đồ án cơ sở ngành mạng


2) Phân tích các bảng cơ sở dữ liệu
-Bảng Công việc
Tên trường
Id
Tên công việc
Nội dung cơng việc
Ngày bắt đầu
Ngày hồn thành
Đã hồn thành

Kiểu dữ liệu
int
string
string
datetime
datetime
bool

Khóa chính

3) Phân tích và xây dựng cấu trúc server và client
a. Server
-

Các công nghệ sử dụng:
 EntityFramework
 .Net core v2.2
 SQL Server
 IIS 10 Deploy


 Protocol: HTTP
-

Các API sử dụng trong hệ thống :
 Get All Work: Lấy danh sách tồn bộ cơng việc đã tạo.
 Get WorkById: Lấy công việc theo id.
 Create Work: Tạo mới công việc.
 Edit Work: Thực hiện chỉnh sửa công việc.
 DeleteWork: Thực hiện xóa cơng việc.
 Sync Data: Thực hiện đồng bộ dữ liệu lên Google Calendar.
b. Client

-

Các công nghệ sử dụng:
 Xamarin Form
 Protocol: HTTP
 Google API

-

Các view hiển thị trên ứng dụng:

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 13


Báo cáo đồ án cơ sở ngành mạng


 Main: Hiển thị danh sách các công việc được lọc theo các nhóm
cơng việc đang được thực thi và các cơng việc đã được hồn thành.
 Add: Màn hình cho phép người dùng nhập dữ liệu tạo mới một công
việc.
 Edit: Màn hình hiển thị chi tiết cơng viêc, có thể thực hiện thay đổi
và chỉnh sửa, hay xóa cơng việc.

2.3.2. Kết quả thực hiện

Hình 2.1: Màn hình hiển thị danh sách công việc

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 14


Báo cáo đồ án cơ sở ngành mạng

Hình 2.2: Màn hình xem chi tiết, chỉnh sửa và xóa cơng việc

Hình 2.3: Màn hình tạo mới cơng việc

SVTH: Dương Quỳnh Quang

GVHD: PGS.TS Nguyễn Tấn Khôi 15




×