tiểu luận môn lập trình mạng nâng cao đảm bảo gắn bó dữ liệu khi cập nhật trong các cơ sở dữ liệu tập trung - Pdf 25


BỘ GIÁO DỤC & ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
  
TIỂU LUẬN
Môn: LẬP TRÌNH MẠNG NÂNG CAO
Đề tài: ĐẢM BẢO GẮN BÓ DỮ LIỆU KHI CẬP
NHẬT TRONG CÁC CƠ SỞ DỮ LIỆU TẬP TRUNG GVHD: PGS.TS. LÊ VĂN SƠN
HVTH: NGUYỄN TUẤN TRUNG
LỚP: CAO HỌC
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
KHÓA: 24Đà Nẵng - Năm 2012
MỤC LỤC
***
MỞ ĐẦU
CHƯƠNG I: CƠ SỞ LÝ THUYẾT
1.1. Thuật toán đảm bảo gắn bó yếu nhờ bộ tuần tự tuần hoàn
1.2. Thuật toán đảm bảo gắn bó mạnh
1.3. Giao tiếp theo mô hình Client/ Server và khái niệm Socket
CHƯƠNG II: GIỚI THIỆU BÀI TOÁN
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
2.1. Mô tả bài toán
2.2. Cơ sở dữ liệu
CHƯƠNG III: GIẢI QUYẾT BÀI TOÁN
3.1. Xây dựng Server

CHƯƠNG I : CƠ SỞ LÝ THUYẾT
1.1. Thuật toán đảm bảo gắn bó yếu nhờ bộ tuần tự tuần hoàn:
1.1.1. Nguyên lý:
Trước khi phát một yêu cầu, một trạm nào đó cần phải kết hợp với
nó một số thứ tự được cấp từ bộ tuần tự tuần hoàn. Các yêu cầu được tiếp
nhận tại mỗi trạm theo cùng một trật tự thống nhất. Điều đó giúp ta có được
một sự gắn bó yếu. Cần quan tâm rằng cơ chế phân phối các số dựa trên
nền tảng tổ chức các trạm theo kiểu vòng tròn ảo.
1.1.2. Triển khai hệ ổn định:
Bộ tuần tự cung cấp cho mỗi một yêu cầu số sắp tới còn chưa dùng,
giả sử đó là T. Khi đến phiên của trạm nhận bộ phận tuần tự, nó yêu cầu
một số lượng n số đúng bằng số lượng các yêu cầu cập nhật đang chờ trên
trạm này. Các số này là: T, T + 1, T + 2, T + n – 1
Nó tiếp tục chuyển bộ tuần tự cho trạm kề liền sau nó và số sắp tới
chưa dùng đến là T + n.
Khi một trạm đã có số, nó phát yêu cầu cập nhật cùng với số này.
Trên mỗi trạm, các cập nhật được thực hiện bằng cách tiếp nhận các yêu
cầu cùng các số liên tiếp nhau (theo một trật tự). Để xác định yêu cầu sắp
đến cần xử lý, mỗi một trạm duy trì một biến chứa số V được phối hợp với
yêu cầu xử lý cuối cùng. Các yêu cầu mang các số lớn hơn V + 1 được lưu
trữ trong khi chờ xử lý yêu cầu V + 1.
Việc phát đi các yêu cầu có thể sử dụng vòng tròn, nhưng điều đó
không phải là bắt buộc.
Một trạm khi đã rút một lượng số cần phải được sử dụng hết khi nó
đến lượt tiếp theo tiếp nhận bộ tuần tự, nếu không các trạm khác sẽ phải
chờ.
1.2. Thuật toán đảm bảo gắn bó mạnh:
1.2.1. Nguyên lý:
Tập hợp bao gồm các trạm được tổ chức theo kiểu vòng tròn ảo. Các
cập nhật được thực hiện theo hai thì:

hình đó dễ dàng diễn ra xung đột. Lúc này, ta phải chọn một yêu cầu có
Thời gian dấu lâu nhất. Để tiến hành công việc đó, ta nêu bật vai trò của “
bộ chắn đường ” (barrage) cho các trạm khởi sự. Một trạm nào đó trong
HVTH: Nguyễn Tuấn Trung Trang 5
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
trạng thái nghỉ ngơi hay thụ động phải chuyển toàn bộ yêu cầu đã đến với
nó, một trạm trong trạng thái hoạt động chỉ phải chuyển các yêu cầu có thời
gian lâu hơn các yêu cầu mà chính nó đã phát đi, các yêu cầu khác đều bị
dừng lại và được lưu giữ.
Các yêu cầu bị lưu lại sẽ được gửi tiếp vào vòng tròn, khi trạm lưu
trữ chúng hoàn thành việc cập nhật riêng của mình.
1.3. Giao tiếp theo mô hình Client/ Server và khái niệm Socket:
Khi nói tới lập trình mạng ta thường nghĩ đến cách trao đổi giữa một
chương trình phục vụ (Server) với một hay nhiều chương trình khách
(Client). Chương trình khách gửi một yêu cầu tới cho chương trình phục
vụ, và chương trình này xử lý dữ liệu để trả lời cho chương trình khách.
Như vậy, chương trình khách muốn gửi được yêu cầu thì trước hết
phải tìm cách kết nối với Server. Server có thể chấp nhận hay từ chối sự kết
nối này. Một khi sự kết nối đã được thiết lập thì Client và Server trao đổi
với nhau thông qua các lớp cho phép kết nối.
Các lớp trong gói java.net cung cấp các phương thức để kết nối mạng
và trao đổi tin giữa các máy với nhau theo mô hình Client/Server. Mặt
khác, trên Internet nhiều máy tính sử dụng các giao thức để trao đổi với
nhau.
1.3.1. Lập trình mạng thông qua Socket:
Trước khi yêu cầu một dịch vụ trên máy chủ thực hiện điều gì đó,
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 (tạm dịch là “cơ chế ổ cắm”).
Nếu kết nối socket thành công thì máy khách và máy chủ có thể trao

máy chủ.
 OutputStream getOutputStream()throws IOException
Lấy về luồng xuất để máy khách có thể ghi dữ liệu gửi đến máy chủ.
 InetAddress getInetAddress()
Lấy địa chỉ kết nối socket của máy chủ.
 Int getPort()
Lấy về số cổng dùng kết nối của máy chủ.
 Synchronized void close () throws IOException
Cắt đứt kết nối với máy chủ.
Ví dụ đoạn mã sau sẽ thực hiện kết nối với máy chủ có địa chỉ
“my.testing.server” và mở ra hai luồng xuất nhập để đọc và gửi thông tin
đến máy chủ có theo số cổng 1234:
try{
HVTH: Nguyễn Tuấn Trung Trang 7
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
Socket me=new Socket(“my.testing.server”, 1234);
//Luồng nhập để đọc thông tin trả về từ máy chủ kết nối
DataInputStream in =
New DataInputStream(me.getInputStream());
//Luồng xuất để ghi thông tin gửi đến máy chủ
DataOutputStream out=new DataOutputStream(me.getOutputStream());
Catch (Exception e){
System.out.println(e);
}
1.3.3. Lớp ServerSocket:
Lớp ServerSocket dùng tạo kết nối từ phía máy chủ với các máy
khách. Đối tượng ServerSocket được tạo ra trên máy chủ và lắng nghe
những kết nối từ phía máy khách gửi đến theo một số cổng định trước. Đối
tượng ServerSocket được khởi dựng từ phương thức sau:
 Public ServerSocket(int port)throws IOEXception

CHƯƠNG II : GIỚI THIỆU BÀI TOÁN
2.1. Mô tả bài toán:
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.
Bài toán yêu cầu 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ó
1. Đây là hệ đơn Server, có thể hoạt động theo mô hình Client/Server
thường gặp.
HVTH: Nguyễn Tuấn Trung Trang 9
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
2. 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
3. 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
Bài toán xây dựng một bộ phân phối tải (Bộ cung cấp tài nguyên -
Server). Bộ cung cấp tài nguyên căn cứ vào tài nguyên hiện có của mạng
(Khả năng đáp ứng yêu cầu dịch vụ của Client) mà chấp nhận phục vụ hay
từ chối yêu cầu cung cấp dịch vụ từ Client.
Yêu cầu dịch vụ từ Client ở đây được mô tả bằng cách Client gởi yêu
cầu đến Server, Server thực hiện các thao tác cần thiết như cập nhật hay tra
cứu và gởi trả lại tình trạng của thao tác.
Trong quá trình vận hành hệ thống, Server phải biết được tình trạng
hiện tại của hệ thống như: Số Client yêu cầu cung cấp dịch vụ hiện tại; Số
thông điệp (Message) của các Client đã gởi đến cho Server; Client nào đã
kết thúc yêu cầu kết nối đến Server; Tình trạng của Server (Có khả năng
đáp ứng hay từ chối yêu cầu của Client (quá tải)…
Hệ thống chỉ từ chối yêu cầu của các Client khi quá trình xung đột xẩy
ra, các yêu cầu từ các Client khác vẫn được phục vụ bình thường. Khi hệ
thống hết tình trạng xung đột thì các Client khác có thể sử dụng tài nguyên
hệ thống bình thường.

- JDBC Driver loại 1: Chúng là các trình điều khiển cầu nối JDBC-
ODBC. Chúng ủy nhiệm công việc truy cập dữ liệu cho ODBC API. Chúng
là trình điều khiển chậm nhất trong số còn lại. SUN cung cấp một phần
mềm trình điều khiển JDBC/ODBC.
- JDBC Driver loại 2 : Chúng chủ yếu sử dụng API mã nền để truy
cập dữ liệu và cung cấp các lớp bao Java để có thể được gọi ra bằng cách
dùng các JDBC driver.
- JDBC Driver loại 3: Chúng được viết thuần bằng Java và sử dụng
giao thức Net độc lập nhà sản xuất để truy cập đến trình theo dõi từ xa độc
lập nhà sản xuất. Trình theo dõi này đến lượt nó lại ánh xạ các lời gọi độc
lập nhà sản xuất này vào các lời gọi phụ thuộc nhà sản xuất. Bước đặc biệt
này đã làm tăng độ phức tạp và giảm tính hiệu quả trong truy cập cơ sở dữ
liệu.
HVTH: Nguyễn Tuấn Trung Trang 11
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
- JDBC Driver loại 4: Chúng được viết thuần túy bằng Java và là loại
hiệu quả nhất. Chúng cho phép kết nối trực tiếp vào cơ sở dữ liệu, cung cấp
kết quả tối ưu và cho phép lập trình viên thực hiện các chức năng tùy thuộc
vào cơ sở dữ liệu cụ thể. Điều này đã tạo ra tính cơ động cao nhất là khi
bạn cần thay đổi cơ sở dữ liệu bên dưới một ứng dụng. Loại driver này
thường được dùng cho các ứng dụng phân tán cao.
SUN khuyến cáo sử dụng và phát triển các trình điều khiển loại 4
trong các ứng dụng .
 Cài đặt MySQL:
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế
giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng
dụng. MySQL miễn phí hoàn toàn nên bạn có thể tải về MySQL từ trang
chủ www. mysql .com.
MySQL có nhiều phiên bản cho các hệ điều hành khác nhau như
Windows, Linux, Mac OS

Ví dụ:
try{
Class.forName (“com.mysql.jdbc.Driver”).newInstance ();
}
catch (Exception e){
System.err.println (“KHONG KET NOI DUOC”);
}
Các tài liệu về MySQL khuyến cáo bạn nên dùng cách trên. Phương
thức Class.forname() nhận một chuỗi làm đối số. Trong trường hợp bạn
dùng JDBC Driver của hãng MySQL AB cho MySQL bản 4.0 trở lên thì
chuỗi đó là:
com.mysql.jdbc.Driver
Bước tiếp theo sau khi bạn đã đăng kí JDBC Driver là thực hiện kết nối.
Toàn bộ công đoạn này được minh họa qua dòng mã sau:
Connection conn = DriverManager.getConnection(url, “myLogin”,
HVTH: Nguyễn Tuấn Trung Trang 13
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
“myPassword”);
Cách khác:
Connection conn;
conn = DriverManager.getConnection(url, “myLogin”, “myPassword”);
Đoạn mã trên rất tường minh. Phương thức getConnection() được
gọi để thực hiện một kết nối thực sự đến phần mềm máy chủ cơ sở dữ liệu.
Lớp DriverManager tạo ra một đối tượng Connection khi bạn gọi phương
thức getConnection(). Phương thức này nhận một chuỗi URL làm đối số.
Với MySQL thì chuỗi đó có thể là:
jdbc:mysql://127.0.0.1:3306/phonebooks
Nếu một trong các driver mà bạn cung cấp nhận ra địa chỉ JDBC
URL mà bạn cung cấp cho phương thức DriverManager.getConnection, thì
driver đó sẽ thiết lập đường kết nối đến MySQL xác định trong JDBC

Sơ đồ khối cho chương trình chính của Client như sau:
HVTH: Nguyễn Tuấn Trung Trang 16
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 cho
MultipleSocketServer
Kết thúc
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn

3.3. Xây dựng Monitor để quản lí hệ thống:
Monitoring thực hiện các công việc sau:
- Quan sát các Client kết nối vào Server
- Quan sát các công việc mà các client thực hiện trên cơ sở dữ liệu
Để đảm bảo Monitoring luôn nhận được thông tin về các hoạt động
truy xuất dữ liệu giữa Client/Server, các hoạt động về việc kết nối và truy
xuất dữ liệu sẽ được ghi vào file txtketnoi.txt và txtthaotac.txt.
HVTH: Nguyễn Tuấn Trung Trang 17
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

Và tên chủ thuê bao mới sẽ được cập nhật:
HVTH: Nguyễn Tuấn Trung Trang 21
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
3.4.6. Client thực hiện chức năng Xóa dữ liệu:
Ví dụ muốn xóa chủ thuê bao “Nguyen Van Z” có số điện thoại
“0903686970”, ta chọn chức năng “Xóa” và nhập số điện thoại muốn xóa
vào trường Telephone number, lúc đó Client sẽ hiển thị:
Chủ thuê bao “Nguyen Van Z” đã được xóa khỏi danh sách:
HVTH: Nguyễn Tuấn Trung Trang 22
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
3.4.7. Monitoring kết nối server để giám sát hệ thống:
Chọn chức năng “KT kết nối” (kiểm tra kết nối), màn hình
monitoring sẽ hiển thị các thông báo kết nối tới server:
HVTH: Nguyễn Tuấn Trung Trang 23
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
Chọn chức năng “KT thao tác” (kiểm tra thao tác), màn hình
monitoring sẽ hiển thị các thao tác mà clien đã yêu cầu đối với server:
CHƯƠNG IV : KẾT LUẬN
4.1. Những vấn đề thực hiện được:
 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.
HVTH: Nguyễn Tuấn Trung Trang 24
Tiểu luận: Lập trình mạng nâng cao GVHD: PGS.TS. Lê Văn Sơn
 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
4.2. Hạn chế:
 Hệ tin học phân tán cùng với việc lập trình phân tán thật sự là vấn
đề còn rất mới.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status