البرمجة الموجهة للعميل

**البرمجة الموجهة للعميل**  (**AOP**) هي نموذج برمجي حيث يتمحور بناء البرنامج على مفهوم عملاء البرمجيات. على النقيض من البرمجة الموجهة للكائنات التي تحتوي على كائنات (توفير طرق بمعلمات متغيرة) في جوهرها، فإن **البرمجة الموجهة للعميل** لديها عوامل محددة خارجيًا (مع واجهات وقدرات رسائل) في جوهرها. يمكن اعتبارها تجريد للكائنات. يتم تفسير الرسائل المتبادلة عن طريق استقبال «الوكلاء» بطريقة محددة لصنف وكلائها.

## التاريخ
تاريخياً، قدم يوآف شوهام مفهوم البرمجة الموجهة للوكيل وفكرة تركيز البرمجيات حول مفهوم الوكيل في دراسات الذكاء الاصطناعي عام 1990. وكلائه محددون بنموذجه الخاص لأن لديهم طريقة واحدة فقط، مع معلمة واحدة. على حد تعبير يوآف شوهام من ورقته في عام 1990 عن فرق أساسي بين البرمجة الموجهة للعميل والبرمجة الموجهة للكائنات. البرمجة الموجهة للوكيل (AOP)، والتي يمكن اعتبارها تخصصًا للبرمجة الموجهة للكائنات.

## أطر الأعمال
هناك العديد من «أطر عمل AOP»، وتسمى أيضًا منصات الوكيل، والتي تطبق نموذج برمجة شوهام Shoham. توضح الأمثلة التالية كيف تتم برمجة العامل الأساسي كبرنامج «مرحبا يا عالم!» (hello-world).

### جِيَدْ
بالنسبة لمنصة جافا، أحد الإطارات هو JAD E. فيما يلي مثال أساسي للغاية https://web.archive.org/web/20110702083510/http://rootdev.nl/blog/article/aop_jade_configure_in_eclipse_and_netbeans لعامل يقوم بتشغيل التعليمات البرمجية 
```java
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");
	}

}
```
 في صميم نموذج AOP الخاص بـ JADE هو أن API الخاص به يدعم لغة اتصال وكيل FIPA القياسية

### Agent Speak (Jason)
للحصول على ترجمة حرفية للمفاهيم الموجهة إلى الوكيل إلى مخطط غير مبهم كما هو JADE، وراء جافا والتوجيه الكائن، يوفر Agent Speak (Jason) لغة «طبيعية» للوكلاء. 
```java
started.

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


### غول
غول GOAL هي لغة برمجة وكيل لبرمجة العوامل المعرفية. يستمد وكلاء غول اختيارهم للعمل من معتقداتهم وأهدافهم. توفر اللغة اللبنات الأساسية لتصميم وتنفيذ العوامل المعرفية من خلال تراكيب البرمجة التي تسمح وتيسر التلاعب بمعتقدات الوكيل وأهدافه وهيكلية صنع القرار. توفر اللغة إطار برمجة بديهي يعتمد على الحس السليم أو المنطق العملي.

### لغة سارل
يوفر سارل  (موقع SARL) الملخصات الأساسية لترميز الأنظمة متعددة الوكالات. يستخدم بناء جملة يشبه البرنامج النصي (مستوحى من سكالا وروبي). 
```java
package helloworld
import io.sarl.core.Initialize
agent HelloWorldAgent {
    on Initialize {	
       println("Hello World.")
    }
}
```


## البرامجيات الوسيطة
تتمثل إحدى طرق تنفيذ دعم AOP المعياري أو القابل للتوسيع في تحديد واجهات برمجة تطبيقات AOP القياسية لوظائف البرامج الوسيطة التي يتم تنفيذها هي نفسها كوكلاء برامج. على سبيل المثال، يمكن تنفيذ خدمة الدليل كمنسق دليل FIPA أو وكيل برنامج DF؛ يمكن تنفيذ إدارة دورة الحياة لبدء وكلاء ووقفهم وتعليقهم واستئنافهم كخدمة إدارة وكيل FIPA أو وكيل AMS. تتمثل فائدة منهج AOP في أنه يدعم أدوارًا أكثر ديناميكية بين مختلف المستخدمين وموفري التطبيقات والخدمات والشبكات. على سبيل المثال، عادةً ما تتم إدارة الشبكات والخدمات عادةً بواسطة الشبكة ومزود الخدمة بالنيابة عن العميل ويتم تقديمها كخدمة شبكة افتراضية واحدة ولكن العملاء أنفسهم أصبحوا أكثر تفويضًا لدمج وإدارة خدماتهم الخاصة. يمكن تحقيق ذلك عبر AOP و APIs لوكلاء البرامج الوسيطة الذين يمكنهم إدارة الاتصالات بمرونة وديناميكية.

## انظر أيضا

* وكيل البرمجيات

## المراجع

تصنيف:لغات برمجة معتمدة على الوكيل