BỘ GIÁO DỤC & ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
BÁO CÁO TIỂU LUẬN
MÔN: LẬP TRÌNH MẠNG
GVHD: PGS.TS. LÊ VĂN SƠN
HVTH: NGUYỄN TUẤN TRUNG
LỚP: KHOA HỌC MÁY TÍNH
KHÓA: 24
NỘI DUNG
GIỚI THIỆU ĐỀ TÀI
Giả sử rằng ta có hệ thống CSDL phối hợp
với một hoạt động được gọi từ xa nhằm phục vụ
cho việc cập nhật hay tra cứu thông tin cần thiết.
Viết chương trình trên ngôn ngữ Java cho
phép cập nhật CSDL có kiểm tra tính gắn bó.
YÊU CẦU
Đây là hệ đơn Server, có thể hoạt động theo mô
hình Client/Server thường gặp.
Viết chương trình theo kiểu đa truy cập, ngẫu
nhiên, từ xa với số lượng truy cập lớn.
Xây dựng Monitoring để Manager hệ thống có
thể kiểm tra và điều khiển quá trình thực hiện.
GIẢI QUYẾT VẤN ĐỀ
NGÔN NGỮ LẬP TRÌNH
XÂY DỰNG CƠ SỞ DỮ LIỆU
Cơ sở dữ liệu được thiết kế không nhằm mục đích
quản lý mà chỉ phục vụ cho yêu cầu về cập nhật, tra cứu
thông tin.
Do đó có thể thiết kế rất đơn giản:
- Thiết kế cơ sở dữ liệu PhoneBooks sử dụng hệ
quản trị cơ sở dữ liệu MySQL.
- Cơ sở dữ liệu PhoneBooks sẽ bao gồm table
tbl_telephone.
- Table tbl_telephone gồm một trường Name và
Telephone để lưu Tên và Số điện thoại.
KẾT NỐI CSDL
Sử dụng đăng kết JDBC
Nạp trình điều khiển
Class.forName("com.mysql.jdbc.Driver");
Thực hiện kết nối.
knoi = DriverManager.getConnection (url,userName,
password);
KIỂM TRA TÍNH GẮN BÓ DỮ LIỆU
Thông thường một ứng dụng có nhiều user làm
việc với CSDL, ta sẽ gặp phải trường hợp hai hay
nhiều user truy xuất và cập nhật trên cùng một dữ
liệu, ta gọi đó là trạng thái xung đột. Và khi đó số
liệu dễ bị sai lạc và làm mất tính toàn vẹn, gắn bó
của dữ liệu.
KIỂM TRA TÍNH GẮN BÓ DỮ LIỆU
Do đó, mỗi khi cập nhật thông tin hay tra cứu
thông tin, phải kiểm tra để xác định quyền truy cập
để đọc hay sửa đổi nội dung các bảng cơ sở dữ
liệu. Chỉ cho phép cập nhật khi không có truy vấn
nào đang tiến hành.
Các hệ CSDL có hỗ trợ transaction sẽ sử dụng cơ
chế lock, khoá các khối dữ liệu đang ở trong một
transaction, ngăn không cho các truy cập từ những
người dùng khác.
MÔ HÌNH CLIENT – SERVER
Các chương trình ở máy khách (client) sẽ tạo ra kết nối
(connection) với một máy chủ ở xa (server) sau đó gửi
các yêu cầu đến máy chủ, các chương trình dịch vụ trên
máy chủ sẽ xử lý các yêu cầu này và gửi kết quả ngược
về cho máy khách.
Trước khi yêu cầu một dịch vụ trên máy chủ, máy
khách (client) phải có khả năng kết nối được với máy chủ
(server). Quá trình kết nối này được Java thực hiện thông
qua một cơ chế trừu tượng hóa gọi là Socket.
Nếu kết nối socket thành công thì máy khách và máy
chủ có thể trao đổi dữ liệu với nhau, thực hiện các yêu
cầu về dịch vụ trên máy chủ.
LẬP TRÌNH SOCKET
Server
Client
int port = 8000
DataInputStream in
DataOutputStream out
ServerSocker server
Socket socket
server = new
ServerSocker(port);
socket = server.accept();
in = new DataInputStream
(socket.getInputStream());
out = new DataOutputStream
(socket.getOutputStream());
System.out.println
(in.readDouble());
out.writeDouble(aNumber);
int port = 8000
String host = “localhost”
DataInputStream in
DataOutputStream out
Socket socket
socket = new Socket(host, port());
in = new DataInputStream
(socket.getInputStream());
out = new DataOutputStream
(socket.getOutputStream());
out.writeDouble(aNumber);
System.out.println(in.readDouble()
);
Lắng nghe /
Yêu cầu kết nối
Các luồng I/O
Các luồng trao đổi
Sự trao đổi giữa Server và Client bằng socket trong java
XÂY DỰNG SERVER
Sơ đồ thuật toán chương trình chính Server
Bắt đầu
Tạo giao diện
Đợi kết nối từ các Client
Nhận kết nối
Sai
Đúng
Tạo một Thread mới kết nối với a
(MultipleSocketServer)
Kết thúc
XÂY DỰNG SERVER
Sơ đồ thuật toán MultipleSocketServer
Bắt đầu
Tạo kết nối với CSDL
Nhận thông tin từ Client
Thực thi việc nhập, sửa, xoá, xuất
thông tin theo thông tin nhận được
Gửi kết quả về cho Client
Kết thúc
XÂY DỰNG CLIENT
Thuật toán xây dựng Client
Bắt đầu
Tạo giao diện
Kết nối đến Server
Thực hiện yêu cầu thêm, sửa, xoá, xuất trên giao
diện
Chuyển yêu cầu đến Server
Nhận kết quả từ Server, xuất kết quả ra màn hình
Kết thúc
XÂY DỰNG MONITORING
Sơ đồ thuật toán
Bắt đầu
Tạo giao diện
Kết nối đến Server
Thực hiện yêu cầu kiểm tra kết nối, kiểm tra thao tác, thoát
Chuyển yêu cầu đến Server
Nhận kết quả từ Server, xuất kết quả ra màn hình
Kết thúc
KẾT LUẬN
Các vấn đề được giải quyết:
Thực hiện kết nối Client/Server, trong đó một
Server có thể nhận kết nối từ nhiều Client cùng lúc.
Mỗi Client có thể kết nối vào cơ sở dữ liệu tại
Server và thực hiện các hoạt động thêm, sửa, xoá,
xuất, thoát.
Quá trình này có kiểm tra tính gắn bó về dữ liệu.
Xây dựng Monitoring dùng để kiểm tra quá trình
cập nhật dữ liệu.
Hạn chế:
Chương trình được viết chỉ mới mang tính chất
thử nghiệm, chưa phải là một chương trình hoàn
chỉnh.
Chưa thử nghiệm được khi số lượng Client kết
nối lớn, cũng như khi dữ liệu yêu cầu lớn.
Xin chân thành cảm ơn!!!