عامل هوشمند جک

**عامل هوشمند جک** (، یک چارچوب در زبان برنامه‌نویسی جاوا برای توسعه سیستم چند عاملی است. این عامل توسط نرم‌افزار عمل گرای PTY.Ltd (AOS) ساخته شده‌است و یک پلتفرم نسل سوم محسوب می‌شود که بر اساس تجربیات سیستم استدلال رویه ای (PRS) و سیستم استدلال چند عاملی توزیع شده (dMARS) ساخته شده‌است. JACK یکی از معدود سیستم‌های چند عاملی است که از مدل نرم‌افزار BDI استفاده می‌کند و زبان برنامه‌ریزی مبتنی بر جاوا و ابزارهای برنامه‌ریزی گرافیکی خود را ارائه می‌دهد.

## تاریخچه
عامل هوشمند JACK در سال ۱۹۹۷ توسط اعضای سابق مؤسسه هوش مصنوعی استرالیا (AAII یا A 2 I 2) معرفی شد. این مؤسسه در طراحی، اجرا و کاربرد PRS در SRI International و/یا dMARS در AAII شرکت داشت. پلتفرم JACK برای استفادهٔ تجاری در الگوهای چند عاملی (محصول COTS) نوشته شد تا در حل مسائل پیچیده کاربرد داشته باشد و مبنایی برای راه اندازی شرکت نرم‌افزار عامل گرا (AOS) بود که در آن یک محصول شاخص باقی ماند.

## ویژگی‌ها
عامل هوشمند JACK یک پلتفرم چند عاملی تجاری کامل است که بیش از ۱۰ سال تحت تحقیق، توسعه و استفاده در دامنه‌های خاص بوده‌است. فهرستی از ویژگی‌های اصلی و متمایز این پلتفرم شامل موارد زیر می‌باشد:
* **زمان اجرای عامل**: هستهٔ این پلتفرم قابل توسعه به زمان اجرا چند عاملی می‌باشد. هنگامی که عوامل خاص دامنه، برنامه‌ها، رویدادها، قابلیت‌ها و غیره مشخص می‌شوند، هستهٔ 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 بر روی سیستم عامل‌های مایکروسافت ویندوز با استفاده از ماشین مجازی جاوا (۳۲ بیتی و۶۴ بیتی) قابل نصب می‌باشد. در جدیدترین نسخه‌های سیستم عامل 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 Eclipse**: افزونه ای که توسعه سیستم‌های مبتنی بر JACK را در Eclipse IDE آسانتر می‌کند. مخصوصاً، این افزونه قابلیت‌هایی را به Eclipse اضافه می‌کند تا از انواع فایل‌های JACK (مانند .plan, .agent و غیره) و همچنین از زبان برنامه JACK پشتیبانی کند.
* **JACK وب ربات**: افزونه ای که هسته JACK را در وب سرور آپاچی تامکت جاگذاری می‌کند و به عامل‌های هوشمند اجازه می‌دهد تا با درخواست‌های HTTP (از طریق Java Servlet API) تعامل داشته باشند و پاسخ‌ها را فرموله سازی کنند.

## جستارهای وابسته
* مدل مبتنی بر عامل
* زبان ارتباطی عامل
* عامل خودمختار
* مدل نرم‌افزاری باور-میل-نیت
* معماری شناختی
* سیستم استدلال چند عاملی توزیع شده
* عامل هوشمند
* چارچوب توسعه عامل جاوا
* سامانهٔ چند عاملی
* سیستم استدلال رویه ای
* عامل نرم‌افزاری

## منابع

* Paolo Busetta, Ralph Ronnquist, Andrew Hodgson و Andrew Lucas (1999) JACK Intelligent Agents – Components for Intelligent Agents in Java , AgentLink News، شماره ۲.
* نیک هودن، رالف رونکوئیست، اندرو هاجسون، اندرو لوکاس (2001) عوامل هوشمند جک - خلاصه ای از زیرساخت‌های عامل. مجموعه مقالات پنجمین کنفرانس بین‌المللی کارگزاران خودمختار
* P. Busetta, Ralph Rönnquist, Andrew Hodgson, Andrew Lucas (1999) عوامل نرم‌افزاری هوشمند سبک‌وزن در شبیه‌سازی, در مجموعه مقالات فناوری شبیه‌سازی و آموزش (SimTecT 99), ملبورن، استرالیا
* M. Winikoff (2005) . در برنامه‌نویسی چند عاملی. اسپرینگر.
* J. Tweedale, N. Ichalkaranje, C. Sioutis, B. Jarvis, A. Consoli, G. Phillips-Wren, " Innovations in Multi-Agent systems " (PDF), مجله برنامه‌های شبکه و کامپیوتر، دوره ۳۰، شماره ۳، آگوست ۲۰۰۷، صفحات ۱۰۸۹–۱۱۱۵
* ریک اورتز، مارتین فلچر، ریچارد جونز، ژاکی جارویس، جیمز بروسی، رقص سندی: . در برنامه‌نویسی سیستم‌های چند عاملی (PROMAS) 2003: 18-48
* Øystein Spillum, مقایسه ای بین عوامل هوشمند JACK و تیم‌های JACK کاربردی در کار تیمی، پایان‌نامه کارشناسی ارشد، دانشگاه علم و صنعت نروژ، نوامبر ۲۰۰۸

## پیوند به بیرون
* نرم‌افزار عامل گرا Pty. صفحه اصلی Ltd (AOS)
* صفحه وب محصول JACK
* مستندات رسمی JACK - از جمله کتابچه راهنمای کاربر و آموزش
* JSF استرالیا تاریخچه عرضه برای AOS

رده:سامانه‌های چندعامله
رده:نرم‌افزار عامل-بنیان
رده:نرم‌افزارهای سکوی جاوا