Theo seitz, hệ phân tán là gì?

Các bộ xử lý trong hệ phân tán thường khác nhau về kích thước và chức năng. Nó có thể bao gồm máy vi tính, trạm làm việc, máy mini, và những hệ thống máy lớn. Các bộ xử lý thường được tham khảo với nhiều tên khác nhau như site, node, computer v.v…. tùy thuộc vào trạng thái làm việc của chúng.

Tóm tắt nội dung chính

Tổng quan về hệ thống phân tán và ứng dụng

👉 Hệ phân tán là tập hợp các máy tính được kết nối với nhau bởi một mạng máy tính va được cài đặt phần mềm hệ phân tán.

👉 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.

👉 Hệ phân tán là một tập hợ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 nhất toàn vẹn.

Như vậy, có thể nói hệ phân tán bao gồm mạng máy tính và phần mềm phân tán

hệ thống phân tán

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

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.

Hệ phân tán là một tập hợ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 nhất toàn vẹn. Như vậy, có thể nói hệ phân tán bao gồm mạng máy tính và phần mềm phân tán.

Hệ thống phân tán bao gồm các máy tính [bao gồm cả các thiết bị khác như PDA, điện thoại di động…] được kết nối với nhau để thực hiện nhiệm vụ tính toán.

Hệ thống phân tán xuất phát từ nhu cầu sử dụng khả năng tính toán tốt hơn và hiệu quả hơn bằng cách kết hợp khả năng tính toán của từng máy tính độc lập, điều đó đã trở thành hiện thực dựa trên những tiến bộ về công nghệ mạng.

Ba yếu tố quyết định tốc độ tính toán trong các máy tính bao gồm: Tốc độ của bộ vi xử lý trung tâm [CPU], bộ nhớ [RAM] và đường truyền trong bo mạch chủ [Bus].

Đối với hệ thống phân tán, một yêu cầu mới quan trọng đã nảy sinh đó là vấn đề trao đổi thông tin giữa các máy tính, thiếu yếu tố này thì nhiệm vụ tính toán trên môi trường phân tán sẽ không thể thực hiện được.

Tốc độ truyền dẫn trong các công nghệ mạng ngày càng tăng đã tạo điều kiện cho sự phát triển các ứng dụng phân tán, các máy tính có thể trao đổi thông tin và chia sẻ dữ liệu với nhau mà không phụ thuộc vào khoảng cách địa lý.

Hệ thống phân tán là hệ thống các thành phần được đặt trên các máy tính mạng, chúng trao đổi thông tin và phối hợp các hoạt động chỉ bằng cách truyền tin báo và người sử dụng cảm giác như là một hệ thống đơn lẻ.

Khái niệm phân tán được thể hiện bởi tính độc lập của từng máy tính nhưng phải phối hợp làm việc với nhau để người sử dụng không có cảm giác các thành phần rời rạc.

Nhìn chung việc xây dựng các ứng dụng phân tán phức tạp hơn nhiều so với các ứng dụng tập trung, trong nhiều trường hợp bắt buộc phải xây dựng các ứng dụng phân tán vì những lý do sau:

✔️ Yêu cầu tính toán phân tán: Ứng dụng chạy trên nhiều máy tính khác nhau nhằm tận dụng khả năng tính toán song song hoặc nhằm mục đích sử dụng khả năng tính toán của các máy tính chuyên dụng.

✔️ Yêu cầu về khả năng xử lý lỗi: Yêu cầu này liên quan tới các hệ thống cần phải đảm bảo an toàn tuyệt đối ngay cả khi có sự cố xảy ra, điều này được thực hiện bằng cách tăng số lần tính toán cho cùng một nhiệm vụ nhằm mục đích kịp thời phát hiện và xử lý lỗi.

✔️ Chia sẻ tài nguyên: Những người sử dụng trao đổi thông tin với nhau thông qua một ứng dụng trên mạng. Mỗi người sử dụng chạy một ứng dụng phân tán trên máy tính của mình và chia sẻ các đối tượng sử dụng.

Một số ứng dụng phải chạy trên nhiều máy tính vì dữ liệu được đặt phân tán trên mạng liên quan đến quyền quản lý và quyền sở hữu dữ liệu: cho phép truy nhập dữ liệu từ xa nhưng không cho phép sao chép để lưu giữ cục bộ.

Trong các hệ thống phân tán, môi trường mạng đóng vai trò quan trọng trong việc phân phát thông tin đến các thành phần và tập hợp kết quả tính toán của các thành phần đó.

Các máy tính kết nối với nhau trên mạng đảm nhiệm chức năng truyền thông cho các ứng dụng, chúng không chia sẻ bộ nhớ cho nhau do đó không thể sử dụng các biến toàn cục để trao đổi thông tin, thông tin trao đổi giữa các máy tính chỉ được thực hiện thông qua cơ chế trao đổi tin báo.

Mạng là tài nguyên chung của hệ thống do đó khi xây dựng hệ thống phân tán cần phải xem xét đến các vấn đề như: Băng thông, các điểm có thể xảy ra sự cố, bảo mật và an toàn dữ liệu, đồng bộ tiến trình. Quá trình triển khai các ứng dụng trong hệ thống phân tán thường gặp một số khó khăn sau:

✔️ Trên mạng có nhiều loại máy tính và thiết bị mạng của nhiều nhà sản xuất khác nhau và các máy tính được cài đặt các hệ điều hành khác nhau.

✔️ Khó tích hợp các phần mềm vì chúng được phát triển trên các ngôn ngữ khác nhau.

✔️ Thời gian phát triển phần mềm lớn do đó thường kéo theo chi phí xây dựng hệ thống cao.

Thực tế việc xây dựng nền tảng cho các hệ thống phân tán vẫn dựa trên mô hình 7 lớp OSI, trong đó 4 lớp thấp [vật lý, liên kết dữ liệu, mạng và lớp giao vận] giải quyết các vấn đề như phát hiện và sửa lỗi, định tuyến…., những vấn đề này thường do hệ điều hành đảm nhiệm.

Tuy nhiên việc áp dụng 3 lớp trên [phiên làm việc, trình diễn và lớp ứng dụng] đã được sử dụng trong các sản phẩm nền của hệ thống phân tán nhằm mục đích xử lý các thủ tục kết nối giữa các thành phần phân tán và thể hiện cấu trú

Tại sao phải phát triển phần mềm phân tán

Nguyên nhân đầu tiên thúc đẩy phần mềm phân tán hình thành là do : 

✔️ Người dùng phân tán [địa lý]

✔️ Dữ liệu phân tán [địa lý]

Sau đó người ta nhận thấy cách phát triển phần mềm phân tán đạt được các hiệu quả như:

✔️ Tính mở, khả chuyển và co dãn

✔️ Khả năng thay đổi phạm vi linh hoạt [quy mô].

✔️ Tính sẵn dùng đạt được cao, ngay cả khi một phần hệ thống bị lỗi.

Đặc biệt sự phát triển không ngừng của các thiết bị di động và siêu di động đã tạo ra các mạng kết nối vô cùng lớn với khả năng xử lý gấp bội, cần phải tận dụng để thực hiện tính toán.

Vì vậy các phần mềm phân tán được phát triển do:

Nhu cầu ứng dụng:

Tích hợp các ứng dụng riêng rẽ đang có: Các phần mềm có sẵn, gắn chặt với thói quen của nhân viên và văn hóa kinh doanh của doanh nghiệp.

Những phần mềm này không dễ dàng có thể bị thay thế bởi phần mềm mới [phần mềm mới chưa chắc đã đảm bảo chất lượng giao dịch]. Do đó xây dựng hệ thống mới phải dựa trên cở sở tích hợp các ứng dụng riêng rẽ đã có.

Tích hợp các nguồn tài nguyên đang có:

✔️ Lưới tính toán: Các lưới tính toán hiện có thì đều có khả năng tích hợp vào hệ thống mà không cần phải xây dựng hoàn toàn lại từ đầu. Nó tốn kém và vi phạm các chính sách an ninh.

✔️ Quản lý dữ liệu: Các thành phần quản lý dữ liệu được tuân theo các quy định an ninh có sẵn. Không dễ chia sẻ và thay thế hoàn hảo bằng một thành phần quản lý dữ liệu mới.

Đưa tin học và các lĩnh vực ứng dụng mới.

✔️ Tích hợp các đối tượng trong cuộc sống thực: Các ứng dụng mới yêu cầu các khả năng kĩ thuật cao, trong đó tính toán phân tán là bắt buộc và phần mềm phân tán là cái cần triển khai.

Khả năng kĩ thuật:

Chi phí và hiệu năng của máy tính và truyền thông: Ngày nay các máy tính đã đạt sức mạnh đủ lớn mà mạng truyền thông [Internet và mạng viễn thông] đạt được khả năng truyền tải vô cùng lớn. Việc thiết kế các phần mềm phân tán là có thể về mặt kĩ thuật.

Ngoài ra các lợi ích có thể có từ phần mềm phân tán là đáng để đánh đổi với việc khai thác mạng máy tính và các phương tiện truyền thông. Do đó khả năng kĩ thuật phát triển phần mềm phân tán là có, với chi phí chấp nhận được.

Khó khăn trong việc phát triển các phần mềm phân tán

Phần mềm phân tán có đặc điểm:

✔️ Nhiều thành phần tham gia với phần cứng, phần mềm không hoàn toàn giống nhau, từ đó có cách giao tiếp khác nhau.

✔️ Chịu ảnh hưởng của đường truyền mạng [băng thông, tỉ lệ lỗi truyền, tính sẵn dùng trong giờ cao điểm], do đó các lệnh truyền dữ liệu chưa chắc đã commit thành công.

✔️ Ràng buộc về thứ tự sự kiện [các kiểu đồng bộ khác nhau]

✔️ Ràng buộc về topology truyền thông [trao đổi thông điệp] của ứng dụng. Do vậy phát triển phần mềm phân tán phức tạp và khó khăn hơn các phần mềm thông thường.

Phần mềm phân tán cũng có vòng đời phát triển, bao gồm cả phần lập kế hoạch, triển khai, kết thúc… Do đó phát triển phần mềm phân tán cũng gặp phải rất nhiều thách thức:

✔️ Quản lý quy trình phát triển – Không lường trước được các thách thức cả về mặt con người và các tính năng mà phần mềm phân tán cần có.

✔️ Khi khai thác phần mềm – Khó quản lý người dùng phân tán và dữ liệu phân tán, việc phát triển phần mềm chỉ có thể control được phần xử lý dữ liệu thôi.

Cụ thể hơn, trong quy trình phát triển phần mềm phân tán, các câu hỏi sau thường không có một câu trả lời toàn vẹn và đầy đủ, từ đó dẫn tới việc dự tính sai chi phí, nguồn lực, thời gian. Từ đó dẫn tới việc phát triển phần mềm phân tán thất bại, gia tăng chi phí và thời gian phát triển:

✔️ Các thành phần có khả năng tương tác với nhau hay không, nếu có thì ở mức độ nào, và ảnh hưởng thế nào tới kiến trúc chung của phần mềm phân tán.

✔️ Việc che dấu người dùng về sự phân tán thực hiện ở mức nào, một phần hay toàn bộ? Từ đó ảnh hưởng thế nào tới kiến trúc phần mềm và các kĩ thuật liên quan.

✔️ Nếu một thành phần của hệ thống hỏng thì có làm cả hệ thống hỏng không? Nếu muốn hệ thống có độ chịu lỗi cao thì phải thực hiện những gì

✔️ Hệ thống có khả năng hoạt động hiệu quả khi số lượng người dùng tang lên hay không? Hiệu năng chung khi bổ sung thêm tài nguyên là như thế nào

✔️ Các thành phần có khả năng đồng thời truy cập tài nguyên và chia sẻ tài nguyên với nhau hay không

✔️ Hệ thống có thể sẵn dùng và dễ dàng thêm thành phần mới vào không

✔️ Hệ thống bảo mật thế nào, ứng xử thế nào với các truy cập không phép và các hành động phá hoại khác

Một số hệ phân tán thường dùng

👉 Một số hệ phân tán thường được sử dụng:

✔️ Hệ thống tính toán phân cụm

✔️ Hệ thống tính toán lưới

✔️ Hê thống xử lý giao dịch

✔️ Hệ thống tính toán khắp nơi

✔️ Hệ thống chăm sóc sức khỏe điện tử

✔️ Hệ thống mạng cảm ứng

👉 Hệ thống tính toán phân cụm là 1 hệ thống máy tính cục bộ bao gồm các máy tính độc lập và một mạng liên kết các máy tính. Một hệ thống tính toán phân cụm với ý nghĩa là toàn bộ các thành phần hệ thống nằm trong một khu vực địa lý hẹp và được quản lý tập trung như một hệ thống thống nhất.

👉 Ưu Điểm: Giá thành của hệ thống nhỏ hơn so với các hệ thống sever tương ứng khác. Sự linh hoạt của cấu hình, số lượng các nút, dung lượng bộ nhớ trên mỗi nút, số lượng bộ xử lý trên mỗi nút , và cấu hình mạng và hàng loạt các tham số khác đều mang tính tùy biến cao.

👉 Các thành phần phần cứng:

✔️ Các thiết bị phần cứng của nút tính toán: Một nút tính toán phải cung cấp chức năng tính toán và chức năng lưu trữ dữ liệu.

✔️ Các thiết bị mạng: Công nghệ mạng thường được sử dụng trong hệ thống phân cụm là Lan và San[System Area NetWork]. LAN chỉ cho phép tạo nên 1 hệ thống có bộ nhớ phân tán. SAN lại hỗ trợ bộ nhớ phân tán chia sẻ cho phép tổ chức một bộ nhớ logic chia sẻ trong bộ nhớ vật lý phân tán trên các nút.

👉 Các thành phần phần mềm:

✔️ Thư viện và môi trường lập trình: o Lập trình song song trong các hệ thống tính toán bó là phức tạp hơn các hệ thống máy tính khác. Hệ thống tính toán có bộ nhớ phân tán, do vậy truyền thông giữa các nút trong quá trình tính toán thường là truyền thông điệp. o Các thư viện truyền thông điệp dành cho hệ thống bó hiện nay có thể là: MPI, PVM…

✔️ Các phần mền quản lý tài nguyên và phân tải:

  • Thư viện và các ngôn ngữ lập trình song son tạo cho người lập trình môi trường lập trình.
  • Phần mềm quản lý tài nguyên và phân tải lại tạo ra một môi trường tính toán hiệu quả và ổn định. 
  • Phân tải là việc phân bổ các tiến trình tính toán trên tài nguyên hệ thống sao cho hiệu năng hoạt động của hệ thống là tối ưu.

Bài viết trên nhằm cho bạn hiểu hệ thống phân tán là gì rồi đúng không nào ? bạn cần thiết kế app xin vui lòng liên hệ :

Chủ Đề