Агентно-ориентированное программирование - Agent-oriented programming

Агентно-ориентированное программирование ( АОП ) - это парадигма программирования, в которой создание программного обеспечения сосредоточено на концепции программных агентов . В отличие от объектно-ориентированного программирования, в основе которого лежат объекты (предоставляющие методы с переменными параметрами), в основе АОП есть определенные извне агенты (с интерфейсами и возможностями обмена сообщениями). Их можно рассматривать как абстракции объектов. Обмененные сообщения интерпретируются получением «агентов» способом, специфичным для этого класса агентов.

История

Исторически концепция агентно-ориентированного программирования и идея центрирования программного обеспечения вокруг концепции агента были введены Йоавом Шохамом в его исследованиях искусственного интеллекта в 1990 году. Его агенты специфичны для его собственной парадигмы, поскольку у них есть только один метод с единственный параметр. Процитируем Йоава Шохама из его статьи 1990 года о фундаментальном различии между АОП и ООП:

... агентно-ориентированное программирование (АОП), которое можно рассматривать как специализацию объектно-ориентированного программирования. ...
ООП АОП
Базовый блок объект агент
Параметры, определяющие состояние базового блока неограниченный убеждения, обязательства, возможности, выбор, ...
Процесс вычисления передача сообщений и методы ответа передача сообщений и методы ответа
Типы сообщений неограниченный информировать, запрашивать, предлагать, обещать, отклонять, ...
Ограничения на методы никто честность, последовательность, ...

Каркасы

Существует несколько «фреймворков» АОП, также называемых платформами агентов, которые реализуют парадигму программирования Шохама. Следующие примеры иллюстрируют, как базовый агент программируется как программа hello-world.

ДЖЕЙД

Для Java-платформы одним из фреймворков является JADE ( https://web.archive.org/web/20100621141053/http://jade.tilab.com/ ). Вот очень простой пример [1] агента, который запускает код

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");
	}

}

В основе модели АОП JADE лежит то, что ее API поддерживает стандартный язык общения агентов FIPA.

Говорящий агент (Джейсон)

Для дословного перевода агентно-ориентированных концепций в схему, не запутанную, как в JADE, за Java и объектно-ориентированностью Agent Speak (Джейсон) предоставляет «естественный» язык для агентов.

	
	started.

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

ЦЕЛЬ

GOAL - это язык программирования агентов для программирования когнитивных агентов . ЦЕЛЕВЫЕ агенты выбирают действия, исходя из своих убеждений и целей. Язык предоставляет основные строительные блоки для разработки и реализации когнитивных агентов с помощью программных конструкций, которые позволяют и облегчают манипулирование убеждениями и целями агента и структурируют его принятие решений . Язык предоставляет интуитивно понятную структуру программирования, основанную на здравом смысле или практических соображениях .

SARL язык

SARL ( веб-сайт SARL ) предоставляет фундаментальные абстракции для кодирования многоагентных систем. Он использует синтаксис, подобный сценарию (вдохновлен Scala и Ruby).

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

ПО промежуточного слоя

Одним из способов реализации модульной или расширяемой поддержки АОП является определение стандартных API АОП для функций промежуточного программного обеспечения , которые сами реализуются как программные агенты . Например, служба каталогов может быть реализована как помощник по каталогу FIPA или программный агент DF; Управление жизненным циклом для запуска, остановки, приостановки и возобновления работы агентов может быть реализовано как служба управления агентом FIPA или агент AMS. Преимущество подхода АОП заключается в том, что он поддерживает более динамичные роли между разными пользователями и поставщиками приложений, услуг и сетей. Например, традиционно сети и услуги обычно управлялись сетью и поставщиком услуг от имени клиента и предлагались как единая виртуальная сетевая услуга, но сами клиенты получают больше возможностей для интеграции и управления своими собственными услугами. Этого можно достичь с помощью AOP и API-интерфейсов для агентов промежуточного программного обеспечения, которые могут гибко и динамически управлять обменом данными.

Смотрите также

Рекомендации