tiểu luận lập trình mạng chương trình cho phép đưa một trạm đã khắc phục sự cố vào lại mạng và đồng nhất dữ liệu

24 431 0
tiểu luận lập trình mạng chương trình cho phép đưa một trạm đã khắc phục sự cố vào lại mạng và đồng nhất dữ liệu

Đ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

Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 BỘ GIÁO DỤC ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG - - -    - - - BµI TIÓU LUËN lËp tr×nh m¹ng Đề tài: CHƯƠNG TRÌNH CHO PHÉP ĐƯA MỘT TRẠM ĐÃ KHẮC PHỤC SỰ CỐ VÀO LẠI MẠNG VÀ ĐỒNG NHẤT DỮ LIỆU ( GIỐNG NHƯ CÁC MÁY KHÁC) Học viên thực hiện : Hồ Ngọc Tú Lớp : Khoa học máy tính K24 Giảng viên hướng dẫn : PGS.TS Lê Văn Sơn HVTH: Hồ Ngọc Tú Trang 1 Đà Nẵng, 05/2012 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 MỤC LỤC MỤC LỤC 2 LỜI MỞ ĐẦU 3 CHƯƠNG I BỘ TUẦN TỰ TUẦN HOÀN 4 I.1 Khái niệm bộ tuần tự tuần hoàn 4 I.1 Khái niệm bộ tuần tự tuần hoàn 4 I.2 Ấn phong 4 I.2 Ấn phong 4 I.3 Vòng tròn ảo 5 I.3 Vòng tròn ảo 5 I.4 Hai thuật toán di chuyển ấn phong 6 I.4 Hai thuật toán di chuyển ấn phong 6 I.4.1 Ấn phong bằng biến trạng thái 6 I.4.1 Ấn phong bằng biến trạng thái 6 I.4.2 Jecton tuần hoàn 7 I.4.2 Jecton tuần hoàn 7 CHƯƠNG II GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ 8 II.1 Giới thiệu về bộ tuần tự trên kênh lan truyền 8 II.1 Giới thiệu về bộ tuần tự trên kênh lan truyền 8 II.2 Thuật toán khai phép toán Ticket() 8 II.2 Thuật toán khai phép toán Ticket() 8 II.2.1 Hoạt động của hệ thống không có sự cố 8 II.2.1 Hoạt động của hệ thống không có sự cố 8 II.2.2 Xử lý trong trường hợp có sự cố 9 II.2.2 Xử lý trong trường hợp có sự cố 9 II.3 Thuật toán bầu cử trong mạng Ring 10 II.3 Thuật toán bầu cử trong mạng Ring 10 II.3.1 Giới thiệu chung 10 II.3.1 Giới thiệu chung 10 II.3.2 Phạm vi 10 II.3.2 Phạm vi 10 II.3.3 Chọn leader 10 II.3.3 Chọn leader 10 II.3.4 Đặc điểm của vòng ring 11 II.3.4 Đặc điểm của vòng ring 11 II.3.5 Kết quả chọn leader 11 II.3.5 Kết quả chọn leader 11 II.3.6 Thuật toán lựa chọn trong vòng Ring 12 II.3.6 Thuật toán lựa chọn trong vòng Ring 12 CHƯƠNG III RMI VÀ LẬP TRÌNH PHÂN TÁN ĐỐI TƯỢNG 14 III.1 RMI và lập trình phân tán đối tượng 14 III.1 RMI và lập trình phân tán đối tượng 14 III.2 Gọi phương thức từ xa và các vấn đề phát sinh 14 III.2 Gọi phương thức từ xa và các vấn đề phát sinh 14 III.3 Vai trò các lớp trung gian (Stub và Skel) 15 HVTH: Hồ Ngọc Tú Trang 2 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 III.3 Vai trò các lớp trung gian (Stub và Skel) 15 III.4 Cài đặt ứng dụng phân tán của RMI 16 III.4 Cài đặt ứng dụng phân tán của RMI 16 III.5 Tìm hiểu cơ chế RMI Java 16 III.5 Tìm hiểu cơ chế RMI Java 16 III.6 Phân tích bài toán và Demo: 17 III.6 Phân tích bài toán và Demo: 17 KẾT LUẬN 22 TÀI LIỆU THAM KHẢO 23 24 LỜI MỞ ĐẦU Trong những năm gần đây, hệ tin học phân tán đã đạt được những thành tựu nổi bật và trở nên phổ biến trong ngành công nghệ thông tin nói riêng và khoa học nói chung. Cùng với hệ tin học phân tán, lập trình cho các bài toán phân tán cũng hình thành và phát triển trên phạm vi rộng và đảm bảo tính đúng đắn, dễ dàng sử dụng, độ ổn định cao. Vì vậy vấn đề đảm bảo gắn bó dữ liệu trong môi trường phân tán, xác định trạng thái và các phương án khắc phục hệ thống khi có sự cố là đặc biệt cần thiết. Trong phạm vi tiểu luận này sẽ trình bày phương pháp xây dựng bộ tuần tự tuần hoàn dựa trên vòng tròn ảo khắc phục hoạt động của hệ thống trong điều kiện xảy ra sự cố. Gồm các nội dung chính sau: - Nghiên cứu nội dung của bộ tuần tự tuần hoàn. - Các phương án có sự cố. - Lập trình bộ tuần tự tuần hoàn. Tiểu luận được thực hiện dưới sự giảng dạy và hướng dẫn của PGS.TS Lê Văn Sơn. Mặc dù đã cố gắng tìm hiểu xong vẫn không tránh khỏi thiếu sót, 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! HVTH: Hồ Ngọc Tú Trang 3 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 CHƯƠNG I BỘ TUẦN TỰ TUẦN HOÀN I.1 Khái niệm bộ tuần tự tuần hoàn Bộ tuần tự được giới thiệu nhằm mục đích đánh số thứ tự, sắp xếp các sự kiện của hệ và tránh được một số nhược điểm mà một số phương khác đã mắc phải. Bộ tuần tự là đối tượng đồng bộ hóa cung cấp cho mỗi yêu cầu một số có giá trị nguyên dương (hay còn gọi là một tíc kê) nhằm xác lập trật tự. Hai yêu cầu kế tiếp nhau được thể hiện bởi hai số nguyên liên tiếp, trong đó giá trị 0 được cung cấp cho yêu cầu đầu tiên. Giả sử ta có bộ tuần tự S, lúc này một tiến trình muốn nhận giá trị từ bộ tuần tự S thì nó phải gọi thủ tục hay hàm có tên là TICKET(S). Chú ý mỗi một giá trị chỉ phục vụ cho một và chỉ một sự kiện mà thôi. Giả sử tất cả các sự kiện đều được đánh số bởi bộ tuần tự duy nhất S. Khi một tiến trình cung cấp cho các sự kiện i một số thông qua TICKET(S). Nếu không có sự cố xảy ra, ta có thể khẳng định như sau: 1. Các sự kiện t bao hàm các giá trị nhỏ hơn t đã được diễn ra. 2. Số thứ tự của sự kiện kề sau sự kiện t phải là t+1. Việc triển khai một bộ tuần tự cần phải mang hai đặc tính sau đây: - Đặc tính P1: Nếu a và b là hai sự kiện thực hiện trên cùng hàm TICKET(S), thì ta có a→b hay b→a. Đặc tính này thể hiện việc loại trừ tương hỗ trên các phép toán TICKET(S). - Đặc tính P2: Nếu a thực hiện phép t=TICKET(S) thì giá trị gán cho t là số lượng các phép TICKET(S) đã được thực hiện trước a. Đặc tính P2 thể hiện tính liên tục trong khi đánh số có nghĩa là không để lại khoảng trống khi đánh số. Vậy: Bộ tuần tự là đối tượng đồng bộ cung cấp cho mỗi yêu cầu một số (hay còn gọi là một tíc kê) nhằm xác lập trật tự tuần hoàn. Một tiến trình muốn nhận giá trị tự bộ tuần hoàn S thì nó phải gọi thủ tục (hoặc hàm) có tên là TICKET(S). Mỗi một giá trị chỉ phục vụ cho một và chỉ một sự kiện mà thôi. I.2 Ấn phong Việc vận dụng tương đối tổng quát bộ tuần tự S trong hệ phân tán là sự chuyển động giữa các trạm một đối tượng duy nhất gọi là ấn phong chứa giá trị hiện hành của bộ tuần tự. Khi một trạm có ấn phong nó có thể thực hiện hàm TICKET(S). HVTH: Hồ Ngọc Tú Trang 4 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 Chúng ta sẽ nghiên cứu các phương pháp cho phép di chuyển ấn phong, giải thuật triển khai phép toán TICKET và các vấn đề sử dụng đường lan truyền và việc sao chép bộ tuần tự trên. I.3 Vòng tròn ảo Để triển khai một ấn phong có kết quả, đầu tiên ta cần phải xác định hành trình của nó trong mạng máy tính. Ta có thể xem các trạm được lắp đặt trên một vòng tròn theo một chiều xác định. Mỗi trạm chỉ liên hệ được với hai trạm gần nhất (hàng xóm bên trái và hàng xóm bên phải). Xét một mạng gồm tập hợp N trạm được nối với nhau và một trạm bất kỳ trong mạng có thể liên lạc với các trạm khác trong mạng một cách dễ dàng. Mỗi trạm trong mạng được phân phối một lần một số duy nhất từ 0 đến N-1. Một trạm i bất kỳ trong mạng sẽ có trạm hàng xóm bên phải (hay trạm kế tiếp sau) mà số của trạm đó là suc[i] và trạm hàng xóm bên trái (hay trạm kề liền trước) mà số của nó là pred[i]. Lúc này suc[i]=i+1 modulo N và pred[i]=i-1 modulo N. Sự mô tả này kiến ta hình dung một vòng tròn ảo. Hình vẽ II.1 sau đây mô phỏng vòng tròn ảo giữa các trạm. Hình I.1. Mô phỏng vòng tròn ảo Một số nguyên tắc được đặt ra: - Ấn phong được cụ thể hóa trên một vài cấu hình của các biến trạng thái và quay trên vòng tròn ảo luôn luôn theo một chiều xác định. - Khi có sự cố xảy ra ở một trạm nào đó (giả sử trạm i) thì cần xây dựng lại (cấu hình lại) vòng tròn để vòng tròn có thể hoạt động tốt. Tức là phải cập nhật lại các giá trị của suc[i] và pred[i] của hàng xóm bên phải và bên trái của trạm bị sự cố (với điều kiện trạm bị sự cố không phá hủy hoàn toàn liên kết lô gích) HVTH: Hồ Ngọc Tú Trang 5 4 2 1 0 7 3 6 5 4 2 1 07 3 6 5 Trạm đang giữ ấn phong (thẻ bài) Hàng xóm trái Hàng xóm phải Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 - Khi một trạm bị sự cố đã được khắc phục và hoạt động trở lại thì nó có thể tham gia lại vào mạng thông qua phép chèn. I.4 Hai thuật toán di chuyển ấn phong I.4.1 Ấn phong bằng biến trạng thái Một tiến trình Pi được giao nhiệm vụ di chuyển ấn phong cần tuân thủ các nguyên tắc sau đây: 1. Xét khi các trạm trong mạng không xảy ra sự cố Một số nguyên K (K>1) được chọn trong tập hợp của hệ. Trên trạm i với i∈{0 N-1}, mỗi tiến trình Pi được giao nhiệm vụ di chuyển ấn phong phải tuân thủ các quy tắc sau: - Mỗi tiến trình Pi đều có biến trạng thái S[i]∈{0 K-1}, - Mỗi biến S[i] đều được cấp nhật bởi tiến trình Pi và có thể đọc bởi trạm kế tiếp sau (hàng xóm phải) của Pi. - Thuật toán di chuyển trạng thái ấn phong được thể hiện như sau: a. Tiến trình Pi có ấn phong chỉ khi: S[i]≠S[i-1], cho i≠0 S[0]=S[N-1], cho i=0 b. Khi tiến trình Pi có ấn phong, thì nó phải bỏ ấn phong sau một khoảng thời gian xác định và thay đổi trạng thái của nó. S[i]:=S[i-1], nếu i≠0 S[i]:=S[i]+1 mod N, nếu i=0 Đây là trường hợp duy nhất mà tiến trình có thể cập nhật các giá trị của mình. Quyền bình đẳng giữa các trạm được đảm bảo khi tất cả các tiến trình Pi đều sử dụng thuật toán này. Mỗi tiến trình đều được nhận ấn phong khi đến phiên mình và vì ấn phong trong mạng là duy nhất nên nếu một trạm sau khi nhận được ấn phong nhưng lại không vào đoạn găng thì phải lập tức giải phóng nó. 2. Xét khi có xảy ra sự cố ở một trạm nào đó trong mạng. Cách khắc phục khi có một sự cố xảy ra trong mạng sẽ được trình bày ở phần sau, phần này ta sẽ nghiên cứu cách đưa một trạm bị sự cố vào lại trong mạng. Để đưa một trạm bị sự cố đã được khắc phục xong vào mạng, lúc này ta phải định lại cấu hình của vòng tròn ảo. Sau đó, tiến trình cần phải khởi động lại HVTH: Hồ Ngọc Tú Trang 6 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 S[i], miễn là trạm j=suc[i] không được phép đọc biến S[j] của mình trong thời gian vào đoạn găng. Có nghĩa là: Nếu j<i thì S[i]:=S[j] -1 mod K Ngược lại S[i]:=S[j] I.4.2 Jecton tuần hoàn Ý tưởng: Thuật toán thứ hai [Le Lann], ấn phong được cụ thể hóa bằng một thông điệp đặc biệt gọi là Jeton (thẻ bài) tuần hoàn trên vòng tròn. Như thế, việc sự cố trên trạm có thể dẫn đến mất Jeton. Các biến trạng thái được duy trì trên mỗi trạm cho phép tái sinh Jeton trong trường hợp bị mất. Thuật toán được triển khai dựa trên ý tưởng này là: 1. Jeton mang giá trị là ν. Mỗi trạm j có một biến trạng thái S[j]. Trước khi phát lại một Jeton vào mạng, các tác động như sau được thực hiện: 2. Mỗi một lần di chuyển jeton trên trạm j, một đồng hồ bảo vệ được trang bị. Nếu nó được phát động trước khi Jeton đến thì j tham chiếu đến biến trạng thái S[j] của trạm kề liền trước i=pred(i) trên vòng tròn. Nếu một trong hai điều kiện sau đây được kiểm tra: Thì Jeton được coi như là bị mất. Trong trường hợp này, trạm j cần phải tái sinh lại nó và cho giá trị chính xác S[j] và tái trang bị đồng hồ bảo vệ. NHẬN XÉT: Hai thuật toán đã trình bày đều dựa vào sự tuần hoàn của ấn phong có thể được sử dụng nhằm triển khai một bộ tuần tự. Trong thuật toán thứ hai, ví dụ áp dụng cho Jeton nhận giá trị nguyên mà duy nhất chỉ có trạm có jecton mới có thể tăng và tham chiếu. Các giá trị xuất phát từ tham chiếu đó được xem như là kết quả của các phép toán ticket được thực hiện trên trạm. Ưu điểm của phương pháp đánh số lỗ hổng này là tránh được hội thoại giữa các trạm để biết số sự kiện tiếp theo sau một sự kiện đã cho. Nhưng thực tế, việc hội thoại này lại diễn ra để có được số hiện hành. Sự khác nhau của phương pháp này và phương pháp đóng dấu là phương pháp này chịu được các sự cố. Thực tế trạm bị sự cố không thể nào phục vụ số được, bộ cung cấp cần phải tìm lại số lượng và giá trị của các số đó. Để thực hiện được điều này, các trạm cần phải hội thoại với nhau. HVTH: Hồ Ngọc Tú Trang 7 S[j]:=ν Cho j≠0 ν:=ν+1 mod k; S[j]:=ν Cho j=0 j>i và S[j] ≠ S[i] hay j<I và S[j]=S[i] Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 CHƯƠNG II GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ II.1 Giới thiệu về bộ tuần tự trên kênh lan truyền Xét trường hợp liên lạc giữa các trạm được thực hiện bởi một kênh lan truyền duy nhất. Các trạm được nối với nhau bởi thiết bị truyền thông (TBTT). Việc cạnh tranh truy cập đường truyền, việc xử lý các xung đột và việc nhận các thông điệp được thực hiện thông qua TBTT. Và theo thiết kế, một lúc chỉ có một thông điệp được truyền. Ta giả sử rằng mỗi TBTT truyền các thông điệp vào đường truyền theo trình tự mà trạm liên lạc với nó xác định và truyền lại trạm này các thông điệp từ đường truyền, kể cả các thông điệp của chính nó. Ngoài ra, ta còn giả định là đường truyền không hề làm mất mát thông điệp và các TBTT đều sắp xếp các thông điệp theo một trật tự giống nhau. Để thực hiện một bộ tuần tự phân tán S, trạm i nào đó cần phải duy trì công tơ cục bộ và thực hiện cùng một thuật toán II.2 Thuật toán khai phép toán Ticket() II.2.1 Hoạt động của hệ thống không có sự cố Khi có một tiến trình trên một trạm muốn gọi phép toán Ticket(S) thì phải có một yêu cầu đặt vào trong hàng đợi vào của thiết bị truyền thông (TBTT). Tiến trình yêu cầu đó cần phải đợi cho đến khi yêu cầu của nó xuất hiện trong HVTH: Hồ Ngọc Tú Trang 8 TBTT K2 J3 K1 J2 I1 J1 Trạm I I1 I2 TBTT J1 J2 J3 Trạm J K2 J3 K1 J2 I1 J1 TBTT K1 K2 K3 Trạm K K2 J3 K2 J2 I1 J1 Trật tự cục bộ (hàng đợi vào) Trật tự toàn cục (hàng đợi ra) Hình II.1. Triển khai bộ tuần tự trên kênh truyền Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 hàng đợi của TBTT: tại thời điểm đó, yêu cầu này đã được lan truyền và nó được sắp xếp cùng với các yêu cầu khác. Trạm i xử lý tất cả các yêu cầu Ticket(S) đang có trong hàng đợi của TBTT của nó. Mỗi khi có một yêu cầu đến từ một trong các trạm khác, thì trạm i sẵn sàng tăng nội dung công tơ cục bộ của mình lên. Khi có một yêu cầu nào đó đến từ một trong các tiến trình của chính trạm i thì tiến trình này nhận giá trị hiện hành của công tơ cục bộ và công tơ này tăng lên một số gia. II.2.2 Xử lý trong trường hợp có sự cố Sự cố hay gián đoạn vật lý tại một trạm nào đó được phát hiện sẽ ngay lập tức thông báo đến tất cả các trạm có ý định liên lạc với nó (trạm bị sự cố sẽ không lien lạc được với mạng). Chính vì vậy mà sự cố xảy ra với trạm chưa vào được trong đoạn găng không làm rối loạn hoạt động của giải thuật với điều kiện là nó gây ra việc truyền thông điệp vang_mat (vắng) cho việc chuyển tải ở tầng giao vận. Do có trang bị như thế, việc vào đoạn găng trở nên không được nhanh chóng và dễ dàng cho các trạm khác. Nếu trạm có sự cố đã gởi yêu cầu, thì nó kết thúc với lý do trở thành trước đối với tất cả các trạm khác. Khi một trạm lại được đưa vào trong mạng sau khi đã khắc phục sự cố, nó cần phải kiến tạo lại trạng thái hiện hành của các yêu cầu. Để đảm bảo điều đó, nó phát đi thông điệp vao_lai (xin vào lại) và để trả lời, các trạm gởi hoặc thời gian của yêu cầu cuối cùng của nó REQ không được thỏa mãn (nếu có tồn tại một REQ) hoặc một thông điệp REL. Mạng cần phải bổ khuyết cho các trạm bị sự cố bằng cách gởi thông điệp vang_mat. Khi nó đã nhận tất cả các trả lời cho thông điệp vao_lai, trạm vừa đưa vào đó có thể bắt đầu lại bằng các yêu cầu Để có thể tự tham gia lại công việc trong mạng sau sự cố, trạm i phải gởi yêu cầu vào lại cho một trạm nào đó trong số các trạm còn lại, ví dụ như j chẳng hạn và đặt mình vào trạng thái lắng nghe đường truyền trong hàng đợi của TBTT của mình. Trạm j sẽ gởi cho nó một thông điệp đồng bộ để cập nhật. Khi thông điệp này xuất hiện trong hàng đợi của TBTT, thì: 1. Trạm j là trạm cần phải gởi thông điệp cho i hiểu rằng nó phải gởi giá trị hiện hành của công tơ của nó. 2. Trạm i hiểu rằng nó có thể vào lại được trong mạng. Để cho việc đó, nó bắt đầu bằng cách lờ đi tất cả các thông điệp đến trước thông điệp đồng bộ. Thông điệp đồng bộ đến sau cùng. Nó lưu trữ mà không xử lý tất cả các thông điệp theo sau nó và điều đó được duy trì cho đến khi xuất hiện giá trị của hiện hành của công tơ được gởi bởi j. Sau khi thông điệp đồng bộ đến, trạm xử lý tất cả các thông điệp theo sau thông điệp đồng bộ. Các trạm khác không được phép can thiệp. Do vậy, chúng lờ đi yêu cầu vào lại, thông điệp đồng bộ và giá trị HVTH: Hồ Ngọc Tú Trang 9 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 truyền. Phương pháp cập nhật này cũng có thể được sử dụng tại các trạm để trao đổi giá trị của các công tơ trong việc kiểm tra định kỳ. Chú ý: - Mỗi công tơ sự kiện là biến nguyên không lùi, được kết hợp bởi một nhóm đặc biệt các sự kiện. - Trên mỗi công tơ sự kiện nào đó có phối hợp với nhóm E được xác định ba hàm nguyên thủy II.3 Thuật toán bầu cử trong mạng Ring II.3.1 Giới thiệu chung Bài toán bầu cử người lãnh đạo cổ điển là “Tìm bộ xử lý với khóa lớn nhất trong mạng phân tán đó là mỗi bộ xử lý trong mạng sẽ được cấp một số (một khóa) và một yêu cầu tổng cộng đã được định nghĩa trong các khóa”. Bắt đầu là thuật toán Le Lann năm 1977, sau đó năm 1979 thì có rất nhiều thuật toán về bầu cử người lãnh đạo trong mạng Ring đã được đề ra. Trong các thuật toán này cũng đã xử lý được tất cả các thời điểm xảy ra lỗi (trước, trong, sau quá trình bầu cử người lãnh đạo), kể cả nút xảy ra lỗi là nút lãnh đạo. Trong lịch sử, bài toán mất Token trong mạng Token Ring đã được coi trọng nhất trong thuật toán phân tán. Trong thực tế, một token ring là “Right to speak” trong mạng. Nếu hai nút trong mạng đang cố gắng để giao thiệp đồng thời thì sự giao thiệp này se bị cản trở. Chính vì vậy mà cần có một trạm điều khiển (leader), một Token sẽ được di chuyển quanh mạng và trạm nào có Token thì trạm đó mang quyền điều khiển mạng. Tuy nhiên thỉnh thoảng Token có thể bị mất chính vì vậy mà thật là cần thiết để xây dựng một thuật toán để khôi phục lại Token đã bị mất. II.3.2 Phạm vi Thuật toán bầu cử người lãnh đạo được đặt ở lớp Medium Access Sub của lớp liên kết dữ liệu trong mô hình mạng OSI, tuy nhiên ứng dụng của chúng có lẻ phải trải qua các cuộc bầu cử ở hệ thống phân tán. Thuật toán đã được phát triễn tùy thuộc vào các đặc tính tương ứng của mạng Ring. Xây dựng thuật toán khi một node trong mạng Ring gặp sự cố trước, trong, sau quá trình bầu cử thì mạng sẽ nhanh chóng bầu ra một node lãnh đạo. II.3.3 Chọn leader Các node trong vòng ring phải chọn ra một node chủ (node được chọn, elected,leader) để đảm nhiệm việc tính toán trong mạng. Khi một node đã được chọn, tất cả các node còn lại đều ở trạng thái không được chọn (Non-elected) và HVTH: Hồ Ngọc Tú Trang 10 [...]... và lập trình phân tán đối tượng Thông thường các chương trình của chúng ta được viết dưới dạng thủ tục hay hàm gọi và mã lệnh của hàm hay thủ tục được nạp thẳng vào ký ức và thực thi ngay trên máy cục bộ Điều mà hầu hết các nhà lập trình quan tâm là đối số truyền cho hàm và kết qủa mà hàm trả về Câu hỏi đặt ra là có cách nào nạp nội dung ở một hàm hay một đối tượng ở một máy nào đó và gọi chúng ở một. .. gán ID của nó vào thông điệp rồi chuyển đến node 4, node 4 gán ID của nó vào rồi gửi thông điệp đến node 1 Node 1 có thể xác định ID cao nhất trong danh sách Nó gửi thông điệp “được chọn” và ID của node được chọn khi đó tất vả các node sẽ biết được node nào là leader và quá trình bầu chọn kết thúc HVTH: Hồ Ngọc Tú Trang 13 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 CHƯƠNG III RMI VÀ LẬP TRÌNH PHÂN... trường hợp mạng bị sự cố, hình vẽ sau đây mô phỏng một mạng Ring có 4 node, tuy nhiên trong đó Node 2 bị sự cố Sự cố Hoạt động 3 2 Hoạt động 2 2 ← Vòng tròn logic 1 4 Hoạt động Hình II.2 Mạng Ring gồm 4 trạm (Trạm 2 bị sự cố) 2 2 Mỗi node có ID của nó, node 2 bị lỗi hoặc chưa hoạt động, các node còn lại đang hoạt động Ta xét trường hợp khi node 1 khởi tạo sự bầu chọn node Nó đánh dấu nó là một người... HVTH: Hồ Ngọc Tú Trang 21 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 KẾT LUẬN - - Trong tiểu luận này đã giải quyết các vấn đề cơ bản đặt ra ban đầu như:  Trình bày nội dung của bộ tuần tự tuần hoàn trên vòng tròn ảo  Trình bày các phương án có sự cố  Thực hiện kết nối và phúc đáp giữa các Server  Xây dựng Monitoring dùng để kiểm tra quá trình kết nối  Chương trình được xây dựng bằng ngôn... từ xa phải thông qua kết nối mạng và luôn có thể bị ngắt ngang do mạng gặp sự cố Đối với lời gọi hàm trên máy cục bộ các tham số truyền cho hàm thường được đặt vào ngăn xếp (stack) trong khi tham số truyền cho phương thức của các đối tương ở xa phải được đóng gói và chuyển qua mạng để đến được với phương thức thực sự Cơ chế truyền và quản lý biến dữ liệu giữa các tiến trình trên hai máy khác nhau thường...Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 phải hoàn toàn tuân thủ theo node được chọn, cho đến khi một sự lựa chọn khác xảy ra II.3.4 Đặc điểm của vòng ring Một mạng hình thành một vòng ring nếu tồn tại một liên kết giữa hai node P(i) và P(j) trong đó i =j+1 hoặc j=i+1 và không còn liên kết nào khác giữa các node này Nếu có sự liên hệ giữa node P đến (i+1) mod (P), thì vòng ring là theo một hướng... (Exception ex) { } } } HVTH: Hồ Ngọc Tú Trang 19 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 Chương trình Demo (giả lập các Server chỉ chạy trên một máy) Màn hình sau khi khởi động Server 1 Màn hình sau khi khởi động Server 2 Lúc này màn hình của Server 1 sẽ xuất hiện thêm message trả lời phúc đáp HVTH: Hồ Ngọc Tú Trang 20 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 Tương tự như vậy, sau khi khởi động... người tham gia và gửi đi một thông điệp “bầu chọn” và ID của nó đến node hàng xóm Tuy nhiên vì node 2 không gửi trả lại phúc đáp, nó gửi thông điệp đến node kế tiếp theo chiều kim đồng hồ theo tuần tự các node 1-3-4 Sự cố 2 2 Hoạt động 1 3 Elect-1 Hoạt động 2 4 Hoạt động Hình II.3 Khôi phục lỗi bằng cách xây dựng lại vòng Ring 2 HVTH: Hồ Ngọc Tú 2 Trang 12 Bài tiểu luận môn Lập trình mạng Lớp KHMT K24... (Calculator.java) 8 Dựa vào đặt tả cài đặt chi tiết đối tượng (CalculatorImpl.java) HVTH: Hồ Ngọc Tú Trang 16 Bài tiểu luận môn Lập trình mạng 9 Lớp KHMT K24 Biên dịch đối tượng (CalculatorImpl.class) và tạo ra hai đối tượng trung gian CalculatorImpl_Stub và CalculatorImpl_Skel) 10 Viết chương trình (CalculatorServer.class) cài đặt đối tượng trên máy chủ 11 Sử dụng lớp giao tiếp (Calculator.class) và CalculatorImpl_Stub... tìm hiểu và làm quen với ngôn ngữ lập trình Java nên chương trình được viết chưa tối ưu, chưa khai thác hết được những đặc điểm nổi trội của ngôn ngữ Java như: Giao diện chương trình, kế thừa, đóng gói, tính mềm dẻo, Hy vọng rằng trong thời gian đến, khi tìm hiểu sâu hơn về Java, bản thân cũng như các bạn trong lớp sẽ có những kỹ năng tốt hơn về Lập trình bằng ngôn ngữ Java để phục vụ tốt hơn cho công . trong mạng. Cách khắc phục khi có một sự cố xảy ra trong mạng sẽ được trình bày ở phần sau, phần này ta sẽ nghiên cứu cách đưa một trạm bị sự cố vào lại trong mạng. Để đưa một trạm bị sự cố đã được. Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 BỘ GIÁO DỤC ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG - - -    - - - BµI TIÓU LUËN lËp tr×nh m¹ng Đề tài: CHƯƠNG TRÌNH CHO PHÉP ĐƯA MỘT TRẠM ĐÃ KHẮC PHỤC SỰ CỐ VÀO. 5 4 2 1 0 7 3 6 5 4 2 1 07 3 6 5 Trạm đang giữ ấn phong (thẻ bài) Hàng xóm trái Hàng xóm phải Bài tiểu luận môn Lập trình mạng Lớp KHMT K24 - Khi một trạm bị sự cố đã được khắc phục và hoạt động trở lại thì nó

Ngày đăng: 31/01/2015, 22:47

Từ khóa liên quan

Mục lục

  • CHƯƠNG II GIỚI THIỆU VỀ CÁC PHƯƠNG ÁN CÓ SỰ CỐ

Tài liệu cùng người dùng

Tài liệu liên quan