Chương trình Agent là một chương trình quản lý các Server. Chương trình này sẽ thực hiện việc giao tiếp với người Administrator thông qua chương trình Admin, nhận yêu cầu về quản lý hệ thống của người Administrator và sau đó thực hiện yêu cầu đó hoặc là sẽ yêu cầu Server làm việc nào đó để thỏa yêu cầu từ phía người Administrator. Tóm lại, chương trình Agent sẽ giao tiếp với chương trình Admin để quản lý hệ thống như yêu cầu của người quản trị hệ thống.
Chương trình này còn giao tiếp với chương trình Client, nhận yêu cầu về dịch vụ và thực hiện phân chia công việc và tính toán các Server thích hợp, sau đó yêu cầu các Server làm việc, chờ nhận kết quả và trả về cho Client. Nếu trong số các Server mà nó quản lý không có Service mà Client yêu cầu, thì Agent này sẽ yêu cầu Agent có đảm nhiệm Service tương ứng làm công việc đó.
Cùng với các chức năng khác, Agent còn phải thực hiện việc trả thông tin về hệ thống do nó quản lý về cho Agent bên cạnh khi cần thiết (Khi Agent bên cạnh yêu cầu).
Ngoài ra, chương trình Agent còn là một chương trình cung cấp các thông tin về hệ thống một cách tổng quát một khi Administrator cần đến. Vì vậy công việc chính yếu của chương trình là cung cấp các hàm cho phép gọi từ xa để Administrator có thể dựa vào các hàm đó mà thực hiện việc quản lý hệ thống.
Hơn thế nữa, chương trình Agent ngay chính bản thân nó là một phần tử yếu của hệ thống, vì vậy một nhu cầu thiết yếu đặt ra đối với chương trình Agent là phải giải quyết các vấn đề về Bottle Neck , Fault- Tolerance.
Tóm lại, chương trình Agent cần phải giải quyết được các vấn đề chính yếu sau : • Phục vụ cho Client sao cho Client có thể dễ dàng sử dụng các dịch vụ tốt. • Thực hiện việc thêm, sửa và xóa một dịch vụ sao cho thật hiệu quả. • Cung cấp các thông tin về các Server mà nó đang nắm giữ.
• Cung cấp các thông tin về User mà nó đang nắm giữ. • Cung cấp các thông tin về Service mà nó đang nắm giữ.
• Khắc phục lỗi có thể xảy ra trong quá trình vận hành hệ thống. • Thực hiện việc phân chia công việc cho các Server.
• Giải quyết việc tắc nghẽn có thể xảy ra trong hệ thống. • Giải quyết các vấn đề ưu tiên trong hệ thống.
Với yêu cầu như trên, để giải quyết bằng RMI chúng ta chỉ cần quan tâm đến việc viết các hàm cho phép gọi từ xa giải quyết từng vấn đề cho Client và hệ thống. Do đó, phần sau đây sẽ nêu ra từng hàm và việc làm tương ứng của chúng.