چکیده- شبیه سازی، تقلید یک چیز واقعی است که در بسیاری زمینهها از جمله مدلسازی سامانههای طبیعی و انسانی، برای کسب بینش پیرامون نحوه کارشان، بهکار میرود[1] (Wikipedia, n.d.). شبیه ساز کاربردهای بسیاری دارد از جمله کاربردهای آن میتوان به آموزش تجهیزات مختلف اشاره نمود. به کمک شبیهساز میتوانیم آموزش تجهیزات مختلف را به کاربران بدهیم و شرایط مختلف را برای آمزش اپراتور فراهم نماییم اشتباه در بهکار گیری برخی از تجهیزات مخصوصا تجهیزات نظامی ممکن است منجر به خطرات جانی برای کاربران آنها گردد لذا اهمیت شبیهسازها در بحث آموزش بسیار پررنگ میباشد. اغلب شبیه سازها در بستر شبکههای کامپیوتری به صورت توزیع شده پیاده سازی می گردند. پیچیدگی و گستردگی سیستم های شبیهسازی و همچنین وجود پیچیدگی در پیادهسازی معماریهای شبیهسازهای توزیعشده، سرعت ساخت شبیهساز را تا حدی پایین میآورند. در این مقاله ما به ارائه یک معماری چابک مبتنی بر معماری Publish/subscribe و رویدادگرا بهمنظور طراحی شبیهسازهای آموزشی توزیعشده میپردازیم. در هر عملیات شبیهسازی چندین کامپیوتر در عملیات شبیهسازی بهعنوان بخشی از شبیهساز نقش ایفا میکنند. در معماری پیشنهادی نرمافزار اصلی مدیریت زمان اجرای شبیهساز بهصورت توزیعشده بر روی کامپیوترهای مختلف پخش گردیده ولی در فرآیند شبیهسازی یکی از آنها نقش سرور و مابقی نقش واسط ارتباطی بین کامپیوترها را بازی میکند و در صورت به وجود آمدن مشکل برای سرور اصلی از میان سایر نرمافزارها یکی بهعنوان سرور انتخاب میگردد و عملیات شبیهسازی را پیش میبرد. بازپخش یکی از بخشهای مهم در شبیهساز میباشد که آن را با مکانیزمی که بر اساس زمان شبیهسازی و لاگ موجود در شبیهساز میباشد پیادهسازی مینماییم. معماری فوق با زبان برنامهنویسی دلفی پیادهسازی گردید و چند شبیهساز به کمک آن پیادهسازی گردیدند و خروجی آنها در زمان اجرا بسیار بهینه از لحاظ زمان تولیدبسیار سریع بودند.
کلمات کلیدی : شبیه ساز آموزشی، معاری سطح بالا، شبیه سازی توزیع شده، شبیه سازی تحت شبکه
مقدمه
امروزه با گسترده شدن تکنولوژی و تجهیزات فوقالعاده پیشرفته و حساس در صنایع مختلف بهمنظور جلوگیری از ایجاد مشکلات و خطرات جانی کاربران این تجهیزات و همچنین آسیب دیدن این تجهیزات در اثر استفاده نادرست کاربران آنها و ... آموزش این تجهیزات قبل از استفاده آنها امری بسیار ضروری میباشد. هدف از به وجود آمدن شبیهسازها کمک به آموزش صحیح اپراتورها میباشد. استفاده از شبیهسازها به دلیل مزایای آنها از قبیل: تشابه با سیستم اصلی، ایجاد شرایط و سناریوهای مختلف جهت آموزش بهتر اپراتورها و رویارویی با حالات مختلف، هزینه پایین شبیهسازها نسبت به نمونه اصلی و... باعث همهگیر شده آنها شده است بهطوری در بسیاری از سیستمهای تجاری، صنعتی و ... شاهد حضور آنها هستیم. دغدغه اصلی در تولید و ساخت یک شبیهساز بهخصوص شبیهسازهایی که بهصورت توزیعشده با یکدیگر عملیات شبیهسازی را پیش میبرند، کاهش هزینهها، افزایش سرعت تولید شبیهساز، سهولت و عدم پیچیدگی در روند ساخت آن، قابلیت ارتباط با سایر شبیهسازها و .. هست. در این مقاله ابتدا به معرفی چند نمونه از معماری موجود و سپس به معرفی یک معماری چابک بهمنظور ساخت شبیهسازها داریم .
مروری بر کارهای پیشین
SIMNET [2] معماری مبتنی بر شبکه که برای توصیف شبیهساز توسعه یافته است و سازگار با تمام کامپیوترها میباشد. چهار گره اصلی در معماری این شبیه ساز موجود می باشد که عبارتند از : یک منبع برای ایجاد تراکنشها ، یک صف انتظار، یک مرکز که سرویسها در آن اجرا میشود و یک کمک که بهمنظور افزایش انعطافپذیری مدلسازی زبان معرفی شده است. وجود یک گره مرکزی در این معماری که سرویسها در آن اجرا می شوند از جمله مشکلات بارز این معماری می باشد زیرا به هر علت این مرکز دچار مشکل گردد کل فرآیند شبیهسازی مختل میگردد، از دیگر مواردی که شاید بتوان به این معماری ایراد گرفت در نظر نگرفتن مکانیزمی برای بازپخش عملیات شبیهسازی و همچنین مکانیزمی برای ردیابی دادههای خطا و نویز در شبیهساز میباشد.
ALSP ]3[ از جمله معماریهایی که در راستای توسعه شبیهسازهای آموزشی ایجاد گردیده میباشد مأموریت اصلی این معماری ایجاد نمودن یک محیط مجازی برای توصیف محیط جنگ میباشد. طراحی ALSP در دو حوزه صورت پذیرفته است :
معماری نرمافزاری
ارتباطات
ALSP بر پایه اشیاء کار میکند و ساختار ارثبری در آن ضعیفتر از برنامهنویسی شیءگراست. مفهوم کلیدی در ALSP کنفدراسیون است که مجموعهای از شبیهسازهای موجود میباشد. نرمافزار زیرساخت ALSP چگونگی توزیع داده و هماهنگی فرایندها را فراهم میکند.
زیرساخت نرمافزاری ALSP شامل 4 عنصر عمده میباشد: 1- ماژول مشترک ALSP 2- ایمولاتور انتشار ALSP 3- ترمینال کنترل ALSP 4-ابزار مدیریت کنفدراسیون
اجرای چندین شبیه ساز به طور همزمان با یکدیگر و همچنین تاثیری پذیر آنها از یکدیگر را تمرین شبیه سازی گویند. اجازه ورود بدون محدودیت به تمرین شبیهسازی برای شبیهسازهای مختلف از جمله امکانات معماری ALSP میباشد و از طرفی دیگر میتوان این قابلیت را به عنوان یک ضعف برای این معماری در نظر گرفت. با توجه به اینکه مأموریت اصلی شبیهسازها آموزش میباشد ورود و خروج غیره منتظره شبیهسازها از تمرین شبیهسازی موجب بروز خطا در روند آموزش اپراتورها میگردد که این عیب بسیار بزرگی میباشد. از دیگر مواردی که شاید بتوان به این معماری ایراد گرفت در نظر نگرفتن مکانیزمی برای بازپخش عملیات شبیهسازی و همچنین مکانیزمی برای ردیابی دادههای خطا و نویز در شبیهساز میباشد.