اگه تو دنیای برنامهنویسی و مخصوصاً سیستمهای چندعامله (همون multi-agent systems که یه عالمه موجود با هم تعامل دارن) سر و کار داشته باشی، حتماً میدونی هماهنگ کردن این ایجنتهایی که باید با پیام، اون هم غیرهمزمان (یعنی پیاما ممکنه همزمان به دستشون نرسه)، با هم گفتوگو کنن، خیلی سخت و گیجکنندهست. اصلاً همین داستان باعث شده یه سریا دنبال راههای درست و حسابی واسه مدیریت اینکه این ایجنتها چطور باید طبق یه نقشه یا پروتکل حرف بزنن، باشن.
خب، تو این مقاله اومدن یه روش باحال به اسم Multiparty Session Types یا به اختصار MPST رو معرفی کردن. حالا MPST یعنی چی؟ خیلی راحت بگم: این یه مدل رسمیه که مشخص میکنه چندتا موجود (یا ایجنت) دقیقاً چطوری و با چه ترتیبی با هم پیام رد و بدل کنن، تا قوز بالا قوز نشه! خلاصهش اینه: اول یه نقشه کلی (global specification) از کل گفتوگوها رو میکشن، بعدش هرکدوم از ایجنتها فقط همون بخش خودشون رو که باید بدونن و اجرا کنن، به دست میارن (به این کار پروجکشن projection میگن که یعنی بررسی میکنیم سهم هر شرکتکننده چی میشه).
حالا این MPST فقط تئوری نیست! تیم مقاله اومده گفتن: از همین پروتکل کلی میشه یه زبان قابل فهم برای ماشینا ساخت که هر ایجنت بدونه دقیقاً چه کار باید بکنه. اینجوری هر ایجنت فقط طبق اون پروتکل لوکال (قبلاً از نقشه اصلی جدا شده) رفتار میکنه و دیگه جایی برای اشتباه و قاط زدن نمیمونه!
تا اینجا حتماً کنجکاو شدی بدونی چجوری اینا رو پیادهسازی کردن. خب ابزار کارشون یه زبان برنامهنویسی خاص به اسم Jadescript بوده. حالا Jadescript چیه؟ این یه زبان مخصوص نوشتن سیستمهای ایجنتیه که روی پلتفرم معروف JADE کار میکنه (JADE هم یه بستریه که برنامهنویسان میتونن داخلش ایجنت بسازن و بندازن تو میدان تا با هم تعامل کنن). این یعنی این روش فقط یه ایده کاغذی نیست، بلکه واقعاً یه پیادهسازی اولیه یا همون پروتوتایپ prototype هم براش ساختن که ابزار مرتبط باهاش رو نشون میده.
نکتهی جالب اینجاست که نه تنها رعایت درست پروتکل رو اثبات کردن (یعنی یه جورایی ریاضی و منطقی مطمئن شدن که ایجنتها دقیقاً همون جوری که باید کار میکنن)، بلکه تبدیل مستقیم این پروتکلها به کد ایجنت هم انجام شده. یعنی احتمال اشتباه، کلهپا شدن پروسه صحبت بین ایجنتا یا نقض پروتکل تقریباً صفر میشه!
خلاصه اینکه این مقاله اومده یه چارچوب علمی و عملی معرفی کرده تا بتونی مطمئن بشی ایجنتای باهوشت واقعاً درست و بیدردسر با هم حرف میزنن و جایی وسط کار قاط نمیزنن! پس اگه دنبال راهی میگردی که ارتباط بین ایجنتا رو مرتبتر و بدون دردسر کنی، این Multiparty Session Types خیلی بدردت میخوره!
منبع: +