L p trình phân tán h ng đ i t ng trong Java, k t n i CSDL v i ập trình mạng và ướng đối tượng trong Java, kết nối CSDL với ối tượng trong Java, kết nối CSDL với ượng trong Java, kết nố
Trang 1ĐẠI HỌC ĐÀ NẴNG
TÊN ĐỀ TÀI
Đà Nẵng, tháng 5 năm 2012
GVHD: PGS.TS Lê Văn Sơn HVTH: Lê Văn Linh
Lớp : Khoa học máy tính K16
Trang 2N I DUNG TRÌNH BÀY ỘI DUNG TRÌNH BÀY
Các khái ni m c b n c a h tin h c phân tán, l p trình m ng và ệm cơ bản của hệ tin học phân tán, lập trình mạng và ơ bản của hệ tin học phân tán, lập trình mạng và ản của hệ tin học phân tán, lập trình mạng và ủa hệ tin học phân tán, lập trình mạng và ệm cơ bản của hệ tin học phân tán, lập trình mạng và ọc phân tán, lập trình mạng và ập trình mạng và ạng và CSDL phân tán
L p trình phân tán h ng đ i t ng trong Java, k t n i CSDL v i ập trình mạng và ướng đối tượng trong Java, kết nối CSDL với ối tượng trong Java, kết nối CSDL với ượng trong Java, kết nối CSDL với ết nối CSDL với ối tượng trong Java, kết nối CSDL với ớng đối tượng trong Java, kết nối CSDL với JDBC
Đ m b o g n bó d li u khi c p nh t trong các CSDL phân tán t i ản của hệ tin học phân tán, lập trình mạng và ản của hệ tin học phân tán, lập trình mạng và ắn bó dữ liệu khi cập nhật trong các CSDL phân tán tại ữ liệu khi cập nhật trong các CSDL phân tán tại ệm cơ bản của hệ tin học phân tán, lập trình mạng và ập trình mạng và ập trình mạng và ạng và các ngân hàng
Demo ch ng trình.ươ bản của hệ tin học phân tán, lập trình mạng và
Trang 3KHÁI NI M V H TIN H C PHÂN TÁN ỆM VỀ HỆ TIN HỌC PHÂN TÁN Ề HỆ TIN HỌC PHÂN TÁN ỆM VỀ HỆ TIN HỌC PHÂN TÁN ỌC PHÂN TÁN
H tin h c phân tán là h th ng x lý ệm cơ bản của hệ tin học phân tán, lập trình mạng và ọc phân tán, lập trình mạng và ệm cơ bản của hệ tin học phân tán, lập trình mạng và ối tượng trong Java, kết nối CSDL với ử lý thông tin bao g m nhi u b x lý ồm nhiều bộ xử lý ều bộ xử lý ộ xử lý ử lý
ho c các b x lý n m xa các v ặc các bộ xử lý nằm ở xa ở các vị ộ xử lý ử lý ằm ở xa ở các vị ở xa ở các vị ở xa ở các vị ị trí khác nhau
Trang 4L P TRÌNH Đ I T ẬP TRÌNH ĐỐI TƯỢNG PHÂN TÁN ỐI TƯỢNG PHÂN TÁN ƯỢNG PHÂN TÁN NG PHÂN TÁN
Các đối tượng được hỗ trợ trao đỗi với nhau theo những phương thức chuẩn trên mạng
Ví dụ:
Đối tượng ở máy Client có thể gửi một thông điệp đến một đối tượng trên Server trên mạng
Đối tượng trên Server truy cập vào CSDL để lấy những thông tin cần thiết và gửi lại cho đối tượng trên máy Client
Trang 5C S D LI U PHÂN TÁN Ơ SỞ DỮ LIỆU PHÂN TÁN Ở DỮ LIỆU PHÂN TÁN Ữ LIỆU PHÂN TÁN ỆM VỀ HỆ TIN HỌC PHÂN TÁN
M t c s d li u phân tán là t p h p nhi u c s d li u có liên đ i ộ xử lý ơ bản của hệ tin học phân tán, lập trình mạng và ở xa ở các vị ữ liệu khi cập nhật trong các CSDL phân tán tại ệm cơ bản của hệ tin học phân tán, lập trình mạng và ập trình mạng và ợng trong Java, kết nối CSDL với ều bộ xử lý ơ bản của hệ tin học phân tán, lập trình mạng và ở xa ở các vị ữ liệu khi cập nhật trong các CSDL phân tán tại ệm cơ bản của hệ tin học phân tán, lập trình mạng và ớng đối tượng trong Java, kết nối CSDL với logic và đ c phân b trên m t m ng máy tính ượng trong Java, kết nối CSDL với ối tượng trong Java, kết nối CSDL với ộ xử lý ạng và
Trạm 5
Mạng truyền
dữ liệu
Trạm 3
Trạm 1
Trạm 4
Trạm 2
Trang 6RMI VÀ L P TRÌNH PHÂN TÁN ẬP TRÌNH ĐỐI TƯỢNG PHÂN TÁN
HƯỚNG ĐỐI TƯỢNG TRONG JAVA NG Đ I TỐI TƯỢNG PHÂN TÁN ƯỢNG PHÂN TÁNNG TRONG JAVA
• RMI (Remote Method Invoke) – mang ý nghĩa tri u g i ph ng ệm cơ bản của hệ tin học phân tán, lập trình mạng và ọc phân tán, lập trình mạng và ươ bản của hệ tin học phân tán, lập trình mạng và
th c t xa – là cách th c giao ti p gi a các đ i t ng trong Java ứ ừ xa – là cách thức giao tiếp giữa các đối tượng trong Java ứ ết nối CSDL với ữ liệu khi cập nhật trong các CSDL phân tán tại ối tượng trong Java, kết nối CSDL với ượng trong Java, kết nối CSDL với
có mã l nh cài đ t n m trên các máy khác nhau có th tri u g i ệm cơ bản của hệ tin học phân tán, lập trình mạng và ặc các bộ xử lý nằm ở xa ở các vị ằm ở xa ở các vị ể triệu gọi ệm cơ bản của hệ tin học phân tán, lập trình mạng và ọc phân tán, lập trình mạng và
l n nhau.ẫn nhau
A1
A2
B1
C1
C3 C2
PC B
PC C
PC A
Trang 7CÁC V N Đ PHÁT SINH ẤN ĐỀ PHÁT SINH Ề HỆ TIN HỌC PHÂN TÁN
KHI G I PHỌC PHÂN TÁN ƯƠ SỞ DỮ LIỆU PHÂN TÁNNG TH C T XAỨC TỪ XA Ừ XA
Vi c g i ph ng th c c a đ i t ng t xa luôn ph c t p h n g i ệm cơ bản của hệ tin học phân tán, lập trình mạng và ọc phân tán, lập trình mạng và ươ bản của hệ tin học phân tán, lập trình mạng và ứ ủa hệ tin học phân tán, lập trình mạng và ối tượng trong Java, kết nối CSDL với ượng trong Java, kết nối CSDL với ừ xa – là cách thức giao tiếp giữa các đối tượng trong Java ứ ạng và ơ bản của hệ tin học phân tán, lập trình mạng và ọc phân tán, lập trình mạng và
ph ng th c c c b ươ bản của hệ tin học phân tán, lập trình mạng và ứ ục bộ ộ xử lý
Các đ i t ng trên hai máy khác nhau ho t đông trên hai ti n trình ối tượng trong Java, kết nối CSDL với ượng trong Java, kết nối CSDL với ạng và ết nối CSDL với khác nhau nên vi c tham chi u đ n bi n đ a ch hoàn toàn khác ệm cơ bản của hệ tin học phân tán, lập trình mạng và ết nối CSDL với ết nối CSDL với ết nối CSDL với ị ỉ hoàn toàn khác nhau
L i g i ph ng th c t xa ph i thông qua m ng và có th b ng t ời gọi phương thức từ xa phải thông qua mạng và có thể bị ngắt ọc phân tán, lập trình mạng và ươ bản của hệ tin học phân tán, lập trình mạng và ứ ừ xa – là cách thức giao tiếp giữa các đối tượng trong Java ản của hệ tin học phân tán, lập trình mạng và ạng và ể triệu gọi ị ắn bó dữ liệu khi cập nhật trong các CSDL phân tán tại ngang do m ng g p s c ạng và ặc các bộ xử lý nằm ở xa ở các vị ự cố ối tượng trong Java, kết nối CSDL với
Các tham s truy n cho đ i t ng xa ph i đ c đóng gói và ối tượng trong Java, kết nối CSDL với ều bộ xử lý ối tượng trong Java, kết nối CSDL với ượng trong Java, kết nối CSDL với ở xa ở các vị ản của hệ tin học phân tán, lập trình mạng và ượng trong Java, kết nối CSDL với truy n qua m ng đ đ n v i ph ng th c th c s ều bộ xử lý ạng và ể triệu gọi ết nối CSDL với ớng đối tượng trong Java, kết nối CSDL với ươ bản của hệ tin học phân tán, lập trình mạng và ứ ự cố ự cố
Trang 8VAI TRÒ C A CÁC L P TRUNG GIAN ỦA CÁC LỚP TRUNG GIAN ỚNG ĐỐI TƯỢNG TRONG JAVA
• Đ gi i quy t v n đ trên, đ i t ng trên hai máy khác nhau không g i tr c ti p ể triệu gọi ản của hệ tin học phân tán, lập trình mạng và ết nối CSDL với ấ ều bộ xử lý ối tượng trong Java, kết nối CSDL với ượng trong Java, kết nối CSDL với ọc phân tán, lập trình mạng và ự cố ết nối CSDL với
mà thông qua l p trung gian L p này t n t i c hai phía Client và Server L p ớng đối tượng trong Java, kết nối CSDL với ớng đối tượng trong Java, kết nối CSDL với ồm nhiều bộ xử lý ạng và ở xa ở các vị ản của hệ tin học phân tán, lập trình mạng và ớng đối tượng trong Java, kết nối CSDL với máy Client g i là
ở xa ở các vị ọc phân tán, lập trình mạng và Stub , l p máy Server g i là ớng đối tượng trong Java, kết nối CSDL với ở xa ở các vị ọc phân tán, lập trình mạng và Skel (Skeletion).
A1
A2
Computer A
B1
C1
Computer B
Computer C
B1_stub
B1_skel
Trang 9GI I THI U JDBC ỚNG ĐỐI TƯỢNG TRONG JAVA ỆM VỀ HỆ TIN HỌC PHÂN TÁN (JAVA DATABASE CONNECTIVITY)
JDBC là giao diện để kết nối với CSDL, gồm một tập các lớp đối tượng hỗ trợ để xử lý CSDL quan
hệ và để tương tác với các nguồn dữ liệu khác nhau
Chương trình ứng dụng Java kết nối các CSDL
phải được thực hiện theo các bước sau:
Tạo đối tượng kết nối vào CSDL bằng cách gọi hàm
getConnection() để nhận đối tượng của lớp Connection.
Tạo ra một đối tượng của lớp Statement để xử lý câu
lệnh.
Truyền tham số cho các lệnh SQL trong các hệ quản trị CSDL và các đối tượng xử lý câu lệnh đó.
Kết quả truy vấn là đối tượng của lớp ResultSet.
Trang 10Đ M B O G N BÓ D LI U KHI C P NH T TRONG CÁC CSDL PHÂN TÁN T I ẢM BẢO GẮN BÓ DỮ LIỆU KHI CẬP NHẬT TRONG CÁC CSDL PHÂN TÁN TẠI ẢM BẢO GẮN BÓ DỮ LIỆU KHI CẬP NHẬT TRONG CÁC CSDL PHÂN TÁN TẠI ẮN BÓ DỮ LIỆU KHI CẬP NHẬT TRONG CÁC CSDL PHÂN TÁN TẠI Ữ LIỆU PHÂN TÁN ỆM VỀ HỆ TIN HỌC PHÂN TÁN ẬP TRÌNH ĐỐI TƯỢNG PHÂN TÁN ẬP TRÌNH ĐỐI TƯỢNG PHÂN TÁN ẠI
CÁC NGÂN HÀNG
Phân tích và thiết kế CSDL phân tán
Xây dựng phương thức trên các Server
Xây dựng bộ phân phối kết nối đến các Server
Xây dựng giao diện ở phía Client
Trang 11PHÂN TÍCH VÀ THI T K CSDL PHÂN TÁNẾT KẾ CSDL PHÂN TÁN ẾT KẾ CSDL PHÂN TÁN
Bài toán xây dựng một hệ cơ sở dữ liệu phân tán được đặt ở 3 vị trí khác nhau, tương ứng với ba Server.
Giả sử ba vị trí được đặt là: Hà Nội, Đà Nẵng và Sài Gòn ta có ba
cơ sở dữ liệu tương ứng đó là: HNBank Database, DNBank
Database và SGBank Database
Trang 12PHÂN TÍCH VÀ THI T K CSDL PHÂN TÁNẾT KẾ CSDL PHÂN TÁN ẾT KẾ CSDL PHÂN TÁN
Khi phân mảnh dữ liệu ra các vị trí ta dựa vào tiêu chí phân tán là
mã số tài khoản của (AccID).
Những tài khoản nằm ở Server:
Hà Nội:có mã s t ối tượng trong Java, kết nối CSDL với ài kho n l n l t b t đ u b ng hai ký t : ản của hệ tin học phân tán, lập trình mạng và ần lượt bắt đầu bằng hai ký tự: ượng trong Java, kết nối CSDL với ắn bó dữ liệu khi cập nhật trong các CSDL phân tán tại ần lượt bắt đầu bằng hai ký tự: ằm ở xa ở các vị ự cố “HN” Ví d : HN001, ục bộ HN002,…
Đà Nẵng:có mã s t ối tượng trong Java, kết nối CSDL với ài kho n l n l t b t đ u b ng hai ký t : ản của hệ tin học phân tán, lập trình mạng và ần lượt bắt đầu bằng hai ký tự: ượng trong Java, kết nối CSDL với ắn bó dữ liệu khi cập nhật trong các CSDL phân tán tại ần lượt bắt đầu bằng hai ký tự: ằm ở xa ở các vị ự cố “DN” Ví d : DN001, ục bộ DN002,…
Sài Gòn: N i:c ộ xử lý ó mã s t ối tượng trong Java, kết nối CSDL với ài kho n l n l t b t đ u b ng hai ký t : ản của hệ tin học phân tán, lập trình mạng và ần lượt bắt đầu bằng hai ký tự: ượng trong Java, kết nối CSDL với ắn bó dữ liệu khi cập nhật trong các CSDL phân tán tại ần lượt bắt đầu bằng hai ký tự: ằm ở xa ở các vị ự cố “SG” Ví d : ục bộ SG001, SG002,…
Trang 13PHÂN TÍCH VÀ THI T K CSDL PHÂN TÁNẾT KẾ CSDL PHÂN TÁN ẾT KẾ CSDL PHÂN TÁN
• Ba CSDL tương ứng:
Trang 14XÂY D NG PHỰNG PHƯƠNG THỨC TRÊN CÁC SERVER ƯƠ SỞ DỮ LIỆU PHÂN TÁNNG TH C TRÊN CÁC SERVERỨC TỪ XA
• Ph ng th c k t n i đ n CSDL: ươ bản của hệ tin học phân tán, lập trình mạng và ứ ết nối CSDL với ối tượng trong Java, kết nối CSDL với ết nối CSDL với
public DNBankImpl()throws RemoteException{
try{
catch (Exception ex){
} }
• Ph ng th c truy v n ươ bản của hệ tin học phân tán, lập trình mạng và ứ ấ
public int SelectData(String Valid, String Valpin) throws RemoteException { …
… }
Trang 15XÂY D NG PHỰNG PHƯƠNG THỨC TRÊN CÁC SERVER ƯƠ SỞ DỮ LIỆU PHÂN TÁNNG TH C TRÊN CÁC SERVERỨC TỪ XA
• Ph ng th c c p nh t vào C s d li uươ bản của hệ tin học phân tán, lập trình mạng và ứ ập trình mạng và ập trình mạng và ơ bản của hệ tin học phân tán, lập trình mạng và ở xa ở các vị ữ liệu khi cập nhật trong các CSDL phân tán tại ệm cơ bản của hệ tin học phân tán, lập trình mạng và
public void UpdateData(String Valid, String Valpin, int ValAmount) throws RemoteException
{ …
…
}
Trang 16XÂY D NG B ĐI U PH I K T N I Đ N CÁC SERVERỰNG PHƯƠNG THỨC TRÊN CÁC SERVER ỘI DUNG TRÌNH BÀY Ề HỆ TIN HỌC PHÂN TÁN ỐI TƯỢNG PHÂN TÁN ẾT KẾ CSDL PHÂN TÁN ỐI TƯỢNG PHÂN TÁN ẾT KẾ CSDL PHÂN TÁN
Khi có yêu c u truy v n t phía Client B đi u ph i phân tích mã tài ần lượt bắt đầu bằng hai ký tự: ấ ừ xa – là cách thức giao tiếp giữa các đối tượng trong Java ộ xử lý ều bộ xử lý ối tượng trong Java, kết nối CSDL với kho n (AccID) Ki m tra xem tài kho n đang CSDL c a Server nào ản của hệ tin học phân tán, lập trình mạng và ể triệu gọi ản của hệ tin học phân tán, lập trình mạng và ở xa ở các vị ủa hệ tin học phân tán, lập trình mạng và
và th c hi n k n i đ n Server đó đ truy v n.ự cố ệm cơ bản của hệ tin học phân tán, lập trình mạng và ết nối CSDL với ối tượng trong Java, kết nối CSDL với ết nối CSDL với ể triệu gọi ấ
N E W
HN Bank Database DatabaseDN Bank DatabaseSG Bank
Mô hình hệ thống ngân hàng chạy mạng với CSDL phân tán
Trang 17XÂY D NG GIAO DI N PHÍA CLIENTỰNG PHƯƠNG THỨC TRÊN CÁC SERVER ỆM VỀ HỆ TIN HỌC PHÂN TÁN Ở DỮ LIỆU PHÂN TÁN
Giao diện cho phép người sử dụng nhập vào
Mã tài khoản: Account ID
Mã Pin: Account Pin
Số tiền thực hiện giao dịch: Money
Giao diện cho phép người sử dụng chọn lựa:
Xem số dư tài khoản: View
Cộng vào tài khoản: Addition
Trừ tài khoản: Subtraction
Trang 18XÂY D NG GIAO DI N PHÍA CLIENT ỰNG PHƯƠNG THỨC TRÊN CÁC SERVER ỆM VỀ HỆ TIN HỌC PHÂN TÁN Ở DỮ LIỆU PHÂN TÁN
Giao diện ở phía Client:
Giao diện ở phía Client: