1Thắt nút cổ chai (Bottle Neck)

Một phần của tài liệu Phát triển tư duy thuật giải cho học sinh thông qua dạy học các cấu trúc điều khiển và các dữ liệu cóa cấu trúc tin học 11 (Trang 56 - 58)

Trường hợp trong một hệ thống có Agent quản lý, tương tự như một hệ thống con của hệ thống đang xét, thì khi có nhiều yêu cầu đến từ phía Client mà Agent không đủ khả năng đáp ứng cho các yêu cầu đó thì lúc này ta gọi Agent là một điểm bị Bottle Neck của hệ thống. Hệ thống lúc này bị Bottle Neck.

Trong trường hợp mô hình đang xét, thì mô hình được thiết kế thành một hệ thống gồm Agent đảm nhận nhiệm vụ đại diện hệ thống giao tiếp với Client, các Server, cũng như Admin. Vì mô hình này đưa ra để giải quyết những vấn đề tính toán lớn, nên việc phân chia công việc, đợi kết quả trả về từ các Server, tổng hợp kết quả là một nhiệm vụ khá nặng và tốn khá nhiều thời gian. Tóm lại, Agent này sẽ phải đảm nhiệm phần nhiệm vụ rất lớn, dễ xảy ra trường hợp quá tải và bị fail. Có thể nói lúc này Agent là một điểm thắt nút cổ chai của hệ thống con mà nó quản lý.

Tuy nhiên vì hệ thống sẽ được chia nhỏ ra thành các hệ thống con , mỗi hệ thống con này do mỗi Agent đứng ra quản lý. Mô hình này về phương diện dịch vụ thì các dịch vụ sẽ được chuyên môn hóa.Và cũng chính điều này sẽ giải quyết phần nào vấn đề thắt nút cổ chai bởi vì các Client có thể biết dịch vụ nào có ở Agent nào, vì vậy sẽ kết nối trực tiếp đến đó, hạn chế trường hợp tất cả các Client đều tập trung vào một Agent.

Mặc dù vậy, việc có nhiều Agent cũng chỉ giải quyết một phần vấn đề này. Hệ thống cũng sẽ không thể tránh khỏi một lúc nào đó có quá nhiều yêu cầu từ Client đến một Agent nào đó, và lúc này sẽ xảy ra hiện tượng ùn tắc tại phần tử yếu này. Tuy nhiên, đây là hệ thống Concurent, mỗi khi một yêu cầu đến, sau khi được chấp nhận, sẽ có một thread được sinh ra để thực hiện các công việc tiếp theo để phục vụ yêu cầu dịch vụ đó. Và một thread kia vẫn tiếp tục chờ nhận yêu cầu như bình thường.

Để tiếp tục giải quyết vấn đề này thì Agent sẽ chỉ nhận một số những yêu cầu của Client mà thôi. Tức là Agent đếm thứ tự các yêu cầu đến, nếu số yêu cầu vượt quá con số quy định này, Agent sẽ sinh ra một Agent mới, sau đó Agent này sẽ trả địa chỉ của Agent mới cho Client để Client nếu muốn có thể kết nối đến Agent đó. Con số này có thể do người quản trị cung cấp dựa vào các thông tin về tải cũng như tài nguyên của hệ thống, nghĩa là vấn đề này có sự can thiệp của người quản trị hệ thống.

Người quản trị hệ thống sau một thời gian có thể kiểm tra hệ thống, nếu muốn shut down Agent này thì hoàn toàn có thể làm được.

Trước khi giải quyết vấn đề Bottle Neck thì một Client muốn kết nối vào hệ thống phải qua các bước có thể biểu diễn bằng sơ đồ khối như sau :

Nhưng sau khi giải quyết vấn đề Bottle Neck thì các bước để Client kết nối vào Agent

Start

Stop Client lookup Authentication Object Client gọi hàm Connect cung cấp Username/Password

Username và Password đúng ? Yes No Báo lỗi Stop Bind Agent với một tên mới dựa

vào UserName và Password

Một phần của tài liệu Phát triển tư duy thuật giải cho học sinh thông qua dạy học các cấu trúc điều khiển và các dữ liệu cóa cấu trúc tin học 11 (Trang 56 - 58)