Một trong các ứng dụng thực tiễn của hệ phân tán là hệ thống đăng ký từxa qua mạng internet thu hút được sự quan tâm của các nhà nghiên cứu cũng nhưcác nhà sản xuất phần mềm.. Định nghĩa
Trang 1NGỮ ASP TRÊN MẠNG INTERNET
GVHD: PGS.TS Lê Văn Sơn Thực hiện: Đặng Văn Kiểu
Chuyên ngành: Khoa học máy tínhKhóa: K24
ĐÀ NẴNG, 04/2012
Trang 2CHƯƠNG 1 CÁC KHÁI NIỆM VỀ HỆ TIN HỌC PHÂN TÁN 2
2.6 Phương pháp tổng quát trong việc khắc phục sự cố 9CHƯƠNG 3 HOÀN THIỆN KỸ THUẬT ĐẢM BẢO GẮN BÓ DỮ
Trang 3Một trong các ứng dụng thực tiễn của hệ phân tán là hệ thống đăng ký từ
xa qua mạng internet thu hút được sự quan tâm của các nhà nghiên cứu cũng nhưcác nhà sản xuất phần mềm Yêu cầu đặt ra phải đảm bảo gắn bó dữ liệu trongmôi trường phân tán như internet và có khả năng ứng dụng thực tiễn cao
Nội dung của bản báo cáo sẽ trình bày:
Phần 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 chuyến bay bằng ngôn ngữ ASP trên mạngINTERNET
Phần bài tập: Trình bày thuật toán dưới dạng sơ đồ khối.
Trên cơ sở tham khảo giáo trình “Hệ tin học phân tán” của PGS TS LêVăn Sơn và sự giúp đỡ của các bạn, tôi đã hoàn thành được những nhiệm vụ cơbản đề ra Tuy nhiên, với thời gian và kiến thức có hạn, bản tiểu luận này chắcchắn còn nhiều khuyết điểm, tôi rất mong nhận được góp ý chân thành của Thầygiáo và các bạn Nhân dịp này cho phép tôi xin được bày tỏ lòng biết ơn đối vớiThầy giáo Lê Văn Sơn và các bạn đã giúp tôi hoàn thành nội dung bản báo cáo
Trân trọng cảm ơn!
Trang 7CHƯƠNG 1 CÁC KHÁI NIỆM VỀ HỆ TIN HỌC PHÂN TÁN 1.1 Định nghĩa hệ tin học phân tán
Hệ tin học phân tán là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặccác bộ xử lý nằm ở xa ở các vị trí khác nhau và được liên kết với nhau thông quaphương tiện viễn thông dưới sự điều khiển thống nhất của hệ điều hành
Hệ phân tán là một tập hợp bao gồm các bộ xử lý hoặc bộ vi xử lý với bộnhớ và đồng hồ độc lập.Điều này đồng nghĩa với việc các bộ xử lý không sử dụngchung bộ nhớ và đồng hồ Trong hệ tin học phân tán, các tính toán có thể đượctính trên nhiều bộ xử lý hay trên vi xử lý của hệ thống đa bộ xử lý Như vậy hệthống hệ tin học phân tán đòi hỏi hệ thống của mình phải trang bị bộ nhớ cục bộ.Các bộ xử lý trao đổi thông tin qua các hệ thống đường truyền khác nhau như làcáp chuyên dụng, bus trao đổi, đường điện thoại, cáp quang, vv
Khác với hệ thống máy đơn, mạng máy tính là tập hợp các thiết bị đầu cuốiđược kết nối với nhau thông qua hệ thống đường truyền Các thiết bị đầu cuối củamáy tính rất đa dạng, bao gồm tập hợp các máy tính, các thiết bị chuyên dụng, cácthiết bị truyền tin, các thiết bị tiếp nhận và hiển thị thông tin Hệ thống mạng máytính được điều khiển bằng hệ điều hành mạng Hệ thống tin học này có thể là hệtập trung hoặc hệ phân tán
Căn cứ vào các thành phần của hệ tin học, ta nhận thấy hệ tin học có thể baogồm bốn thực thể sau:
Các
hệ thống phần mềm
Hệ thống
dữ liệu
Tập hợp phần cứng
Hệ thống truyền thông
Trang 8Trong hệ tin học phân tán, cấu hình phần cứng của mạng có thể bao gồm các
bộ xử lý có cấu tạo hoàn toàn khác nhau về khả năng, tốc độ và được thiết kế chocác chức năng khác nhau Chúng có thể là các bộ xử lý, các trạm làm làm việc, cácmáy tính tập trung và các máy tính điện tử vạn năng lớn Chúng được gọi bằng cáctên khác nhau như trạm, node căn cứ vào ngữ cảnh mà ở đó nó được nêu ra.Ngoài hệ thống phần cứng, phần mềm, dữ liệu thì hệ phân tán còn có hệ thốngtruyền thông được mô tả như ở trên Song điều cơ bản để phân biệt hệ tin họcphân tán với mạng máy tính là và hệ điều hành mạng chính là nguyên tắc xâydựng hệ
1.2 Ưu điểm và hạn chế của hệ thống phân tán
1.2.1 Ưu điểm
Chia xẻ tài nguyên: Chia xẻ tài nguyên trong hệ thống phân tán cung cấp
một cơ chế để chia xẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở dữliệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa để thựchiện các thao tác…
Tăng tốc độ tính toán: Hệ thống phân tán cho phép phân chia việc tính toán
trên nhiều vị trí khác nhau để tính toán song song
An toàn: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác vẫn
tiếp tục làm việc mà không ảnh hưởng đến toàn bộ hệ thống
Thông tin liên lạc với nhau: Có nhiều lúc, chương trình cần chuyển đổi dữ
liệu từ vị trí này sang vị trí khác Khi các vị trí được nối kết với nhau trongmột hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ
1.2.2 Hạn chế
Giá phát triển phần mềm cao: Do các khó khăn khi cài đặt một hệ thống
phân tán, giá thành sẽ tăng lên
Trang 9 Dễ mắc lỗi hơn: Vì các trạm trong hệ phân tán làm việc song song, khó có
thể đảm bảo thuật toán được thực hiện đúng trên tất cả các trạm Do vậy mà
số lỗi sẽ tăng lên
Khối lượng các xử lý tăng: Hệ thống phân tán cần truyền nhiều thông báo,
nhiều tính toán phụ Do vậy khối lượng xử lý tăng lên so với hệ thống tậptrung
1.3 Nguyên tắc xây dựng hệ phân tán
Chia sẻ tài nguyên: Thực tế phát triển mạng máy tính đặt ra một vấn đề lớn
là cần phải dùng chung tài nguyên Một tiến trình trên một trạm nào đó cóthể cung cấp tài nguyên dùng chung ở một trạm khác
Liên lạc: Khi các hệ thống đã được mắc nối với nhau, các thực thể trong hệ
có thể trao đổi thông tin với nhau
Tin cậy: Một trạm trong hệ bị sự cố không làm cho toàn hệ ảnh hưởng, mà
ngược lại, công việc đó được phân cho các trạm khác đảm nhận Ngoài ra,trạm bị sự cố có thể tự động phục hồi lại trạng thái ban đầu trước khi có sự
cố hay trạng thái ban đầu của nó
Tăng tốc: Đây là khái niệm mới về phân tán tải Một tính toán lớn nào đó,
nếu chỉ sử dụng một trạm thì thời gian cho kết quả lâu Tính toán này đượcchia nhỏ và thực hiện song song trên các trạm Điều này cũng cần thiết đốivới các trạm quá tải
1.4 Điều kiện của hệ phân tán
Để đảm bảo hoạt động thì các hệ thống kết nối với nhau phải thỏa mãn hai điềukiện cơ bản sau đây :
Bất kỳ một hệ thống thành phần nào (hệ cục bộ) đều có thể liên lạc thôngsuốt với các hệ thống thành phần khác
Mỗi một hệ thống cục bộ được đặc trưng bằng một tên duy nhất và tên này
có thể được nhận biết bởi các hệ thống viễn thông
Trang 10CHƯƠNG 2
SỰ GẮN BÓ THÔNG TIN 2.1 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ợpcá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:
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
độ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 chuyến bay, thông tin chuyếnbay có thể quản lý ở nhiều trạm và được sử dụng trong quá trình thực hiện cùngmột giao dịch Ngoài ra thông tin về chuyến bay có thể được đăng ký ngẫu nhiênđồng thờ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ệ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ố
Trang 112.2 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áigắ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ỉ đượcxác định ở mức quan sát cho trước
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ôngthể chia cắt được nữa
Trong hệ thống đăng ký chuyến bay, mỗi chỗ trên chuyến bay được thể hiệnbằng một bản ghi Ta cần lưu ý rằng:
- Phép đặt trạng thái chỗ đã đượ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ởicác tiế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á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ự
Trang 12gắ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ừnggiao 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.
2.3 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àngbuộ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àmchậ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
2.4 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ữ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ácrà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ệ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:
Trang 13a 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 độngcủa các ứng dụng
2.5 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
2 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 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
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
Trang 142.6 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
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ốngphân tán
4 Sự cố đường truyền
Sử dụng bộ đếm thời gian và cơ chế quá hạn để theodõ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
Trang 15CHƯƠNG 3 HOÀN THIỆN KỸ THUẬT ĐẢM BẢO GẮN BÓ DỮ LIỆU TRONG
WEBSITE ĐĂNG KÝ TỪ XA CÁC CHUYẾN BAY
3.1 Đặt vấn đề
Website đăng ký từ xa chuyến bay đò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 đồngthời bởi nhiều người sử dụng, các thao tác đọc, ghi dữ liệu đan xen nhau và mangtí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ềuserver khác nhau, mỗi server lưu giữ dữ liệu bao gồm thông tin về chuyến bay,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ả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ạicá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ạydatabase server
5 Cho phép nhiều người dùng đăng ký tại một thời điểm
3.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ệutrong hệ thống đăng ký từ xa qua mạng internet
Trang 16Ý 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ểnkhoá 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ịchcon đã ủ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 đượcgiao dịch con đã uỷ thác Tuy nhiên muốn truy xuất trạng thái này, một giao dịchcha kế thừa phải nhận được các khóa thích hợp Tương tranh khóa được xác địnhgiống như trong giao dịch phẳng, ngoại trừ sẽ bỏ qua các khóa kế thừa còn đượcgiữ 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à giaodịch con đó và các giao dịch cha kế thừa của nó có đều bỏ đi Cha của giao dịchcon 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àntấ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ạigiao 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 giaodị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.