بخشی از مقاله
مروری بر پیاده سازی سیستم های خودتطبیق
خلاصه
با توجه به فراگیر شدن مباحث خودمختاری، این فناوری به حوزههای مختلف راه پیدا کرده است. از جمله زیرمجموعههای خودمختاری، میتوان به خود مدیریتی و خود تطبیقی اشاره کرد.سیستم خود تطبیقی سیستمی است که میتواند به صورت خودکار و پویا نقصها، خطاها و خرابیهای عملیاتی خود در نرمافزار و سختافزار را کشف، علتیابی و ترمیم میکند. اگر این کار به درستی انجام پذیرد، منجر به نتایج بهتر و رضایت بیشتر کاربران خواهد شد. چالش این نوع سیستمها انتخاب بهینهترین پیادهسازی میباشد.که در این مقاله به طور گسترده بررسی شده و در نهایت پیادهسازی مناسب پیشنهاد میشود.
کلمات کلیدی: سیستم خودمختار، سیستم خود تطبیق، پردازش خودمختار، پردازش خود تطبیق.
1. مقدمه
در سالهای اخیر، پیچیدگی سیستمهای نرمافزاری افزایش یافته است، علاوه بر این، سیستمها باید انعطافپذیر، قابل پیکربندی و خود بهینه شوند تا بتوانند خود را با تغییراتی که در محیط عملیاتی و نیازمندیهای سیستم رخ میدهند تطبیق دهند. این موارد منجر شدهاند تا خود تطبیقی مسئلهی بسیار مهمی در مهندسی نرمافزار شود. [1]
مدیریت نرمافزار در زمان اجرا اغلب هزینه بر و زمان بر است، بنابراین از یک مکانیزم تطبیق انتظار میرود تا عملهای تطبیقی را با هزینه ی منطقی و در یک روش زمانبندی شده انجام دهد. این هدف، از طریق کنترل خود سیستم نرمافزاری و محیط برای تشخیص تغییرات، اتخاذ تصمیمهای مناسب و بر طبق آن تصمیمها عمل کردن، به دست میآید. [2]
در این مقاله ابتدا تعاریفی از سیستمهای خود تطبیقی ارائه شده سپس چرخه خود تطبیقی و استخراج نیازمندیهای و بعد از آن طبقه بندی خود تطبیقی و پیادهسازیهای مربوطه به سیستم خود انطباقی گفته خواهد شد ودر نهایت بهترین نوع پیادهسازی پیشنهادشده است.
2. تعاریف خود تطبیقی
در طول ده های گذشته، اهمیت خود انطباقی به طور فزاینده ای در زمینه کاربرد های مختلف و فن آوری های مرتبط شناخته شده افزایش یافته است. در اینجا، برخی از رایجترین تعاریف پذیرفته شده را بررسی خواهد شد.
تعریف :1 خود انطباق قابلیت سیستم برای تنظیم رفتار خود در پاسخ به محیطش است. پیشوند '' خود '' نشان می د هد که سیستمهای خود گردان ( به عنوان مثال ، با حداقل یا بدون دخالت ) چگونه برای انطباق و یا سازماندهی خود سیستم تصمیمگیری میکنند. در حالی که برخی از سیستمهای خود انطباقی قادر خواهند بود که بدون هر گونه مداخله انسان عمل کنند، انطباق در قالب اهداف سطح بالاتر ( به عنوان مثال ، از طریق سیاستگذاریها) در بسیاری از سیستمها مفید و قابل تحقق است.
تعریف :2 در زمینه سیستمهای چند مدل ، انطباق یک روش برای سوئیچینگ بین مدل است . بنابراین انطباق میتواند به عنوان توانایی یک سیستم برای رسیدن به اهداف خود در یک محیط در حال تغییر ، به صورت انتخاب نحوه ی اجرا و سوئیچینگ بین مدلی کار کند. این قابلیت در تضاد با استفاده متعارف انطباق زمانی مورد استفاده در سیستمهای تک مدل است، که سیستم در آن به تناسب پارامترهای طراحی و یا روابط تنظیم شده کار میکند
تعریف :3 سیستم خود انطباقی شامل یک سیستم حلقه بسته است ( به عنوان مثال ، تغییر خود را در زمان اجرا با استفاده از بازخورد به دلیل تغییرات مداوم سیستم انجام میدهد ) ، الزامات آن و گرایشهای موجود در توسعه و گسترش سیستم پیچیده ، در نتیجهای تعامل بشر با کامپیوتر است. مفهوم سیستم خود انطباقی بستگی به نیازهای کاربر ، خواص سیستم و ویژگیهای زیستمحیطی است . نرمافزار خود انطباقی مستلزم اعتماد و اطمینان بالا ، استحکام ، انطباق ، و در دسترس بودن است .
تعریف:4 سیستم خود انطباقی رفتار خود را ارزیابی وبر اساس ارزیابی عملکرد خود را نشان میدهد. پس از ارزیابی تصمیم میگیرد آیا بهبود عملکرد لازم است یا خیر و سپس در صورت لزوم تطبیق را انجام میدهد. [3]
3. چرخه خود تطبیقی
نرمافزار خود تطبیق از یک مکانیزم چرخهی بسته استفاده میکند. به این چرخهی بسته، چرخهی تطبیق یا چرخهی MAPE-K1 میگویند و توسط IBM ارائه شده است. این چرخهی تطبیق شامل چهار مؤلفه همراه با حسگرها 2 و عملگرها 3 است این چرخه در شکل 1 نشان داده شده است. [4]
شکل : 1 چرخه خود تطبیق
4. استخراج نیازمندیهای انطباق
یکی از راههای قابل قبول برای به دست آوردن نیازمندیهای سیستمهای خود تطبیق، کمک گرفتن از شش سوالی است زیر است:
که با چه چیز، کجا، چه کسی، چه زمانی، چرا و چگونه شروع میشوند. این شش سؤال در استخراج نیازمندیها بسیار مفید هستند. شرح این مجموعه سوالات به صورت زیر است:[5]
• چه چیز: این مجموعه سوالات مشخص میکنند چه خصوصیات یا فرآوردههایی از سیستم میتوانند از طریق فعالیتهای انطباقی تغییر پیدا کنند. یا به عبارتی، در هر وضعیت چه چیزی نیاز به تغییر دارد. همچنین، این مجموعه سوالات به منظور شناسایی دیگر گزینههای در دسترس برای انجام و طیف تغییرات برای خصوصیات، حائز اهمیت است. علاوه بر این، برای تعیین اینکه چه رویدادها و خصوصیاتی برای پیگیری این تغییرات باید نظارت شوند، و چه منابعی برای فعالیتهای انطباقی ضروری است، کاربرد دارد.
• کجا: دغدغهی این دسته سوالات این است که کجا نیاز به تغییر دارد. کدام فرآورده 1 در کدام بخش و با چه دانه بندی باید تغییر کند؟ به این منظور، نیازمند جمع آوری اطلاعات در مورد خصوصیات سیستم انطباقی است.
• چه کسی: این مجموعه سوالات سطح خودکار بودن و دخالتهای انسانی را در فعالیتهای خود تطبیقی میسنجند. با توجه به خودکار بودن عملیات، انتظار میرود دخالتهای انسانی در کمترین حد باشند. این در حالی است که تعامل موثر بین مالک سیستم و مدیران آن نیاز است تا اعتماد و انتقال سیاست ها انجام شود.
• چه زمانی: توسط این مجموعه سوالات میتوان به جنبهیزمانیِ تغییرات پرداخت. چه زمانی نیاز است یک تغییر اعمال شود؟ چه زمانی این کار عملی است؟ آیا امکانپذیر است تغییرات در هر زمانی به سیستم اعمال شوند؟ آیا محدودیتهایی وجود دارد که برخی تغییرات را محدود کند؟ سیستم هر چند وقت یکبار نیاز به تغییر دارد؟ تغییرات به صورت مداوم رخ میدهند یا فقط در صورت نیاز اعمال میشوند؟
• چرا: این سوالات با انگیزهای ساخت یک سیستم خود تطبیق سروکار دارند. در واقع، اهداف سیستمهای خود تطبیق را شناسایی میکنند.
• چگونه: یکی از نیازمندی های مهم در انطباق، تعیین این مورد است که فرآوردههای قابل انطباق چگونه میتوانند تغییر کنند و چه اقداماتی برای وضعیتی که سیستم در آن قرار دارد، میتوانند مناسب باشند. این سوالات مشتمل بر این هستند که چگونهترتیبِ تغییرات، هزینه و
عواقب حاصل از آن برای تصمیم گیری در طرح 1 بعدی، اتخاذ شده است.
ایجاد تمایز بین سوالات چه چیز و کجا قابل توجه است. "کجا" به بخشی از سیستم میپردازد که باعث به وجود آمدن مشکل شده است (مانند انحراف از اهداف کیفی)، در حالی که "چه چیز" به خصوصیات و فرآوردههایی که نیاز است تغییر کنند تا مشکل حل شود، اشاره دارد. بنابراین با اینکه این سوالات مرتبط با هم هستند اما جنبه های متفاوتی از انطباق را تحت پوشش قرار میدهند.