Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
1,24 MB
Nội dung
LỜI MỞ ĐẦU Một trongcác ứng dụng thực tiễn của hệ phân tán là hệ thống đăngkýtừxa qua mạnginternet 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 đảmbảogắnbódữliệutrong mô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ànthiệnkỹthuậtđảmbảogắnbódữliệutrongWebsiteđăngkýtừxacácchuyếnbaybằngngônngữASPtrênmạngINTERNET Phần bài tập: Trình bàythuậ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ắc chắ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ầy giá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ới Thầ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! Đà Nẵng, ngày 10 tháng 04 năm 2012 Tiểu luận Hệ phân tán Lớp Cao học Khoa học máy tính khóa 16 PHẦN I: LÝ THUYẾT HOÀNTHIỆNKỸTHUẬTĐẢMBẢOGẮNBÓDỮLIỆUTRONGWEBSITEĐĂNGKÝTỪXACÁCCHUYẾNBAYBẰNGNGÔNNGỮASPTRÊNMẠNGINTERNET HVTH: Hồ Trúc Lâm 2 Tiểu luận Hệ phân tán Lớp Cao học Khoa học máy tính khóa 16 CHƯƠNG 1: SỰ GẮNBÓ THÔNG TIN 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ợ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 độ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êncá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 trongcá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 đăngkýtừxacácchuyế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ùng một giao dịch. Ngoài ra thông tin về chuyếnbay có thể được đăngký 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êncá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à đảmbả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ố. HVTH: Hồ Trúc Lâm 3 Tiểu luận Hệ phân tán Lớp Cao học Khoa học máy tính khóa 16 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á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. 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ắnbó dẫn hệ đến một trạng thái gắnbó 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 đăngkýchuyến bay, mỗi chỗ trênchuyếnbay đượ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ỗ đã được đăngký đượ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 đảmbả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ắnbó 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. 3. Triển khai giao dịch tôn trọng sự gắnbó 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ắnbó 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 HVTH: Hồ Trúc Lâm 4 Tiểu luận Hệ phân tán Lớp Cao học Khoa học máy tính khóa 16 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ắnbó của trật tự hóa. 4. Tác động của các sự cố đối với gắnbódữliệu Khi phát triển, phân tích thiết kế, xây dựng đăngký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ắnbó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. Để đảmbảo tính gắnbó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ẽ đảmbảo được tính gắnbó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ắnbódữliệutrongcá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. 5. 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. 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ều khiển cũng có thể sinh lỗi. Đó là các lỗi do thuật toán, HVTH: Hồ Trúc Lâm 5 Tiểu luận Hệ phân tán Lớp Cao học Khoa học máy tính khóa 16 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ệutrê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 trongcá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. 6. 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. HVTH: Hồ Trúc Lâm 6 Tiểu luận Hệ phân tán Lớp Cao học Khoa học máy tính khóa 16 CHƯƠNG 2 HOÀNTHIỆNKỸTHUẬTĐẢMBẢOGẮNBÓDỮLIỆUTRONGWEBSITEĐĂNGKÝTỪXACÁCCHUYẾNBAY 1. Đặt vấn đề Websiteđăngkýtừxachuyếnbay đò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. Để đảmbả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ệubao 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êncác server khác. Hệ thống với những đặc điểm như vậy đòi hỏi phải gắnbódữliệubằng giải pháp đáng tin cậy. TT Yêu cầu 1 Thông tin đăngký 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 đăngký 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 đăngký đượ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 đăngký tại một thời điểm. 2. KỹthuậtđảmbảogắnbódữliệuKỹthuậtđảmbảogắnbódữliệu được xây dựng trên mô hình MAONT được trình bàytrong 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 đảmbảogắnbódữliệutrong hệ thống đăngkýtừxa qua mạng internet. Ý 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. HVTH: Hồ Trúc Lâm 7 Tiểu luận Hệ phân tán Lớp Cao học Khoa học máy tính khóa 16 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êncá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đảmbảogắnbó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: 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. HVTH: Hồ Trúc Lâm 8 Tiểu luận Hệ phân tán Lớp Cao học Khoa học máy tính khóa 16 - Mỗi server bao gồm một cơ sở dữliệu về chuyếnbay 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 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ằngngônngữASP 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 ASP. Một web server là một chương trình phía server phục vụ HVTH: Hồ Trúc Lâm 9 Tiểu luận Hệ phân tán Lớp Cao học Khoa học máy tính khóa 16 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. Active Server Pages (ASP), chứa HTML, mã javacript hoặc vbscript, các thành phần ADO. ASP cung cấp cách nhúng các thành phần vào một tập tin để phát sinh nội dung web. Khi người dùng yêu cầu một trang ASP, đầu tiên, web server thực thi mã trong tập tin ASP và trả về nội dung kết quả cho trình duyệt web. ASP cho phép gọi các dịch vụ web(web service), web server không truy cập trực tiếp cơ sở dữliệu mà thông qua gọi thủ tục của web service. Sử dụng kỹthuật SOAP(Simple Object Access Protocol) để xây dựng các thủ tục và cho phép các web service gọi lẫn nhau trong quá trình đăngkýchuyến bay. Các bước thực hiện thuật toán gồm: 1. 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 đăngkýchuyến bay. 2. 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. 3. Chuyển danh sách di chuyển đến web service đầu tiên trong danh sách di chuyển. 4. Web service nhận được danh sách di chuyển, mở ra một giao dịch (transac- tion) 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. 5. 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). 6. 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 (Com- mitTransaction) 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 (Roll- back transaction) trả kết quả về null cho server liền trước. 7. 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. HVTH: Hồ Trúc Lâm 10