نگاهی کلی بر پایان نامه
این پایان نامه از بخش های زیر تشکیل شده است:
فصل دوم: بررسی و مقایسه زبان های فرمال برای مدل سازی، توصیف و بررسی سیستم های موازی، غیر همگام[۲۲]، توزیع شده، غیر قطعی[۲۳]، آماری[۲۴] و دینامیک. در این بخش توانایی ها و قابلیت های این ابزار با یکدیگر مقایسه و در نهایت یکی از آنها برای استفاده در بخش های بعد انتخاب می گردد.
فصل سوم: بررسی زیرساخت نرم افزاری دیتا سنتر بر مبنای تکنولوژی مجازی سازی. در این بخش همچنین امکانات و قابلیت های استفاده از این تکنولوژی در طراحی معماری دیتا سنتر مورد بررسی و تشریح قرار می گیرد.
فصل چهارم: ارائه مدل از بخش های مختلف معماری نرم افزاری دیتا سنتر و تحلیل مدل. در این بخش پس از طراحی مدل پتری هریک از ماژول ها، با تحلیل فرمال مدل متناظر، خصوصیات رفتاری مختلفی از آنها بررسی و اثبات می شوند.
فصل دوم: مروری بر ابزار فرمال مدل سازی سیستم ها
طبق آمار سایت های غیر رسمی[۲۵] در حدود ۱۰۰ متد فرمال به صورت زبان، notation و ابزار وجود دارد که به منظور تشریح فرمال سیستم ها و مسائل از آنها استفاده می شود. پارامترهای زیادی وجود دارد که نقاط قوت و ضعف هر یک از ابزار مذکور را نسبت به دیگران تعیین می نماید اما در این بین تعدادی از این مصادیق به دلایلی عمومیت بیشتری یافته اند و بیشتر در مورد بررسی و به روز رسانی قرار گرفته اند.
به طور کلی می توان ابزار توصیف فرمال[۲۶] را به دو گروه متدهای جبری و متدهای مبتنی بر مدل تقسیم بندی نمود ]۵[ و ]۱۰[. اگر فرض نمائیم که بهترین شیوه شناخت و توصیف سیستم ها شکستن آنها به بخش های کوچکتر و ساده تر[۲۷] برای کنترل پیچیدگی سیستم است، از بررسی شیوه توصیف هریک از این دو نوع ابزار می توان نتیجه گرفت که متدهای جبری برای توصیف interface بین بخش های سیستم مذکور مناسب است زیرا خصوصیات کارکردی[۲۸] یا ساختاری[۲۹] سیستم را به نحو مطلوبی نشان می دهد. با این حال این ابزار برای تشریح رفتار سیستم چندان کارآمد نیست. به منظور توصیف خصوصیات رفتاری یک سیستم[۳۰] از ابزار مدل سازی فرمال استفاده می گردد. در شکل ۲٫۱ مثالهایی از گروه های گفته شده و نیز تقسیم بندی توانایی آنها در تشریح سیستم های تسلسلی[۳۱] و موازی[۳۲] آورده شده است.
شکل ۲٫۱٫ مثال هایی از زبان های فرمال و تقسیم بندی آنها ]۱۰[
به طور کلی استفاده از توصیف فرمال سیستم ها قبل از طراحی و پیاده سازی، همراه با مشکلاتی مانند هزینه بر بودن، زمان بر بودن و نیز دشواری و پیچیدگی در بیان و ارزیابی آن است. این موانع باعث شده است تا این شیوه توسعه برخلاف آنچه که در دهه ۱۹۸۰ پیش بینی می شد، پرکاربرد ترین شیوه توسعه سیستم های نرم افزاری و سخت افزاری نشود. با این حال مزایای این روش پیاده سازی که کاهش محسوس خطاهای سیستم در هنگام طراحی و پیاده سازی است باعث شده است که در طراحی سیستم های حیاتی و گران قیمت مورد استفاده قرار گیرد.
با توجه به اینکه توصیف یک سیستم به شکل تفکیک ناپذیری در طراحی آن گره خورده است، می توان برای طراحی سیستم به شیوه توصیف فرمال آن، روالی طبق شکل ۲٫۲ را مد نظر قرار داد.
شکل ۲٫۲٫ روال طراحی یک سیستم نمونه به کمک متد های فرمال ]۱۰[
همانگونه که دیده می شود، برقراری درک دقیقی از نیازمندیهای سیستم[۳۳] ، طراحی معماری و نیز توصیف (درک) فرمال سیستم به شکلی با یکدیگر ادغام شده اند که بازخورد هر مرحله از توصیف به کامل تر شدن طراحی در همان مرحله کمک می کند. بنابراین در پایان فاز توصیف فرمال، حداقل میزان خطا و حالات پیش بینی نشده در سیستم وجود خواهد داشت. درصد این خطا مستقیما به میزان توانایی ابزار توصیف در بررسی و تبیین جنبه های مختلف کارکردی و رفتاری سیستم باز می گردد ]۱۱[.
در ادامه سعی می کنیم تعدادی از این ابزار فرمال را تشریح کرده و با هم مقایسه نمائیم. بعضی از نمونه ها تنها به صورت متد بوده و بعضی دیگر دارای گرامر نیز می باشند و زبان هستند.
ASM
ASM[34] از ساختارهای کلاسیک ریاضی برای توصیف فرمال سیستم استفاده می کند بنابراین بسیار دقیق است. با این توضیح که ASM متدی مبتنی بر جبر رابطه ای و مناسب برای توصیف سیستم های تسلسلی است. باید توجه داشت که اگر در توصیف مسائل، semantic متد به کار رفته مبهم باشد توصیف حاصل واضح تر از تعریف اولیه سیستم نخواهد بود. بنابراین ASM با یک تعریف ریاضی، وضوح و یگانگی درک مفهوم مورد نظر را تضمین می کند[۳۵]. ASM شکل خاصی از finite-state automata است که از مجموعه ای از ساختار های داده ای[۳۶] و توابع ریاضی تشکیل شده است و برای توصیف الگوریتم ها بر اساس حالات[۳۷] آنها به کار می رود ]۱۲[.
در واقع ASM یک ساختار قراردادی ساده یا پیچیده از قواعد ریاضی است که از مجموعه ای از دامنه ها (یا مجموعه ها که هر یک نوع مشخصی از اشیا را نشان می دهند) و توابع و روابط قراردادی بر روی آنها تعریف شده اند ]۱۳[. همانگونه که دیده می شود این مجموعه بسیار انتزاعی و مستقل از نوع مساله است.
دستیابی به سطوح بالایی از انتزاع از مهمترین مزایای ASM است.
در ادامه نمونه از تعریف فرمال ASM را برای سیستم PVM[38] مشاهده می کنیم ]۱۲[:
master : HOST
مشخص کننده ی ماشینی است که PVM روی آن اجرا می شود و و نقش کلیدی در مدیریت و نگهداری پیکره پویای PVM دارد.
arch : HOST → ARCH
تابع arch که معماری هر یک از HOSTها را مشخص می کند. این معماری عضوی از مجموعه انتزاعی ARCH است.
daemon : HOST → DAEMON
این تابع برای هر عضو از مجموعه HOST، پروسه ای از مجموعه DAEMON را مشخص می کند که وظیفه مدیریت برنامه های آن هاست و نیز ارتباطات بین پروسه ها را برعهده دارد. این daemon به کمک مجموعه ای از پروسه ها بر روی host پیاده سازی می شود.
demiurge : DAEMON
daemon خاصی است که بر روی master host اجرا می شود (می توان آنرا به صورت daemon(master) = demiurge بیان کرد) و وظیفه آن ایجاد و حذف hostها و نگهداری ارتباطات آنهاست.
این اشیا و روابط انتزاعی مقدمه ای برای مدل ASM از VPM است. در حال حاضر اطلاعات بیشتری در مورد ماهیت hostها، daemonها و معماری آنها مورد نیاز نیست.
در این زبان می توان از سودوکدهای ساده استفاده نمود بنابراین نحو[۳۹] زبان برای اکثر افراد قابل درک است.
بر خلاف بسیاری از ابزار، می توان مدل طرح شده به ASM را مستقیما اجرا نمود تا نتیجه رفتار سیستم مشخص گردد. همچنین از این ابزار می توان برای مدل کردن طیف وسیعی از سیستم ها استفاده کرد. از جمله می توان به سیستم های تسلسلی، موازی، توزیع شده، real time، سیستم های متناهی و نامتناهی و غیره اشاره نمود که نشان دهنده انعطاف پذیری ابزار می باشد.
در ادامه نمونه ای از نحو زبان ASM آورده شده است. این بخش چگونگی انتقال پیام مابین Agent ها را نشان می دهد. ]۱۴[.
class COMMUNICATOR
Program() =
let availableMsgs = {m | m in me.mailbox where ReadyToDeliver(m)}
let selectedMsgs = chooseSubset(availableMsgs)
forall msg in selectedMsgs
me.mailbox(msg) := false //delete the message
let resolvedMsgs = ResolveMessage(msg) //resolve the message
forall m in resolvedMsgs
let a = Recipient(m)
if a <> undef then // if recipient found
InsertMessage(a,m) // forward the message
else
فرم در حال بارگذاری ...