2Giải thích mô hình

Một phần của tài liệu Tìm hiểu cơ chế RMI của Java và xây dựng một môi trường hỗ trợ tính toán song song và phân bố (Trang 44 - 46)

Mô hình sử dụng là mô hình gồm các phần tử Agent, các Server, Admin. Mô hình này khá quen thuộc nhưng tuỳ vào yêu cầu cụ thể của đề tài cũng như công cụ sử dụng để hiện thực mà việc thiết kế cụ thể khác nhau.

Yêu cầu của đề tài là xây dựng một môi trường hỗ trợ tính toán song song và phân bố. Mô hình được thiết kế thành một hệ thống có các phần tử 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. Hệ thống xây dựng

theo mô hình này sẽ được quản lý chặt chẽ, dễ kiểm soát hoạt động của hệ thống cũng như việc sử dụng hệ thống của client. Tuy nhiên, hệ thống này được yêu cầu 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 Service, 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ẽ đảm nhận nhiệm vụ rất lớn, dễ xảy ra trường hợp quá tải và bị fail. Để hạn chế bớt phần nào vấn đề này,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ột Agent đứng ra quản lý. Khi một Agent fail thì không ảnh hưởng lên toàn bộ hệ thống.

Ngoài mục đích trên, việc hệ thống có nhiều Agent cũng nhằm mục đích chuyên môn hóa các dịch vụ (nghĩa là một Agent quản lý một số dịch vụ mang tính chất gần giống nhau) , 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 cho hệ thống. Đối với hệ thống nhiều Agent này, Client sẽ tùy vào tính chất dịch vụ nào mà yêu cầu đến những Agent đảm nhiệm những dịch vụ đó. Trong trường hợp Client yêu cầu tới một Agent bất kỳ, nếu nó không quản lý dịch vụ đó thì sẽ chuyển yêu cầu qua cho Agent có đúng chức năng để phân chia công việc cho Server.

Mô hình chia thành nhiều hệ thống con còn hướng đến việc phát triển một hệ thống trên mạng WAN vì cơ chế RMI cho phép gọi hàm từ xa dễ dàng chỉ yêu cầu có kết nối với nhau dù trên mạng LAN hay WAN.

Trong hệ thống này, mỗi Agent đều nắm được thông tin tất cả dịch vụ hiện có trên toàn bộ hệ thống. Các Server được quản lý bởi một Agent và cùng với Agent đó gọi là một hệ thống con. Mỗi Server lại quản lý một số Service. Tuy nhiên khi yêu cầu dịch vụ thì Agent gọi trực tiếp đến Service. Mối quan hệ giữa Agent, Server và Service được biểu diễn như sau:

Agent Server Service Quản lý Quản lý Gọi dịch vụ

Một điều cần chú ý với mô hình như trên là trên một Host nên tổ chức các Service sao cho các Service này có liên quan với nhau là tốt nhất. Nghĩa là Service A có thể cần tới kết quả của Service B và ngược lại thì ta nên bố trí các Service trên sao cho chúng cùng thuộc một Server, điều này có thể làm giảm thời gian Communicate, nhằm giúp hệ thống hoạt động hiệu quả hơn.

Tóm lại, mô hình này có những ưu và nhược điểm sau Ưu điểm của mô hình này là :

• Hiệu quả hơn trong việc sử dụng dịch vụ của Client. • Hiệu quả hơn cho việc bảo mật và an toàn của hệ thống.

• Hạn chế thắt nút cổ chai có thể xảy ra tại Agent, do có nhiều Agent.

• Hệ thống có nhiều Server có thể hoạt động thống nhất với nhau, do lúc này hệ thống có phần tử Agent quản lý và phân công công việc. Điều này cũng đưa đến vấn đề chuyên môn hóa dịch vụ trong hệ thống.

• Ngoài ra, vì Service có thể thiết kế là một Remote Object nên việc thêm bớt một Servivce không đòi hỏi chúng ta phải dịch lại chương trình Server.

Tuy nhiên, mô hình trên cũng có vài nhược điểm, đó là :

• Mô hình này đòi hỏi việc liên lạc qua lại trong hệ thống xảy ra nhiều hơn, nó có thể tốn nhiều thời gian Communicate, chẳng hạn Agent A nhờ Agent B, Agent B phân phối công việc , nhận kết quả, rồi trả kết quả về lại cho Agent A.

• Vần đề quảng cáo cho các dịch vụ của hệ thống gặp nhiều khó khăn hơn.

• Hệ thống có phần tử yếu đó là Agent, do đó hoạt động của toàn bộ hệ thống lại phụ thuộc nhiều vào sự tồn tại của phần tử yếu này.

Một phần của tài liệu Tìm hiểu cơ chế RMI của Java và xây dựng một môi trường hỗ trợ tính toán song song và phân bố (Trang 44 - 46)