Kiến trúc phân tán
Trong kiến trúc phân tán, các thành phần được trình bày trên các nền tảng khác nhau và một số thành phần có thể hợp tác với nhau qua mạng truyền thông để đạt được mục tiêu hoặc mục tiêu cụ thể.
Trong kiến trúc này, việc xử lý thông tin không chỉ giới hạn trong một máy duy nhất mà nó được phân phối trên nhiều máy tính độc lập.
Một hệ thống phân tán có thể được chứng minh bằng kiến trúc máy khách-máy chủ, tạo cơ sở cho các kiến trúc nhiều tầng; các lựa chọn thay thế là kiến trúc môi giới như CORBA và Kiến trúc hướng dịch vụ (SOA).
Có một số khuôn khổ công nghệ để hỗ trợ kiến trúc phân tán, bao gồm các dịch vụ .NET, J2EE, CORBA, .NET Web, dịch vụ Web AXIS Java và dịch vụ Globus Grid.
Phần mềm trung gian là một cơ sở hạ tầng hỗ trợ thích hợp cho việc phát triển và thực thi các ứng dụng phân tán. Nó cung cấp một bộ đệm giữa các ứng dụng và mạng.
Nó nằm ở giữa hệ thống và quản lý hoặc hỗ trợ các thành phần khác nhau của hệ thống phân tán. Ví dụ như bộ theo dõi xử lý giao dịch, bộ chuyển đổi dữ liệu và bộ điều khiển giao tiếp, v.v.
Phần mềm trung gian làm cơ sở hạ tầng cho hệ thống phân tán
Cơ sở của kiến trúc phân tán là tính minh bạch, độ tin cậy và tính khả dụng của nó.
Bảng sau liệt kê các hình thức minh bạch khác nhau trong hệ thống phân tán:
Sr.No. | Tính minh bạch & mô tả |
---|---|
1 | Access Ẩn cách thức truy cập tài nguyên và sự khác biệt trong nền tảng dữ liệu. |
2 | Location Ẩn nơi có tài nguyên. |
3 | Technology Ẩn các công nghệ khác nhau như ngôn ngữ lập trình và hệ điều hành khỏi người dùng. |
4 | Migration / Relocation Ẩn các tài nguyên có thể được chuyển đến một vị trí khác đang được sử dụng. |
5 | Replication Ẩn các tài nguyên có thể được sao chép tại một số vị trí. |
6 | Concurrency Ẩn các tài nguyên có thể được chia sẻ với người dùng khác. |
7 | Failure Ẩn lỗi và khôi phục tài nguyên từ người dùng. |
số 8 | Persistence Ẩn liệu tài nguyên (phần mềm) trong bộ nhớ hay đĩa. |
Ưu điểm
Resource sharing - Chia sẻ tài nguyên phần cứng và phần mềm.
Openness - Linh hoạt trong việc sử dụng phần cứng và phần mềm của các nhà cung cấp khác nhau.
Concurrency - Xử lý đồng thời để nâng cao hiệu suất.
Scalability - Tăng thông lượng bằng cách thêm tài nguyên mới.
Fault tolerance - Khả năng tiếp tục hoạt động sau khi xảy ra sự cố.
Nhược điểm
Complexity - Chúng phức tạp hơn các hệ thống tập trung.
Security - Dễ bị tấn công từ bên ngoài.
Manageability - Cần nhiều nỗ lực hơn để quản lý hệ thống.
Unpredictability - Các phản ứng không thể đoán trước tùy thuộc vào tổ chức hệ thống và tải mạng.
Hệ thống tập trung so với Hệ thống phân tán
Tiêu chí | Hệ thống tập trung | Hệ thống phân phối |
---|---|---|
Kinh tế học | Thấp | Cao |
khả dụng | Thấp | Cao |
Phức tạp | Thấp | Cao |
Tính nhất quán | Đơn giản | Cao |
Khả năng mở rộng | Nghèo | Tốt |
Công nghệ | Đồng nhất | không đồng nhất |
Bảo vệ | Cao | Thấp |
Kiến trúc Máy khách-Máy chủ
Kiến trúc máy khách-máy chủ là kiến trúc hệ thống phân tán phổ biến nhất, nó phân tách hệ thống thành hai hệ thống con chính hoặc các quy trình logic -
Client - Đây là tiến trình đầu tiên đưa ra yêu cầu đến tiến trình thứ hai tức là máy chủ.
Server - Đây là quy trình thứ hai nhận yêu cầu, thực hiện và gửi trả lời cho khách hàng.
Trong kiến trúc này, ứng dụng được mô hình hóa như một tập hợp các dịch vụ được cung cấp bởi các máy chủ và một tập hợp các khách hàng sử dụng các dịch vụ này. Máy chủ không cần biết về máy khách, nhưng máy khách phải biết danh tính của máy chủ và ánh xạ của bộ xử lý với các quy trình không nhất thiết phải là 1: 1
Kiến trúc máy khách-máy chủ có thể được phân loại thành hai mô hình dựa trên chức năng của máy khách -
Mô hình khách hàng mỏng
Trong mô hình thin-client, tất cả quá trình xử lý ứng dụng và quản lý dữ liệu được thực hiện bởi máy chủ. Máy khách chỉ chịu trách nhiệm chạy phần mềm trình chiếu.
Được sử dụng khi hệ thống kế thừa được di chuyển sang kiến trúc máy chủ khách trong đó hệ thống kế thừa hoạt động như một máy chủ theo đúng nghĩa của nó với giao diện đồ họa được triển khai trên máy khách
Một bất lợi lớn là nó đặt một tải xử lý nặng lên cả máy chủ và mạng.
Mô hình khách hàng dày / béo
Trong mô hình máy khách dày, máy chủ chỉ phụ trách quản lý dữ liệu. Phần mềm trên máy khách thực hiện logic ứng dụng và các tương tác với người dùng hệ thống.
Thích hợp nhất cho các hệ thống C / S mới mà khả năng của hệ thống khách hàng đã được biết trước
Phức tạp hơn một mô hình khách hàng mỏng đặc biệt là đối với quản lý. Các phiên bản mới của ứng dụng phải được cài đặt trên tất cả các máy khách.
Ưu điểm
Tách các trách nhiệm như trình bày giao diện người dùng và xử lý logic nghiệp vụ.
Khả năng tái sử dụng của các thành phần máy chủ và tiềm năng đồng thời
Đơn giản hóa thiết kế và phát triển các ứng dụng phân tán
Nó giúp dễ dàng di chuyển hoặc tích hợp các ứng dụng hiện có vào một môi trường phân tán.
Nó cũng sử dụng hiệu quả tài nguyên khi một số lượng lớn máy khách đang truy cập vào một máy chủ hiệu suất cao.
Nhược điểm
Thiếu cơ sở hạ tầng không đồng nhất để đối phó với những thay đổi yêu cầu.
Sự phức tạp về bảo mật.
Tính khả dụng và độ tin cậy của máy chủ hạn chế.
Khả năng kiểm tra và khả năng mở rộng hạn chế.
Khách hàng béo với cách trình bày và logic kinh doanh cùng nhau.
Kiến trúc nhiều tầng (Kiến trúc n-tầng)
Kiến trúc đa tầng là kiến trúc máy khách - máy chủ trong đó các chức năng như trình bày, xử lý ứng dụng và quản lý dữ liệu được tách biệt về mặt vật lý. Bằng cách tách ứng dụng thành các lớp, các nhà phát triển có được tùy chọn thay đổi hoặc thêm một lớp cụ thể, thay vì làm lại toàn bộ ứng dụng. Nó cung cấp một mô hình mà các nhà phát triển có thể tạo ra các ứng dụng linh hoạt và có thể tái sử dụng.
Cách sử dụng chung nhất của kiến trúc nhiều tầng là kiến trúc ba tầng. Kiến trúc ba tầng thường bao gồm tầng trình bày, tầng ứng dụng và tầng lưu trữ dữ liệu và có thể thực thi trên một bộ xử lý riêng biệt.
Bậc trình bày
Lớp trình bày là cấp cao nhất của ứng dụng mà người dùng có thể truy cập trực tiếp như trang web hoặc GUI của Hệ điều hành (Giao diện người dùng đồ họa). Chức năng chính của lớp này là dịch các nhiệm vụ và kết quả sang thứ mà người dùng có thể hiểu được. Nó giao tiếp với các tầng khác để đưa kết quả đến tầng trình duyệt / máy khách và tất cả các tầng khác trong mạng.
Bậc ứng dụng (Bậc logic nghiệp vụ, Bậc logic hoặc Bậc trung bình)
Tầng ứng dụng điều phối ứng dụng, xử lý các lệnh, đưa ra các quyết định logic, đánh giá và thực hiện các phép tính. Nó kiểm soát chức năng của ứng dụng bằng cách thực hiện xử lý chi tiết. Nó cũng di chuyển và xử lý dữ liệu giữa hai lớp xung quanh.
Bậc dữ liệu
Trong lớp này, thông tin được lưu trữ và truy xuất từ cơ sở dữ liệu hoặc hệ thống tệp. Thông tin sau đó được chuyển trở lại để xử lý và sau đó trở lại người dùng. Nó bao gồm các cơ chế duy trì dữ liệu (máy chủ cơ sở dữ liệu, chia sẻ tệp, v.v.) và cung cấp API (Giao diện lập trình ứng dụng) cho tầng ứng dụng cung cấp các phương pháp quản lý dữ liệu được lưu trữ.
Advantages
Hiệu suất tốt hơn phương pháp tiếp cận khách hàng mỏng và dễ quản lý hơn phương pháp tiếp cận khách hàng dày.
Nâng cao khả năng tái sử dụng và khả năng mở rộng - khi nhu cầu tăng lên, các máy chủ bổ sung có thể được thêm vào.
Cung cấp hỗ trợ đa luồng và cũng giảm lưu lượng mạng.
Cung cấp khả năng bảo trì và tính linh hoạt
Disadvantages
Khả năng kiểm tra không đạt yêu cầu do thiếu công cụ kiểm tra.
Độ tin cậy và tính khả dụng của máy chủ quan trọng hơn.
Phong cách kiến trúc môi giới
Broker Architectural Style là một kiến trúc phần mềm trung gian được sử dụng trong máy tính phân tán để điều phối và cho phép giao tiếp giữa các máy chủ và máy khách đã đăng ký. Tại đây, giao tiếp đối tượng diễn ra thông qua một hệ thống phần mềm trung gian được gọi là môi giới yêu cầu đối tượng (bus phần mềm).
Máy khách và máy chủ không tương tác trực tiếp với nhau. Máy khách và máy chủ có một kết nối trực tiếp đến proxy của nó để giao tiếp với người trung gian-môi giới.
Máy chủ cung cấp dịch vụ bằng cách đăng ký và xuất bản giao diện của họ với nhà môi giới và khách hàng có thể yêu cầu dịch vụ từ nhà môi giới tĩnh hoặc động bằng cách tra cứu.
CORBA (Kiến trúc môi giới yêu cầu đối tượng chung) là một ví dụ triển khai tốt của kiến trúc nhà môi giới.
Các thành phần của phong cách kiến trúc môi giới
Các thành phần của phong cách kiến trúc nhà môi giới được thảo luận thông qua các phần sau:
Broker
Người môi giới chịu trách nhiệm điều phối thông tin liên lạc, chẳng hạn như chuyển tiếp và gửi kết quả và các trường hợp ngoại lệ. Nó có thể là một dịch vụ hướng gọi, một tài liệu hoặc môi giới hướng tin nhắn mà khách hàng gửi tin nhắn.
Nó chịu trách nhiệm môi giới các yêu cầu dịch vụ, định vị máy chủ thích hợp, truyền yêu cầu và gửi phản hồi lại cho khách hàng.
Nó giữ lại thông tin đăng ký của máy chủ bao gồm chức năng và dịch vụ của chúng cũng như thông tin vị trí.
Nó cung cấp các API để khách hàng yêu cầu, máy chủ phản hồi, đăng ký hoặc hủy đăng ký các thành phần máy chủ, chuyển thông báo và định vị máy chủ.
Stub
Stubs được tạo tại thời điểm biên dịch tĩnh và sau đó được triển khai cho phía máy khách, được sử dụng làm proxy cho máy khách. Proxy phía máy khách hoạt động như một người trung gian giữa khách hàng và nhà môi giới và cung cấp thêm tính minh bạch giữa họ và khách hàng; một đối tượng từ xa xuất hiện giống như một đối tượng cục bộ.
Proxy ẩn IPC (giao tiếp giữa các quá trình) ở cấp độ giao thức và thực hiện việc sắp xếp các giá trị tham số và bỏ sắp xếp các kết quả từ máy chủ.
Skeleton
Skeleton được tạo ra bởi quá trình biên dịch giao diện dịch vụ và sau đó được triển khai tới phía máy chủ, được sử dụng làm proxy cho máy chủ. Proxy phía máy chủ đóng gói các chức năng mạng cấp thấp dành riêng cho hệ thống và cung cấp các API cấp cao để làm trung gian giữa máy chủ và nhà môi giới.
Nó nhận các yêu cầu, giải nén các yêu cầu, giải nén các đối số của phương thức, gọi dịch vụ phù hợp và cũng sắp xếp kết quả trước khi gửi lại cho máy khách.
Bridge
Một cầu nối có thể kết nối hai mạng khác nhau dựa trên các giao thức truyền thông khác nhau. Nó làm trung gian cho các nhà môi giới khác nhau bao gồm các nhà môi giới DCOM, .NET từ xa và Java CORBA.
Cầu nối là thành phần tùy chọn, ẩn các chi tiết triển khai khi hai nhà môi giới tương tác với nhau và nhận các yêu cầu và tham số ở một định dạng và dịch chúng sang định dạng khác.
Broker implementation in CORBA
CORBA là tiêu chuẩn quốc tế cho Nhà môi giới yêu cầu đối tượng - một phần mềm trung gian để quản lý thông tin liên lạc giữa các đối tượng phân tán được xác định bởi OMG (nhóm quản lý đối tượng).
Kiến trúc hướng dịch vụ (SOA)
Dịch vụ là một thành phần của chức năng nghiệp vụ được xác định rõ ràng, khép kín, độc lập, được xuất bản và sẵn sàng sử dụng thông qua giao diện lập trình tiêu chuẩn. Các kết nối giữa các dịch vụ được thực hiện bởi các giao thức hướng thông điệp chung và phổ biến như giao thức dịch vụ Web SOAP, có thể đưa ra các yêu cầu và phản hồi giữa các dịch vụ một cách lỏng lẻo.
Kiến trúc hướng dịch vụ là thiết kế máy khách / máy chủ hỗ trợ cách tiếp cận CNTT theo hướng kinh doanh, trong đó ứng dụng bao gồm các dịch vụ phần mềm và người tiêu dùng dịch vụ phần mềm (còn được gọi là khách hàng hoặc người yêu cầu dịch vụ).
Đặc điểm của SOA
Kiến trúc hướng dịch vụ cung cấp các tính năng sau:
Distributed Deployment - Thể hiện dữ liệu doanh nghiệp và logic nghiệp vụ dưới dạng các đơn vị chức năng lỏng lẻo, được ghép nối, có thể khám phá, có cấu trúc, dựa trên tiêu chuẩn, chi tiết thô, không trạng thái được gọi là dịch vụ.
Composability - Tập hợp các quy trình mới từ các dịch vụ hiện có được hiển thị ở mức độ chi tiết mong muốn thông qua các giao diện khiếu nại chuẩn, được xuất bản và được xác định rõ ràng.
Interoperability - Chia sẻ khả năng và sử dụng lại các dịch vụ được chia sẻ trên một mạng không phân biệt các giao thức cơ bản hoặc công nghệ triển khai.
Reusability - Chọn một nhà cung cấp dịch vụ và truy cập vào các tài nguyên hiện có được hiển thị dưới dạng dịch vụ.
Hoạt động SOA
Hình sau minh họa cách SOA hoạt động:
Advantages
Việc kết hợp lỏng lẻo giữa định hướng dịch vụ mang lại sự linh hoạt tuyệt vời cho các doanh nghiệp trong việc sử dụng tất cả các khoản hoàn vốn dịch vụ có sẵn bất kể các hạn chế về nền tảng và công nghệ.
Mỗi thành phần dịch vụ độc lập với các dịch vụ khác do tính năng dịch vụ không trạng thái.
Việc triển khai một dịch vụ sẽ không ảnh hưởng đến ứng dụng của dịch vụ miễn là giao diện tiếp xúc không bị thay đổi.
Khách hàng hoặc bất kỳ dịch vụ nào có thể truy cập các dịch vụ khác bất kể nền tảng, công nghệ, nhà cung cấp hoặc triển khai ngôn ngữ của họ.
Khả năng tái sử dụng của tài sản và dịch vụ vì khách hàng của một dịch vụ chỉ cần biết các giao diện công khai, thành phần dịch vụ của nó.
Phát triển ứng dụng kinh doanh dựa trên SOA hiệu quả hơn nhiều về thời gian và chi phí.
Nâng cao khả năng mở rộng và cung cấp kết nối tiêu chuẩn giữa các hệ thống.
Sử dụng hiệu quả và hiệu quả 'Dịch vụ Kinh doanh'.
Việc tích hợp trở nên dễ dàng hơn nhiều và cải thiện khả năng tương tác nội tại.
Sự phức tạp trừu tượng cho các nhà phát triển và tiếp thêm năng lượng cho các quy trình kinh doanh gần gũi hơn với người dùng cuối.