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

tiểu luận lập trình mạng áp dụng thuật toán le lann đảm bảo gắn bó

17 540 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 17
Dung lượng 1,58 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung chủ yếu trình bày trong tiểu luận này là giải quyết một vấn đề về lập trình mạng, cụ thể như sau: Sử dụng giải thuật Le Lann để lập trình cho các hệ phân tán gắn bó yếu.. Khi th

Trang 1

ĐỀ tài: Áp dụng thuật toán Le Lann đảm bảo gắn bó

dữ liệu trong CSDL phân tán

Giảng viên hướng dẫn : PGS.TS Lê Văn Sơn :

Sinh viên thực hiện : Mai Văn Tùng

Đà Nẵng, tháng 05 năm 2012

Trang 2

LỜI MỞ ĐẦU

Với sự tiến bộ không ngừng của khoa học và kỹ thuật nói chung, đặc biệt trong lĩnh vực công nghệ thông tin, ngày nay mạng máy tính đã phát triển nhanh chóng và

đa dạng cả về cấu hình mạng lưới, thiết bị mạng, hệ điều hành và ứng dụng Vì vậy, những chương trình ứng dụng chạy trên các máy tính đơn lẻ trước đây dần dần được thế chỗ bới những chương trình ứng dụng chạy trên mạng

Khi thông tin được sử dụng chung thì nó nảy sinh nhiều vấn đề cần phải giải quyết như:

Đồng bộ dữ liệu trên các nút mạng khác nhau (các Servers, dữ liệu các thiết

bị mạng …)

Định tuyến và phân luồng truy cập vào các Servers một cách hợp lý và hiệu quả

Chống truy cập bất hợp pháp

Một trong những vấn đề chính cần phải giải quyết là làm sao phải đảm bảo dữ liệu trên mạng phải thống nhất Đây cũng là một trong những yêu cầu chính của lĩnh vực lập trình mạng

Nội dung chủ yếu trình bày trong tiểu luận này là giải quyết một vấn đề về lập trình mạng, cụ thể như sau:

Sử dụng giải thuật Le Lann để lập trình cho các hệ phân tán gắn bó yếu

Xây dựng hệ thống phân tán với một số server có khả năng phát/nhận thông điệp

Xây dựng giải pháp gắn bó yếu trên CSDL

Lập chương trình bằng Java

Tôi xin chân thành cảm ơn PGS.TS Lê Văn Sơn đã trực tiếp giảng dạy và giúp đỡ tôi hoàn thành tiểu luận này.

Trang 3

Giải thuật LeLann để lập trình cho các hệ phân tán gắn bó yếu

1.1 Khái niệm về gắn bó thông tin và các hình thức gắn bó trong hệ phân tán

Để thuận tiện trong việc mô tả khái niệm về gắn bó yếu, trước hết ta định nghĩa gắn bó thông tin trong hệ phân tán là gì?

1.1.1 Gắn bó thông tin trong hệ phân tán

Các đối tượng khác nhau của hệ thống không phải là các đối tượng độc lập nhau, chúng quan 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ệ thoả 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ó

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

Vậy gắn bó yếu là gì?

1.1.2 Gắn bó yếu

Gắn bó yếu cũng là một loại gắn bó thông tin Khi thông tin của một hệ thống nằm rải rác trên các nút mạng khác nhau đều đồng bộ với nhau tại mọi thời điểm thì đó

là gắn bó mạnh Ngược lại, thông tin không được đồng bộ tại mọi thời điểm mà nó chỉ đồng bộ theo 1 chu kỳ nhất định (có thể là chu kỳ thời gian) thì đó là gắn bó yếu Tóm

Trước khi cập nhật (thay đổi)

Trong khi cập nhật (thay đổi)

Sau khi cập nhật (thay đổi)

Gắn bó

Không gắn bó

Gắn bó

T

Trang 4

lại, với gắn bó yếu, thông tin không cần phải được cập nhật tức thời giữa các nút mạng trong một hệ thống nào đó

Ví dụ: việc cập nhật bảng định tuyến của các Routers trong một hệ thống viễn thông có một số trường hợp cũng không cần thiết phải gắn bó mạnh mà nó chỉ được cập nhật bảng định tuyến với nhau theo một chu kỳ thời gian

1.2 Giải thuật LeLann

1.2.1 Giới thiệu giải thuật LeLann

1.2.1.1Giới thiệu bài toán:

Cho tập hợp gồm các nút phần tử mạng được kết nối với nhau theo vòng Ring

Độ ưu tiên của các phần tử mạng ban đầu là chưa có và không có phần tử nào đảm nhận chức năng là bộ điều khiển trung tâm Vấn đề đặt ra là tìm phần tử trên vòng Ring có độ ưu tiên là cao nhất (hoặc thấp nhất) Không mất tính tổng quát, bài toán yêu cầu tìm phần tử có độ ưu tiên cao nhất

1.2.1.2Giải thuật LeLann

1.2.1.2.1 Nội dung giải thuật

Giải thuật LeLann yêu cầu tất cả các nút mạng đều gửi thông điệp, thông điệp này mang một số ưu tiên (priority) của riêng mình Như vậy, tất cả các nút mạng trên vòng Ring đều nhận được thông điệp của các nút khác, sau khi thực hiện việc sắp xếp

và nút mạng nào có số hiệu ưu tiên cao nhất sẽ được bầu

Giả sử rằng, mỗi một nút mạng đều biết độ ưu tiên của mình, sau đó bắt đầu khởi tạo và gán độ ưu tiên vào thông điệp và gửi đi, việc thực hiện chuyển thông điệp theo chiều kim đồng hồ (chiều bên trái của nút mạng):

Trang 5

Nếu độ ưu tiên của thông điệp nhận được cao hơn độ ưu tiên của chính

nó, thông điệp này sẽ được chuyển tiếp trên vòng Ring

Nếu độ ưu tiên của thông điệp nhận được thấp hơn độ ưu tiên của chính

nó, không chuyển tiếp thông điệp nữa

Nếu độ ưu tiên của thông điệp bằng nhau, đó chính là độ ưu tiên cao nhất cần tìm trên vòng Ring

Chú ý: giải thuật này chỉ xác định một và chỉ một độ ưu tiên cao nhất trên mạng LeLann’s Algorithm

Trang 6

1.2.1.2.2 Di chuyển thông điệp (Message Passes)

Tổng số thông điệp di chuyển trên vòng Ring trong các trường hợp:

Trường hợp tốt nhất: n+n-1=2n-1

Trường hợp tồi nhất: (n*n+1)/2

Trường hợp trung bình: = n(1+2+…)

1.3 Áp dụng giải thuật LeLann để lập trình cho các hệ phân tán gắn bó yếu

1.3.1 Bài toán:

Áp dụng giải thuật LeLann để đồng bộ dữ liệu cho các Routers trên vòng Ring theo chu kỳ thời gian T=30s

1.3.2 Giải thuật:

Repeat

send(nid); //Gửi thông tin theo chiều kim đồng hồ trên vòng Ring receive(nid);

update(information); //Cập nhật thông tin Delay(30s); //Tạm dừng 30s trước phát/nhận thông điệp Until disconect

Trang 7

Xây dựng hệ thống phân tán với một số Server có khả năng phát/nhận

thông điệp

1.4 Bài toán:

Xây dựng hệ thống đa server có khả năng phát/nhận thông điệp theo hình vẽ dưới đây

Nội dung thông điệp ở đây giả sử mang thông tin về độ ưu tiên của các Server, thông điệp sẽ được phát/nhận theo chiều kim đồng hồ như giải thuật LeLann

1.5 Thuật toán:

1.5.1 Xây dựng bảng định tuyến:

Trước tiên ta xây dựng bảng định tuyến để căn cứ vào bảng này, server sẽ chuyển các thông điệp trên mạng đi theo chiều kim đồng hồ

Ví dụ:

Server 01 -> Server 02

Server 02 -> Server 03

Server 03 -> Server 04

Server N-1 -> Server N

Server N -> Server 01

Như vậy, các thông điệp phát đi trên mạng từ Server(i) đến Server(i+1) Ngược lại, Server(i) chỉ nhận được gói tin từ Server(i-1) gửi đến

Trang 8

1.5.2 Xây dựng thủ tục cho các Servers:

Điều kiện ban đầu: mỗi Server đã biết độ ưu tiên của mình trên mạng lưới Các Server phát thông tin về độ ưu tiên của mình, khi nhận được bản tin từ Server khác gửi đến sẽ thực hiện so sánh, nếu độ ưu tiên của mình lớn hơn thì không chuyển tiếp thông điệp nữa, ngược lại sẽ chuyển đến Server kế tiếp

1.5.3 Xây dựng thủ tục phát/nhận thông điệp

Cấu trúc thông điệp:

Trang 9

Mỗi Server sẽ phát và nhận thông điệp, chiều phát/nhận theo như bảng định tuyến đã xây dựng

Nội dung của thông điệp là độ ưu tiên của mỗi Server, kết thúc quá trình này

sẽ cho hệ thống biết Server nào có độ ưu tiên cao nhất theo giải thuật LeLann

Trang 10

Xây dựng giải pháp gắn bó yếu trên CSDL

1.6 Giới thiệu hệ thống CSDL phân tán

Một cơ sở dữ liệu phân tán là tập hợp nhiều cơ sở dữ liệu có liên đới logic và được phân bố trên một mạng máy tính

Từ đó ta định nghĩa: Hệ quản trị cơ sở dữ liệu phân tán (DDMS) là một hệ thống phần mềm cho phép quản lý các cơ sở dữ liệu phân tán và làm cho việc phân tán trở nên “vô hình” đối với người sử dụng.

Môi trường của hệ cở dữ liệu phân tán được mô tả qua hình vẽ sau:

Vấn đề được đặt ra làm sao để đảm bảo gắn bó yếu đối với các hệ thống dữ liệu này

Hiện tại có rất nhiều giải thuật giải quyết vấn đề gắn bó yếu trên CSDL, chúng

ta sẽ tìm hiểu các giải thuật này ở phần tiếp theo

1.7 Các thuật toán giải quyết vấn đề gắn bó yếu CSDL

1.7.1 Giải thuật LeLann:

Trang 11

đi cho tập hợp các trạm Trên mỗi trạm, tồn tại một tiến trình server được đảm nhận nhiệm vụ tiếp nhận các yêu cầu theo trật tự của dấu Điều đó cho phép có được một sự gắn bó yếu giữa các bản sao khác nhau

Các giao dịch cần là các khả năng đọc, ghi hay cập nhật Cập nhật được xác định như là một dãy các thao tác đọc rồi ghi, thao tác kiểm tra đọc tức thì trạng thái hiện hành của một bản sao

Mỗi một server tiếp nhận các yêu cầu ghi đến từ trạm cục bộ ở thời điểm cho trước Nó tiếp nhận các yêu cầu và tính toán trên cơ sở dấu theo tiêu chí lâu nhất Việc xác định yêu cầu không được tiến hành ngay tức khắc vì nguyên do ta không thể biết chắc chắn yêu cầu nào là lâu nhất Yêu cầu lâu nhất có thể đang truyền trên đường Tính không chắc chắn này xuất hiện có điều kiện với giả thiết về hệ viễn thông Khi

trạm i truyền qua các thông điệp cho trạm j, trật tự nhận các thông điệp tại j là hoàn

toàn giống với trật tự nhận các thông điệp phát đi Giả thiết này được kiểm tra trong các mạng thông thường Việc xác định yêu cầu cần xử lý trên một trạm là hoàn toàn có thể Có hai trường hợp cần xem xét:

Tập hợp các yêu cầu ghi khi chờ chứa các yêu cầu từ tất cả các trạm khác Trong trường hợp này, các yêu cầu đi qua, nếu chúng tồn tại, là mới hơn so với các yêu cầu đã đi qua Nói cách khác, yêu cầu lâu nhất chính là yêu cầu đang chờ

Tồn tại các trạm mà không có bất kỳ yêu cầu nào được truyền đến Ta được đưa đến trường hợp trước đây bằng cách truyền cho tất cả các trạm một thông điệp yêu cầu và bắt buộc phải xác nhận Do vậy, sau một khoảng thời gian, theo giả thiết về độ ổn định, ta sẽ nhận hoặc là các yêu cầu đi qua, hoặc là các trả lời cho thông điệp yêu cầu Lúc này, ta có được các thông điệp đến từ tất cả các trạm

1.7.3 Thuật toán đảm bảo sự gắn bó yếu nhờ bộ tuần tự tuần hoàn

Ở thuật toán này, ta xem như các trạm được lắp đặt trên một vòng tròn theo một chiều nhất định gọi là vòng tròn ảo Mỗi trạm chỉ liên hệ với 2 trạm gần nhất với nó là

trạm bên trái (succ) và trạm bên phải (pred) Trước khi phát một yêu cầu một trạm nào

đó cần phải kết hợp với nó một số thứ tự được cấp từ bộ tuần hoàn Các yêu cầu được

Trang 12

tiếp nhận tại mỗi trạm theo cùng một trật tự thống nhất Điều đó giúp ta có được một

sự gắn bó yếu

Bộ tuần tự cung cấp cho mỗi một yêu cầu số sắp tới chưa dùng, giả sử đó là T Khi đến phiên của trạm nhận bộ tuần tự, nó yêu cầu một số lượng n số đúng bằng số

lượng các yêu cầu cập nhật đang chờ trên trạm này Các số này là:

T, T+1, …, T+n-1

Nó tiếp tục chuyển bộ tuần tự cho trạm kề liền sau nó và số sắp tới chưa dùng

đến là T+n.

Khi một trạm đã có số, nó phát yêu cầu cập nhật cùng với số này Trên mỗi trạm, các cập nhật được thực hiện bằng cách tiếp nhận các yêu cầu cùng các số liên tiếp nhau (theo một trật tự) Để xác định yêu cầu sắp đến cần phải xử lý, mỗi một trạm

duy trì một biến chứa số V được phối hợp với yêu cầu xử lý cuối cùng Các yêu cầu mang các số lớn hơn V+1 được lưu trữ trong khi chờ xử lý yêu cầu V+1.

Một trạm khi đã rút một lượng số cần phải được sử dụng hết khi nó đến lượt tiếp theo tiếp nhận bộ tuần tự nếu không các trạm khác sẽ phải chờ

1.8 Bài toán gắn bó yếu trên CSDL

1.8.1 Phát biểu bài toán

Giả sử trên một hệ thống mạng viễn thông có các thiết bị định tuyến (router), mỗi thiết bị ban đầu chứa bảng (dữ liệu) định tuyến của mình Lúc này các bảng định tuyến chỉ chứa các địa chỉ mạng của các phần tử kế nối trực tiếp (connected) với chính nó

Trang 13

Để tất cả các phần tử trên mạng có thể liên lạc được với nhau, các bảng định tuyến trên các router phải được cập nhật liên tục Bài toán đặt ra là xây dựng chương trình mô phỏng việc cập nhật dữ liệu của các bảng định tuyến trên các router, cụ thể như sau:

Dữ liệu đầu vào: thông tin các bảng định tuyến của các router được lưu ở file connected routerX.txt

Trên router 1 có các mạng như sau: 192.168.1.0/30, 192.168.1.4/30, 192.168.1.8/30

Trên router 2 có các mạng như sau: 192.168.1.24/30, 192.168.1.28/30

Trên router 3 có các mạng như sau: 192.168.1.12/30, 192.168.1.16/30, 192.168.1.18/30

Dữ liệu đầu ra: thông tin định tuyến sau khi các router đã trao đổi thông tin với nhau và được lưu ở file: routing table.txt

Trang 14

1.8.2 Giải quyết bài toán

1.8.2.1Thuật toán:

Áp dụng giải thuật LeLann, các thủ tục xây dựng ở trên cho các Server gửi/nhận thông điệp đã xây dựng ở phần 1 và 2

Một router sẽ gửi thông tin định tuyến đang có gửi cho router kế nó trên vòng Ring Thông tin định tuyến được đọc từ các file connected routerX.txt và routing table.txt

Sau khi nhận được thông tin định tuyến, router nhận sẽ ghi kết quả lên file routing table.txt và tiếp tục chuyển (forward) đến router kế tiếp theo thứ tự

1.8.2.2Kết quả:

Sau một số bước gửi/nhận thông tin, toàn bộ các router trên hệ thống mạng

sẽ có thông tin định tuyến hoàn chỉnh

Trang 15

KẾT LUẬN

Đánh giá

Qua đề tài tiểu luận, tôi đã nghiên cứu và nắm bắt được nhiều kiến thức về lập trình mạng và ngôn ngữ Java Chương trình ứng dụng xây dựng về cơ bản đã đạt được mục tiêu bài toán đặt ra

Hướng phát triển của chương trình

Lĩnh vực lập trình mạng là lĩnh vực khó và phức tạp Vì vậy, những nghiên cứu trong bài tiểu luận về lý thuyết cũng như chương trình vẫn còn nhiều điểm cần phải chỉnh sửa để hoàn thiện hơn

Cụ thể, chương trình cần sửa đổi và bổ sung thêm một số tính năng sau:

Xử lý khi có sự cố xảy ra trên mạng

Xử lý và chọn lọc những thông tin trước khi gửi để tối ưu về mặt đường truyền

Trang 16

Tài liệu tham khảo

[1] Hệ tin học phân tán – TS Lê Văn Sơn, Nhà xuất bản Đại học quốc gia TP

Hồ Chí Minh

[2] Java lập trình mạng – Nguyễn Phương Lan, Hoàng Đức Hải, Nhà xuất bản lao động – xã hội

[3] Java™ 2:The Complete Reference, Fifth Edition

[4] Internet: Lê Văn Sơn Trường Đại họcc Sư phạm – Đại học Đà Nẵng, nghiên cứu phát triển giải thuật quản lý nhiều bản sao cho các ứng dụng phức tạp (researching

to develop algorithm managing multicopies for complicated applications)

[5] Internet: LeLann’s algorithm

Trang 17

Mục lục

TIỂU LUẬN LẬP TRÌNH MẠNG 1

Giải thuật LeLann để lập trình cho các hệ phân tán gắn bó yếu 3

Xây dựng hệ thống phân tán với một số Server có khả năng phát/nhận thông điệp 7

Xây dựng giải pháp gắn bó yếu trên CSDL 10

KẾT LUẬN 15

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w