نرم افزار کلودسیم به منظور شبیه سازی و کدنویسی پروژه های مرتبط با رایانش ابری مورد استفاده قرار میگیرد
اين شبيه ساز مدلسازي مجازي سازي مبتني بر درخواست را براي مديريت منابع و برنامه هاي کاربردي مقدور مي سازد که در این جا توضیح مختصری در مورد آن میدهیم.
بطور کلی این toolkit به این صورت کار میکند که چندین موجودیت یا entity در آن ایجاد میشود که هر کدام کار خود را انجام می دهند
و در صورت نیاز میتوانند با هم پیام و اطلاعاتی را رد و بدل نمایند.
این toolkit ایده اصلی خود را از simjava که یک کتابخانهای برای محیط java است
و در دانشگاه Edinburg توسعه داده شده است، گرفته است. simjava یک کلاس بنام entity دارد که موجودیتهایی را که میخواهیم توسعه دهیم از این کلاس توسعه داده میشود.
آموزش پیاده سازی با CLOUDSIM
در واقع زیر کلاس این کلاس هستند هر یک از موجودیتهای توسعه داده شده در این نرمافزار بصورت یک نخ مستقل در حین شبیهسازی اجرا میشوند
و پیامهایی را بین همدیگر رد و بدل مینمایند، پیامهای رد و بدل شده بین موجودیتها بصورت کلاس event پیادهسازی میشود
این کلاس شامل آدرس موجودیت مبدا و مقصد و همچنین یک مقدار user_defined است
که در شبیهساز CloudSim از مقدار بیشتر برای اعمال acknowledgement بین موجویتها استفاده میشود،
همچنین این کلاس شامل یک متغیر کلاس Object است
با استفاده از این متغیر میتوان هر چیزی را بین موجودیتها رد و بدل کرد
زیرا در java هر شیای که تعریف میگردد زیرکلاس این کلاس است در نتیجه با این کلاس میتوان هر event یا رویدادی را بین موجودیتها رد و بدل نمود.
این کتابخانه همچنین برای مدیریت و کنترل موجودیتها و eventهای رد و بدل شده کلاس Sim_systemرا توسعه داده است، در واقع شبیهسازی با اجرای این کلاس static شروع میگردد.
با این توضیحات میتوان گفت با استفاده از این کتابخانه java میتوان هر سیستمی که به نحوی از چندین موجودیت تشکیل شده و این موجودیتها میبایست با همدیگر ارتباط برقرار کنند را شبیهسازی کرد،

آموزش نرم افزار cloudsim
موجودیتهای موجود در CloudSim عبارتاند از :
ـ CloudInformationServic : از این برای نگهداری اطلاعات موجود در ابر استفاده میشود،
به عبارت دیگر مراکز داده خودشان را در این سرویس ثبت میکنند
و user از این سرویس برای یافتن مرکز داده استفاده کرده و با مرکز ارتباط برقرار کرده و VMهای خود را روی آن توسعه میدهد.
ـ DataCenter: منابع رایانشی موجود در ابر در این موجودیت شبیهسازی شده و رایانش درخواستهای کاربران در این کلاس صورت میگیرد.
ـDataCenterBroker: کارهای مربوط به کاربران را شبیهسازی میکند
ـ CloudSimShutDown: به شبیهسازی پایان میدهد.
کارهای مدیریت و کنترل این موجودیتها را کلاس CloudSim انجام میدهد
و همانطور که گفته شد موجودیتهای بالا زیرکلاسی از کلاس entity هستند
و رویدادها بصورت زیرکلاسی از event رد و بدل میشوند.
شبیه سازی با نرم افزار کلودسیم
از جمله این سیستمها که با استفاده از این کتابخانه در دانشگاه Edinburg توسعه یافتهاند می توان موارد زیر را ذکر کرد:
ـ پروتکلهای موافقت توزیعشده برای کنترل همروند
ـ شبیهسازی برای آموزش معماری کامپیوتر
ـ شبیهسازی شبکه interconnection
ـ مدلسازی web chache و غیره
CloudSim هم از این کتابخانه استفاده کرده و سیستم رایانش ابر را با این کتابخانه توسعه داده است.
در واقع موجودیتهای CloudSim زیرکلاسی از کلاس entity این کتابخانه هستند و رویدادها زیرکلاس event آن هستند،
البته برای بهتر شدن کارآیی در CloudSim تغییراتی داده شده است
از جمله از آنجایی که در simjava هر یک entityها بصورت یک نخ مستقل و همزمان اجرا میشوند
در نتیجه اگر تعداد نخها زیاد شود آنگاه ممکن است سیستمی که روی آن شبیهسازی صورت میگیرد hang کند
و نتوان شبیهسازی را ادامه داد، CloudSim برای افزایش کارآیی و اجرای چندین موجودیت بصورت همزمان از روش دیگری استفاده میکند
در CloudSim موجودیتها در صفی قرار داده میشوند و به ترتیب زمان وقوع اجرا و در صورت نیاز فراخوانی میگردند.
یعنی در CloudSim از Multithreading استفاده نمیشود و بجای آن از صف برای اجرا و ایجاد ارتباط استفاده میشود
و به این ترتیب میتوان هر چند موجودیت را در سیستم تعریف کرد.