You are on page 1of 47

Các hệ thống phân tán

Nội dung môn học


› Chương 1: Tổng quan về hệ phân tán
› Chương 2: Kiến trúc các hệ phân tán
› Chương 3: Tiến trình
› Chương 4: Truyền thông
› Chương 5: Naming
› Chương 6: Đồng bộ hoá
› Chương 7: Nhất quán và nhân bản
› Chương 8: Tính chịu lỗi
› Chương 9: An toàn và an ninh
Đánh giá môn học
› 10% điểm thường xuyên
› 20% thảo luận, kiểm tra
› 70% thi kết thúc học phần (báo cáo
bài tập nhóm)
Tài liệu tham khảo
› Tài liệu chính: Andrew S.Tanenbaum
& Maarten Van Steen, Distributed
Systems Principles and Paradigms
2nd, Prentice Hall, 2006.
› Tài liệu tham khảo:
–[1] George Coulouris, Jean Dollimore, Tim
Kindberg, Gordon Blair, Distributed Systems
Concepts and Design 5th , Addison-Wesley, 2012.
–[2] Nguyễn Xuân Anh, Bài giảng Hệ thống phân
tán, Khoa Công nghệ thông tin, Học viện Bưu
chính viễn thông.
Mục tiêu môn học
› Cung cấp kiến thức về các hệ thống
thông tin phân tán trong tổ
chức/doanh nghiệp như kiến trúc, các
chuẩn, các mô hình, công nghệ thiết
kế và triển khai các hệ thống phân tán
Kết quả đạt được
› Phân tích ngữ cảnh ứng dụng và lĩnh vực
ứng dụng của các hệ thống phân tán
› Các kiến trúc khác nhau của các hệ thống
phân tán
› Thiết kế các giải pháp phân tán
› Áp dụng middleware cho thiết kế hệ thống
phân tán
› Đánh giá và lựa chọn công nghệ, giao thức
mạng cho hệ phân tán
› Quản lý giao dịch phân tán
› Các vấn đề về bảo mật
Chương 1: Tổng quan về
hệ phân tán
Nội dung
› Định nghĩa
› Các đặc trưng của hệ phân tán
› Các khái niệm phần cứng
› Các khái niệm phần mềm
› Mô hình client – server
Định nghĩa hệ phân tán
› Định nghĩa 1: Hệ phân tán là tập hợp các
máy tính tự trị được kết nối với nhau bởi
một mạng máy tính và được cài đặt phần
mềm hệ phân tán.
› Định nghĩa 2: Hệ phân tán là một hệ
thống có chức năng và dữ liệu phân tán
trên các trạm (máy tính) được kết nối với
nhau bởi một mạng máy tính.
› Định nghĩa 3: Hệ phân tán là một tập các
máy tính độc lập giao tiếp với người
dùng như một hệ thống thống nhất, toàn
vẹn.
Định nghĩa hệ phân tán
Các đặc điểm
› Về mặt phần cứng: các máy tính phải
độc lập với nhau
› Về mặt phần mềm: trong suốt đối với
người sử dụng
Phân loại hệ phân tán
› Trước đây, hệ phân tán được chia thành
ba loại: hệ điều hành hệ phân tán, cơ sở
dữ liệu hệ phân tán và các hệ thống tính
toán hệ phân tán
› Ngày nay, hệ phân tán được phân chia
như sau:
– Hệ phân tán mang tính hệ thống: hệ điều hành phân
tán.
– Hệ phân tán mang tính ứng dụng: các hệ thống
truyền tin phân tán.
Ví dụ về hệ phân tán
› Hệ thống mạng máy tính của trường
học
› Nguyên tắc làm việc của một công ty
trong quá trình xử lý đơn hàng
› WWW
Ứng dụng của hệ phân tán
› Cung cấp những thuận lợi cho việc
tính toán đa mục đích đến những
nhóm người dùng, và
› tự động hóa công việc ngân hàng và
hệ thống truyền thông đa phưong tiện,

› ngoài ra chúng còn bao quát toàn bộ
những ứng dụng thưong mại và kỹ
thuật
Các đặc trưng cơ bản của hệ
phân tán
› Kết nối người sử dụng với tài nguyên
› Tính trong suốt.
› Tính mở (openess)
› Tính co dãn (scalability)
› Tính chịu lỗi (fault tolerance)
› Tính an toàn bảo mật
Các đặc trưng cơ bản của hệ
phân tán (t)
› Chia sẻ tài nguyên là một đặc tính cơ
bản của hệ phân tán, nó là cơ sở cho
những đặc tính khác và ảnh hưởng
đến kiến trúc phần mềm có sẵn trong
các hệ phân tán. Các nguồn tài
nguyên có thể là mục dữ liệu, phần
cứng và các thành phần của phần
cứng
Các đặc trưng cơ bản của hệ
phân tán (t)
› Một hệ phân tán được gọi là trong
suôt nêu nó có khả năng che dấu tính
rời rạc và những nhược điểm có thể
đối với người sử dựng cuối và người
lập trình ứng dụng. Có các dạng trong
suốt sau:
Các đặc trưng cơ bản của hệ
phân tán (t)
› - Truy nhập (Access): Ẩn cách thể hiện
dữ liệu và phương pháp truy nhập.
› - Vị trí (Location): Ẩn nơi lưu trữ thông
tin.
› - Di chuyển (Migration): Ẩn quá trình
chuyển vị trí lưu trữ dữ liệu
› - Đặt lại vị trí (Relocation): Ẩn quá trình
di chuyển dữ liệu mà không làm gián
đoạn hoạt động của người sử dụng.
Các đặc trưng cơ bản của hệ
phân tán (t)
› - Nhân bản (Replication): Che giấu việc
tạo ra bản sao dữ liệu
› - Tương tranh (Concurrency): Che giấu
việc chia sẻ tài nguyên cho nhiều người
sử dụng
› - Lỗi (Failure): Che giấu lỗi và phục hồi
tài nguyên
› - Bền bỉ (Persistence): Che giấu tài
nguyên phần mềm được tải vào bộ nhớ
hay ở trên ổ đĩa
Tính mở (openness)
› Hệ phân tán được gọi là mở nếu nó
cung cấp các dịch vụ theo các quy tắc
chuẩn mô tả cú pháp và ngữ nghĩa
của dịch vụ đó.
› Thông thường trong hệ phân tán các
dịch vụ thường đặc tả qua các giao
diện bằng ngôn ngữ đặc tả giao diện
(Interface Definition Language- IDL).
Tính mở (openness)
› Tương thích (interoperability): các cài
đặt của các hệ thống hoặc thành phần
hệ thống từ các nhà sản xuất khác
nhau có thể làm việc với nhau thông
qua sự tương thích.
› Khả chuyển (portability): nhờ tính khả
chuyển mà một ứng dụng được phát
triển cho hệ phân tán A có thể thực
hiện không cần thay đổi gì trên một hệ
phân tán B khác, với điều kiện được
cài đặt cùng giao diện như A
Tính co dãn (scalability)
› Dễ bổ sung người sử dụng và tài nguyên
hệ thống
› Khi hệ thống thay đổi quy mô về mặt địa
lý dẫn đến sự thay đổi về vị trí địa lý của
người sử dụng và các tài nguyên.
› Hệ thống có thay đổi quy mô về quản trị.
Nếu hệ phân tán có tính co giãn thường
ảnh hưởng đến hiệu năng của hệ thống
(hiệu năng của hệ thống là hiệu quả
năng lực hoạt động của đối tượng).
Vấn đề của tính co dãn
› Nếu hệ thống cần phải mở rộng thì cần
phải giải quyết rất nhiều vấn đề. Đầu tiên
xem xét việc mở rộng theo kích thước.
Nếu nảy sinh vấn đề tăng số lượng
người sử dụng và tài nguyên chúng ta
thường mắc phải hạn chế liên quan đến
các dịch vụ tập trung, dữ liệu và thuật
toán.
› Khi tăng số lượng người sử dụng thì
server có thể trở thành điểm yếu của hệ
thống.
Công nghệ co dãn
› Có 3 công nghệ chính để mở rộng hệ
thống:
–Rút ngắn thời gian đợi,
–phân tán
–sao chép (replication)
Công nghệ co dãn (t)
› Rút ngắn thời gian
– được sử dụng trong trường hợp mở rộng về mặt
địa lý. Ý tưởng của nó là hạn chế tối đa thời gian
chờ đối với những trả lời từ server ở xa.
› Ví dụ:
– Asynchronous communication (ví dụ AJAX)
– Hạn chế khối lượng thực hiện trên server bằng
cách san sẻ công việc cho client.
Công nghệ co dãn (t)
› Phân tán: đòi hỏi phải chia nhỏ các
thành phần ra và phân tán chúng ở
các nơi khác nhau trong hệ thống
› Ví dụ:
– Hệ thống DNS
Công nghệ co dãn (t)
› Sao chép: Một trong các vấn đề khi
mở rộng hệ thống đó là giảm hiệu xuất
làm việc của hệ thống => ứng dụng
sao chép giữa các phần tử của hệ
thống.
› Sao chép không chỉ làm tăng khả
năng truy cập của hệ thống nó còn
cho phép cân bằng tải giữa các thành
phần của hệ thống
Các khái niệm phần cứng
› Các loại máy tính có chia sẻ bộ nhớ
(Shared memory): các loại máy đa xử
lý (multiproccessor).
› Các máy tính không chia sẻ bộ nhớ
(Private memory): các hệ thống
multicomputers
Các khái niệm phần cứng (t)
› Multiprocessors chi có một không gian
địa chỉ duy nhất được sử dụng cho tất
cả các bộ vi xử lý.
› Trong hệ thống Multicomputers, mỗi
máy tính sử dụng bộ nhớ của mình.
Multiprocessors
› Tất cả bộ vi xử lý đều có khả năng
truy cập vào bộ nhớ chung
› Hệ thông multiprocessors liên kết theo
kiều bus được tạo thành bởi một vài
bộ vi xử lý được kết nối với nhau bởi
panel chung và thông qua nó là bộ
nhớ dùng chung, cấu hình đơn giản
nhất đó là panel với bus hay main
board, ở đó đặt các bộ vi xử lý và bộ
nhớ dùng chung.
Multiprocessors (t)
› Do chúng dùng chung một bộ nhớ duy
nhất, khi bộ vi xử lý A ghi 1 từ vào bộ
nhớ, còn bộ nhớ B khoảng
microsecond sau đó đọc từ bộ nhớ thì
nó sẽ nhận được nội dung được ghi
vào đó từ bộ nhớ A
› Bộ nhớ mang đặc trưng thống nhất
(coherent), vấn đề ở chỗ nếu không
gian bộ nhớ này được tạo thành bởi 4
hay 5 processor thì bus sẽ trở nên quá
tải và hiệu xuất làm việc sẽ đi xuống
trông thấy.
Multiprocessors (t)
› Giải pháp được đặt ra là đặt vào giữa
processor và bus một bộ nhớ đệm
(cache memory) ở bộ nhớ đệm này sẽ
lưu thông tin được truy cập thường
xuyên nhất.
› Tất cả các yêu cầu đều được xử lý
thông qua bộ nhớ đệm này. Nếu các
thông tin yêu cầu nằm trên bộ nhớ
đệm thì bộ vi xử lý sẽ sử dụng thông
tin trên bộ nhớ đệm này mà không cần
thông qua bus.
Multiprocessors (t)
› Vấn đề khi sử dụng cache?
Multiprocessors (t)
› Vấn đề của hệ thống multiprocessors?
Multicomputers
› Khác với hệ multiprocessor, xây dựng
hệ multipcomputer là tương đối dễ
hơn. Mỗi bộ vi xử lý liên kết trực tiếp
với bộ nhớ của riêng mình, vấn đề còn
lại là - liên kết giữa các bộ vi xử lý với
nhau
Các khái niệm phần mềm
› Phần mềm sẽ quyết định hệ thống đó
sẽ có hành động nào trên thực tế
› Các hệ thống phân tán cũng giống
như các hệ điều hành truyền thống
– Quản lý tài nguyên
– Che giấu tính phức tạp và các môi trường không
đồng đều của phần cứng
Distributed OS
› Là hệ điều hành cho các hệ
multiproccessor và các hệ
multicomputer.
› Mục tiêu là ẩn giấu và cung cấp các
dịch vụ quản trị tài nguyên.
› Đặc điểm là các dịch vụ có thề được
thực hiện bởi các lời triệu gọi từ xa.
Multicomputer Operating
Systems
Network OS
Middleware
Mô hình client – server
Tổng kết
› Hệ phân tán bao gồm các máy tính tự trị
hoạt động cùng nhau xuất hiện như một
hệ thống đơn
› Một hệ phân tán phải kết nối người dùng
đến tài nguyên và ẩn đi sự phân tán vật
lý của tài nguyên, có tính mở và khả
năng mở rộng
› Một HĐH phân tán quản lý phần cứng đa
bộ xử lý và đa máy tính động nhất,
không hỗ trợ các hệ thống tự trị, được
xem như mọt hệ thống đơn từ quan điểm
người dùng
Tổng kết (t)
› Hệ điều hành mạng kết nối các máy tự
trị, người dùng có thể sử dụng các dịch
vụ cục bộ, không được xem như một hệ
thống đơn tư quan điểm người dung
› Các HPT hiện đại nhìn chung được xây
dựng dựa trên một lớp phần mềm phụ
trợ gọi là middleware, bên trên một HĐH
mạng đe an đi tính không đồng nhất và
bản chất phân tán của các may tính.
› Tổ chức bên trong của một HPT đóng
vai trò quan trọng. Mô hình client-server
được ứng dụng rộng rãi trong hệ phân
tẩn

You might also like