سیستم Message-oriented middleware یا MOM

Message-oriented middlewareسیستم MOM چیست؟میان افزار پیام محور(Message-oriented middleware)، نرم افزار یا زیرساخت سخت افزاری پشتیبانی از ارسال و دریافت پیام بین سیستم های توزیع شده است. MOM اجازه می دهد ماژول های برنامه در سیستم عامل های ناهمگن توزیع شود و از پیچیدگی برنامه های توسعه دهنده که شامل چندین سیستم عامل و پروتکل های شبکه هستند ، می کاهد. middleware ، یک لایه ارتباطی توزیع شده ایجاد می کند که توسعه دهنده برنامه را از جزئیات سیستم عامل های مختلف و رابط های شبکه عایق بندی می کند. API هایی که در سیستم عامل ها و شبکه های مختلف گسترش می یابند معمولاً توسط MOM ارائه می شوند.این لایه middleware به مولفه های نرم افزاری (applications ، Enterprise JavaBeans ، servlets و سایر مولفه ها) اجازه می دهد تا به طور مستقل توسعه یافته و در سیستم عامل های شبکه مختلف اجرا شوند و با یکدیگر تعامل داشته باشند. برنامه های توزیع شده در گره های مختلف شبکه از رابط برنامه برای برقراری ارتباط استفاده می کنند. علاوه بر این ، با ارائه یک رابط اداری ، می توان این سیستم جدید و مجازی از برنامه های بهم پیوسته را قابل اعتماد و ایمن کرد.الگوی MOM عناصر نرم افزاری را فراهم می کند که در تمام مولفه های ارتباطی معماری client/server قرار دارند و معمولاً از تماس های ناهمزمان بین برنامه های client وserver پشتیبانی می کنند. MOM از درگیری توسعه دهندگان برنامه با پیچیدگی ماهیتmaster-slave سازنده client/server می کاهد.انواع میان افزارها(middleware)تماس از راه دور (Remote Procedure Call) یا میان افزار مبتنی برRPCکارگزار درخواست شی(Object Request Broker) یا میان افزار مبتنی برORBمیان افزار پیام محور(Message Oriented Middleware) یا میان افزار مبتنی برMOMهمه این مدل ها این امکان را برای یک مولفه نرم افزار فراهم می کنند تا بر رفتار مولفه دیگری از طریق شبکه تأثیر بگذارد. تفاوت این middleware ها در این است که middleware های مبتنی به RPC و ORB، سیستم هایی از اجزای کاملاً بهم پیوسته ایجاد می کنند، در حالی که سیستم های مبتنی برMOM امکان اتصال آزادتر قطعات را فراهم می کنند. در یک سیستم مبتنی بر RPC یاORB ، وقتی procedure دیگری را فراخوانی می کند ، قبل از اینکه بتواند کار دیگری انجام دهد ، باید منتظر بماند تا جواب procedure فراخوانی شده برگردد. در این مدل های پیام رسانی همزمان ، میان افزار تا حدی به عنوان یک super-linker عمل می کند ، procedure فراخوانی شده را در یک شبکه قرار می دهد و از خدمات شبکه برای انتقال پارامترهای عملکرد یا روش procedure بهparameters استفاده می کند و سپس نتایج را باز می گرداند.مزایای الگوی MOMدلایل اصلی استفاده از پروتکل ارتباطی مبتنی بر پیام، توانایی آن در ذخیره (بافر) ، مسیریابی یا تبدیل پیام ها هنگام انتقال پیام ها از فرستنده ها به گیرنده ها است.یکی دیگر از مزیت های ارائه دهنده پیام رسانی با واسطه پیام رسانی بین مشتریان این است که با اضافه کردن یک رابط اداری ، می توانید عملکرد را کنترل و تنظیم کنید. بنابراین برنامه های مشتری به طور موثری از هر مشکلی به جز ارسال ، دریافت و پردازش پیام خلاص می شوند. برای حل مسائلی مانند قابلیت همکاری ، قابلیت اطمینان ، امنیت ، مقیاس پذیری و عملکرد ، به کدی نیاز داریم که سیستم MOM را اجرا و سرپرستی می کند.Asynchronicity (ناهمزمان)با استفاده از الگویMOM ، مشتری با فراخوانی API، پیامی به مقصدی که توسط ارائه دهنده مدیریت می شود ، ارسال می کند. تماس برای ارائه مسیر و ارسال پیام ، از خدمات ارائه دهنده استفاده می کند. پس از ارسال پیام ، مشتری می تواند با اطمینان از ارائه دهنده پیام ، پیام را تا زمانی كه مشتری گیرنده آن را بازیابی نكرده ، به انجام كارهای دیگر ادامه دهد. مدل مبتنی بر پیام ، همراه با وساطت ارائه دهنده ، ایجاد سیستمی از مولفه های اتصال آزاد را امکان پذیر می کند.الگوی MOM متشکل از یک دسته از نرم افزارهای ارتباطی بین برنامه ای است که در مقایسه با معماری درخواست پاسخ (request-response)، به طور معمول به پیام ناهمزمان(asynchronous) متکی است. در سیستم های asynchronous ، هنگامی که برنامه مقصد مشغول یا متصل نیست ، صف های پیام ذخیره سازی موقت را ایجاد می کنند. علاوه بر این ، اکثر سیستم های MY ناهمزمان، فضای ذخیره سازی مداومی را برای پشتیبان گیری از صف پیام فراهم می کنند. این بدان معناست که فرستنده و گیرنده نیازی به اتصال همزمان به شبکه ندارند (تحویل ناهمزمان) و مشکلات اتصال متناوب برطرف می شود. این همچنین به این معنی است که اگر برنامه گیرنده به هر دلیلی از کار بیفتد ، فرستندگان می توانند تحت تأثیر قرار نگیرند ، زیرا پیام هایی که ارسال می کنند به سادگی در صف پیام جمع می شوند تا بعداً هنگام شروع مجدد گیرنده ، پردازش بعدی انجام شود.Routing (مسیریابی)بسیاری از پیاده سازی هایmiddleware مبتنی بر پیام، به سیستم صف پیام بستگی دارد. برخی از پیاده سازی ها اجازه می دهد منطق مسیریابی توسط خود لایه پیام ارائه شود ، در حالی که برخی دیگر به برنامه های مشتری بستگی دارند تا اطلاعات مسیریابی را ارائه دهند یا ترکیبی از هر دو نمونه را فراهم کنند. برخی از پیاده سازی ها از الگوی پخش یا پخش چندرسانه ای استفاده می کنند.Transformation (تبدیل)در یک سیستم middleware مبتنی بر پیام ، پیام دریافت شده در مقصد، همان پیام اصلی که ارسال شده است، نیست. یک سیستم MOM با هوش داخلی می تواند پیام ها و مسیر را مطابق با نیازهای فرستنده یا گیرنده تغییر دهد. همراه با امکانات مسیریابی و پخش / پخش چندرسانه ای ، یک برنامه می تواند پیامی را در قالب اصلی خود ارسال کند و ممکن است دو یا چند برنامه دیگر هر کدام یک نسخه از پیام را در قالب اصلی خود دریافت کنند. بسیاری از سیستم های مدرن MOM ابزارهای پیچیده ای برای تبدیل پیام (یا نگاشت) فراهم می کنند که به برنامه نویسان اجازه می دهد قوانین تغییر شکل قابل استفاده برای یک عملیات drag-and-drop در GUI ساده را تعیین کنند.معایب الگوی MOMعیب اصلی بسیاری از سیستم هایmiddleware مبتنی بر پیام این است که آنها به یک مولفه اضافی در معماری ، عامل انتقال پیام (message broker) نیاز دارند. مانند هر سیستم ، افزودن یک جز دیگر می تواند منجر به کاهش عملکرد و قابلیت اطمینان شود و همچنین می تواند نگهداری سیستم را به طور کلی دشوار و گران کند.علاوه بر این ، بسیاری از ارتباطات بین برنامه ای جنبه ذاتی همزمان (synchronous) دارند ، به طور خاص فرستنده مایل است قبل از ادامه برای پاسخ به پیام منتظر بماند. از آنجا که ارتباطات مبتنی بر پیام ذاتاً به صورت ناهمزمان عمل می کنند ، ممکن است در چنین شرایطی مناسب نباشد. همانطور که گفته شد ، اکثر سیستم هایMOM از امکاناتی برای گروه بندی درخواست و پاسخ به عنوان یک معامله شبه همزمان برخوردار هستند.با وجود یک سیستم پیام رسانی همزمان ، تا زمانی که عملکرد فراخوانی شده کار خود را تمام کند، عملکرد فراخوانی پاسخ نمی دهد یا به عبارتی return نمی کند . در یک سیستم ناهمزمان به هم پیوسته ، مشتری تماس می تواند کار را بر روی گیرنده ادامه دهد تا زمانی که منابع مورد نیاز برای انجام این کار تخلیه شده و جز called فراخوان شده از کار بیفتد. البته با نظارت بر عملکرد و تنظیم جریان پیام می توان این شرایط را به حداقل رساند یا از آن اجتناب کرد ، اما این کاری است که برای سیستم پیام رسانی همزمان نیازی نیست. نکته مهم درک مزایا و مسئولیت های هر نوع سیستم است. هر سیستم برای انواع مختلف کارها مناسب است. برای دستیابی به رفتار مطلوب ، گاهی اوقات به ترکیبی از دو نوع سیستم نیاز است.صف پیامصف های پیام امکان تبادل اطلاعات بین برنامه های توزیع شده را فراهم می کند. یک صف پیام می تواند در حافظه یا دیسک قرار داشته باشد. پیام ها تا زمانی که توسط یک مشتری خدمات پردازش می شوند در صف باقی می مانند. از طریق صف پیام ، برنامه می تواند به طور مستقل پیاده سازی شود.پیاده سازی هاپروتکل صف انتظار پیام پیشرفته(AMQP) یک پروتکل لایه نرم افزار کاربردی استاندارد را برای middleware مبتنی به پیام را فراهم می کند.سرویس توزیع داده های گروه مدیریت شی(DDS) بسیاری از استانداردهای جدید را به مشخصات اساسی DDS اضافه کرده است.پروتکل XMPP یک پروتکل ارتباطی برای middleware مبتنی به پیام بر اساس XML (زبان نشانه گذاری قابل گسترش) است.پروتکل پیام رسانی متن محور(STOMP) که قبلاً با نام TTMP شناخته می شد ، یک پروتکل مبتنی بر متن ساده است ، فرمت سیم قابل همکاری را فراهم می کند که به مشتریان STOMP اجازه می دهد تا با هر پیام دهنده ای که پروتکل را پشتیبانی می کند صحبت کنند.مراجع : wikipedia.org