Tải bản đầy đủ (.doc) (23 trang)

XÂY DỰNG CHƯƠNG TRÌNH SCREEN MONITORING, đồ án Java

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 (792.39 KB, 23 trang )

Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
MỤC LỤC
Trang 1
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
XÂY DỰNG CHƯƠNG TRÌNH SCREEN MONITORING
Chương I. Giới thiệu
1. Mục tiêu đề tài:
Tích hợp việc thiết kế và thực thi hệ thống và thực thi ứng dụng dựa trên
hệ thống mạng máy tính. Hiểu khái niệm phân tích và giải quyết bài toán với lập
trình hướng đối tượng:
 Xác định các đối tượng, lớp
 Mối quan hệ giữa các lớp trong một hệ thống thông tin
 Phát triển các chương trình Java dùng các công nghệ, kỹ thuật khác
nhau trong Java
2. Vấn đề đề tài giải quyết:
- Giao diện cực kỳ thân thiện.
- Sử dụng công nghệ có khả năng đáp ứng nhanh và cực kỳ ổn định.
- Dễ dàng triển khai trên hệ thống mạng LAN và mạng WAN.
- Ứng dụng của chương trình:
 Trong dịch vụ Internet:
- Quản lý: quản lý phòng net và theo dõi các khách hàng
đang truy cập vào những trang web nào và đang sử dụng những
chương trình ứng dụng nào.
- Điều khiển: ngăn không cho khách hàng truy cập vào
những trang web có nội dung không lành mạnh.
 Trong giáo dục:
Trang 2
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
- Quản lý: Quản lý lớp học của bạn và theo dõi các học
sinh làm bài.
- Điều khiển: Ngăn không cho học sinh truy xuất các


website hoặc không cho sử dụng một số chương trình ứng dụng.
- Các chức năng khác:
 Cảnh báo: gửi câu cảnh báo đến máy tính của học sinh bằng một câu
thông báo để yêu cầu học sinh ngay lập tức tập trung vào bài giảng.
 Các lệnh: logoff, shutdown hoặc restart mọi máy tính trong lớp học,
trong phòng net bằng một lệnh đơn giản.
Hiện nay máy vi tính không còn xa lạ đối với chúng ta, nó được sử dụng rộng
rãi trong lĩnh vực như giải trí, học tập, kinh doanh, văn phòng, ….Việc quan sát
hoạt động các máy Client là một nhu cầu cần thiết. Vì vậy chúng em chọn đề tài
này nhằm đáp ứng nhu cầu trên.
- Các khía cạnh kỹ thuật để thực hiện dự án:
 Đây là mạng máy tính theo mô hình Clients/Server.
 Sử dụng đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trình có
thể chạy song song cùng một thời điểm và tương tác với nhau.
 Chương trình có thể chạy trên nhiều máy tính có hệ điều hành khác
nhau.
Trang 3
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
Chương II. Cơ sở lý thuyết
1. Sơ lược về mạng máy tính và hệ phân tán
a) Mạng máy tính
Mạng máy tính là tập hợp những máy tính độc lập được nối với nhau bởi các
đường truyền vật lý theo một kiến trúc và tuân theo các quy ước truyền thông nào
đó.
Mọi người có thể cùng trao đổi giao lưu với nhau qua mạng máy tính, có thể
cung cấp cho người khác những thông tin được giữ trong máy của mình, và chính
bản thân mỗi người cũng được hưởng nguồn thông tin khổng lồ từ những máy tính
khác.
Trang 4
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân

b) Hệ phân tán
- Colouris, Dollimore, Kindberg
Một hệ thống gồm các phần cứng, phần mềm tích hợp bên trong một
hệ thống mạng máy tính, có sự liên lạc, phối hợp các hoạt động dựa trên sự cho
phép liên lạc các tin tức.
- Tanenbaum and Van Steen
Một hệ phân tán là một tập các máy tính độc lập sau cho mỗi user trong
hệ thống này giống như một máy tính đơn lẻ.
- Leslie Lamport
Một hệ phân tán là một hệ thống mà ta không thể lấy bất cứ công việc đã
thực hiện bởi vì các máy không bao giờ nghe các yêu cầu.
Lý do tồn tại của hệ phân tán:
- Chức năng độc lập (các máy tính với các khả năng và mục đích
khác nhau):
• Clients và Server.
• Tập hợp dữ liệu và xử lý dữ liệu.
- Độ tin cậy:
• Bảo quản và sao lưu dữ liệu tại các vị trí khác nhau.
- Tính kinh tế:
• Chia sẻ máy in cho nhiều user và giảm chi phí cho doanh
nghiệp.
• Xây dựng siêu máy tính cho một hệ thống mạng máy tính.
Trang 5
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
2. Các giao thức mạng
a) Giao thức IP
Là một giao thức hướng dữ liệu được sử dụng bởi các máy chủ nguồn và
đích để truyền dữ liệu trong một liên mạng chuyển mạch gói .
Giao thức IP cung cấp một dịch vụ gửi dữ liệu không đảm bảo (còn gọi là cố
gắng cao nhất ), nghĩa là nó hầu như không đảm bảo gì về gói dữ liệu. Gói dữ liệu

có thể đến nơi mà không còn nguyên vẹn, nó có thể đến không theo thứ tự (so với
các gói khác được gửi giữa hai máy nguồn và đích đó), nó có thể bị trùng lặp hoặc
bị mất hoàn toàn.
b) Giao thức UDP
UDP (User Datagram Protocol) là một trong những giao thức cốt lõi của
giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gởi những
dữ liệu ngắn được gọi là datagram tới máy khác. UDP không cung cấp sự tin cậy
và thứ tự truyền nhận mà TCP làm; các gói dữ liệu có thể đến không đúng thứ tự
hoặc bị mất mà không có thông báo. Tuy nhiên UDP nhanh và hiệu quả hơn đối
với các mục tiêu như kích thước nhỏ và yêu cầu khắt khe về thời gian. Do bản chất
không trạng thái của nó nên nó hữu dụng đối với việc trả lời các truy vấn nhỏ với
số lượng lớn người yêu cầu.
c) Giao thức TCP
Giao thức TCP (Transmission Control Protocol ) là một trong các giao
thức cốt lõi của bộ giao thức TCP/IP. Sử dụng TCP, các ứng dụng trên các máy
chủ được nối mạng có thể tạo các "kết nối" với nhau, mà qua đó chúng có thể trao
đổi dữ liệu hoặc các gói tin. Giao thức này đảm bảo chuyển giao dữ liệu tới nơi
nhận một cách đáng tin cậy và đúng thứ tự. TCP còn phân biệt giữa dữ liệu của
Trang 6
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
nhiều ứng dụng (chẳng hạn, dịch vụ Web và dịch vụ thư điện tử) đồng thời chạy
trên cùng một máy chủ.
TCP hỗ trợ nhiều giao thức ứng dụng phổ biến nhất trên Internet và các ứng
dụng kết quả, trong đó có WWW, thư điện tử và Secure Shell.
d) Mô hình client/server
Trong mô hình này, chương trình ứng dụng được chia thành 2 thành phần:
- Quá trình chuyên cung cấp một số phục vụ nào đó, chẳng hạn: phục
vụ tập tin, phục vụ máy in, phục vụ thư điện tử, phục vụ Web Các quá trình này
được gọi là các trình phục vụ hay Server.
- Một số quá trình khác có yêu cầu sử dụng các dịch vụ do các Server

cung cấp được gọi là các quá trình khách hàng hay Client.
- Việc giao tiếp giữa client và server được thực hiện dưới hình thức trao
đổi các thông điệp (Message). Để được phục vụ, client sẽ gởi một thông điệp yêu
cầu (Request Message) mô tả về công việc muốn server thực hiện. Khi nhận được
thông điệp yêu cầu, server tiến hành phân tích để xác định công việc cần phải thực
thi. Nếu việc thực hiện yêu cầu này có sinh ra kết quả trả về, server sẽ gởi nó cho
client trong một thông điệp trả lời (Reply Message). Dạng thức (format) và ý
nghĩa của các thông điệp trao đổi giữa client và server được qui định rõ bởi giao
thức (protocol) của ứng dụng.
Trang 7
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
Mô hình Client Server:
 Ứng dụng hầu hết cho các hệ phân tán
 Thực thi trên diện rộng.
 Dựa trên:
– Hai vai trò: server và client
– Liên lạc thông tin:
» Bất đối xứng
»Yêu cầu (client) – phục vụ (server)
e) Lập trình socket
Socket là một phương pháp để thiết lập kết nối truyền thông giữa một
chương trình yêu cầu dịch vụ (client) và một chương trình cung cấp dịch vụ
(server) trên mạng LAN, WAN hay Internet và đôi lúc là giữa những quá trình
ngay bên trong máy tính. Mỗi socket có thể được xem như một điểm cuối trong
một kết nối. Một socket trên máy yêu cầu dịch vụ có địa chỉ mạng được cấp sẵn để
Trang 8
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
“gọi” một socket trên máy cung cấp dịch vụ. Một khi socket đã được thiết lập phù
hợp, hai máy tính có thể trao đổi dịch vụ và dữ liệu.
Chương III. Mô tả ứng dụng

1. Giới thiệu ứng dụng
Đây là chương trình Screen monitoring:
- Chụp ảnh màn hình máy Client sau mỗi khoảng thời gian nhất định và gởi
về cho Server.
- Cảnh báo Client nếu sử dụng máy sai mục đích (tích hợp chức năng chat).
- Gởi lệnh Logoff, Shutdown, Restart máy Client, mỗi Client lưu trên một
thư mục.
2. Kịch bản sử dụng của ứng dụng
- Khi Client khởi động thì chương trình sẽ khởi động cùng Window hệ thống
sẽ tự động đăng nhập và khi đó Client đã chịu sự giám sát của Server. Client sẽ tự
động chụp màn hình của chính mình và gửi đến cho Server trong suốt quá trình
hoạt động.
- Khi Client kết nối vào Server thì Server sẽ hiển thị thông tin sau:
 Màn hình hiện tại của máy Client
 Tên của máy Client và đó cũng là tên thư mục chứa hình ảnh của
chính nó
Nếu Client sử dụng sai mục đích hay đang truy cập vào một trang web có
nội dung không lành mạnh, Server có thể gửi thông điệp cảnh báo (Chat) và yêu
cầu máy Client thực hiện câu lệnh như: Logoff, Shutdown, Restart.
3. Kiến trúc ứng dụng
Trang 9
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
a. Mô hình tổng thể
b. Gói Server
- KhungAnh.java: để hiển thị khung hình của từng máy Client.
- Nut.java: gồm các nút Shutdown, Restart, Logoff, Chat cùng
với chức năng cập nhật danh sách tên máy Client, gửi các thông điệp cho Client
như: Shutdown, Restart, Logoff, Chat.
Trang 10
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân

- ManHinhClientPanel.java: chứa khung ảnh hiển thị màn hình
Client.
- BigForm.java: kết hợp ManHinhClientPanel.java và Nut.java
thành giao diện chính của chương trình.
- ListenToClient.java: nhận size ảnh và sau đó nhận file ảnh từ
Client gửi đến, hiển thị qua khung ảnh trong giao diện chính của Server.
- MonitorServer.java: cập nhật danh sách, hình ảnh các máy
Client.
c. Gói Client
- SendToServer.java: Client tự chụp màn hình rồi gửi file ảnh
đến Server, sau một khoảng thời gian Client lại tiếp tục thực hiện công việc trên.
- ListenToServer.java: lắng nghe và thực hiện yêu cầu của
Server.
Trang 11
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
- Client.java: khởi tạo hai tiến trình ListenToServer và
SendToServer.
2. Mô hình truyền thông điệp giữa Client và Server
- Mô hình truyền thông điệp:
- Mô tả hệ thống:
Sau khi khởi động, chương trình Server thực thi dựa trên socket và một port
xác định. Server đợi và lắng nghe qua socket của Client tạo yêu cầu kết nối. Nếu
không có gì xảy ra thì Server chấp nhận kết nối. Khi Server chấp nhận kết nối, thì
Server sẽ lấy một socket mới ghép với một port. Server tạo ra socket mới và lắng
nghe kết nối socket từ phía Client yêu cầu. Các máy Client sẽ thực hiện vòng lặp
tự chụp ảnh màn hình hiện tại của mình, lưu, gửi, ngủ. Trong quá trình gửi, Client
Trang 12
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
gửi tên máy và size ảnh trước khi gửi ảnh về cho Server. Server nhận và hiển thị
tên máy qua jScrollPane1 và ảnh qua khung ảnh Panel. Nếu Server phát hiện

Client sử dụng sai mục đích Server sẽ gửi thông điệp nhắc nhở hoặc gửi lệnh
Shutdown, Restart, Logoff cho máy Client. Khi máy Client nhận được một trong
các câu lệnh trên, sau một khoảng thời gian sẽ thực hiện công việc tương ứng với
mỗi câu lệnh.
Chương IV. Cài đặt và kết quả thử nghiệm
1. Cài đặt
Trong quá trình học tập, chúng em đã học rất nhiều ngôn ngữ lập trình ví dụ
như: C#, Turbo C, C++, ASP.NET, PHP, …. Trong môn học Lập trình Ứng dụng
Phân tán Đối tượng, chúng em được tiếp cận với một ngôn ngữ mới đó là Java vì
vậy chúng em quyết định chọn ngôn ngữ này để thực hiện đồ án nhằm mở rộng
thêm kiến thức về Java cũng như nâng cao khả năng lập trình.
Lập trình ứng dụng Client/Server bằng ngôn ngữ Java thuận lợi hơn.
Lập trình socket với ngôn ngữ Java dễ dàng thực hiện hơn so với các ngôn
ngữ khác.
Kiến trúc hệ thống:
- Thông dịch:
Java là một ngôn ngữ lập trình vừa biên dịch vừa thông dịch. Chương
trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu tiên được biên
dịch thành tập tin có đuôi *.class và sau đó sẽ được trình thông dịch thành mã
máy.
- Độc lập nền:
Trang 13
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
Một chương trình viết bằng ngôn ngữ Java có thể chạy trên nhiều máy
tính có hệ điều hành khác nhau (Windows, Unix, Linux, …) với điều kiện ở đó có
cài đặt máy ảo java (Java Virtual Machine).
- Hướng đối tượng:
Hướng đối tượng trong Java tương tự như C++ nhưng Java là một ngôn
ngữ lập trình hướng đối tượng hoàn toàn. Tất cả mọi thứ đề cập đến trong Java đều
liên quan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một

chương trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp.
Hướng đối tượng trong Java không có tính đa kế thừa (multi inheritance) như trong
C++ mà thay vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa.
- Đa nhiệm - đa luồng (MultiTasking - Multithreading):
Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu
trình có thể chạy song song cùng một thời điểm và tương tác với nhau.
Trang 14
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
- Khả chuyển (portable):
Chương trình ứng dụng viết bằng ngôn ngữ Java chỉ cần chạy được trên
máy ảo Java là có thể chạy được trên bất kỳ máy tính, hệ điều hành nào có máy ảo
Java. “Viết một lần, chạy mọi nơi” (Write Once, Run Anywhere).
- Hỗ trợ mạnh cho việc phát triển ứng dụng:
Công nghệ Java phát triển mạnh mẽ nhờ vào “đại gia Sun Microsystem”
cung cấp nhiều công cụ, thư viện lập trình phong phú hỗ trợ cho việc phát triển
nhiều loại hình ứng dụng khác nhau cụ thể như:
 J2SE (Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng đơn,
ứng dụng client-server.
 J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển các ứng dụng thương
mại.
 J2ME (Java 2 Micro Edition) hỗ trợ phát triển các ứng dụng trên các
thiết bị di động, không dây, …
Trang 15
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
Mô tả chi tiết các lớp, các phương thức quan trọng của mỗi lớp:
Lớp SendToServer :
- Phương thức public void chupAnhManHinh(): dùng để lấy Size ảnh và
chụp màn hình của Client với tên ảnh “screen.jpg”.
Trang 16
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân

- Phương thức public void guiAnhVeServer(): dùng để gửi Size ảnh và ảnh
cho Server với kích thước mỗi lần gửi là 4Byte và gửi cho đến khi nào hết File
ảnh.
- Phương thức public void run(): gồm có một vòng lặp vô tận dùng để gọi
thực thi hai phương thức chupAnhManHinh() và guiAnhVeServer(), sau 3 giây thì
thực thi hai phương thức trên một lần.
Trang 17
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
Lớp ListenToServer:
- Phương thức public ListenToServer(Socket s): dùng để mở socket bắt
đầu lắng nghe từ Server.
- Phương thức public void run(): dùng để đọc chuỗi, nếu chuỗi là
LOGOFF, RESTART, SHUTDOWN, Client sẽ thực hiện tương ứng với từng câu
lệnh. Nếu chuỗi là CHAT thì máy Client sẽ hiển thị thông điệp của Server từ
Dialog.
Lớp ListenToClient:
Trang 18
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
- Phương thức public ListenToClient: Bật giao diện chính của Server và
mở Socket để chấp nhận kết nối từ Client.
- Phương thức public void run(): Server nhận Size ảnh và ảnh được gửi từ
Client, hiển thị lên màn hình chính. Hình ảnh sẽ được lưu trong một thư mục với
tên mỗi thư mục là tên của mỗi máy Client.
Lớp MonitorServer:
Trang 19
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
- Phương thức public MonitorServer(): Hiển thị danh sách Client trên giao
diện chính của chương trình và cập nhật lại giao diện chính.
Trang 20
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân

2. Kết quả thử nghiệm:
a. Các giao diện chính của chương trình
Server muốn gửi thông điệp đến Client thì chọn tên máy, viết thông điệp
sau đó Click vào . Thông tin đến Client, Client nhận và hiển thị
Trang 21
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
Nếu Client không tiếp nhận cảnh báo từ Server thì Server có quyền Logoff
, Restart , Shutdown Client đó.
b. Kết quả thử nghiệm trên mạng LAN
Khảo sát trên mạng LAN, các chức năng tương đối ổn định, hiển thị
màn hình, tên máy Client, ta có thể thực hiện được các tính năng như: Chat,
Shutdown, Logoff, Restart.
Trang 22
Lập trình Ứng dụng Phân tán Đối tượng GV: Nguyễn Bảo Ân
Chương V. Kết luận và hướng phát triển
1. Các kiến thức đã tích lũy trong quá trình làm project:
 Áp dụng được các kiến thức đã thực hành trên lớp vào project.
 Hiểu sâu hơn về ngôn ngữ Java.
2. Kết luận về kết quả của đề tài:
Xây dựng được giao diện chính và các chức năng của chương trình như:
Shutdown, Restart, Logoff, Chat.
a) Ưu điểm:
 Hoàn thành được các yêu cầu của đề tài.
 Giao diện thân thiện, dễ sử dụng.
 Đảm bảo các chức năng của hệ thống.
b) Khuyết điểm:
 Giao diện chưa đẹp.
 Tuy đã hoàn thành được các yêu cầu nhưng chương trình vẫn chưa
được tối ưu.
c) Cách khắc phục các khuyết điểm trong tương lai:

Tìm hiểu sâu hơn về ngôn ngữ Java để xây dựng được chương trình
ứng dụng có nhiều chức năng hơn và hữu dụng hơn.
d) Hướng phát triển và mở rộng trong tương lai:
 Thiết kế giao diện đẹp hơn.
 Tối ưu hóa các chức năng chính của chương trình.
Trang 23

×