1 / 29

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

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

blue
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 – جلسه 5 مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92

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

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

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

  5. استایل های معماری • به چه دلیل به ساختارها می پردازیم؟ • قطعات پیچیده ای از نرم افزار داریم. • روی ماشین های متعددی پراکنده شده اند. • اگر ساختار منظمی نباشد، هرج و مرج می شود. • معماری سیستم تشکیل شده از • سازماندهی منطقی • چگونگی سازماندهی مؤلفه های نرم افزاری و نحوه تعامل آنها • پیاده سازی واقعی • چگونگی قرار دادن مؤلفه های نرم افزاری روی ماشین های واقعی • هدف اصلی سیستم های توزیعی این است که • برنامه های کاربردی • پلتفرم ها • را از هم مجزا کند تا بتوان به راحتی کاربردها را به سیستم اضافه کرد و سیستم را گسترش داد. • کار میان افزار: شفافیت را تأمین می کند.

  6. استایل های معماری (2) • استایل تشکیل شده از • مؤلفه ها (Components) • رابط ها (Connectors) • مؤلفه ها • واحدهای ماجولاری هستند که واسط های آنها به خوبی تعریف شده • به راحتی قابل جایگزین کردن هستند. • زیرا واسطهای آنها به خوبی تعریف شده است. • رابطها • مکانیزم های ارتباطی بین مؤلفه ها هستند. • RPC، RMI، MOC، SOC، ... • بنابراین یک رابط دو مؤلفه را به یکدیگر وصل می کند.

  7. استایل های معماری (3) • انواع استایل های معماری عبارتند از: • معماری های لایه ای • معماری مبتنی بر شیء • معماری های داده محور • معماری های مبتنی بر رخداد • ساختار لایه ای: • هر لایه از سرویس های لایه پایین خود استفاده می کند. • جهت سرویس دهی از پایین به بالاست. • در واقع لایه بالایی، لایه زیرین خود را چک می کند که آیا پیغامی دارد یا خیر.

  8. معماری های مبتنی بر شیء • هر شیء متناظر با یک مؤلفه است. • اشیاء توسط RPC می توانند به یکدیگر متصل شوند. • نسبت به مدل لایه ای شُلتر (loose) است. • محدودیتهای ساختار لایه ای که هر لایه به لایه بالاترش سرویس می دهد را ندارد. • هر شیء می تواند به اشیاء دیگر سرویس بدهد. • به مدل کلاینت-سرور نیز قابل تطبیق است ولی برای مدل P2P مناسب تر است. • بیشتر سیستم های نرم افزاری بزرگ توزیع شده از دو مدل لایه ای و مبتنی بر شیء پیروی می کنند.

  9. معماری های داده محور • ایده اصلی:ارتباط فرآیندها از طریق • یک انبار مشترک (passive یا active) است یا یک فضای مشترک (shared space) • مثال: shared distributed file system یا web-based distributed systems در فصل 12 • فرآیندها یکدیگر را فراخوانی نمی کنند بلکه روی داده های مشترک کار انجام می دهند. • آدرس دهی در این مدل لازم است. • محدودیت زنده بودن هر دو طرف در حین ارتباط برداشته می شود. • در مدل مبتنی بر شیء باید هر دو طرف ارتباطی زنده باشند.

  10. معماری های مبتنی بر رخداد • فرآیندها از طریق انتشار رخدادها با یکدیگر در ارتباط هستند. • ممکن است رخدادها شامل داده ها نیز باشند. • شامل دو مفهوم: • انتشار (publish) • مشترک شدن (subscribe) • میان افزار اطمینان می دهد که فقط فرآیندهایی که پیشتر برای رخداد خاصی مشترک شده اند، آن رخدادها را دریافت می کنند. • لازم نیست مؤلفه هایی که رخدادی را منتشر می کنند آدرس گیرنده خاصی را بدهند. • این سیستم نیز loosely coupled است. • همچنین referentially decoupled است. • یا decoupled in space • به این معنی که لازم نیست به مؤلفه خاصی ارجاع دهیم.

  11. معماری های مبتنی بر رخداد (2) • نکته: هر چه پیش می رویم محدودیت ها کمتر می شوند. • مصالحه: هرچه محدودیتهای بیشتری را برداریم، تضمین هایی که می توانیم بدهیم کمتر خواهد بود. • مدل فضای داده مشترک(Shared data spaces) • ترکیب معماری های داده محور و مبتنی بر رخداد • Decoupled in time and space • دارای واسط شبه-SQL • همه مدلها، هدفشان شفافیت است.

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

  13. معماری های سیستم • معماری سیستم: تقسیم بندی سیستم های توزیعی براساس اینکه • مؤلفه های نرم افزاری کجا قرار داده شده اند. • و چگونه با یکدیگر تعامل دارند. • دسته بندی معماری های سیستم • متمرکز (centralized) • غیرمتمرکز (decentralized) • پیوندی (hybrid) • در معماری متمرکز: • توافق روی مدل کلاینت-سرور است. • مؤلفه سرویس دهنده و سرویس گیرنده که ممکن است نقش هایشان جابجا شود. • به نام مدل 2-tiered شناخته می شود.

  14. مدل کلاینت-سرور • کلاینت فعال (active) است. • شروع کننده ارتباط • سرور منفعل (passive) است. • منتظر درخواست می ماند. تا کلاینت درخواستی نفرستد، جوابی نمی دهد. • اگر ارتباط C/S از نوع مطمئن و با سرعت بالا باشد • میتوان از سرویس غیرمتصل استفاده کرد. • در این نوع ارتباط خرابی و گم شدن کم اتفاق می افتد. • در شبکه های وسیعتر که خیلی مطمئن نیستند از سرویس متصل استفاده می شود. • زیرا کلاینت نمی تواند بین گم شدن درخواست یا جواب تمایز قائل شود. • مانند استفاده از سرویس TCP که ابتدا اتصال برقرار می کند.

  15. مدل کلاینت-سرور، لایه ای کردن برنامه های کاربردی • در مدل C/S قسمتی از برنامه های کاربردی سمت کلاینت خواهد بود و قسمتی سمت سرور. • سؤال: چگونه تقسیم کنیم؟ آیا راه حل مشخصی دارد؟ • معمولاً بخش برنامه کاربردی (در مدل C/S) عبارتست از سه سطح: • واسط کاربری • پردازشی • داده • این تقسیم بندی عمودی است (مشابه معماری لایه ای) • مثال: عملیات بانکی: • قسمتی که کاربر با آن در ارتباط است (واسط کاربری) • سروری که درخواست ها را از کاربر گرفته و به پایگاه داده ارسال می کند و جواب را پردازش می کند (سطح پردازشی) • پایگاه داده ای که اطلاعات در آنجاست (سطح داده)

  16. لایه ای کردن برنامه های کاربردی (2) • مثال دیگر: موتور جستجوی اینترنت

  17. لایه ای کردن برنامه های کاربردی (3) • مثال دیگر: سیستم پشتیبانی تصمیم (Decision Support System) برای بازار سهام • در سطح داده، داده های سهام جمع آوری می شود. • سطح پردازش در این کاربرد می تواند خیلی پیچیده و بزرگ باشد (تحلیل های آماری، هوش مصنوعی) • واسط کاربری نیز با کاربر در تماس است. • به طور کلی سطح داده در مدل C/S • Persistentاست. • حتی اگر برنامه کاربردی هم اجرا نشود داده ها جمع آوری می شوند. • معمولاً در سمت سرور است. • سازگاری بین داده ها نیز باید نگه داشته شود. • معمولاً به صورت پایگاه داده پیاده سازی و نگهداری می شود.

  18. معماری های multi-tiered • حالت های مختلف توزیع کردن برنامه های کاربردی روی کلاینت و سرور: • حالتهای a و b: کلاینت dumb terminal است. • حالت c: پُر کردن یک فُرم سمت کلاینت یا برنامه پردازش کلمه که کارهای چک کردن گرامر را در سمت سرور انجام می شود. • حالت های d و e: در سازمانها معمول است. کلاینتهای قوی از طریق شبکه به فایل سیستم شبکه ای دسترسی دارند.

  19. معماری های multi-tiered (2) • علیرغم اینکه امروزه کلاینتها بسیار قوی شده اند • در سالهای اخیر حرکت از حالت های d و e به سمت ساختارهای aو b می رود. • دلایل رفتن از کلاینت چاق به سمت کلاینت لاغر • مدیریت کلاینتهای زیاد سخت است. • مستعد خطا هستند. • وابسته به پلتفرم هستند. • آیا این معنای بی نیاز شدن از سیستم های توزیعی است؟ • خیر، در واقع برنامه های کاربردی طرف سرور را روی تعداد بیشتری سرور توزیع می کنیم. • هر سروری خودش ممکن است کلاینت باشد نسبت به سرور دیگر. • معماری multi-tiered (چند لایه ای)

  20. معماری های multi-tiered (3) • یک معماری three-tiered (سه لایه ای) • مثال: سیستم های پردازشی تراکنشی (فصل 1) • مثال: سازماندهی سایت های وب (فصل 12)

  21. معماری های multi-tiered (4) • ساختارهای ذکر شده، به صورت عمودی کار می کنند. • توزیع عمودی (Vertical distribution) • یعنی وظایف یک برنامه کاربردی را به صورت فیزیکی و منطقی تقسیم کرده اند. • بنابراین: توزیع لایه های مختلف روی ماشینهای مختلف در معماری multi-tiered می شود توزیع عمودی • توزیع افقی (Horizontal distribution) • توزیع یک لایه روی ماشین های مختلف • مانند شبکه های p2p • سیستم پردازشی تراکنشی • هم توزیع عمودی دارد هم افقی • نکته: ساختارهایی که تاکنون گفتیم نامتقارن هستند.

  22. معماری های غیرمتمرکز • یادآوری: معماری های سیستم • معماری های متمرکز • معماری های غیرمتمرکز • معماری های پیوندی • غیرمتمرکز • توزیع کردن کلاینت ها و سرورها • توزیع افقی • هر قسمت روی سهم مربوط به خودش از داده ها عمل می کند. • سیستم های مدرن خیلی به ساختارهای نظیر-به-نظیر روی آورده اند.

  23. معماری های غیرمتمرکز (2) • منظور از نظیرها پروسس ها هستند روی ماشین ها • توابع موردنظر توسط هر نظیر اجرا می شود. • برخلاف ساختار نامتقارن کلاینت-سرور که هر کدام یک تابع را اجرا میکردند. • تعامل پروسس ها به صورت متقارن است. • در یک سیستم P2P، پروسس ها به صورت overlay سازماندهی میشوند. • زیر این شبکه منطقی، یک شبکه فیزیکی وجود دارد که اتصالات فیزیکی را برقرار می کند که از نظر پروسس های شبکه P2P دیده نمی شود. • شبکه های نظیر-به-نظیر • ساخت یافته (Structured) • بدون ساختار (Unstructured)

  24. شبکه های نظیر-به-نظیر ساخت یافته • عمدتاً حول ایده جدول درهم توزیعی (DHT) کار می کنند. • شبکه Chord • شبکه CAN • شبکه Chord • ساختار حلقوی • پروسس ها و آیتم های داده ای را داریم که مجموعه داده ها را می سازند. • به هر آیتم داده یک عدد تصادفی منتسب می شود که به آن کلید (key) گفته می شود. • مثلاٌ کلیدهای 128 بیتی یا 160 بیتی که احتمال یکسان شدن آنها بسیار کم باشد. • به هر پروسس نیز یک شناسه تصادفی تخصیص می دهیم.

  25. شبکه Chord • پروسس ها براساس شناسه خود در یک حلقه به یکدیگر متصل می شوند. • مثلاً شناسه های 1، 4، 7، 12 و 15 • هر گره باید همسایه قبلی (predecessor) و بعدی (successor) خود را بشناسد. • از نظر فیزیکی ممکن است بین هر دو گره، گره های دیگری نیز باشند. • فرض کنید 16 آیتم داده ای داریم: 0، 1، ...، 15 • هر کلید به یک گره (شناسه) متناظر می شود. • به شناسه ای که از نظر عددی ID >= key • بنابراین آیتم های داده ای 0 و 1 به گره 1 منتسب می شوند و ...

  26. شبکه Chord (2)

  27. شبکه Chord (3) • مدیریت شبکه: • پیوستن (join) و ترک کردن (leave) گره ها به/از شبکه به چه صورتی باشد. • شبکه استاتیک نیست. • الگوریتم پیوستن • تولید یک شناسه تصادفی • جستجوی شناسه (گره بعدی این شناسه برگردانده می شود) • تماس با گره بعدی (و قبلی) این گره • درج گره جدید بین گره های بعدی و قبلی • انتقال آیتم های داده ای • الگوریتم ترک کردن • آگاه کردن گره های قبلی و بعدی • انتقال داده ها • این الگوریتم ها قطعی (deterministic) هستند که یکی از مشخصه های معماری های ساخت یافته است.

  28. شبکه CAN • نمونه دیگری از معماری ساخت یافته • Content Addressable Network (CAN) • عددهای تصادفی در فضای دو بعدی اختصاص می یابند. • هر پروسس یک ناحیه ای دارد. • هر آیتم داده یک عدد تصادفی می گیرد، اگر در ناحیه یک پروسس بود به آن منتسب می شود. • برای پیوستن یک گره جدید، باید: • یک پروسس به صورت تصادفی انتخاب شود. • ناحیه خود را به دو قسمت کند. • داده های مربوط به خود را بردارد.

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

More Related