180 likes | 695 Vues
سیستم های توزیع شده ادامه فصل 2 – جلسه 7. مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92. جدول زمانبندی درس. سرفصل مطالب. استایل های معماری معماری های سیستم معماری در برابر میان افزار خودتنظیمی در سیستم های توزیعی.
E N D
سیستم های توزیع شدهادامهفصل 2 – جلسه 7 مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92
سرفصل مطالب • استایل های معماری • معماری های سیستم • معماری در برابر میان افزار • خودتنظیمی در سیستم های توزیعی
سرفصل مطالب • استایل های معماری • معماری های سیستم • معماری در برابر میان افزار • خودتنظیمی در سیستم های توزیعی
یادآوری • معماری در برابر میان افزار • Interceptor ها • رهیافت های کلی برای نرم افزارهای تطبیق پذیر
رهیافت های کلی برای نرم افزارهای تطبیق پذیر • Interceptor ها تطبیق پذیری سیستمها را بالا می برند. • یا در واقع سیستم عمومی تر می شود. • در مقابل سادگی را از دست می دهیم. • چرا می خواهیم سیستم های تطبیق پذیر داشته باشیم؟ • محیطهای سیستم های توزیعی امروزه به صورت پیوسته درحال تغییرند. • اضافه شدن کاربران متحرک، کیفیت سرویس، خرابی سخت افزارها، کمبود منابع انرژی (باتری)، ... • عکس العمل به این تغییرات در میان افزار مطرح می شوند. • در گذشته، سیستم های توزیعی، قابل اطمینان تر بودند. • سیستم های بانکداری • تطبیق پذیری در سیستم های امروزی بیشتر مطرح است.
رهیافت های کلی برای نرم افزارهای تطبیق پذیر (2) • حرکت طراحان میان افزار به سمت نرم افزارهای تطبیق پذیر • نرم افزارهای تطبیق پذیر آن طور که لازم بوده موفق نبوده اند! • سه تکنیک اصلی: • تفکیک ملاحظات (Separation of concerns) • انعکاس محاسباتی (Computational reflection) • طراحی براساس ترکیب مؤلفه ها (Component-based design) • موارد بالا، بحث هایی هستند که هنوز راه حل های قطعی و دقیق ندارند.
تفکیک ملاحظات • مرتبط با راه مرسوم ماجولار کردن سیستم ها • جدا کردن بخشهای مربوط به پیاده سازی عملکردهای اصلی از عملکردهای اضافه • functionalityو extra-functionality که به آن non-functional نیز می گویند. • عملکردهای اضافه مانند: قابلیت اطمینان، کارایی، امنیت، کیفیت سرویس، ... • نکته 1: طراحی میان افزار برای سیستمهای توزیعی معادل توسعه عملکردهای اضافه مستقل از کاربردهاست. • نکته 2: تفکیک عملکردهای اضافه مشکل است. • مثلاً داشتن یک ماجول جداگانه برای امنیت معمولاً کارآمد نیست. • تفکیک ملاحظات و اتصال آنها به یکدیگر • نرم افزارهای جنبه گرا (aspect-oriented software)
انعکاس محاسباتی • توانایی یک برنامه در بازرسی خود و تطبیق رفتارش در صورت لزوم • برنامه باید بتواند براساس بازرسی که از خود دارد تصمیم بگیرد. • در برخی زبان های برنامه سازی مانند جاوا، وارد شده است. • و برخی میان افزارها نیز این را در نظر گرفته اند. • راه زیادی تا توسعه در بسیاری در سیستم های توزیعی دارد. • نرم افزارهای انعکاسی (reflective software) مانند نرم افزارهای جنبه گرا
طراحی براساس ترکیب مؤلفه ها • مؤلفههای مختلفی وجود داشته باشد و سیستم خود تصمیم بگیرد که چه ترکیبی از مؤلفه ها را استفاده کند. • پیکربندی و تنظیمات سیستم ها به دو صورت است: • ایستادر زمان طراحی • پویادر زمان اجرا • لازمه پیکربندی پویا در زمان اجرا • تکنیک late binding • در زبان های برنامه نویسی و سیستم های عامل پشتیبانی می شود. • بارگذاری ماجول ها در زمان موردنیاز • در سیستم های توزیعی، باز هم مشکل است. • زیرا مؤلفه ها به اندازه کافی مستقل از هم نیستند.
سرفصل مطالب • استایل های معماری • معماری های سیستم • معماری در برابر میان افزار • خودتنظیمی در سیستم های توزیعی
خود-تنظیمی در سیستم های توزیعی • مفهوم تطبیق پذیری به صورت اتوماتیک • این مفهوم به طور کلی چندان جدید نیست ولی در نرم افزار سیستم های توزیعی جدید است. • استفاده از ایده سیستم های کنترلی مبتنی بر فیدبک • Feedback control systems • Autonomic computing • Self-star systems • مورد آخر بر می گردد به تنوعی که سازگاری های اتوماتیک دارند: • خود مدیر (Self-managing) • خود ترمیم (self-healing) • خود پیکربند (self-configuring) • خود بهینه ساز (self-optimizing)
مدل کنترلی مبتنی بر فیدبک • خودتنظیمی به صورت ضمنی یا صریح مفهوم حلقه کنترل مبتنی بر فیدبک را دارد. • قسمت هسته، شامل همه مؤلفه هایی است که می خواهیم آنها را مدیریت کنیم. • پارامترهای ورودی قابل کنترل • می توان پارامترهایی که کنترل روی آنها نداریم را نیز وارد کرد (نویز، عوامل مزاحم).
مدل کنترلی مبتنی بر فیدبک (2) • سه قسمت اصلی در یک سیستم کنترل • سیستمی که قرار است مانیتور شود. شامل مؤلفه تخمین معیار • اندازه گیری تأخیر در اینترنت با ابزارهای مختلف • آنالیز اندازه گیری ها و مقایسه با مقدار مرجع. شامل مؤلفه آنالیز فیدبک • مکانیزم هایی برای تنظیم رفتار سیستم • گذاشتن کپی ها (تکرارها) • تغییر اولویت های زمانبندی • سرویس های سوئیچینگ • جابجایی داده ها برای در دسترس بودن بیشتر • هدایت کردن درخواست ها به سمت سرورهای مناسب
خود-تنظیمی در سیستم های توزیعی (4) • مثالهایی از خود-تنظیمی در سیستم های توزیعی • سیستم Astrolabe • استراتژی های کپی در سیستم Globule • مدیریت تعمیر مؤلفه ها در Jade