Programación orientada a agentes - Agent-oriented programming

La programación orientada a agentes ( AOP ) es un paradigma de programación donde la construcción del software se centra en el concepto de agentes software . A diferencia de la programación orientada a objetos que tiene objetos (que proporcionan métodos con parámetros variables) en su núcleo, AOP tiene agentes especificados externamente (con interfaces y capacidades de mensajería) en su núcleo. Pueden considerarse abstracciones de objetos. Los mensajes intercambiados son interpretados por "agentes" receptores, de una manera específica a su clase de agentes.

Historia

Históricamente, el concepto de programación orientada a agentes y la idea de centrar el software en torno al concepto de agente fue introducido por Yoav Shoham dentro de sus estudios de Inteligencia Artificial en 1990. Sus agentes son específicos de su propio paradigma, ya que solo tienen un método, con un solo parámetro. Para citar a Yoav Shoham de su artículo de 1990 para una diferencia básica entre AOP y OOP:

... programación orientada a agentes (AOP), que puede verse como una especialización de la programación orientada a objetos. ...
OOP AOP
Unidad básica objeto agente
Parámetros que definen el estado de la unidad básica sin restricciones creencias, compromisos, capacidades, elecciones, ...
Proceso de computación métodos de paso y respuesta de mensajes métodos de paso y respuesta de mensajes
Tipos de mensaje sin restricciones informar, solicitar, ofrecer, prometer, rechazar, ...
Restricciones de los métodos ninguno honestidad, coherencia, ...

Frameworks

Existen múltiples 'marcos' de AOP, también llamados plataformas de agentes, que implementan el paradigma de programación de Shoham. Los siguientes ejemplos ilustran cómo se programa un agente básico como un programa de saludo mundial.

JADE

Para la plataforma Java, uno de los marcos es JADE ( https://web.archive.org/web/20100621141053/http://jade.tilab.com/ ). A continuación, se muestra un ejemplo muy básico [1] de un agente que ejecuta código.

package helloworld;
import jade.core.Agent;

public class Hello extends Agent {
	
	protected void setup() { 
		System.out.println("Hello World. ");
		System.out.println("My name is "+ getLocalName()); 
	}
	
	public Hello() {
		System.out.println("Constructor called");
	}

}

El núcleo del modelo AOP de JADE es que su API es compatible con el lenguaje de comunicación de agentes FIPA estándar.

Agente Speak (Jason)

Para una traducción literal de conceptos orientados a agentes en un esquema no confuso como es JADE, detrás de Java y Orientación a objetos, Agent Speak (Jason) proporciona un lenguaje "natural" para los agentes.

	
	started.

	+started <- .print("Hello World. ").

OBJETIVO

GOAL es un lenguaje de programación de agentes para programar agentes cognitivos . Los agentes de GOAL derivan su elección de acción de sus creencias y metas. El lenguaje proporciona los bloques de construcción básicos para diseñar e implementar agentes cognitivos mediante la programación de constructos que permiten y facilitan la manipulación de las creencias y metas de un agente y para estructurar su toma de decisiones . El lenguaje proporciona un marco de programación intuitivo basado en el sentido común o el razonamiento práctico .

Lenguaje SARL

SARL ( sitio web de SARL ) proporciona las abstracciones fundamentales para codificar sistemas de agentes múltiples. Utiliza una sintaxis similar a un script (inspirada en Scala y Ruby).

package helloworld
import io.sarl.core.Initialize
agent HelloWorldAgent {
        on Initialize {	
             println("Hello World.")
        }
}

Middleware

Una forma de implementar el soporte AOP modular o extensible es definir API AOP estándar para funciones de middleware que se implementan como agentes de software . Por ejemplo, un servicio de directorio se puede implementar como un facilitador de directorio FIPA o un agente de software DF; La gestión del ciclo de vida para iniciar, detener, suspender y reanudar agentes se puede implementar como un servicio de gestión de agentes FIPA o un agente AMS. Una ventaja del enfoque AOP es que admite roles más dinámicos entre diferentes usuarios y proveedores de aplicaciones, servicios y redes. Por ejemplo, tradicionalmente, las redes y los servicios solían ser administrados por la red y el proveedor de servicios en nombre del cliente y se ofrecían como un único servicio de red virtual, pero los propios clientes están cada vez más capacitados para integrar y administrar sus propios servicios. Esto se puede lograr a través de AOP y API para agentes de middleware que pueden administrar la comunicación de manera flexible y dinámica.

Ver también

Referencias