نام پژوهشگر: ساناز شیخی
ساناز شیخی مرتضی بابامیر
با رشد روز افزون استفاده از سیستم های کامپیوتری در زندگی روزمره و فعالیت های تخصصی و تمایل به خودکار انجام شدن این فعالیت ها، توانا شدن سیستم ها در سرویس دهی بدون وقفه حتی در حضور خطاها، منابع متغیر و نیازهای گوناگون کاربران از اهمیت بیشتری برخوردار می شود. در گذشته قسمت عمده ی این قابلیت ها توسط نظارت نیروی انسانی تامین می شد و در نتیجه هزینه ی مدیریت این سیستم ها به شدت افزایش می یافت. اخیرا برای حل این مشکل توجه طراحان و توسعه دهندگان به سمت هدایت خودکار سیستم ها از طریق خود تطبیقی جلب شده است. در سیستم خود تطبیق ، مسئولیت کشف خطاها و تنگناها و یا انجام فعالیت جبرانی برعهده ی خود سیستم است. هسته خود تطبیقی یک حلقه ی کنترلی است که در آن سیستم پایش می شود، مشاهدات حاصل از پایش تحلیل می شوند تا صحت سیستم مشخص شود و در صورت وجود خطا سیستم ترمیم می شود. برای مدت زمان طولانی روش های خود تطبیقی در قالب ویژگی های زبان های برنامه-نویسی (مانند مدیریت استثنا) و الگوریتم ها (مانند پروتکل های شبکه) به کار می رفتند. تطبیق پذیری که در این روش ها وجود دارد به شدت آمیخته با برنامه است و در کد برنامه مشخص می شود. جذابیت این روش های داخلی در این است که به محض کشف خطا آن را به دام می اندازند. اما مدیریت خطای داخلی قادر نیست منبع واقعی مشکل را شناسایی کند و راهکار جبرانی ارائه کند. علاوه براین، این روش ها نمی توانند مشکلاتی مانند افت کارایی تدریجی سیستم و یا الگوهای غیر مطمئن را شناسایی کنند. همچنین به دلیل وابستگی این روش ها به کد برنامه، تغییر سیاست های تطبیق پذیری در آن ها بسیار سخت می شود. راه حل این مشکلات استفاده از مدل های معماری نرم افزار برای کشف، تشخیص و بر طرف کردن خطاها و تنگناها است. معماری نرم افزار یک دید سراسری از رفتار نرم افزار ایجاد می کند، ویژگی ها و قیود حاکم بر نرم افزار را به طور صریح بیان می کند و از روش های تحلیل معماری برای کشف مشکلات و ارائه راهکار جبرانی بهره می برد و انعطاف پذیری سیستم را بالا می برد. یکی از مسائل قابل تامل در زمینه تطبیق پذیری مبتنی بر معماری، واکنشی (انفعالی) بودن این روش تطبیق پذیری است. در روش های واکنشی، تصمیم گیری برای انجام عملیات تطبیق پذیری با توجه به حالت جاری سیستم و محیط عملیاتی که در نتیجه بررسی قیود معماری بدست آمده اند صورت می گیرد. در حقیقت راهکار تطبیق پذیری هنگامی انتخاب و اعمال می شود که خطا و یا تنگنایی بوجود آید. هدف روش های واکنشی انتخاب راهکاری است که در لحظه ی بوجود آمدن خطا یا تنگنا، بهره وری سیستم را به حداکثر برساند. اما همیشه این رویکرد به جواب بهینه منتهی نمی شود زیرا در بسیاری از موارد، چند تصمیم که در یک لحظه بهینه هستند هنگامی که با دید کلی و نسبت به یکدیگر سنجیده شوند منجر به بهینگی کامل سیستم نمی شوند. در این پایان نامه به ارائه چارچوبی برای حل مشکل واکنشی بودن سیستم های خود تطبیق مبتنی بر معماری و بهبود عملکرد آن ها می پردازیم. در این چارچوب یک سیستم خود تطبیق مبتنی بر معماری را در نظر می گیریم و با استفاده از پیش بینی حالات این سیستم، روش انتخاب راهکار تطبیق پذیری آن را بگونه ای توسعه می دهیم که برای انتخاب راهکار تطبیق علاوه بر بررسی قیود معماری و توجه به حالت جاری سیستم، حالت پیش-بینی شده برای سیستم نیز در نظر گرفته شود. در طراحی این چارچوب سعی شده تا با بهره گیری از نظریه ی سودمندی ، راهکارهای تطبیقی انتخاب شوند که بتوانند ابعاد کیفی مختلف سیستم را پوشش دهند و بین تحقق ابعاد کیفی مختلف سیستم تعادل برقرار کنند. افزایش پارامترهای تصمیم گیری سبب انتخاب راهکارهای بهینه تری می شود. پیش بینی با استفاده از الگوریتم های ویتربی و شبکه عصبی narx انجام می شود. ویتربی الگوریتمی احتمالی مربوط به مدل مارکوف مخفی است که در کارهای پیش بینی مانند پیش بینی وضعیت آب و هوا کاربرد فراوانی دارد. narx یکی از قدرتمندترین ابزاری است که در پیش بینی سری های زمانی بکار می رود. دو روش پیش بینی به طور جداگانه در انتخاب راهکار تطبیق بهینه به کار گرفته می شوند و نتایج حاصل از این روش ها با یکدیگر مقایسه می شوند. در این چارچوب ابتدا یک سیستم خود تطبیق مبتنی بر معماری را در نظر می گیریم و توصیف سیستم و راهکارهای تطبیق پذیری آن را با استفاده از زبان استیچ که زبانی مختص سیستم های خود تطبیق مبتنی بر معماری است را بدست می آوریم. در گام بعدی برای ساخت مدل مارکوف مخفی، حالات مدل مارکوف مخفی را از روی توصیفات استیچ استخراج می کنیم، به ماتریس های احتمال مدل مارکوف مخفی مقادیر اولیه ای را انتساب می دهیم، سپس این مدل با استفاده از الگوریتم بام ولچ آموزش داده و آن را به عنوان ورودی به الگوریتم ویتربی می دهیم. همچنین معماری اولیه ای برای یک شبکه عصبی narx در نظر می گیریم و پس از تکرار آموزش و تست و ارزیابی، پارامترهای نهایی معماری آن را انتخاب می کنیم. در هر زمان فقط یکی از روش های پیش بینی می تواند مورد استفاده قرار بگیرد. سیستم درحال اجرا به طور مداوم پایش می شود و مقادیر متغیرهای مورد نظر استخراج شده و به نماد های سری زمانی نگاشت می شوند. سری زمانی استخراج شده به عنوان ورودی به الگوریتم ویتربی و یا narx داده می شود. روش پیش بینی تعیین می کند که آیا در اجرای بعدی سیستم در حالت نامطلوبی قرار خواهد گرفت یا خیر. حالت نامطلوب از قبل به برنامه معرفی شده است که در الگوریتم مبتنی بر مدل مارکوف مخفی یکی از حالات مدل و در روش شبکه ی عصبی یکی از سمبل های سری زمانی در نظر گرفته می شود. برای تصمیم گیری درمورد نحوه تطبیق سیستم، وضعیت جاری سیستم ارزیابی می شود و با توجه به نتایج ارزیابی به همراه نتایج حاصل از پیش بینی تعدادی از راهکارهای تطبیق پذیری که می توانند خطا یا تنگنای بوجود آمده را ترمیم کنند و یا از بروز خطا و تنگنا در آینده جلوگیری کنند، انتخاب اولیه می شوند. سپس با استفاده از یک تابع سودمندی به این راهکارها امتیاز داده می شود و راهکار با بالاترین امتیاز برای اجرای نهایی انتخاب می شود. برای ارزیابی چارچوب پیشنهادی پایان نامه، این چارچوب را با دو سیستم خود تطبیق مبتنی بر معماری آزمایش نمودیم. در آزمایش اول، روش پیشنهادی بر یک سیستم سرویس گیرنده سرویس دهنده خودتطبیق و در آزمایش دوم بر یک سیستم کنترل خودکار گرمایش خانه اعمال نمودیم. با توجه به نتایج حاصل از این آزمایش ها، با اعمال چاچوب پیشنهادی بر سیستم های تطبیق پذیر مبتنی بر معماری می توان : ? تعداد دفعات قرار گرفتن سیستم در حالت نامطلوب در آینده را کاهش داد. ? از اعمال راهکار غیرضروری (راهکار که اثری کوتاه مدت دارد) جلوگیری نمود. ? تعداد اجرای راهکاری که منجر به ایجاد وضعیت نامطلوب در آینده شود را کاهش داد. ? عملکرد سیستم را بهبود بخشید.