برای درک روش های مختلف ارتباطی که میان افزارها برای برنامه های کاربردی ایجاد میکنند، بهتر است میان افزار را به عنوان یک سرویس افزوده در سرویس های مشتری – خدمتگزار تصور کرد.

برای مثال، یک سیستم پست الکترونیک را در نظر بگیرید.

ارتباط در سیستم های توزیع شده

 

به طور کلی، هسته سیستم تحویل پست را میتوان یک سرویس ارتباطی میان افزاری تلقی کرد.

هر میزبان با اجرای عامل کاربر، به او امکان میدهد تا ایمیل خود را ساخته، پیام هایی ارسال و دریافت کند.

ایمیل ها توسط عامل کاربر فرستنده به سیستم تحویل پست منتقل شده و انتظار میرود که آن هم متقابلاً (و در نهایت) این ایمیل را به گیرنده مورد نظر تحویل دهد.

به همین ترتیب، عامل کاربر گیرنده به سیستم تحویل ایمیل متصل شده و پیام های ورودی احتمالی را چک میکند.

این پیام ها، در صورت وجود، به عامل کاربر انتقال داده میشوند تا کاربر آنها را مشاهده کرده و بخواند.

 

سیستم پست الکترونیکی نمونه بارزی از ارتباطات پایدار (Persistent Communication) است.

در ارتباطات پایدار، پیام تحویل شده برای ارسال به وسیله میان افزار ارتباطی ذخیره شده و تا زمانی که میان افزار اقدام به انتقال آن به گیرنده نکرده باشد، در همان جا باقی خواهد ماند.

در این حالت (مطابق تصویر زیر) پیام توسط میان افزار در یک یا چند وسیله ذخیره سازی ذخیره میشود.

در نتیجه دیگر لازم نیست تا برنامه کاربردی ارسال کننده پس از تحویل پیام همچنان به اجرا ادامه دهد.

همچنین لزومی نخواهد داشت که هنگام تحویل پیام، برنامه کاربردی دریافت کننده در حال اجرا باشد.

 

به طور بالعکس، در ارتباطات ناپایدار (Transient Communication)، پیام فقط تا زمانی که برنامه کاربردی گیرنده و فرستنده در حال اجرا باشند، توسط سیستم ارتباطی ذخیره میشود.

به بیان دقیق تر (همانطور که در تصویر مشاهده میشود) در صورت وقفه در روند ارسال یا غیرفعال شدن گیرنده، میان افزار دیگر قادر به تحویل پیام نبوده و پیام حذف خواهد شد.

غالباً تمامی سرویس های ارتباطی در لایه انتقال، فقط ارتباطات ناپایدار را ارائه میدهند.

در این حالت، سیستم ارتباطی شامل مسیریاب های ذخیره و ارسال متداول است.

چنانچه مسیریاب نتواند پیام را به مسیریاب دیگر یا به میزبان مقصد تحویل دهد، به سادگی پیام را حذف خواهد کرد.

میان افزار به عنوان سرویس توزیعی در ارتباطات برنامه کاربردی
 

علاوه بر دو حالت پایدار و ناپایدار، ارتباطات میتوانند همگام یا ناهمگام باشند.

ویژگی بارز ارتباطات ناهمگام (Asynchronous Communication) این است که فرستنده بلافاصله پس از تحویل پیام به سیستم ارتباطی، به کار قبلی خود باز میگردد.

این بدان معناست که پیام به محض تحویل، فوراً (و به طور موقت) توسط میان افزار ذخیره میشود.

در ارتباطات همگام (Synchronous Communication) تا زمانی که درخواست فرستنده پذیرفته نشود، فرستنده مسدود باقی خواهد ماند.

به طور مشخص همگام سازی در سه نقطه میتواند اتفاق بیفتد:

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

در حالت دوم، فرستنده ممکن است همگامی خود را تا زمان تحویل درخواست به گیرنده مورد نظر ادامه دهد.

در حالت سوم، همگام سازی با انتظار فرستنده برای پردازش کامل درخواست (یعنی تا زمانی که گیرنده پاسخ خود را بازگرداند) ادامه خواهد یافت.

 

در عمل، روش های فوق قابل ترکیب با یکدیگر هستند، که از معروف ترین آنها میتوان به ترکیب حالت پایدار و همگام برای تحویل درخواست اشاره کرد.

این طرح در بسیاری از سیستم های متعارف صف بندی پیام استفاده میشود.

به همین ترتیب، ترکیب ارتباطات ناپایدار و حالت سوم همگام سازی (انتظار برای پردازش کامل درخواست) به طور گسترده کاربرد دارد. (این طرح با فراخوانی روال راه دور همخوانی دارد.)

 

علاوه بر پایداری و همگامی، لازم است از تفاوت ارتباط گسسته و جویباری هم صحبت کنیم.

تا به اینجا همه مثال ها در دسته ارتباطات گسسته قرار داشتند یعنی طرفین برای یکدیگر پیام (که بسته ای کامل از اطلاعات است) میفرستند.

در حالی که در ارتباطات جویباری پیام های متعدد یکی پس از دیگری ارسال شده و بر اساس ترتیب ارسال یا یک رابطه زمانی به یکدیگر مرتبط میشوند.