Tải bản đầy đủ (.pdf) (89 trang)

NGHIÊN CỨU CÔNG CỤ PHÁT TRIỂN HƯỚNG DỊCH VỤ WCF TRONG C# ĐỂ XÂY DỰNG PHẦN MỀM QUẢN LÝ KHÁCH SẠN - Full 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.06 MB, 89 trang )

UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA: TOÁN – TIN
----------

PHẠM PHÚ HUY

NGHIÊN CỨU CÔNG CỤ PHÁT TRIỂN HƯỚNG
DỊCH VỤ WCF TRONG C# ĐỂ XÂY DỰNG
PHẦN MỀM QUẢN LÝ KHÁCH SẠN

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Quảng Nam, tháng 05 năm 2022


UBND TỈNH QUẢNG NAM
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA: TOÁN – TIN
----------

KHĨA LUẬN TỐT NGHIỆP ĐẠI HỌC

Tên đề tài:
NGHIÊN CỨU CƠNG CỤ PHÁT TRIỂN HƯỚNG DỊCH VỤ WCF
TRONG C# ĐỂ XÂY DỰNG PHẦN MỀM QUẢN LÝ KHÁCH SẠN
Sinh viên thực hiện
PHẠM PHÚ HUY
MSSV: 2118100112
CHUN NGÀNH:CƠNG NGHỆ THƠNG TIN
KHĨA 2018 – 2022



Cán bộ hướng dẫn
ThS. Nguyễn Thị Minh Châu
MSCB: ………

Quảng Nam, tháng 05 năm 2022


MỤC LỤC
Phần 1. PHẦN MỞ ĐẦU ................................................................................................................... 1
1. Lý do chọn đề tài .......................................................................................................................... 1
2. Mục tiêu của đề tài ........................................................................................................................ 1
3. Đối tượng và phạm vi nghiên cứu.................................................................................................. 2
4. Phương pháp nghiên cứu ............................................................................................................... 2
5. Lịch sử nghiên cứu ........................................................................................................................ 2
6. Đóng góp của đề tài ...................................................................................................................... 2
7. Cấu trúc đề tài............................................................................................................................... 2
Phần 2. PHẦN NỘI DUNG................................................................................................................ 4
Chương 1: TỔNG QUAN VỀ LẬP TRÌNH SOCKET VÀ MÃ HĨA BÍ MẬT TRONG C# ............... 4
1.1. Tổng quan về mơ hình Client/Server ........................................................................................... 4
1.1.1. Khái niệm mơ hình Client/Server ........................................................................................ 4
1.1.2. Ngun tắc hoạt động của mơ hình Client/Server................................................................. 5
1.1.2.1. Client ............................................................................................................................. 5
1.1.2.2. Server ............................................................................................................................ 5
1.1.3. Ưu và nhược điểm của mơ hình Client/Server...................................................................... 5
1.1.3.1. Ưu điểm ......................................................................................................................... 5
1.1.3.2. Nhược điểm ................................................................................................................... 6
1.2. Lập trình Client/Server với Socket trong C# ............................................................................... 7
1.2.1. Giới thiệu về Socket ............................................................................................................ 7
1.2.2. Số hiệu cổng của Socket ...................................................................................................... 8

1.2.3. Xây dựng ứng dụng Client/Server với Socket ...................................................................... 9
1.2.3.1. Mơ hình Client/Server sử dụng socket ở chế độ có kết nối (TCP).................................... 9
1.2.3.2. Mơ hình Client/Server sử dụng socket ở chế độ không kết nối (UDP) ............................10
1.2.4. Lập trình Socket trong C# ..................................................................................................11
1.3. Mã hóa bí mật ...........................................................................................................................13
1.3.1. Giới thiệu về bảo mật thông tin ..........................................................................................13
1.3.2. Giới thiệu về mã hóa thơng tin............................................................................................13
1.3.3. Mã hóa bí mật ....................................................................................................................14
1.3.4. Mã hóa bí mật trong C# ......................................................................................................14
Chương 2: GIỚI THIỆU VỀ KIẾN TRÚC HƯỚNG DỊCH VỤ SOA VÀ CÔNG CỤ PHÁT TRIỂN
HƯỚNG DỊCH VỤ WCF .................................................................................................................16
2.1. Giới thiệu về kiến trúc hướng dịch vụ SOA ...............................................................................16
2.1.1. Một số khái niệm ...............................................................................................................16
2.1.1.1. Service ..........................................................................................................................16
2.1.1.2. Hướng Service ..............................................................................................................17
2.1.1.3. Kiến trúc hướng dịch vụ SOA .......................................................................................17
2.1.1.4. Kiến trúc tổng thể SOA .................................................................................................18
2.1.2. Những đặc điểm và lợi ích của SOA ...................................................................................19
2.1.2.1. Các đặc điểm của SOA ..................................................................................................19
2.1.2.2. Lợi ích của SOA ...........................................................................................................20
2.1.3. Tính chất của SOA .............................................................................................................20
2.1.3.1. Kết nối lỏng lẻo .............................................................................................................20
2.1.3.2. Tái sử dụng dịch vụ .......................................................................................................21
2.1.3.3. Quản lý chính sách ........................................................................................................22
2.1.3.4. Tự động dị tìm và ràng buộc động ................................................................................22
2.1.3.5. Khả năng tự hồi phục ....................................................................................................23
2.1.4. Ưu và nhược điểm của SOA ...............................................................................................24
2.1.4.1. Ưu điểm ........................................................................................................................24
2.1.4.2. Nhược điểm ..................................................................................................................24
2.2. Công cụ phát triển hướng dịch vụ WCF .....................................................................................25

2.2.1. Khái niệm ..........................................................................................................................25
2.2.2. Tại sao lại sử dụng WCF ....................................................................................................25
2.2.3. Kiến trúc WCF ...................................................................................................................26


2.2.3.1. Contracts .......................................................................................................................26
2.2.3.2. Runtime service ............................................................................................................27
2.2.3.3. Message ........................................................................................................................28
2.2.3.4. Host và activation ..........................................................................................................28
2.2.4. Các tính năng của WCF......................................................................................................29
2.2.4.1. Transaction ...................................................................................................................29
2.2.4.2. Host ..............................................................................................................................29
2.2.4.3. Bảo mật.........................................................................................................................29
2.2.5. Công cụ phát triển với WCF ...............................................................................................30
Chương 3: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG.....................................................................31
3.1. Khảo sát hệ thống ......................................................................................................................31
3.1.1. Mơ tả bài tốn ....................................................................................................................31
3.1.2. u cầu chức năng .............................................................................................................31
3.1.3. Mơ hình Ri .........................................................................................................................32
3.1.4. Đặc tính từng người dùng ...................................................................................................34
3.1.5. Yêu cầu phi chức năng .......................................................................................................35
3.2. Phân tích hệ thống .....................................................................................................................35
3.2.1. Phân tích chức năng ...........................................................................................................35
3.2.1.1. Actor .............................................................................................................................35
3.2.1.2. Usecase .........................................................................................................................36
3.2.1.3. Object và class ..............................................................................................................44
3.2.1.4. Sơ đồ tuần tự .................................................................................................................45
3.2.1.5. Sơ đồ cộng tác...............................................................................................................51
3.2.1.6. Sơ đồ trạng thái .............................................................................................................55
3.2.1.7. Sơ đồ hoạt động ............................................................................................................59

3.2.2. Phân tích dữ liệu ................................................................................................................65
3.2.2.1. Sơ đồ E – R ...................................................................................................................65
3.2.2.2. Sơ đồ dữ liệu quan hệ ....................................................................................................66
Chương 4: THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG .....................................................................67
4.1. Thiết kế hệ thống .......................................................................................................................67
4.1.1. Thiết kế cơ sở dữ liệu .........................................................................................................67
4.1.2. Thiết kế chức năng .............................................................................................................71
4.1.3. Thiết kế giao diện...............................................................................................................73
4.2. Triển khai hệ thống....................................................................................................................74
4.2.1. Một số đoạn code quan trọng..............................................................................................74
4.2.2. Một số giao diện của phần mềm .........................................................................................75
Phần 3. PHẦN KẾT LUẬN VÀ KIẾN NGHỊ ...................................................................................79
Phần 4. TÀI LIỆU THAM KHẢO.....................................................................................................80


DANH MỤC HÌNH ẢNH
Hình 1.1. Mơ hình Client/Server ........................................................................................................ 4
Hình 1.2. Mơ hình Socket .................................................................................................................. 7
Hình 1.3. Cổng trong Socket .............................................................................................................. 8
Hình 1.4. Mơ hình Client/Server sử dụng Socket ở chế độ có kết nối (TCP) ....................................... 9
Hình 1.5. Mơ hình Client/Server sử dụng socket ở chế độ khơng kết nối (UDP) ................................10
Hình 1.6. Lập trình Socket trong C# ..................................................................................................13
Hình 2.1. Mơ tả định nghĩa Service ...................................................................................................16
Hình 2.2. Các thành phần trong định nghĩa của SOA .........................................................................18
Hình 2.3. Kiến trúc tổng tổng SOA ...................................................................................................19
Hình 2.4. Kết nối lỏng lẻo .................................................................................................................21
Hình 2.5. Kiến trúc WCF ..................................................................................................................26
Hình 3.1. Sơ đồ usecase tổng quát .....................................................................................................36
Hình 3.2. Sơ đồ class ........................................................................................................................45
Hình 3.3. Sơ đồ tuần tự UC_Đăng nhập ............................................................................................45

Hình 3.4. Sơ đồ tuần tự UC_Thêm nhân viên ....................................................................................46
Hình 3.5. Sơ đồ tuần tự UC_Tìm kiếm nhân viên ..............................................................................46
Hình 3.6. Sơ đồ tuần tự UC_Cập nhập thơng tin nhân viên ................................................................47
Hình 3.7. Sơ đồ tuần tự UC_Xóa nhân viên .......................................................................................47
Hình 3.8. Sơ đồ tuần tự UC_Đặt phịng .............................................................................................48
Hình 3.9. Sơ đồ tuần tự UC_Th phịng ...........................................................................................48
Hình 3.10. Sơ đồ tuần tự UC_Trả phịng ...........................................................................................49
Hình 3.11. Sơ đồ tuần tự UC_Gọi dịch vụ .........................................................................................49
Hình 3.12. Sơ đồ tuần tự UC_Cập nhập dịch vụ ................................................................................50
Hình 3.13. Sơ đồ tuần tự UC_Hủy dịch vụ ........................................................................................50
Hình 3.14. Sơ đồ tuần tự UC_Báo cáo lương nhân viên .....................................................................51
Hình 3.15. Sơ đồ cộng tác UC_Đăng nhập ........................................................................................51
Hình 3.16. Sơ đồ cộng tác UC_Thêm nhân viên ................................................................................51
Hình 3.17. Sơ đồ cộng tác UC_Tìm kiếm nhân viên ..........................................................................52
Hình 3.18. Sơ đồ cộng tác UC_Cập nhập thơng tin nhân viên ............................................................52
Hình 3.19. Sơ đồ cộng tác UC_Xóa nhân viên ...................................................................................52
Hình 3.20. Sơ đồ cộng tác UC_Đặt phịng .........................................................................................53
Hình 3.21. Sơ đồ cộng tác UC_Th phịng .......................................................................................53
Hình 3.22. Sơ đồ cộng tác UC_Trả phịng .........................................................................................53
Hình 3.23. Sơ đồ cộng tác UC_Gọi dịch vụ .......................................................................................54
Hình 3.24. Sơ đồ cộng tác UC_Cập nhập dịch vụ ..............................................................................54
Hình 3.25. Sơ đồ cộng tác UC_Hủy dịch vụ đã gọi ............................................................................54
Hình 3.26. Sơ đồ cộng tác UC_Báo cáo lương nhân viên ...................................................................55
Hình 3.27. Sơ đồ trạng thái class người dùng.....................................................................................55
Hình 3.28. Sơ đồ trạng thái class nhân viên .......................................................................................55
Hình 3.29. Sơ đồ trạng thái class thiết bị ...........................................................................................56
Hình 3.30. Sơ đồ trạng thái class đơn vị cung cấp ..............................................................................56
Hình 3.31. Sơ đồ trạng thái class dịch vụ ...........................................................................................56
Hình 3.32. Sơ đồ trạng thái class phịng.............................................................................................57
Hình 3.33. Sơ đồ trạng thái class loại phịng ......................................................................................57

Hình 3.34. Sơ đồ trạng thái class khách hàng .....................................................................................57
Hình 3.35. Sơ đồ trạng thái class hóa đơn nhập .................................................................................58
Hình 3.36. Sơ đồ trạng thái class phiếu đặt phịng..............................................................................58
Hình 3.37. Sơ đồ trạng thái class hóa đơn th ..................................................................................58
Hình 3.38. Sơ đồ hoạt động UC_Đăng nhập ......................................................................................59
Hình 3.39. Sơ đồ hoạt động UC_Thêm nhân viên ..............................................................................59
Hình 3.40. Sơ đồ hoạt động UC_Tìm kiếm nhân viên ........................................................................60
Hình 3.41. Sơ đồ hoạt động UC_Cập nhập thơng tin nhân viên..........................................................60
Hình 3.42. Sơ đồ hoạt động UC_Xóa nhân viên ................................................................................61
Hình 3.43. Sơ đồ hoạt động UC_Đặt phòng.......................................................................................61


Hình 3.44. Sơ đồ hoạt động UC_Th phịng ....................................................................................62
Hình 3.45. Sơ đồ hoạt động UC_Trả phịng .......................................................................................62
Hình 3.46. Sơ đồ hoạt động UC_Gọi dịch vụ .....................................................................................63
Hình 3.47. Sơ đồ hoạt động UC_Cập nhập dịch vụ ............................................................................63
Hình 3.48. Sơ đồ hoạt động UC_Cập nhập dịch vụ đã gọi .................................................................64
Hình 3.49. Sơ đồ hoạt động UC_Báo cáo lương nhân viên ................................................................64
Hình 3.50. Sơ đồ E – R .....................................................................................................................65
Hình 3.51. Sơ đồ dữ liệu quan hệ ......................................................................................................66
Hình 4.1. Mối quan hệ giữa các bảng trong cơ sở dữ liệu...................................................................71
Hình 4.2. Giao diện hộp thoại............................................................................................................73
Hình 4.3. Giao diện nhập dữ liệu dạng điền .......................................................................................73
Hình 4.4. Giao diện nhập dữ liệu dạng tùy chọn ................................................................................73
Hình 4.5. Giao diện biểu mẫu dạng bảng ...........................................................................................73
Hình 4.6. Giao diện biểu mẫu dạng biểu đồ .......................................................................................74
Hình 4.7. Code tạo service WCF trong C# theo giao thức HTTP .......................................................74
Hình 4.8. Code Client truy cập service WCF trong C# theo giao thức HTTP .....................................74
Hình 4.9. Code xử lý đa luồng của Socket trong C# ...........................................................................75
Hình 4.10. Giao diện form đăng nhập ................................................................................................75

Hình 4.11. Giao diện form hệ thống ..................................................................................................76
Hình 4.12. Giao diện form hệ thống ..................................................................................................76
Hình 4.13. Giao diện form thuê/đặt phịng .........................................................................................77
Hình 4.14. Giao diện form th/đặt phịng .........................................................................................77
Hình 4.15. Giao diện form gọi dịch vụ ..............................................................................................78
Hình 4.16. Giao diện form báo cáo/thống kê .....................................................................................78


CÁC TỪ VIẾT TẮT
STT

Từ viết tắt

Từ hồn chỉnh

1

API

Application Programming Interface

2

CNTT

Cơng Nghệ Thông Tin

3

IIS


Internet Information Services

4

SOA

Service Oriented Architecture

5

SOAP

Service Oriented Architecture Protocol

6

TTTN

Thực Tập Tốt Nghiệp

7

WAS

Windows Activation Services

8

WCF


Windows Communication Foudation


LỜI CẢM ƠN
Trong suốt q trình làm khóa luận tốt nghiệp của mình, tơi ln được sự
quan tâm giúp đỡ tận tình đến từ cơ ThS. Nguyễn Thị Minh Châu, chính sự giúp
đỡ tận tình ấy đã giúp tơi hồn thành tốt khóa luận này. Tơi xin gửi lời cảm ơn
chân thành và sâu sắc nhất đến cô!
Tôi xin chân thành cảm ơn q thầy giáo, cơ giáo khoa Tốn – Tin, trường
Đại học Quảng Nam đã tận tình dìu dắt và truyền đạt kiến thức cho tôi trong
suốt 4 năm học vừa qua. Với vốn kiến thức được tiếp thu trong q trình học
khơng chỉ là nền tảng cho q trình nghiên cứu khóa luận mà cịn là hành trang
qúy báu để tôi bước vào đời một cách vững chắc và tự tin.
Xin chân thành cảm ơn gia đình, bạn bè đã là chỗ dựa vững chắc, giúp tôi
tự tin hơn trong quá trình học tập.
Trong quá trình làm bài khóa luận tốt nghiệp này do trình độ cịn hạn hẹp,
đề tài rộng, thời gian có hạn, khó tránh khỏi sai sót, kính mong q thầy cơ giáo
góp ý kiến để tơi có thể học hỏi thêm nhiều kinh nghiệm.
Xin chân thành cảm ơn!


Phần 1. PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Trong những năm gần đây du lịch là một trong những ngành có độ tăng
trưởng cao nhất cả nước. Rất nhiều khách sạn đua nhau phát triển liên tục và
nhanh chóng theo sự phát triển của xã hội về quy mô và chất lượng.
Hiện nay, các khách sạn phải trực tiếp tiếp nhận, quản lý một khối lượng
lớn và thường xuyên nhiều loại khách, cùng với hàng loạt dịch vụ phát sinh theo
nhu cầu của khách hàng. Do đó, cơng việc quản lý hoạt động kinh doanh của

khách sạn ngày càng phức tạp hơn.
Hơn nữa, công tác quản lý không chỉ đơn thuần là quản lý về lưu lượng
khách đến với khách sạn, sử dụng các loại hình dịch vụ,… mà cơng việc quản lý
cịn phải đáp ứng nhu cầu về việc báo cáo các loại hình doanh thu, tình hình
kinh doanh của khách sạn,… để từ đó có thể đưa ra định hướng và lập kế hoạch
phát triển cho công việc kinh doanh đó. Nhưng với việc lưu trữ và xử lý bằng
thủ cơng như hiện nay thì sẽ tốn rất nhiều thời gian và nhân lực mà không đem
lại hiệu quả cao. Do đó cần phải tin học hóa hình thức quản lý, cụ thể là xây
dựng một phần mềm để đáp ứng nhu cầu quản lý toàn diện, thống nhất và đạt
hiệu quả cao nhất cho hoạt động kinh doanh của khách sạn.
Do những nhu cầu trên nên em quyết định chọn đề tài: “Nghiên cứu công
cụ phát triển hướng dịch vụ WCF trong C# để xây dựng phần mềm quản lý
khách sạn” làm đề tài khóa luận tốt nghiệp của mình. Xây dựng phần mềm
quản lý khách sạn là một điều thiết yếu đáp ứng nhu cầu ứng dụng công nghệ
thông tin vào quản lý, kinh doanh của khách sạn, quản lý khách sạn như là một
chính yếu cho nhu cầu ứng dụng công nghệ thông tin vào kinh doanh.
2. Mục tiêu của đề tài
 Tìm hiểu về lập trình socket và mã hóa bí mật trong C#.
 Nghiên cứu công cụ phát triển hướng dịch vụ WCF trong C#.
 Phân tích thiết kế hệ thống theo hướng đối tượng.
 Xây dựng phần mềm quản lý khách sạn dựa trên WCF.
1


3. Đối tượng và phạm vi nghiên cứu
 Công cụ phát triển hướng dịch vụ WCF trong C#
 Phân tích hệ thống phần mềm quản lý khách sạn theo hướng đối tượng
 Lập trình phần mềm quản lý khách sạn bằng công cụ phát triển hướng dịch
vụ WCF trong C#
4. Phương pháp nghiên cứu

 Phương pháp phỏng vấn
 Phương pháp khảo sát
 Phương pháp phân tích hệ thống thơng tin theo hướng đối tượng
 Phương pháp ứng dụng.
5. Lịch sử nghiên cứu
Trước đây, đã có rất nhiều đề tài nghiên cứu về vấn đề này, chẳng hạn:
 Báo cáo Quản lý khách sạn của Nguyễn Thị Thương
 Báo cáo bài tập lớn Quản lý khách sạn của Trần Tường Tuấn, Trường Cao
đẳng Ngô Gia Tự, Bắc Giang
Tuy nhiên, tất cả các đề tài đó chỉ dừng ở việc phân tích và thiết kế hệ
thống theo hướng đối tượng chưa có sử dụng cơng cụ phát triển hướng dịch vụ
WCF.
6. Đóng góp của đề tài
Đề tài có thể giúp cho các bạn đọc hiểu rõ hơn về công cụ phát triển hướng
dịch vụ WCF và ứng dụng xây dựng phần mềm quản lý khách sạn
7. Cấu trúc đề tài
PHẦN 1. MỞ ĐẦU
PHẦN 2. NỘI DUNG NGHIÊN CỨU
Chương 1: Tổng quan về lập trình socket và mã hóa bí mật trong C#
Chương 2: Giới thiệu về kiến trúc hướng dịch vụ SOA và công cụ phát
triển hướng dịch vụ WCF
Chương 3: Khảo sát và phân tích hệ thống
Chương 4: Thiết kế và triển khai hệ thống
2


PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ
PHẦN 4. TÀI LIỆU THAM KHẢO

3



Phần 2. PHẦN NỘI DUNG
Chương 1: TỔNG QUAN VỀ LẬP TRÌNH SOCKET VÀ MÃ HĨA
BÍ MẬT TRONG C#
1.1.Tổng quan về mơ hình Client/Server
1.1.1. Khái niệm 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 đặt cá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ồm má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 u cầu đến Server.

Hình 1.1. Mơ hình Client/Server
Mơ hình mạng Client/Server sẽ cho phép mạng tập trung các ứng dụng có
cùng chức năng tại một hoặc nhiều dịch vụ file chuyên dụng. Chúng sẽ trở thành
trung tâm của hệ thống. Hệ điều hành của mơ hình Client/Server sẽ cho phép
người dùng chia sẻ đồng thời cùng một loại tài ngun mà khơng giới hạn vị trí
địa lý.

4


1.1.2. Ngun tắc hoạt động của mơ hình Client/Server
1.1.2.1.Client
Người dùng đưa ra yêu cầu tại Client. Máy Client chạy một chương trình
ứng dụng có chức năng :
- Cung cấp giao diện cho người dùng.
- Định dạng yêu cầu cung cấp dữ liệu .
- Hiển thị dữ liệu nó nhận lại từ máy Server.

Trong môi trường Client/Server, máy Server không chứa phần mềm giao
diện người dùng. Máy Client có nhiệm vụ trình bày dữ liệu theo hình thức hữu
ích. Chẳng hạn với giao diện người dùng và lập báo biểu.
Chương trình ứng dụng trên máy Server tiếp nhận những chỉ thị từ người
dùng, chuẩn bị chúng cho máy Server, rồi gởi một yêu cầu cung cấp thông tin cụ
thể đến máy Server. Máy Server xử lý yêu cầu, định vị thông tin tích hợp, rồi
gởi thơng tin tìm được qua mạng đến máy Client. Máy Client sau đó sẽ “đẩy”
thơng tin ra giao diện để hiển thị thông tin trước người dùng.
1.1.2.2.Server
Máy Server trong môi trường Client/Server chuyên dùng để lưu trữ và quản
lý dữ liệu. Đây là nơi xảy ra hầu hết hoạt động thực của cơ sở dữ liệu. Máy
Server tiếp nhận các yêu cầu có cấu trúc từ phía máy Client, xử lý chúng, rồi gửi
trả thơng tin được yêu cầu và trở lại máy Client qua mạng.
1.1.3. Ưu và nhược điểm của mơ hình Client/Server
1.1.3.1.Ưu điểm
- Tập trung: Ưu điểm đầu tiên của mơ hình Client/Server kiểu mạng khách
chủ đó chính là khả năng kiểm sốt tập trung (Centralization) đã được tích hợp
sẵn. Theo như mơ hình này thì tất cả mọi thơng tin cần thiết đều sẽ được đặt ở
một vị trí duy nhất. Đây là một ưu điểm vơ cùng hữu ích được những người
quản trị viên mạng u thích bởi vì họ có thể tồn quyền quản lý cũng như điều
hành mọi việc. Tính năng này giúp cho mọi sự cố trong mạng đều sẽ được giải
quyết ở cùng một nơi thống nhất. Đồng thời, việc cập nhật cơ sở tài nguyên, dữ
liệu cũng sẽ dễ dàng hơn rất nhiều.
5


- Bảo mật: Trong mạng Client/Server, tất cả các dữ liệu đều sẽ được bảo vệ
một cách tối đa nhờ vào hệ thống kiến trúc tập trung của mạng. Thông qua đó,
nó sẽ giúp người dùng kiểm sốt truy cập để chỉ có những ai được cấp quyền
truy cập thì mới được thực hiện các thao tác cần thiết. Muốn làm như vậy, chúng

ta cần phải áp đặt thông tin đăng nhập cũng như Username hay Password. Bên
cạnh đó, nếu dữ liệu của chúng ta bị mất thì các file sẽ được khôi phục một cách
vô cùng dễ dàng chỉ từ một bản sao lưu duy nhất mà thôi.
- Khả năng mở rộng: Mơ hình mạng kết nối Client/Server có khả năng mở
rộng vô cùng tốt. Chỉ cần người dùng cần sử dụng bất cứ lúc nào thì họ cũng có
thể tăng được số lượng tài ngun của mình. Ví dụ như số Client hoặc Server.
Nhờ đó mà chúng ta có thể tăng kích thước của Server một cách dễ dàng mà
không bị gián đoạn nhiều.
- Khả năng truy cập: Hồn tồn khơng hề có sự phân biệt giữa các vị trí hay
nền tảng với nhau. Tất cả mọi Client đều có khả năng đăng nhập được vào hệ
thống mạng máy tính. Điều này sẽ giúp cho tất cả các nhân viên đều có thể truy
cập thơng tin của cơng ty một cách dễ dàng mà không cần phải dùng một
terminal mode hoặc một bộ xử lý nào khác.
1.1.3.2.Nhược điểm
- Tắc nghẽn lưu lượng: Nói về nhược điểm lớn nhất của mơ hình mạng
Client/Server đó chính là tắc nghẽn lưu lượng. Trong trường hợp có quá nhiều
Client tạo request từ cùng một Server thì nó có thể sẽ làm cho kết nối chậm hơn.
Trong trường hợp xấu nhất cịn có thể xuất hiện hiện tượng crash. Khi một
Server bị quá tải thì sẽ tạo ra nhiều vấn đề khi truy cập thông tin.
- Độ bền: Client/Server là mạng tập trung chính vì thế, khi Server chính xảy
ra sự cố hoặc bị nhiễu thì cũng đồng nghĩa với việc tồn bộ hệ thống mạng sẽ bị
gián đoạn. Như vậy, bạn cần chú ý đó là mạng thiếu tính ổn định và độ bền. Bạn
cần chú ý khi thực hiện.
- Chi phí: Chi phí được sử dụng để thiết lập và bảo trì Server trong
Client/Server thường sẽ khá cao. Lý do là vì các hệ thống mạng có sức mạnh rất
6


lớn cũng đồng nghĩa với việc giá để chi cho việc này là rất đắt. Chính vì vậy,
khơng phải ai cũng có khả năng chi trả và sử dụng.

- Bảo trì: Khi các Server thực hiện triển khai để làm việc thì nó cũng sẽ hoạt
động một cách khơng ngừng nghỉ. Điều này đồng nghĩa với việc chúng ta cần
phải quan tâm đến việc bảo trì hệ thống đúng mức. Khi xảy ra bất cứ vấn đề gì
cũng cần phải giải quyết ngay lập tức. Vậy nên, cần phải có một nhà quản lý
mạng chuyên biệt để tiến hành duy trì hoạt động của Server khi chúng được đưa
vào và sử dụng.
- Tài nguyên: Một điều mà chúng ta rất cần phải lưu ý đó chính là khơng
phải tất cả tài nguyên hiện có trên Server đều sử dụng được. Ví dụ một cách đơn
giản đó chính là chúng ta không thể in trực tiếp được tài liệu từ trên web cũng
như tiến hành chỉnh sửa bất kỳ một thông tin nào trên ổ cứng của Client cả.
1.2.Lập trình Client/Server với Socket trong C#
1.2.1. Giới thiệu về Socket
Socket là một giao diện lập trình ứng dụng (API – Application
Programming Interface). Nó được giới thiệu lần đầu tiên trong ấn bản UNIX –
BSD 4.2 dưới dạng các hàm hệ thống theo cú pháp ngôn ngữ C (socket(), bind(),
connect(), send(), receive(), read(), write(), close(),..). Ngày nay, Socket được hỗ
trợ trong hầu hết các hệ điều hành như MS Windows, Linux và được sử dụng
trong nhiều ngơn ngữ lập trình khác nhau: như C, C++, Java, Visual Basic,
Visual C++, . . .
Socket cho phép thiết lập các kênh giao tiếp mà hai đầu kênh được đánh
dấu bởi hai cổng (port). Thông qua các cổng này một q trình có thể nhận và
gởi dữ liệu với các q trình khác.

Hình 1.2. Mơ hình Socket
7


1.2.2. Số hiệu cổng của Socket
Để có thể thực hiện các cuộc giao tiếp, một trong hai quá trình phải cơng
bố số hiệu cổng của socket mà mình sử dụng. Mỗi cổng giao tiếp thể hiện một

địa chỉ xác định trong hệ thống. Khi quá trình được gán một số hiệu cổng, nó có
thể nhận dữ liệu gởi đến cổng này từ các q trình khác. Q trình cịn lại cũng
được yêu cầu tạo ra một socket.
Ngoài số hiệu cổng, hai bên giao tiếp còn phải biết địa chỉ IP của nhau. Địa
chỉ IP giúp phân biệt máy tính này với máy tính kia trên mạng TCP/IP. Trong
khi số hiệu cổng dùng để phân biệt các quá trình khác nhau trên cùng một máy
tính.

Hình 1.3. Cổng trong Socket
Trong hình trên, địa chỉ của quá trình B1 được xác định bằng 2 thơng tin:
(Host B, Port B1):
Địa chỉ máy tính có thể là địa chỉ IP dạng 203.162.36.149 hay là địa chỉ
theo dạng tên miền như www.cit.ctu.edu.vn
Số hiệu cổng gán cho Socket phải duy nhất trên phạm vi máy tính đó, có
giá trị trong khoảng từ 0 đến 65535 (16 bits). Trong đó, các cổng từ 1 đến 1023
được gọi là cổng hệ thống được dành riêng cho các quá trình của hệ thống.
Các cổng mặc định của 1 số dịch vụ mạng thơng dụng:
Số hiệu cổng

Q trình hệ thống

7

Dịch vụ Echo

21

Dịch vụ FTP

23


Dịch vụ Telnet
8


25

Dịch vụ E – mail (SMTP)

80

Dịch vụ web (HTTP)

110

Dịch vụ E – mail (POP)

1.2.3. Xây dựng ứng dụng Client/Server với Socket
1.2.3.1.Mơ hình Client/Server sử dụng socket ở chế độ có kết nối (TCP)

Hình 1.4. Mơ hình Client/Server sử dụng Socket ở chế độ có kết nối (TCP)
Có thể phân thành 4 giai đoạn như sau:


Giai đoạn 1: Server tạo Socket, gán số hiệu cổng và lắng nghe yêu cầu nối

kết. Server sẵn sàng phục vụ Client.socket(): Server yêu cầu tạo một socket để
có thể sử dụng các dịch vụ của tầng vận chuyển.
o


bind(): Server yêu cầu gán số hiệu cổng (port) cho socket.

o

listen(): Server lắng nghe các yêu cầu nối kết từ các Client trên cổng đã

được gán.


Giai đoạn 2: Client tạo Socket, yêu cầu thiết lập một nối kết với Server.

o

socket(): Client yêu cầu tạo một socket để có thể sử dụng các dịch vụ của

tầng vận chuyển, thông thường hệ thống tự động gán một số hiệu cổng còn rảnh
cho socket của Client.
o

connect(): Client gởi yêu cầu nối kết đến Server có địa chỉ IP và Port xác

định.

9


o

accept(): Server chấp nhận nối kết của Client, khi đó một kênh giao tiếp ảo


được hình thành, Client và Server có thể trao đổi thơng tin với nhau thơng
qua kênh ảo này.


Giai đoạn 3: Trao đổi thông tin giữa Client và Server.

o

Sau khi chấp nhận yêu cầu nối kết, thông thường Server thực hiện lệnh

read() và nghẽn cho đến khi có thơng điệp u cầu (Request Message) từ Client
gởi đến.
o

Server phân tích và thực thi yêu cầu. Kết quả sẽ được gởi về Client bằng

lệnh write().
o

Sau khi gởi yêu cầu bằng lệnh write(), client chờ nhận thông điệp kết quả

(ReplyMessage) từ Server bằng lệnh read().


Giai đoạn 4: Kết thúc phiên làm việc.

o

Các câu lệnh read(), write() có thể được thưc hiện nhiều lần (ký hiệu


bằng hình ellipse).
o

Kênh ảo sẽ bị xóa khi Server hoặc Client đóng socket bằng lệnh close().

1.2.3.2.Mơ hình Client/Server sử dụng socket ở chế độ khơng kết nối (UDP)

Hình 1.5. Mơ hình Client/Server sử dụng socket ở chế độ không kết nối
(UDP)

10


Có thể phân thành 3 giai đoạn như sau:


Giai đoạn 1: Server tạo Socket – gán số hiệu cổng.

o

socket(): Server yêu cầu tạo một socket để có thể sử dụng các dịch vụ

của tầng vận chuyển.
o

bind(): Server yêu cầu gán số hiệu cổng cho socket.



Giai đoạn 2: Client tạo Socket.


o

socket(): Client yêu cầu tạo một socket để có thể sử dụng các dịch vụ của

tầng vận chuyển, thông thường hệ thống tự động gán một số hiệu cổng còn rảnh
cho socket của Client.


Giai đoạn 3: Trao đổi thông tin giữa Client và Server.

o

Sau khi tạo Socket xong, Client và Server có thể trao đổi thơng tin qua lại

với nhau thơng qua hai hàm send() và receive().
o

Đơn vị dữ liệu trao đổi giữa Client và Server là các Datagram Package (Gói

tin thư tín).
o

Protocol của ứng dụng phải định nghĩa khn dạng và ý nghĩa của các

Datagram Package. Mỗi Datagram Package có chứa thông tin về địa chỉ người
gởi và người nhận (IP, Port).
1.2.4. Lập trình Socket trong C#
 Các lớp .NET cơ bản trong lập trình mạng
Các lớp này được cung cấp trong hai System.Net và System.Net.Sockets.

Hai namespace này chứa rất nhiều lớp dùng trong lập trình mạng, nhưng ta chỉ
quan tâm đến các lớp sau:
Class

Namespace

Desciption

IPAddress

System.Net

Provides an Internet Protocol (IP) address.

IPEndPoint

System.Net

TcpListener

System.Net.Sockets

Represents a network endpoint as an IP
address and a port number.
Listens for connections from TCP network
clients.
11


Socket

TcpClient

System.Net.Sockets Implements the Berkeley sockets interface.
Provides Client connections for TCP

System.Net.Sockets

NetworkStream System.Net.Sockets

network services.
Provides the underlying stream of data for
network access.

 Kết nối Server/Client với TCP/IP
Khi được chạy, Server cần được xác định rõ địa chỉ IP và sẽ “lắng nghe”
trên một port cụ thể. Server sẽ nằm trong trạng thái này cho đến khi Client gửi
đến một yêu cầu kết nối. Sau khi được Server chấp nhận, một connection sẽ hình
thành cho phép Server và Client giao tiếp với nhau.
Cụ thể hơn, các bước tiến hành trên Server và Client mà ta cần thực hiện sử
dụng giao thức TCP/IP trong C# (có thể chạy Server và Client trên cùng một
máy):
Server:
1. Tạo một đối tượng System.Net.Sockets.TcpListener để bắt đầu “lắng nghe”
trên một cổng cục bộ.
2. Đợi và chấp nhận kết nối từ Client với phương thức AccepSocket().
Phương thức này trả về một đối tượng System.Net.Sockets.Socket dùng để gửi
và nhận dữ liệu.
3. Thực hiện giao tiếp với Client.
4. Đóng Socket.
Thơng thường quy trình này sẽ được đặt trong một vòng lặp (lặp lại bước 2)

để chấp nhận nhiều kết nối cùng lúc (sử dụng Thread) hoặc các kết nối lần lượt.
Client:
1. Tạo một đối tượng System.Net.Sockets.TcpClient
2. Kết nối đến Server với địa chỉ và port xác định với phương thức
TcpClient.Connect()
3. Lấy luồng (stream) giao tiếp bằng phương thức TcpClient.GetStream().
12



×