miércoles, 17 de febrero de 2010

Agentes de Software

Agente de software, es una parte del software que actúa para un usuario u otro programa como agente. El agente tiene la autoridad de decidir cuándo una acción es apropiada (y si es apropiada). La idea es que los agentes no son estrictamente invocados para un tarea, sino que se activan ellos mismos.



El término "agente" describe una abstracción de software, una idea o concepto, similar a los métodos, funciones y objetos en la programación orientada a objetos. El concepto de un agente provee una forma conveniente y poderosa de describir una compleja entidad de software, que es capaz de actuar con cierto grado de autonomía, para cumplir tareas en representación de de personas. Pero a diferencia de los objetos (que son definidos por métodos y atributos), un agente es definido por su propio comportamiento.



Varios autores han propuesto diferentes definiciones de agentes, estos incluyen generalmente conceptos como:

- Persistencia: el código no es ejecutado bajo demanda sino que se ejecuta continuamente y decide por sí mismo cuándo debería llevar a cabo alguna actividad.

- Autonomía: los agentes tienen la capacidad de seleccionar tareas, priorizarlas, tomar decisiones sin intervención humana, etc.

- Capacidad o habilidad social: los agentes son capaces de tomar otros componentes, a través coordinación y comunicación, que puedan colaborar en una tarea.

- Reactividad: los agentes perciben el contexto en el cual operan y reaccionan a éste apropiadamente.