ما المقصود بالبنية المتجانسة؟

مهندسو برمجيات يعملون على مشروع وبرمجته لإيجاد حل لمشكلة ما

المؤلفون

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

ما المقصود بالبنية المتجانسة؟

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

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

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

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

كيف تعمل البنية المتجانسة؟

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

عناصر البنية المتجانسة

تحتوي التطبيقات المتجانسة عادةً على العناصر التالية:

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

مزايا البنية المتجانسة

بالنظر إلى البنية المتجانسة بمزيد من التفصيل، يمكننا أن نرى أنها توفر العديد من المزايا المهمة:

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

عيوب البنية المتجانسة

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

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

كن مطلعًا على آخر أخبار السحابة


احصل على نشرة Think الإخبارية الأسبوعية للحصول على إرشادات الخبراء حول تحسين الإعدادات متعددة السحابة في عصر الذكاء الاصطناعي.

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

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

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

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

مزايا بنية الخدمات المصغرة

الخدمات المصغرة مهيأة للنمو المستمر واستقبال التغييرات التقنية. وفيما يلي المزايا الرئيسية التي تقدمها:

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

عيوب بنية الخدمات المصغرة

على الرغم من أن الخدمات المصغرة توفر العديد من المزايا، فإن تعقيدها العام يدعم بعض المشكلات عند استخدامها:

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

مقارنة بين البنية المتجانسة وبنية الخدمات المصغرة

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

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

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

ومن حيث أوجه المقارنة المباشرة، تختلف البنية المتجانسة والخدمات المصغرة في العديد من النواحي الرئيسية:

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

حالات استخدام البنية المتجانسة

من الضروري معرفة وقت استخدام كل بنية، وكذلك فهم النظام الأنسب بناءً على الاستخدامات المطلوبة. فيما يلي أفضل استخدامات النظام المتجانس:

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

حالات استخدام بنية الخدمات المصغرة

تصلح الخدمات المصغرة للعديد من المشاريع، بما في ذلك التطبيقات الأكثر تعقيدًا:

  • التجارة الإلكترونية: لقد قطعت التجارة الإلكترونية شوطًا طويلاً بشكل ملحوظ في فترة قصيرة نسبيًا، حيث طورت إستراتيجيات المبيعات على نطاق واسع لعدد لا يحصى من تجار التجزئة الذين حرروا أنفسهم من تكاليف البناء الضخمة المرتبطة بعمليات المبيعات التقليدية. ارتفع سوق مبيعات التجارة الإلكترونية في عام 2023 إلى 5.8 تريليونات دولار أمريكي، مدفوعًا بمتاجر التجزئة المنتشرة في كل مكان والمهتمة بالسوق مثل أمازون (AWS).1
  • منصات الترفيه: عند تشغيل منصة ترفيه دولية، يجب أن تكون قادرًا على تحمل أعباء العمل الخفيفة والثقيلة على حد سواء. في عام 2009، حوَّلت عملاق بث مقاطع الفيديو شركة Netflix نظامها من بنية متجانسة إلى بنية خدمات مصغرة قائمة على السحابة. تتضمن واجهة Netflix الخلفية الآن تطبيقات من Apache وCassandra وChukka وGluster وHadoop وHive وJavaTM وMySQL—مع دعم واسع النطاق لموازنة التحميل.
  • فرق الخبراء: كما ذكرنا سابقًا، فإن الخدمات المصغرة ببساطة ليست سهلة الاستخدام مثل البُنى المتجانسة. فهي تحتاج إلى خبراء يتمتعون بمهارات راسخة في عملهم. إضافة إلى ذلك، عادةً ما تحتاج بُنى الخدمات المصغرة إلى دعم العديد من التقنيين، وذلك بسبب التعقيد الكلي للعملية. ولهذه الأسباب، تُعد فرق الخبراء المجهزة بالكامل الخيار الأمثل للعمل على بُنى الخدمات المصغرة وتطوير تطبيقات الخدمات المصغرة.
حلول ذات صلة
خدمة تطبيقات IBM Enterprise لـ Java

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

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

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

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

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

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

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

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