Ajan odaklı programlama - Agent-oriented programming

Ajan yönelimli programlama ( AOP ), yazılımın yapılandırılmasının yazılım aracıları kavramına odaklandığı bir programlama paradigmasıdır . Özünde nesnelere (değişken parametrelerle yöntemler sağlayan) sahip nesne yönelimli programlamanın aksine , AOP'nin özünde harici olarak belirlenmiş aracılar (arayüzler ve mesajlaşma yetenekleri ile) vardır. Nesnelerin soyutlamaları olarak düşünülebilirler. Değiştirilen mesajlar, kendi aracı sınıfına özgü bir şekilde "aracılar" alınarak yorumlanır.

Tarih

Tarihsel olarak, etmen yönelimli programlama kavramı ve yazılımı bir Aracı kavramı etrafında merkezleme fikri, 1990 yılında Yapay Zeka çalışmaları kapsamında Yoav Shoham tarafından tanıtıldı. Temsilcileri, yalnızca bir yöntemi olduğundan, kendi paradigmasına özgüdür. tek bir parametre. AOP ve OOP arasındaki temel bir fark için Yoav Shoham'ın 1990'daki makalesinden alıntı yapmak için:

...aracı yönelimli programlama (AOP), nesne yönelimli programlamanın bir uzmanlığı olarak görülebilir. ...
OOP AOP
Temel birim nesne ajan
Temel birimin durumunu tanımlayan parametreler kısıtlamasız inançlar, taahhütler, yetenekler, seçimler, ...
hesaplama süreci mesaj geçişi ve yanıt yöntemleri mesaj geçişi ve yanıt yöntemleri
Mesaj türleri kısıtlamasız bilgilendirmek, talep etmek, teklif etmek, söz vermek, reddetmek, ...
Yöntemler üzerindeki kısıtlamalar Yok dürüstlük, tutarlılık,...

çerçeveler

Shoham'ın programlama paradigmasını uygulayan, aracı platformlar olarak da adlandırılan birden çok AOP 'çerçevesi' vardır. Aşağıdaki örnekler, temel bir aracının merhaba dünya programı olarak nasıl programlandığını gösterir.

yeşim

Java platformu için çerçevelerden biri JADE'dir ( https://web.archive.org/web/20100621141053/http://jade.tilab.com/ ). İşte kod çalıştıran bir aracının çok basit bir örneği [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'nin AOP modelinin özünde, API'sinin standart FIPA Temsilci İletişim Dilini desteklemesi yatmaktadır.

Ajan Konuş (Jason)

Ajan yönelimli kavramların JADE'de olduğu gibi, Java ve Nesne Yönelimliliğin arkasında olduğu gibi karıştırılmamış bir şemaya gerçek çevirisi için, Ajan Speak (Jason), aracılar için "doğal" bir dil sağlar.

	
	started.

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

HEDEF

GOAL , bilişsel ajanları programlamak için bir ajan programlama dilidir . GOAL ajanları, eylem seçimlerini inançlarından ve hedeflerinden alır. Dil, bir etmen inançlarının ve hedeflerinin manipülasyonuna izin veren ve bunu kolaylaştıran ve karar vermesini yapılandıran yapıları programlayarak bilişsel ajanları tasarlamak ve uygulamak için temel yapı taşlarını sağlar . Dil, sağduyuya veya pratik akıl yürütmeye dayalı sezgisel bir programlama çerçevesi sağlar .

SARL Dili

SARL ( SARL web sitesi ), çok etmenli sistemleri kodlamak için temel soyutlamaları sağlar. Komut dosyası benzeri bir sözdizimi kullanır (Scala ve Ruby'den esinlenmiştir).

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

ara katman

Modüler veya genişletilebilir AOP destek uygulamak için bir yolu standart AOP tanımlamaktır API'leri için ara katman kendilerini hayata olan fonksiyonlar yazılım ajanları . Örneğin, bir dizin hizmeti, bir FIPA dizin kolaylaştırıcısı veya DF yazılım aracısı olarak uygulanabilir; Ajanları başlatmak, durdurmak, askıya almak ve sürdürmek için yaşam döngüsü yönetimi, bir FIPA Ajan Yönetim Hizmeti veya AMS ajanı olarak uygulanabilir. AOP yaklaşımının bir yararı, farklı kullanıcılar ve uygulama, hizmet ve ağ sağlayıcıları arasında daha dinamik rolleri desteklemesidir. Örneğin, geleneksel olarak ağlar ve hizmetler, genellikle müşteri adına ağ ve hizmet sağlayıcı tarafından yönetiliyordu ve tek bir sanal ağ hizmeti olarak sunuluyordu, ancak müşterilerin kendileri, kendi hizmetlerini entegre etme ve yönetme konusunda daha güçlü hale geliyor. Bu, iletişimi esnek ve dinamik bir şekilde yönetebilen ara yazılım aracılarına AOP ve API'ler aracılığıyla sağlanabilir.

Ayrıca bakınız

Referanslar