Agents are considered a middleware that consists of several components: entities (objects, threads), media (communication between one agent and another), and laws (rules on agents communication coordination).
Agents perform tasks on behalf of the user. It can make decisions as to the best approach to accomplish the task. An example of this decision making process is to send a black-and-white picture as opposed to a colored picture, because the bandwidth is tight and the color in not needed for the particular application The agent performs a name to object reference mapping and sends a handle back to the client. The client uses the handle to contact the server and receive the desired services.
The strengths of an agent middleware are:
* Agents can perform task on behalf of the user and therefore make decisions as to the best quality for the purpose and no better.
* Agents are adaptable so they can cover a broad range of strategies based on the computing environment around them
The weakness of an agent middleware is:
* Agents are complex, hard to understand, and will require a great deal of manpower to incorporate them into a system