1 / 29

مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir

سیستم های توزیع شده ادامه فصل 2 – جلسه 6. مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92. جدول زمانبندی درس. سرفصل مطالب. استایل های معماری معماری های سیستم معماری در برابر میان افزار خودتنظیمی در سیستم های توزیعی.

adonis
Download Presentation

مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. سیستم های توزیع شدهادامهفصل 2 – جلسه 6 مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92

  2. جدول زمانبندی درس

  3. سرفصل مطالب • استایل های معماری • معماری های سیستم • معماری در برابر میان افزار • خودتنظیمی در سیستم های توزیعی

  4. سرفصل مطالب • استایل های معماری • معماری های سیستم • معماری در برابر میان افزار • خودتنظیمی در سیستم های توزیعی

  5. یادآوری • معماری های سیستم • معماری های متمرکز • مدل کلاینت-سرور (2-tiered) • مدل های multi-tiered • معماری های غیرمتمرکز • ساخت یافته • بدون ساختار • معماری های پیوندی

  6. معماری های بدون ساختار • معمولاً مبتنی بر الگوریتم های تصادفی هستند. • هدف در این معماری ها ساختن یک گراف تصادفی است. • هر گره، لیستی از c همسایه دارد. • به لیست همسایه ها دید جزئی (partial view) گفته می شود. • هر گره، دید (یا لیست خودش) را دارد. • مجموعه همه دیدها گراف کل شبکه را تشکیل می دهد. • آیا می شود هر گرهی تمامی گره های دیگر را بشناسد؟ • اگر شبکه کوچک باشد می شود ولی بزرگ خیر. • تعریف همسایگی: • هر گرهی که نزدیک تر است. • گره ها باید دیدهای خودشان از دیگر گره ها را با همسایه های خود مبادله کنند.

  7. معماری های بدون ساختار (2) • هر گره P به صورت متناوب یک گره Q را از لیست خود انتخاب می کند و لیست خود را با آن مبادله می کند. • هر گره لیست همسایه های خود را بر حسب زمان دریافت مرتب نگه می دارد (age). • درایه های قدیمی تر، پایین تر • در مبادله لیستها، نیمه ی بالای لیست رد و بدل می شوند. • احتمال زیاد قدیمی ترها قبلاً مبادله شده اند. • برای پیدا کردن داده ای در این شبکه • گره باید درخواست خود را به صورت سیل آسا بفرستد. • با توجه به لیست های گره ها درخواست ارسال شده همین طور پیش می رود. • مشکل مقیاس پذیری دارد. Q P c/2 new . . . . . . old

  8. معماری های بدون ساختار (3) اطلاعات خودش را به همسایه می دهد. اطلاعات همسایه اش را می گیرد. ممکن است یک گره در یک لحظه در هر کدام ازاین مُدها باشد یا در هر دو مُد.

  9. معماری های بدون ساختار (4) در حالت منفعل، هر گرهی که اطلاعات می دهد، به همین ترتیب بقیه همسایه ها نیز اطلاعات خود را می دهند.

  10. مدیریت توپولوژی • مدیریت توپولوژی برای ساخت یک دید با ساختار مشخص است. • رهیافت دو لایه ای برای ساخت یک توپولوژی خاص

  11. مدیریت توپولوژی (2) • استفاده از یک تابع امتیازدهی (ranking function): • گره ها با توجه به یک معیار خاص تعریف شده نسبت به یک گره خاص مرتب می شوند. • مثلاً مرتب کردن گره ها بر اساس افزایش فاصله از یک گره p • در واقع توپولوژی با توجه به این معیار به دست می آید نه به صورت تصادفی • مثال: یک گرید N x N به صورتی که گره 1 و N نیز به هم متصل باشند. • فاصله بین دو گره (a1, a2)و (b1, b2) به صورت زیر تعریف می شود: (a1, a2) (b1, b2)

  12. مدیریت توپولوژی (3) • اگر لایه پایینی الگوریتم تصادفی معماری های غیرساخت یافته ذکر شده را اجرا کند، خواهیم داشت:

  13. مدیریت توپولوژی (4) • معیارهای دیگری برای تابع امتیازدهی • مجاورت معنایی (semantic proximity): با توجه به محتوای داده ها استخراج می شود. • منجر به ساخت شبکه semantic overlay می شود. • در شبکه هایی مثل P2P منجر به ارائه الگوریتم های جستجوی داده کارا می شود. • مشکل مقیاس پذیری در معماری های بدون ساختار • با زیاد شدن تعداد گره ها، روش سیل آسا سربار زیادی خواهد داشت (الگوریتم مسیریابی مشخصی وجود ندارد). • حل مشکل: • در بسیاری از سیستم های P2P از گره های خاصی استفاده می شود که اندیس داده ها را نگهداری می کنند. • سوپر نظیرها (Superpeers)

  14. سوپرنظیرها • ساختار متقارن در این شبکه ها نقض شود. • مفهوم مشابه: گره های واسطه (broker) • گرهی که اطلاعات مصرف منابع را برای تعدادی از گره ها که در مجاورت یکدیگر هستند، فراهم می کند. • انتخاب گره با منابع کافی به سرعت انجام می شود. • تعریف گره های سوپرنظیر: • گره هایی که اندیس های داده ها را روی گره ها نگهداری می کنند یا مانند واسطه عمل می کنند. • در یک شبکه P2P: • سوپرنظیرها ساختار سلسله مراتبی ایجاد می کنند.

  15. سوپرنظیرها (2) • گره جدیدی که به سیستم اضافه می شود • باید به یک گره سوپرنظیر بپیوندد. • تا زمان ترک شبکه باید به آن متصل باشد. • گره های سوپرنظیر • باید از نظر ماندگاری و در دسترس بودن در سطح بالایی باشند. • تغییر اتصال یک گره به سوپرنظیرهای • دیگر • هر گرهی به سوپرنظیری • وصل می شود که اطلاعات داده • موردنظرش را داشته باشد. • نحوه انتخاب گره سوپرنظیر: • استفاده از الگوریتم های • انتخاب رهبر (موضوع فصل 6)

  16. یادآوری • معماری های سیستم • معماری های متمرکز • مدل کلاینت-سرور (2-tiered) • مدل های multi-tiered • معماری های غیرمتمرکز • ساخت یافته • بدون ساختار • معماری های پیوندی

  17. ساختارهای پیوندی • شبکه های دارای سوپرنظیر به نوعی ساختار پیوندی بودند. • دو نوع دیگر ساختارهای پیوندی • سیستم های سرور کناره (edge server systems) • سیستم های توزیعی مشارکتی (collaborative distributed systems) • سیستم های سرور کناره • در شبکه اینترنت، سرورها در لبه شبکه قرار داده می شوند. • منظور از لبه یا کناره: محل اتصال شبکه های enterpriseو ISP ها • کاربران به سرور ISP وصل می شوند. • وظیفه اصلی سرور، تأمین محتوا و موارد مشابه است. (بحث فصل 12)

  18. سیستم های توزیعی مشارکتی • ایده اصلی: • کاربران برای اتصال به شبکه از روش C/S استفاده می کنند. • پس از اتصال، کاربر می تواند روش غیرمتمرکز به کار ببرد. • سیستم اشتراک گذاری BitTorrent • کاربری که می خواهد یک فایل دانلود کند، قطعه های مختلف فایل (chunks) را از گره های مختلف دانلود می کند. • چالش اصلی: • اطمینان از همکاری گره ها • کاربران بیشتر مایلند دانلود کنند تا آپلود! • سیاست tit-for-tat: کاربر به شرطی می تواند دانلود کند که خودش نیز فایل هایش را آپلود کرده باشد.

  19. سیستم های توزیعی مشارکتی (2) • برای دانلود یک فایل • کاربر باید به سایتهای اصلی و شناخته شده مراجعه کند. • این سایتها ارجاع به فایل های .torrent می دهند. • یک فایل .torrent شامل اطلاعات موردنیاز برای دانلود یک فایل بخصوص است. • این اطلاعات ارجاع به سرور دیگری به نام ردیاب (tracker) هستند. • نگهداری لیست دقیق گره های فعالی که قطعه های فایل را دارند. • منظور از گره فعال: گرهی که خودش مشغول دانلود است.

  20. سیستم های توزیعی مشارکتی (3) • گرهی که شروع به دانلود می کند، خودش نیز گره فعال می شود و باید به دیگران کمک کند. • قطعات دانلود شده فایل خود را در اختیار دیگران قرار دهد. • اگر گره p متوجه شود که گره q بیشتر از چیزی که آپلود کرده، دانلود می خواهد، می تواند سرعت آپلود خود را کاهش دهد. • به شرطی که p نیز خودش از q دانلود کند! • گلوگاه سیستم توسط ردیاب ها ایجاد می شود.

  21. سیستم های توزیعی مشارکتی (4) • سیستم Globule • از معماری سرور کناره پیروی می کند. • کاربران نهایی یا سازمان ها به صورت داوطلبانه وب سرورهایی را تأمین می کنند که قادر به تشریک مساعی در تکرار کردن صفحات وب هستند. • این سیستم شامل: • مؤلفه ای برای تکرار کردن درخواست کلاینت به سرورهای دیگر (origin server) • مؤلفه ای برای آنالیز کردن الگوهای دسترسی ها • مؤلفه ای برای مدیریت تکرار کردن صفحات وب قسمت غیرمتمرکز سیستم قسمت متمرکز سیستم، تماس سرورها با واسطه ها

  22. سیستم Globule

  23. سرفصل مطالب • استایل های معماری • معماری های سیستم • معماری در برابر میان افزار • خودتنظیمی در سیستم های توزیعی

  24. معماری ها در برابر میان افزار • هدف اصلی میان افزار: تأمین شفافیت • هر میان افزار یک معماری خاص را دنبال می کند. • مزیت: طراحی برنامه های کاربردی راحت تر خواهد بود. • در واقع میان افزار برای بعضی از برنامه های کاربردی خوب است و برای بقیه ممکن است مفید نباشد. • عیب: میان افزار ممکن است از نظر بهینه بودن با چیزی که طراح مدنظر داشته، فاصله داشته باشد. • مثلاً CORBA ابتدا بر اساس مدل شیء بنا شد، سپس ارتباط مبتنی بر پیغام نیز به آن اضافه شد. • بنابراین بهتر است راه حلهای خاص برای هر نوع برنامه کاربردی طراحی شود. • نسخه های مختلف میان افزار برای کاربردهای مختلف

  25. Interceptors • راه حل بهتر: میان افزار به صورت قابل تنظیم، سازگار و قابل پیکربندی به صورتی که کاربر می خواهد باشند. • امروزه به این سمت می روند. • Interceptor: • مؤلفه نرم افزاری است که یک جریان داده را قطع کرده و اجازه می دهد که کد یک برنامه کاربردی دیگر اجرا شود. • مثال: چیزی که در سیستم های مبتنی بر شیء دیده می شود. • شیء A می تواند متدی را که متعلق به شیء B است صدا بزند که روی ماشین دیگری به غیر از A اجرا می شود. • این فراخوانی متد از راه دور (RMI) در سه مرحله انجام می شود.

  26. فراخوانی متد از راه دور صدا زدن یک تابع روی یک شیء دیگر خود برنامه کاربردی نباید بفهمد که شیء روی ماشین دیگری است و باید شفاف باشد. جریان داده ها در حالت عادی

  27. فراخوانی متد از راه دور (2) • سه مرحله برای RMI: • شیء A یک واسط محلی دارد که دقیقاً مشابه واسط شیء B است. • A به سادگی متد محلی خودش را صدا می زند. • فراخوانی که توسط A انجام شده، تبدیل به یک فراخوانی شیء کلی می شود • و توسط یک واسطِ فراخوانی شیء کلی بوسیله میان افزار روی ماشین A انجام می شود. • فراخوانی شیء کلی تبدیل به یک پیغام می شود و به لایه انتقالِ واسطِ شبکه روی ماشین A فرستاده می شود. • در سیستم عامل ماشین A پیاده سازی شده است.

  28. Interceptors • در شکل قبل، جریان داده ها در حالت عادی وقتی قابل به کارگیری است که ملزومات دیگری نخواهد. • اگر از شیء B چندین کپی وجود داشته باشد، شیء A چه کار باید انجام دهد؟ • محدودیت هایی که روی اندازه پیغام ها داریم چه می شود؟ • این محدودیت ها توسط interceptor برداشته می شود. • در واقع interceptor سیستم را تطبیق پذیر می کند. • بنابراین interceptor ارتباط را قطع کرده، اطلاعاتی را اضافه کرده و دوباره درخواست را می فرستد.

  29. Interceptors (2) می داند چند کپی از شیء وجود دارد. محدودیت روی اندازه پیغام را می داند.

More Related