Các hệ thống thông tin phân tán

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

pdf44 trang | Chia sẻ: lylyngoc | Lượt xem: 2153 | Lượt tải: 4download
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
Tài liệu liên quan