Mạng máy tính Computer Network là một hệ thống liên kết các thiết bị đầu cuốinhư máy tính, điện thoại, máy in… qua các phương tiện truyền dẫn để tạo ra sự kết nối và giao tiếp giữa chúng
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT HÀN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO LẬP TRÌNH MẠNG
ĐỀ TÀI
XÂY DỰNG ỨNG DỤNG
ĐIỀU KHIỂN MÁY TÍNH TỪ XA
Sinh viên thực hiện : Nguyễn Trần Chí Khang
Dương Công Cường
Giảng viên hướng dẫn : TS Lê Tân
Đà Nẵng, tháng 12 năm 2024
Trang 2LỜI CẢM ƠN
Xin chân thành cảm ơn các thầy cô tại trường Đại học Công nghệ thông tin vàTruyền thông Việt-Hàn, nơi chúng em đã có cơ hội học tập và trưởng thành trong suốt
ba năm qua Chúng em thật sự may mắn khi được học tập trong một môi trường có cơ
sở vật chất hiện đại, cùng đội ngũ giảng viên tận tâm và luôn quan tâm, chăm sóc họcsinh
Trong quá trình thực hiện bài báo cáo này, ngoài sự nỗ lực cá nhân, chúng emcòn nhận được rất nhiều sự hỗ trợ, hướng dẫn quý báu từ các thầy cô, đặc biệt là sự chỉbảo nhiệt tình của TS Lê Tân Thầy đã luôn đồng hành, hướng dẫn chúng em tận tình
từ những bước đầu cho đến khi hoàn thành bài báo cáo Chúng em xin gửi lời cảm ơnsâu sắc tới thầy vì sự tận tâm và những chia sẻ quý giá
Tuy nhiên, dù đã cố gắng hết sức, chúng em vẫn không tránh khỏi những thiếusót Mong thầy cô thông cảm và cho chúng em những góp ý, nhận xét để có thể hoànthiện hơn trong những lần sau
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Giảng viên hướng dẫn
Trang 4MỤC LỤC
LỜI CẢM ƠN i
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ii
MỤC LỤC iii
DANH MỤC HÌNH ẢNH v
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1
1.1 MẠNG MÁY TÍNH 1
1.1.1 Mạng máy tính là gì ? 1
1.1.2 Hoạt động của mạng máy tính 1
1.1.3 Phân loại mạng ? 4
1.2 LẬP TRÌNH MẠNG 5
1.2.1 Lập trình mạng là gì ? 5
1.2.2 Mô hình Client – Server 5
1.3 ĐIỀU KHIỂN MÁY TÍNH TỪ XA ( REMOTE DESKTOP) 6
1.4 RMI (REMOTE METHOD INVOCATION) 6
1.4.1 Các thành phần chính 6
1.4.2 Cách thức hoạt động của RMI 7
1.4.3 Ưu điểm của RMI 9
1.4.4 Hạn chế của RMI 9
CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG 11
2.1 BÀI TOÁN ĐẶT RA 11
2.2 PHÂN TÍCH THIẾT KẾ 11
2.2.1 Công nghệ sử dụng 11
2.2.2 Kiến trúc hệ thống 11
2.2.3 Lưu đồ tuần tự 12
2.2.4 Giao diện người dùng 12
CHƯƠNG 3: TRIỂN KHAI VÀ XÂY DỰNG 13
3.1 CÔNG CỤ SỬ DỤNG 13
3.1.1 Visual Studio Code 13
3.1.2 Thư viện Swing 13
3.1.3 Bộ thư viện RMI 13
Trang 53.2 KẾT QUẢ 14
CHƯƠNG 4: KẾT LUẬN 16
4.1 KẾT LUẬN 16
4.2 HƯỚNG PHÁT TRIỂN 16
TÀI LIỆU THAM KHẢO 17
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1: 7 Tầng của mô hình OSI 3
Hình 1.2: Mô hình về TCP/IP 4
Hình 1.3: Phần code mô phòng cho việc định nghĩa 1 interface 7
Hình 1.3: Phần code mô phỏng cài đặt phương thức trong class server 8
Hình 1.3: Phần code mô phỏng khởi động máy chủ 8
Hình 1.3: Phần code mô phỏng gọi phương thức từ xa 9
Hình 2.1 Mô hình Client-Server 11
Hình 2.2 Lưu đồ tuần tự 12
Hình 3.1 Giao diện server 14
Hình 3.2 Giao diện client 14
Hình 3.3 Màn hình nhìn từ client khi kết nối 15
Hình 3.4 Phần khung trò chuyện 15
Trang 7CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 MẠNG MÁY TÍNH
1.1.1 Mạng máy tính là gì ?
Mạng máy tính (Computer Network) là một hệ thống liên kết các thiết bị đầu cuốinhư máy tính, điện thoại, máy in… qua các phương tiện truyền dẫn để tạo ra sự kết nối
và giao tiếp giữa chúng Mạng này sử dụng các phương tiện truyền dẫn hữu tuyến và
vô tuyến để đảm bảo việc truyền tải dữ liệu, tài nguyên như phần mềm, thông tin haymáy in một cách hiệu quả và an toàn.Cáp mạng: Cáp quang, cáp đồng trục
Các phương tiện truyền dẫn trong mạng máy tính có thể bao gồm:
- Cáp mạng: Cáp quang, cáp đồng trục.
- Kết nối không dây: Sóng Wi-Fi, sóng radio, sóng hồng ngoại.
Hệ thống này tạo điều kiện cho các thiết bị giao tiếp, chia sẻ tài nguyên như dữliệu, phần mềm hoặc máy in, đồng thời đảm bảo việc truyền thông tin diễn ra an toàn
và hiệu quả
Các thành phần chính của mạng máy tính:
- Thiết bị đầu cuối: Bao gồm các máy tính, máy in, điện thoại thông minh, máy
chủ và nhiều thiết bị khác đóng vai trò giao tiếp trực tiếp trên mạng
- Môi trường truyền dẫn: Các phương tiện được sử dụng để truyền dữ liệu giữa
các thiết bị trong mạng
- Thiết bị kết nối mạng: Các thiết bị này giúp các nút mạng kết nối với nhau và
điều hướng dữ liệu
- Giao thức phần mềm: Đây là các quy tắc và tiêu chuẩn phần mềm giúp các
thiết bị có thể giao tiếp và trao đổi thông tin với nhau Các giao thức phổ biếnbao gồm TCP/IP, HTTP, FTP, UDP,…
1.1.2 Hoạt động của mạng máy tính
Mạng máy tính hoạt động như một hệ thống truyền thông, giúp dữ liệu được truyềntải từ thiết bị nguồn (máy gửi) đến thiết bị đích (máy nhận) Quá trình này có thể được
so sánh với việc con người gửi thư qua hệ thống bưu điện:
- Máy nguồn giống như người gửi thư, có nhiệm vụ chuẩn bị và truyền tải dữ
liệu
- Máy đích là nơi nhận và xử lý dữ liệu được gửi đến.
Trang 8Các loại Topology Mạng:
Topology mạng là cách thức kết nối các thiết bị trong mạng, xác định cấu hình vật
lý của chúng và cách thức các thiết bị giao tiếp Mặc dù topology không trực tiếp liênquan đến lập trình, nhưng nó có ảnh hưởng lớn đến hiệu suất và lưu lượng dữ liệutrong mạng Dưới đây là một số loại topology phổ biến:
- Topology dạng sao (Star): Các thiết bị được kết nối vào một trung tâm (hub
hoặc switch) Đây là cấu trúc mạng phổ biến, thường thấy trong các mạngdoanh nghiệp và gia đình, vì dễ quản lý và mở rộng
- Topology dạng vòng (Ring): Mỗi thiết bị được kết nối với hai thiết bị khác,
tạo thành một vòng tròn Dữ liệu di chuyển theo một hướng xác định qua cácthiết bị trong vòng tròn này
- Topology dạng bus: Tất cả các thiết bị kết nối với một dây dẫn chính (bus).
Mạng này đơn giản và tiết kiệm chi phí, nhưng không phù hợp với mạng lớn do
sự hạn chế trong việc xử lý nhiều thiết bị đồng thời
- Topology dạng cây (Tree): Kết hợp các topology dạng sao thành một cấu trúc
phân cấp, phù hợp với mạng có nhiều nhánh, giúp dễ dàng mở rộng và quản lý
- Topology dạng lưới (Mesh): Mỗi thiết bị kết nối trực tiếp với tất cả các thiết bị
khác trong mạng Kiểu topology này đảm bảo độ tin cậy cao và khả năng phụchồi tốt, nhưng chi phí và độ phức tạp sẽ cao hơn do số lượng kết nối lớn
Mỗi loại topology có ưu điểm và nhược điểm riêng, và sự lựa chọn giữa các kiểutopology này sẽ phụ thuộc vào yêu cầu về hiệu suất, chi phí và khả năng mở rộng củamạng
Kiến trúc Phân tầng trong Mạng
Kiến trúc phân tầng là mô hình tổ chức các giao thức mạng theo các tầng riêng biệt,mỗi tầng thực hiện một chức năng cụ thể trong quá trình truyền tải dữ liệu Phân tầnggiúp đơn giản hóa thiết kế mạng, dễ dàng quản lý và duy trì các giao thức Dưới đây làhai mô hình phân tầng phổ biến:
Mô hình OSI (Open Systems Interconnection): Mô hình OSI chia mạng thành
7 tầng, từ tầng vật lý đến tầng ứng dụng
Trang 9Hình 1.1: 7 Tầng của mô hình OSI
Mô hình OSI chia mạng thành 7 tầng:
- Tầng vật lý: Chịu trách nhiệm thiết lập và duy trì kết nối vật lý giữa các
thiết bị mạng
- Tầng liên kết dữ liệu: Đảm nhận việc kiểm tra, phát hiện và sửa lỗi trong
quá trình truyền tải dữ liệu qua mạng
- Tầng mạng: Quản lý việc định tuyến dữ liệu và xử lý địa chỉ mạng, như địa
- Tầng trình bày: Xử lý và chuyển đổi dữ liệu để các hệ thống có thể hiểu và
sử dụng được thông tin
- Tầng ứng dụng: Cung cấp giao diện người dùng và các dịch vụ mạng, như
HTTP, FTP, và các giao thức khác
Trang 10Mô hình TCP/IP (Transmission Control Protocol/Internet Protocol)
Hình 1.2: Mô hình về TCP/IP
Mô hình TCP/IP đơn giản hơn mô hình OSI và được chia thành 4 tầng chính:
- Tầng liên kết dữ liệu (Link): Chịu trách nhiệm đảm bảo kết nối và truyền tải
dữ liệu giữa các thiết bị trong mạng
- Tầng Internet: Quản lý việc định tuyến dữ liệu và xử lý các địa chỉ mạng,
chủ yếu thông qua giao thức IP
- Tầng vận chuyển (Transport): Đảm bảo việc truyền tải dữ liệu giữa các hệ
thống khác nhau một cách tin cậy, thường sử dụng các giao thức như TCP
- Mạng LAN (Local Area Network): Mạng cục bộ, sử dụng trong các khu
vực nhỏ như văn phòng, trường học hoặc gia đình Mạng LAN giúp kết nối
Trang 11các thiết bị trong phạm vi gần và dễ dàng chia sẻ tài nguyên như máy in, dữliệu, và kết nối internet.
- Mạng WAN (Wide Area Network): Mạng diện rộng, kết nối các thiết bị ở
khoảng cách xa, có thể bao phủ toàn cầu hoặc xuyên quốc gia Mạng WANbao gồm các kết nối giữa các mạng LAN, ví dụ như Internet
- Mạng MAN (Metropolitan Area Network): Mạng kết nối các thiết bị trong
một khu vực đô thị lớn hoặc thành phố Mạng MAN thường được dùng đểkết nối các tòa nhà, văn phòng trong một khu vực rộng hơn LAN nhưng nhỏhơn WAN
- Mạng CAN (Campus Area Network): Mạng kết nối các tòa nhà trong một
khuôn viên cụ thể như trường đại học hoặc khu công nghiệp CAN thườngbao gồm nhiều mạng LAN được kết nối với nhau
Theo chức năng:
- Mạng ngang hàng (Peer-to-Peer): Trong mạng này, mọi thiết bị đều có vai
trò như nhau, không có máy chủ trung tâm Các thiết bị chia sẻ tài nguyêntrực tiếp với nhau, phù hợp cho các nhóm nhỏ
- Mạng khách - chủ (Client-Server): Một máy chủ cung cấp tài nguyên và
dịch vụ cho nhiều máy khách Mô hình này thường được sử dụng trong các
tổ chức hoặc doanh nghiệp, nơi các tài nguyên và dữ liệu cần được quản lýtập trung và có kiểm soát
1.2 LẬP TRÌNH MẠNG
1.2.1 Lập trình mạng là gì ?
Lập trình mạng là quá trình xây dựng các ứng dụng phần mềm có khả năng giao
tiếp với nhau qua một mạng máy tính, chẳng hạn như Internet hoặc mạng cục bộ(LAN) Mục tiêu của lập trình mạng là tạo ra các ứng dụng cho phép các thiết bị hoặc
hệ thống trao đổi dữ liệu và tài nguyên với nhau một cách hiệu quả và an toàn
1.2.2 Mô hình Client – Server
Mô hình Client-Server là một trong những mô hình cơ bản và phổ biến nhất trong
lập trình mạng Mô hình này định nghĩa cách thức giao tiếp giữa các hệ thống mạng,trong đó các máy tính hoặc thiết bị kết nối với nhau để trao đổi dữ liệu và cung cấpdịch vụ Trong mô hình này, một máy chủ (server) cung cấp dịch vụ hoặc tài nguyêncho nhiều máy khách (client) Sự phân chia rõ ràng giữa máy chủ và máy khách không
Trang 12chỉ giúp đơn giản hóa các quy trình giao tiếp mà còn tối ưu hóa việc quản lý tàinguyên và bảo mật.
1.3 ĐIỀU KHIỂN MÁY TÍNH TỪ XA ( REMOTE DESKTOP)
Remote Desktop là một công nghệ cho phép người dùng điều khiển và truy cập
một máy tính từ một địa điểm khác qua mạng, như thể họ đang ngồi trực tiếp trướcmáy tính đó Điều này có thể được thực hiện qua Internet hoặc một mạng nội bộ(LAN), cho phép các máy tính hoặc thiết bị di động trở thành các máy khách điềukhiển máy tính từ xa Công nghệ này có thể hữu ích trong nhiều trường hợp, bao gồmviệc hỗ trợ kỹ thuật từ xa, truy cập hệ thống khi làm việc từ xa, hoặc quản lý hệ thốngmáy chủ
1.4 RMI (REMOTE METHOD INVOCATION)
RMI (Remote Method Invocation) là một công nghệ trong Java cho phép các đối
tượng trong một ứng dụng Java trên một máy tính (client) có thể gọi phương thức(method) của một đối tượng trong một ứng dụng Java khác trên một máy tính khác(server) như thể các đối tượng này cùng tồn tại trên cùng một máy Điều này giúp việcphát triển các ứng dụng phân tán trở nên dễ dàng hơn, đặc biệt là trong môi trườngmạng, nơi các hệ thống có thể chạy trên các máy khác nhau
RMI sử dụng mô hình Client-Server, trong đó một đối tượng máy chủ (server)
cung cấp các phương thức mà đối tượng máy khách (client) có thể gọi từ xa
1.4.1 Các thành phần chính
RMI registry: Là một dịch vụ trung gian trong hệ thống RMI, cho phép các đối
tượng từ xa được tìm thấy và truy cập Máy khách sử dụng RMI Registry để tìm kiếmđối tượng từ xa bằng cách tham chiếu tên của đối tượng đó
Stub and Skeleton:
- Stub: Là đối tượng đại diện cho đối tượng từ xa trên phía máy khách Khi
máy khách gọi một phương thức trên stub, stub sẽ chuyển tiếp yêu cầu đótới máy chủ thực sự qua mạng
- Skeletion: Trước Java 1.2, skeleton là một lớp phụ trợ được sử dụng để
nhận và xử lý các yêu cầu từ stub Tuy nhiên, trong các phiên bản Java mớihơn, skeleton đã không còn được sử dụng, và các yêu cầu từ stub được xử
lý trực tiếp
Trang 13Remote Object: Là đối tượng thực sự tồn tại trên máy chủ và chứa các phương
thức mà máy khách có thể gọi từ xa
RemoteException: Là một ngoại lệ (exception) được sử dụng để xử lý các lỗi khi
thực hiện các gọi phương thức từ xa Điều này xảy ra khi có sự cố về mạng hoặc kếtnối
1.4.2 Cách thức hoạt động của RMI
RMI cho phép một chương trình Java truy cập các đối tượng và phương thức từ xathông qua việc gọi Remote Object Methods Quá trình này được chia thành các bướcsau:
- Định nghĩa interface: Để sử dụng RMI, bạn phải định nghĩa một interface
mà chứa các phương thức mà đối tượng máy chủ cung cấp và cho phép máy
khách gọi từ xa Interface này phải mở rộng từ java.rmi.Remote
Hình 1.3: Phần code mô phòng cho việc định nghĩa 1 interface
- Cài đặt (Implementation) của Interface: Sau khi định nghĩa interface, bạn
sẽ cài đặt các phương thức trong lớp (class) máy chủ Lớp này phải mở rộng
từ UnicastRemoteObject để hỗ trợ RMI.
Trang 14Hình 1.3: Phần code mô phỏng cài đặt phương thức trong class server
- Đăng ký đối tượng từ xa (Binding): Sau khi cài đặt xong, đối tượng máy
chủ cần được đăng ký vào RMI registry RMI registry là một dịch vụ tên (name service) cho phép máy khách tìm kiếm đối tượng từ xa
Hình 1.3: Phần code mô phỏng khởi động máy chủ.
Trang 15- Kết nối từ máy khách (Client): Máy khách sử dụng RMI registry để tìm
kiếm đối tượng máy chủ và gọi các phương thức từ xa
Hình 1.3: Phần code mô phỏng gọi phương thức từ xa.
1.4.3 Ưu điểm của RMI
- Dễ dàng sử dụng: RMI cung cấp API đơn giản để phát triển các ứng dụng
phân tán mà không cần phải sử dụng các giao thức phức tạp
- Tích hợp tốt với Java: RMI là một phần của Java, điều này giúp dễ dàng
tích hợp vào các ứng dụng Java hiện tại mà không cần thêm phần mềm hoặcthư viện bên ngoài
- Giao tiếp qua mạng dễ dàng: RMI cho phép giao tiếp giữa các máy tính
qua mạng nội bộ (LAN) hoặc Internet mà không cần quan tâm đến chi tiết giao thức
- Mã hóa và bảo mật: RMI hỗ trợ các cơ chế bảo mật, như chứng thực và
mã hóa, giúp bảo vệ dữ liệu khi truyền qua mạng
1.4.4 Hạn chế của RMI
- Chỉ hỗ trợ Java: RMI chủ yếu được thiết kế cho các ứng dụng Java và
không hỗ trợ tốt cho các ngôn ngữ lập trình khác, điều này hạn chế khả năng tương tác giữa các hệ thống khác nhau
Trang 16- Khả năng mở rộng hạn chế: RMI không phù hợp cho các ứng dụng yêu
cầu khả năng mở rộng cao như các hệ thống với số lượng kết nối lớn hoặc các giao tiếp phức tạp giữa các dịch vụ
- Yêu cầu về mạng ổn định: RMI yêu cầu mạng ổn định và tốc độ cao để
hoạt động hiệu quả, đặc biệt khi giao tiếp giữa các máy chủ và máy khách qua Internet
Trang 17CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG
2.1 BÀI TOÁN ĐẶT RA
Yêu cầu: Phát triển ứng dụng Remote Desktop sử dụng Java RMI để:
- Cho phép điều khiển từ xa máy chủ (server) từ một máy client.
- Có thể trao đổi qua lại giữa 2 máy thông qua hệ thống gửi tin nhắn.
2.2 PHÂN TÍCH THIẾT KẾ
2.2.1 Công nghệ sử dụng
- Java RMI (Remote Method Invocation): Sử dụng để thiết lập kết nối và thực
thi các phương thức từ xa giữa các thành phần client và server
- Java Swing: Công cụ được dùng để thiết kế giao diện người dùng (UI).
- Threads: Đảm bảo khả năng xử lý đồng thời.
- Socket: cho phép các ứng dụng Java giao tiếp với nhau qua mạng bằng cách
gửi và nhận dữ liệu giữa các máy tính trong môi trường mạng
2.2.2 Kiến trúc hệ thống
Server:
- Xử lý các lệnh điều khiển từ xa (di chuột, click chuột, gõ phím, v.v.)
Client:
- Gửi lệnh điều khiển.
- Hiển thị trạng thái màn hình và thông tin máy chủ theo thời gian thực.
Hình 2.1 Mô hình Client-Server