نمط المراسلة

في هندسة البرمجيات ، يُعدّ نمط المراسلة نمطًا معماريًا يصف كيفية اتصال وتواصل جزأين مختلفين من تطبيق ما، أو نظامين مختلفين. يتضمن مفهوم المراسلة جوانب عديدة يمكن تقسيمها إلى الفئتين التاليتين: مراسلة الأجهزة (الاتصالات، وشبكات الحاسوب، وإنترنت الأشياء، وغيرها) وتبادل البيانات البرمجي (صيغ تبادل البيانات المختلفة وقدرات البرمجيات المستخدمة في هذا التبادل). وعلى الرغم من اختلاف السياق، فإن كلا الفئتين تشتركان في سمات مشتركة لتبادل البيانات.

المفاهيم العامة لنمط المراسلة

في مجال الاتصالات ، يصف نمط تبادل الرسائل ( MEP ) نمط الرسائل المطلوبة من بروتوكول الاتصالات لإنشاء قناة اتصال أو استخدامها . بروتوكول الاتصالات هو الصيغة المستخدمة لتمثيل الرسالة التي تتفق عليها جميع الأطراف المتصلة (أو التي تستطيع معالجتها). قناة الاتصال هي البنية التحتية التي تُمكّن الرسائل من الانتقال بين الأطراف المتصلة. تصف أنماط تبادل الرسائل تدفق الرسائل بين الأطراف في عملية الاتصال، وهناك نمطان رئيسيان لتبادل الرسائل : نمط الطلب والاستجابة ، ونمط أحادي الاتجاه .

على سبيل المثال، عند تصفح محتوى على الإنترنت (القناة)، يستخدم متصفح الويب (طرف الاتصال) بروتوكول HTTP (بروتوكول الاتصال) لطلب صفحة ويب من الخادم (طرف اتصال آخر)، ثم يعرض البيانات المُسترجعة بشكلها المرئي. هكذا يعمل نمط المراسلة بين الطلب والاستجابة .

في المقابل، في مجال شبكات الحاسوب، لدينا بروتوكول شبكة UDP . يُستخدم هذا البروتوكول مع نمط المراسلة أحادي الاتجاه ، [ 1 ] حيث لا يهتم الطرف المُرسِل بوصول الرسالة إلى أي طرف مُستقبِل، ولا يتوقع من أي من الأطراف المُستقبِلة إرسال رسالة "رد".

اتصال الجهاز

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

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

اتصالات البرمجيات

بخلاف اتصالات الأجهزة، حيث يقتصر شكل بيانات الرسالة على البروتوكولات التي يدعمها نوع وقدرات الأجهزة المعنية (على سبيل المثال، في شبكات الكمبيوتر لدينا بروتوكولات TCP وUDP، وجهاز الاتصال اللاسلكي يرسل موجات راديو بتردد محدد، وجهاز الإشارة يومض بتسلسلات شفرة مورس التي يمكن للشخص قراءتها)، يمكن للبرامج إنشاء تنسيقات تبادل بيانات أكثر تعقيدًا وقوة.

تُترجم هذه الصيغ من قِبل الطرف المُرسِل إلى صيغة قابلة للتسليم بواسطة الأجهزة الأساسية، ثم يقوم الطرف المُستقبِل بفك تشفيرها من الصيغة الخاصة بالأجهزة إلى صيغة تتوافق مع البروتوكول الأصلي الذي وضعته أنظمة البرمجيات المتصلة. يتيح تبادل البيانات على مستوى أعلى نقل المعلومات بصيغة أكثر سهولة في القراءة البشرية، كما يُتيح استخدام تقنيات التشفير وفك التشفير البرمجية لتأمين المراسلة. بالإضافة إلى ذلك، يُتيح تبادل الرسائل البرمجية تنوعًا أكبر في أنماط تبادل الرسائل ، والتي لم تعد تقتصر على أساليب الطلب والرد البسيطة والأساليب أحادية الاتجاه . وأخيرًا، وليس آخرًا، تُوفر أنظمة الاتصالات البرمجية قنوات متعددة لتبادل البيانات، والتي يُمكن استخدامها لتحسين تسليم الرسائل، أو لوضع قواعد معقدة للاختيار والتصفية تُساعد في تحديد الأطراف التي ستتلقى رسائل مُعينة. يُتيح هذا إمكانية توجيه الرسائل المُنسق برمجيًا . ونتيجةً لذلك، ظهر مفهوم الموضوع ( حيث تُسلّم نسخة من الرسالة إلى جميع الأطراف المُستقبِلة في مجموعة مُستهدفة) ومفهوم قائمة الانتظار (حيث يتلقى طرف واحد فقط في مجموعة مُستهدفة الرسالة).

كما ذكرنا سابقًا، تتيح مراسلة البرمجيات خياراتٍ وحريةً أكبر في بروتوكولات تبادل البيانات. إلا أن هذا لن يكون ذا فائدةٍ تُذكر ما لم تتفق الأطراف المتصلة على تفاصيل البروتوكول المُستخدم، ولذا توجد العديد من بروتوكولات مراسلة البرمجيات القياسية. يُمكّن هذا التوحيد القياسي أنظمة البرمجيات المختلفة، التي عادةً ما تُنشئها وتُديرها منظماتٌ منفصلة، ​​والتي قد تعمل على أجهزةٍ مختلفة (خوادم، حواسيب، أجهزة ذكية، أو وحدات تحكم إنترنت الأشياء)، من المشاركة في تبادل البيانات في الوقت الفعلي.

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

صابون

يُستخدم مصطلح نمط تبادل الرسائل بمعناه الموسع ضمن بروتوكول الوصول البسيط للكائنات ( SOAP ). [ 2 ] [ 3 ] تشمل أنواع أنماط تبادل الرسائل في SOAP ما يلي:

  1. الاستقبال فقط : هذا يعادل الاتصال أحادي الاتجاه . وهو تبادل رسائل أحادي الاتجاه قياسي حيث يرسل المستهلك رسالة إلى المزود دون أن يرسل أي نوع من الرد.
  2. نمط الإرسال والاستقبال الموثوق : يُستخدم هذا النمط لتبادل الرسائل أحادي الاتجاه بشكل موثوق. يبدأ المستهلك بإرسال رسالة، ويرد عليها المُزوّد ​​برسالة حالة. إذا كانت الاستجابة رسالة حالة، يكتمل التبادل، أما إذا كانت الاستجابة رسالة خطأ، فيجب على المستهلك الرد برسالة حالة.
  3. المدخلات والمخرجات : هذا يعادل طلب-استجابة . وهو تبادل رسائل ثنائي الاتجاه قياسي حيث يبدأ المستهلك برسالة، ويرد المزود برسالة أو خطأ، ويرد المستهلك بحالة.
  4. In-Optional-Out : تبادل رسائل ثنائي الاتجاه قياسي حيث يكون رد الموفر اختياريًا.
  5. الإخراج فقط : عكس الإدخال فقط. يدعم بشكل أساسي إشعارات الأحداث، ولا يمكنه إرسال رسائل الأعطال.
  6. نمط الإرسال الخارجي القوي : يشبه نمط الإرسال الخارجي فقط، إلا أنه يمكن أن يُطلق رسالة خطأ. تبدأ الرسالة الصادرة عملية الإرسال.
  7. الإرسال-الإدخال : عكس الإرسال-الإخراج. يقوم المزود بإرسال الطلب ويبدأ عملية التبادل.
  8. إرسال-اختياري-استقبال : عكس استقبال-اختياري-إرسال. تُنتج الخدمة رسالة صادرة. الرسالة الواردة اختيارية ("اختياري-استقبال").

ØMQ

توفر مكتبة ØMQ لإدارة قوائم انتظار الرسائل ما يُسمى بالمآخذ (وهي نوع من التعميم لمآخذ IP و Unix التقليدية )، والتي تتطلب تحديد نمط مراسلة مُعين، وهي مُحسّنة لكل نمط. أنماط ØMQ الأساسية هي: [ 4 ]

يُحدد كل نمط بنية شبكية معينة . يُحدد نمط الطلب والاستجابة ما يُسمى "حافلة الخدمة"، ويُحدد نمط النشر والاشتراك "شجرة توزيع البيانات"، ويُحدد نمط الدفع والسحب "خط الأنابيب المتوازي". صُممت جميع الأنماط عمدًا لتكون قابلة للتوسع بلا حدود، وبالتالي قابلة للاستخدام على نطاق الإنترنت. [ 5 ]

استراحة

بروتوكول REST هو بروتوكول مراسلة مبني على بروتوكول HTTP ، ويستخدم نمط طلب-استجابة لتبادل الرسائل. بينما يهدف HTTP بشكل أساسي إلى توصيل صفحات الويب والملفات عبر الإنترنت للمستخدم النهائي، يُستخدم بروتوكول REST في الغالب للتواصل بين أنظمة برمجية مختلفة، ويلعب دورًا محوريًا في بنية البرمجيات القائمة على الخدمات المصغرة . من أبرز مزايا بروتوكول REST مرونته العالية في تمثيل البيانات بصيغ متعددة (عادةً JSON وXML)، وتوفيره لبيانات وصفية إضافية للرسالة. تتبع هذه البيانات الوصفية معايير HTTP من خلال تمثيلها كعناوين HTTP (الموحدة بواسطة بروتوكول HTTP الأساسي)، وبالتالي يمكن استخدامها كإرشادات للمستقبل حول كيفية تفسير محتوى الرسالة. لهذا السبب، يُحسّن REST بشكل كبير من تطوير نظام برمجي قادر على التواصل مع نظام برمجي آخر، حيث لا يحتاج المطورون إلا إلى معرفة الصيغة العامة لمحتوى الرسالة (نموذج JSON أو XML). عادةً ما تتم معالجة اتصال HTTP الفعلي بواسطة مكتبة برمجية أو إطار عمل.

ومن الصفات الرائعة الأخرى لبروتوكول REST أنه مناسب لبناء دلالات بروتوكولات أخرى فوقه، وهو المثال مع HATEOAS .

انظر أيضاً

مراجع

  1. إيرل، توماس (2005). هندسة الخدمات الموجهة: المفاهيم والتكنولوجيا والتصميم . إنديانا: بيرسون للتعليم. ص  171. ISBN 0-13-185858-0.
  2. http://www.w3.org/TR/soap12-part1/#soapmep بروتوكول SOAP MEPs في توصية W3C الإصدار 1.2
  3. لغة وصف خدمات الويب (WSDL) الإصدار 2.0: عناصر MEP إضافية
  4. دليل مستخدم ØMQ
  5. "طبقة قابلية التوسع تصل إلى بنية الإنترنت" . مؤرشف من الأصل بتاريخ 28-05-2019 . تم الاطلاع عليه بتاريخ 03-02-2011 .