الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ايش معنى N-tier و Single-Tier وMulti-Tier برمجيا

مغلق
بدأه محمد بدوي في 19 أغسطس 2001 · 6 رد · 7,332 مشاهدة · في قسم الدروس والمواضيع الهامة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السؤال يقول

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

N-tir

أو

single-tier

او

multi-tier

او

no tier

ايش الجوا وايش معنى هذه الحلول

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#2

بعد السلام عيلك يبدو يامحمد انك بدات في الكتاب الثاني هل نجحت اتمنى ذلك ولكن بخصوص سؤالك اقول

1- ليس هناك ما يسمى بال no tier لانه على الاقل لابد ان يكون هناك single tier

2 - والsingle tier هي لو اردت ان تنشا تطبيق بالفيجوالبيسك فانك تضع التطبيق وقاعدة البيانات والدوال المستخدمه لمخاطبة قاعدة البيانات كلها معنا على جهاز واحد.

3 - two tier فيه يكون يكون التطبيق الذي انشاته في الفيجوال بالاضافة الى الدوال او component على جهاز والبنات المتداولة على جهاز اخر وهذة الطريقة تفضل عندما عدد المستخدمين لايتعدى ال 100 مستخدم ولكن اذاتجاوز عدد المستخدمين ال 100 معنى ذلك انك ستخدل في مشاكل كثيرة.

4 - multi-tier or n-tier حيث لافرق بينهما اخي الكريم فهي بالتاكيد افضل الطرق اذا كانت لدى مؤسسة كبيرة وهنا يتم الفصل الكلي ما بين ما بين الاapplication او ما يسمى بال user interface وهي عبارة عن اي نموزج(form) في الفيجوال عن الbusiness وكذلك عن ال data حيث كلامنهم يكون على جهاز منفصل وذلك ادع لاحتياطات امان عالية المستوى

ولك حبي وتقديري

واذاكنت تريد المزيد فارسل على اميلي

#3

أخي محمد ،

سوف أشرح لك ذلك بشكل عام من غير الدخول في لغة معينة لأن هذا الموضوع ليس علاقة بلغة معينة بقدر ما لع علاقة ببنية البرامج ..

أولا مايكروسوفت اعتبرت أن هناك ثلاث أنواع لبنية البرامج وهي : desktop و 2-tier و 3-tier ..

سوف أبدء بشرح كل واحدة بالتفصيل ومن ثم سوف أشرح ال N-tier والفرق بينها وبين ال 3-tier ..:

بنية تطبيقات ال desktop:

=========================

هذا النوع من البرامج هو الأكثر انتشارا بين التطبيقات الحالية وهو يتضمن كل مايريده البرنامج في نفس الكمبيوتر . إن كل طبقات البرنامج تكون موجودة هنا في جهاز طرفي بالإضافة إلى قواعد البيانات . عندما تكون قواعد البيانات في جهاز آخر فلا يعتبر هذا التطبيق desktop بل يمكن أن يكون 2-tier .

إن الطبقات هذه هي عبارة عن واجهة البرنامج User Interface و قوانين العمل Business Logic Rules و طبقة الوصول إلى قواعد البيانات Database Acess Logic . معظم تطبيقات الdesktop لا تحتوي على فصل واضح بين هذه الطبقات مما يجعل نقل هذه التطبيقات إلى برامج موزعة صعب جدا distribted .

بنية تطبيقات ال 2-tier :

========================

أي تطبيق يصل إلى قواعد بيانات بعيدة هو على الحد الأدنى تطبيق 2-tier . طبعا هذا النوع من قواعد البيانات يمكن الوصول له عن طريق أي واجهة برمجية لقواعد البانات من نوع client/server مثل ADO و RDO و ODBC و غيرها ..

إن تحويل أي برنامج desktop إلى 2-tier هي عملية سهلة جدا في حالة كنت تستخدم الواجهات السابقة ، وذلك بعد تعديل بسيط في مصدر قواعد البيانات ليصبح البرنامج 2-tier . يعني قد يكون هناك برنامج desktop ولكنه يعتمد على تقنية ال 2-tier ؟؟ وهنا وقعنا في مشكلة وهي هل هذا التقسيم يعتمد على التركبة الفيزيائية أو المنطقية لتقسيم البرنامج ! أي هل يجب أن تكون قواعد البيانات في جهاز منفصل حتى نسمي التطبيق 2-tier .. في الحقيقة الخبراء رفضوا في أنها تعتمد على البنية المنطقية ولكن العدد الكبير من المطورين بداو يقرو من أن n-tier هي تعبير للبنية المنقية للبرنامج وليس الفيزيائية . فعلى سبيل المثال يمكن وضع كل مكونات تطبيق ال 3-tier بالاضافة إلى قواعد البيانات على جهاز واحد . إن بناء مثل هذه الحالة السابقة لا يجعل برنامج desktop ، لأنه ممكن أن تتحول إلى 3-tier من غير أي تعديل.

بنية تطبيقات ال 3-tier :

=========================

بعض الشركات تحتوي على قواعد وقوانين قد تتغير باستمرار لذا يفضل وضع هذه القواعد في طبقة منفصلة حتى يسهل تغييرها في أي وقت من غير أن تؤثر على باقي الطبقات . هذه الطبقة التي توضع في المنتصف بين ال UserInterface و Database تسمى ب Business Logic . وهذه الطبقة يجب أن تكون مع قواعد البيانات على ال server لتسهل عملية تعديلها في أي وقت .

طبعا من أجل أن قواعد البيانات وال business logic موجودة في ال server و ال UserInterface موجود في الجهاز الطرفي ، فإنه توجد العديد من طرق الاتصال بينهما مثل استخدام ال TCP/IP Socket و named pipes ، وغيرها .. ولكن الأفضل هنا هو استخدام ال DCOM أو Distributed COM . والأفضل بكثير هو استخدام DCOM ضمن بيئة MTS في طرف السيرفر مما يعطي بيئة ممتازة جدا من أجل واجهات ال DCOM مثل التحكم في security و shared resources و transactions و و ..

طبعا بما أنه دخلت الشبكة في الموضوع ومن المعروف بطئ الشبكة في حمل كميات كبيرة من البيانات فيجب تقليل عمليت الطلب والأخذ من السيرفر إلى أقل مايمكن وهذا مايسمى بالدوران أو round-trip .. لذلك يجب أن تكون ال businiss logic في السيرفر مع قواعد البيانات ويجب أن تحتوي على توابع ووظائف تجمع أكثر من عملية في وقت واحد وهذه الطبقة لا تحتوي على متحولات لحالة الطلب أي أن تكون stateless ، وتتميز هذه الطبقة في أن توابعها تتميز بالعدد الهائل من بارامتراتها وذلك كما قلت لأنها تجمع أكثر من وظيفة في تابع واحد . ولكن تصور أنك في برامج ال UI تستدعي توابع ب20 بارامتر . هذا الأمر غير مستحسن أبدا .. وهذا ما ينقلنا إلى البنية التي تلي.

بنية تطبيقات ال n-tier:

========================

بفرض أنه تم وضع طبقة أخرى بين الطبقات السابقة ، هل سنسمي هذي البنية 4-tier ؟ في الحقيقة اعتبر المطورين أن أي طبقة تضاف إلى بنية ال 3-tier على أنها بنية n-tier .. وهذه الطبقة الجديدة التي أضفناها إلى البنية السابقة هي ضرورية من أجل التعامل مع بنية ال buisness logic التي تكون stateless وتحتوي على توابع ذات بارامترات كثيرة . هذه الطبقة التي توزع مع البرنامج الطرفي تسهل من عملية البرمة والوصول إلى ال business logic حيث تحتوي هذه الطبقة على objects عديدة وجميعها يحتوي على methods و properties اي أنها statefull .. وهي جدا مريحة من أجل مبرمجين الobject oriented الذين يصعب عليهم التعامل معى كائنات ال business logic . تسمى هذه الطبقة الجديدة التي تعتبر مثل غلاف لكائنات ال business logic ب Object Model وهي بالعادة ما تكون عن COM ..

الملخص :

+++++++++

إن أكثر التطبيقات المنتشرة في الشركات الكبيرة هي من نوع N-Tier وذلك لفائدتها وللتسهيلات التي تعطيها في نشر عمل الشركة عبر برامج ال client و الانترنت .

بيمكن عمل صفحة ASP تتصل بطبقة ال business Logic ويمكن عمل تطبيقات UI تستخدم ال Object Model من أجل الوصول إلى ال Business Logic . وطبعا يمكن تغيير ال DCOM في الbusiness Logic من أجل وضع قوانين جديدة للعمل ...

وسوف أعطيك هذا المثال على تطبيق n-tier :

  • database في السيرفر مبنية باستخدام MS SQL Server .
  • قوانين العمل وهي DCOM موجودة داخل MTS في طرف السيرفر مع قاعدة البيانات
  • Object Model من نوع COM توزع مع ال UI وهي تتصل مع ال DCOM في السيرفر
  • UI يستخدم ال Object Model في الوصول إلى قواعد البيانات .
  • قد تكون هناك صفحة ASP تستخدم ال business logic .

وهذا الذي استطعت أن أعطيك إياه وإذا في خطأ أو نقصان أرجو من أحد الأخوة أن يزيد أو يصحح ... :)

Coding on the Cloud and for the Cloud!

My Blog

#4

شكرا لكم اخواني جدا بصراحه الشرح كفى ووفى وحتى انه بعد ما فهمت الموضوع عرفت اجاوب على اسئله اكثر

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#5

أخي محمود هلا راجعت بريدك فلقد طلبت منك اي اسئلة حول هذا الاختبار وشكرا

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#6

ماشاء الله جزاكم الله خيرا على هذا الموضوع القيم

فلسطين الزاهية بألوان الحب والسلام

ذلك الطعم الزيتوني الذي يتدفق عسلاً من أفواه بساتينها وحدائقها

تشتاق إليها نفوس المتقين وترنوا للسجود فيها جباه المسلمين

#7

موضوع رائع وفعلا متقدم :lol:

وشكرا لكم (h)

مع تحيات : عبدالرحمن نورالله
بيلار الدولية للتكنولوجيا لتصميم وأستضافة مواقع الأنترنت ، شركة مسجلة في المملكة الاردنية الهاشمية

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

هذا الموضوع مغلق.

مواضيع مشابهة