أنماط بنية البرمجيات
أنماط بنية البرمجيات هي مخططات تنظيمية مسماة وقابلة لإعادة الاستخدام تحدد أنواع المكونات والموصلات التي يستخدمها النظام والقيود المفروضة على كيفية دمجها.
Definition
النمط المعماري هو عائلة من البنى تتميز بمفردات من أنواع المكونات والموصلات ومجموعة من القيود على كيفية تكوين مثيلات تلك الأنواع.
Scope
يغطي هذا الموضوع الأنماط الكلاسيكية مثل الطبقات، العميل-الخادم، الأنبوب-والمُرشح، المستودع (المعتمد على البيانات)، الموجه بالأحداث والنشر-والاشتراك، النواة المصغرة، وبنى الخدمات الموجهة والخدمات المصغرة؛ نمط REST المعماري للأنظمة الشبكية؛ والمقايضات في سمات الجودة التي تحفز اختيار نمط على آخر.
Core questions
- ما هي مفردات المكونات والموصلات التي تحدد كل نمط؟
- ما هي سمات الجودة التي يعززها أو يثبطها نمط معين؟
- كيف يتم دمج الأنماط داخل نظام واحد؟
- كيف تختلف الأنماط الشبكية والموزعة مثل REST والخدمات المصغرة عن الأنماط الكلاسيكية؟
Key theories
- الأنماط كمفردات للمكونات والموصلات
- وصف شو وغارلان البنى بأنها أنماط متكررة من المكونات والموصلات مع قيود مرتبطة بها، مما أعطى المجال مفردات من الأنماط مثل الأنبوب-والمُرشح، والطبقات، والمستودع.
- نمط REST المعماري
- اشتق فيلدينغ REST كمجموعة من القيود — عدم الحالة (statelessness)، واجهة موحدة، قابلية التخزين المؤقت، نظام طبقات — التي تفسر قابلية التوسع والتطور للويب وتوجه تصميم الخدمات القائمة على الشبكة.
Clinical relevance
يؤدي اختيار النمط المناسب مبكرًا إلى مواءمة هيكل النظام مع متطلبات الجودة السائدة؛ ويصعب تصحيح عدم التوافق بين النمط والاحتياجات ومكلف بمجرد بدء التطوير.
Evidence & guidelines
يؤطر معيار ISO/IEC/IEEE 42010 وصف البنية من حيث وجهات النظر والآراء، والتي يتم ضمنها توثيق وتحليل الأنماط.
History
بدأ تصنيف الأنماط المعمارية مع شو وغارلان في منتصف التسعينيات مع تحول بنية البرمجيات إلى تخصص معترف به؛ وقد أضفت أطروحة فيلدينغ عام 2000 طابعًا رسميًا على REST، وشهدت الألفية الثانية صعود أنماط الخدمات المصغرة والموجهة بالأحداث للأنظمة على نطاق السحابة.
Key figures
- Mary Shaw
- David Garlan
- Roy Fielding
- Len Bass
Related topics
Seminal works
- shaw1996
- fielding2000
- bass2012
Frequently asked questions
- ما الفرق بين النمط المعماري ونمط التصميم؟
- يصف النمط المعماري التنظيم على مستوى النظام بأكمله — أنواع المكونات والموصلات والقواعد لدمجها — بينما يحل نمط التصميم مشكلة تصميم أكثر محلية داخل المكونات؛ تعمل الأنماط على مستوى أعلى من التفصيل.
- هل يمكن لنظام واحد استخدام أكثر من نمط؟
- نعم. عادةً ما تكون الأنظمة الحقيقية غير متجانسة، وتجمع بين الأنماط — على سبيل المثال، بنية طبقية تكون طبقة العرض فيها موجهة بالأحداث وتتواصل خدماتها عبر REST — مع تطبيق كل نمط حيث تتناسب مقايضاته بشكل أفضل.