You are on page 1of 47

Hệ thống Phân tán

Distributed Systems
Khóa học
 Mục tiêu
 Trình bày được
 Tổng quan chung về hệ thống phân tán: khái niệm, tiếp cận kiến trúc
 Một số vấn quan trọng cần giải quyết trong hệ thống phân tán: định danh, đồng bộ, ...
 Một số hệ thống như RMI, CORBA, SOA
 Vận dụng trong các vấn đề thiết kế hệ thống
Đề cương
 $ 1: Tổng quan về các hệ thống phân tán
 Khái niệm
 Tiếp cận kiến trúc
 $ 2: Các vấn đề cơ bản trong hệ phân tán
 Truyền tin
 Định danh
 Đồng bộ,...
 $ 3: Các công nghệ và cách tiếp cận phát triển các hệ thống phân
tán
 RMI
 SOA
 Tài liệu

[1] G. Coulouris, J. Dollimore, T. Kinberg, G. Blair (2012), Distributed systems:


Concept and Design, 5th Edition, Addison-Wesley
[2] N.M. Josuttis (2007), SOA in Practice – The Art of Distributed System
Design, O’Reilly
[3] A. S. Tanenbaum, M. V. Steen (2007), Distributed Systems: Principles and
Paradigms, 2nd Edition, Prentice-Hall
[4] B. Burns (2018), Designing Distributed Systems: Patterns and Paradigms
for Scalable, Reliable Services, O’Reilly
I. Tổng quan
Hệ thống Phân tán
I.1 Khái niệm
Hệ thống (tính toán) phân tán
 Hệ thống gồm nhiều phần tử nằm trên các máy tính khác nhau
(độc lập) được nối mạng, kết nối và phối hợp bằng truyền thông
điệp - Thể hiện đối với người sử dụng - là một hệ thống

 Không chia sẻ bộ nhớ


 Mỗi máy tính có HĐH riêng
 Phức hợp
Tại sao hệ thống phân tán
 Hiện nay có rất nhiều hệ thống máy tính
 CPU: không thể tăng xung nhịp lên mãi
 Chúng ta vẫn có thể "nhồi nhét" thêm các transitor vào CPU
 Kết quả là
 các hệ thống đa lõi
 các hệ thống phân tán

 Chẳng hạn Internet - là một hệ thống phân tán


Tại sao hệ thống phân tán
 Mặc dù phức tạp hơn nhiều hệ thống tập trung nhưng các hệ thống
phân tán vẫn được quan tâm nghiên cứu, xây dựng

 Yêu cầu tính toán:


 tăng năng lực tính toán
 Yêu cầu chịu lỗi
 hệ thống vận hanh ngay cả khi có sự cố
 Yêu cầu chia sẻ tài nguyên
 các người dùng chia sẻ, trao đổi thông tin với nhau (qua ứng dụng chạy trên
mạng)
Một số đặc điểm của hệ phân tán
 Không chia sẻ bộ nhớ
 Mỗi máy tính có HĐH riêng
 Phức hợp: đa dạng chủng loại thiết bị, kết nối truyền thông, ...

 Dẫn đến một số điểm đặc thù


 Tính tương tranh
 Không đồng bộ đồng hồ
 Sự cố, lỗi độc lập
 Thể hiện ra ngoài như một hệ thống
 che dấu các tổ chức nội bộ, truyền thông nội bộ
 cung cấp giao tiếp/giao diện chung
 Dễ dàng mở rộng
 thêm bớt máy tính
 Tính sẵn sàng cao
 Một nút gặp sự cố => các nút khác đảm nhiệm công việc
 Hỗ trợ bởi nền tảng lớp giữa
 Môi trường mạng trong hệ phân tán: vai trò quan trọng
 Không chia sẻ bộ nhớ mà trao đổi qua mạng => do đó cần giải
quyết nhiều vấn đề
 Truyền thông điệp
 Băng thông
 Bảo mật
 Đồng bộ
Một số khó khăn thách thức
 Các thiết bị khác nhau: kiến trúc, nhà sản xuất, ...
 Khó tích hợp phần mềm: nền tảng khác nhau, nhà phát triển
 Chi phí
Một số xu hướng hiện nay
Mạng lan tỏa và Internet
 Mạng Internet hiện nay:
 Kết nối rất nhiều các mạng nhiều loại công nghệ khác nhau (...) => mạng trở
thành tài nguyên lan tỏa (pervasive), có thể kết nối bất kỳ lúc nào, ở bất kỳ
đâu
Điện toán Di động và điện toán phổ cập
 Sự tiến bộ của công nghệ viễn thông, mạng kh dây và thiết bị ->
sự bùng nổ các thiết bị di động kết nối HT phân tán
 laptop, mobile
 wareable , - IoT
 Điện toán phổ cập:
 liên quan khai thác năng lực của
rất đa dạng các thiết bị tính toán
nhỏ gọn, chi phí thấp hiện diện
trong môi trường người dùng:
home, office, ...
 sự phổ biến các thiết bị điện toán
 chỉ hữu ích khi chúng được kết nối với nhau
Điện toán phân tán trở thành dịch vụ tiện ích
 Các dịch vụ đám mây

 XAAS: SAAS, IAAS, PAAS


Ví dụ về hệ thống phân tán
Lets say you were wondering what
President Trump is upto today … ?!?
... wonder what the secret is of his amazing hairdo! ..
Remember IP...
hosts.txt

www.google.com
66.233.169.103
www.cmu.edu 128.2.185.33
www.cs.cmu.edu
128.2.56.91

...

From: 128.237.206.206
To: 66.233.169.103
<packet contents>
The Google Example
 Nhập URL: www.google.com
 Nhưng máy tính - theo địa chỉ...
 Dịch vụ tên - Naming! => “Domain Name System”

 Ban đầu: hosts file trên máy cục bộ


 Nhưng hiện nay: nhiều triệu domains...
Domain Name System
. DNS server
` Uni DNS server
who is www.google.com?
ask the .com guy... (here’s his IP)
who is www.google.com?
` `ask the google.com guy... (IP).com DNS server
www.google.com is 66.233.169.103
Decentralized - admins update own domains without
` domains
coordinating with other who is www.google.com?
Scalable - used for hundreds of millions of domains
66.233.169.103

Robust - handles load and failures google.com


well DNS server
But there’s more...

Which google
datacenter is
128.237.206.206
who is www.google.com?
closest to?

Is it too busy?
128.237.206.206 `
Search! 66.233.169.99

google.com DNS server


A Google Datacenter
How big? Perhaps one million+ machines

but it’s not that bad...


usually don’t use more than 20,000 machines to
accomplish a single task. [2009, probably out of
date]
Search for “Trump
hairdo”
Front-end
slide from Jeff Dean, Google
Front-end
Split into chunks:
Replicate:
make single
Handle load
queries faster
i1 i2 i3 i1 i2 i3 i1 i2 i3
i4 ... i4 ... i4 ...

GFS distributed filesystem Replicated + Consistent + Fast


How do you index the web?
 Tải bản sao trang web - theo thời gian
 Chỉ mục

There are over 1 trillion unique URLs


Billions of unique web pages
Hundreds of millions of websites
30?? terabytes of text
=
 Crawling -- download those web pages
 Indexing -- harness 10s of thousands of machines to do it
 Profiting -- we leave that to you.

 “Data-Intensive Computing”
MapReduce / Hadoop

Data Why? Hiding details of programming 10,000


Computers
Chunks machines!

Programmer writes two simple functions:


Sort
map (data item) -> list(tmp values) Storage
reduce ( list(tmp values)) -> list(out values)
...
MapReduce system balances load, handles
failures, starts job, collects results, etc.
Data Data
Storage
Transformation Aggregation
Xử lý yêu cầu tìm kiếm liên quan đến:
 Hàng trăm DNS servers
 Các lớp giao thức - Protocols on protocols on protocols
 Mạng Internet - định tuyến - toàn cầu
 Hàng trăm, hàng nghìn máy chủ tìm kiếm
 ... để tìm được kết quả cho truy vấn "what’s the deal with Trump’s
hair! "
I.2 Phân loại HT Phân tán
Hệ thống điện toán phân tán
HT phân tán thường sử dụng trong tác nghiệp yc hiệu năng cao

 Hệ thống điện toán cụm - cluster


 Các máy tính cùng loại OS
 Kết nối mạng cục bộ: ổn định, tốc độ cao

 Thường có nút master:


quản lý cụm, quản lý công việc, giao tiếp client
 Nút tính toán:
phần mềm/thư viện thực thi song song
Hệ thống điện toán phân tán
 Hệ thống điện toán lưới - grid computing
 không yc các nút đồng nhất => có thể khác kiến trúc, OS
 khác vùng quản trị - các cơ quan tổ chức khác nhau

Thường có các lớp


 Ứng dụng (App): ứng dụng vận hành
 Thu thập (Collective): xử lý yc truy cập nh tài nguyên
 Tài nguyên: QL tài nguyên đơn lẻ
 Kết nối
 Kết cấu (fabric)
Hệ thống thông tin phân tán
 Ứng dụng mạng có quy mô lớn
 Từ mô hình client-server
 Các server cần phối hợp trao đổi dữ liệu
 => Từ đó dẫn đến tích hợp ứng dụng EAI
Hệ thống lan tỏa phân tán
 Hệ tính toán phân tán & HTTT phân tán:
 các nút trong hệ phân tán liên kết trong mạng ổn định
 Nhưng khi xuất hiện thiết bị di động, nhúng,.. => tính không ổn định
là mặc nhiên cần quan tâm giải quyết
 Các thiết bị có đặc tính
 vị trí không ổn định & kết nối không dây => hệ thống lan tỏa
(Distributed pervasive system)
 không kiểm soát nhất quán tập trung - mà do chủ sở hữu quy định hoặc thiết
bị tự thiết lập cấu hình "phù hợp"
Hệ thống lan tỏa phân tán
 Nguyên tắc thiết kế áp dụng để lựa chọn đc cấu hình chính xác:
 Bao quát thay đổi ngữ cảnh: thiết bị cần liên tục nhận biết môi trường & sự
thay đổi
 Cung cấp giao diện cấu hình
 Tự động nhận biết chia sẻ tài nguyên
I.3 Các mục tiêu khi thiết kế
hệ thống phân tán
G1: Tài nguyên
G2: Tính trong suốt
G3: Tính mở
G4: Khả năng mở rộng quy mô
G1: Tài nguyên
 Hỗ trợ người sử dụng truy cập, khai thác tài nguyên ở xa
 printers, data files, web pages, CPU
 Và khả năng chia sẻ tài nguyên (có kiểm soát)

 Giảm chi phí khi chia sẻ tài nguyên đắt giá


 Tăng hiệu năng
 khai thác CPU, chia sẻ công việc & thực hiện song song,...

 Chú ý: chia sẻ tài nguyên => thách thức bảo mật


G2: Trong suốt (transparency)
 Che dấu các chi tiết nội bộ của hệ thống phân tán
 Thân thiện hơn với người sử dụng
 Thể hiện ra ngoài như một hệ thống duy nhất
 Người sử dụng, WD truy cập như tài nguyên nội bộ
G2: Trong suốt (transparency)
 Một số đặc điểm trong suốt
Trong suốt về Mô tả
Access Ẩn cách thể hiện dữ liệu và phương pháp truy nhập
Location Ẩn nơi lưu trữ thông tin
Migration Ẩn quá trình chuyển vị trí lưu trữ dữ liệu
Replication Che giấu việc tạo ra bản sao dữ liệu
Concurrency Che giấu việc chia sẻ tài nguyên cho nhiều người sử
dụng
Failure Che giấu lỗi và phục hồi tài nguyên
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
G3: Tính mở (Openess)
 Hệ thống mở: cung cấp tài nguyên, dịch vụ tuân theo các nguyên
tắc tiêu chuẩn, tiêu chuẩn mở
 Sử dụng các mô tả giao tiếp, ngôn ngữ mô tả chuẩn hóa
G3: Tính mở (Openess)
Tính mở giúp
 Khả năng tương tác
 Khả năng chuyển đổi
 Khả năng mở rộng
G4: Khả năng mở rộng (Scalability)
Mở rộng theo các chiều khác nhau
 về kích cỡ/quy mô
 về địa lý
 về số lượng tổ chức

You might also like