› 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, và › 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