Bài giảng Hệ phân tán - Giới thiệu

Hệ phân tán là gì?

Kiến trúc

Các thách thức

Tổng quan về các nguyên lý và mô hình

Giới thiệu môn học

 

ppt25 trang | Chuyên mục: Cơ Sở Dữ Liệu Phân Tán | Chia sẻ: dkS00TYs | Lượt xem: 6088 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Hệ phân tán - Giới thiệu, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
I. Giới thiệu Hệ phân tán (NW605) Hệ phân tán là gì? Kiến trúc Các thách thức Tổng quan về các nguyên lý và mô hình Giới thiệu môn học Hệ thống phân tán là gì? Định nghĩa của Andrew Tannenbaum Hệ phân tán là một tập hợp các máy tính độc lập mà, đối với người dùng, nó như thể một hệ thống đơn gắn kết. Định nghĩa yếu hơn, gần thực tế hơn Hệ phân tán là một tập hợp các máy tính độc lập được sử dụng một cách kết hợp để thực hiện một tác vụ đơn hoặc để cung cấp một dịch vụ đơn. Hệ thống phân tán là gì? Ví dụ về các hệ phân tán: Tổ hợp các Web server: cơ sở dữ liệu phân tán cho siêu văn bản và tài liệu đa phương tiện Hệ thống file phân tán trong một mạng LAN Dịch vụ tên miền (Domain Name Service - DNS) Cray XT5 & CLE (multiprocessor quy mô lớn) Các ví dụ khác? Ưu điểm của hệ phân tán Chi phí: nếu sử dụng phần cứng thông dụng cho các máy tính thành phần, thu được tỷ lệ giá/hiệu năng tốt hơn Hiệu năng: do sử dụng kết hợp khả năng lưu trữ và xử lí của nhiều nút, có thể đạt được mức độ hiệu năng vượt ra ngoài tầm của các máy tính trung tâm Khả năng mở rộng. Các tài nguyên như khả năng lưu trữ và xử lý có thể được tăng theo cấp số cộng Độ tin cậy. do có các thành phần dư thừa, khi một máy tính hỏng, có thể hệ thống chung vẫn tiếp tục hoạt động bình thường. Tính phân tán cố hữu. Một số ứng dụng như Web đã có tính phân tán một cách tự nhiên. Nhược điểm của hệ phân tán Thành phần mới: mạng. Cần có mạng để kết nối các nút độc lập. Mạng chịu giới hạn về hiệu năng và cũng là một điểm có thể gây thất bại cho hệ thống. Bảo mật: hệ phân tán dễ bị xâm phạm hơn do bao gồm nhiều thành phần hơn Độ phức tạp của phần mềm: phát triển các phần mềm phân tán phức tạp hơn và khó hơn so với phần mềm truyền thống; dẫn tới chi phí cao hơn và khả năng bị lỗi cao hơn 	Khó xây dựng và khó hiểu các hệ thống phân tán. Kiến trúc của hệ thống phân tán Kiến trúc phần cứng Uniprocessor Multiprocessor Multicomputer Kiến trúc phần mềm: Uniprocessor OS Multiprocessor OS Network OS (NOS) Distributed OS (DOS) Middleware Multicomputer Các nút tính toán riêng biệt nối với nhau qua một mạng máy tính. Tính chất: Mỗi nút có tài nguyên riêng (các bộ vi xử lí, bộ nhớ, đĩa...) Nút này không thể truy nhập trực tiếp tài nguyên của nút kia Liên lạc qua mạng Đồng nhất / không đồng nhất (các nút thành phần có kiến trúc vật lí giống nhau hay không) Hệ điều hành phân tán Tính chất: kiến trúc chứa các dịch vụ quan trọng: bộ nhớ phân tán dùng chung, phân công tác vụ giữa các bộ vi xử lý.... tính trong suốt cao, hình ảnh về hệ thống đơn phần cứng đồng nhất Ví dụ: Amoeba, Plan 9, Chorus, Mungi Middleware Tính chất: giao diện lập trình phân tán độc lập với hệ điều hành tăng tính trong suốt (ví dụ:che dấu tính không đồng nhất) cung cấp dịch vụ (ví dụ: naming service, transaction, v.v..) cung cấp mô hình lập trình (ví dụ: các đối tượng phân tán) Middleware Tại sao middleware thông dụng hơn? xây dựng trên các trừu tượng hóa thông dụng về các hệ điều hành mạng (tiến trình và truyền thông điệp) ví dụ RPC, NFS, CORBA, DCOM, J2EE, .NET các ngôn ngữ (hoặc sửa đổi ngôn ngữ) được thiết kế đặc biệt cho tính toán phân tán (vd. Erlang, Ada, Limbo...) Ưu điểm: thường chạy tại không gian người dùng tăng mức độ trừu tượng hóa trong lập trình → đỡ gây lỗi độc lập với hệ điều hành, giao thức mạng, ngôn ngữ lập trình, v.v.. → tính linh hoạt Nhược điểm: có các giao diện rườm rà rắc rối thiếu hiệu quả Hệ phân tán và tính toán song song Tính toán song song: nâng cao hiệu năng bằng cách sử dụng nhiều bộ vi xử lý cho mỗi ứng dụng Hai dạng: Các hệ thống dùng chung bộ nhớ Multiprocessor (nhiều bộ vi xử lý dùng chung 1 bus và một đơn vị bộ nhớ) Hệ điều hành hỗ trợ SMP (symmetric multiprocessing) Đơn giản hơn hệ phân tán Tính mở rộng được không cao Các hệ thống bộ nhớ phân tán Multicomputer (nhiều nút nối với nhau qua mạng) Là hình thức của hệ thống phân tán Chia sẻ nhiều vấn đề được bàn đến trong môn học này Tính mở rộng cao hơn, chi phí thấp hơn Hệ thống phân tán trong ngữ cảnh Mạng: Giao thức mạng, giao thức định tuyến, v.v.. Hệ phân tán: dùng đến các mạng máy tính Hệ điều hành: Quản lý tài nguyên cho các hệ thống đơn Hệ phân tán: quản lý các tài nguyên phân tán Môn học này: Các giải pháp tổng quát cho các vấn đề và thách thức của các hệ thống phân tán Phần mềm hạ tầng cơ sở giúp xây dựng các ứng dụng phân tán Các vấn đề và thách thức căn bản Bản chất phân tán của các hệ phân tán nảy sinh các thách thức sau: Tính trong suốt Khả năng mở rộng Tính phụ thuộc Hiệu năng Tính mềm dẻo Có thể được coi là các mục tiêu hay các tính chất mong muốn của một hệ phân tán Tính trong suốt Che dấu sự tách biệt giữa các thành phần của một hệ phân tán (hình ảnh về một hệ thống đơn nhất) Các hình thức khác nhau của tính trong suốt: Truy nhập: tài nguyên địa phương và ở xa được truy nhập theo cùng kiểu Vị trí: người dùng không nhận biết về địa điểm của các tài nguyên Di cư: có thể chuyển chỗ tài nguyên mà không đổi tên Sao lặp: người dùng không nhận biết về sự tồn tại của nhiều bản sao tài nguyên Thất bại: người dùng không nhận biết về thất bại của các thành phần riêng biệt Tương tranh: người dùng không nhận biết về việc chia sẻ tài nguyên với những người khác. không phải lúc nào cũng được mong muốn. không phải lúc nào cũng đạt được Tính mở rộng được 	Một hệ thống có tính mở rộng được nếu người ta có thể tăng số người dùng và bổ sung tài nguyên mà không gây giảm hiệu năng hoặc tăng độ phức tạp quản trị một cách đáng kể. 	(B. Clifford Neuman) Hệ thống mở rộng theo ba chiều: Kích thước: tăng số người dùng hoặc tài nguyên (quá tải) Địa lý: tăng khoảng cách giữa người dùng và tài nguyên (liên lạc) Quản lý: tăng số lượng các tổ chức tham gia quản lý các phần của hệ thống (rối rắm và đan xen về quản trị) Lưu ý Tính mở rộng được thường xung đột với hiệu năng (hệ thống nhỏ) Tính mở rộng được thường bị khẳng định một cách phiến diện Tính mở rộng được Kĩ thuật mở rộng hệ thống: Phi trung tâm hóa Che dấu độ trễ liên lạc (liên lạc không đồng bộ, giảm liên lạc) Phân tán (dữ liệu và điều khiển) Sao lặp (tạo các bản sao của dữ liệu và tiến trình) Tính mở rộng được Phi trung tâm hóa Tránh tập trung: dịch vụ (vd. tránh dùng một server đơn) dữ liệu (vd. tránh lưu trữ tên tại một thư mục trung tâm) thuật toán (vd. tránh dựa vào thông tin đầy đủ) Về các thuật toán phi tập trung: Không có máy nào chứa thông tin hoàn chỉnh về trạng thái hệ thống Cho phép các nút ra quyết định dựa trên thông tin địa phương Một nút thất bại không làm hỏng thuật toán Không có giả thiết rằng có một đồng hồ toàn cục chung Đồng hồ mỗi máy mỗi khác và khó có thể đồng bộ hóa đồng hồ một cách chính xác phi trung tâm hóa là một công việc khó Tính phụ thuộc Tính phụ thuộc của các hệ thống phân tán là con dao hai lưỡi: các hệ thống phân tán hứa hẹn mức độ sẵn có cao hơn sao lặp Nhưng tính sẵn có có thể suy giảm nhiều thành phần → tiềm tàng nhiều điểm thất bại Tính phụ thuộc đòi hỏi tính nhất quán, bảo mật hệ thống, và khả năng chịu lỗi Hiệu năng hệ thống nào cũng cần cố gắng đạt đến hiệu năng tối đa trong các hệ phân tán, hiệu năng xung khắc trực tiếp với một số tính chất được mong muốn khác: tính trong suốt bảo mật tính phụ thuộc tính mở rộng được Tính mềm dẻo Xây dựng hệ thống từ các thành phần cần thiết Có thể đổi hoặc thêm thành phần/dịch vụ Tính mở của giao diện và đặc tả cho phép cài đặt lại theo đặc tả và mở rộng tính năng Khả năng hoạt động tương giao Tách biệt giữa chính sách và cơ chế các giao diện nội bộ được chuẩn hóa Lỗi thường gặp Các quan niệm sai lầm phổ biến: Mạng đáng tin cậy Mạng an toàn Mọi thứ đều đồng nhất Tô pô mạng không thay đổi Độ trễ bằng 0 Băng thông vô hạn Chi phí vận chuyển bằng 0 Chỉ có một người quản trị hệ thống Nguyên lý Một số nguyên lý quan trọng đằng sau mọi hệ phân tán: Kiến trúc hệ thống (system architecture) Liên lạc (communication) Sao lặp và tính nhất quán (replication & consistancy) Đồng bộ hóa (synchronisation) Tên (naming) Chịu lỗi (fault tolerance) Bảo mật (security) Đây cũng là các chủ đề chính của nội dung môn học Mô hình Hầu hết các hệ thống phân tán được xây dựng dựa trên một mô hình cụ thể Bộ nhớ dùng chung (shared memory) Đối tượng phân tán (distributed objects) Hệ thống file phân tán (distributed file system) Tài liệu dùng chung (shared documents) Cộng tác phân tán (distributed coordination) Tác tử (agents) 3 mô hình sau là chủ đề dành cho các báo cáo thu hoạch Cấu trúc môn học Giới thiệu Kiến trúc hệ thống và liên lạc Sao lặp và tính nhất quán, bộ nhớ dùng chung phân tán Middleware, đối tượng phân tán, publish/subscribe, SOA Đồng bộ hóa và phối hợp Tính phụ thuộc và khả năng chịu lỗi Bảo mật Naming Hệ thống file phân tán (nếu còn thời gian) Tài liệu tham khảo Tài liệu môn học Distributed Systems (COMP9243), Đại học New South Wales, Úc Andrew S. Tanenbaum & Maarten van Steen, Distributed Systems: Principles and Paradigms, 2002, Pearson Prentice Hall George Coulouris, Jean Dollimore & Tim Kindberg: Distributed Systems: Concepts and Design, 3rd ed, 2003, Addison-Wesley Thông tin khác Đánh giá: 01 bài tập (hệ số 0,3)lập trình phân tán dùng Java RMI + CORBA 01 báo cáo thu hoạch (hệ số 0,2)đọc và tóm tắt bài báo khoa học Thi cuối kì (được dùng tài liệu, hệ số 0,5) Gian lận (chép / cho chép bài thi, bài tập, báo cáo) → trượt, không được thi lại 

File đính kèm:

  • pptBài giảng Hệ phân tán - Giới thiệu.ppt
Tài liệu liên quan