دعم بروتوكول "وضع الرسائل في قائمة انتظار" (AMQP) 1.0 المتقدم في ناقل خدمة Microsoft Azure
يستخدم ناقل خدمة Microsoft Azure السحابية AMQP 1.0 بصفتها وسيلة اتصال أساسية. تعاونت Microsoft مع شركاء عبر الصناعة، من عملاء وبائعي وسطاء المراسلة المتنافسين، لتطوير AMQP على مدار العقد الماضي، مع تطوير ملحقات جديدة في اللجنة الفنية OASIS AMQP. AMQP 1.0 هو أحد معايير ISO وIEC (ISO 19464:20149).
يمكّنك AMQP من إنشاء تطبيقات مختلطة عبر الأنظمة الأساسية باستخدام بروتوكول محايد من البائعين مفتوح للتنفيذ. يمكنك إنشاء تطبيقات باستخدام مكونات منشأة باستخدام لغات وأطر عمل مختلفة، التي تعمل على أنظمة تشغيل مختلفة. يمكن لجميع هذه المكونات الاتصال بـ ناقل خدمة Microsoft Azure وتبادل رسائل الأعمال المنظمة بكفاءة ودقة تامة.
مقدمة: ما هو AMQP 1.0 ولماذا هو مهم؟
تقليدياً، تستخدم منتجات البرامج الوسيطة الموجهة للرسائل بروتوكولات خاصة للاتصال بين تطبيقات العميل والوسطاء. هذا يعني أنه بمجرد اختيار وسيط المراسلة الخاص بمورد معين، يجب عليك استخدام مكتبات هذا البائع لربط تطبيقات العميل الخاصة بك بهذا الوسيط. ينتج عنه درجة من الاعتماد على هذا البائع، نظراً إلى تطلب نقل تطبيق إلى منتج مختلف تغييرات في التعليمات البرمجية في جميع التطبيقات المتصلة. في مجتمع Java، خففت معايير API الخاصة باللغة مثل Java Message Service (JMS) وSpring Framework من هذه المشقة إلى حد ما، ولكن لها نطاق ميزة ضيق واستبعدت المطورين الذين يستخدمون لغات أخرى.
علاوة على ذلك، يعد ربط وسطاء المراسلة من بائعين مختلفين أمراً صعباً. يتطلب عادةً جسراً على مستوى التطبيق لنقل الرسائل من نظام إلى آخر ولترجمتها بين تنسيقات الرسائل الخاصة بها. إنه مطلب مشترك. على سبيل المثال، عندما يتعين عليك توفير واجهة موحدة جديدة للأنظمة المتباينة القديمة، أو دمج أنظمة تكنولوجيا المعلومات بعد عملية الدمج. يسمح AMQP بربط الوسطاء المتصلين مباشرة، على سبيل المثال باستخدام أجهزة توجيه مثل Apache Qpid Dispatch Router أو "مجارف" وسيط أصلية مثل واحدة من RabbitMQ.
صناعة البرمجيات هي صناعة سريعة الحركة. تُقدَّم لغات البرمجة الجديدة وأطر التطبيقات بوتيرة محيرة في بعض الأحيان. وبالمثل، تتطور متطلبات أنظمة تكنولوجيا المعلومات بمرور الوقت ويريد المطورون الاستفادة من أحدث ميزات النظام الأساسي. ومع ذلك، في بعض الأحيان لا يدعم بائع الرسائل المحدد هذه الأنظمة الأساسية. إذا كانت بروتوكولات المراسلة مملوكة، فلا يمكن للآخرين توفير مكتبات لهذه الأنظمة الأساسية الجديدة. لذلك، يجب عليك استخدام أساليب مثل إنشاء البوابات أو الجسور التي تمكنك من الاستمرار في استخدام منتج المراسلة.
هذه المشكلات كانت الدافع وراء تطوير البروتوكول المتقدم لوضع الرسائل في قائمة انتظار (AMQP) 1.0. نشأت في JP Morgan Chase، التي تستخدم بكثافة البرامج الوسيطة الموجهة نحو الرسائل، مثل معظم شركات الخدمات المالية،. كان الهدف بسيطاً: إنشاء بروتوكول رسائل مفتوح قياسي جعل من الممكن إنشاء تطبيقات قائمة على الرسائل باستخدام مكونات منشأة باستخدام لغات وأطر عمل وأنظمة تشغيل مختلفة، وكلها تستخدم أفضل المكونات من مجموعة من الموردين.
الميزات التقنية لـ AMQP 1.0
AMQP 1.0 هو بروتوكول رسائل فعال وموثوق به على مستوى الأسلاك يمكنك استخدامه لبناء تطبيقات مراسلة قوية ومتعددة الأنظمة الأساسية. للبروتوكول هدف بسيط: تحديد آليات النقل الآمن والموثوق والفعال للرسائل بين طرفين. تُشفر الرسائل نفسها باستخدام تمثيل البيانات المحمولة الذي يمكّن المرسلين والمستقبلين غير المتجانسين من تبادل رسائل الأعمال المنظمة بأمانة كاملة. فيما يلي ملخص لأهم الميزات:
- فعال: AMQP 1.0 هو بروتوكول مهيأ للاتصال يستخدم ترميزاً ثنائياً لإرشادات البروتوكول ورسائل الأعمال المنقولة عبره. ويشتمل على مخططات متطورة للتحكم في التدفق لتعظيم الاستفادة من الشبكة والمكونات المتصلة. ومع ذلك، فقد صُمم البروتوكول لتحقيق التوازن بين الكفاءة والمرونة وقابلية التشغيل البيني.
- موثوق: يسمح بروتوكول AMQP 1.0 بتبادل الرسائل مع مجموعة من ضمانات الموثوقية، من إطلاق النار ونسيانها إلى التسليم الموثوق به بمجرد إقراره بالضبط.
- مرن: AMQP 1.0 هو بروتوكول مرن يمكن استخدامه لدعم الهياكل المختلفة. يمكن استخدام نفس البروتوكول للاتصالات بين العميل والوسيط.
- نموذج وسيط مستقل: لا تفرض مواصفات AMQP 1.0 أي متطلبات على نموذج المراسلة الذي يستخدمه الوسيط. مما يعني إمكانية إضافة دعم AMQP 1.0 بسهولة إلى وسطاء المراسلة الحاليين.
AMQP 1.0 هو معيار (برأس مال 'S')
AMQP 1.0 هو معيار دولي معتمد من قِبل ISO وIEC كـ ISO/IEC 19464:2014.
تم تطوير AMQP 1.0 منذ عام 2008 على يد مجموعة أساسية من أكثر من 20 شركة، سواء من موردي التكنولوجيا أو شركات المستخدمين. خلال ذلك الوقت، ساهمت شركات المستخدمين في متطلبات الأعمال الواقعية الخاصة بهم وطور بائعو التكنولوجيا البروتوكول لتلبية هذه المتطلبات. طوال العملية، شارك البائعون في ورش عمل تعاونوا فيها للتحقق من قابلية التشغيل البيني بين تطبيقاتهم.
في أكتوبر 2011، انتقلت أعمال التطوير إلى لجنة فنية داخل منظمة النهوض بمعايير المعلومات المهيكلة (OASIS) وصدر معيار OASIS AMQP 1.0 في أكتوبر 2012. شاركت الشركات التالية في اللجنة الفنية أثناء تطوير المعيار:
- موردو التكنولوجيا: Axway Software وHuawei Technologies وIIT Software وINETCO Systems وKaazing وMicrosoft وMitre Corporation وPrimeton Technologies وProgress Software وRed Hat وSITA وSoftware AG وSolace Systems وVMware وWSO2 وZenika.
- شركات المستخدمين: Bank of America وCredit Suisse وDeutsche Boerse وGoldman Sachs وJPMorgan Chase.
يمثل الرؤساء الحاليون للجنة الفنية لـ OASIS AMQP شركتي Red Hat وMicrosoft.
تتضمن بعض الفوائد المتداولة للمعايير المفتوحة ما يلي:
- فرصة أقل لتقييد البائع
- إمكانية التشغيل التفاعلي
- توافر واسع للمكتبات والأدوات
- الحماية من التقادم
- توافر موظفين ذوي خبرة
- مخاطر أقل يمكن التحكم فيها
AMQP 1.0 وناقل خدمة Microsoft Azure
دعم AMQP 1.0 في ناقل خدمة Microsoft Azure يعني أنه يمكنك استخدام قائمة انتظار ناقل الخدمة والنشر/الاشتراك في ميزات المراسلة الوسيطة من مجموعة من الأنظمة الأساسية باستخدام بروتوكول ثنائي فعال. علاوة على ذلك، يمكنك إنشاء تطبيقات تتكون من مكونات منشأة باستخدام مزيج من اللغات والأطر وأنظمة التشغيل.
يوضح الشكل التالي مثالاً للنشر حيث يقوم عملاء Java الذين يعملون على Linux، وكُتبوا باستخدام واجهة برمجة تطبيقات Java Message Service (JMS) القياسية وعملاء .NET الذين يعملون على Windows، بتبادل الرسائل عبر ناقل خدمة Microsoft Azure باستخدام AMQP 1.0.
الشكل 1: مثال على سيناريو نشر يعرض المراسلة عبر الأنظمة الأساسية باستخدام ناقل خدمة Microsoft Azure وAMQP 1.0
تستخدم جميع مكتبات عملاء ناقل خدمة Microsoft Azure المدعومة المتوفرة عبر Azure SDK AMQP 1.0.
- ناقل خدمة Microsoft Azure لـ NET.
- مكتبات ناقل خدمة Microsoft Azure لـ Java
- ناقل خدمة Microsoft Azure لـ Java JMS 2.0
- ناقل خدمة Microsoft Azure Modules لـ JavaScript وTypeScript
- مكتبات Azure Service Bus لـ Python
يعمل خيار بروتوكول AMQP-over-WebSockets على المنفذ TCP 443 تماماً مثل HTTP / REST API، ولكنه بخلاف ذلك متطابق وظيفياً مع AMQP العادي. يحتوي هذا الخيار على زمن وصول اتصال أولي أعلى بسبب الرحلات المستديرة المصافحة الإضافية والمزيد من الحمل كمقايضة لمشاركة منفذ HTTPS. إذا تم تحديد هذا الوضع، فمنفذ TCP 443 كافٍ للاتصال. تسمح الخيارات التالية بتحديد وضع AMQP WebSockets.
اللغة | خيار |
---|---|
.NET (Azure.Messaging.ServiceBus) | إنشاء ServiceBusClient باستخدام منشئ يعامل ServiceBusClientOptions كمعلمة. عيّن ServiceBusClientOptions.TransportType على ServiceBusTransportType.AmqpWebSockets |
.NET (Microsoft.Azure.ServiceBus) | عند إنشاء كائنات العميل، استخدم المنشئات التي تعامل TransportTypeأو ServiceBusConnectionأو ServiceBusConnectionStringBuilder كمعلمات. بالنسبة للبناء الذي يُعامل بالنسبة للبناء الذي يُعامل إذا كان قيد الاستخدام |
Java (com.azure.messaging.servicebus) | عند إنشاء عملاء، عيّن ServiceBusClientBuilder.transportType على AmqpTransportType.AMQP.AMQP_WEB_SOCKETS |
Java (com.microsoft.azure.servicebus) | عند إنشاء عملاء، عيّن transportType في com.microsoft.azure.servicebus.ClientSettings على com.microsoft.azure.servicebus.primitives.TransportType.AMQP_WEB_SOCKETS |
JavaScript | عند إنشاء كائنات عميل "Service Bus"، استخدم webSocketOptions الخاصية في ServiceBusClientOptions. |
Python | عند إنشاء عملاء "Service Bus"، اضبط ServiceBusClient.transport_type على TransportType.AmqpOverWebSocket |
في 30 سبتمبر 2026، سنتقاعد مكتبات SDK ناقل خدمة Azure WindowsAzure.ServiceBus وMicrosoft.Azure.ServiceBus و com.microsoft.azure.servicebus، والتي لا تتوافق مع إرشادات Azure SDK. سننهي أيضا دعم بروتوكول SBMP، لذلك لن تتمكن من استخدام هذا البروتوكول بعد 30 سبتمبر 2026. قم بالترحيل إلى أحدث مكتبات Azure SDK، والتي توفر تحديثات أمان هامة وقدرات محسنة، قبل ذلك التاريخ.
على الرغم من أنه لا يزال من الممكن استخدام المكتبات القديمة بعد 30 سبتمبر 2026، إلا أنها لن تتلقى بعد ذلك الدعم والتحديثات الرسمية من Microsoft. لمزيد من المعلومات، راجع إعلان إيقاف الدعم.
بالإضافة إلى ذلك، يمكنك استخدام ناقل خدمة Microsoft Azure من أي حزمة بروتوكولات متوافقة مع AMQP 1.0:
اللغة | مكتبة |
---|---|
Java | Apache Qpid Proton-J |
C/C++ | Azure uAMQP C, Apache Qpid Proton-C |
Python | Azure uAMQP ل Python وApache Qpid Proton Python) |
PHP | Azure uAMQP for PHP |
Ruby | Apache Qpid Proton Ruby |
انتقال | Azure Go AMQP, Apache Qpid Proton Go |
C#/F#/VB | AMQP .NET Lite, Apache NMS AMQP |
JavaScript/Node | Rhea |
الملخص
- AMQP 1.0 هو بروتوكول رسائل مفتوح وموثوق يمكنك استخدامه لبناء تطبيقات مختلطة عبر الأنظمة الأساسية. AMQP 1.0 هو معيار OASIS.
الخطوات التالية
هل أنت مُستعد لمعرفة المزيد؟ قم بزيارة الروابط التالية: