Tải bản đầy đủ (.doc) (17 trang)

HỆ THỐNG ĐA SERVER THỂ HIỆN GIÁ TRỊ ĐỒNG HỒ LÔGIC VÀ KHẢ NĂNG PHÁT NHẬN THÔNG ĐIỆP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (548.08 KB, 17 trang )

Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG

ĐỀ TÀI TIỂU LUẬN
Đề tài: HỆ THỐNG ĐA SERVER THỂ HIỆN GIÁ TRỊ
ĐỒNG HỒ LÔGIC VÀ KHẢ NĂNG PHÁT NHẬN
THÔNG ĐIỆP


Giáo viên hướng dẫn: PGS. TS. Lê Văn Sơn
Học viên thực hiện : Nguyễn Tấn Sĩ
Nguyễn Đăng Bảo Phúc
Niên khóa : 2009 - 2011
Đà Nẵng, 3-2010
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
1
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
LỜI MỞ ĐẦU
Trong những thập kỷ gần đây, các thành tựu mới nhất của hệ thống tin học
về phần cứng, phần mềm và các hệ dữ liệu ổn định, tin cậy đã góp phần đáng kể cho
sự phát triển của toàn xã hội nói chung, ngành Công nghệ thông tin nói riêng. Đặc
biệt môi trường mạng thông tin toàn cầu đã mở ra cho con người một môi trường
làm việc mới, rất thuận lợi và hữu ích.
Trên thực tế, một xu hướng kỹ thuật mới ra đời, đó là xu hướng phân tán các
thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tin.
Đây là hệ thống tin học hiện đại có rất nhiều thế mạnh, song để khai thác có hiệu
quả toàn hệ, vấn đề quan trọng hàng đầu là chiến lược quản lý, khai thác và chia sẻ
tài nguyên trong hệ sao cho tối ưu.
Hiện nay, các ứng dụng công nghệ thông tin trong mọi hoạt động của đời
sống xã hội như: chính phủ điện tử, thương mại điện tử, giáo dục điện tử, v.v…. đều


được xây dựng trên cơ sở phân tán các quá trình xử lý thông tin trên các nút xa
nhau. Vì vậy, vấn đề đảm bảo sự chính xác và nhanh chóng trong việc truyền tin
trên mạng là vấn đề quan trọng cần xem xét và giải quyết một cách tốt nhất. Đây
cũng chính là vấn đề mà liểu luận này đề cập đến.
Tiểu luận gồm có 3 chương
Chương 1: Tổng quan về hệ phân tán và lập trình mạng.
Chương 2: Đồng bộ hóa thời gian trong hệ phân tán.
Chương 3: Hệ thống đa Server thể hiện giá trị đồng hồ Logic tại mỗi Server.
Mặc dù bản thân đã có nhiều cố gắng nhưng trong thời gian ngắn với khả
năng còn hạn chế nên không tránh khỏi những thiếu sót, xin chân thành cảm ơn sự
đóng góp ý kiến quí báu của các thầy cô và bạn bè để đề tài được hoàn thiện hơn.
Cuối cùng chúng tôi xin chân thành cảm ơn thầy PGS. TS. Lê Văn Sơn đã
trang bị kiến thức và tạo mọi điều kiện thuận lợi để chúng tôi hoàn thành tiểu luận
này.
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
2
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
CHƯƠNG I.
TỔNG QUAN VỀ HỆ PHÂN TÁN VÀ LẬP TRÌNH MẠNG
I.1 Hệ phân tán (Distributed System)
Hệ tin học phân tán là một hệ thống đa dạng, nhiều thành phần và phức tạp
về mặt cấu trúc, là vùng tri thức hiện đại đang được các chuyên gia công nghệ thông
tin đặc biệt quan tâm nghiên cứu và phát triển ứng dụng hiện nay.
Hình 1. Các lĩnh vực có hệ thống phân tán
Hay hệ phân tán là một tập hợp các máy tính độc lập mà xuất hiện đối với
các người sử dụng như một máy tính đơn. Với các đặc điểm:
 Nhiều bộ phận.
 Kết nối thông qua mạng truyền thông.
 Chia xẻ các tài nguyên. (Theo Andrew Tanenbanum)
Hình 2. Một phần của mạng Internet

HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
3
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
Nói chung, một định nghĩa phổ biến và khá đầy đủ về hệ phân tán được trình
bày trong tài liệu [1] như sau:
“Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System) là
hệ thống xử lý thông tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm các tại các vị
trí khác nhau và được liên kết với nhau thông qua phương tiện viễn thông dưới sự
điều khiển thống nhất của một hệ điều hành.”
Mục tiêu của hệ phân tán:
 Tăng tốc độ bình quân trong tính toán, xử lý.
 Cải thiện tình trạng luôn luôn sẵn sàng của các loại tài nguyên.
 Tăng độ an toàn cho dữ liệu.
 Đa dạng hóa các loại hình dịch vụ tin học
 Đảm bảo tính toàn vẹn của thông tin.
I.2 Các mô hình hệ phân tán và ứng dụng mạng
Các lớp phần mềm:
Kiến trúc phần mềm: cấu trúc của phần mềm như là các lớp và các module
trong các thuật ngữ của các dịch vụ đưa ra và yêu cầu giữa các tiến trình trên cùng
hoặc trên các máy tính khác nhau.
Platform (hệ nền): phần cứng mức thấp nhất và các lớp phần mềm (hệ điều
hành).
Middleware: một lớp của phần mềm mà mục đích của nó là đánh dấu heterogeneity
và để cung cấp một mô hình lập trình cho các ứng dụng, như: CORBA, RMI (Remote
Method Invocation), DCOM (Distributed Component Object Model),
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
4
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
I.3 Kiến trúc hệ thống
I.3.1 Mô hình Client/Server

Hình 3- Mô hình Client/Server
Một WebServer thường là một client của một File Server cục bộ.
Các WebServer và các Server của Internet khác là các client của một DNS
Server cái mà dịch các tên miền Internet thành các địa chỉ mạng.
Một máy tìm kiếm là một Server, nhưng nó chạy chương trình được gọi là
Web Crawlers cái mà truy cập các Web server thông qua Internet cho thông tin yêu
cầu.
 Dịch vụ cung cấp bởi nhiều server:
Hình 4- Dịch vụ được cung cấp bởi nhiều server
Nhiều Server có thể:
 Mỗi phần là một tập hợp các đối tượng.
 Duy trì các bản sao của toàn bộ tập hợp các đối tượng trên một vài máy.
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
5
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
 Ví dụ Web Proxy Server:
Hình 5. Proxy Server
Web Proxy Server cung cấp một bộ nhớ cache chia xẻ cho các máy client tại
một site hoặc băng qua một vài site khác nhau.
I.3.2 Mô hình tương tác trong hệ phân tán
 Thực hiện truyền thông:
 Sự tiềm ẩn (Latency):
• Sự trì hoãn lan truyền: thời gian cần thiết để một bit đầu tiên của một
thông điệp truyền đến được đích.
• Sự trì hoãn truyền: là khoảng thời gian giữa sự truyền bit đầu tiên và
bit sau cùng của một thông điệp.
• Sự trì hoãn xử lý: là thời gian cần để hệ điều hành xử lý/gửi/nhận thông
điệp.
• Sự trì hoãn xếp hàng: thời gian cần để một thông điệp xếp hàng ở cuối
máy chủ hoặc ở các node trung gian đợi để truyền đi.

 Băng thông (bandwidth): Tổng số thông tin có thể được truyền đi trong
một thời gian đã cho.
 Sự biến đống tạp (Jitter): thời gian khác nhau giữa các sự trì hoãn ảnh
hưởng bởi các thông điệp khác nhau.
 Đồng hồ và thứ tự các sự kiện:
 Không có khái niệm toàn cục của thời gian.
 Nhịp độ đồng hồ trôi: nhịp độ tương đối ở một đồng hồ máy tính trôi dạt
ra khỏi từ một đồng hồ tham chiếu hoàn hảo.
 Đồng bộ hóa đồng hồ:
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
6
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
 Hệ thống định vị toàn cầu (GPS): một ít máy tính có thể sử dụng máy
thu radio để nhận thời gian đọc từ GPS với độ chính xác là 1 micro-giây.
Chúng có thể gửi các thông điệp thời gian đến các máy tính khác trong mạng
tương ứng của chúng.
 Các đồng hồ logic: mỗi thông điệp là thời gian đóng dấu lên với một số
nối tiếp mà phản chiếu thứ tự lôgic của chúng.
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
7
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
CHƯƠNG II.
ĐỒNG BỘ HÓA THỜI GIAN TRONG HỆ PHÂN TÁN
II.1 Thời gian và thứ tự sự kiện trong hệ phân tán
II.1.1 Tiến trình và sự kiện
 Trong một hệ phân tán có thể gồm nhiều tiến trình (process) cùng hoạt động.
Mỗi tiến trình có một trạng thái (giá trị của các biến). Trong qúa trình họat động
một tiến trình có thể thay đỗi trạng thái của nó hoặc liên lạc với nhau (gửi/nhận
thông điệp).
 Một sự kiện (Event) là sự xảy ra của một hành động. Các sự kiện trong một

tiến trình có thể được sắp đặt (xếp thứ tự) bởi thời gian mà nó xảy ra.
Trong hệ phân tán chúng ta cần biết thứ tự thời gian của các sự kiện trên các
bộ xử lý khác nhau hoặc giữa các tiến trình khác nhau.
Khái niệm của một sự kiện xảy ra trước một sự kiện khác trong một hệ phân
tán là được kiểm tra, và chỉ để định nghĩa một thành phần thứ tự của các sự kiện.
Một thuật toán phân tán được đưa ra để đồng bộ hóa một hệ thống các đồng hồ
logic, cái có thể được sử dụng để định tổng thứ tự các sự kiện. Việc sử dụng tổng
thứ tự được minh họa với một phương pháp cho việc giải quyết vấn đề đồng bộ hóa.
Các thuật toán đặc trưng để đồng bộ hóa đồng hồ vật lý, và một giới hạn được xuất
phát từ trong bao lâu thì sự đồng bộ của đồng hồ trở nên không còn phù hợp.
Khái niệm thời gian là cơ bản trong cách suy nghĩ của chúng ta, nó xuất phát
từ nhiều khái niệm cơ sở của các thứ tự trong đó các sự kiện xảy ra. Chúng ta nói
rằng một cái gì đó xảy ra vào lúc 3h15’nếu nó xuất hiện sau khi đồng hồ của chúng
ta đọc 3h15’ và trước khi nó đọc 3h16’. Khái niệm thứ tự theo thời gian của các sự
kiện thâm nhập vào suy nghĩ của chúng ta về hệ thống. Chắng hạn trong một hệ
thống đặt vé máy bay nên được đảm bảo thực hiện trước khi chuyến bay là bị đầy.
Tuy nhiên chúng ta sẽ thấy rằng khái niệm này phải được xem xét lại cẩn thận khi
các sự kiện là được quan tâm trong hệ phân tán.
Hầu hết mọi người có thể nói rằng một sự kiện a là xảy ra trước sự kiện b
nếu a xuất hiện tại thời điểm sớm hơn b. Họ có thể biện minh định nghĩa này trong
giới hạn lý thuyết của thời gian vật lý. Tuy nhiên, nếu hệ thống là gặp một sự chỉ
định chính xác, thì sự chỉ định này phải được đưa ra trong giới hạn của các sự kiện
tuân theo trong hệ thống. Nếu sự chỉ định là trong giới hạn của thời gian vật lý, thì
hệ thống phải chứa các đồng hồ thực sự. Thậm chí nếu nó chứa các đồng hồ thực
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
8
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
sự, thì vẫn còn có vấn đề là các đồng hồ không chính xác hoàn hảo và không giữ
đúng thời gian vật lý. Vì thế, chúng ta sẽ định nghĩa quan hệ “xảy ra trước” mà
không dùng các đồng hồ vật lý.

II.2 Đồng hồ vật lý và đồng bộ hóa
 Trong hệ phân tán, mỗi bộ xử lý có một bộ định thời riêng (một đồng hồ
riêng). Các bộ định thời trôi theo thời gian thực trong nhịp khác nhau. Nhịp trôi lớn
nhất (MDR – Max Drift Rate) của một đồng hồ phụ thuộc vào đặc tính của đồng hồ
và môi trường xung quanh. Sự khác nhau lớn nhất của hai đồng hồ với MDR tương
tự là: 2*MDR.
 Đồng bộ hóa đồng hồ vật lý:
C
i
(t): là thời gian đọc được từ phần mềm đồng hồ i khi thời gian thực là t.
 Đồng bộ hóa ngoài: Cho một giới hạn đồng bộ hóa D>0, và nguồn S của
thời gian UTC, | S(t) – C
i
(t) | < D, với i=1, 2, , n và với tất cả thời gian thực t
trong I.
Các đồng hồ Ci là chính xác trong giới hạn D.
 Đồng bộ hóa trong: cho một giới hạn đồng bộ hóa D>0, | C
i
(t) – C
j
(t) | <
D với i, j=1, 2, ,n và với tất cả thời gian thực t trong I.
Các đồng hồ C
i
đồng ý trong ranh giới D.
 Người ta đã đưa ra một số thuật toán để đồng bộ hóa đồng hồ vật lý:
 Thuật toán Cristian.
 Thuật toán Berkeley.
II.3 Đồng hồ logic
 Chúng ta thì quan tâm đến thời gian tương đối giữa các sự kiện (thứ tự của

chúng), định nghĩa mối quan hệ, xảy ra trước ():
 Trên cùng một máy: ab, nếu time(a)<time(b)
 Nếu H1 gửi m đến H2: send(m)  receive(m)
 Nếu ab và bc thì ac.
 Thuật toán Lamport sử dụng mối quan hệ này để cung cấp một thứ tự sự kiện
riêng.
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
9
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
II.4 Thuật toán Lamport - đồng bộ hóa đồng hồ logic
II.4.1 Các ký hiệu
 Một chương trình phân tán được tạo thành bởi tập hợp n tiến trình độc lập và
không đồng bộ P1, P2, ,Pn. Các tiến trình này không chia xẻ một đồng hồ chung.
 Mỗi tiến trình có thể xử lý một sự kiện tự động; khi gửi một thông điệp, nó
không phải đợi việc phân phát hoàn thành.
 Việc xử lý của mỗi tiến trình Pi, sản sinh ra một dãy sự kiện e
i
0
, e
i
1
, , e
i
x
,
e
i
x+1
,
Tập hợp các sự kiện được sản sinh ra bỡi Pi có một tổng thứ tự được xác

định bởi dãy các sự kiện e
i
x
 e
i
x+1
Chúng ta nói rằng e
i
x
xảy ra trước e
i
x+1
Quan hệ xảy ra trước  có tính bắc cầu: e
i
i
 e
i
j
với mọi i<j.
 Các sự kiện xảy ra giữa hai tiến trình đồng thời nói chung không quan hệ,
ngoại trừ hai tiến trình đó có liên quan theo quan hệ như sau:
Đối với mỗi thông điệp m trao đỗi giữa hai tiến trình Pi và Pj, chúng ta có e
i
x
= send(m), e
j
y
= receive(m) và e
i
x

 e
j
y
.
 Các sự kiện trong một sự xử lý phân tán là được sắp xếp riêng biệt.
 Các sự kiện cục bộ là tổng thể được sắp đặt.
 Các sự kiện nguyên nhân là tổng thể được sắp đặt.
 Tất cả các sự kiện khác là không được sắp đặt.
Cho bất kỳ hai sự kiện e
1
và e
2
trong một sự xử lý phân tán, có thể là:
(i) e
1
 e
2
(ii) e
2
 e
1
(iii) e
1
|| e
2
(e
1
và e
2
là đồng thời).

 Ví dụ:
Những sự kiện nào là quan hệ  ? Những sự kiện nào là đồng thời ?
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
10
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
Hình 6 – Thứ tự các sự kiện tại của các tiến trình tại các trạm phát nhận
Những điều kiện đồng hồ:
 Trong một hệ thống các đồng hồ logic, các tiến trình riêng biệt có một đồng
hồ logic mà được áp dụng theo một giao thức.
 Mỗi sự kiện được gán một timestamp (thời gian đánh dấu) trong cách thức mà
thõa mãn điều kiện bền chặt đồng hồ: nếu e
1
 e
2
thì C(e
1
) < C(e
2
).
Trong đó: C(e
i
) là timestamp (thời gian đánh dấu) được gán cho sự kiện e
i
.
 Nếu giao thức thõa mãn các điều kiện theo sau nữa, thì đồng hồ được nói rằng
bền chặt mạnh: nếu C(e
1
) < C(e
2
) thì e

1
 e
2
.
II.4.2 Thuật toán Lamport – Tính giá trị đồng hồ logic
R1:Tất cả các máy (tiến trình - Pi) sử dụng một bộ đếm (đồng hồ - Ci) với giá trị
khởi tạo là 0.
R2: Trước khi xử lý một sự kiện (gửi, nhận hoặc ngắt), Pi xử lý như sau: tăng bộ
đếm và gán cho mỗi sự kiện, như là timestamp (thời gian đánh dấu) của nó.
Ci = Ci + d (d>0, thường d=1)
R3: Mỗi thông điệp mang giá trị đồng hồ của người gửi nó tại thời điểm gửi. Khi
Pi nhận một thông điệp với timestamp (thời gian đánh dấu) C
msg
, nó xử lý như sau:
1.Ci = Max(C
i
, C
msg
)
2.Xử lý R2.
3.Phát thông điệp.
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
11
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
Đồng hồ logic tại bất kỳ tiến trình nào là ngày càng tăng đơn giản.
Hình 7 Các thời gian đánh dấu Lamport (Lamport timestamps)
Hình 8. Ví dụ thời gian logic Lamport
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
12
Trạm 1

Trạm 2
Trạm 3
Trạm 4
0
1
0
0
2
2
3
3
4
5
5
6
7
8
9 10
7
Thời gian vật lý
n
Giá trị đồng hồ.
timestamp
Thông điệp
0
1
2
3
4
6

8
7
Các sự kiện logic đồng thời
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
CHƯƠNG III.
HỆ THỐNG ĐA SERVER THỂ HIỆN GIÁ TRỊ ĐỒNG HỒ
LOGIC TẠI MỖI SERVER
III.1 CÁC CHỨC NĂNG CỦA CHƯƠNG TRÌNH
III.1.1 Phát/nhận thông điệp trên mỗi server
-Chương trình cài đặt cho hệ thống đa server dựa trên cơ sở khái niệm socket
trong Java.
-Mỗi thông điệp phát đi bao gồm:
+Giá trị đồng hồ lôgic của server phát
+Nội dung thông điệp
III.1.2 Giá trị đồng hồ logic theo thuật toán Lamport cho server phát và
server nhận
III.2. GIAO DIỆN DEMO CHƯƠNG TRÌNH
-Server 1:
+Phát/Nhận thông điệp
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
13
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
+Giá trị đồng hồ lôgic:
-Server 2:
+Phát nhận thông điệp:
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
14
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
-Giá trị đồng hồ lôgic:
-Server 3:

HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
15
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
KẾT LUẬN
Kết quả đạt được:
 Tìm hiểu và nắm vững các kiến thức liên quan đến hệ phân tán và lập trình
mạng trên cơ sở nền Java.
 Trình bày rõ thuật toán Lamport đồng bộ hóa thời gian trong hệ phân tán và
đưa ra hướng phát triển ứng dụng
 Cài đặt bài toán thể hiện đa server phát nhận thông điệp và tính toán giá trị
đồng hồ logic tại mỗi server.
Hạn chế và hướng nghiên cứu tiếp theo
 Đi sâu nghiên cứu và phân tích kỹ hơn nữa để phát triển đề tài theo hướng hệ
quản trị cơ sở dữ liệu phân tán.
 Cài đặt chương trình theo hướng thụât toán Lamport cải tiến
 Cải tiến để đảm bảo về sự đồng bộ và gắn bó dữ liệu trên các server.
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
16
Tiểu luận Lập Trình Mạng PGS.TS.Lê Văn Sơn
TÀI LIỆU THAM KHẢO
1. TS.Lê Văn Sơn, Hệ tin học phân tán, nhà xuất bản Đại học quốc gia Tp. Hồ
Chí Minh, 2002.
2. Tài liệu lập trình java core, java-notes
3. Các Website:

 www.aduni.org/courses/systems/courseware/lect_notes/
 www.lcrm.com
HVTH: Nguyễn Tấn Sĩ – Nguyễn Đăng Bảo Phúc Trang
17

×