بخشی از مقاله

بررسی مدل های جلوگیری از سالخوردگی نرم افزار

چکیده
طول عمر نرم افزار یک الگوریتم تصاعدی است که ممکن است با ایجاد خطا در سیستم همراه باشد و موجب شکست در آن شود. در این مقاله برای اجتناب از بروز خطا و سالخوردگی نرم افزار از جوان سازی نرم افزار استفاده می شود که به بالا بردن طول عمر نرم افزار اشاره دارد. هدف از جوان سازی نرم افزار از میان برداشتن خطاهایی است که در اثر مرور زمان، فرسودگی منابع، پارگی حافظه، خرابی داده یا آزاد نشدن قفلهای روی فایل ها ایجاد می شوند. نقش این بحث این است که ضمن ارزیابی فرایند های مختلف، رهنمودی در رابطه با به کار گیری مناسب ترین روش پیشنهاد دهیم. در این تحقیق ما به بررسی و مقایسه میان روش های ارائه شده در جوان سازی نرم افزار می پردازیم، که تمرکز این تحقیق روی کشف شباهت ها و اختلافات بین روش های در دسترس خواهد بود و این کار از طریق جدول ارزیابی صورت خواهد گرفت.

-1 مقدمه
امروزه در حالی که تلاش برای تهیه سرویس بدون وقفه زیاد می شود، در نرم افزارهای مدرن قابلیت اطمینان و دسترس پذیری دو خصیصه کیفی می باشند که نیاز به آنها در حال افزایش است. به طور کلی محاسبات ابری به پایگاه داده های بزرگ و منابع محاسباتی دسترسی دارد. در واسط های مختلف مانند "شبکه توری" و "محاسبات با کارایی بالا"، مدیریت منابع و برنامه نویسی صورت می پذیرد. دسترس پذیری و قابلیت اطمینان نیازهای اصلی برای مشتقات cloud هستند . موضوعی که معمولا خیلی از سرویس دهندگان در مورد آن غفلت می کنند تاثیرات سالخوردگی روی نرم افزار است.

خطاهای نرم افزاری باید در فاز اشکال زدایـی رفـع شـوند. حتی ممکن است نرم افزار بـه صـورت صـحیح تسـت شـود ولـی دارای خطا باشد که هنوز آشکار نشده یا در اثر مرور زمان آشـکار خواهد شد. نوع دیگری از خطا که در سیسـتم هـای نـرم افـزاری مشاهده می شود به علت فرسودگی منـابع، پـارگی حافظـه، آزاد نشدن قفلهای روی فایلها، خرابی دادهها، و کمبود حافظـه بعـد از مرور زمان به وجود میآیند. در این تحقیق ما به ارائه روشی مـی پردازیم که در آن خطاهایی که به مرور زمـان در سیسـتم ایجـاد شده را از میان بـرداریم و از فرسـودگی کـه باعـث پـایین آمـدن کارایی و دسترس پذیری به منابع می شود جلوگیری کنیم.

-2 تشریح مطالب پایه و کلمات کلیدی:

در زیر به تشریح سالخوردگی نرم افزار، جوان سازی نرم افزار و تکنولوژی مجازی سازی پرداخته شده است:

-1 -2طول عمر نرم افزار:

با گذشت زمان تاثیرات ناخواسته و نا مطلوبی روی کارایی نرم افزار ایجاد می شود که بعنوان پدیده سالخوردگی نرم افزار شناخته می شود. 11]،10،[7 اینپدیده اکثراً تاثیر گذار روی کارایی نرم افزار و کاهش کارایی در منابع سیستــــــم عاملی، انحراف دادهای و انباشتـگی خطاهای عددی است و موجب شکست در سیستم می شود. سالخوردگی نرم افزاری یک الگوریتم تصاعدی است که با تخلیه منابع و ایجاد شکست یا تعویق در سیستم همراه است. با سالخوردگی نرم افزار کارایی نرم

افزار با گذشت زمان کاهش خواهد یافت و نتایج ناچار و نا دسترس پذیری سرویس ها به کار برده شوند.[6] نتیجه این که مطلوبی به وجود خواهد آورد. مجازی سازی می تواند برای جوان سازی مفید واقع شود و بر خطا ها و سالخوردگی غلبه کند.

-2-2 دوباره جوان سازی نرم افزار:
جوان سازی نرم افزار یک تکنیک با هزینه کارآمد و موثر است و برای مقابله با خطاهای نرم افزاری که نه تنها در برابر شکست های سنگین محافظت می کنند، بلکه از کنترل کارایی نیز محافظت می کنند، طراحی شده است. [16] این تکنیک یک مفهوم تکرار شونده است و شروع مجدد انحصاری هر نرم افزار در یک محیط داخلی درست بعد از هر فاصله جوان سازی تکرار می شود. یعنی اگر در سیستم خطایی پیش آمد و سیستم ملزم به جوان سازی نرم افزار شد، بعد از جوان سازی دوباره سیستم به حالت اولیه برگشته و آمادگی رو به رو شدن با خطاهای بعدی را دارد و این چرخهمرتباً تکرار می شود.

جوان سازی نرم افزار بعضی وقت ها باعث توقف درخواست های نرم افزاری، رفع خطا و شروع مجدد درخواست در یک محیط بی خطر می شود. این فرایند مانع از انباشتگی خطا ها شده و منابع سیستم پردازشی را آزاد و آنها را به هم متصل میکند، بنابراین از فعالیت بدون برنامه یا پرهزینه جلوگیری میکنــــد. آزمایشات جوان سازی میتواند شروع دوباره نرم افزاری یا راه اندازی مجدد سیستم باشد.[ 16] سپس عملیات سالخوردگی از بین رفته و عملیات جدید به وجود می آید. با جابهجایی فرایند جدید بهجای قدیمی، انباشتگی تاثیرات سالخوردگی را در طول اجرای نرم افزار که موجب شکست سیستم می شود را از بین می بریم .

-3-2 مجازی سازی:
برای بالا بردن طول عمر نرم افزار می توان از ماشین مجازی استفاده نمود. مجازی سازی امکان استفاده از منابع موجود به ویژه منــابع دادهای را گسترش داده اســـــت. 18]،[14 تحقیقات نشان می دهد که مجازی سازی می تواند به میزان زیادی در جوان سازی نرم افزار و جلوگیری از شکست مفید باشد. مقاله های 5]،[4 این فرضه را اثبات کرده اند. نتایجی که مجازی سازی روی جوان سازی دارد تاثیر گذار در دسترسی طولانی مدت تر به سرویس ها و هزینه کمتر دارد .[5] مجازی سازی به همراه جوان سازی می توانند برای طولانی کردن

-3 دسته بندی جوان سازی:
در این بخش جوان سازی را طبق شکل 1، به 3 بخش اصلی تجزیه می کنیم.

)-1-3بر پایه زمان):Time-based
جوان سازی نرم افزار یک مفهوم ویژه از مدیریت خطا است که می تواند در زمان مناسب انجام شود، مانند زمانی که هیچ باری در سیستم نیست و نتیجه ای در زمان افت کمتر و هزینه کمتر، از این کار ناشی می شود. [3] این روش جوان سازی دارای یک مشکل معمول در حین جوان سازی است. زمان افت که در زمان شروع مجدد یا راه اندازی مجدد در سیستم رخ می دهد زمانی که نرم افزار در حال بارگذاری داده روی سیستم نباشند اتفاق می افتد. با مدیریت خطا میتوان زمان افت را نسبت به حالت معمول شروع مجدد نرمافزاری یا راه اندازی مجدد سیستم کاهش داد ولی همچنان روش مناسبی برای کاهش زمان افت نیست. جوان سازی بر اساس روشی منظم و مدت زمان از پیش تعیین شده انجام می شود و به صورت گسترده در محیط های واقعی استفاده می شود. مانند وب سرورها.

-2-3 بلادرنگ:
این تکنیک به صورت بلادرنک پس از رو به رو شدن با خطا، صرف نظر از خطایی که پیش آمده، عملیات جوان سازی را انجام میدهد. اگر نیاز به جوان سازی در زمانی باشد که سیستم بعد از جوان سازی در فاصله کوتاهی نیاز به دوباره جوان سازی نداشته باشد، نتیجه ای در زمان بهتر و هزینه کمتر دارد. ولی ایرادی که به این روش می توان گرفت این است که در این روش ممکن است با کمبود منابع روبه رو شویم و این کمبود منابع زمان افت را به نوبه خود بالا می برد. پس در این روش هم دسترس پذیری به منابع و هم زمان افت دو مبحث چالش برانگیزهستند .[5]

-3-3 (بر پایه بازرسی):Inspection-based
بر پایه میزان پیشرفت تاثیرات سالخوردگی و بر پایه محدودیت های تعریف شده و تریگرها تعیین می شود. که به سه دسته آستانه و پیش بینی و ادغام تجزیه شده است. [3]

آستانه: توسط یک فرد خبره برای هر مبحث قابل ملاحظه که شاخصی از سالخوردگی باشد تعریف می شود. بر پایه نمایش تاثیرات سالخوردگی نرم افزار است. و زمانی که واقعه خاصی رخ دهد از سیستم جوان سازی شده کپی می گیرد.
پیش بینی: پیش بینی زمان فرسودگی جوان سازی است. به این صورت که این سیستم یک دوره زمانی خاص را برای جوان سازی نرم افزار معرفی می کند و این دوره جوان سازی مرتب در این سیکل دوره زمانی تکرار می شود. پس عملا زمان فرسودگی را پیش بینی کرده و توسط دوره تریگر جوان ساز، جوان سازی را انجام داده. [2]
ترکیبی: حالت ترکیبی از دو حالت قبل است ، به این ترتیب است که در دوره زمانی مشخص و توسط فرد خبره کنترل شده.
این کار باعث کاهش بعضی هزینه ها می شود ولی احتمال رخداد خطا بالاست و عملا نتیجه بهینه ای در جوان سازی ندارد.[3]

-4 مشکلات دسته های مختلف جوان سازی :
هر کدام از روش های اصلی بالا می توانند برای جوان سازی نرم افزار به کار روند ولی دارای مشکلات زیر هستند. که در جدول((1 نیز به آنها اشاره شده.
مشکل روش اول: در مرحله "بر پایه زمانی" انتخاب زمان جوان سازی بر پایه پایین ترین لود در سیستم بوده . ولی از نظر زمان و دسترس پذیری منابع بهینه نیست.
مشکل روش دوم : در مرحله "بازرسی" به این صورت است که توسط فرد خبره با یک دوره زمانی تعیین شده سیستم جوان سازی شود. در این روش دسترس پذیری منابع حل شده ولی این نیز از نظر هزینه و کارایی و قابلیت اطمینان پایین آمده و زمان افت نیز بهینه نیست.
مشکل روش سوم: در روش "بلادرنگ" سیستم به محض مواجه با شدن با خطا عملیات جوان سازی را انجام می دهد. در این روش مشکل زمان حل شده ولی از نظر هزینه و کارایی و قابلیت اطمینان بهینه نیست.

.

پس بنابراین هر کدام از این روشها به نحوی دارای مشکلی هستند و هیچ کدام به صورت ایدهآل اکثر این مشکلات را حل نمی کنند. ما در جوان سازی بر پایه پیش بینی مکانیسمی ارائه خواهیم کرد که نقاط ضعف جوان سازی بر پایه بازرسی را تا حد کنترل شدهای از میان بردارد و تخمینی از زمان جوان سازی نرم افزار داشته که دسترسی به منابع را افزایش دهد.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید