البنية الموجَّهة نحو الخدمة (SOA) مقابل الخدمات المصغرة: ما الفرق بينهما؟

منظر جوي للأضواء ليلاً فوق أوروبا

في هذه المقالة، نوضح أساسيات البنية الموجهة نحو الخدمة (SOA) والخدمات المصغرة، ونتطرق إلى الاختلافات الرئيسية بينهما، وننظر في النهج الأفضل لموقفك.

إذا كنت تعمل في مجال تكنولوجيا المعلومات أو مجال الحوسبة السحابية ، فمن المحتمل أنك على دراية بنقاش البنية الموجهة نحو الخدمة (SOA) مقابل الخدمات المصغرة. في النهاية، يتحدث الجميع عن الخدمات المصغرة والتطبيقات الرشيقة هذه الأيام.

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

ومع ذلك، حتى مع وجود هذه القواسم المشتركة الرئيسية، فإن الفحص الدقيق للنهجين يكشف عن اختلافات مهمة.

أحدث الأخبار التقنية، مدعومة برؤى خبراء

ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.

شكرًا لك! أنت مشترك.

سيصلك محتوى الاشتراك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك من هنا. لمزيد من المعلومات، راجع بيان خصوصية IBM.

ما هي البنية الموجهة نحو الخدمة (SOA)؟

البنية الموجهة نحو الخدمة (SOA) هي نهج على مستوى المؤسسة لتطوير البرامج لمكونات التطبيقات التي تستفيد من مكونات البرامج أو الخدمات القابلة لإعادة الاستخدام. في بنية برامج SOA، تتكون كل خدمة من التعليمات البرمجية وتكامل البيانات المطلوبة لتشغيل وظيفة عمل معينة - على سبيل المثال، التحقق من رصيد العميل أو تسجيل الدخول إلى موقع ويب أو معالجة طلب رهن عقاري.

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

بيانات XML هي عنصر أساسي للحلول القائمة على بنية SOA. يمكن استخدام تطبيقات SOA المستندة إلى XML لإنشاء خدمات الويب، على سبيل المثال.

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

توفر البنية الموجهة نحو الخدمة (SOA) أربعة أنواع مختلفة من الخدمات:

  1. الخدمات الوظيفية (أي خدمات الأعمال)، والتي تعتبر حساسة لتطبيقات الأعمال.
  2. خدمات المؤسسات، والتي تعمل على تنفيذ الوظائف.
  3. خدمات التطبيقات، والتي تُستخدم لتطوير التطبيقات ونشرها.
  4. خدمات البنية التحتية، والتي تعتبر أساسية للعمليات الخلفية مثل الأمان والمصادقة.

تتكون كل خدمة من ثلاثة عناصر:

  1. الواجهة، التي تحدد كيفية قيام مزود الخدمة بتنفيذ الطلبات الواردة من مستهلك الخدمة.
  2. العقد الذي يحدد كيفية التفاعل بين مزود الخدمة ومستهلك الخدمة.
  3. التنفيذ، وهو رمز الخدمة.

يمكن دمج خدمات البنية الموجهة نحو الخدمة (SOA) لإنشاء خدمات وتطبيقات عالية المستوى.

تطوير التطبيقات

ابدأ الآن بتطوير التطبيقات المؤسسية في السحابة

في هذا الفيديو، يناقش الدكتور Peter Haumer كيفية تطوير التطبيقات المؤسسية الحديثة في السحابة الهجينة اليوم من خلال عرض مكونات وممارسات مختلفة، بما في ذلك IBM Z Open Editor وIBM Wazi وZowe. 

ما المقصود بالخدمات المصغرة؟

مثل البنية الموجهة نحو الخدمة (SOA)، تتكون بنى الخدمات المصغرة من عناصر مقترنة بشكل فضفاض وقابلة لإعادة الاستخدام ومتخصصة تعمل غالباً بشكل مستقل عن بعضها البعض. تستخدم الخدمات المصغرة أيضًا درجة عالية من التماسك، والمعروفة باسم السياق المحدود. يشير السياق المحدود إلى العلاقة بين العنصر وبياناته ككيان أو وحدة قائمة بذاتها مع القليل من التبعيات. بدلاً من اعتمادها على مستوى المؤسسة، تتواصل الخدمات المصغرة عادةً عبر واجهة برمجة التطبيقات (APIs) لبناء التطبيقات الفردية التي تؤدي وظيفة معينة من وظائف الأعمال. هذا النهج يجعلها أكثر مرونة وقابلية للتطوير والمرونة، خاصةً في مجالات محددة من الأعمال. عادة ما تكون Java هي لغة البرمجة المفضلة لتطوير الخدمات المصغرة. يمكن أيضًا استخدام لغات برمجة أخرى، مثل Golang و Python.

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

تحقق من الفيديو التالي للحصول على مزيد من المعلومات حول بنية الخدمات المصغرة:

الفرق الرئيسي بين البنية الموجهة نحو الخدمة (SOA) والخدمات المصغرة: النطاق

يأتي الفرق الرئيسي بين النهجين في النطاق. ببساطة، تحتوي البنية الموجهة نحو الخدمة (SOA) على نطاق مؤسسي، بينما تحتوي بنية الخدمات المصغرة على نطاق تطبيق.

أساسيات البنية الموجهة نحو الخدمة (SOA) والخدمات المصغرة

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

فيما يلي بعض حالات الاستخدام التي يلعب فيها هذا الاختلاف دوره:

إعادة استخدام

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

في بنية الخدمات المصغرة، يؤدي إنشاء عنصر خدمة مصغرة يتم إعادة استخدامه في وقت التشغيل خلال التطبيق إلى تبعيات تقلل من المرونة والرشاقة. تفضل عناصر الخدمات المصغرة عموماً إعادة استخدام التعليمات البرمجية عن طريق نسخ البيانات المكررة وقبولها للمساعدة في تحسين الفصل.

استدعاءات متزامنة

تتوفر الخدمات القابلة لإعادة الاستخدام في SOA في جميع أنحاء المؤسسة باستخدام بروتوكولات متزامنة في الغالب مثل واجهات برمجة التطبيقات RESTful.

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

تكرار البيانات

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

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

الاختلافات الرئيسية الأخرى بين البنية الموجهة نحو الخدمة (SOA) والخدمات المصغرة

  • التواصل: في بنية الخدمات المصغرة، يتم تطوير كل خدمة بشكل مستقل، مع بروتوكول الاتصال الخاص بها. مع البنية الموجهة نحو الخدمة (SOA)، يجب أن يشارك كل خدمة في آلية اتصال مشتركة تسمى ناقل خدمة المؤسسة (ESB). تقوم البنية الموجهة نحو الخدمة (SOA) بإدارة وتنسيق الخدمات التي تقدمها من خلال ناقل خدمة المؤسسة (ESB). ومع ذلك، يمكن أن يصبح ESB نقطة فشل واحدة للمؤسسة بأكملها، وإذا تباطأت خدمة واحدة، يمكن أن يتأثر النظام بأكمله.
  • قابلية التشغيل البيني: من أجل الحفاظ على بساطة الأمور، تستخدم الخدمات المصغرة بروتوكولات مراسلة خفيفة الوزن مثل HTTP/REST (نقل الحالة التمثيلية) و JMS (خدمة مراسلة Java). تعد SOAs أكثر انفتاحًا على بروتوكولات المراسلة غير المتجانسة مثل SOAP (بروتوكول الوصول البسيط إلى الكائنات) وAMQP (بروتوكول Advanced المراسلة في قائمة انتظار) وMSMQ (وضع المراسلة في قائمة انتظار) من Microsoft.
  • دقة الخدمة: تتكون بنيات الخدمات متناهية الصغر من خدمات متخصصة للغاية، كل منها مصمم للقيام بشيء واحد بشكل جيد للغاية. من ناحية أخرى، يمكن أن تتراوح الخدمات التي تشكل SOAs من الخدمات الصغيرة المتخصصة إلى الخدمات على مستوى المؤسسة.
  • السرعة: من خلال استخدام مزايا مشاركة بنية مشتركة ، تعمل SOAs على تبسيط عملية التطوير واستكشاف الأخطاء وإصلاحها. ومع ذلك، فإن هذا يميل أيضًا إلى جعل بنيات SOAs تعمل بشكل أبطأ من بنيات الخدمات المصغرة، والتي تقلل من المشاركة لصالح الازدواجية.
  • الحوكمة: تتيح طبيعة البنية الموجّهة نحو الخدمة (SOA)، التي تنطوي على الموارد المشتركة، تنفيذ معايير إدارة البيانات المشتركة عبر جميع الخدمات. لا تتيح الطبيعة المستقلة للخدمات المصغرة إدارة البيانات بشكل متسق. يوفر هذا مرونة أكبر لكل خدمة، مما قد يشجع على مزيد من التعاون على مستوى المؤسسة.
  • التخزين: تختلف البنية الموجّهة نحو الخدمة (SOA) والخدمات المصغرة أيضاً من حيث كيفية تخصيص موارد التخزين. تتضمن بنية SOA عادة طبقة تخزين بيانات واحدة تشاركها جميع الخدمات داخل تطبيق معين، بينما ستخصص الخدمات المصغرة خادماً أو قاعدة بيانات لتخزين البيانات لأي خدمة تحتاجها.

الترحيل من البنية الموجّهة نحو الخدمة (SOA) إلى الخدمات المصغرة

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

البنية الموجّهة نحو الخدمة (SOA) مقابل الخدمات المصغرة: أيهما أفضل بالنسبة لك؟

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

يمكن لكل من البنية الموجّهة نحو الخدمة (SOA) والخدمات المصغرة استخدام الأتمتة لتسريع عمليات الأعمال. تميل البيئات الأكبر حجماً والأكثر تنوعاً إلى الميل نحو البنية الموجهة نحو الخدمة (SOA)، والتي تدعم التكامل بين التطبيقات غير المتجانسة وبروتوكولات المراسلة عبر ناقل خدمة المؤسسة (ESB). لا تتطلب البيئات الأصغر، بما في ذلك تطبيقات الويب وتطبيقات الأجهزة المحمولة، طبقة اتصال قوية كهذه، ومن الأسهل تطويرها باستخدام بنية الخدمات المصغرة.

تعرف على المزيد عن البنية الموجّهة نحو الخدمة (SOA) والخدمات المصغرة

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

لمعرفة المزيد حول كيفية بناء التطبيقات الرشيقة، قم بتنزيل نسختك المجانية من الكتاب الإلكتروني لبنية التطبيقات الرشيقة.

حلول ذات صلة
خدمة تطبيقات IBM Enterprise لـ Java

خدمة مُدارة بالكامل ومستأجر واحد لتطوير تطبيقات Java وتسليمها.

استكشف تطبيقات Java
حلول عمليات التطوير

استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.

استكشف حلول عمليات التطوير
خدمات تطوير تطبيقات المؤسسات

إن تطوير تطبيقات السحابة يعني البناء مرة واحدة، والتكرار بسرعة، والنشر في أي مكان.

خدمات تطوير التطبيقات
اتخِذ الخطوة التالية

تقدِّم خدمات استشارات تطوير التطبيقات من IBM Cloud توجيهات الخبراء وحلولًا مبتكرة لتبسيط استراتيجيتك السحابية. تعاون مع خبراء IBM في مجال السحابة والتطوير لتحديث تطبيقاتك وتوسيع نطاقها وتسريعها، ما يحقق النتائج التحويلية لأعمالك.

استكشف خدمات تطوير التطبيقات ابدأ البناء باستخدام IBM Cloud مجانًا