Table of Contents

مقدمة: استمرار أهمية MVC في النظم الحديثة التوزيع

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

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

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

"خطبة إم سي" "مُراجع سريع"

وقبل التخلّص من النظم الموزّعة، من المفيد إعادة النظر في المكونات التقليدية لمركبات الكربون المفلورة كما هي مفهومة في التطبيقات الشبكية الأحادية.

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

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

غير أنه في هيكل الخدمات الصغرى، تتحول الحدود، وتمتلك كل خدمة صغيرة بياناتها ومنطقها، وكثيرا ما تُبنى واجهة المستعملين كتطبيق مستقل للواجهة يتواصل مع الخدمات المتعددة، مما يثير التساؤل: كيف تطبق نظام تقييم الأداء عند عدم وجود تطبيق واحد للتقسيم؟

Mapping MVC to Microservices: The Distributed View

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

نماذج البيانات التي تُؤدَّى من الخدمات

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

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

المراقب المالي بوصفه بوابة نظام المعلومات الإدارية المتكامل ونقاط نهاية الخدمة

في الـ "إم في سي" الكلاسيكي، يتلقى المراقب طلباً ويقرر ما يجب فعله، في الخدمات الدقيقة، الدور المكافئ الذي يلعبه بوابات "العملية الصغيرة"

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

آراء كواجهة صغيرة

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

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

أكثر على الجبهات الدقيقة، انظر المادة Micro Frontends ] من قبل كام جاكسون على مدون مارتن فاولر.

فوائد تطبيق مبادئ لجنة الخيارات التقنية المعنية ببروميد الميثيل على الخدمات البالغة الصغر

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

تعزيز نظام الوحدات

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

المستقل

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

فريق الحكم الذاتي

فريق واحد يمكنه أن يمتلك "نموذج" من دائرة المدفوعات فريق آخر يمكنه أن يمتلك "النظرة" (الواجهة الدقيقة لجهاز مراقبة الدخول) وفريق منابر يمكنه أن يمتلك بوابة "إم آي" (مراقب عالمي)

تحسين القابلية للاختبار

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

التحديات الحاسمة في مجال تكامل الخدمات الطبية - المركبات الجوية

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

إدارة المعاملات المشحونة

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

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

اتساق البيانات والطابع

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

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

النفقة العامة للخدمات

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

أعمال الإرسال والتطويع

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

أنماط عملية لخدمات ميكرواتية MVC-Aware

ولإدراك الفوائد مع التخفيف من حدة التحديات، ظهرت أنماط معمارية عديدة تنسق بين مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس مقياس

دعم الجبهة

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

ونموذج BFF مناسب ل MVC: هو الجهة الرقابية، والخدمات في المراحل النهائية هي النماذج، ويرى كل فريق من أفرقة المنتدى أن لديه جهاز التحكم ونظرة، في حين أن الخدمات النموذجية لا تزال مشتركة.

Command Query Responsibility Segregation (CQRS)

و في حالة ما إذا كان هناك نموذج للكتابة و نموذج للكتابة و نموذج للقراءة

مناسبة الاتصال

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

API Composition vs. Command Message

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

أفضل الممارسات في مجال اعتماد الأفرقة العاملة المعنية بمركبات الكربون الكلورية فلورية + الخدمات

واستنادا إلى تجربة العالم الحقيقي، النظر في المبادئ التوجيهية التالية:

  • ] Explicitly define service boundaries using Domain-Driven Design. Each service's model should correspond to a bounded context. Avoid creating general "model services" that cover multiple domains.
  • Use an API gateway or BFF as the primary controller.] Don't let client applications directly call multiple services - they'y will become tightly coupled to the backend topology.
  • Standardize on communication protocols and data contracts.] Use OpenAPI for REST or Protobuf for gRPC to ensure that controller-model interactions are well-defined and versioned.
  • Implement observability from day one.] Distributed tracking, logging, and metrics help debug issues across the MVC layers when things go wrong.
  • ترهيب استخدام العصيان لتدفقات العمل الأساسية عبر الخدمة.، حيثما أمكن، تصميم حدود الخدمة بحيث يمكن أن تتولى إحدى الخدمات معالجة قيادة واحدة (سوغا هي تكلفة معقدة).
  • لا يجب أن يعرفوا عن الداخليات في الخدمة
  • Invest in automated contract testing.] Tools like Charter can verify that the controller (BFF) and model (service) develop without breaking each other.

الاستنتاج: MVC as a Guiding Philosophy, not a Rigid Template

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

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

وفي نهاية المطاف، يظل الهدف كما كان عليه قبل خمسين عاما: بناء نظم قابلة للاستمرار، وقابلة للاختبار، ومرنة، وتوفر وزارة العمل والاختبار، عند تطبيقها على المستوى المعماري، الإطار المفاهيمي لتحقيق ذلك الهدف في الخدمات الصغرى، وللمزيد من القراءة عن أنماط الجمع، يقدم الكتاب Building Microservices[Fservice:1] بواسطة شركة Sam Newman، نموذج ممتاز.