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à DDBSkhô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ạ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
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ínhKhóa: 2011 - 2013
ĐÀ NẴNG, 04/2012
Trang 2Hiệ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 !
Trang 3HOÀ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
Trang 4CHƯƠ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 Trongtrườ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áytí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ầnxem 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áytí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ềuchú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
Trạm 1
Trạm 3 Trạm 4
Trạm 5
Mạng truyền
dữ liệu
Trạm 2
Trang 5Hình 2: Môi hình của cơ sở dữ liệu phân tánTrong 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ùngchung đồ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áccá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áctiến trình Trong hệ phân tán thực tế, có những đặc điểm căn bản sau:
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
Trạm 1
Trạm 3 Trạm 4
Trạm 5
Mạng truyền
dữ liệu
Trạm 2
Trang 6độ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ácnhau 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 dulị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ộtgiao dịch Ngoài ra thông tin về đăng ký tour có thể được đăng ký ngẫu nhiên đồngthời bởi nhiều giao dịch Vấn đề đặt ra là:
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ệchủ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ácrà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
Trang 7STT 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áigắ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 giaodị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ằngmộ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ảotính không chia cắt được của chúng
Cho một tập hợp giao dịch M = {T1, T2, , Tn} lần lượt được thực hiện bởi cáctiến trình độc lập p1, p2, , pn Việc thực hiện tuần tự có nghĩa là thực hiện tất cả cácgiao 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 Dovậ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, , Tn} Một trật tự hóa của tập hợpcá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ộctrê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ậmmộ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
Trang 85 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ệ tinhọ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ữngnguyê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àngbuộ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 nhaunhư đ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ệucủ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ônggắ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ốngnhằ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ủacác ứng dụng
6 Các loại sự cố và nguyên nhân gây ra sự cố
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 ramộ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ử
Trang 9vị 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ềukhiể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 dovirus 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ạihoặ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ố
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
Trang 11CHƯƠ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ờibởi nhiều người sử dụng, các thao tác đọc, ghi dữ liệu đan xen nhau và mang tínhngẫ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ácnhau, 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ôngtin 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ảipháp đáng tin cậy
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ạytrê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ácserver đề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ạydatabase 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 đượctrì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ậtViệ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
Trang 12Ý 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ộtgiao 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 giaodị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ịchcon đó 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, khitriể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 giaodị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 đườngtruyề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:
Trang 13Mạng internet
Data Data
Web Server Server
- C1, C2, …, Cn 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 dichuyể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
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ệnhSQL 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ệnhSQL 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
Trang 14chuyển danh sách di chuyển này cho web service đầu tiên trong danh sách di chuyểnthô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áchkết quả truy vấn của chính nó và các Server đứng phía sau nó trong danh sách dichuyể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ểnlên 1 và chuyển danh sách di chuyển này đến web service kế tiếp Quá trình này đượclặ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 committransaction và trả về kết quả là khác null Dựa vào kết quả trả về này, server đứngtrướ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à webserver sử dụng Corba trên nền Java Một web server là một chương trình phía serverphụ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ùnggiữ một yêu cầu HTTP cho một web server, server chỉ đơn giản sử dụng một tiếntrình để xử lý yêu cầu
Corba viết tắt của chữ Common Object Request Broker Architecture chạy trênphía server (server side) như các server script khác (asp, jsp, cold fusion) Do đó đượcchạy trên nền JVM Engine, cùng với ứng dụng Web Server để quản lý chúng WebServer thường sử dụng là Tomcat, JBoss,…