Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

HPT chương2 Kiến trúc

1. Kiến trúc 1.1. Kiến trúc phần mềm (Software architectures)

Đây là một mô hình tổ chức logic của các phần mềm hệ phân tán

1.1.1. Kiến trúc phân tầng

Hình 2.1: Kiến trúc phân tầng

Ý tưởng của kiến trúc phân tầng là rất đơn giản: Các thành phần được tổ chức theo từng tầng gối lên nhau sao cho một thành phần ở tầng Li được cho phép gọi tới các thành phần ở tầng Li-1 bên dưới nó, nhưng không có chiều ngược lại (Hình 2.1). Với mô hình này, luồng điều khiển thường được chuyển từ tầng này sang tầng khác : Trong khi các yêu cầu (request) đi từ tầng cao xuống tầng thấp thì các trả lời (result) lại đi theo chiều ngược lại.

Một ví dụ của kiến trúc này, đó là ví dụ về Mạng máy tính. Nó là một trường hợp riêng của hệ phân tán, với các phần mềm phân tán là phần mềm cài đặt các giao thức.

1.1.2. Kiến trúc dựa trên hướng đối tượng

Hình 2.2: Kiến trúc dựa trên hướng đối tượng.

Với kiến trúc này, mỗi đối tượng tương ứng với một thành phần, và các thành phần này được kết nối với nhau thông qua cơ chế RPC. Trong kiến trúc hướng đối tượng, kiến trúc phần mềm của nó vẫn thỏa mãn các tính chất của mô hình Client/Server. Hiện nay, kiến trúc phân tầng và kiến trúc dựa trên đối tượng vẫn đang là mô hình kiến trúc quan trọng nhất cho các hệ thống phần mềm lớn.

1.1.3. Kiến trúc dựa trên dữ liệu

Ý tưởng của kiến trúc này là các tiến trình sẽ liên lạc với nhau thông qua một thư mục dùng chung (common repository). Đối với các hệ phân tán, kiến trúc này cũng quan trọng như hai kiến trúc mà ta đề cập trước đây. Ví dụ, một tập các ứng dụng mạng được phát triển dựa trên một hệ thống file phân tán chia sẻ (shared distributed file system), ở đó, tất cả các quá trình truyền thông diễn ra thông qua các file. Tương tự vậy, các hệ phân tán dựa trên web cũng là một ví dụ: Các process liên lạc với nhau thông qua việc sử dụng các dịch vụ dữ liệu dựa trên web (shared Web-based data services)

1.1.4. Kiến trúc dựa trên sự kiện

Hình 2.3: Kiến trúc dựa trên sự kiện.

Trong kiến trúc dựa trên sự kiện (Hình 2.3) Các tiến trình liên lạc với nhau thông qua quá trình lan truyền sự kiện. Trong hệ phân tán, việc lan truyền sự kiện thường liên quan đến khái niệm publish/subscribe system . Ý tưởng đằng sau khái niệm này là, các tiến trình sẽ phát ra các sự kiện, và sau đó phần trung gian sẽ đảm bảo rằng chỉ có các tiến trình đăng kí nhận các sự kiện này mới nhận được chúng. Ưu điểm chính của kiến trúc này, đó là các thành phần trong hệ thống được tách rời nhau, nó không cần quan tầm đến sự tồn tại của các thành phần khác.

1.1.4.1. Không gian dữ liệu chia sẻ (Shared data spaces)

Hình 2.4: Không gian chia sẻ dữ liệu

Kiến trúc hướng sự kiện có thể được kết hợp với kiến trúc hướng dữ liệu để tạo thành không gian dữ liệu chia sẻ. Ý tưởng cơ bản của không gian chia sẻ dữ liệu, đó là các tiến trình được tách biệt với nhau về thời gian, chúng không cần phải cùng active khi quá trình truyền thông diễn ra. Hơn nữa, rất nhiều không gian dữ liệu chia sẻ sử dụng giao diện tương tự SQL cho thư mục được chia sẻ với ý nghĩa rằng dữ liệu có thể được truy cập bằng cách sử dụng một mô tả hơn là một tham chiếu cụ thể.

1.2. Kiến trúc hệ thống (System architectures)

Dùng để mo tải việc bố trí, cài đặt các thành phần trong hệ phân tán trên các máy trạm khác nhau như thế nào. Ở phần dưới đây, em xin tìm hiểu về một số mô hình kiến trúc hệ thống cụ thể.

1.2.1. Kiến trúc tập trung

Ví dụ điển hình của kiến trúc tập trung là mô hình Client/Server. Trong mô hình Client/Server, các tiến trình trong hệ phân tán được chia ra thành hai nhóm (có thể gối lên nhau). Một server là một tiến trình cài đặt một dịch vụ cụ thể nào đó, ví dụ, dịch vụ hệ thống file (file system service) hoặc dịnh vụ cơ sở dữ liệu (database service). Một client là một tiến trình yêu cầu dịch vụ từ server bằng cách gửi request và đợi trả lời từ server. Tương tác giữa client server được mô tả như trên còn được gọi là hành vi hỏi-đáp (request-reply behavior)

Hình 2.5: Tương tác trong mô hình Client-Server

Truyền thông giữa client và server có thể được cài đặt theo một giao thức vô hướng đơn giản (connectionless protocol) hoặc giao thức có hướng đáng tin cậy (reliable connection-orriented protocol).

Nhược điểm : Khi client gửi request đến server thì nó phải chờ ( và thời gian chờ này coi như thời gian chết). Chúng ta có thể khắc phục điều này bằng cách sau khi server nhận được request của client, thì nó chỉ cần gửi ack lại cho client, trong thời gian server xử lý, client sẽ làm các công việc khác.

Liên quan đến kiến trúc tập trung, chúng ta có khái niệm kiến trúc client-server nhiều phần (multitiers client-server architectures) . Nó là kết quả của việc chúng ta chia ứng dụng ra thành các phần như giao diện, các thành phần xử lý và thành phần dữ liệu. Các phần khác nhau này có liên quan trực tiếp đến việc tổ chức logic của ứng dụng. Trong nhiều trường hợp, việc xử lý phân tán có thể được hiểu là tổ chức ứng dụng client-server đó như một kiến trúc nhiều phần. Chúng ta gọi đó là cách phân tán theo chiều dọc (vertical distribution). Đặc điểm của phân tán theo chiều dọc, đó là chúng ta đặc các thành phần khác nhau một cách logic trên các máy khác nhau.

Kiến trúc phân tán theo chiều dọc là một mở rộng của kiến trúc client-server, phân tán các chức năng server trên nhiều máy khác nhau. Client gửi yêu cầu tới server đầu tiên. Trong quá trình xử lý yêu cầu, server này lại yêu cầu sử dụng dịch vụ của server tiếp theo, server tiếp theo này cũng thực hiện tương tự cho tới server cuối cùng. Trong kiến trúc này, các server có thể trở thành client của nhau và các server sẽ chịu trách nhiệm thực hiện các bước khác nhau trong quá trình xử lý yêu cầu của client ban đầu. Việc phân chia chức năng server theo cách này giúp nâng cao tính co dãn và linh động của hệ thống. Tính co dãn được cải thiện bởi tải xử lý trên mỗi server sẽ giảm xuống, hệ thống đáp ứng được nhiều yêu cầu người sử dụng hơn. Về tính linh hoạt, kiến trúc này cho phép các chức năng bên trong của các server có thể thay đổi, chỉ cần giao diễn vẫn được giữ nguyên.

1.2.2. Kiến trúc phi tập trung

Liên quan đến vấn đề này là khái niệm phân tán theo chiều ngang (horizontal distribution). Với hình thức phân tán này, một client hay server có thể bị phân chia một cách vật lý thành các phần bằng nhau, mỗi phần hoạt động trên phần mà nó được chia sẻ từ một tập dữ liệu hoàn chỉnh, qua đó, cân bẳng tải giữa các phần (nhân bản một chức năng của server lên nhiều máy). Đó cũng chính là tư tưởng của kiến trúc phi tập trung.

Một ví dụ điển hình của kiến trúc phi tập trung, đó là ví dụ về mạng ngang hàng (peer to peer network)

Hình 2.6: Kiến trúc peer-to-peer

Với P2P, tất cả các tiến trình có vai trò như nhau.Trong Hình 2.6, các tiến trình vừa là client vừa là server, đều có thể gửi yêu cầu đi và xử lý các yêu cầu đến. Trong kiến trúc phân tán theo chiều dọc, mỗi server cũng có thể là client của server khác nhưng trong mô hình P2P tất cả các tiến trình đều cung cấp các dịch vụ giống nhau. Một ví dụ tiêu biểu của mô hình P2P là các ứng dụng chia sẻ tệp. Trong các ứng dụng này, người dùng sử dụng ứng dụng để tìm kiếm và tải tập tin từ người dùng khác, cùng lúc, chương trình cũng xử lý các yêu cầu tìm kiếm và tải tệp tin gửi đến từ những người dùng khác.

1.2.3. Kiến trúc lai:

Bằng cách kết hợp các kiểu kiến trúc trên lại theo những cách khác nhau, ta có thể tạo ra được nhiều kiến trúc khác và thường được gọi là kiến trúc lai.

1.2.3.1. Hệ thống phân tán cộng tác

Trong các ht phân tán cộng tác, các peer hỗ trợ nhau trong việc phân phối dữ liệu như trong kiến trúc p2p, nhưng để khởi tạo mạng thì chúng lại tuân theo kiến trúc client-server. Ví dụ như với BitTorrent, một nút muốn tải về một tệp từ một server thì đầu tiên nút đó phải liên lạc với server để lấy thông tin về các tracker. Các tracker này sẽ cho biết vị trí của các nút khác mà từ đó có thể tải các phần khác nhau của tệp tin về. Khi đã tải được các phần về, nút này sẽ đăng kí với tracker để các nút khác có thể tìm thấy và tải về từ nút này.

1.2.3.2. Mạng superpeer

Trong kiến trúc này, các superpeer tạo thành một mạng P2P, các peer bình thường sẽ là các client của các superpeer. Kiến trúc lai này vẫn giữ được một số ưu điểm của hệ thống P2P và giúp đơn giản hóa hệ thống với việc chỉ có một số superpeer quản lý chỉ mục của các peer bình thường, ví dụ như Skype.

1.2.4. Mạng edge-server

Trong mạng edge-server, các server sẽ được đặt tại cạnh (edge) của mạng Internet, ví dụ như ở các nhà cung cấp dịch vụ Internet hoặc ở gần mạng của doanh nghiệp. Khi đó, các nút client sẽ truy cập edge server ở gần với nó thay vì server gốc ở xa. Kiến trúc này rất phù hợp với các mạng phân phối dữ liệu phạm vi lớn.

Bạn đang đọc truyện trên: Truyen247.Pro