بررسی و معرفی IBM MQ

معرفی IBM MQ :

میان ابزاری است که قادر است داده های سیستم های متفاوت را دریافت کرده آن ها را به عنوان پیام به سایر سیستم ها ارسال نماید که از طریق آن می توان شبکه ای منعطف خصوصا در معماری های سرویس گرا ( service oriented architecture) ایجاد نمود. IBM MQ توانایی کار با طیف زیادی از سیستم های کامپیوتری، نرم افزار ها، سرویس های وب  و پروتکل های ارتباطی را برای ارسال ایمن اطلاعات را دارد و میتواند به عنوان لایه ای ارتباطی برای مشاهده و کنترل جریان (Flow) داده ها و پیام ها مورد استفاده قرار گیرد.

IBM MQ برای ارسال و صف بندی پیام ها مورد استفاده قرار میگیرد و در مود های مختلفی مانندPoint to point ، Publish/subscribe و File transfer فعالیت کند. یکی از ویژگی های این ابزار در این است که برنامه ها در انتخاب رابط و زبان برنامه نویسی خود حق انتخاب دارند.

امکاناتی که این نرم افزار فراهم میکند به شرح زیر می باشد:

  • ایجادbackbone در محیط های ناهمگون از طریق ایجاد integration   پیام ها
  • فراهم سازی امکان ارسال پیام با امنیت بالا
  • فراهم آوری کارایی بالا در جابجایی پیام جهت ارسال پیام با سرعت و قابلیت اطمینان بهتر
  • ارائه ویژگی های مدیریتی که مدیریت پیام ها را با حذف ابزار های پیچیده ساده تر و سریع تر می کند.
  • پشتیبانی از توسعه پذیری و رشد کسب و کار

ارسال پیام:

برنامه ها برای ارسال داده ها به یک دیگر به جای این که مستقیم با یکدیگر ارتباط برقرار نمایند، از طریق ارسال پیام این کار را انجام می دهند.

صف بندی:

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

 

روش های ارسال پیام:

  • Point to point: برنامه های پیام های خود را به صف یا لیستی از صف ها ارسال میکنند. فرستنده نیاز است که نام گیرنده را بداند اما نیازی به دانستن محل آن ندارد.
  • Publish/subscribers: برنامه پیامی را در خصوص موضوعی منتشر میکند. MQ نسخه ای از این پیام را به سیستم های که مشترک آن موضوع هستند (subscribers) ارسال می نماید. در این مدل فرستنده هیچ آگاهی ای از نام و محل گیرنده ها ندارد.
  • Multicast:  همانند نوع قبل اما با این تفاوت که subscriber ها را از تلاش  publisher ‌برای انتشار پیام مطلع می سازد تا با ایجاد مسیر ارتباطی بین یکدیگر پیام ها را تبادل کنند. در این مدل MQ در نقل و انتقال پیام ها نقشی نخواهد داشت.
  • File transfer:  فایل ها در قالب پیام ارسال می شوند. در این مدل MQ مدیریت انتقال فایل ها و مدیریت انتقال خودکار آن ها را بر عهده میگیرد و نتیجه را ذخیره و ثبت می کند.
  • Telemetry: یک سرور telemetry ایجاد میشود که با ارتباط با تعدادی بیشماری برنامه، موبایل، وب و…  در لبه شبکه، محیط MQ‌ را به محیط اینترنت اشیا گسترش می دهد. با استفاده از telemetry سیستم های back-office  می توانند از تمامی تجهیزات و برنامه ها پیام دریافت کنند یا به آن ها پاسخ دهند. برای به حداقل رساندن مشکلات، telemetry server می تواند طوری پیکربندی شود تا با با پروتکل های مختلفی با بیرون و درون شبکه کار بکند.

 

IBM MQ با توجه به قدرت آن در برقراری ارتباط با انواع برنامه ها به صورت ارسال و دریافت پیام یک backbone قوی برای پیام رسانی منعطف و قابل اعتماد فراهم می آورد.  ارسال و دریافت پیام ها بین برنامه ها از طریق بستر شبکه انجام می گیرد. در این ابزار انقال پیام به صورت مستقل از برنامه ارسال کننده انجام میکیرد و از ارسال پیام به گیرنده ها نیز اطمینان حاصل می شود. ارسال پیام ها می تواند با استفاده از SSL.TLS به صورت ایمن انجام شود و یا با استفاده از advance message security  یا AMS پیام ها را بین فرستنده و گیرنده رمز نگاری نمود.

استفاده از IBM MQ هم از طریق ارسال دستورات ( commands) امکان پذیر است هم از طریق محیط گرافیکی آن که به MQ Explorer نیز شناخته می شود.  ارتباط برنامه ها با MQ از طریق فراخوانی یکی از programing interface  های آن انجام میگیرد که زبان های مختلفی را پشتیبانی میکند مانند (JMS یا java message service). همچنین امکان ارسال و دریافت پیام ها از طریق پروتکل HTTP و از طریف browser  ها نیز فراهم است.

MQ diagram

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

برخی از ویژگی های استفاده از IBM MQ:

عدم نیاز وجود ارتباط مستقیم بین فرستنده و گیرنده:

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

ارتباط مستقل از زمان: ارسال داده ها بین دو یا چند نود در قالب پیام انجام خواهد شد. وقتی برنامه ارسال کننده پیامی را ارسال میکند در واقع آن را در صفی قرار می دهد. و دریافت کننده پیام را از صف دریافت خواهد کرد. با توجه به این که گیرنده میتواند در هر زمانی که آماده بود پیام را از صف دریافت کند این که چه زمانی پیام به صف ارسال شده است و چه زمانی دریافت کننده پیام را دریافت میکند اهمیت نخواهد داشت چرا که پیام ها در صف باقی خواهند ماند. در این بین فرستنده نیز بدون این که نیاز باشد منتظر دریافت تائید از دریافت کننده برای پیام باشد، میتواند به سایر فعالیت های خود ادامه دهد.

استفاده از برنامه های کوچک:

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

پردازش پیام محور:

هنگامی که پیامی وارد صف می شود،‌میتواند به صورت خودکار و با استفاده از trigger ها برنامه ای را آغاز کند یا بر عکس در صورت نیاز با ورود پیامی برنامه ای را متوقف نماید.

پردازش رویداد محور:

برنامه ها را میتوان بر اساس وضعیت صف کنترل کرد. به عنوان مثال میتوان برنامه ها را به صورتی تنظیم کرد که به محض رسیدن تعداد پیام ها به تعداد ۱۰ عدد شروع به کار کند. یا تا وقتی که تعداد پیام ها به تعداد مشخصی نرسیده است برنامه شروع به کار نکند.

اولویت بندی پیام ها:

برنامه ها می توانند هنگامی که پیامی را در صف قرار می دهند درجه اهمیت پیام ها را نیز مشخص نمایند.

بر نامه های دریافت کننده میتوانند پیام ها را بر اساس ترتیب ورود آنها به صف دریافت کند یا در صورت نیاز پیام های با اولویت و اهمیت بیشتر را فارغ از ترتیب ورود آنها به صف دریافت و بررسی کند.

امنیت:

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

 

MQ objects:

هر وظیفه ای که اجرا می شود یک یا چند object از MQ را شامل می شود. برخی از object ها به شرح زیر می باشند:

  • Queue: object ای است که برنامه ها پیام های خود را در آن قرار می دهند.
  • Queue manager: وظیفه مدیریت صف ها و برنامه هایی که از صف ها استفاده می کنند را بر عهده دارد..
  • Process definition: اجازه می دهد تا برنامه ها بدون نیاز به انجام عملی توسط اپراتور و با ویژگی های تعریف شده برای آنها که توسط queue manager مورد استفاده قرار می گیرد شروع به کار نمایند.
  • Namelist: شامل لیستی از نام های کلاستر، صف ها، authentication information object ها است.
  • Authentication information objects: بخشی از لایه امنیتی SSL/TLS در MQ است که اطلاعات لازم بجهت بررسیcertificate ها را فراهم می کند.
  • Communication information objects: امکان ارسال پیام ها به صورت multicast‌ را فراهم می آورد.
  • Channels: لینک ارتباطی بین queue manager‌ ها است و در مدل queue manager  توزیع شده استفاده می شود. این object  این امکان را فراهم می کند تا در محیط های توزیع شده پیام ها از  یک queue manager  به queue manager ‌ دیگری منتقل شود.
  • Client connection channels: وظیفه فراهم آوردن مسیر ارتباطی بین کاربر و صف را بر عهده دارد.
  • Listener: پردازش هایی هستند که درخواسته های ورودی از سایر queue manager ها و برنامه ها را دریافت میکند و channel متناسب با آن ها را ایجاد می کند.
  • Topic object: توسط برنامه های publisher  یا subscriber   تعیین می شود و بیانگر موضوع یا رشته ای از مضوعات است. که میتوانند به صورت سلسله مراتبی و درختی معرفی شوند. به عنوان مثال اگر برنامه ای در موضوعی با “رشته تحصیلی” دو موضوع مجزا با عنوان های “کامپیوتر”و “صنایع” ایجاد کند. یک موضوع درختی ایجاد می شود که والد یا روت این درخت “رشته تحصیلی” و  شاخه ها یا فرزندان این درخت ایجاد شده “کامپیوتر”و “صنایع” خواهند بود.

سخن پایانی:

در این مستند به معرفی IBM MQ که یک middleware پیام محور است پرداخته شد و ویژگی ها و نحوه کارکرد آن و همچنین object های آن به اختصار مورد بررسی قرار گرفت. این برنامه اجازه می دهد تا با استفاده از پیام ها به طور مطمئن و بدون وابستگی بین سیستم های سخت افزاری و نرم افزاری مختلف به تبادل داده ها پرداخت. یکی از چالش های شبکه های امروزی تنوع زیاد در سخت افزار ها و نرم افزار ها و داده های تولید شده در آن ها می باشد که با استفاده از ویژگی های این نرم افزار مانند تنوع بالا در programing interface  ها که از زبان های مختلف پشتیبانی میکنند، پیچیدگی های معماری و وابستگی ها ی ناشی از ابن تنوع حذف میگردد در نتیجه میتوان معماری ای انطباق پذیر و توسعه پذیر ایجاد نمود. مستندات کامل این سرویس از طریق لینک سایت این شرکت قابل دسترسی می باشد.

حامد
اشتراک دانش رو دوست دارم برای همین سعی میکنم مطالب آموزشی ای تهیه شده دارای جزئیات خوب و به صورت کامل تهیه بشوند.استفاده از مطالب این سایت در هر جایی بلا مانع می باشد. اما ذکر منبع رفتاری حرفه ای و اخلاقی خواهد بود. من را از نظرات خود مطلع سازید. و اگر میخواهید در مورد من بیشتر بدانید سری به صفحه "در باره من" بزنید.