Saturday, February 16, 2013

Three Layer Architecture Part I معمارية الطبقات الثلاث

المقدمة

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

المحتوى

Layer Architecture :
وهي معمارية توجد ضمن التصنيف الهيكلي Structure , تعمل على تقليل الأقتران (loose coupling) مابين الطبقات من خلال عزل الأكواد في طبقات مستقلة مما يعطي أمكانية تغليف المعلومات الداخلية داخل كل طبقة وعدم كشفها الى الطبقات الأخرى.تعتبر هذه المعمارية من المعماريات المهمة وذلك لأنها تضمن سهولة الصيانة وألأختبار وأيجاد الأخطاء بسهولة   بسبب تحديد الأكواد ضمن طبقات محددة, وتوفر هذه المعمارية مبدأ الأستقلالية مابين الطبقات بحيث يمكنك ان تظيف مكون معين لأحد الطبقات من دون التأثير على الطبقات الأخرى.تحوي معمارية الطبقات على ثلاث طبقات أساسية أنظر الرسم التالي:
 


1 - طبقة العرض (PL):
وهي الطبقة التي تمثل الواجهة الرسومية GUI والتي يتعامل معها المستخدم بصورة مباشرة , وتكون هذه الطبقة على عدة أنواع حسب نوعية التطبيق فأذا كان التطبيق عبارة عن Web فتكون هذه الطبقة مبنية بتقنية Asp .Net او Silverlight اما أذا كان التطبيق مخصص لتطبيقات ويندوز فتكون هذه الطبقة مبنية بتقنية WPF او WinForm 

2 - طبقة التطبيق (BL):
وهي نواة التطبيق تحوي على جميع الأوامر والوظائف المنطقية التي تحدد سير العمليات المنطقية وتحدد تدفق العمل , تعتبر هذه الطبقة كطبقة وسيطة بين المستخدم الذي يتعامل مع طبقة العرض  وطبقةالوصول الى البيانات التي تتعامل مع قاعدة البيانات. طبقة BL تمنع طبقة العرض PL من الوصول المباشر الى طبقة الوصول الى البيانات DAL مما يزيد من أمنية التطبيق.يعتمد بناء هذه الطبقة على مدى تعقيد الوظائف المنطقية والتطبيقية للنظام ويمكنك أن تعتمد على تقنيات تساعدك في بناءهذه الطبقة ومنها تقنية تدفق العمل Work Flow .

3 - طبقة الوصول الى البيانات (DAL):
وهي الطبقة التي تحوي على عمليات التعامل مع البيانات من خلال الأرجاع والأرسال والتحديث والوصول الأمن الى مخزن البيانات , وهناك عدة تقنيات لبناء هذه الطبقة التي تساعدنا الى الوصول الى قواعدة البيانات ومن هذه التقنيات Entity framework , NHibernate وهي تقنيات تمثل جسر بين لغات الكائنية المنحى OOP وقواعد البيانات العلائقية RDB ,وتدخل هذه التقنيات ضمن منهجية Object Relation Mapping ORM.

ملاحظة 
يمكنك أن تقوم بأضافة طبقة أخرة تدعى Service Layer SL , وذلك عندما يتعامل تطبيقك مع بيانات وخدمات موجودة على الغيمة Cloud او تطبيقات أخرى , او عندما تزود خدمات الى تطبيقات أخرى.ويمكنك أن تستخدم تقنية Windows Communication Foundation WCF لبناء هذه الطبقة.


الفرق بين الطبقات layers والمستويات tiers :

layers :هي توصف المجموعة المنطقية التي تتألف من الوظائف والمكونات في التطبيق واقصد أنها تمثل الطبقات المنطقية مثل PL,BL,DAL  التي أوضحناها سابقا.

 tiers : توصف التوزيع الفيزيائي واقصد توزيع المكونات على السيرفرات والشبكات, فعندما نقوم ببناء الطبقات الثلاث Layers فأنك بالفعل تقوم بخلق ثلاث صيغ Dynamic-link library فكل طبقة سوف تحوي على dll خاص بها فأذا قمت بنشر ملفات dll على جهاز واحد فأنك عملت مستوى واحد 1tier لكن أذا نشرت كل dll على جهاز حاسوب فأنك حققت معمارية 3tier وهي أيضا معمارية مهمة تصنف ضمن تصنيف النشر والتوزيع Deployment ويمكنك أضافة الكثير من المستويات وأقصد السيرفرات . 
أذن layers هو توزيع الأكواد والمكونات والوظائف على طبقات في التطبيق لتسهيل الصيانة وتقليل تكرار الكود وسهولة الأختبار أما tires هو عزل الطبقات layers على سيرفرات لأجل تقليل العبأ على السيرفر وسهولة الصيانة وتحقيق المرونة العاليةاضافةالى الوصول للأمثلية

في المقالة القادمة سوف نركز على تطبيق معمارية الطبقات الثلاث .

No comments:

Post a Comment