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

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

اقرأ عن الهندسة الموجهة نحو الخدمة (SOA).»

اقرأ حول الخدمات المصغرة »

ما قيود البنية المتجانسة التي يتغلب عليها هيكل البنية الموجهة نحو الخدمة (SOA)؟

في البنية المتجانسة، يكتب المطورون التعليمة البرمجية لجميع وظائف الخدمة في قاعدة تعليمة برمجية واحدة. باستخدام البنية الموجهة نحو الخدمة (SOA)، يمكن للمطورين التعامل مع تحديات البنية المتجانسة، مثل ما يلي:

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

تعمل البنيات الموحدة المتجانسة أيضًا على توحيد فرق الملكية وفرق التطوير المسؤولة عن التطبيق بأكمله. إنهم يواجهون تحديات في التسليم المستمر وممارسات DevOps بسبب حجم البنيات وتعقيدها. 

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

ما قيود هيكل البنية الموجهة نحو الخدمة (SOA) التي تتغلب عليها بنية الخدمات المصغرة؟

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

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

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

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

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

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

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

التنفيذ

يتضمن تنفيذ البنية الموجهة نحو الخدمة (SOA) دمج أنواع مختلفة من الخدمات في تطبيق. تستخدم ناقل خدمة مؤسسة لتوصيل أنواع خدمات، مثل الخدمات التالية:

  • خدمات وظيفية لدعم عمليات أعمال محددة 
  • خدمات مؤسسة لتضمين وظيفة أعمال بعينها في خدمات أخرى
  • خدمات تطبيقات يستخدمها المطورون في إنشاء التطبيقات ونشرها
  • خدمات بنية تحتية لإدارة الميزات غير الوظيفية، مثل المصادقة والأمان

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

التواصل

للوصول إلى الخدمات عن بُعد، يستخدم هيكل البنية الموجهة نحو الخدمة (SOA) ناقل خدمة مؤسسة (ESB) مركزي لتوصيل خدمات متنوعة باستخدام العديد من بروتوكولات المراسلة. من بين هذه البروتوكولات بروتوكول الوصول إلى الأجسام البسيطة (SOAP)، وبروتوكول وضع الرسائل في قوائم انتظار متقدمة (AMQP)، والبروتوكول Microsoft Message Queuing (MSMQ). في حالة فشل ناقل خدمة المؤسسة (ESB)، تتأثر جميع خدمات البنية الموجهة نحو الخدمة (SOA). 

وفي الوقت نفسه، تستخدم بنيات الخدمات المصغرة أنظمة مراسلة أسهل، مثل واجهات RESTful API أو خدمة رسائل Java ‏(JMS) أو بث أحداث النشر/الاشتراك (pub/sub). لا تتطلب هذه الطرق أن تحافظ الخدمات المصغرة على اتصال نشط عند تبادل البيانات. 

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

مخزن البيانات

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

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

النشر

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

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

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

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

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

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

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

السرعة

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

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

مرونة الحوكمة

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

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

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

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

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

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

الخدمات المصغرة

تعد بنية الخدمات المصغرة هي الخيار الأفضل لدعم فرق التطوير بالمنهجية agile. يمكن للمطورين إجراء تغييرات سريعة وتدريجية في التعليمات البرمجية بدون التأثير على ثبات التطبيق باستخدام أدوات التكامل المستمر والتسليم المستمر (CI/CD). تكون الخدمات المصغرة أفضل عندما يكون للمطورين الأهداف التالية:

  • استخدام لغات برمجة أو مكتبات أو أطر عمل مختلفة لإنشاء تطبيق واحد
  • الجمع بين الخدمات الفردية التي تم إنشاؤها باستخدام أطر برمجيات مختلفة
  • توفير موارد الحوسبة وتوسعة نطاق الخدمات الفردية في الوقت الفعلي 

مع الخدمات المصغرة، يمكن للشركات الاستفادة من الإمكانات السحابية الحديثة ونشر مئات الخدمات المصغرة بسهولة.

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

 

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

الخدمات المصغرة

التنفيذ

خدمات مختلفة تتضمن موارد مشتركة.

خدمات أبسط مستقلة ومبنية لغرض معين.

التواصل

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

واجهات برمجة التطبيقات، خدمة رسائل Java ‏(JMS)، خدمة رسائل النشر/الاشتراك (Pub/Sub)

تخزين البيانات

تخزين مشترك للبيانات.

تخزين مستقل للبيانات.

النشر

يتسم بالصعوبة. التغيرات البسيطة تتطلب إجراء عملية إعادة بناء كاملة.

يسهل النشر. يمكن وضع كل خدمة مصغرة في حاوية. 

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

خدمات قابلة لإعادة الاستخدام من خلال موارد مشتركة.

لكل خدمة مواردها المستقلة. يُمكنك إعادة استخدام الخدمات المصغرة من خلال واجهات برمجة التطبيقات الخاصة بها.

السرعة

تقل السرعة كلما أضيفت خدمات أخرى.

سرعة ثابتة في ظل زيادة حركة المرور.

مرونة الحوكمة

اتساق حوكمة البيانات عبر جميع الخدمات.

تنوّع سياسات حوكمة البيانات لكل وحدة تخزين.

كيف تساعدك AWS في تلبية متطلبات الخدمات المصغرة لديك؟

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

فيما يلي بعض الطرق التي يُمكنك من خلالها العمل باستخدام الخدمات المصغرة على AWS:

  • إنشاء وعزل وتشغيل خدمات مصغرة آمنة موضوعة في حاويات مُدارة لتبسيط العمليات وتقليل النفقات الإدارية. اقرأ المزيد على الحاويات في AWS.
  • استخدام AWS Lambda في تشغيل خدماتك المصغرة بدون توفير خوادم وإدارتها.
  • الاختيار من بين 15 قاعدة بيانات من قواعد بيانات سحابة AWS العلائقية وغير العلائقية المبنية لغرض معين لدعم بنية الخدمات المصغرة.
  • مراقبة الخدمات المصغرة التي تعمل على AWS والتحكم بها بسهولة من خلال AWS App Mesh.
  • مراقبة تفاعلات الخدمات المصغرة المعقدة وتصحيح أخطائها من خلال AWS X-Ray.

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