عمارة متعددة الطبقات
في هندسة البرمجيات (software engineering)، البنية متعددة الطبقات (multi-tier architecture) (غالبا ما يطلق عليها البنية ذات ن طبقة n-Tier Application) هي بنية تعتمد مفهوم الخادم - العميل يفصل فيها منطقيا بين واجهة الاستخدام المعروضة وإجراءات المعالجة في التطبيق، وإجراءات إدارة البيانات.
تقدم التطبيقات متعددة الطبقات نموذجا للمطورين لبناء تطبيقات مرنة وقابلة لإعادة الاستخدام حيث يمكن تقسيم التطبيق إلى طبقات منفصلة ومستقلة فعند الحاجة لإضافة طبقات أو تعديلها لا توجد حاجة لإعادة كتابة التطبيق بالكامل من جديد.
على سبيل المثال، تطبيق يستخدم الطبقة الوسيطة (middleware) لخدمة طلبات البيانات بين المستخدم وقاعدة البيانات تستخدم بنية متعددة المستويات.الاستخدام الأكثر انتشارا لـ "بنية متعددة الطبقات" هو بنية ذات ثلاثة مستويات أو طبقات.
مفهومي الطبقة والمستوى(layer and tier) لهما نفس المعنى ويستخدمان بالتبادل. ولكن يوجد وجهات نظر ترى أن هناك فرقاً بين المصطلحين، وأن طبقة (layer) هو بناء منطقي للعناصر التي تكون حلول البرمجيات، في حين أن الطبقة(tier)هي ميكانيكية للبناء المادي للبنية التحتية للنظام.
'ثلاثية الطبقات' هي بنية تطبق أسلوب عميل - خادم فيها واجهة المستخدم، منطق العمليات الوظيفية ("قواعد العمل")، مخزن البيانات على الحواسيب، وإجراءات الوصول إلى البيانات، كل هذه تطور وتعدل كوحدات مستقلة ،و في معظم الأحيان على منصات مستقلة. طُورت هذه البنية بواسطة جون يوسف دونوفان في شركة البيئة المفتوحة Open Environment Corporation أو (OEC)، وهي شركة لإنتاج الأدوات أسسها في مدينة كامبريدج بولاية ماساتشوستس الأمريكية.
يعتبر نموذج الطبقات الثلاث من ضمن بنى البرامج وأنماط تصميم البرمجيات.
وبصرف النظر عن المزايا المعتادة للبرمجيات التركيبية المعيارية ذات الواجهات، بنية المستويات الثلاثة تهدف إتاحة الفرصة لأي من الطبقات أو المستويات الثلاث ليتعين تحسينها أو استبدالها بصورة مستقلة عن احتياجات أو تغييرات التكنولوجية في الطبقات الأخرى.على سبيل المثال، تغير نظام التشغيل في طبقة العرض تؤثر فقط على برنامج واجهة المستخدم.
عادة، واجهة المستخدم تعمل على جهاز الكمبيوتر المكتبي أو محطة عمل وتستخدم واجهة المستخدم الرسومية المعيارية، ومنطق العمليات الوظيفية يمكن أن تتكون من وحدة واحدة أو عدة وحدات منفصلة تعمل على محطة عمل أو خادم (معلوماتية) تطبيقات، ونظم إدارة قواعد البيانات العلائقية RDBMS على خادم قاعدة البيانات أو جهاز مركزي يحتوي على الإجراءات المنطقية الخاصة بتخزين البيانات. وقد تكون الطبقة الوسطى متعددة المستويات في حد ذاتها (في هذه الحالة، فإن البنية الكلية تسمى "البنية متعددة الطبقات").
العمارة ثلاثية الطبقات تحتوي على الطبقات الثلاث التالية:
وهذا هو المستوى الأعلى من التطبيق. طبقة العرض تعرض المعلومات المتعلقة بالخدمات مثل تصفح البضائع، وشرائها، ومحتويات عربة التسوق. وتتصل بالطبقات الأخرى عن طريق إخراج النتائج إلى طبقة المتصفح / العميل وجميع الطبقات الأخرى في الشبكة.
طبقة التطبيق (منطق الأعمال، طبقة المنطق، طبقة الوصول للبيانات، أو الطبقى الوسطى) فصلت عن طبقة العرض، باعتبارها طبقة مستقلة بذاتها، وهي تتحكم بوظيفة التطبيق عن طريق أداء معالجة تفصيلية.
هذه الطبقة تتكون من خوادم قاعدة البيانات. هنا يتم تخزين المعلومات واسترجاعها. هذه الطبقة تحتفظ بالبيانات محايدة ومستقلة عن خوادم التطبيقات أو منطق الأعمال. إعطاء البيانات الطبقة الخاصة بها يسهم في تحسين الأداء وتطويره.
للوهلة الأولى، تبدو المستويات الثلاثة مشابهة لـ MVC (متحكم بنموذج الرؤية)، ولكنها طبوغرافياً مختلفة.والقاعدة الأساسية في بنية المستويات الثلاثة هي أن طبقة العميل لا تتصل مباشرة بطبقة البيانات؛ ويجب أن تمر خلال طبقة وسيطة. بالمفهوم فإن بنية الثلاث طبقات أو الثلاث مستويات هي بنية خطية. ولكن بنية الـ MVC هي ثلاثية : العارض يرسل التحديثات للمتحكم، والمتحكم يحدث النموذج، والعارض يتم تحديثه مباشرة من النموذج.
من منظور تاريخي فإن بنية المستويات الثلاثة ظهرت في التسعينات (1990) من قبل الملاحظات للأنظمة الموزعة (على سبيل المثال، تطبيقات الويب) حيث أن طبقة العميل وطبقة البيانات والطبقة الوسطية بينهما تشتغل على منصات منفصلة مادياً.بينما ظهرت MVC في العقد السابق (عن طريق العمل في شركة زيروكس بارك في أواخر 1970 واوائل عام 1980)، وهي تستند على الملاحظات من التطبيقات التي تدار على محطة عمل رسومية واحدة؛ فيما بعد طبقت MVC على النظم الموزعة.
في مجال تطوير الشبكة العالمية، مصطلح المستويات الثلاثة غالباً يستخدم للإشارة إلى المواقع، وهي عادة مواقع التجارة الالكترونية، والتي تم بناؤها باستخدام مفهوم المستويات الثلاثة :
نقل البيانات بين الطبقات هو جزء من البنية. البروتوكولات المستخدمة قد تشمل واحدا أو أكثر من :SNMP، CORBA، Java RMI، .NET Remoting، Windows Communication Foundation, sockets، UDP، خدمات ويب أو بروتوكولات أخرى معيارية أو مملوكة .في كثير من الأحيان الطبقة الوسطية تستخدم لربط طبقات منفصلة.الطبقات المنفصلة في كثير من الأحيان (ولكن ليس بالضرورة) تعمل على خوادم منفصلة ماديا، وكل طبقة وحدها قد تعمل على الكتلة.