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

Tiểu luận LẬP TRÌNH MẠNG Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với n server ) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm bảo gắn bó mạnh.

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 (466.76 KB, 27 trang )


Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
Tiểu luận
Tiểu luận
LẬP TRÌNH MẠNG
LẬP TRÌNH MẠNG
Đề tài: Hãy vận dụng các thuật toán để xây dựng giải pháp
cho hệ thống ngân hàng với n server (n

2) quản lý m đủ
lớn các tài khoản của khách hàng với yêu cầu hệ phải đảm
bảo gắn bó mạnh.
GVHD : PGS. TS. Lê Văn Sơn
HVTH : Phan Thị Lệ Thuyền
Nguyễn Thị Thùy
LỚP : Khoa học máy tính
KHÓA : 11 (2009 – 2011)
LỜI MỞ ĐẦU
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 1
Đà Nẵng, tháng 03/2010
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Ngày nay hầu hết các ứng dụng tin học đều được xây dựng để thực hiện trên mạng
máy tính, các ứng dụng client-server đang ngày càng được sử dụng phổ biến. Nhưng khi
quy mô và mức độ của các ứng dụng tăng lên và yêu cầu về chất lượng, tốc độ xử lý và độ
phức tạp cũng tăng theo thì trên thực tế, một xu hướng kỹ thuật mới ra đời – xu hướng
phân tán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất
thông tin. Song để khai thác có hiệu quả toàn hệ, vấn đề quan trọng hàng đầu cần phải tính
đến là các tài nguyên nói chung, đặc biệt là tài nguyên thông tin nói riêng và chiến lược


khai thác, sử dụng chúng một cách tối ưu nhất.
Chiến lược khai thác các tài nguyên dùng chung này là chức năng cũng như đối
tượng nghiên cứu của các hệ tin học phân tán. Trong thực tế, hệ tin học phân tán với
những nguyên lý, phương pháp của nó đã và đang được nhiều người quan tâm để có thể
vận dụng trong quá trình tác nghiệp của mình.
Việc lập trình giải quyết một bài toán hay giải quyết một yêu cầu xử lý phân tán các
đối tượng vẫn là một vấn đề nóng bỏng của công nghệ ngày nay. Trong khuôn khổ môn
học Lập trình mạng nâng cao, tiểu luận trình bày về vấn đề xây dựng giải pháp để giải
quyết một bài toán cụ thể, đó là:
Hãy vận dụng các thuật toán để xây dựng giải pháp cho hệ thống ngân hàng với
n server (n

2) quản lý m đủ lớn các tài khoản của khách hàng với yêu cầu hệ phải
đảm bảo gắn bó mạnh.
Vấn đề truy cập, xử lý thông tin và đảm bảo sự gắn bó dữ liệu trên hệ phân tán đã
được nghiên cứu trong hàng loạt các công trình. Trong phạm vi tiểu luận của mình, tôi
thực hiện những vấn đề sau:
Chương I: Các khái niệm cơ bản về hệ phân tán, lập trình mạng và cơ sở
dữ liệu phân tán.
Chương 2: Kỹ thuật lập trình hướng đối tượng trong Java kết nối cơ sở dữ
liệu với JDBC.
Chương 3: Chương trình đảm bảo gắn bó dữ liệu khi cập nhật trong các cơ
sở dữ liệu phân tán tại các ngân hàng.
Chúng tôi xin chân thành cám ơn thầy giáo PGS.TS. Lê Văn Sơn đã tận tình giảng
dạy, hướng dẫn và cung cấp tài liệu để chúng tôi nắm vững được kiến thức môn học này.
Nhóm học viên thực hiện
Phan Thị Lệ thuyền
Nguyễn Thị Thùy
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 2
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn

CHƯƠNG I:
CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ PHÂN TÁN
LẬP TRÌNH MẠNG VÀ CƠ SỞ DỮ LIỆU PHÂN TÁN
1. HỆ PHÂN TÁN
1.1 Tổng quan về hệ tin học
Một cách tổng quát, hệ tin học có thể bao gồm các thành phần bản như phần cứng, hệ
điều hành, các chương trình ứng dụng và người sử dụng (NSD) … và có thể được mô tả
như hình I.1. sau:
Các thiết bị phần cứng bao gồm các thiết bị xử lý trung tâm, bộ nhớ và các thiết bị
ngoại vi đóng vai trò là một trong hai loại tài nguyên cơ sở của hệ thống tin học. Các
chương trình ứng dụng là thành phần tiếp theo sau hệ điều hành được hiểu như là các phần
mềm cơ sở phục vụ cho việc triển khai các ứng dụng cụ thể như chương trình dịch, hệ
quản trị cơ sở dữ liệu, các chương trình trợ giúp sử dụng các thiết bị chuyên dụng, các trò
chơi điện tử
Người sử dụng (NSD) ở đây được hiểu theo nghĩa rộng, dưới góc độ của hệ điều
hành, có thể là các nhà chuyên môn, các máy tính, các hệ tự động vận hành, gắn với máy
tính đang khai thác hệ thông qua lệnh điều khiển theo một thuật toán nào đó nhằm đạt
được mục tiêu xác định từ trước.
Hệ điều hành các máy tính và mạng máy tính gọi tắt là hệ điều hành được đặt sát
phần cứng, nó gắn kết chặt chẽ với phần thiết bị bởi một hệ thống các chương trình, điều
khiển và sắp xếp nhằm khai thác phần cứng phục vụ cho các chương trình ứng dụng khác
nhau của NSD khác nhau với kết quả và hiệu năng chấp nhận được.
Như vậy, hệ tin học bao gồm ba thực thể: phần cứng, phần mềm và dữ liệu, được mô
tả ở hình I-2.
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 3
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Vậy hệ thống tin học (Informatic System) là một hệ thống bao gồm hai thành phần
cơ bản phần cứng (hardware) và phần mềm (software) gắn bó hữu cơ với nhau và có khả
năng xử lý thông tin.
1.2 Hệ tin học phân tán

1.2.1 Định nghĩa
Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System) là hệ thống
xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau được
liên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển thống nhất của một
hệ điều hành.
1.2.2 Các thực thể trong hệ phân tán
Hệ phân tán gồm 4 thực thể:
1.2.3 Đặc điểm của hệ phân tán
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 4
Các
hệ thống
phần mềm
Các
hệ thống
phần mềm
Hệ thống
dữ liệu
Hệ thống
dữ liệu
Tập hợp
phần cứng
Tập hợp
phần cứng
Hệ thống
truyền
thông
Hệ thống
truyền
thông
Hình I-3: Các thực thể của hệ tin học phân tán

Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Đặc điểm cần nhấn mạnh của hệ là các hệ xử lý thông tin thành phần:
Không dùng chung hoặc chia sẻ bộ nhớ
Không sử dụng chung đồng hồ xung nhịp
Chúng liên lạc với nhau thông qua mạng truyền thông
Mỗi hệ xử lý có bộ xử lý, bộ nhớ và hệ điều hành riêng của nó.
Thành phần của hệ phân tán bao gồm các hệ thống cục bộ trong đó mỗi một hay
nhiều hệ thống phát các yêu cầu thông tin còn các hệ khác trả lời các yêu cầu có liên quan
đến phần dữ liệu của mình. Nói một cách tổng quát là trong hệ luôn luôn diễn ra việc thực
hiện các công việc do các hệ thống yêu cầu. Các hệ thống truyền thống như hệ rời rạc hay
tập trung không thể đáp ứng nhanh chóng và chính xác các yêu cầu thông tin từ xa với lưu
lượng thông tin lớn.
1.2.4 Các ưu điểm của tài nguyên dùng chung trong hệ phân tán
Hệ tin học phân tán thực hiện hàng loạt các chức năng phức tạp nhưng chức năng cơ
bản nhất là đảm bảo cung cấp cho người sử dụng khả năng truy cập có kết quả đến các tài
nguyên vốn có và rất đa dạng của hệ thống như tài nguyên dùng chung.
Việc định nghĩa các tài nguyên của hệ như tài nguyên dùng chung sẽ mang đến cho
hệ những hiệu năng tốt trong khai thác ứng dụng:
- Tăng tốc độ bình quân trong tính toán xử lý.
- Cải thiện tình trạng luôn sẵn sàng của các loại tài nguyên.
- Tăng độ an toàn cho dữ liệu.
- Đa dạng hóa các loại hình dịch vụ tin học.
- Bảo đảm tính toàn vẹn của thông tin.
Tuy nhiên nó cũng dẫn đến hàng loạt các vấn đề khó khăn trong việc thiết lập hệ liên
quan việc cấp phát tài nguyên dùng chung cho các tiến trình.
Điều quan trọng là để đảm bảo các chức năng, yêu cầu nêu ra trên, hệ tin học phân
tán cần phải có các cơ chế kỹ thuật đủ mạnh nhằm đồng bộ hóa hoạt động của các tiến
trình và sự trao đổi thông tin với nhau sao cho hệ thống tránh được các trường hợp có thể
dẫn đến bế tắc.
1.2.5 Các thao tác chuẩn của hệ phân tán

HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 5
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
- Tiếp nhận và ghi yêu cầu chỉ dẫn.
- Dịch yêu cầu để có các thông tin cần thiết. Thực hiện một số công việc của hệ
thống cục bộ như kiểm tra quyền truy cập thông tin, lập hóa đơn dịch vụ.
- Gửi kết quả cho hệ thống đã phát yêu cầu.
2. LẬP TRÌNH MẠNG
2.1 Địa chỉ IP
Để hai hay nhiều máy tính kết nối được với nhau thì chúng phải có chung giao thức
(protocol). Trên Internet, việc hai máy có thể trao đổi được với nhau đa số đều dựa vào
giao thức TCP/IP, theo giao thức này mỗi máy sẽ được đặt cho một số riêng biệt được gọi
là địa chỉ IP, các số IP này là duy nhất và không máy nào được trùng nhau, khi muốn máy
của mình có địa chỉ IP để tham gia vào hệ thống Internet toàn cầu như một máy chủ ta
phải đăng ký với tổ chức InterNIC (Internet Network Information Center) để nhận một số
IP riêng biệt. Tuy nhiên, để gần gũi với con người và có ý nghĩa hơn người ta hay dùng tên
thay cho địa chỉ IP, với mỗi hệ thống đều có sự chuyển đổi trực tiếp từ tên thành địa chỉ IP
thích hợp trước khi dữ liệu được gửi đi.
2.2 Giao thức TCP và giao thức UDP
Giao thức TCP (Transmission Control Protocol) gửi từng gói dữ liệu đi, nơi nhận
theo giao thức này phải có trách nhiệm thông báo và kiểm ra xem dữ liệu đã đến đủ hay
chưa hoặc có lỗi hay không có lỗi. Trước khi chuyển dữ liệu bao giờ cũng có sự kết nối
giữa máy gửi và máy nhận. Do phải đảm bảo dữ liệu được truyền chính xác và luôn duy trì
kết nối nên sử dụng giao thức TCP cần phải mất thêm một số tài nguyên của hệ thống.
Ngược lại giao thức UDP (User Datagram Prorocol) không đáng tin cậy lắm, không
có sự kết nối trước giữa máy gửi và máy nhận, giao thức này cho rằng máy nhận luôn ở
trạng thái sẵn sàng để tiếp nhận dữ liệu gửi đến. Nếu dữ liệu gửi đến bị lỗi trong quá trình
truyền hay không nhận được đầy đủ thì giao thức UDP không có thông tin phải hồi cho
máy gửi. Tuy nhiên, giao thức UDP không đòi hỏi nhiều tài nguyên của hệ thống
Do đặc tính của hai giao thức như vậy, nên giao thức TCP thường được sử dụng cho
các dịch vụ như truyền tập tin, các dịch vụ trực tuyến trên Internet đòi hỏi độ tin cậy cao…

Giao thức UDP thường được dùng trong các ứng dụng không đòi hỏi sự chính xác cao
như: dịch vụ báo giờ, dịch vụ báo thông tin…
2.3 Dịch vụ từ máy chủ (server) và khái niệm cổng (port)
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 6
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Khi kết nối vào máy chủ, ta có thể yêu cầu máy chủ cung cấp nhiều dịch vụ khác
nhau như: tìm kiếm thông tin, gửi nhận E-mail… Mỗi dịch vụ đều có qui ước riêng cho
các cách gửi/ nhận dữ liệu. Giao thức TCP hay UDP chỉ chịu trách nhiệm đưa dữ liệu từ
một máy tính này đến máy tính khác, còn dữ liệu đó sẽ được gửi cho dịch vụ nào thì phải
thông qua một qui định nữa là cổng (port). Mỗi chương trình dịch vụ sẽ sử dụng một cổng
khác nhau để truy xuất thông tin. Cổng là một số nguyên từ 1 đến 16383. Máy chủ sẽ qui
định cổng cho mỗi dịch vụ, thông tin giữa máy khách và máy chủ phải sử dụng cổng
tương ứng thì mới trao đổi thông tin được, hầu hết các chương trình dịch vụ nổi tiếng đều
có qui định cổng chuẩn riêng:
Dịch vụ Cổng
FTP 21
HTTP 80
Telnet 23
… …
Khi xây dựng một ứng dụng làm dịch vụ trên máy chủ ta phải chọn cho mình một
cổng có giá trị khác với những giá trị cổng mà những dịch vụ nổi tiếng đã sử dụng.
2.4 Giao tiếp theo mô hình client/server
2.4.1 Giao tiếp theo mô hình client/server
Có rất nhiều dịch vụ hỗ trợ trên Internet như E-mail, nhóm tin (newsgroup), chuyển
tập tin (file transfer), đăng nhập từ xa (remote login), truy tìm thông tin trên Web…
Những mô hình này được kiến trúc theo mô hình khách/chủ (client/server). Các chương
trình ở máy khách (client) như trình duyệt Web (web browser), chương trình gửi nhận E-
mail…; các chương trình dịch vụ trên máy chủ (server) như web server, mail server… sẽ
xử lý những yêu cầu này và gửi kết quả ngược về cho máy khách, thông thường một dịch
vụ trên máy chủ phục vụ cho rất nhiều yêu cầu của máy khách.

2.4.2 Các chương trình thường chạy trên máy client
Nhìn chung, các chương trình trên máy khách thực hiện những nhiệm vụ sau:
- Kết nối máy chủ.
- Nhận dữ liệu hay yêu cầu của người sử dụng.
- Gửi dữ liệu hoặc yêu cầu của người sử dụng đến máy chủ để lưu trữ hoặc xử lý.
- Trình bày kết quả trả về từ máy chủ cho người sử dụng.
2.4.3 Các chương trình thường chạy trên máy server
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 7
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Các chương trình được thiết kế chạy trên máy chủ thực hiện những nhiệm vụ sau:
- Lắng nghe các kết nối từ máy khách gửi đến.
- Tiếp nhận những yêu cầu từ phía máy khách.
- Xử lý những yêu cầu từ phía máy khách.
- Gửi trả kết quả về cho máy khách.
Như vậy, một chương trình ở trên máy chủ đóng vai trò như một dịch vụ (service)
phục vụ cho máy khách.
2.5 Lập trình đối tượng phân tán
Lập trình đối tượng phân tán là một trong những vấn đề nóng bỏng của công nghệ
phần mềm hiện nay, cộng đồng những người lập trình bắt đầu nghĩ rằng đối tượng có ở
mọi nơi. Những đối tượng này được hỗ trợ trao đổi với nhau theo những giao thức chuẩn
trên mạng. Java là một trong những ngôn ngữ đi tiên phong trong việc giải quyết vấn đề
lập trình phân tán. Ví dụ, có một đối tượng ở máy khách (client), ở đó người sử dụng cần
phải điền dữ liệu vào mẫu báo cáo. Đối tượng này có thể gửi một thông điệp cho đối tượng
trên máy chủ (server) trên mạng để yêu cầu cung cấp các thông tin cần thiết, đối tượng
trên máy chủ truy cập vào các cơ sở dự liệu để có được những thông tin mà máy khách
yêu cầu và gửi lại cho đối tượng trên máy khách.
2.5.1 Thiết lập môi trường triệu gọi từ xa
Để thực hiện được việc triệu gọi từ xa thì ta phải chạy chương trình ở trên cả máy
khách và máy chủ.
Những thông tin cần thiết cũng phải được cài đặt tách biệt ở máy khách và máy chủ.

Tuy nhiên không nhất thiết phải có hai máy tính riêng biệt. Nhờ có máy ảo Java, khi mở
cửa sổ DOS-Prompt (môi trường DOS dưới Window) để chạy chương trình Java, chương
trình này được xem như chạy trên một máy (ảo) độc lập. Do đó, nếu hai chương trình Java
chạy ở trong hai cửa sổ riêng thì có thể xem như là chúng thực hiện trên hai máy khác
nhau.
2.5.2 Mô hình tính toán Client/Server
Khi nói tới lập trình mạng ta thường nghĩ đến cách trao đổi giữa chương trình phục
vụ (Server) với 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
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 8
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
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 Sockets. 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.
Socket chính là lớp (trừu tượng) thực hiện sự trao đổi giữa Server và Client. Java
xem sự trao đổi giữa Server và Client dựa trên Socket gần giống như các thao tác vào/ra,
nghĩa là các chương trình có thể đọc, ghi vào Socket dễ dàng như chúng đọc, ghi lên tệp
dữ liệu. Lớp Server tạo ra sự kết nối từ máy Client tới Server thông qua các phương thức
tạo lập đối tượng.
Lớp ServerSocket dùng để tạo kết nối từ máy Server tới máy Client. Đối tượng của
lớp này được tạo ra trên Server và lắng nghe những kết nối từ máy Client theo cổng xác
định. Server phải chạy thường trực trước khi Client bắt đầu thực hiện. Server chờ sự yêu
cầu kết nối của Client. Để thiết lập được một Server, ta phải tạo ra một đối tượng, ví dụ
ServerSocket của lớp Server, gắn nó với một cổng nào đó và lắng nghe xem có Client nào
cần kết nối hay không. Các Socket được xác định tương ứng với địa chỉ của máy và cổng.
serverSock = new ServerSocket(Integer.parseInt(txtPort.getText()));
Trong đó port là số hiệu của cổng nằm giữa 0 và 1023. Cổng cho phép trao đổi tin
giữa hai chương trình.

Tất cả các lớp cơ bản cho việc giao tiếp và làm việc với mạng đều nằm trong gói
Java.net, như lớp socket API (Application Program Interface).
Socket API của Java cung cấp các công cụ để truy cập đến các giao thức mạng chuẩn
được sử dụng để giao tiếp giữa các Host trên mạng Internet. Socket API là công cụ mức
thấp nhất, chúng ta có thể sử dụng socket cho bất kỳ kiểu giao tiếp Client/Server nào và
các ứng dụng ngang hàng trên mạng nhưng chúng ta phải cài đặt các giao thức ứng dụng
mức thấp để điều khiển và thông dịch dữ liệu.
Socket là giao diện lập trình mức thấp cho các giao tiếp hướng mạng. Chúng gửi các
dòng dữ liệu giữa các ứng dụng có thể hoặc không nằm trên cùng một host. Gói java.net
hỗ trợ một giao diện hướng đối tượng, đơn giản hóa socket nên việc giao tiếp mạng trở
nên dễ dàng hơn. Java cung cấp các socket để hỗ trợ cho 3 lớp phân biệt của các giao thức
bên dưới: Socket, DatagramSocket, MulticastSocket.
Lớp Socket sử dụng giao thức hướng kết nối TCP/IP, đảm bảo dữ liệu không bị mất
trong quá trình truyền.
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 9
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Lớp ServerSocket được sử dụng để thu nhận các kết nối từ client của server.
ServerSocket chỉ được tạo một lần và nhận các kết nối đến từ các client. Phương thức
accept của ServerSocket sẽ đợi cho đến khi có kết nối đến và trả về một đối tượng Socket.
3. CƠ SỞ DỮ LIỆU 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 logic và được
phân bố trên một mạng máy tính. Từ đó ta định nghĩa: Hệ quản trị cơ sở dữ liệu phân tán
(DDMS) là một hệ thống phần mềm cho phép quản lý các cơ sở dữ liệu phân tán và làm
cho việc phân tán trở nên “vô hình” đối với người sử dụng.
Môi trường của hệ quản trị cơ sở dữ liệu phân tán được mô tả qua hình I-4.
Hình I-4: Môi trường của hệ cơ sở dữ liệu phân tán
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 10
Trạm 5
Trạm 5
Mạng truyền

dữ liệu
Trạm 5
Trạm 5
Trạm 5
Trạm 5
Trạm 5
Trạm 5
Trạm 5
Trạm 5
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
CHƯƠNG II:
KỸ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA
KẾT NỐI CƠ SỞ DỮ LIỆU VỚI JDBC
1. SƠ LƯỢC VỀ JAVA
Java là một ngôn ngữ lập trình đơn giản, hướng đối tượng, hỗ trợ lập trình phân tán,
thông dịch và biên dịch, mạnh mẽ bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả và linh
động.
Sự hỗ trợ lập trình hướng đối tượng là cốt lõi của Java. Mọi câu lệnh của Java đều tác
động đến các đối tượng mà đặc trưng của chúng là lớp (class), đối tượng là thể hiện
(instance) của lớp và phương thức (method) là một thao tác hoặc được thực hiện bởi chính
nó, hoặc thực hiện khi có yêu cầu từ môi trường (thông điệp từ đối tượng khác).
Java hỗ trợ các ứng dụng phân tán bằng các lớp mạng java.net, một chương trình
Java có thể là sự kết hợp của rất nhiều tập tin *.class nằm rải rác trên nhiều vùng vật lý
khác nhau như ổ đĩa hay các máy chủ ở những vị trí khác nhau trên Internet. Ngôn ngữ
Java cung cấp các công cụ đủ mạnh để thiết kế bất kỳ ứng dụng nào theo mô hình khách
chủ (client/server) và phân tán (distributed).
Java là một ngôn ngữ thông dịch trên cơ sở đã biên dịch trước thành bytecode nên nó
trở nên khả chuyển. Java được thiết kế cho mục đích đa nền, nên mã lệnh của chương trình
Java sau khi biên dịch là một dạng tập tin nhị phân được gọi là bytecode, có phần mở rộng
là *.class, và nó được triệu gọi thực thi trong máy ảo Java (JVM – Java Virtual Machine).

JVM là một kiến trúc của bộ xử lý nhưng thực thi theo cơ chế phần mềm thay vì phần
cứng, chính vì lý do này mà chương trình Java *.class có thể chạy như nhau trên nhiều hệ
điều hành khác nhau.
Vì dùng trình thông dịch nên Java là một ngôn ngữ rất năng động. Trong khi thực thi,
môi trường Java có thể tự mở rộng để liên kết với các lớp mới nằm rải rác trên các máy
chủ khác nhau. Đó cũng là thuận lợi lớn của Java so với các ngôn ngữ lập trình khác.
2. RMI VÀ LẬP TRÌNH PHÂN TÁN HƯỚNG ĐỐI TƯỢNG TRONG JAVA
2.1 Khái niệm chung
Java RMI (Remote Method Invocation): Là một cơ chế gọi hàm từ xa đã được thực
hiện và tích hợp trong ngôn ngữ Java, là phương pháp lập trình hướng đối tượng.
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 11
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
RMI mang ý nghĩa triệu gọi phương thức từ xa – là cách thức giao tiếp giữa các đối
tượng Java có mã lệnh cài đặt (bao gồm phương thức và thuộc tính) nằm trên các máy
khác nhau có thể triệu gọi lẫn nhau.
Mô hình dưới đây cho thấy các đối tượng cho phép triệu gọi lẫn nhau. Trên máy A
các đối tượng A1, A2 gọi phương thức của nhau được gọi là triệu gọi phương thức cục bộ,
đây là cách mà lập trình hướng đối tượng truyền thống vẫn sử dụng. Tương tự, tương tác
giữa C1, C2 ,C3 là tương tác cục bộ.
Tuy nhiên, đối tượng Java có thể gọi phương thức của đối tượng nằm trên một máy
khác dựa vào giao thức triệu gọi từ xa RMI.
Hình II-1: Mô hình triệu gọi các đối tượng từ xa
2.2 Gọi phương thức từ xa và các vấn đề phát sinh
Triệu gọi phương thức từ xa phức tạp hơn triệu gọi phương thức cục bộ. Các đối
tượng trên hai Server khác nhau hoạt động trên hai tiến trình khác nhau cho nên việc tham
chiếu biến, địa chỉ đối tượng là khác nhau.
Ví dụ: Khi truyền con trỏ cho một phương thức ở xa, trên máy đang sử dụng sẽ tồn
tại nhưng trên Server khác (nơi đối tượng thực thi phương thức) sẽ không có bất kỳ vùng
nhớ nào được cấp phát cho con trỏ.
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 12

Computer A
A2
A1
Computer C
C1
C2
Computer B
B1
C3
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Trên máy cục bộ lời gọi hàm, các tham số truyền cho hàm thường được đặt vào ngăn
xếp (stack).
Tham số truyền cho phương thức của đối tượng ở xa được đóng gói và chuyển qua
mạng để đến được phương thức thực sự.
2.3 Vai trò các lớp trung gian STUB và SKELETION
Hình vẽ dưới biểu thị: Gọi phương thức từ xa các đối tượng thông qua lớp trung
gian. Đối tượng Java trên hai máy khác nhau không gọi nhau trực tiếp mà thông qua lớp
trung gian.
Lớp trung gian này tồn tại ở hai phía: Máy khách (nơi gọi phương thức của đối tượng
ở xa) và máy chủ (nơi đối tượng thực sự được cài đặt để thực thi mã lệnh của phương
thức).
Phía máy khách lớp trung gian này được gọi lớp móc (stub).
Hình II-2: Gọi phương thức của các đối tượng thông qua lớp trung gian
Phía máy chủ lớp trung gian gọi lớp nối (skeletion).
Ví dụ: Đối tượng C1 được cài đặt chạy trên máy C. Trình Java sẽ tạo ra hai lớp trung
gian C1_Skel và C1_Stub. Lớp C1_Stub sẽ được đem về máy Computer A. Khi A1 trên
máy computer A gọi C1 nó sẽ chuyển lời gọi đến lớp C1_Stub. C1_Stub chịu trách nhiệm
đóng gói tham số, chuyển tham số qua mạng đến máy C. Trên máy C lớp nối C1_Skel sẽ
nhận tham số chuyển vào vùng không gian địa chỉ tương thích với đối tượng C1 sau đó gọi
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 13

Computer A
A2
A1
Computer C
Computer B
B1
C1
C1_stub
B1_stub
C1_skel
B1_skel
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
phương thức tương ứng. Kết quả nếu có do phương thức của đối tượng C1 trả về sẽ được
lớp C1_Skel đóng gói trả ngược về cho C1_Stub. C1_Stub chuyển giao kết quả cuối cùng
lại cho A1. Bằng cơ chế này, A1 luôn nghĩ rằng nó đang hoạt động trực tiếp với đối tượng
C1 ngay trên máy cục bộ. Hơn nữa, nhờ sự giúp đỡ của lớp trung gian C1_Stub, khi kết
nối mạng gặp sự cố lớp trung gian stub sẽ luôn biết cách thông báo lỗi đến đối tượng A1.
Thực tế làm thế nào A1 tham chiếu được đến C1, một khi không có lớp C1 nào được
cài đặt ở máy A? C1_Stub trên máy A chỉ làm lớp nền trung gian chuyển đổi tham số và
thực hiện các giao thức mạng, nó không phải là hình ảnh của đối tượng C1. Để làm được
điều này, đối tượng C1 cần cung cấp một giao tiếp interface tương ứng với các phương
thức cho phép đối tượng A1 gọi nó trên máy A.
Stub thường trực trên máy khách, không ở trên máy chủ. Nó có vai trò đóng gói các
thông tin bao gồm:
Định danh đối tượng từ xa cần sử dụng
Mô tả về phương thức cần triệu gọi
Mã hoá các tham số và truyền cho Skel.
Stub sẽ chuyển những thông tin trên cho máy chủ. Ở phía máy chủ, đối tượng
Skel nhận thực hiện những công việc sau để gọi phương thức từ xa:
Giải mã các tham số

Xác định đối tượng để thực hiện lời gọi hàm tương ứng
Thực hiện lời gọi phương thức theo yêu cầu
Tập hợp kết quả để trả lời hoặc thông báo các lỗi ngoại lệ
Gửi trả lời gói các dữ liệu kết quả cho Stub ở trên máy khách.
2.4 Cài đặt ứng dụng phân tán của RMI
Hình vẽ biểu thị: Triệu gọi đối tượng RMI giữa Server2 và Server1. Đối tượng
Calculator/Server2 sẽ được gọi bởi đối tượng CalculatorClient/Server1. Chúng ta xây
dựng lớp đối tượng Calculator với đặc tả interface như sau:
public interface Calculator {
public int addNumber(int x, int y);}
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 14
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Phương thức addNumber() được dùng để cộng 2 tham số x, y với nhau và trả về kết
quả cho đối tượng nào gọi nó.
Hình II-3 Cài đặt ứng dụng phân tán RMI
2.5 Cơ chế gọi hàm từ xa của các đối tượng RMI một cách tổng quát
1. Đối tượng cài đặt các phương thức và gọi hàm Naming.bind() để đăng ký với
rmiregistry/Server chủ
2. Đối tượng trên máy khách muốn gọi phương thức của đối tượng trên máy chủ
trước hết gọi hàm Naming.lookup() để truy tìm tham chiếu đến đối tượng ở xa theo tên.
3. Bộ đăng ký rmiregistry sẽ trả về tham chiếu đến đối tượng ở xa thông qua giao
tiếp interface mà đối tượng ở xa cung cấp.
4. Dựa vào interface đối tượng ở máy khách sẽ gọi các phương thức của đối tượng
trên máy chủ.

Hình II-4: Cơ chế gọi hàm từ xa của các đối tượng RMI
5. Khi một phương thức được gọi, lời gọi sẽ được chuyển tiếp đến lớp trung gian
_Stub. Xử lý chuyển tham số của phương thức gọi đến _Skel trên máy chủ.
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 15
Computer 1

CalculatorClient
Calculator_Stub
Computer 2
Calculator
Calculator_Skel
RMI
Computer 1








Computer 2
 

CalculatorClient
Calculator
CalculatorImpl_Stub
CalculatorImpl
rmiregistry
CalculatorImpl_Skel
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
6. Lớp trung gian _Skel trên máy chủ trực tiếp yêu cầu đối tượng thực thi phương
thức và chuyển trả kết quả về cho máy khách.
7. Đặc tả lớp giao tiếp của đối tượng (Calculator.java)
8. Dựa vào đặt tả cài đặt chi tiết đối tượng (CalculatorImpl.java).
9. Biên dịch đối tượng (CalculatorImpl.class) và tạo ra 2 đối tượng trung gian

(CalculatorImpl_Stub và CalculatorImpl_Skel).
10. Viết chương trình (CalculatorServer.class) cài đặt đối tượng trên máy chủ. Lưu ý
gọi phương thức UnicasRemoteObject.exportObject() để thông báo cho Java nhận dạng
được sự tồn tại của đối tượng ở dạng truy xuất được từ xa bởi các đối tượng khác.
Hình II-5: Đăng ký các đối tượng trên RMIRegistry
11. Sử dụng lớp giao tiếp (Calculator.class) và CalculatorImpl_Stub từ máy khách để
gọi phương thức của đối tượng trên máy chủ.
Khi chạy chương trình Java dựa vào biến môi trường CLASSPATH để truy tìm các tâp
tin .class. Chương trình minh họa bao gồm các tập tin sau:
Tên lớp Mục đích Sử dụng trên
Calculator.class
CalculatorImpl.class
CalculatorImpl_Skel.class
CalculatorImpl_Stub.class
CalculatorServer.class
CalculatorClient.class
Lớp đặc tả phương thức giao tiếp của đối
tượng.
Phần cài đặt của bản thân đối tượng.
Lớp giao tiếp trung gian do trình biên
dịch rmic.exe tạo ra.
Lớp giao tiếp trung gian do trình biên
dịch rmic tạo ra.
Chương trình dùng chạy trên máy chủ
dùng tạo ra đối tượng và đăng ký đối
tượng với rmiregistry.
Chương trình chạy trên máy khách gọi
các phương thức của đối tượng trên máy
chủ.
Máy khách và máy chủ.

Máy chủ
Máy chủ
Máy khách và máy chủ
Máy chủ
Máy khách
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 16
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
2.6 Bộ đăng ký (Registry)
Cơ chế làm việc của máy ảo Java khi đăng ký và gọi đối tượng giữa trình khách và
chủ.
Trên thực tế nếu hoạt động thực sự qua mạng thì chỉ có thể tách ra làm hai máy vật
lý. Hình dưới là cơ chế hoạt động của các máy ảo Java trên mô hình máy mạng vật lý thực
sự. Máy khách có địa chỉ IP truy xuất đến bộ đăng ký rmiregistry của máy chủ có địa chỉ
IP khác. Trên máy chủ có 2 máy ảo hoạt động. Máy ảo A chạy chương trình rmiregistry và
máy ảo B chạy phần cài đặt của đối tượng.
Hình II-6: Cơ chế hoạt động của máy ảo Java trên mô hình mạng vật lý
3. GIỚI THIỆU JDBC (Java DataBase Connectivity)
JDBC của Sun là một công cụ phổ dụng hỗ trợ việc xây dựng những ứng dụng tích
hợp, dựa trên những CSDL khác nhau được thiết lập ở nhiều nơi khác nhau trên mạng.
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.
JDBC API (Application Programming Interface) được JavaSoft phát triển và là một
phần của tất cả các cài đặt ứng dụng của JVM. JDBC API cung cấp các chức năng cơ bản
để truy nhập đến hầu hết các CSDL thông qua SQL như:
- Thực hiện các truy vấn vào một CSDL.
- Xử lý kết quả truy vấn.
- Xác định các thông tin về cấu hình hệ thống.
JDBC định nghĩa các đối tượng API và các hàm để tương tác với những CSDL.
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:
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 17

Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
1. 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.
2. Tạo ra một đối tượng của lớp Statement để xử lý câu lệnh.
3. 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 đó.
4. Kết quả truy vấn là đối tượng của lớp ResultSet.
Sau đây là một số giao diện, một số lớp trong gói java.sql và một số hàm chính của
chúng.
3.1 Lớp DriverManager
Lớp DriverManager chịu trách nhiệm nạp các bộ điều khiển JDBC và tạo ra sự kết
nối giữa các đối tượng của CSDL. Trước khi sử dụng một bộ điều khiển (Driver) thì nó
phải đăng ký với DriveManager nhờ hàm forName() của lớp Class:
try{
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
Class.foeName(“com.oracle.jdbc.OracleDriver”);
} catch (ClassNotFoundException e){
… //xử lý ngọai lệ
}
Sau đó chương trình phải kết nối với CSDL bằng cách sử dụng
DriverManager.getConnection(jdbc:driver:databaseName)
3.2 Giao diện Connection
Giao diện java.sql.Connection phục vụ cho việc kết nối các CSDL
Tạo một đối tượng con để kết nối:
Connection con = DriverManager.getConnection(“url”,”username”,”password”);
Trong đó: url là jdbc:driver:databaseName
Một số hàm:
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 18
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Public abstract void commit() throws SQLException; ủy quyền thay đổi những

kết quả đã cập nhật, nếu không thì những thay đổi trong quá trình cập nhật CSDL sẽ
không được thực thi.
Public abstract boolean getAutoCommit() throws SQLException;
Public abstract void setAutoCommit(boolean autoCommit) throws
SQLException; khôi phục các thông tin nếu giao dịch không thực hiện thành công.
3.3 Giao diện Statement
Giao diện Statement để thực hiện các câu lệnh của SQL.Trong Statement có các
hàm: execute(), executeQuery(), executeUpdate(),
executeBatch()…. nhận các tham đối là các câu lệnh của SQL để thực hiện như:
CREATE, UDATE, INSERT… và có thể xử lý theo lô.
Tạo đối tượng của Statement:
Statement stmt = con.createStatement();
kết quả truy vấn được từ CSDL chỉ cho phép đọc.
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
kết quả truy vấn được từ CSDL cho phép thay đổi dữ liệu.
Hàm addBatch(): cho phép thực hiện cập nhật các trường dữ liệu cùng một lúc.
Hàm executeBatch(): chuyển các lệnh SQL thực hiện theo lô và trả về số bản ghi đã
được cập nhật theo lô.
Trong Statement có các hàm: execute(), executeQuery(), executeUpdate(),
executeBatch()…. nhận các tham đối là các câu lệnh của SQL để thực hiện như:
CREATE, UDATE, INSERT… và có thể xử lý theo lô.
3.4 Giao diện ResultSet
Kết quả của các câu lệnh xử lý với SQL được lưu trữ và xử lý thông qua đối
tượng của ResultSet. Chẳng hạn:
ResultSet rs = stmt.executeQuery(“SELECT * FROM SANPHAM”);
đối tượng rs của ResultSet chứa những kết quả truy vấn vào CSDL SANPHAM theo
câu lệnh SELECT của SQL.
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 19
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn

Hàm getString(“fieldname”), getInt(“fieldname”), : đọc giá trị các trường dữ liệu.
Hàm boolean next(): chuyển sang hàng tiếp theo
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 20
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
CHƯƠNG III:
CHƯƠNG TRÌNH ĐẢM BẢO GẮN BÓ DỮ LIỆU KHI CẬP NHẬT
TRONG CÁC CƠ SỞ DỮ LIỆU PHÂN TÁN TẠI CÁC NGÂN HÀNG
1. ĐẶT VẤN ĐỀ
Trong thực tế hiện nay hầu hết các hệ thống ngân hàng đều được xây dựng với hệ
thống cơ sở dữ liệu tập trung. Việc truy vấn trên cơ sở dữ liệu tập trung có những thuận lợi
và khó khăn nhất định. Trong những khó khăn đó khó khăn lớn nhất phải tính đến đó
chính là việc giải quyết tốc độ truy cập vào một cơ sở dữ liệu lớn, tập trung. Có nhiều biện
pháp giải quyết đã được đặt ra và một trong những giải pháp đó chính là việc phân tán cơ
sở dữ liệu đặt trên nhiều vị trí khác nhau. Việc truy vấn trên các cơ sở dữ liệu này thông
qua mạng truyền thông. Trong bài tiểu luận này chúng em xin giả lập một hệ 3 Server với
3 cơ sở dữ liệu phân tán tương ứng để mô phỏng cho bài toán đảm bảo gắn bó dữ liệu khi
cập nhật trong cơ sở dữ liệu phân tán tại các ngân hàng.
2. XÂY DỰNG CƠ SỞ DỮ LIỆU 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 ở 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.
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, Đà Nẵng, Sài Gòn có mã số tài
khoản lần lượt bắt đầu bằng hai ký tự: “HN”, “DN”, “SG”.
Ba cơ sở dữ liệu tương ứng:
Hình III-1: HNBank Database
Hình III-2: DNBank Database
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 21
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Hình III-3: SGBank Database

3. XÂY DỰNG BỘ PHÂN PHỐI KẾT NỐI SERVER
Bài toán xây dựng một bộ điều phối kết nối đến các Server. Bộ điều phối kết nối căn
cứ vào mã số tài khoản do người sử dụng cung cấp mà thực hiện tự động kết nối đến
Server cần thiết để truy vấn. Cụ thể ở đây khi phân tích mã số tài khoản mà nhận thấy mã
số tài khoản được bắt đầu bằng xâu: “HN” thì kết nối đến Server ở Hà nội, “DN” thì kết
nối đến Server ở Đà Nẵng, “SG” thì kết nối đến Server ở Sài Gòn.
Yêu cầu dịch vụ từ người dùng ở đây được mô tả bằng việc xem tài khoản, cộng
hoặc trừ tài khoản. Khi muốn xem tài khoản người sử dụng cần cung cấp mã số tài khoản
và mã Pin, khi muốn thực hiện gửi vào hoặc rút ra từ tài khoản người sử dụng cần cung
cấp thêm số tiền. Yêu cầu sẽ được gửi đến các Server, yêu cầu Server kiểm tra tài khoản
gửi đến thực hiện giao dịch và gởi trả lại số tiền hiện tại trong tài khoản.
Hình III-4: Mô hình hệ thống ngân hàng chạy mạng với CSDL phân tán
4. XÂY DỰNG CÁC PHƯƠNG THỨC TRÊN SERVER
Trên các Server xây dựng các phương thức: Kết nối cơ sở dữ liệu, phương thức truy
vấn tài khoản và phương thức cập nhật tài khoản. Các phương thức này khi cần thực hiện
thì được triệu gọi từ Client.
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 22
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
- Phương thức kết nối:
public DNBankImpl()throws RemoteException{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:Driver={SQL
Server};Server=THUY;Database=DNBank");
stmt=con.createStatement();
}
catch (Exception ex){
System.out.println("Error Connection" + ex);
}
}

- Phương thức truy vấn: với tham số vào là số tài khoản và mã pin, trả về số dư tài
khoản:
public int SelectData(String Valid, String Valpin) throws RemoteException
{ …

}
- Phương thức cập nhật vào Cơ sở dữ liệu: với tham số vào là mã sô tài khoản và mã
pin:
public void UpdateData(String Valid, String Valpin, int ValAmount) throws
RemoteException
{ …

}
5. XÂY DỰNG GIAO DIỆN PHÍA CLIENT
Ở phía Client xây dựng một giao diện cho phép người sử dụng nhập vào số tài khoản,
số Pin và số tiền thực hiện giao dịch.
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 23
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
Xây dựng chức năng cho phép người sử dụng chọn lựa giao dịch: Xem số dư tài
khoản, gửi tiền vào tài khoản và rút tiền.
Hình III-5: Giao diện phía Client
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 24
Tiểu luận Lập trình mạng nâng cao GVHD: PGS.TS Lê Văn Sơn
KẾT LUẬN
Được sự giúp đỡ tận tình của thầy giáo cũng như các bạn trong lớp và sự nỗ lực của
bản thân trong tiểu luận này chúng em cũng đã đạt được một số kết quả nhất định:
 Trình bày được các khái niệm cơ bản của hệ thống phân tán, lập trình
mạng cũng như cơ sở dữ liệu phân tán.
 Trình bày được kỹ thuật lập trình mạng phân tán trong Java.
 Nắm bắt được kỹ thuật kết nối bằng JDBC. Thực hiện kết nối ứng dụng

chạy trong môi trường máy ảo Java và hệ quản trị cơ sở dữ liệu SQL Server
 Ứng dụng các kỹ thuật lập trình để tiến hành mô phỏng bài toán đảm bảo
gắn bó dữ liệu khi cập nhật trong các cơ sở dữ liệu phân tán tại các ngân hàng.
Tuy nhiên do thời gian và khả năng còn hạn chế nên đề tài chỉ dừng lại ở mức độ
tìm hiểu, chưa triển khai điều khiển trên các hệ thống thực.
Tôi xin chân thành cảm ơn ý kiến đóng góp của thầy giáo PGS. TS.Lê Văn Sơn và
các bạn quan tâm để đề tài được hoàn thiện hơn.
HVTH: Phan Thị Lệ Thuyền – Nguyễn Thị Thùy 25

×