Abstract
Softwareʼs reliability in distributed systems has always been a major concern for all stake holders especially for applicationʼs vendors and its users. Various models have been produced to assess or predict reliability of large scale distributed applications including e-government, e-commerce, multimedia services, and end-to-end automotive solutions, but reliability issues with these systems still exists. Ensuring distributed systemʼs reliability in turns requires examining reliability of each individual component or factors involved in enterprise distributed applications before predicting or assessing reliability of whole system, and Implementing transparent fault detection and fault recovery scheme to provide seamless interaction to end users. For this reason we have analyzed in detail existing reliability methodologies from viewpoint of examining reliability of individual component and explained why we still need a comprehensive reliability model for applications running in distributed system. In this paper we have described detailed technical overview of research done in recent years in analyzing and predicting reliability of large scale distributed applications in four parts. We first described some pragmatic requirements for highly reliable systems and highlighted significance and various issues of reliability in different computing environment such as Cloud Computing, Grid Computing, and Service Oriented Architecture. Then we elucidated certain possible factors and various challenges that are nontrivial for highly reliable distributed systems, including fault detection, recovery and removal through testing or various replication techniques. Later we scrutinize various research models which synthesize significant solutions to tackle possible factors and various challenges in predicting as well as measuring reliability of software applications in distributed systems. At the end of this paper we have discussed limitations of existing models and proposed future work for predicting and analyzing reliability of distributed applications in real environment in the light of our analysis
چکیــده
قابلیت اطمینان نرم افزار در سیستم های توزیع شده همیشه به عنوان یک نگرانی مهم برای ذینفعان به خصوص فروشندگان و کاربران برنامه های کاربردی بوده است. مدل های گوناگون برای ارزیابی یا پیش بینی قابلیت اعتماد برنامه های کاربردی توزیع شده در مقیاس بزرگ تولید شده اند، از جمله دولت الکترونیک، تجارت الکترونیک، خدمات چندرسانه ای و راه حل های خودکار نظیر به نظیر، اما مسئله قابلیت اطمینان با وجود این سیستم ها همچنان وجود دارد. تامین قابلیت اطمینان سیستم های توزیع شده در برخی موارد نیازمند بررسی تکی هر مولفه یا فاکتور، شامل اجرای برنامه های کاربردی توزیع شده قبل از پیش بینی یا ارزیابی قابلیت اطمینان کل سیستم، و رویه کشف خطا و طرح بازیابی خطا برای تراکنش های یکپارچه برای کاربران نهایی است. به این دلیل ما متودولوژی های قابلیت اطمینان موجود را از نقطه نظر ارزیابی قابلیت اطمینان مولفه های تکی تجزیه و تحلیل می کنیم و توضیح می دهیم که چرا ما هنوز به دنبال یک مدل قابلیت اطمینان جامع برای برنامه های کاربردی اجرا شده در سیستم های توزیع شده هستیم. در این مقاله ما به طور دقیق یک دیدگاه فنی از تحقیقات انجام شده در سال های اخیر در زمینه تجزیه و تحلیل و پیش بینی قابلیت اطمینان در برنامه های کاربردی توزیع شده در مقیاس بزرگ را در چهار قسمت ارائه می کنیم. در ابتدا ما بعضی از نیازمندی های عملی برای سیستم های با قابلیت اطمینان بالا و تخصصی و مسائل مختلف قابلیت اطمینان در محیط های محاسباتی متفاوت را توصیف می کنیم که عبارتند از : محاسبات ابری، محاسبات شبکه ای، معماری خدمت گرا. سپس ما فاکتورهای قطعی ممکن و چالش های مختلف را به طور روشن و واضح بیان می کنیم که برای سیستم های توزیع شده با قابلین اطمینان بالا مهم است، شامل تشخیص خطا، بازیابی و حذف از طریق تست یا تکنیک های پاسخگویی متفاوت. در مرحله بعد ما به دقت مدل های تحقیقاتی مختلف را بررسی می کنیم که راه حل های به خصوصی را برای به کار گیری فاکتورهای ممکن و چالش های مختلف در پیش بینی، با اندازه گیری قابلیت اطمینان برنامه های کاربردی نرم افزاری در سیستم های توزیع شده بررسی می کنیم. در آخر این مقاله ما به بررسی محدودیت های مدل های موجود و پیشنهاد کارهای آینده برای پیش بینی و تجزیه و تحلیل قابلیت اطمینان برنامه های کاربردی توزیع شده در محیط های واقعی در راستای تجزیه و تحلیل های خودمان می پردازیم.
1-مقدمه
با پیشرفت های تخصصی در زمینه محیط های توزیع شده در دهه های اخیر به خصوص در تهیه سرویس های نرم افزاری/سخت افزاری برای دسته های مختلفی از ذینفعان، محیط های محاسباتی با مراجعه به اشتراک داده ها، چرخه به اشتراک گذاری و سایر مدل های تراکنشی، تغییرات اساسی کرده است که شامل منابع توزیع شده است...