JADE چیست ؟
(JADE -Java Agent Development Framework) یک قالب توسعه ی نرم افزاری است که هدف از آن توسعه ی سامانه های چندعاملی و برنامه های مطابق با معیارهای فیپا برای عاملهای هوشمند می باشد. این قالب شامل دو محصول اصلی است: یک پلتفرم عاملی مطابق فیپا و یک بسته برای توسعه ی عاملهای جاوا. JADE تماماً با جاوا کدنویسی شده و یک برنامه نویس عامل ، برای اینکه از این قالب استفاده کند، باید عامل های خود را با جاوا بنویسد و برای این کار می بایست از راهنماهای موجود دراین راهنمای برنامهنویس استفاده نماید. این راهنما فرض بر این دارد که خواننده با استانداردهای فیپا ، حدّاقل با مشخّصات مدیریت عامل (فیپا شماره 61)، زبان ارتباطی عاملی ، و ساختار پیام ACL (فیپا شماره 61) آشناست. JADE با زبان برنامهنویسی جاوا نوشته شده و متشکل از بستههای مختلف جاواست که به برنامهنویسان کاربردی تکههای آمادهی کاربردی و واسطهای انتزاعی برای وظایف سفارشی، مبتنی بر کاربرد می دهد. از جاوا به علّت ویژگیهای جالب آن، بخصوص جهتگیری آن به سمت برنامهنویسی شیء گرا در محیطهای توزیع شده ی گوناگون استفاده می شود؛ برخی از این ویژگیها عبارتند از سریال سازی شیء ، واسط برنامهنویسی انعکاسی و فراخوانی از دور متد RMI . JADE از بستههای اصلی ذیل تشکیل یافته است:
Jade.core کرنل سیستم را پیادهسازی می کند. این بخش شامل کلاس Agent است که می بایست توسّط برنامهنویسان کاربردی توسعه داده شود. بعلاوه، سلسله مراتبی از کلاس Behaviour در زیربستهی jade.core.behaviours واقع است. رفتارها وظایف، یا مقاصد یک عامل را پیاده سازی می کنند. آنها واحدهای منطقی فعالیت هستند که می توانند به طرق مختلفی ایجاد گردند تا الگوهای اجرایی پیچیده بدست آید و همچنین این واحدها می توانند به صورت همزمان اجرا شوند. برنامهنویسان کاربردی عملیات عامل را با نوشتن رفتارها و مسیرهای اجرایی عاملی متصل کنندهی آنها تعریف می نمایند. JADE به همراه دستهای از ابزار عرضه می شود که کار مدیریت پلتفرم و توسعهی برنامهی کاربردی را آسان می سازند. هر ابزار در زیربستهی مجزّایی از jade.tools واقع شده است. در حال حاضر ابزارهای ذیل موجود هستند: عامل مدیریت دور، که به اختصار RMA گفته می شود و به عنوان یک کنسول گرافیکی برای مدیریت و کنترل پلتفرم به کار می رود. یک نمونهی اوّلیه از یک RMA می تواند با یک گزینهی خط فرمانی (-gui) شروع به کار کند، امّا آن گاه بیش از یک GUI می تواند فعال شود. JADE به وسیلهی ارسال وقایع به همگی RMAها انسجام بین آنها را حفظ می کند، کنسول RMA قادر به راهاندازی دیگر ابزارهای JADE است. عامل قلابییک ابزار نظارتی و اشکالزدایی، متشکل از یک واسط کاربری گرافیکی و یک عامل زیرین JADE است. با استفاده از واسط کاربری گرافیکی می توان پیغامهای ACL را ایجاد کرد و به دیگر عامل ها فرستاد؛ همچنین می توان لیست تمامی پیغامهای ACL فرستاده شده یا دریافت شده را که با اطلاعات «مهر زمانی» تکمیل می شوند تا امکان ضبط و تکرار مکالمهی عاملی فراهم شود، نمایش داد.
Sniffer؛ این عامل، زمانی که پیغامهای ACL در راه هستند، می تواند راه آنها را ببندد، و به شکل گرافیکی آنها را با استفاده از نمایشی شبیه دیاگرامهای دنبالهای UML نمایش می دهد. این عامل با ملاحظهی چگونگی ردّ و بدل پیغامهای ACL توسّط جوامع عامل برای اشکالزدایی آنها قابل استفاده است.
Introspector عاملی است که امکان نظارت بر چرخهی حیات یک عامل، پیامهای رد و بدل شدهی ACL آن و رفتارهای در حال اجرا را فراهم می کند.
ویژگیهای JADE:
موارد ذیل لیستی از ویژگیهایی است که JADE به برنامه نویس عامل ارائه می نماید: پلتفرم عاملی توزیع شده. پلتفرم عاملی می تواند میان چندین میزبان توزیع شود. تنها یک برنامهی کاربردی جاوا، و بنابراین تنها یک ماشین مجازی جاوا، بر روی هر میزبان اجرا می گردد. عاملها به عنوان نخهای جاوا پیادهسازی می شوند و در داخل «حاملهای عامل» که پشتیبانی زمان اجرا برای اجرای عامل فراهم می کنند به حیات خود ادامه می دهند.
- واسط کاربری گرافیکی برای مدیریت چندین عامل و حامل عامل از یک میزبان دور.
- ابزارهای اشکالزدایی برای کمک به توسعهی برنامههای چندعاملی مبتنی بر JADE.
- قابلیت جابجایی بین پلتفرمی، از جمله انتقال حالت و کد عامل (در صورت نیاز).
- پشتیبانی از اجرای فعالیتهای موازی و همزمان به وسیلهی مدل رفتاری. JADE رفتارهای عاملی را با یک روش غیرپیشگیرانه زمان بندی می کند.
- پلتفرم عاملی منطبق با FIPA، که شامل AMS (سیستم مدیریت عامل ) و DF (تسهیل کنندهی دایرکتوری ) می باشد. این اجزا به شکل خودکار در زمان شروع به کار پلتفرم عامل فعّال می گردند.
بسیاری از DF های منطبق با FIPA می توانند در زمان اجرا شروع به کار کنند تا برنامههای کاربردی چنددامنهای پیاده سازی کنند، که در آنها یک دامنه دستهای منطقی از عاملهایی است که سرویسهای آنها به واسطهی یک تسهیلگر عمومی تبلیغ می شود. هر تسهیلگر دایرکتوری یک واسط کاربری گرافیکی و تمامی قابلیتهای استاندارد تعریف شده توسّط فیپا (قابلیت ثبت، حذف، تغییر و جستجوی توضیحات عاملها؛ و قابلیت یگانهسازی در داخل شبکهای از DF ها) را به ارث می برد. انتقال مناسب پیغامهای ACL در داخل پلتفرم عاملی یکسان. در حقیقت، پیغامها به شکل اشیاء کدشدهی جاوا منتقل می شوند، و نه به شکل رشته، تا از روالهای جمعآوری و پراکنده سازی جلوگیری شود. در زمان گذشتن از مرزهای پلتفرمی، پیغام به صورت خودکار به سینتکس، کدگذاری و پروتکل منطبق با FIPA تبدیل می شود و یا عکس این فرایند صورت می پذیرد(کدگشایی). این تبدیل برای آن دسته از پیادهسازان عامل روشن است که تنها نیاز دارند با اشیاء جاوا کار کنند.
سيستم چندعاملي (Multi Agent Systems):
سيستم چندعاملي (Multi Agent Systems) يا به اختصار MAS روش نويني براي حل مسائل و پيادهسازي پروژههاي نرمافزاري رايانهاي است. با اينکه زمان زيادي از پيدايش اين گونه سيستمها نميگذرد ولي استفاده از روشهاي طراحي بر اساس عامل يکي از موفقترين راهحلهاي موجود بوده و حاصل اين شيوه طراحي يعني سيستم حل مسائل به صورت توزيعشده از بهترين سيستمها به شمار ميآيد و به عنوان ابزار جديدي براي حل انواع فرآيندهاي انساني شناخته ميشود. اين نوع سيستمها نسبت به سيستمهاي معمولي و تکعاملي، مزاياي زيادي دارند؛ از جمله اينکه در اکثر شرايط کار ميکنند. به اين معنا که چون مغز متفکر واحد ندارند و تصميمگيري در آنها به صورت توزيعشده است، چنانچه حتي بخشي از آنها نيز از کار بيفتد باز هم به کار خود ادامه ميدهند. همچنين اين نوع سيستمها براي محيطهايي با مقياس وسيع(Large Scale) و محيطهاي ناشناخته نيز گزينه مناسبي نسبت به سيستمهاي تکعاملي به شمار ميآيند. سيستمهاي مبتني بر عامل، پردازش موازي را آسان کرده و به راحتي موازي ميشوند. منظور از پردازش موازي اين است که به جاي انجام يک پروژه با محاسبات زياد و پردازشهاي سنگين توسط يک پردازشگر، همان پروژه را به پردازشهاي کوچکتر با حجم محاسبات کمتر شکسته و آن را توسط چندين عامل انجام دهيم. مثلاً ميزي را تصور کنيد که براي بلند کردنش به ۱۰۰ نيوتن نيرو احتياج داريم، حال هم ميتوانيم آن را توسط يک نفر که توانايي اعمال ۱۰۰ نيوتن نيرو را دارد، بلند کنيم و هم اين کار را به کمک چهار نفر که هر کدام ۲۵ نيوتن نيرو به اشتراک ميگذارند، انجام دهيم. در نتيجه، هزينهها در چنين سيستمي پايين ميآيد و نيازي به صرف هزينه کلان جهت ايجاد امکان پردازش سنگين براي يک عامل نيست. در اين صورت، چندين عامل با قدرت پردازشي کمتر همان کار را حتي سريعتر انجام ميدهند. البته اين نوع سيستمها به نوبه خود معايبي نيز دارند که استفاده از آنها را محدود ميکند. مهمترين عيب اين سيستم عاملها، کندي اندک در کار طراحي آنها و موازيسازي است که به نتيجه رساندن پروژه را به تعويق مياندازد.
هدف از این پروژه
هدف از این پروژه این است که با استفاده از چارچوب نرم افزاری jade یک سیستم چند عامله برای خرید و فروش سهام بنویسیم. در این سیستم تعدادی شرکت سهامی عام وجود دارد که سهم آنها در بورس خرید و فروش میشود. به صورت سنتی مسئول خرید و فروش سهم بر عهده کارگزاریها است. اما در این سیستم قصد داریم که از یک سیستم چند عامله به جای کارگزاری استفاده کنیم. در این سیستم هر فروشنده تقاضای فروش سهم خود را ارائه میکند. تعدادی خریدار هم وجود دارند. هر خریدار میتواند بخشی و یا همه سهم یک فروشنده را خریداری نماید.شود . که به زبان جاوا و فریمورک قدرتمند jade نوشته شده است .و حاوی داکیومنت کامل و نحوه اجرای کدها است :
شرح سناریو پروژه:
هدف از این پروژه این است که با استفاده از چارچوب نرم افزاری JADE یک سیستم چند عامله برای خرید و فروش سهام بنویسیم. در این سیستم تعدادی شرکت سهامی عام وجود دارد که سهم آنها در بورس خرید و فروش میشود. به صورت سنتی مسئول خرید و فروش سهم بر عهده کارگزاریها است. اما در این سیستم قصد داریم که از یک سیستم چند عامله به جای کارگزاری استفاده کنیم. در این سیستم هر فروشنده تقاضای فروش سهم خود را ارائه میکند. تعدادی خریدار هم وجود دارند. هر خریدار میتواند بخشی و یا همه سهم یک فروشنده را خریداری نماید. برای این سیستم از سناریوی زیر استفاده شده است:
فرض کنید که در سیستم بورس شرکتهای سهامی زیر وجود دارد :
کاربران زیر هم تقاضای خرید و فروش سهامها را میکنند:

درخواستهای خرید و فروش سهام زیر در سیستم پیشنهادی اعمال خواهد شد که شامل درخواست خرید و فروش سهام است.

در ابتدا عامل بورس در سیستم اجرا می شود. سپس عاملهای کارگزاری باید ایجاد و به سیستم اضافه شوند و در نهایت برای هر کاربر باید یک عامل ایجاد شود که در خواستهای خرید مطابق یا جدول بالا اعمال شود.
قابلیت های این پروژه:
نظرات
برای ثبت نقد و بررسی وارد حساب کاربری خود شوید.

دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.