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

WEBSITE KHI ĐĂNG ký từ XA các TUYẾN DU LỊCH BẰNG NGÔN NGỮ CORBA JAVA TRÊN MẠNG INTERNET (1)

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 (291.85 KB, 21 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA

TIỂU LUẬN
Môn: HỆ PHÂN TÁN
Đề tài:
HOÀN THIỆN KỸ THUẬT ĐẢM BẢO GẮN BÓ DỮ
LIỆU TRONG CÁC WEBSITE KHI ĐĂNG KÝ TỪ XA
CÁC TUYẾN DU LỊCH BẰNG NGÔN NGỮ CORBA
JAVA TRÊN MẠNG INTERNET
GVHD: PGS. TS. LÊ VĂN SƠN
Thực hiện: Lê Văn Linh
Chuyên ngành: Khoa học máy tính
Khóa: 2011 - 2013
ĐÀ NẴNG, 04/2012
LỜI NÓI ĐẦU
Hiện nay, công nghệ thông tin là mối quan tâm hàng đầu của Việt Nam và
toàn thế giới. Cùng với sự phát triển nhanh chóng của khoa học máy tính cũng
như nhu cầu trao đổi thông tin trong mọi hoạt động của xã hội đòi hỏi sự phát
triển đồng bộ các phương tiện truyền thông, cũng như sự gắn bó chặt chẽ của dữ
liệu. Các thành tựu của ngành khoa học trí tuệ này đã góp phần quan trọng vào
việc thay đổi bộ mặt của thế giới cả về bề mặt lẫn chiều sâu. Việc ứng dụng các
thành tựu của nền công nghệ hiện đại này trở thành vấn đề chủ chốt, quan
trọng, quyết định sự thành bại của các thành phần tham gia vào lĩnh vực hoạt
động trên thế giới từ kinh tế, văn hóa, chính trị đến quân sự.
Trên thực tế, một xu hướng kỹ thuật mới được hình thành, 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 trên cơ sở mạng máy tính. Nhằm khai thác có hiệu quả toàn hệ,
vấn đề quan trọng hàng đầu cần tính đến là các tài nguyên và chiến lược khai
thác, sử dụng chúng một cách có hiệu quả nhất.
Hiện nay các hệ thống thông tin trên mạng rất phổ biến như các website


đăng ký từ xa các tuyến dụ lịch, mua bán các thiết bị tiêu dùng, đăng ký thi và
thi trực tuyến,…hay còn gọi là hệ thống kinh doanh và dịch vụ qua mạng đang
được chú trọng. Trong phạm vi báo cáo này tôi sẽ trình bày về vấn đề: Hoàn
thiện kỹ thuật đảm bảo gắn bó dữ liệu trong các website đăng ký từ xa các
tuyến du lịch bằng ngôn ngữ Java Corba trên mạng internet.
Được sự giúp đỡ của Thầy PGS. TS Lê Văn Sơn và các bạn cùng lớp tôi
đã hoàn thành bài báo cáo này. Tuy nhiên vì thời gian có hạn nên báo cáo có
những sai xót nhất định, tôi rất mong nhận được sự góp ý của Thầy và các bạn.
Trân trọng cảm ơn !
PHẦN I: LÝ THUYẾT
HOÀN THIỆN KỸ THUẬT ĐẢM BẢO GẮN BÓ DỮ LIỆU TRONG
WEBSITE ĐĂNG KÝ TỪ XA CÁC TUYẾN DU LỊCH BẰNG NGÔN
NGỮ JAVA CORBA TRÊN MẠNG INTERNET
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 2
CHƯƠNG 1: SỰ GẮN BÓ DỮ LIỆU
1. Giới thiệu về hệ cơ sở dữ liệu phân tán
Một hệ cơ sở dữ liệu phân tán (distributed database system, viết tắt là DDBS)
không phải là một “tập các tập tin” lưu riêng lẻ tại mỗi nút của một mạng máy tính.
Để tạo ra một hệ cơ sở dữ liệu phân tán, các tập tin không những có liên đới lôgíc mà
chúng còn phải có cấu trúc và được truy xuất qua một giao diện chung.
Ngoài ra, một hệ cơ sở dữ liệu phân tán không phải là hệ thống trong đó dù có sự
hiện diện của một mạng máy tính, cơ sở dữ liệu chỉ nằm tại một nút của mạng. Trong
trường hợp này, vấn đề quản trị cơ sở dữ liệu không khác với việc quản trị cơ sở dữ
liệu trong hệ tập trung. Cơ sở dữ liệu này được quản lý tập trung tại một hệ thống máy
tính (trạm 2 trong hình dưới) và tất cả mọi yêu cầu đều chuyển đến vị trí đó. Điều cần
xem xét là độ chậm trễ khi truyền dữ liệu. Hiển nhiên là sự tồn tại của một mạng máy
tính hoặc một tập các tập tin không đủ để tạo ra một hệ cơ sở dữ liệu phân tán. Điều
chúng ta quan tâm là một môi trường trong đó dữ liệu được phân tán trên một số vị
trí.
Hình 1: Mô hình cơ sở dữ liệu trung tâm trên một mạng

GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Trạm 1
Trạm 3
Trạm 4
Trạm 5
Mạng truyền
dữ liệu
Trạm 2
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 3
Hình 2: Môi hình của cơ sở dữ liệu phân tán
Trong hệ thống cơ sở dữ liệu phân tán, cơ sở dữ liệu chứa trong vài máy tính.
Các máy tính liên lạc với nhau qua nhiều phương tiện truyền thông, như bus tốc độ
cao hay đường điện thoại. Chúng không chia sẻ bộ nhớ chính, cũng không dùng
chung đồng hồ.
Các bộ xử lý trong hệ thống phân tán có kích cỡ và chức năng khác nhau. Chúng
có thể gồm các bộ vi xử lý, trạm làm việc, máy tính mini, hay các máy tính lớn vạn
năng. Những bộ xử lý này được gọi tên là các trạm, nút, máy tính và cả những tên tùy
theo ngữ cảnh riêng.
Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm, mỗi trạm có thể khai thác
các giao thức truy nhập dữ liệu trên nhiều trạm khác. Sự khác nhau chính giữa hệ
thống cơ sở dữ liệu phân tán và tập trung là: trong hệ thống tập trung, dữ liệu lưu trữ
tại chỗ, còn phân tán thì không.
2. Các điều kiện thực tế của hệ phân tán
Ta có một tập hợp thông tin nào đó có thể được truy cập bởi một tập hợp các
tiến trình. Trong hệ phân tán thực tế, có những đặc điểm căn bản sau:
STT Đặc điểm
1 Các đối tượng và các tiến trình có thể được tạo lập và hủy bỏ có tính chất
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Trạm 1
Trạm 3

Trạm 4
Trạm 5
Mạng truyền
dữ liệu
Trạm 2
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 4
động trong suốt quá trình tồn tại của hệ.
2 Các đối tượng và các tiến trình có thể được phân tán trên các trạm khác
nhau liên hệ với nhau qua hệ thống viễn thông. Do vậy, ta không thể xác
định trạng thái thời điểm của hệ vì lý do độ trễ đường truyền giữa các trạm
và tính không tương thích giữa các điểm quan sát trong các trạm đó.
3 Hệ thống viễn thông và các tiến trình là các đối tượng có thể xảy ra sự cố
kỹ thuật.
Ta xét đến trong bài toán đăng ký từ xa các tuyến du lịch, thông tin các tour du
lịch có thể quản lý ở nhiều trạm và được sử dụng trong quá trình thực hiện cùng một
giao dịch. Ngoài ra thông tin về đăng ký tour có thể được đăng ký ngẫu nhiên đồng
thời bởi nhiều giao dịch. Vấn đề đặt ra là:
STT Cơ chế
1 Cơ chế cho phép sắp xếp một cách tổng quát các tác động của cùng một
giao dịch, ngay cả khi các tác động này diễn ra trên các trạm khác nhau.
2 Cơ chế điều khiển các tranh chấp truy cập cục bộ vào các đối tượng và
đảm bảo tôn trọng tính toàn vẹn của các đối tượng cục bộ này.
3 Cơ chế có khả năng xử lý các bế tắc và thiếu thốn vô hạn, hậu quả của việc
hủy bỏ các giao dịch.
4 Cơ chế phục hồi các giao dịch đã bị hủy bỏ hay xử lý các sự cố.
3. Tác động và giao dịch
Các đối tượng khác nhau của hệ không phải là các đối tượng độc lập nhau,
chúng liên hệ với nhau bởi tập hợp các quan hệ gọi là các ràng buộc toàn vẹn. Các
ràng buộc này thể hiện sâu sắc các đặc tính riêng biệt của hệ.
Trạng thái của hệ thỏa mãn một tập các ràng buộc toàn vẹn gọi là trạng thái gắn

bó. Để chính xác hóa đặc tính này, cần phải lưu ý là trạng thái của hệ chỉ được xác
định ở mức quan sát cho trước.
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 5
STT Mức Giải thích
1 Người sử
dụng
Tiến trình là một dãy thực hiện các giao dịch. Giao dịch đó
là chương trình duy nhất được thực hiện từ một trạng thái
gắn bó dẫn hệ đến một trạng thái gắn bó khác.
2 Hệ thống Mỗi giao dịch được cấu tạo từ một dãy các tác động được
thể hiện như sau. Nếu hai tác động A và B thuộc hai giao
dịch khác nhau được thực hiện bởi hai tiến trình thì hiệu
ứng tổng quát của chúng sẽ là hoặc hiệu ứng của dãy (A; B)
hoặc là (B; A).
Ở mức hệ thống, ta có thể nói rằng các tác động là phần tử nhỏ nhất không thể
chia cắt được nữa.
Trong hệ thống đăng ký tour du lịch, mỗi 1 khách hàng sẽ được thể hiện bằng
một bản ghi. Ta cần lưu ý rằng:
- Phép đặt trạng thái chỗ cho tour đã được đăng ký được xem là một tác động.
- Đọc và ghi một bản ghi là các tác động, nếu hệ quản lý các tập tin đảm bảo
tính không chia cắt được của chúng.
Cho một tập hợp giao dịch M = {T1, T2, , T
n
} lần lượt được thực hiện bởi các
tiến trình độc lập p
1
, p
2
, , p

n
. Việc thực hiện tuần tự có nghĩa là thực hiện tất cả các
giao dịch của M theo kiểu nối đuôi nhau và tuân thủ một trật tự nào đó. Sự gắn bó của
hệ được bảo toàn, theo định nghĩa, bằng việc thực hiện riêng biệt từng giao dịch. Do
vậy, nó cũng được bảo toàn trong chế độ thực hiện tuần tự của M.
4. Triển khai giao dịch tôn trọng sự gắn bó
Cho một tập hợp giao dịch M = {T1, T2, , T
n
}. Một trật tự hóa của tập hợp
các tác động thành phần sẽ tương ứng với việc thực hiện hoàn toàn các giao dịch.
Việc thu được một trật tự hóa gắn bó chỉ có thể thành công khi áp dụng các ràng buộc
trên trật tự thực hiện các tác động. Nguyên lý của phương pháp là ở chỗ làm chậm
một tác động nào đó cho đến thời điểm mà sự thực hiện của nó không còn có nguy cơ
phá hủy sự gắn bó của trật tự hóa.
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 6
5. Tác động của các sự cố đối với gắn bó dữ liệu
Khi phát triển, phân tích thiết kế, xây dựng đăng ký từ xa nói riêng, các hệ tin
học phân tán nói chung, cần chỉ ra được vấn đề gắn bó dữ liệu cũng như những
nguyên nhân dẫn đến sự cố làm cho dữ liệu không còn gắn bó.
Một cơ sở dữ liệu nào đó được gọi là gắn bó, nếu nó thỏa mãn một tập các ràng
buộc về toàn vẹn ngữ nghĩa. Để đảm bảo tính gắn bó dữ liệu nhiều cơ chế khác nhau
như điều khiển hoạt động đồng thời, kiểm soát tính toàn vẹn ngữ nghĩa,… được sử
dụng.
Việc kiểm soát tính toàn vẹn ngữ nghĩa tốt sẽ đảm bảo được tính gắn bó dữ liệu
của hệ thống thông tin. Hiện nay, người ta đang áp dụng hai phương pháp chủ yếu:
a. Loại bỏ các chương trình/thủ tục cập nhật có thể dẫn đến trạng thái không
gắn bó dữ liệu trong các cơ sở dữ liệu.
b. Triệu gọi các chương trình/thủ tục đặc biệt đã được cài đặt trên hệ thống
nhằm khôi phục trạng thái ban đầu trước khi cập nhật.

Các ràng buộc toàn vẹn được phân làm hai loại chủ yếu:
a. Ràng buộc cấu trúc (Structural Constraint) diễn tả những đặc tính ngữ nghĩa
cơ bản vốn có trong mô hình. Ví dụ như ràng buộc thể hiện bằng khóa duy nhất trong
mô hình quan hệ hoặc các liên kết theo kiểu 1 – n, (n > 1) giữa các đối tượng trong
mô hình mạng.
b. Ràng buộc hành vi (Behavioral Constraint) nhằm điều hòa các hoạt động của
các ứng dụng.
6. Các loại sự cố và nguyên nhân gây ra sự cố
TT Loại sự cố Nguyên nhân
1
Sự cố
giao dịch
Do một lỗi nào đó trong bản thân giao dịch gây nên. Ví
dụ như dữ liệu nhập không đúng hoặc do phát hiện ra
một khóa gài tiềm tàng hoặc hiện hữu.
Sự cố Do một lỗi phát sinh trong quá trình vận hành hệ thống.
Lỗi này có thể bắt nguồn từ phần thiết bị như bộ xử
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 7
2
vị trí
lý/bộ vi xử lý, bộ nhớ, các thiết bị ngoại vi, bị sự cố.
Khi bị sự cố, hệ thống lập tức bị ngừng hoạt động. Hệ
thống chương trình, đặc biệt là các chương trình điều
khiển cũng có thể sinh lỗi. Đó là các lỗi do thuật toán,
do lệnh viết sai, do phần lưu trữ chương trình hay do
virus. Các lỗi này thường là ở các chương trình và cơ sở
dữ liệu
3
Sự cố

phương tiện
Do sự cố của các thiết bị lưu trữ thứ cấp dùng để lưu cơ
sở dữ liệu. Khi có sự cố này thì một phần hoặc tất cả cơ
sở dữ liệu trên thiết bị đó được xem như bị hủy hoại
hoặc không thể truy cập một cách bình thường được
4
Sự cố
đường truyền
Do lỗi trong các thông điệp, các thông điệp vô trật tự,
thông điệp bị thất lạc hoặc không phân phối thông điệp
và sự cố khác liên quan đến đường truyền.
7. Phương pháp tổng quát trong việc khắc phục sự cố
TT Loại sự cố Cách khắc phục
1 Sự cố giao dịch
Hủy bỏ giao dịch, sau đó đặt lại cơ sở dữ liệu về trạng thái
của nó trước khi khởi động giao dịch này.
2 Sự cố vị trí Thiết kế nghi thức ủy thác nguyên tử không bị phong tỏa.
3
Sự cố phương
tiện
Được xem như những vấn đề cục bộ của một vị trí, vì vậy
không xem xét trong trường hợp các hệ thống phân tán.
4
Sự cố đường
truyền
Sử dụng bộ đếm thời gian và cơ chế quá hạn để theo dõi
xem đã qua bao lâu kể từ khi vị trí gửi không nhận được
thông điệp trả lời của vị trí đến.
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 8

GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 9
CHƯƠNG 2
HOÀN THIỆN KỸ THUẬT ĐẢM BẢO GẮN BÓ DỮ LIỆU TRONG
WEBSITE ĐĂNG KÝ TỪ XA CÁC TUYẾN DU LỊCH
1. Đặt vấn đề
Website đăng ký từ xa tuyến du lịch đòi hỏi độ tính chính xác, ổn định cao,
ngoài ra hệ thống phải hoạt động liên tục. Hệ thống này cho phép truy cập đồng thời
bởi nhiều người sử dụng, các thao tác đọc, ghi dữ liệu đan xen nhau và mang tính
ngẫu nhiên. Để đảm bảo tính kịp thời, hệ thống được phân tán trên nhiều server khác
nhau, mỗi server lưu giữ dữ liệu bao gồm thông tin liên quan với việc đặt tour, thông
tin hành khách. Dữ liệu lưu giữ tại mỗi server là một tập con của toàn bộ hệ thống và
không có bản sao của dữ liệu đó trên các server khác.
Hệ thống với những đặc điểm như vậy đòi hỏi phải gắn bó dữ liệu bằng giải
pháp đáng tin cậy.
TT Yêu cầu
1 Thông tin đăng ký tại các database server phải nhất quán.
2
Việc truy xuất các cơ sở dữ liệu được thực hiện bởi ứng dụng đang chạy
trên cùng server với cơ sở dữ liệu.
3
Thao tác đăng ký thành công nếu các thao tác truy vấn cơ sở dữ liệu tại các
server đều thành công và ngược lại.
4 Một yêu cầu đăng ký được xử lý phân tán tại các server đang chạy
database server.
5 Cho phép nhiều người dùng đăng ký tại một thời điểm.
2. Kỹ thuật đảm bảo gắn bó dữ liệu
Kỹ thuật đảm bảo gắn bó dữ liệu được xây dựng trên mô hình MAONT được
trình bày trong tài liệu tại tạp chí Khoa học & Công nghệ các trường Đại học Kỹ thuật
Việt Nam (Tr 27, số 46+47/2004), cho phép đảm bảo gắn bó dữ liệu trong hệ thống

đăng ký từ xa qua mạng internet.
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 10
Ý tưởng cơ bản của kỹ thuật này là cho phép một giao dịch có thể chứa một
giao dịch con khác, kết hợp sử dụng khóa chốt trong quá trình giao dịch.
Qui tắc thực hiện như sau:
a. Mỗi giao dịch con thực thi như một giao dịch và khi hoàn tất sẽ chuyển khoá
của nó cho giao dịch cha.
b. Một giao dịch cha kế thừa các khóa và các cập nhật của những giao dịch con
đã ủy thác của nó.
c. Trạng thái kế thừa chỉ xảy ra khi các giao dịch cha kế thừa là thấy được giao
dịch con đã uỷ thác. Tuy nhiên muốn truy xuất trạng thái này, một giao dịch cha kế
thừa phải nhận được các khóa thích hợp. Tương tranh khóa được xác định giống như
trong giao dịch phẳng, ngoại trừ sẽ bỏ qua các khóa kế thừa còn được giữ lại bởi một
tổ tiên của một giao dịch con đang yêu cầu.
d. Nếu một giao dịch con bị hủy bỏ thì tất cả các khóa và cập nhật mà giao dịch
con đó và các giao dịch cha kế thừa của nó có đều bỏ đi. Cha của giao dịch con bị hủy
bỏ không nhất thiết phải hủy bỏ.
Giao dịch là tập hợp của hàng loạt các sự kiện mà tất cả đều phải được hoàn tất
đến cùng hoặc không có bất cứ sự kiện nào được thực hiện. Và thông thường, khi
triển khai thiết kế trên các công cụ tạo web động, người ta có thể phân ra 2 loại giao
dịch:
- Giao dịch CSDL (database transactions) được thiết kế ngay trong giai đoạn
xây dựng hệ quản trị các CSDL và thủ tục này có chức năng điều khiển giao dịch.
- Giao dịch cơ sở kết nối (connection-based transactions) cho phép xác định từ
bên ngoài CSDL, thường là chức năng của một đối tượng nào đó, ví dụ như đối tượng
connection.
3. Áp dụng kỹ thuật đảm bảo gắn bó dữ liệu
Hệ thống xây dựng trên cơ sở nhiều server nối với nhau thông qua đường
truyền internet, trên mỗi server được cài đặt cơ sở dữ liệu của hệ thống, hệ thống có

thể được mô tả như sau:
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 11
Theo mô hình:
- C
1
, C
2
, …, C
n
là các Client truy cập Web server bằng trình duyệt web.
- Mỗi server bao gồm một cơ sở dữ liệu về tuyến du lịch và thông tin về
khách hàng.
- Mỗi server cài đặt web service cho phép server khác chuyển danh sách di
chuyển đến, thực hiện giao dịch(truy cập cơ sở dữ liệu) và chuyển danh sách
di chuyển đến server tiếp theo.
Mô tả hoạt động:
Các C
1
, C
2
, , C
n
là các Client truy cập vào Web Server bằng trình duyệt Web.
Các yêu cầu này đòi hỏi việc xử lý phải truy vấn đến các cơ sở dữ liệu phân tán. Do
đó việc xử lý thành công hay không phụ thuộc vào kết quả của tất cả các truy vấn này.
Điều đó có nghĩa là, xử lý sẽ thành công nếu tất cả các truy vấn đều thành công,
ngược lại, xử lý sẽ không thành công nếu có bất kỳ một truy vấn nào bị lỗi hoặc
không thực hiện được.
Khi nhận được một yêu cầu từ các C

i
, i=1,n, các web server sẽ dựa vào yêu cầu
này để thành lập nên một danh sách các Database Server sẽ truy vấn và các câu lệnh
SQL tương ứng được thực hiện tại mỗi Server. Việc thành lập danh sách các câu lệnh
SQL truy vấn tại mỗi Database Server được dựa theo thứ tự ưu tiên SELECT,
DELETE, UPDATE, INSERT. Sau khi thành lập danh sách di chuyển, web server
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 12
chuyển danh sách di chuyển này cho web service đầu tiên trong danh sách di chuyển
thông qua phương thức gọi từ xa.
Mỗi Web service cài đặt một giao diện cung cấp phương thức xử lý với tham số
là danh sách di chuyển, chỉ mục hiện tại của danh sách và trả về kết quả là danh sách
kết quả truy vấn của chính nó và các Server đứng phía sau nó trong danh sách di
chuyển.
Nếu quá trình xử lý tại bất kỳ một web service nào bị lỗi thì kết quả trả về là
null. Dựa vào kết quả trả về này, các web service commit hoặc rollback transaction
đang quản lý. Như vậy, khi web service đầu tiên nhận được danh sách di chuyển, web
service bắt đầu một transaction để thực hiện các câu lệnh SQL truy vấn CSDL cục bộ
tại server đó. Tiếp theo, web service tăng chỉ mục hiện tại của danh sách di chuyển
lên 1 và chuyển danh sách di chuyển này đến web service kế tiếp. Quá trình này được
lặp lại cho đến khi kết thúc danh sách di chuyển. Tại server cuối cùng trong danh sách
di chuyển, nếu việc truy vấn CSDL cục bộ thành công, web service commit
transaction và trả về kết quả là khác null. Dựa vào kết quả trả về này, server đứng
trước trong danh sách di chuyển sẽ commit hoặc rollback transaction cục bộ và trả về
kết quả cho server liền trước. Khi web server nhận được kết quả là null có nghĩa là xử
lý không thành công. Ngược lại, web server sẽ tiếp tục xử lý kết quả nhận được để trả
về cho Client.
4. Phát triển giải pháp bằng ngôn ngữ Java Corba
Một trong những công nghệ chính được sử dụng trong đề tài nghiên cứu là web
server sử dụng Corba trên nền Java. Một web server là một chương trình phía server

phục vụ các yêu cầu HTTP và trả về kết quả là một hồi đáp HTTP. Khi người dùng
giữ một yêu cầu HTTP cho một web server, server chỉ đơn giản sử dụng một tiến
trình để xử lý yêu cầu.
Corba viết tắt của chữ Common Object Request Broker Architecture chạy trên
phía server (server side) như các server script khác (asp, jsp, cold fusion). Do đó được
chạy trên nền JVM Engine, cùng với ứng dụng Web Server để quản lý chúng. Web
Server thường sử dụng là Tomcat, JBoss,…
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 13
Java Corba là kịch bản cho phép chúng ta xây dựng ứng dụng web trên mạng
internet hay intranet tương tác với mọi cơ sở dữ liệu như mySQL, PostgreSQL,
Oracle, SQL Server và Access.
Các bước thực hiện thuật toán gồm:
 Khởi động các web server trong hệ thống, cho phép NSD truy cập Web trên
nằm tại Server1 để tiến hành đăng ký tuyến du lịch.
 Web server xử lý yêu cầu của NSD, tùy theo yêu cầu mà web service thành
lập danh sách di chuyển.
 Chuyển danh sách di chuyển đến web service đầu tiên trong danh sách di
chuyển.
 Web service nhận được danh sách di chuyển, mở ra một giao dịch
(transaction) thực thi các câu lệnh SQL trên CSDL cục bộ của mình. Sau khi
kết thúc truy vấn, web service gửi danh sách di chuyển đến Web service kế
tiếp trong danh sách di chuyển.
 Nếu web service ở server cuối cùng trong danh sách di chuyển - nếu việc
thực thi các câu lệnh truy vấn trên CSDL cục bộ thành công thì chuyển sang
trạng thái uỷ thác (CommitTransaction) và trả danh sách kết quả khác null
về cho Web service liền trước nó. Ngược lại trả về null và chuyển sang
trạng thái khôi phục (RollbackTransaction).
 Web service nhận được danh sách kết quả từ server sau nó trong danh sách
di chuyển - nếu kết quả khác null thì chuyển sang trạng thái uỷ thác

(CommitTransaction) và gán kết quả truy vấn cục bộ vào danh sách kết quả
và trả về Server liền trước nó. Ngược lại, chuyển sang trạng thái khôi phục
(Rollback transaction) trả kết quả về null cho server liền trước.
 Khi web service đầu tiên nhận được danh sách kết quả - nếu danh sách kết
quả khác null thì chuyển sang trạng thái uỷ thác (CommitTransaction) và trả
danh sách kết quả cho web server. Ngược lại, chuyển sang trạng thái khôi
phục (Rollback transaction) và trả kết quả về null cho web server.
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 14
 Web server nhận được danh sách kết quả và xử lý dựa trên danh sách kết
quả.
5. Cài đặt mô hình ứng dụng
Trong phần này, chúng ta sẽ tiến hành cài đặt mô hình ứng dụng bằng ngôn ngữ
lập trình C#.
5.1 Web server
Web server được truy cập bởi NSD, trả về trình duyệt người dùng dạng HTML.
Gọi web service để thực hiện các cập nhật khi đăng ký trên nhiều server phân tán.
Các nhiệm vụ chính Web server:
STT Tên hàm Chức năng
1 private
ServiceReference.Server[]
BuildServerList(string
DiemDi, string DiemDen,
DateTime NgayGio, bool
KhuHoi)
- Xác định danh sách các server tham
gia vào truy vấn dữ liệu.
- Thành lập danh sách các câu lệnh
truy vấn tại mỗi server.
- Tạo danh sách di chuyển, mỗi mục

trong danh sách di chuyển bao gồm địa chỉ
server tham gia truy vấn và danh sách các câu
lệnh truy vấn tại server.
2 private bool
BeginRegistry(string
DiemDi, string DiemDen,
DateTime NgayGio, bool
KhuHoi)
Chuyển danh sách di chuyển cho server đầu
tiên trong danh sách thông qua lời gọi từ xa
web service.
3 private void
ShowResult(bool Result)
- Nhận kết quả trả về, kết thúc giao dịch.
- Ghi kết quả xử lý vào đối tượng request,
redirect sang trang PHP để hiển thị kết quả
trong đối tượng request.
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 15
5.2 Web service
Nhiệm vụ của các Web service chạy tại các server là truy vấn cơ sở dữ liệu cục
bộ, gửi danh sách di chuyển đến server kế tiếp trong danh sách (nếu nó chưa là server
cuối cùng trong danh sách di chuyển) và trả kết quả truy vấn về server liền trước hoặc
web server (nếu nó là server đầu tiên trong danh sách di chuyển).
STT Tên hàm Chức năng
1 public bool
Registry(ServiceReference.S
erver[] servers, int Index)
Hàm được gọi từ xa, web service liền trước
gọi web service sau thông qua hàm này.

2 private bool
ExecuteQueries(System.Coll
ections.Generic.List<string>
Queries)
Thực thi các truy vấn cơ sở dữ liệu cục bộ.
6. Sơ đồ triển khai
7. Kết luận
a. Phân tích bài toán đảm bảo gắn bó dữ liệu trên các hệ thống phân tán, làm cơ
sở cho lớp các bài toán đăng ký thông tin từ xa trên mạng Internet.
b. Tìm hiểu giải pháp đảm bảo gắn bó bằng giải pháp danh sách di chuyển.
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 16
c. Tìm hiểu Java corba ứng dụng trong hệ thống phân tán, sử dụng phương thức
gọi từ xa bằng web service.
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 17
PHẦN II: BÀI TẬP
TRÌNH BÀY THUẬT TOÁN DƯỚI DẠNG SƠ ĐỒ KHỐI
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Nhận yêu cầu
đăng ký tour
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 18
TÀI LIỆU THAM KHẢO
[1] Phạm Đình Hân, Lê Văn Sơn, Phát triển giải pháp kỹ thuật đảm bảo gắn bó dữ
liệu cho các hệ thống thông tin đào tạo trên mạng Internet/Intranet, Tạp chí Khoa
học Công nghệ, số 46-47(2004).
[2] Phạm Đình Hân, Lê Văn Sơn, Phát triển kỹ thuật MAONT bằng JSP đảm bảo gắn
bó dữ liệu trong các hệ thông tin đào tạo, Tạp chí Khoa học & Công nghệ, Đại
học Đà Nẵng, số 8.2004.
[3] Phạm Hữu Khang , Lập trình ứng dụng chuyên nghiệp SQL Server 2000, Tập I và

II, NXB Lao động - Xã hội, 2002.
[4] Lê Văn Sơn, Hệ tin học phân tán, NXB ĐH Quốc gia TP Hồ Chí Minh, 2002.
[5] Lê Văn Sơn, Đặng Hùng Vĩ, Nghiên cứu phát triển hệ thống thông tin dạy và học
trên mạng Internet/Intranet, Tạp chí Khoa học & Công nghệ, Đại học Đà Nẵng, số
4.2003.
[6] Marco Bellinaso, ASP Website Programming: Problem - Design – Solution, Wrox
Press, 2006.
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh
Gắn bó dữ liệu trong các website bằng ngôn ngữ Java Corba Trang 19
MỤC LỤC
PHẦN I: LÝ THUYẾT 1
CHƯƠNG 1: SỰ GẮN BÓ DỮ LIỆU 2
1.Giới thiệu về hệ cơ sở dữ liệu phân tán 2
2.Các điều kiện thực tế của hệ phân tán 3
3.Tác động và giao dịch 4
4.Triển khai giao dịch tôn trọng sự gắn bó 5
5.Tác động của các sự cố đối với gắn bó dữ liệu 6
6.Các loại sự cố và nguyên nhân gây ra sự cố 6
7.Phương pháp tổng quát trong việc khắc phục sự cố 7
CHƯƠNG 2 9
HOÀN THIỆN KỸ THUẬT ĐẢM BẢO GẮN BÓ DỮ LIỆU TRONG WEBSITE ĐĂNG KÝ TỪ XA CÁC TUYẾN
DU LỊCH 9
1.Đặt vấn đề 9
2.Kỹ thuật đảm bảo gắn bó dữ liệu 9
3. Áp dụng kỹ thuật đảm bảo gắn bó dữ liệu 10
4. Phát triển giải pháp bằng ngôn ngữ Java Corba 12
5. Cài đặt mô hình ứng dụng 14
6. Sơ đồ triển khai 15
7. Kết luận 15
PHẦN II: BÀI TẬP 17

TÀI LIỆU THAM KHẢO 18
GVHD: PGS.TS. Lê Văn Sơn Thực hiện: Lê Văn Linh

×