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
44 trang |
Chia sẻ: lylyngoc | Lượt xem: 2131 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Các hệ thống thông tin phân tán, để xem tài liệu hoàn chỉnh 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