Giới thiệu sơ lược về hệ thống phân tán
Bài đăng này đã không được cập nhật trong 6 năm
I. Tổng quan về hệ thống phân tán
- Hệ phân tán là tập ợ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.
II. 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:gợi ý
- 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ư là:
- 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.
III. 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?
IV. 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. o 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: o 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. o 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. o 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.
V. Kết luận
Trên đây là giới thiệu về hệ thống phân tán. Hi vọng bài viết có thể giúp các bạn có được cách nhìn tổng quan về hệ thống phân tán.
Cảm ơn đã theo dõi
All rights reserved