Bài giảng Các hệ thống thông tin phân tán

Tóm tắt Bài giảng Các hệ thống thông tin phân tán: ...ược chia sẽ cho nhiều người và bởi nhiều người ◦  trong suốt sự cố: sự cố và khôi phục sau sự cố của một tài nguyên ◦  Trong suốt về sự bền vững (Persistence transparency): wtài nguyên phần mềm trong bộ nhớ hay trên đĩa Tính mở (Openness) —  Cung cấp các dịch vụ theo các luật chuẩn mô t...Các máy tính hợp tác với nhau nhờ vào các thông điệp (messages) ◦  Sự điều phối phụ thuộc theo thời gian ◦  Tuy nhiên có những hạn chế trong việc đồng bộ đồng hồ trên hệ thống. —  Sự cố (Failures) ◦  Hệ thống/ các máy tính có thể bị sự cố, mạng có thể bị sự cố ◦  Làm thế nào để khoa... ◦  Ví dụ: CORBA, Java RMI —  Hầu hết các middleware chạy trên Internet Tính mở (Openness) —  Tính mở là đặc tính mà hệ thống có thể được mở rộng hay cài đặt lại bằng nhiều cách khác nhau —  Tính mở đòi hỏi các Interfaces dược công bố (API) —  Sử dụng một interface chuẩn đã đượ...

pdf44 trang | Chia sẻ: havih72 | Lượt xem: 277 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Các hệ thống thông tin phân tán, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Các hệ thống thông tin 
phân tán 
TS. Hồ Bảo Quốc 
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 các hệ thống 
phân tán 
Các kết quả mong muốn đạt 
được sau khóa học 
—  Có khả năng 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 
—  Nắm được 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 và chọn phương pháp 
luận phù hợp cho phát triển một hệ thống phân tán 
—  Hiểu và sử dụng được middleware cho việc thiết kế một hệ 
thống phân tán 
—  Hiểu được sự cần thiết của các chuẩn các nghi thức 
trong tính toán phân tán 
—  Đánh giá và chọn lựa được công nghẹ và nghi thức 
mạng cho một hệ phân tán 
—  Hiểu các vấn đề trong quản lý giao tác phân tán 
—  Nhận thức được các yêu cầu về bảo mật của hệ thống 
phân tán 
Tài liệu tham khảo 
Nội dung môn học 
—  Phần I Các hệ thống phân tán 
—  Phần II Cơ sở dữ liệu phân tán 
DẪN NHẬP 
Định nghĩa 
“A distributed system consists of a collection of 
autonomous computers, connected through a network 
and 
distribution middleware, which enables computers to 
coordinate their activities and to share the resources of 
the system, 
so that users perceive the system as a single, integrated 
computing facility.” 
Wolfgang Emmerich, 1997 
“ Một hệ thống phân tán bao gồm một tập hợp các máy 
tính đọc lập được kết nối với nhau thông qua mạng và 
một lớp phần mềm trung gian (middleware) cho phép 
các máy tính này có thể hợp tác, chia sẽ tài nguyên của 
hệ thống, sao cho người dùng cảm nhận hệ thống như 
một phương tiện tính toán được tích hợp đơn” 
Hệ thống phân tán 
“Một hệ thống phân tán bao gồm một tập 
hợp các máy tính đơn được nối kết với 
nhau thông qua mạng và được trang bị 
một phần mềm quản trị phân tán 
(Middleware)” 
“Middleware cho phép các máy tính hợp 
tác hoạt đọng, chia sẽ tài nguyên của hệ 
thống như : phần cứng, phần mềm, dữ 
liệu” 
“Người dùng cảm nhận về hệ thống phân 
tán như một tiên ích tính toán tích hợp 
mặc dù nó có thể được triển khai trên 
nhiều máy tính khác nhau, tại nhiều vị trí 
khác nhau” 
Coulouris et a, 2005 
Các tính chất của một hệ 
thống phân tán 
◦  Bao gồm nhiều thành phần độc lập 
◦  Các thành phần không được chia sẽ 
cho tất cả các người dùng 
◦  Các tài nguyên có thể không thể truy 
xuất 
◦  Phần mềm thực thi trên các tiến trình 
đồng thời trên các bộ xử lý khác nhau 
◦  Kiểm soát đa điểm 
◦  Sự cố đa điểm 
Wolfgang Emmerich, 1997 
Sự phát triển của công nghệ 
—  Trước nữa nhuwng năm 80 
◦  Hầu hết các tổ chức chỉ có vài hệ thệ 
thống 
–  Thiếu phương tiện để kết nối chúng 
–  Chúng hoạt động độc lập 
◦  Các máy tính thì lớn và giá thành cao 
—  Từ giữa những năm với sự ra đời của 
các bộ vi xữ lý mạnh 
 và  sự xuất hiện của mạng máy tính 
tốc độ cao 
—  Ngày nay: dễ dàng để kết nối số lượng lớn 
máy tính bằng hệ thống mạng tốc độ cao. 
Tại sao cần các hệ thống 
phân tán 
—  Bản chất phân tán của các tổ chức/ xí nghiệp 
—  Cho phép người dùng kết nối với những tài 
nguyên ở xa (remote resources) 
—  Cho phép chia sẽ tài nguyên cho người dùng 
từ xa 
—  Tăng cường sự chia sẽ 
◦  Kinh tế 
◦  Dễ hợp tác – tổ chứ ảo 
◦  Dễ dàng trao đổi 
◦  Thương mại 
—  Tuy nhiên : đặt ra vấn đề an toàn 
Các đặc trưng chính 
—  Trong suốt (transparency) : Che 
dấu sự phân tán vật lý của tài 
nguyên trên mạng 
—  Hệ thống mở (open system ) :Có 
thể dễ dàng mở rộng dựa trên dịch 
vụ được mô tả (cú pháp và ngữ 
nghĩa) theo các luật chuẩn 
—  Mở rộng kích thước/tăng trưởng 
(scalable) : dễ dàng thêm các 
thành phần, người sử dụng .. 
Tính trong suốt (Transparency) 
Định nghĩa 
“sự che dấu ngườii dùng và người lập trình ứng dụng về sự tồn tại 
độc lập của các thành phần của hệ thống, sao cho hệ thống 
được cảm nhận như một tổng thể hơn là tập hợp của các thành 
phân độc lập“ 
Coulouris et al 
Các loại trong suốt: 
◦  Trong suốt truy xuất (Access transparency): sự khác nhau trong biểu diễn dữ 
liệu và phương thức truy xuất tài nguyên 
◦  Trong suốt vị trí (Location transparency): vị trí tài nguyên được lưu trữ 
◦  Trong suốt thay đổi vị trí (Migration transparency): một tài nguyên có thể thay 
dổi vị trí 
◦  Trong suốt tái định vị (elocation transparency): tài nguyên có thể bị di chuyển 
trong khi đang được sử dụng 
◦  Trong suốt nhân bản (replication transparency): các bản của cùng một tài 
nguyên 
◦  Trong suốt truy xuất đồng thời (Concurrency transparency): một tài nguyên có 
thể được chia sẽ cho nhiều người và bởi nhiều người 
◦  trong suốt sự cố: sự cố và khôi phục sau sự cố của một tài nguyên 
◦  Trong suốt về sự bền vững (Persistence transparency): wtài nguyên phần 
mềm trong bộ nhớ hay trên đĩa 
Tính mở (Openness) 
—  Cung cấp các dịch vụ theo các luật chuẩn 
mô tả và cú pháp và ngữ nghĩa của dịch vụ 
—  Các luật được hình thức hóa thành các nghi 
thức (protocols) 
—  Các dịch vụ được đặc tả thông qua một giao 
diện (interfaces) 
◦  Sử dụng ngôn ngữ định nghĩa giao diện(Interface 
Definition Language (IDL) 
◦  Sử dụng ngôn ngữ tự nhiên để mô tả ngữ nghĩa 
◦  Cho phép một tiến trình cần một interface có thể 
nói chuyện với một tiến trình khác cung cấp 
interface đó 
◦  Bản thân các interfaces là đầy đủ và trung tính 
Tính mở (tt.) 
—  Tại sao phải cần tính mở? 
◦  Khả năng kết hợp và khả năng di chuyển 
( Interoperability and portability) 
–  Đòi hỏi tính đầy đủ và trung tính 
◦  Tính linh hoạt 
–  Dễ dàng cấu hình hệ thống với những thành 
phần khác nhau từ những nhà phát triển 
khác nhau 
–  Dễ dàng thêm một thành phần mới 
–  Dễ dàng thay thế một thành phần đang có 
Tính mở (tt.) 
—  Tại sao tính linh hoạt là cần thiết ? 
◦  Đáp ứng sự thay đổi 
–  Thay đổi nghiệp vụ (Business changes) 
–  Thay đổi công nghệ (Technology changes) 
–  Thay đổi điều hành nghiệp vụ (Business drives changes) 
Tính tăng trưởng (scalability) 
—  Tăng trưởng theo nghĩa quản trị 
◦  Làm thể nào tăng trưởng xuyên qua 
các lĩnh vực quản trị độc lập 
◦  Các chính sách mâu thuẩn nhau 
–  Sử dụng (trả chi phí) 
–  Quản trị 
–  Bảo mật 
– Chống lại các tấn công từ lĩnh vực 
mới 
– Chống lại các tấn công từ hệ thống 
phân tán 
Tính tăng trưởng (tt.) 
—  Tăng trưởng theo kích thước 
◦ Giới hạn của kiến trúc tập trung : 
quá tải (bottleneck) 
– Sức mạnh xử lý và lưu trữ không 
thể vượt qua những giới hạn của 
truyền thông 
– Phân tán lại sinh ra sự không 
chắc chắn 
Tính tăng trưởng (tt.) 
—  Tăng trưởng về vị trị địa lý 
◦  Các hệ thống phân tán được thiết kế cho 
mạng LANs dựa trên truyền thông đồng bộ 
(synchronous communication) 
◦  Truyền thông trên mạng WANs vốn không tin 
cậy và hầu hết theo kiểu point-to-point 
–  LANs cung cấp cơ chế truyền thông tin cậy dựa trên 
quảng bá(broadcasting) -- WAN cần các dịch vụ vị 
trí đặc biệt 
◦  Các thành phần tập trung cản trở sự tăng 
trưởng về mặt địa lý 
ĐẶC TRƯNG CỦA HỆ 
THỐNG PHÂN TÁN 
Hệ thống phân tán là gì ? 
“là hệ thống trong đó các thành 
phần phần cứng hay phần mềm 
được phân bổ trên một mạng máy 
tính truyền thông và hợp tác thông 
việc chuyển giao các thông điệp” 
 [Coulouris et al, 2001] 
Tại sao phải dùng HTPT 
— Đơn giản là để chia sẽ tài nguyên 
—  Tài nguyên có thể 
◦  Thành phần phần cứng 
–  Đĩa từ, bộ xử lý, máy in 
◦  Các thực thể phần mềm 
–  Tập tin, cơ sở dữ liệu, đối tượng 
Các vấn đề chính của HTPT 
—  Đồng thời (Concurrency) 
◦  Công việc được thực hiện đồng thời trên nhiều máy tính 
◦  Làm sao quản lý ? 
—  Không có một đồng hồ toàn cục (No global 
clock) 
◦  Các máy tính hợp tác với nhau nhờ vào các thông 
điệp (messages) 
◦  Sự điều phối phụ thuộc theo thời gian 
◦  Tuy nhiên có những hạn chế trong việc đồng bộ đồng 
hồ trên hệ thống. 
—  Sự cố (Failures) 
◦  Hệ thống/ các máy tính có thể bị sự cố, mạng có thể bị 
sự cố 
◦  Làm thế nào để khoang vùng sự cố? 
◦  Làm thế nào để tối thiểu hóa tác hại ? 
Ví dụ HTPT 
—  Internet 
◦  Một chuỗi các máy tính thuộc loại khac nhau 
được kết nối 
◦  Chúng có thể hoạt động cùng nhau thông 
qua việc trao đổi thông điệp 
◦  Bản chất của Internet là một cấu trsuc mở : 
có thể dễ dàng thêm vào các tài nguyên 
mới 
—  Mạng nội bộ (Intranets) 
◦  Một pần của Internet đượ c quản trị riêng biệt 
trong một phạm vi nào đó 
◦  được kết nối với nhau thông qua mạng xương 
sống (backbone) 
Ví dụ HTPT 
—  Mạng di động 
◦  Mobile phone, PDA, Laptop  
◦  Tính toán di động 
Các thuật ngữ chính 
—  Dịch vụ (Service) 
“Một phần tách biệt của một hệ thống máy tính quản trị 
một tập hợp tài nguyên liên quan và cho phép các 
người dùng và các ứng dụng sử dụng các chức năng 
của nó” 
[Coulouris et al, 2001] 
◦  Ví dụ, 
–  Truy xuất các tập tin được chia sẽ thông qua “dịch vụ tập 
tin” (file service) 
–  Gởi tập tin đến máy in thông qua “dich vụ in” (print 
service) 
–  Thanh toán tiền mua hàng thông qua “dịch vụ thanh 
toán”(payment service) 
◦  Trong mỗi trường hợp, chúng ta truy xuất dịch vụ 
thông qua tập hợp các chức năng mà dich vụ đó cho 
phép (interfaces của nó) 
Các thuật ngữ chính (tt.) 
—  Một tiến trình (Process) 
“Một chương trình đang thực thi trên 
một máy tính nối mạng chấp nhận yêu 
cầu từ các chương trình đang thực thi 
trên các máy tính khác để thực hiện 
một dịch vụ và trả kết quả tương ứng” 
 [Coulouris et al, 2001] 
Các thuật ngữ chính (tt.) 
—  Khách – chủ (Client – Server) 
◦  Các thông điệp yêu cầu từ client gởi đến server 
–  client được gọi là yêu cầu (invoke) một tác vụ trên 
server 
–  Toàn bộ sự tương tác giữa client và server được gọi 
là một sự triệu gọi từ xa(remote invocation) 
◦  Một server có thể gởi một yêu cầu đến một server khác 
–  Như vậy một server cũng có thể được coi như một 
client của một server khác 
◦  Thuật ngữ Client hay Server phản ánh vai trò trong 
giao tác thực hiện của tiến trình đang thực thi 
Tính không đồng nhất 
(Heterogeneity) 
—  Tính không đồng nhất liên quan đến 
nhiều thành phần khác nhau 
◦  Mạng (Networks) 
◦  Phần cứng máy tính (Computer hardware ) 
◦  Hệ điều hành (Operating systems) 
◦  Ngôn ngữ lập trình (Programming languages) 
◦  Các cài đặt khác nhau của những người phát triển 
khác nhau 
—  Truyền thông giữa các thành phần của một hệ 
thống không đồng nhất phải thông qua những 
chuẩn thống nhất chung. Đây chính là 
MIDDLEWARE 
MIDLEWARE là gì ? 
—  Middleware là một tầng phần mềm (trừu 
tượng) 
—  Middleware che dấu sự không đồng nhất 
—  Sử dụng nó chúng ta có thể gọi từ xa các 
tài nguyên mà không cần lo lắng chúng ở 
đâu 
—  Các hệ thống trao đổi với middleware thay 
vì trao đổi trực tiếp đến hệ thống khác 
◦  Ví dụ: CORBA, Java RMI 
—  Hầu hết các middleware chạy trên Internet 
Tính mở (Openness) 
—  Tính mở là đặc tính mà hệ thống có thể 
được mở rộng hay cài đặt lại bằng nhiều 
cách khác nhau 
—  Tính mở đòi hỏi các Interfaces dược 
công bố (API) 
—  Sử dụng một interface chuẩn đã được 
mọi người đồng ý và sử dụng 
—  interface là phương tiện để két nối các 
hệ thống khác nhau lại với nhau 
Tính mở (tt.) 
—  Ví dụ: 
◦  Internet và Web? 
–  Các nghi thức truyền thông được công bố, xem 
www.ietf.org 
–  Vì vậy người phát triển có thể sử dụng các nghi thức 
này để viết phần mềm và phát triển phần cứng 
—  Một hệ thống mở 
◦  Các hệ thống mở được đặc trưng bởi các interface 
được công bố của chúng 
◦  Một hệ thống phân tán mở dựa trên một cơ chế truyền 
tin đồng nhất 
◦  Một hệ thống phân tán mở có thể được xây dựng từ 
các thành phần không đồng nhất. Tuy vậy, sự tương 
thích của các chuẩn được công bố phả được bảo đảm 
Interfaces 
—  Interfaces 
A 
system 
A 
system 
A 
system 
Các hệ thống (phần mềm và phần cứng) có thể khác nhau vậy làm sao 
chúng có thể kết nối với nhau ? 
A network 
A network 
Interfaces 
Interfaces: dựa trên những chuẩn đã được thống nhất 
A 
system 
Phát triển hệ thống dựa 
trên các interface 
Một interface được gán kết 
vào một interface khác khớp 
với nó 
Interfaces 
Sau đó chúng ta có thể kết nối hệ thống một cách dễ dàng 
A 
system 
A 
system 
A network 
A network 
Một cấu hình kết 
nối 
Một cấu hình kết nối 
khác 
Interfaces 
!! CHÚ Ý!! Các interface không cần tất cả giống!! 
A 
system 
A network 
One configuration 
Chúng chỉ cần khớp với nhau để có thể kết nối được 
Sự bảo mật (security) 
—  Có ba loại bảo mật phải xem xét: 
◦  Tính bí mật (Confidentiality): bảo vệ 
chống lại các cá thể không được pháp 
◦  Tính sẳn sàng (Availability): bảo vệ 
chống lại các truy xuất tài nguyên 
◦  Tính nhất quán (Integrity): bảo vệ 
chống lại sự hư hại 
Tính bảo mật (tt.) 
—  Xét một truyền thông giữa Client và Server 
—  Chúng ta cần làm gì để bảo mật? 
◦  Chúng ta không chỉ cần bảo mật thông điệp mà, 
–  Chúng ta cũng cần xem xét người gởi và người nhận có 
đúng không 
–  Chúng ta cũng cần bảo đảm nội dung thông điệp không bị 
thay đổi 
–  Chúng ta cũng cần bảo đảm rằng các thông điệp không 
được phát lại 
–  Và nhiều thứ khác.. 
—  Kỹ thuật mã hóa có thể cung cấp khả năng để 
bảo mật. 
Tính tăng trưởng (Scalability) 
—  Một hệ thống được gọi là có tính tăng trưởng nếu nó 
vẫn hoạt động hiệu quả khi tăng tài nguyên và sử sử 
dụng 
—  internet là một hệ thống tăng trưởng kích thước đáng 
ngạc nhiên: 
Computers Web servers 
1979, Dec 188 0 
1989, Dec 130,000 0 
1999, Dec 56,218,000 5,560,866 
2003, Jan 171,638,297 35,424,956 
[Coulouris et al, 2005] 
Computers in the Internet 
Tính tăng trưởng (tt.) 
—  Các thách thức chính: 
◦  Kiểm soát chi phí của các tài nguyên vật lý 
◦  Kiểm soát sự mát hiệu năng hệ thống 
◦  Ngăn ngừa các tài nguyên phần mềm chạy 
hết công suất 
◦  Tránh hiện tượng nghẽn cổ chai (bottleneck) 
Kiểm soát sự cố (Failure 
handling) 
—  Sự cố là gì? 
◦  Một sự cố gây nên chương trình bị treo, thao 
tác bị dừng lại và sinh ra lỗi 
—  Trong một hệ phân tán, một sự cố là sự 
cố thành phần 
◦  Nó ảnh hưởng đến một vài tài nguyên và một 
phần của hệ thống phân tán 
◦  Các phần khác của hệ thống vẫn hoạt động 
◦  Điều này có thể dẫn đến sự không nhất quán 
giữa các phần 
Kiểm soát sự cố (Failure 
handling) 
—  Phát hiện sự cố 
◦  Một vài sự cố có thể được phát hiện 
(checksums, etc.) 
◦  Một vài sự cố không thể phát hiện (internet 
server crashes) 
◦  Chúng ta cần một kế hoạch để quản lý tất cả 
các loại sự cố 
—  Che dấu sự cố 
◦  Một vài sự cố có thể được che dấu (thông 
thông điệp không thẻ đến được người nhận có 
thể được gởi lại, một RAID arrays lưu trữ các 
bản sao dữ liệu, etc.) 
Quản lý sự cố (Failure 
handling) 
—  Khả năng chịu lỗi 
◦  Chúng ta có thể chịu lỗi và thông báo đến tiến trình và 
người dùng 
◦  Chúng ta cần chỉ ra rõ ràng chúng ta xử lý thế nào 
◦  Làm thế nào chúng ta có thể tái xây dựng lại sau sự cố 
—  Sự dư thừa 
◦  Một phương pháp là thông qua sự dư thừa ???? 
(redundant components) 
◦  Ví dụ, DNS replications, multiple routes, database 
replicata’s 
◦  Nhưng nó lại có vấn đề về tính nhất quán của các dịch 
vụ được nhân bản này 
◦  Làm thế nào chúng ta bảo đảm tính đúng đắn? 
Đồng thời (Concurrency) 
—  Truy xuất vào cùng một tài nguyên 
từ nhiều tiến trình khác nhau cùng 
một lúc 
—  Sử dụng khái niệm giao tác 
—  Lập lich cho các giao tác 

File đính kèm:

  • pdfbai_giang_cac_he_thong_thong_tin_phan_tan.pdf