معرفی
نرم افزار پیام رسان سازمانی یا میان افزار پیام گرا از اواخر دهه 1980 وجود داشته است. میان افزار پیام گرا مفهومی است که شامل انتقال داده ها بین برنامه ها با استفاده از یک کانال ارتباطی است که پیام ها را از فرستنده به گیرنده می برد. این پیام ها به صورت ناهمزمان بین فرستنده و گیرنده با استفاده از کارگزار پیام منتقل می شوند.
این نوع سیستم های پیام رسانی به جداسازی برنامه ها و ناشناس نگه داشتن فرستنده و گیرنده از یکدیگر کمک می کنند. این روزها بسیاری از سیستم های پیام رسانی مانند Apache Kafka، RabbitMQ، ActiveMQ، AmazonMQ و بسیاری دیگر در بازار موجود هستند، اگرچه این مقاله بر اساس ActiveMQ است.
ActiveMQ چیست؟
Active MQ به طور گسترده مورد استفاده قرار می گیرد میان افزار پیام گرا که یکپارچه سازی برنامه های کاربردی مبتنی بر استاندارد و پیام محور را در زبان های مختلف از جمله C#، Java، Python، Ruby و غیره ارائه می دهد. ActiveMQ به عنوان یک پروژه منبع باز توسط بنیاد آپاچی توسعه داده شده است.
چرا ساخته شد؟
در اوایل دهه 2000، تعداد زیادی کارگزار پیام منبع باز یا رایگان برای استفاده یا در دسترس با مجوزهای غیرتجاری وجود نداشت. خرید و پشتیبانی بیشتر نرم افزارهای Enterprise Messaging و MOM واقعاً گران بود. این امر باعث شد گروهی از توسعه دهندگان منبع باز شروع به ساخت یک جایگزین کنند.
اگرچه ابتدا قرار بود اجرای JMS برای پروژه Apache Geronimo باشد، مسائل و نگرانیهایی که در بالا ذکر شد، توسعهدهنده را بر آن داشت تا یک واسطه پیام متنباز، ActiveMQ بسازد.
چگونه کار می کند؟
برای اینکه بدانیم ActiveMQ چگونه کار می کند ، باید به نحوه عملکرد JMS نگاه کنیم، زیرا ActiveMQ یک پیاده سازی منبع باز از JMS در هسته آن است. JMS یک API جاوا برای پیامرسانی سازمانی است. JMS از اجزای متعددی تشکیل شده است که وظیفه ایجاد مکانیسم ارتباطی مناسب بین فرستنده و گیرنده را بر عهده دارند.
اول، ما یک ارائه دهنده JMS داریم که ویژگی های کنترلی و مدیریتی را ارائه می دهد و رابط لازم را برای انتقال پیام پیاده سازی می کند. سپس ما مشتریان JMS را داریم که کسی جز فرستنده و گیرنده ای نیست که از JMS برای انتقال پیام استفاده می کند. سپس اشیاء JMS داریم که از کارخانه های Destinations و Connection تشکیل شده اند و در نهایت پیام واقعی که قرار است با استفاده از JMS از فرستنده به گیرنده ارسال شود.
حال، همانطور که از تمام اجزای درگیر در JMS آگاه هستیم، بیایید ببینیم که چگونه این مؤلفه ها در ActiveMQ برای برقراری ارتباط بین فرستنده و گیرنده با مشاهده موارد استفاده مختلف استفاده می شوند.