JACK Intelligent Agents یا عامل هوشمند JACK، یک چارچوب در زبان برنامه نویسی جاوا برای توسعه سیستم چند عاملی است. این عامل توسط نرم افزار عمل گرای PTY.Ltd (AOS) ساخته شده است و یک پلتفرم نسل سوم محسوب می شود که بر اساس تجربیات سیستم استدلال رویه ای (PRS) و سیستم استدلال چند عاملی توزیع شده (dMARS) ساخته شده است. JACK یکی از معدود سیستم های چند عاملی است که از مدل نرم افزار BDI استفاده می کند و زبان برنامه ریزی مبتنی بر جاوا و ابزارهای برنامه ریزی گرافیکی خود را ارائه می دهد.
تاریخچه
عامل هوشمند JACK در سال 1997 توسط اعضای سابق موسسه هوش مصنوعی استرالیا (AAII یا A 2 I 2 ) معرفی شد. این موسسه در طراحی، اجرا و کاربرد PRS در SRI International و/یا dMARS در AAII شرکت داشت. پلتفرم JACK برای استفاده ی تجاری در الگوهای چند عاملی (محصول COTS ) نوشته شد تا در حل مسائل پیچیده کاربرد داشته باشد و مبنایی برای راه اندازی شرکت نرم افزار عامل گرا (AOS) بود که در آن یک محصول شاخص باقی ماند.
ویژگی ها
عامل هوشمند JACK یک پلتفرم چند عاملی تجاری کامل است که بیش از 10 سال تحت تحقیق، توسعه و استفاده در دامنه های خاص بوده است. فهرستی از ویژگیهای اصلی و متمایز این پلتفرم شامل موارد زیر می باشد:
زمان اجرای عامل : هسته ی این پلتفرم قابل توسعه به زمان اجرا چند عاملی می باشد. هنگامی که عوامل خاص دامنه، برنامه ها، رویدادها، قابلیت ها و غیره مشخص می شوند، هسته ی JACK اجرای برنامه هایی شامل ارسال پیام، استدلال، و فرا استدلال را مدیریت می کند.
زبان برنامه JACK : (JPL) JACK یک زبان مخصوص عامل برای نوشتن برنامه های مخصوص همین پلتفرم را اراِِئه داده است. (استدلال مجزایی توسط عامل ها اجرا شده است ) . زبان این برنامه یک افزونه برای زبان جاوا است و دستورهایی مانند @send و @post برای پیامرسانی و ارتباط بین عامل ها و همچنین مدیریت اتفاقات، وظایف فرعی و حفظ شرایط وجود دارد. برنامه ها در کلاس های جاوا برای اجرا در زمان اجرا JACK کامپایل می شوند و سرعت و صحت اجرا را ارائه می دهند.
مدل باور-میل-نیت: افزون بر مدل عامل های کلاسیک (غیر BDI)، این پلتفرم مدل نرم افزار BDI را درک میکند، که در آن باورها توسط مجموعههای اعتقادی محصور شده در عامل ها مدیریت میشوند، امیال اهدافی هستند که یک عامل اشتیاق دستیابی به آن را دارد و نیت ها، همان فرا استدلال و استدلال مبتنی بر برنامه هستند که عوامل JACK برای رسیدن به هدف فعلی از آن ها استفاده می کنند.
قابلیت ها: این پلتفرم قابلیت هایی را ارائه می دهد که انتزاعی از رفتارهای رایج و معمول هستند که این رفتارها به صورت مجموعه ای از برنامه ها و رویدادها ظاهر می شوند. قابلیت ها راهی برای ترکیب مفهومی رفتارها و اعمال مشترک و استفاده مجدد از آنها بین عامل ها را فراهم می کند.
محیط توسعه JACK (JDE): سیستم های چند عاملی را می توان با کد جاوا و زبان برنامه JACK در یک IDE استاندارد نوشت، اگرچه این پلتفرم یک IDE عامل محور به نام محیط توسعه JACK یا JDE را ارائه می دهد. JDE ابزارهای گرافیکی برای نوشتن پلن ها، اتصال پلن ها به عامل ها، مدیریت ارتباطات بین عاملی و همچنین کامپایل و اجرا فراهم می کند. JDE همچنین ابزارهای گرافیکی را برای اشکال زدایی و ردیابی اجرای طرح ها و ارسال پیام بین عاملی فراهم می کند. [2]
برنامه های گرافیکی: یکی از ویژگی های کلیدی JDE امکان نوشتن و مدیریت برنامه های گرافیکی است. اینها استدلال گسسته ای هستند که توسط یک عامل به صورت گرافیکی به عنوان نمودار جریان (فلوچارت) نمایش داده می شود.
JACK Object Modeller (JACOB): فناوری سریالی سازی اشیا که توسط JACK برای مقداردهی اولیه اشیا و ارتباطات بین فرایندی استفاده می شود. اشیاء در جاوا به متن ASCII قابل خواندن توسط انسان تبدیل می شوند، که خیلی بی شباهت به YAML و XML نیستند.
ا پلتفرم JACK به زبان جاوا نوشته شده است، این پلتفرم به سیستم های چند عامله JACK در پلتفرم هایی که از ماشین مجازی جاوا پشتیبانی می کنند، امکان استقرار می دهد. در حال حاضر JACK بر روی سیستم عامل های مایکروسافت ویندوز با استفاده از ماشین مجازی جاوا (32 بیتی و64 بیتی) قابل نصب می باشد. در جدیدترین نسخه های سیستم عامل Mac OS X (از Mac OS X Lion شروع می شود) JACK فقط با استفاده از نصب کننده کنسول قابل نصب می باشد.
افزونه ها
پلت فرم JACK از زمان آغاز به کار چندین بار توسعه یافته است. بیشتر افزونه ها مانند JACK Teams و CoJACK توسط AOS و یا با همکاری آن توسعه داده شدهاند.
تیمهای JACK : افزونه ای برای مدل نرمافزاری BDI که عوامل همکاری در تیمها را برای دستیابی به یک هدف تسهیل میکند. [۱] مانند JACK، JACK Teams از زبان برنامه خود در چیزی که AOS از آن به عنوان برنامه نویسی تیم گرا یاد می کند پشتیبانی می کند. JACK Teams به عنوان بخشی از پلتفرم JACK Intelligent Agents یکپارچه شده و در دسترس است. [۲]
CoJACK : افزونه ای برای پلتفرم JACK که یک معماری شناختی به عامل ها برای برانگیختن رفتارهای واقعیتر (شبیه انسان) در محیطهای مجازی اضافه میکند.
FIPA JACK : افزونه ای برای پلتفرم JACK که از زبان ارتباطات عامل فیپا پشتیبانی می کند .
Prometheus : یک روش مهندسی نرم افزار عامل محور برای مدیریت SDLC یک سیستم مبتنی بر چند عامل می باشد. JACK به عنوان مبنایی برای بررسی، مقایسه و آزمایش روش مورد استفاده قرار می گرفت. Prometheus شامل توسعه ابزار طراحی Prometheus (PDT) بود که یک ابزار مبتنی بر رابط کاربری گرافیکی برای مدیریت طراحی در فرآیند بود.
JACK افزونه اکلیپس : افزونه ای که توسعه سیستم های مبتنی بر JACK را در EclipseIDE آسانتر می کند. مخصوصا، این افزونه قابلیت هایی را به Eclipse اضافه می کند تا از انواع فایل های JACK (مانند .plan، .agent و غیره) و همچنین از زبان برنامه JACK پشتیبانی کند.
JACK وب ربات : افزونه ای که هسته JACK را در وب سرور آپاچی تامکت جاگذاری می کند و به عامل های هوشمند اجازه می دهد تا با درخواست های HTTP (از طریق Java Servlet API) تعامل داشته باشند و پاسخ ها را فرموله سازی کنند. [۳]
P. Busetta, Ralph Rönnquist, Andrew Hodgson, Andrew Lucas (1999) عوامل نرم افزاری هوشمند سبک وزن در شبیه سازی, در مجموعه مقالات فناوری شبیه سازی و آموزش (SimTecT 99), ملبورن, استرالیا
J. Tweedale, N. Ichalkaranje, C. Sioutis, B. Jarvis, A. Consoli, G. Phillips-Wren, " Innovations in Multi-Agent systems " ( PDF ), مجله برنامه های شبکه و کامپیوتر، دوره 30، شماره 3 ، آگوست 2007، صفحات 1089-1115