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

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

История

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

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

Каркасы

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

ДЖЕЙД

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

упаковка Привет, мир;импорт jade.core.Agent;общественный учебный класс Привет расширяет Агент {		защищенный пустота настраивать() { 		Система.из.println("Привет, мир. ");		Система.из.println("Меня зовут "+ getLocalName()); 	}		общественный Привет() {		Система.из.println("Конструктор называется");	}}

В основе модели АОП JADE лежит ее API поддерживает стандарт ФИПА Язык общения агента

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

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

		началось.	+началось <- .Распечатать("Привет, мир. ").

ЦЕЛЬ

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

SARL язык

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

упаковка Привет, миримпорт io.sarl.core.Initializeагент HelloWorldAgent {        на Инициализировать {	             println("Привет, мир.")        }}

Промежуточное ПО

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

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

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

  1. ^ Шохам, Ю. (1990). Агентно-ориентированное программирование (Технический отчет STAN-CS-90-1335). Стэнфордский университет: факультет компьютерных наук.
  2. ^ Шохам, Ю. (1993). «Агентно-ориентированное программирование». Искусственный интеллект. 60 (1): 51–92. CiteSeerX  10.1.1.123.5119. Дои:10.1016/0004-3702(93)90034-9.
  3. ^ Bellifeminee, Фабио; Агостино Погги; Джованни Римасса (2001). JADE: среда разработки агентов, совместимая с FIPA2000. Материалы пятой международной конференции по автономным агентам. С. 216–217. Дои:10.1145/375735.376120.
  4. ^ Ананд С. Рао, 1996. AgentSpeak (L): Агенты BDI говорят на логически вычислимом языке. Труды седьмого европейского семинара по моделированию автономных агентов в многоагентном мире (MAAMAW-96).
  5. ^ Родригес, Себастьян; Гауд, Николас; Галланд, Стефан (2014). «SARL: язык программирования общего назначения, ориентированный на агентов». 2014 Совместные международные конференции IEEE / WIC / ACM по веб-аналитике (WI) и технологиям интеллектуальных агентов (IAT). С. 103–110. Дои:10.1109 / Wi-iat.2014.156. ISBN  978-1-4799-4143-8.
  6. ^ Послад, С (2007). «Определение протоколов для взаимодействия с мультиагентной системой». Транзакции ACM в автономных и адаптивных системах. 2 (4): 15 – es. Дои:10.1145/1293731.1293735.
  7. ^ Послад, S; Дж. Питт; А. Мамдани; Р. Хадингем; П. Бакл (1999). Агентно-ориентированное промежуточное ПО для интеграции сетевых сервисов клиентов. В: Программные агенты для будущих систем связи, Hayzelden A, Bigham J Eds.. С. 221–242. Дои:10.1007/978-3-642-58418-3_9.