بنية متعددة الطبقات

في هندسة البرمجيات ، تُعرف بنية البرمجيات متعددة الطبقات (والتي يُشار إليها غالبًا ببنية الطبقات المتعددة أو البنية الطبقية ) بأنها بنية عميل-خادم يتم فيها فصل مستويات بنية البرمجيات المختلفة فعليًا. يُعدّ استخدام بنية الطبقات الثلاث الأكثر شيوعًا ، حيث تفصل بين وظائف العرض ، ومعالجة التطبيقات ، وإدارة البيانات ، كما هو الحال في نموذج الربط الشبكي الهرمي لشركة سيسكو . تشمل مستويات الفصل الأخرى طبقة الخدمات ، وطبقة الأعمال ، وطبقة الوصول إلى البيانات ، وطبقة التخزين .
توفر بنية التطبيقات متعددة الطبقات نموذجًا يمكّن المطورين من تعديل أو إضافة طبقات محددة في عملية تطوير البرمجيات ، بدلًا من إعادة تصميم التطبيق بالكامل. وهي شائعة الاستخدام في التطبيقات الصغيرة والبسيطة نظرًا لبساطتها وانخفاض تكلفتها. [ 1 ] [ 2 ] في تطوير الويب ، تُستخدم بنية ثلاثية الطبقات لوصف مواقع الويب التي تتكون من خادم ويب أمامي يقدم محتوى ثابتًا وبعض المحتوى الديناميكي المخزن مؤقتًا، وخادم تطبيقات وسيط لمعالجة المحتوى الديناميكي وتوليده ، وقاعدة بيانات أو مخزن بيانات خلفي .
في نظام الطبقات الصارم، تعتمد كل طبقة على الطبقة التي تليها، ويمكنها العمل بمعزل عن الطبقات التي تعلوها. أما في نظام الطبقات المرن، فيمكن للطبقة أن تعتمد على جميع الطبقات التي تليها، مما يُنشئ روابط إضافية بين الطبقات. [ 3 ] تستخدم بعض البنى متعددة الطبقات نهجًا هجينًا، حيث تكون بعض الطبقات صارمة بينما تكون طبقات أخرى مرنة. [ 4 ] [ 5 ] كما يمكن تطبيق بنية N -tier باستخدام نمط النموذج-العرض-المقدم .
يُستخدم مصطلحا "الطبقة" و"المستوى" غالبًا بشكلٍ متبادل، مع أن "الطبقة" تُستخدم أحيانًا للإشارة إلى آلية هيكلة منطقية برمجية مفاهيمية، بينما يُستخدم "المستوى" للإشارة إلى آلية هيكلة الأجهزة المادية لبنية النظام التحتية. [ 6 ] [ 7 ] في هذا السياق، يمكن نشر حل ثلاثي الطبقات على مستوى واحد، كما هو الحال في بعض البنى التي تتمحور حول قواعد البيانات، والتي تُسمى بنية RDBMS فقط، أو في محطات العمل الشخصية. [ 8 ] [ 9 ]
الطبقات
الطبقات المشتركة
في بنية متعددة الطبقات منطقية لنظام معلومات ذي تصميم موجه نحو الكائنات ، فإن العناصر الأربعة التالية هي الأكثر شيوعًا: [ 3 ]
- طبقة العرض (المعروفة أيضًا باسم طبقة واجهة المستخدم، أو طبقة العرض، أو طبقة العرض في بنية متعددة الطبقات)
- طبقة التطبيق (المعروفة أيضًا باسم طبقة الخدمة [ 10 ] [ 11 ] أو طبقة وحدة تحكم GRASP [ 12 ] )
- طبقة الأعمال (المعروفة أيضًا باسم طبقة منطق الأعمال (BLL)، طبقة منطق المجال)
- طبقة الوصول إلى البيانات (المعروفة أيضًا بطبقة الثبات ، والتسجيل، والشبكات، والخدمات الأخرى المطلوبة لدعم طبقة أعمال معينة)
يُعتبر عادةً أن طبقة التطبيق (أو طبقة الخدمة) طبقة فرعية من طبقة الأعمال، حيث تُغلف عادةً تعريف واجهة برمجة التطبيقات (API) التي تُظهر وظائف الأعمال المدعومة. ويمكن تقسيم طبقتي التطبيق/الأعمال إلى طبقات فرعية إضافية لتسليط الضوء على مسؤوليات محددة. على سبيل المثال، عند استخدام نمط نموذج-عرض-مقدم ، يمكن استخدام طبقة المقدم كطبقة إضافية بين طبقة واجهة المستخدم وطبقة الأعمال/التطبيق (كما هو ممثل في طبقة النموذج). إذا لم يكن هناك تمييز واضح بين طبقة الأعمال وطبقة العرض في بنية التطبيق (أي أن طبقة العرض تُعتبر جزءًا من طبقة الأعمال)، فسيتم تطبيق نموذج العميل-الخادم التقليدي (ذو الطبقتين).
يُعرّف البعض طبقةً منفصلةً تُسمى طبقة البنية التحتية للأعمال (BI)، تقع بين طبقة (طبقات) الأعمال وطبقة (طبقات) البنية التحتية. وتُسمى أحيانًا "طبقة الأعمال منخفضة المستوى" أو "طبقة خدمات الأعمال". هذه الطبقة عامة جدًا ويمكن استخدامها في عدة مستويات من التطبيقات (مثل مُحوّل العملات). [ 13 ]
يمكن تقسيم طبقة البنية التحتية إلى مستويات مختلفة (خدمات تقنية عالية المستوى أو منخفضة المستوى). [ 13 ] غالبًا ما يركز المطورون على إمكانيات التخزين (الوصول إلى البيانات) في طبقة البنية التحتية، ولذلك يتحدثون فقط عن طبقة التخزين أو طبقة الوصول إلى البيانات (بدلاً من طبقة البنية التحتية أو طبقة الخدمات التقنية). بعبارة أخرى، لا يُنظر دائمًا إلى النوع الآخر من الخدمات التقنية بشكل صريح كجزء من أي طبقة محددة. تحتوي طبقة الوصول إلى البيانات عادةً على كائن يُعرف باسم كائن الوصول إلى البيانات (DAO) .
في نظام الطبقات الصارم، تعتمد كل طبقة على الطبقة التي تليها، ويمكنها أن توجد بمعزل عن الطبقات التي تعلوها. أما في نظام الطبقات المرن، فيمكن للطبقة أن تعتمد على جميع الطبقات التي تليها، وليس فقط على الطبقة التي تليها مباشرة. [ 3 ] يتميز نظام الطبقات المرن بترابطات أكثر، ويصعب تغييره. تستخدم بعض البنى متعددة المستويات نهجًا هجينًا، حيث تكون بعض الطبقات صارمة بينما تكون طبقات أخرى مرنة. [ 4 ] [ 5 ]
هندسة معمارية ثلاثية الطبقات
تُعدّ بنية الطبقات الثلاث نمطًا معماريًا لبرمجيات العميل والخادم، حيث يتم تطوير واجهة المستخدم (العرض)، ومنطق العمليات الوظيفية ("قواعد العمل")، وتخزين بيانات الحاسوب، والوصول إلى البيانات ، وصيانتها كوحدات مستقلة ، غالبًا على منصات منفصلة . [ 14 ] وقد طوّرها جون ج. دونوفان في شركة Open Environment Corporation (OEC)، وهي شركة أدوات أسسها في كامبريدج، ماساتشوستس .
إلى جانب المزايا المعتادة للبرمجيات المعيارية ذات الواجهات المحددة جيدًا، فإن بنية الطبقات الثلاث مصممة للسماح بترقية أو استبدال أي من الطبقات الثلاث بشكل مستقل استجابةً لتغيرات المتطلبات أو التكنولوجيا . على سبيل المثال، سيؤثر تغيير نظام التشغيل في طبقة العرض فقط على كود واجهة المستخدم. عادةً، تعمل واجهة المستخدم على جهاز كمبيوتر مكتبي أو محطة عمل وتستخدم واجهة مستخدم رسومية قياسية ، ومنطق معالجة وظيفي قد يتكون من وحدة أو أكثر تعمل على محطة عمل أو خادم تطبيقات ، ونظام إدارة قواعد بيانات علائقية على خادم قاعدة بيانات أو حاسوب مركزي يحتوي على منطق تخزين بيانات الحاسوب. قد تكون الطبقة الوسطى متعددة الطبقات (وفي هذه الحالة تُسمى البنية الكلية " بنية متعددة الطبقات"). [ 15 ]
- مستوى العرض التقديمي
- هذا هو المستوى الأعلى للتطبيق. تعرض طبقة العرض معلومات متعلقة بخدمات مثل تصفح المنتجات، والشراء، ومحتويات سلة التسوق. تتواصل هذه الطبقة مع الطبقات الأخرى، ومن خلالها تُرسل النتائج إلى طبقة المتصفح/العميل، وإلى جميع الطبقات الأخرى في الشبكة. وهي طبقة يمكن للمستخدمين الوصول إليها مباشرةً (مثل صفحة ويب، أو واجهة المستخدم الرسومية لنظام التشغيل).
- طبقة التطبيق (منطق الأعمال، أو طبقة المنطق، أو الطبقة الوسطى)
- يتم استخلاص الطبقة المنطقية من طبقة العرض، وبصفتها طبقة، تتحكم في وظائف التطبيق من خلال إجراء معالجة تفصيلية.
- طبقة البيانات
- تتضمن طبقة البيانات آليات حفظ البيانات (خوادم قواعد البيانات، ومشاركات الملفات، وما إلى ذلك) وطبقة الوصول إلى البيانات التي تغلف آليات الحفظ وتتيح الوصول إلى البيانات. ينبغي أن توفر طبقة الوصول إلى البيانات واجهة برمجة تطبيقات (API) لطبقة التطبيقات، تُتيح طرقًا لإدارة البيانات المخزنة دون الكشف عن آليات تخزين البيانات أو إنشاء تبعيات عليها. يُمكّن تجنب الاعتماد على آليات التخزين من إجراء التحديثات أو التغييرات دون أن تتأثر تطبيقات طبقة التطبيقات أو حتى تدرك وجود التغيير. وكما هو الحال مع فصل أي طبقة، توجد تكاليف للتنفيذ، وغالبًا ما تكون هناك تكاليف على الأداء مقابل تحسين قابلية التوسع والصيانة.
تطوير مواقع الويب
في مجال تطوير الويب ، يُستخدم مصطلح "ثلاثي الطبقات" غالبًا للإشارة إلى مواقع الويب ، وخاصة مواقع التجارة الإلكترونية ، التي يتم بناؤها باستخدام ثلاث طبقات:
- خادم ويب أمامي يُقدّم محتوى ثابتًا، وربما بعض المحتوى الديناميكي المخزّن مؤقتًا . في تطبيقات الويب، يُمثّل المحتوى الأمامي المحتوى الذي يعرضه المتصفح، وقد يكون هذا المحتوى ثابتًا أو مُولّدًا ديناميكيًا.
- خادم تطبيقات متوسط المستوى لمعالجة المحتوى الديناميكي وتوليده (مثل Symfony و Spring و ASP.NET و Django و Rails و Node.js ).
- قاعدة بيانات خلفية أو مخزن بيانات ، يتألف من مجموعات البيانات وبرنامج نظام إدارة قواعد البيانات الذي يدير البيانات ويوفر الوصول إليها.
اعتبارات أخرى
يُعدّ نقل البيانات بين الطبقات جزءًا من بنية النظام. وقد تشمل البروتوكولات المستخدمة واحدًا أو أكثر مما يلي: SNMP ، CORBA ، Java RMI ، .NET Remoting ، Windows Communication Foundation ، المقابس ، UDP ، خدمات الويب ، أو بروتوكولات قياسية أو خاصة أخرى. غالبًا ما تُستخدم برمجيات وسيطة لربط الطبقات المختلفة. تعمل الطبقات عادةً (ولكن ليس بالضرورة) على خوادم فعلية منفصلة، وقد تعمل كل طبقة على مجموعة خوادم .
إمكانية التتبع
يحدد قياس استجابة التطبيق المفاهيم وواجهات برمجة التطبيقات لقياس الأداء وربط المعاملات بين الطبقات.
يُستخدم مصطلح "الطبقات" عمومًا لوصف التوزيع المادي لمكونات النظام على خوادم أو أجهزة حاسوب أو شبكات منفصلة (عُقد المعالجة). وبالتالي، فإن بنية ثلاثية الطبقات ستتضمن ثلاث عُقد معالجة. ويشير مصطلح "الطبقات" إلى تجميع منطقي للمكونات التي قد تكون موجودة فعليًا على عُقدة معالجة واحدة أو لا.
انظر أيضاً
مراجع
- ↑ ريتشاردز، مارك (2020). أساسيات هندسة البرمجيات: منهج هندسي ( الطبعة الأولى). دار نشر أورايلي ميديا. رقم ISBN 978-1492043454.
- ↑ ريتشاردز، مارك (2022). أنماط هندسة البرمجيات . دار نشر أورايلي ميديا. رقم ISBN 9781098134273.
- 1 2 3 بوشمان، فرانك؛ منير، ريجين. روهنيرت، هانز. سوميرلاد، بيتر؛ ستال، مايكل (1996-08). هندسة البرمجيات الموجهة نحو الأنماط، المجلد الأول، نظام الأنماط. وايلي، أغسطس 1996. ISBN 978-0-471-95869-7تم استرجاعها من http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471958697.html
- 1 2 ريتشاردز، مارك (3 مارس 2020). أساسيات هندسة البرمجيات: منهج هندسي ( الطبعة الأولى). دار نشر أورايلي ميديا. ISBN 978-1492043454.
- 1 2 ريتشاردز، مارك. أنماط هندسة البرمجيات . دار نشر أورايلي ميديا.
- ↑ أنماط النشر (هندسة المؤسسات من مايكروسوفت، والأنماط، والممارسات) .
- ↑ فاولر، مارتن "أنماط هندسة تطبيقات المؤسسات" (2002). أديسون ويسلي.
- ↑ أنماط النشر (هندسة المؤسسات من مايكروسوفت، والأنماط، والممارسات) .
- ↑ فيسنتي، ألفونسو؛ إتشيفيري، لورينا؛ سابيجويرو، أرييل (2021). "بنية تعتمد على قواعد البيانات العلائقية فقط لتطبيقات الويب". المؤتمر السابع والأربعون للحوسبة في أمريكا اللاتينية (CLEI) لعام 2021. الصفحات 1-9 . doi : 10.1109/CLEI53233.2021.9640017 . ISBN 978-1-6654-9503-5. S2CID 245387844 .
- ↑ طبقة خدمة مارتن فاولر
- ↑ يوضح مارتن فاولر أن طبقة الخدمة هي نفسها طبقة التطبيق .
- ↑ مقارنة/مناقشة طبقة التحكم GRASP مقابل طبقة التطبيق/الخدمة [ تمت إزالة الرابط ] .
- 1 2 تطبيق UML والأنماط ، الطبعة الثالثة، ص 203. ISBN 0-13-148906-2.
- ↑ إيكرسون، واين دبليو. "بنية العميل/الخادم ثلاثية الطبقات: تحقيق قابلية التوسع والأداء والكفاءة في تطبيقات العميل والخادم." أنظمة المعلومات المفتوحة 10، 1 (يناير 1995): 3(20)
- ↑ تستند هذه المقالة إلى مواد مأخوذة من three-tier في قاموس الحوسبة المجاني على الإنترنت قبل 1 نوفمبر 2008 وتم دمجها بموجب شروط "إعادة الترخيص" الخاصة بـ GFDL ، الإصدار 1.3 أو أحدث.
روابط خارجية
- بنية الحوسبة الموزعة
- هندسة البرمجيات
- النمط المعماري (علوم الحاسوب)
- تصميم البرمجيات
- مصطلحات هندسة البرمجيات
- أنماط تصميم البرمجيات
