IBM Integration Bus وماذا يأكل

صورة

مساء الخير ، عزيزي القارئ.

هناك فئة من المنتجات مثل ESB . كما ذكرنا في ويكيبيديا ، هذه عبارة عن برنامج وسيط يوفر رسائل مركزية وموحدة موجهة نحو الحدث بين ... و فيما يلي. لا توجد العديد من الأمثلة على هذه ESBs ويتم تطبيقها بشكل ضيق إلى حد ما. أحد هذه ESBs هو IBM Integration Bus (IIB) ، وحتى الإصدار 9 كان يطلق عليه IBM Message Broker.

قبل بضع سنوات صادفت منتجًا مثل IIB. في محاولة لفهم أي نوع من الحيوانات ، وجدت أن هناك القليل جدا من الإشارات إلى ذلك على الإنترنت الناطقة باللغة الروسية. سوف يعرض هذا المنشور إطار التكامل هذا في مجده ويساعد أولئك الذين يبحثون عني.

في روسيا ، يتم استخدام المنتج بشكل محدود للغاية في الأعمال المصرفية والتأمين والخدمات اللوجستية. بالضبط حيث يوجد سير عمل كبير ومتطلبات عالية للاعتمادية. وفي الآونة الأخيرة أيضًا ، كان مشروع كبير للغاز يبحث عن متخصصين في بنك الاستثمار الدولي. لا أعرف كيف يتم تطبيق الحافلة هناك ، لكن من الممكن القياس عن بعد (MQTT).

يتمثل جوهر هذا البرنامج في توصيل أنظمة N ببعضها البعض ، حتى لو كانت هذه الأنظمة لها واجهات وتنسيقات مختلفة تمامًا. لنفترض أن نظام X ينشئ إدخالًا في الجدول في قاعدة البيانات الخاصة به ، وعندما يظهر ، نود الاتصال بـ REST API لتطبيق آخر مع JSON داخل المكان الذي سيتم فيه نقل حقول سجلنا ، ووضع علامة على الإرسال إلى جدول آخر من تطبيق X. وكل هذا مع دعم المعاملات و تسليم مضمون. (عندما يزحف أحد التطبيقات إلى قاعدة بيانات تطبيق آخر ، يكون ذلك سيئًا ، ولكنه يحدث!) هذا ما تبدو عليه المهمة النموذجية لتيار IIB.

ما يجري تطويره في بنك الاستثمار الدولي


واحدة من أكثر الأشياء ملاءمة في IIB هي البرمجة الرسومية. عندما تقوم في بيئة Eclipse بسحب العقد من لوحة من لوحة ، قم بتوصيلها معًا وفيما بينها ، يعمل كل شيء.

يبدو مثل هذا:

صورة

ولكن عادة ما تحتاج إلى كتابة التعليمات البرمجية أيضًا. لتحويل الرسائل أو المنطق ، اللغة الرئيسية هي ESQL (تمديد SQL). يشبه syntactically PL / SQL ، ولكن يتم شحذ للعمل مع بنيات بيانات شجرة.

CREATE PROCEDURE CopyMessageHeaders() BEGIN DECLARE I INTEGER 1; DECLARE J INTEGER; SET J = CARDINALITY(InputRoot.*[]); WHILE I < J DO SET OutputRoot.*[I] = InputRoot.*[I]; SET I = I + 1; END WHILE; END; 

يوجد أيضًا دعم لعدة لغات برمجة:

  • جافا
  • صافي
  • PHP

إحدى طرق ملائمة لتحويل رسالة من تنسيق إلى آخر هي "تعيين البيانات":

صورة

بوضوح كبير ، على عكس ما إذا كنت تفعل ذلك في التعليمات البرمجية.

أعلاه ، لقد تطرقت إلى مسألة تحويل الرسائل ، ولكن قبل ذلك يجب أن يتم استلام الرسالة. للقيام بذلك ، هناك عدد كبير إلى حد ما من العقد الإدخال على politra. الاكثر شيوعا في ممارستي هي:

  • MqInput
  • FileInput
  • SOAPInput
  • HTTPInput
  • TimeoutNotification

لعرض رسالة مع النتيجة سيكون تقريبا نفس المجموعة. للحالات الفردية ، من الممكن كتابة العقد الخاصة بك لإدخال أو إخراج أو تحويل الرسالة.

قبل أحدث الإصدارات ، كان IIB مرتبطًا بشكل لا ينفصم بـ IBM MQ ، ولكن في الإصدارات الأخيرة من IIB لم يعد هذا مطلوبًا. لكن جزءًا من الوظيفة لن يعمل بدون MQ ، لذا فإن المخطط الأساسي للعمل يتضمن تثبيت MQ.

لأن هذا هو أول وظيفة ، وأنا جعلت من تمهيدية. إذا كان هناك اهتمام بالموضوع ، فسأواصل القصة.

روابط مفيدة:

مركز معرفة IBM
منتدى

Source: https://habr.com/ru/post/ar445138/


All Articles