1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn Hệ phân tán – Kỹ thuật bảo đảm tính toàn vẹn dữ liệu

18 1,1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 425 KB

Nội dung

Trước hết, phải nói đến sự tích hợp hàng loạt các hàm vào các hệ điều hành, hệ quản trị cơ sở dữ liệu, ngôn ngữ lập trình với phương thức riêng rẽ của từng hệ cho phép đảm bảo phần cơ bả

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN

TIỂU LUẬN MÔN HỌC

HỆ TIN HỌC PHÂN TÁN

GVHD : PGS TS Lê Văn Sơn HVTH : Đinh Duy Khánh LỚP : Cao học khóa 11 (2012 - 2014)

Lời nói đầu

Đà Nẵng, tháng 7/2014

Trang 2

Ngày nay, các thông tin quan trọng được lưu trữ trên mạng càng nhiều và thường xuyên được truy nhập từ các máy tính khác trong mạng Chính những điều này đã và đang mang lại những lợi ích to lớn cho việc chia sẻ tài nguyên, kết nối trong các tổ chức doanh nghiệp Tuy nhiên, do đặc điểm nhiều người sử dụng và phân tán về mặt địa lý nên việc bảo vệ tài nguyên đó tránh khỏi mất mát, xâm phạm (vô tình hay cố ý) trong môi trường mạng phức tạp hơn nhiều so với một máy tính đơn lẻ, một người sử dụng Chính vì thế công tác bảo đảm đặc tính toàn vẹn dữ liệu và công tác an toàn bảo mật cho các hệ thống phân tán thường là phức tạp và ngày càng trở nên quan trọng.

Vì vậy, việc nghiên cứu và phát triển các phương pháp đảm bảo gắn bó dữ liệu trong môi trường phân tán đến nay đã có một số thành công đáng kể Trong bài báo cáo của nhóm chúng tôi, chúng tôi xin trình bày đề tài “Hoàn thiện kỹ thuật đảm bảo đặc tính toàn vẹn dữ liệu trong hệ tin học phân tán”.

Phần 1 – Trình bày nội dung lý thuyết về “Hoàn thiện kỹ thuật đảm bảo đặc tính toàn vẹn dữ liệu trong hệ tin học phân tán”.

Trang 3

1 Đặt vấn đề.

Vấn đề gắn bó dữ liệu trong các hệ thống phân tán nói chung và các hệ thống thông tin đăng ký trên mạng nói riêng như việc đăng ký các tour du lịch, mua bán trong các giao dịch thương mại điện tử, đăng ký giữ chỗ trong giao thông vận tải, đăng ký dự thi trong các hệ thống thông tin đào tạo, đã trở thành một lĩnh vực thu hút nhiều sự quan tâm của các nhà nghiên cứu lý thuyết lẫn các nhà sản xuất phần mềm nhằm tìm ra các giải pháp hữu hiệu đảm bảo tính gắn bó thông tin trong các cơ sở dữ liệu truy cập ngẫu nhiên với số lượng truy cập lớn

Việc nghiên cứu, phát triển các phương pháp đảm bảo gắn bó dữ liệu trong môi trường phân tán đến nay đã có một số thành công đáng kể Trước hết, phải nói đến sự tích hợp hàng loạt các hàm vào các hệ điều hành, hệ quản trị cơ sở dữ liệu, ngôn ngữ lập trình với phương thức riêng rẽ của từng hệ cho phép đảm bảo phần cơ bản của việc gắn bó thông tin nói chung trong quá trình đa truy cập thông qua hệ thống viễn thông Việc triển khai phương pháp cho phép gắn bó dữ liệu trong môi trường phân tán trong điều kiện lý tưởng (không có bất kỳ sự cố nào) đã được áp dụng và mang lại những hiệu quả nhất định cho các hệ thống đăng ký Tuy nhiên, trong quá trình triển khai lập trình và vận hành các hệ thống đăng ký, vấn đề gắn bó dữ liệu trong các cơ sở dữ liệu khi hệ thống bị sự cố đang đặt ra như là vấn đề quan trọng và có ý nghĩa sống còn trong việc phát triển toàn hệ nói chung Nói tóm lại, sự cố trong các hệ thống nói chung, hệ thống đăng ký nói riêng có thể xảy ra và là nguyên nhân dẫn đến hệ thống cơ sở dữ liệu không thể đảm bảo tính gắn bó được nữa

Trong phạm vi của bài tiểu luận này, chúng tôi giới thiệu một giải pháp được phát triển dựa trên giải thuật hai pha tuyến tính và giải thuật MAONT kết hợp với mô hình xử

lý phân tán JavaRMI và các kỹ thuật chuyển tác trong SQL Server 2000 nhằm đảm bảo tính gắn bó dữ liệu phân tán trong điều kiện có sự cố phục vụ cho các hệ thống thông tin đăng ký

2 Khái niệm toàn vẹn dữ liệu

Đặc tính toàn vẹn dữ liệu trong hệ tin học phân tán thể hiện tính bền vững, độ tin cậy, tính đúng đắn, tính gắn bó của thông tin hệ thống Một CSDL được gọi là ở trạng thái gắn bó nếu nó thoả mãn một tập các qui tắc ràng buộc toàn vẹn (Integrity rules) Qui tắc ràng buộc toàn vẹn là các ràng buộc định nghĩa trạng thái gắn bó của CSDL

Chính vì vậy, việc nghiên cứu đặc tính toàn vẹn dữ liệu của hệ tin học phân tán đồng nghĩa với việc nghiên cứu đưa ra các giải pháp kỹ thuật duy trì trạng thái gắn bó của

hệ tức là nghiên cứu các kỹ thuật duy trì hệ thống luôn thoả mãn các ràng buộc toàn vẹn Hay nói cách khác, duy trì hệ thống luôn hoạt động trong điều kiện chuyển từ trạng thái gắn bó này sang trạng thái gắn bó khác

Trang 4

3 Sự gắn bó thông tin

Ta có một tập thông tin nào đó có thể truy cập bởi một tập hợp các tiến trình Số lượng đối tượng thông tin có thể truy cập và số lượng tiến trình có nhu cầu thông tin là cố định

Hệ này phát triển rời rạc theo thời gian, giữa các điểm xác định, ta có thể nhận biết được các trạng thái thực của chúng, nghĩa là các giá trị của đối tượng và ngữ cảnh thực hiện của các tiến trình Hệ như vậy hoạt động với độ ổn định tuyệt vời

Các điều kiện giả định trên so với hệ thực tế có những điểm khác nhau căn bản sau đây : STT So sánh

1 Các đối tượng và các tiến trình có thể tạo lập và hủy bỏ có tính chất độngtrong 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.

4 Tác động và giao dịch

Trong hệ phân tán, thông thường người ta hay sử dụng khái niệm giao dịch như là thực thể sử dụng

Giao dịch là phép toán hợp thành một lôgic hoàn chỉnh mà việc triển khai nó có thể dẫn đến thực hiện một tiến trình duy nhất hay nhiều tiến trình được định vị trên các trạm khác nhau

Đọ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 bảo đảm không chia cắt được của chúng

Trạng thái của hệ được xác định ở 2 mức quan sát :

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ó này 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

Trang 5

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

Trật tự hóa các tác động

Cho tập hợp các giao dịch M = {T1, T2,…, Tn}, mỗi một giao dịch được cấu tạo từ một dãy các tác động Bằng các tác động không chia sẻ này, toàn bộ việc thực hiện của tập hợp các giao dịch M bởi một tập hợp các tiến trình tương tranh là tương đương với việc thực hiện một dãy S các tác động thuộc các giao dịch này, như S = (a1, a2,…, an) chẳng hạn Trong trật tự tuân thủ trật tự nội tại của từng giao dịch, dãy này bao gồm tất cả các tác động cấu tạo nên các giao dịch M; mỗi một tác động chỉ xuất hiện một và chỉ một lần Một dãy như vậy gọi là trật tự hoá của tập hợp các giao dịch M

Ví dụ

Cho T1 = (a11, a12, a13, a14) và T2 = (a21, a22, a23, a24) Một trật tự hóa M = {T1, T2} được thể hiện theo một trong nhiều cách sau:

S1 = a11, a21, a12, a22, a23, a13, a14, a24

S2 = a21, a11, a22, a12, a23, a13, a14, a24

Trong số các trật tự hoá của một tập hợp các giao dịch, điều rất quan trọng là phải tách ra cho được những cái phục vụ trạng thái gắn bó dữ liệu và chúng được gọi là trật tự hoá gắn bó

Như vậy đặc tính quan trọng của trật tự hoá tương ứng với việc thực hiện tuần tự của tập hợp các giao dịch hay còn gọi là trật tự hoá tuần tự Nếu ta nắm được các đặc trưng của các trật tự hoá tương đương với một trật tự hoá tuần tự có nghĩa là cùng tác dụng như trật

tự hoá tuần tự, thì ta đã có được điều kiện đủ của sự gắn bó

Cho Stt là một trật tự hoá tuần tự của tập hợp các giao dịch M và S là một trật tự hoá bất

kỳ của M Hiệu ứng của S giống với hiệu ứng của Stt, nếu hai điều kiện sau đây được triển khai :

Điều kiện 1

Để cho mỗi đối tượng e, các cập nhật biểu hiện trong cùng một trật tự trong S và Stt.

Điều kiện 2

Hãy xem xét hai cập nhật kế tiếp nhau của một đối tượng e trong số các trật tự hoá, và các cập nhật tương ứng của e trong trật tự hoá khác Giữa hai cập nhật này, ta tham khảo cùng các đối tượng trong hai trật tự hoá này trong cùng trật tự hay không.

Trang 6

Các điều kiện nêu trên đây là các điều kiện đủ cho việc đánh giá tương đương Ta chỉ có thể hoán vị, không thay đổi hiệu ứng của một trật tự hoá, hoặc là các thao tác đọc đối tượng có tính chất liên tiếp hoặc là các thao tác gán các đối tượng khác nhau một cách liên tục

Trật tự hoá S được gọi là hợp thức nếu thoả mãn các điều sau:

Đối tượng được một giao dịch cài then theo kiểu chia sẻ không bị bất cứ then cài nào theo kiểu loại trừ của các giao dịch khác

Một đối tượng bị cài then theo kiểu loại trừ thì không bị bất kỳ then cài mới nào nữa

Do vậy, mọi cố gắng cài then không phù hợp với các điều kiện tương hỗ nêu trên đều phải chờ (bị làm chậm lại) cho đến khi mở then

Để cho trật tự hoá S, ta định nghĩa một quan hệ phụ thuộc giữa các giao dịch :

Cho T1 và T2 là hai giao dịch của M, e là đối tượng của hệ Ta nói rằng T2 phụ thuộc T1 qua trung gian của e, ký hiệu bằng (T1,e,T2), với các điều kiện sau đây được kiểm tra:

- Một tác động của T1 tham chiếu e và một tác động sau T2 thay đổi e

- Một tác động của T1 thay đổi e và một tác động sau T2 tham chiếu e

- Một tác động của T1 thay đổi e và một tác động sau T2 thay đổi e mà e không

được thay đổi bởi một giao dịch khác giữa hai tác động T1 và T2 Thuật ngữ “ trước”

được hiểu theo nghĩa “ cái tiếp theo nó trong trật tự hoá S ”

Để cho hai trật tự hoá có cùng một hiệu ứng thì điều kiện đủ là chúng phải cùng quan hệ phụ thuộc

Do vậy, điều kiện đủ cho sự gắn bó của một trật tự hoá có thể phát biểu như sau : Một trật

tự hoá là gắn bó, nếu nó có cùng quan hệ phụ thuộc với một trật tự tuần tự.

Điều kiện cần này cũng có thể trở thành đủ trong một trường hợp đặc biệt mà trong thực tế ta thường gặp Đó chính là trường hợp mà toàn bộ đối tượng được cập nhật bằng cách tham chiếu trước thời điểm đó bởi cùng một giao dịch

5 Tác động của sự cố đối với việc toàn vẹn dữ liệu.

Nhằm nghiên cứu và phát triển phương pháp đảm bảo gắn bó dữ liệu một cách khả thi trong điều kiện có sự cố cho các hệ thống thông tin đăng ký nói riêng, các hệ thống tin học phân tán nói chung, bản chất của vấn đề toàn vẹn dữ liệu cũng như nguyên nhân dẫn đến sự cố làm cho dữ liệu không còn toàn vẹn được chỉ ra và nhóm ghép trong quá trình phân tích, thiết kế hệ thống

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 toàn vẹn 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 :

Trang 7

1 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 [CKP1]

2 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 [CKP2]

Các ràng buộc toàn vẹn được phân làm hai loại chủ yếu :

1 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

2 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

Trong quá trình nghiên cứu bài toán, các tác giả vận dụng phương pháp tổng quát đảm bảo gắn bó dữ liệu và các ràng buộc toàn vẹn thông tin phục vụ công tác phân tích, thiết

kế hệ quản trị cơ sở dữ liệu cho hệ thống cơ sở dữ liệu đăng ký với thông tin gắn bó trong điều kiện phân tán

Để có thể khôi phục lại dữ liệu và trạng thái gắn bó thông tin của toàn hệ thống khi có

sự cố diễn ra, một trong những vấn đề quan trọng hàng đầu là cần phải xác định được loại, bản chất và vị trí diễn ra sự cố mà từ đó nhận biết một cách tự động và chuyển đến phương án giải quyết nào cho phù hợp Bản chất (mã) sự cố và thủ tục giải quyết sự cố có liên quan đến gắn bó được lưu trữ tại trung tâm hoặc phân tán trên các trạm của hệ đăng

ký phân tán Trong trường hợp các thủ tục được phân tán, thì bản thân các thủ tục đó cũng đòi hỏi phải có giải pháp đảm bảo gắn bó giống như dữ liệu bình thường

Về tổng quan, các sự cố được chia làm hai loại chính là sự cố xảy ra do các trạm trên

hệ thống phân tán và sự cố do hệ thống viễn thông gây ra Song để tiện lập trình giải pháp, người ta cụ thể hoá ra thành bốn mức với các nguyên nhân tương ứng thể hiện trong bảng 1

Bảng các loại sự cố và nguyên nhân gây ra sự cố

TT Loại sự cố Tiếng Anh Nguyên nhân

giao dịch

Transaction Failure

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ố

vị trí

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ử 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

Trang 8

2 Site Failure

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

phương tiện

Media Failure

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

đường truyền

Transmission Failure

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

Phương pháp tổng quát cho việc khắc phục bốn loại sự cố này được trình bày trong bảng 2

Bảng phương pháp tổng quát khắc phục sự cố

TT Loại sự cố Cách khắc phục

1 Sự cố giao dịch [CKP1] + [CKP2] 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í [CKP2] Thiết kế nghi thức ủy thác nguyên tử không bị

phong tỏa

3 Sự cố phươngtiện [CKP

0] Đượ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ố đườngtruyền

[CKP2] 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

6 Phát triển giải pháp kỹ thuật đảm bảo gắn bó dữ liệu.

Để dễ dàng mô tả các giải thuật đảm bảo gắn bó dữ liệu phân tán, chúng ta giả thiết

Trang 9

rằng, tại vị trí nguồn của giao dịch một tiến trình thực hiện các thao tác của nó, tiến trình này được gọi là điều phối viên (Coordinator) Điều phối viên trao đổi với các thành viên (Participant) tại những vị trí có tham gia vào việc thực hiện các thao tác của giao dịch

Cải tiến giải thuật hai pha tuyến tính ( Linear 2PC ) , giải thuật MAONT, ta thiết kế giải thuật mà trong đó các thành viên có thể trao đổi với nhau

Có một thứ tự giữa các vị trí trong hệ thống dành cho việc giao tiếp Chúng ta hãy giả

thiết rằng thứ tự giữa các vị trí có tham gia vào việc thực hiện một giao dịch là 1, 2,…,

N với điều phối viên là vị trí đầu tiên trong thứ tự này (Giải thuật được minh họa bằng

hình 1)

Theo mô hình trong hình vẽ, ta có các đối tượng sau :

1 C 1 , C 2 , , C n là các Client truy cập Web Server bằng trình duyệt Web

2 Servlets là các đối tượng xử lý yêu cầu được gửi từ các C i , i=1,n

3 TPC-Server-App1, TPC-Server-App2, , TPC-Server-AppN là các RMI Server cài

đặt thuật toán 2PC tuyến tính (Linear Two Phase Commit - TPC)

4 TPCMonitorServer là một trình giám sát cho phép hiển thị quá trình dịch chuyển

của danh sách di chuyển [6] trong quá trình xử lý của các TPC-Server-Appi, i = 1,N

5 ConnectionPool là chương trình điều khiển các liên kết cơ sở dữ liệu dùng chung

6 Database1, Database2, , DatabaseN là các cơ sở dữ liệu quan hệ phân tán trên

mạng

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 Servlet 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, Servlet chuyển danh sách

di chuyển này cho TPC-Server-App đầu tiên trong danh sách di chuyển thông qua phương thức gọi từ xa RMI

Trang 10

Mỗi TPC-Server-App cài đặt một giao diện cung cấp phương thức xử lý theo thuật toán 2PC tuyến tính 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

public interface TPCApp extends Remote

{

movableList,int index) throws RemoteException;

}

Nếu quá trình xử lý tại bất kỳ một TPC-Server-App 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 TPC-Server-App commit (hoàn thành) hoặc rollback (hủy bỏ) transaction đang quản lý Như vậy, khi TPC-Server-App đầu tiên nhận được danh sách di chuyển, TPC-Server-App bắt đầu một transaction để thực hiện các câu lệnh SQL truy vấn CSDL cục bộ thông qua kết nối CSDL được lấy từ ConnectionPool cục bộ Tiếp theo, TPC-Server-App 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 TPC-Server-App 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, TPC-Server-App commit transaction và trả về kết quả là ResultQueryList 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 Servlet nhận được kết quả là null có nghĩa là xử lý không thành công Ngược lại, Servlet sẽ tiếp tục xử lý kết quả nhận được

để trả về cho Client

Ngày đăng: 23/03/2015, 18:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w