الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برمج أول عميل لك باستخدام Jade و Eclipse

بدأه djug في 11 ديسمبر 2008 · 18 رد · 9,233 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

logo.jpg

مقدمة:

Jade عبارة عن framework مكتوب كلية بالجافا مصمم خصيصا لبرمجة الأنظمة متعددة العملاء (multi agent systems)

سنحاول في هذه الدرس إلقاء الضوء على طريقة تنصيب الـ framework و كيفية كتابة أول Agent يقوم بطباعة جملة صغيرة

متابعة ممتعة

I/التنصيب و تشغيل الـمنصة:

1/ قم بتحميل الملف JADE-all-3.6.zip من العنوان http://jade.tilab.com/download.php

2/ قم بفك ضغط الملف (سنفرض في باقي الدرس أن المجلد الناتج بعد عملية فك الضغط هو JADE-all-3.6 est le c:\ JADE-all-3.6) ثم فك ضغط الملفات الأربعة الناتجة ذات الأسماء JADE-bin-3.6.zip , JADE-doc-3.6.zip, JADE-examples-3.6.zip, JADE-src-3.6.zip

3/ الآن يجب التعديل على متغير النظام classpath

إذا لم يكن هذا المتغير موجودا يجب إنشاؤه (في غالب الأحيان لن نجد هذا المتغير موجودا لهذا يجب إنشاؤه)

نقوم بإنشاء هذا المتغير كالتالي:

-قم بعمل click يمين على My Computer و اختر proprieties

- اختر لسان التبويب advanced

- اختر environment variables

post-61844-1229072475_thumb.jpg

- في قسم system variables ابحث عن المتغير classpath إذا لم تجده قم بإنشائه و قم بإعطائه القيمة التالية

اقتباس
C:\JADE-all-3.6\JADE-bin-3.6\jade\lib\http.jar;C:\JADE-all-3.6\JADE-bin-3.6\jade\lib\iiop.jar;C:\JADE-all-3.6\JADE-bin-3.6\jade\lib\jade.jar;C:\JADE-all-3.6\JADE-bin-3.6\jade\lib\jadeTools.jar

و التي هي عبارة عن مسارات الملفات http.jar, iiop.jar, jade.jar, jadeTools.jar الموجودة في c:\JADE-all-3.6\JADE-bin-3.6\jade\lib

مفصولة فيما بينها بـ ;

post-61844-1229072966_thumb.jpg

احفظ التغييرات

للتأكد من أن كل الخطوات السابقة تمت جيدا اكتب في نافذة run (start->run) أو في نافذة dos الأمر التالي:

Java jade.Boot –gui

ستظهر نافذة dos تقوم بتشغيل منصة الـ JADE

post-61844-1229073047_thumb.jpg

II/إنشاء أول عميل باستخدام jade:

الآن سنقوم بإنشاء أول Agent باستعمال jade

سنستعمل المثال المرفق مع المنصة و التي تجدونه في

اقتباس
C:\JADE-all-3.6\JADE-examples-3.6\jade\src\examples\hello

نفتح eclipse ننشئ مشروعا جديدا و ليكن اسمه MyFirstAgent

نضيف package جديد و ليكن اسمه firstAgent

و من ثم ننشئ class جديدة اسمها HelloWorldAgent

ننسخ الكود التالي في الـ class

  1.  
  2. package firstAgent;
  3.  
  4. import jade.core.Agent;
  5.  
  6. /**
  7.   This example shows a minimal agent that just prints "Hallo World!"
  8.   and then terminates.
  9.   @author Giovanni Caire - TILAB
  10.  */
  11. public class HelloWorldAgent extends Agent {
  12.  
  13. protected void setup() {
  14. System.out.println("Hello World! My name is "+getLocalName());
  15.  
  16. // Make this agent terminate
  17. doDelete();
  18. }
  19. }
  20.  
  21.  
  22.  
  23.  

ملاحظة: لن نهتم بشرح كل سطر و عمله لكن نهتم بكيفية الترجمة و تشغيل الـ Agent

نلاحظ وجود بعد الأخطاء في الكود مرد ذلك إلى أن eclipse لم يعرف مكان تواجد بعض الـ class التي يستعملها البريمج الصغير

نحل المشكل كالتالي:

Click يمين على اسم المشروع و اختر proprieties

و من ثم اختر

java build path >> Libraries>> add external JARs

قم بإضافة ملفات jar الأربعة التالية

"http.jar" "iiop.jar" "jade.jar" "jadeTools.jar"

الموجودة في

C:\JADE-all-3.6\JADE-bin-3.6\jade\lib

و من ثم اضغط على OK

post-61844-1229073191_thumb.jpg

الآن سنقوم بترجمة و تشغيل البرنامج

اذهب إلى

run>>Run configuration

و من ثم double click على java application

في لسان التبويب main و في خانة main class اكتب

jade.Boot

و قم باختيار

« Include librairies when searching for a main class »

post-61844-1229073344_thumb.jpg

و في لسان تبويب arguments قم بكتابة التالي:

-gui jade.Boot <NomDuL'agent>:<LeNomDuPackage>.<LeNomDeLaClasse>

أي في مثالنا هذا سنكتب

-gui jade.boot smith:firstAgent.HelloWorldAgent

post-61844-1229073456_thumb.jpg

اضغط على apply لحفظ التغيرات لكيلا نعيد العملية في كل مرة في المشروع الواحد

ومن ثم اضغط على run

ستظهر لك النتيجة و هي طباعة الـعبارة التالية في الـ console

Hello World! My name is smith

post-61844-1229073535_thumb.jpg

تم تعديل هذه المشاركة بواسطة djug في 12 ديسمبر 2008 في 12:20

1
#2

السلام عليكم،

لقد حاولت تشغيل ال gui of jadeولكني فشلت فقد ظهرت لي exception in thread main esception

علما بأني قد تتبعت خطواتك ووضعت الكلاس باث الجديد المذكور

إذن أضنني قد حفظت الملفات في المكان الخطأ أو ماذا؟

ماذا عن aglet هي شبيهة بالجاد على ما أعتقد.

#3

درس جميل أخي djug

لكن لي طلب عندك

ارفع الصور على السيرفر الخاص بالفريق

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4
اقتباس
لقد حاولت تشغيل ال gui of jadeولكني فشلت فقد ظهرت لي exception in thread main esception

هل أنت متأكد من كتابة الأمر بشكل صحيح أي

java jade.Boot -gui

لاحظ أن كلمة Boot تكتب بـ B كبير و ليس b صغير

أعد التجربة و إذا لم تنجح أخبرني لأعيد التدقيق :)

اقتباس
ارفع الصور على السيرفر الخاص بالفريق

تم

#5

السلام عليكــم ورحمـة الله وبركاتــه

نعم لقد قمت بكتابة الأمر بشكل جيد ، ولكن وجدت الخطأ في الباث فوضعت الملف JADE-all-3.6.1 في القرص سي بعد فك الضغط طبعا

ولكن لا يزال المشكل في مكان البرنامج والرسالة الظاهرة نفسها:

Exception in thread main java.lang.NoClassDefFoundError: jade/Boot.

فقمت باستخدام الملف runDemo.bat الموجود بالديمو ففتح لي تطبيق الجاد أخيرا

ولكني أستخدم النات بينز سأحاول انشاء الأول عميل به لاحقا ..

#6

ألف شكر djug

أتمنى أن نرى دروس أخرى حول الحزمة

بالمناسبة ما معنى تعدد العملاء؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7
اقتباس
ماذا عن aglet هي شبيهة بالجاد على ما أعتقد.

اعتقد ذلك من حيث ال Functionality

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#8
اقتباس
بالمناسبة ما معنى تعدد العملاء؟

تعدد العملاء يعني أنه في النظام الذي سنقوم بإنشائه لا نعتمد على عميل واحد و لكن على عدة عملاء (أكثر من واحد)

من بين مميزات كل عميل الاستقلالية autonomy و الذكاء الاصطناعي

يمكن للعملاء التواصل مع بعض لحل مشكل ما وفق استراتيجية مبنية سلفا (و إذا كان مستوى الذكاء الاصطناعي عاليا يمكن إنشاء استراتيجية جديدة من طرف العملاء فيما بينهم)

#9

طيب هل بالإمكان توسيف المثال قليلاً؟

لكي نقول بأنه يعطي صورة واضحة لتعدد العملاء

أعرف أنك مبتدئ في هذا المجال أخي djug

لكني أنوي استغلالك إلى أبعد مدى :lol:

طبعاً الموضوع راجع لمعرفتك ووقت فراغك

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#10

أعطيك مثالا قد يوضح الصورة

لنفرض أننا بصدد برمجة عدة robots لتقوم برفع جسم معين من المكان أ إلى المكان ب

كل robot يمثل Agent

هل يمكن برمجة خوارزمية لعمل ذلك ؟؟ هل ذلك ممكن ؟ لنفرض أن مجال العمل هو مساحة كبيرة نسبيا فيها بعد الحواجز التي تعيق الـ robots من التنقل

لحل مثل هذه المشاكل نقوم ببرمجة Agents تمثل الـ Robots لكل robot نمط معين behaviour

بحيث أن كل Robot يساعد الآخر وفق استراتيجية معينة لحل المشكل (نقل المجسم من مكان إلى آخر)

مثال آخر:

كيف يتم تجانب تصادم الطائرات في الجو مع أن كل طائرة لا تملك جميع مسارات الطائرات الأخرى في الجو؟

يتم ذلك عن طريق الـ Multi agent system

كل Agent يقوم بتعديل مساره دوريا حسب المعطيات الواردة له من الـ Agents الآخرين و ذلك وفق استراتيجية معينة

اقتباس
أعرف أنك مبتدئ في هذا المجال أخي djug

أؤكد ذلك

اقتباس
لكني أنوي استغلالك إلى أبعد مدى laugh.gif

طبعاً الموضوع راجع لمعرفتك ووقت فراغك

سأحاول بإذن الله الكتابة في هذا المجال مع تعمقي فيه

اقتباس
تحياتي

:angry: :o

#11

مازالت الرؤية مشوشة بعض الشيء

ما رأيك أن ترينا شيئاَ على الجاد

أقصد مثال بسيط

عميلين يقومون بشيء ما

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#12
علاء الصالحي كتب:
مازالت الرؤية مشوشة بعض الشيء

ما رأيك أن ترينا شيئاَ على الجاد

أقصد مثال بسيط

عميلين يقومون بشيء ما

تحياتي

لاحقا إن شاء الله تعالى سأقوم بذلك (على كل حال توجد أمثلة مرفقة مع الـ Jade)

#13

السلام عليكم

مشكورين على المعلومات الهامة حول الجادJADE وشكرا لكم

لكن لمادا هذا التوقف

أرجوا المتابعة

وأنا معكم بادن الله

#14

كتاب يثري الموضوع

Developing Multi-Agent Systems with JADE (Wiley Series in Agent Technology)

by: Fabio Luigi Bellifemine, Giovanni Caire, Dominic Greenwood,

▲ -1

الحمد لله الذي هدانا لهذا وماكنا لنهتدي لولا ان هدانا الله

#15

السلام عليكم ورحمه الله

مشكور اخي علي هذا الشرح

انا مبتدي في الجافا

وعند عمل هذه الخطوات لم تنجح معي

class "HelloWorldagent"does not have a main method.

ماهو الحل

علما باني استخدم NetBeans

#16

مرحبا :)

الموضوع صارلو سنين لكن اتمنى ان القى المساعدة

جميع الخطوات تسير بالشكل الصحيح بالنسبة للاصدار 3.6 ولكن بالنسبة للاصدار 4.2.0 أعتقد انه يجب ان يكون هناك بعض التغييرات ارجو مساعدتي بها :thinking: :thinking: :resentful:

▲ 1
#17
المحترفة كتب:

مرحبا :)

الموضوع صارلو سنين لكن اتمنى ان القى المساعدة

جميع الخطوات تسير بالشكل الصحيح بالنسبة للاصدار 3.6 ولكن بالنسبة للاصدار 4.2.0 أعتقد انه يجب ان يكون هناك بعض التغييرات ارجو مساعدتي بها :thinking: :thinking: :resentful:

المحترفة انا جربت التعليمات وهي تسير بشكل جيد في كلا الإصدارين بامكانك وضع رسالة الخطا او طرح المشكل وسنرى ما الحل باذن الله :)

#18
hager42 كتب:

السلام عليكم ورحمه الله

مشكور اخي علي هذا الشرح

انا مبتدي في الجافا

وعند عمل هذه الخطوات لم تنجح معي

class "HelloWorldagent"does not have a main method.

ماهو الحل

علما باني استخدم NetBeans

اعتقد ان الخطأ هو تعليمات التنفيذ run configuration لذلك عليك

كتابة jade.Boot في main class

#19

السلام عليكم

هذه مشكله واجهتني عند تاكد من ان برنامج يعمل لكن البرنامج عند عمل run في eclipse   يظهر شاشه JADE 

ممكن الحل بعد اذنكم  

Capture.PNG

مواضيع مشابهة