رشته فناوری اطلاعات (IT)
دانلود تحقیق کارشناسی ارشد رشته آی تی روالهای تحمل پذیر اشکال برای رسیدن به قابلیت دسترسی بالا در سیستم های مبادله پیام
چکیده یكی از مهمترین تكنیكها در افزایش قابلیت اطمینان و قابلیت دسترسی بالا، بازیافت میباشد. این تكنیك كه به صورت مخفی از دید كاربر انجام میگیرد به ما كمك میكند تا بتوانیم عمل تحملپذیری اشکال را انجام دهیم. این قراردادها در یك محیط توزیع شده كه مجموعهای از تکه برنامههای موازی (پروسهها، ماشینهای مجازی و...) در آن وجود دارند و بر روی یك شبكه با یكدیگر ارتباط دارند، عمل میكند. این تکه برنامهها به یك ذخیرهساز پایدار دسترسی دارند كه اشکالهای تحمل شده را به كمك آن بازیابی میكنند. در واقع ماشینهای مجازی اطلاعات مرتبط به بازیافت را در زمان اجرا روی این ذخیرهساز ثبت میكنند. در زمان رویداد یك اشکال، ماشین مجازی میتواند با استفاده از این دادهها از آخرین محاسبات، كار خود را ادامه دهد و بنابراین در زمان پردازش صرفهجویی كند. حداقل اطلاعات بازیافت، شامل حالت ماشین مجازی است كه به آن نقطه مقابله گفته میشود. بعضی از قراردادهای بازیافت ممكن است به اطلاعاتی نظیر ارتباطات بین دستگاههای ورودی/ خروجی، اتفاقهایی كه روی هر ماشین مجازی افتاده است و پیامهایی كه بین کارهای درون ماشین مجازی مبادله شده است، احتیاج داشته باشد.
قراردادهای بازیافت میتوانند به طرق مختلف استفاده شوند كه بهترین نوع آنها تكنیكهایی است كه به صورت مخفی عمل میكنند و برنامه كاربردی و برنامهنویس دخالتی در عملكرد آن ندارند. در این حالت سیستم به صورت خودكار و بر اساس سیاست مشخص شده نقطه مقابله را میگیرد و در صورت رویداد اشکال آن را به صورت خودكار بازیابی مینماید. حسن این روش، راحت شدن برنامهنویس از پیچیدگی مورد نیاز برای تحملپذیری اشکال در برنامه است و در این صورت برنامهها بدون ملاحظات تحملپذیری اشکال نوشته خواهند شد.
بازیافت در سیستمهای مبادلة پیام مشكل است، زیرا پیامها باعث ایجاد وابستگی بین تکه برنامههای محییط موازی در زمان اجرای عادی آنها میشود. این وابستگی باعث میشود كه گاهی واحدهایی كه خراب نشدهاند نیز بازیافت شوند. برای دیدن اینكه چرا عمل انتشار بازیافت اتفاق میافتد، فرض كنید فرستنده یك پیام مثل m، به حالت قبل ارسال پیام بازیافت شود. گیرنده پیام m نیز باید در حالت قبل از دریافت پیام m قرار گیرد. در غیر اینصورت، حالت دو ماشین مجازی غیر یكپارچه خواهد شد و نشان میدهد كه پیام m ارسال نشده است اما یك ماشین مجازی آن را دریافت كرده است و این غیرممكن است. تحت شرایطی ممكن است عمل انتشار بازیافت آنقدر به عقب برگردد كه باعث شود تمام كارهای انجام شده از بین برود و نهایتاً ماشین مجازی به حالت اولیه بازیافت شود كه به آن اثر دومینو گفته میشود[16]. اثر دومینو ممكن است در اثر گرفتن نقطه مقابلههای مستقل در هر ماشین مجازی اتفاق بیفتد كه به این روش نقطه مقابله گرفتن مستقل یا غیرهماهنگ گفته میشود.
واضح است كه از بین بردن اثر دومینو مورد نظر طراحان روشهای تحملپذیر اشکال است. یكی از روشهای از بین بردن آن گرفتن نقطه مقابله به صورت هماهنگ است كه در آن ماشینهای مجازی، نقطه مقابله را به صورت هماهنگ با یكدیگر بهدست میآورند [17]. این مجموعه یكپارچه از نقطه مقابلهها میتواند برای محدود كردن انتشار بازیافت مورد استفاده قرار گیرد. همچنین روش نقطه مقابله گرفتن بر اساس ارتباطات، هر ماشین مجازی را مجبور به گرفتن نقطه مقابله بر اساس پیامهای دریافتی از بقیه ماشینهای مجازی میكند[17]. نقطه مقابلههایی كه به این صورت گرفته شوند یك حالت همیشه یكپارچه را برای سیستم، روی ذخیره ساز پایدار حفظ مینماید و بنابراین اثر دومینو را از بین خواهد برد.
علاوه بر تكنیك گفته شده برای بازیافت كه بر اساس نقطه مقابله میباشد، روش دیگری نیز برای بازیافت مطرح است كه بر اساس ثبت وقایع استوار است. در این روش رویدادها یا پیامها ثبت میشوند تا برای بازیافت حالت سیستم در هنگام رویداد اشکال استفاده شود. بازیافت بر اساس ثبت وقایع به فرض PWD تكیه دارد[19] كه ادعا میكند همه رویدادهای غیرقطعی كه توسط یك ماشین مجازی اجرا میگردد میتواند تشخیص داده شود و اطلاعات لازم برای پاسخ هر رویداد در زمان بازیافت میتواند در یك تعیینكننده رویداد ثبت شود[19].
با ثبت وقایع وپاسخدهی به رویدادهای غیرقطعی به ترتیب اصلی، یك ماشین مجازی میتواند حالت قبل از اشکال خود را بازسازی كند حتی اگر این حالت نقطه مقابله نشده باشد. در حالت كلی قراردادهای بازیافت بر اساس ثبت وقایع امكان بازیافت را برای یك سیستم فراتر از مجموعه نقطه مقابله یكپارچه فراهم میآورد. این خاصیت میتواند برای كاربردهایی كه با دنیای بیرون ارتباط دارند، بسیار مهم باشد زیرا تعدادی از دستگاههای ورودی و خروجی هستند كه نمیتوانند بازگشت به عقب داشته باشند.
Stable Storage
Rollback Propagation
Inconsistent
Domino effect
Uncoordinated checkpointing
Coordinated checkpointing
Communication- induced checkpointing
Log
Piece Wise Deterministic
Nondeterministic event
Event’s determinant
واژه های کلیدی: قابلیت دسترسی بالا سیستم های مبادله پیام روالهای تحمل پذیر اشکال فهرست مطالب 3 روالهای تحملپذیر اشکال برای رسیدن به قابلیت دسترسی بالا در سیستمهای مبادله پیام 36 3-1 پیشزمینه و تعاریف 38 3-1-1 مدل سیستم 38 3-1-2 حالتهای سیستم یكپارچه 39 3-1-3 تعامل با دنیای خارج 40 3-1-4 پیام در حال گذر 41 3-1-5 قراردادهای ثبت وقایع 42 3-1-6 ذخیرهساز پایدار 43 3-1-7 جمعآوری دادههای زائد 44 3-2 بازیافت براساس نقطه مقابله 44 3-2-1 نقطه مقابله گرفتن به صورت غیرهماهنگ 45 3-2-2 نقطه مقابله گرفتن به صورت هماهنگ 48 3-2-3 نقطه مقابله گرفتن بر اساس ارتباطات 51 3-3 بازیافت بر اساس ثبت وقایع 54 3-3-1 شرط یكپارچگی بدون پروسههای یتیم 55 3-3-2 ثبت بدبینانه وقایع 56 3-3-3 ثبت خوشبینانه وقایع 59 3-3-4 ثبت علّی وقایع 61 3-3-5 مقایسه قراردادهای بازیافت 63 3-4 مباحث مطرح در پیادهسازی 63 3-4-1 بررسی 63 3-4-2 پیادهسازی تکنیکهای نقطه مقابله گرفتن 64 3-4-3 مقایسة قراردادهای نقطه مقابله گرفتن 66 3-4-4 قراردادهای ارتباطی 66 3-4-5 بازیافت بر اساس روش ثبت وقایع 67 3-4-6 ذخیرهساز پایدار 67 3-4-7 دنبال كردن وابستگی 68 3-4-8 بازیافت 69 منابع فهرست شکل ها شکل 3 1 مثالی از یك سیستم مبادله پیام با سه واحد موازی شکل 3 2 مثالی از حالت یكپارچه و غیریكپارچه سیستم شکل 3 3 پیادهسازی مكانیسمهای بازیافت شکل 3 4 ثبت كردن پیام برای اجرای مجدد قطعی شکل 3 5 اندیس نقطه مقابله و بازه نقطه مقابله شکل 3 6 (a) یك اجرای مثال (b) گراف وابستگی بازگشت به عقب (c) گراف نقطه مقابله شکل 3 7 انتشار بازگشت به عقب، خط بازیافت و اثر دومینو شکل 3 8 نقطه مقابله گرفتن به صورت هماهنگ و غیربلوكه شونده (a) غیریكپارچگی نقطه مقابله (b) با كانال FIFO (c) با كانال غیرFIFO شکل 3 9 مسیر Z سیكل Z شکل 3 10 روش ثبت بدبینانه وقایع شکل 3 11 روش ثبت خوشبینانه وقایع شکل 3 12 روش ثبت علّی وقایع (الف) حالتهای قابل بازیافت حداكثر (ب)گراف مقدم را برای پروسه P0 در حالت X فهرست جداول جدول 3 1 مقایسه بین قراردادهای مختلف بازیابی [47]