320 likes | 617 Views
سیستم های توزیع شده ادامه فصل 4– جلسه 13. مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92. جدول زمانبندی درس. سرفصل مطالب. مقدمات فراخوانی تابع از راه دور ( RPC ) ارتباط مبتنی بر پیغام ( MOC ) ارتباط مبتنی بر استریم ( SOC )
E N D
سیستم های توزیع شدهادامهفصل 4– جلسه 13 مرجان نادران طحان استادیار گروه مهندسی کامپیوتر دانشگاه شهید چمران اهواز m.naderan@scu.ac.ir نیمسال دوم 93-92
سرفصل مطالب • مقدمات • فراخوانی تابع از راه دور (RPC) • ارتباط مبتنی بر پیغام (MOC) • ارتباط مبتنی بر استریم (SOC) • ارتباط چندپخشی (Multicast)
سرفصل مطالب • مقدمات • فراخوانی تابع از راه دور (RPC) • ارتباط مبتنی بر پیغام (MOC) • ارتباط مبتنی بر استریم (SOC) • ارتباط چندپخشی (Multicast)
ارتباط مبتنی بر پیغام (MOC) • RPC و RMI • در تأمین شفافیت دسترسی نقش دارند. • ارتباط از نوع گذرا را پشتیبانی می کنند. • ارتباط از نوع سنکرون را پشتیبانی می کنند. • ارتباط مبتنی بر پیغام این محدودیت ها را برمیدارد. • قسمتهای این بخش • ارتباط مبتنی بر پیغام از نوع گذرا • ارتباط مبتنی بر پیغام از نوع ماندگار • مثال: IBM’s WebSphere
سیستم های صف بندی پیغام • با توجه به زنده بودن یا نبودن فرستنده و گیرنده، چهار حالت زیر امکان پذیر است:
سیستم های صف بندی پیغام (2) • نکته مهم از دید میان افزار، آدرس دهی درست در پیغام هاست. • استفاده از یک روش آدرس دهی یکتا برای صف های مبدأ و مقصد • مسائل دیگر در مورد پیغام ها: • شامل چه داده هایی باشند. • اندازه آن محدودیت دارد یا نه؟ • واسط آن بسیار ساده است. فراخوان غیربلوکی فراخوان بلوکی نسخه غیربلوکی فراخوان get معادل Callback function که به صورت اتوماتیک وقتی پیغامی در صف گذاشته می شود، صدا زده می شود.
سیستم های صف بندی پیغام (3) • استاندارد قدیمی System V، شامل دستورات • msgget, msgctl, msgsnd, msgrcv • نمونه کد ساخت یک صف پیغام با استاندارد System V • http://liuweipingblog.cn/cpp/message-queue-example-msgget-msgctl-msgsnd-msgrcv/ • استاندارد POSIX • mq_open, mq_send, mq_receive, mq_close, mq_getattr, mq_setattr, mq_notify, … • توضیحات کامل در صفحه راهنمای mq_overview در لینوکس
معماری کلی یک سیستم صف بندی پیغام • فرضیات: • صف مبدأ (Source queue) • پیغام ها در صفهایی گذاشته می شوند که به صورت محلی روی خود ماشین یا ماشین نزدیکی در شبکه محلی وجود دارد. • صف مقصد (Destination queue) • مشابه صف مبدأ، پیغام ها فقط از این نوع صفها خوانده می شوند. • پیغام باید حاوی توصیف صف مقصد باشد. • مسئولیت سیستم صف بندی است که صف های مبدأ و مقصد را تأمین کند. • مجموعه صف ها روی ماشین های مختلف توزیع می شود.
معماری کلی یک سیستم صف بندی پیغام (2) • فرضیات: • یک تناظر بین مجموعه صف ها و محل ماشین ها باید برقرار باشد. • نگه داشتن یک پایگاه داده توزیع شده از اسامی صف ها به محل ماشین ها در شبکه • مانند تناظر اسامی در DNS با آدرس IP ماشین ها
معماری کلی یک سیستم صف بندی پیغام (3) • صفها توسط مدیران صف (queue managers) مدیریت می شوند. • با برنامه کاربردی در تعامل است برای ارسال و دریافت پیغام ها • برخی از انواع آن مانند مسیریاب ها عملیات رله را انجام می دهند. • سیستم های صف بندی که تعداد زیادی مدیر صف رله کننده دارند به تدریج بزرگ شده و مانند یک شبکه overlay به نظر می رسند. • معمولاً در سیستم های صف بندی، یک سیستم تناظر دینامیک وجود ندارد. • راه حل 1: فرض می شود پیکربندی رله ها استاتیک است و هر مدیر صف یک جدولی از تناظر queue-to-location دارد. • راه حل 2: استفاده از تعدادی از مسیریاب ها که توپولوژی شبکه را می دانند.
معماری کلی یک سیستم صف بندی پیغام (4) • سیستم صف بندی پیغام با مسیریاب ها فرستنده A پیغامش را به نزدیکترین مسیریاب میفرستد. مسیریاب R1 پیغام را به نزدیکترین مسیریاب B میفرستد.
معماری کلی یک سیستم صف بندی پیغام (5) • نکات تکمیلی: • رله ها سیستم صف بندی پیغام را مقیاس پذیر می کنند. • تنظیم دستی و استاتیک آنها با بزرگ شدن سیستم مشکل می شود. • راه حل: استفاده از روش های مسیریابی دینامیک مانند شبکه های کامپیوتری است. • بکارگیری این روشها پیچیده است. • رله ها، امکان پردازش سطح دوم را روی پیغام ها را فراهم می کنند. • مانند: log کردن پیغام ها برای اهداف امنیتی یا تحمل پذیری خطا • یک فرم خاص رله ها، gateway ها هستند که پیغام را به فرمتی تبدیل می کنند که توسط گیرنده قابل فهم باشد. • رله ها قابل استفاده برای چندپخشی هستند.
واسطه های پیغام (message brokers) • اضافه کردن برنامه های کاربردی جدید مستلزم تعریف نوع جدید پیغام هاست که باید توسط فرستنده ها و گیرنده ها پشتیبانی شود. • راه حل 1:توافق روی یک فرمت پیغام استاندارد، همان طور که در شبکه های کامپیوتری مرسوم است. • این راه حل در سیستم های صف بندی پیغام کارایی ندارد. • به دلیل سطح تجریدی که این سیستم ها در آن سطح تعریف می شوند. • راه حل 2: گفتگوها در سیستم های صف بندی پیغام در گره های خاصی مدیریت می شود. • به نام واسطه های پیغام ها • به صورت یک گیت وی در لایه کاربرد عمل می کند.
واسطه های پیغام (2) • وظیفه واسطه پیغام: • تعریف پیغام به فرمتی که برای گیرنده قابل فهم باشد. • یک واسطه پیغام صرفاً یک برنامه کاربردی دیگر است. • جزئی از سیستم صف بندی نیست!
مثالی از گیت وی سیستم صف بندی پیغام Ref: http://docs.oracle.com/html/A96196_01/intro.htm
واسطه های پیغام (3) • مثال 1: • پیغام دریافتی یک جدول از یک پایگاه داده است. • رکوردها توسط یک کاراکتر end-of-record جدا شده اند و فیلدهای یک رکورد اندازه مشخص و ثابت دارند. • اگر برنامه کاربردی مقصد یک کاراکتر دیگری را برای انتهای رکورد موردنظر داشته باشد و یا اندازه فیلدهای متغیر مدنظرش باشد، یک واسطه پیغام می تواند این تبدیل را انجام دهد. • مثال2: • مدیریت گفتگوها بین دو پایگاه داده متفاوت • مثال 3: • استفاده از واسطه های پیغام در سیستم های EAI (فصل 1) • به روش publish/subscribe
مقایسه MQ با E-mail • سیستم ایمیل: • ارسال/دریافت پیغام از کاربران • پروتکل های خاص مورد استفاده، مانند SMTP • مسیریابی برعهده شبکه است. • برای استفاده کاربران نهایی طراحی شده است. • نیازمندی های خاصی در سیستم های ایمیل ممکن است لازم باشد. • مانند: فیلتر کردن اتوماتیک پیغامها، ... • سیستم های MQ: • برای کاربران نهایی طراحی نشده است. • برای ایجاد ارتباط ماندگار بین فرآیندها طراحی شده است. • پروتکل های آنها AMQP، STOMP
ارتباط مبتنی بر پیغام (MOC) • RPC و RMI • در تأمین شفافیت دسترسی نقش دارند. • ارتباط از نوع گذرا را پشتیبانی می کنند. • ارتباط از نوع سنکرون را پشتیبانی می کنند. • ارتباط مبتنی بر پیغام این محدودیت ها را برمیدارد. • قسمتهای این بخش • ارتباط مبتنی بر پیغام از نوع گذرا • ارتباط مبتنی بر پیغام از نوع ماندگار • مثال: IBM’s WebSphere
IBM’s WebSphere اگر مدیر صف و برنامه کاربردی روی ماشینهای جداگانه باشند، یک واسط وجود دارد مانند حالتی که روی یک ماشین هستند. به صورت پراکسی پیاده سازی می شود با RPC سنکرون دو انتهای کانال پیغامها توسط عامل کانال پیغام (MCA) مدیریت می شود. کانال برای اتصال مدیران صفها تجریدی از اتصالهای لایه انتقال مدیر صف
IBM’s WebSphere (2) • برای انتقال پیغام، دو طرف کانال های پیغام (MCA ها) باید زنده باشند. • سه روش شروع کردن کانال • توسط خود برنامه کاربردی • توسط میان افزار • توسط شبکه • روش متوقف کردن کانال: به صورت اتوماتیک بعد از یک مدت زمان مشخصی که پیغامی وارد کانال نشود. • صفت های MCA که رفتار آن کانال را توصیف می کند:
IBM’s WebSphere (3) • انتقال پیغام: • آدرس: نام مدیر صف مقصد + نام صف مقصد • مشخص کردن مسیر: تبیین نام صف ارسال که در ماشین به صورت محلی است. معادل مشخص کردن نام مدیر صف ها است. • مسیرها معمولاً در جدولی در مدیر صف نگهداری می شوند، به صورت زوج (destQM, sendQM) • به یک درایه جدول MQ، alias گفته می شود. • نام مدیران صف، به صورت سراسری یکتاست. • Alias: نام منطقی است که با تغییر مدیر صف، ثابت می ماند. • وقتی مدیر صفی به نام M1 به M2 عوض شود، از نام alias آن استفاده می شود که باعث می شود همچنان برای برنامه هایی که به M1 دسترسی داشتند، قابل استفاده باشد.
IBM’s WebSphere (5) • واسطی که برای عملیات رله کردن در WebSphere استفاده می شود (تعدادی از دستورات پایه ای واسط) • اینکه صف مقصد روی چه ماشینی قرار دارد از نظر کاربر (برنامه کاربردی) پنهان است. • توسط alias ها
IBM’s WebSphere (6) • مسائل مدیریتی: • متناظر شدن شبکه صف ها با یک شبکه overlay • نگهداری و مدیریت آن در طول زمان و با بزرگ شدن شبکه مهم است. • مشکل: شبکه MQ ها باید به صورت دستی مدیریت شود. • استفاده از توابع کنترل کانال ها مابین MCA ها برای مانیتور کردن دو انتهای کانال • شبیه مدیریت کلاستر سرورها
سرفصل مطالب • مقدمات • فراخوانی تابع از راه دور (RPC) • ارتباط مبتنی بر پیغام (MOC) • ارتباط مبتنی بر استریم (SOC) • ارتباط چندپخشی (Multicast)
ارتباط مبتنی بر استریم • موارد ارتباطی که تا الآن بررسی شدند، زمانبندی (timing) در آنها اثر چندانی نداشت. • در برخی از انواع ارتباطات، زمانبندی بسیار مهم است. • مثال: صوت دیجیتال به روش PCM و با کیفیت CD • برای بازتولید آن لازم است که نمونه های دریافت شده به همان ترتیبی که در استریم بودند و با همان بازه های زمانی سرهم شوند. • موضوع این بخش: • قابلیت های سیستم های توزیعی برای تبادل اطلاعات حساس به زمان مانند استریم های صوتی و تصویری
پشتیبانی از رسانه های پیوسته • رسانه (مدیا): • روشی که توسط آن اطلاعات منتقل می شود. • مثال: رسانه های ذخیره سازی و انتقال، و نحوه نمایش اطلاعات یا رسانه های ارائه ای شامل متن، تصویر، صدا، فیلم، ... که تحت عنوان چندرسانه ای نیز شناخته می شوند. • انواع رسانه ها: • پیوسته • روابط زمانی بین آیتم های داده ای برای تفسیر داده ها مهم است. مانند: صوت، انیمیشن، ... • گسسته • روابط زمانی بین آیتم های داده ای برای تفسیر آنها چندان حیاتی نیست. مانند: متن، تصویر، کدهای object ها یا فایل های اجرایی
استریم داده • استریم: دنباله ای از واحدهای داده ای • گسسته و پیوسته • حالت های انتقال: • آسنکرون: بسته ها صرفاً پشت سرهم ارسال می شوند ولی محدودیت زمانی روی انتقال آیتم ها وجود ندارد. • مثال: انتقال فایل • سنکرون: حداکثر تأخیر انتها-به-انتها روی واحدهای استریم داده مهم است. • مثال: ارسال نمونه های یک سنسور دمایی • ایزوکرون (isochronous): لازم است که آیتم های استریم داده ای به موقع منتقل شوند. • حداکثر و حداقل تأخیر انتها-به-انتها در انتقال باید رعایت شود. • Bounded (delay) jitter • برای سیستم های چندرسانه ای توزیعی مناسب است. • در ادامه استریم های موردنظر ما پیوسته و در مُد ایزوکرون هستند.
استریم داده (2) • استریم: • ساده (simple): یک دنباله از داده ها • پیچیده (complex): چند استریم ساده مرتبط • مثال: صدای استریو شامل دو استریم ساده صوتی است که باید با یکدیگر سنکرون باشند. • مثال: استریم ویدئو که شامل استریم های ویدئو، دو استریم صوت استریو و احیاناً استریم متنی برای ترجمه به زبان دیگر است. • استریم کردن: • داده ذخیره شده: بیشتر روی این تأکید داریم. • داده زنده
استریم داده (3) • معماری عمومی کلاینت-سروری برای پشتیبانی از استریم های چندرسانه ای پیوسته از دیدگاه ارتباطی کنترل کیفیت انتقال و همزمانی مهم است. داده چندرسانه ای باید فشرده شده باشد.