جهة البرنامج

الجهتان الأمامية والخلفية هما جانبان لكل برنامج من برامج الحاسوب. تفصل العلاقة بين طبقة العرض (الجهة الأمامية)، وطبقة الوصول إلى البيانات (الجهة الخلفية) في البرنامج، أو ما يسمى البنية التحتية المادية أو الكيان المادي.[1][2][3] في نموذج الخادم والعميل، يعتبر العميل عادة الواجهة الأمامية، وعادة ما يعتبر الخادم الجهة الخلفية، حتى عندما يتم تنفيذ بعض أعمال العرض فعلا على الملقم.

المقدمةعدل

في هندسة البرمجيات، قد يكون هناك العديد من الطبقات بين الجهاز والمستخدم النهائي. يمكن التحدث عن كل منها بأنها لها واجهة أمامية ونهاية خلفية. الواجهة عبارة عن لوحة تجريدية، حيث تعمل على تبسيط المكون الأساسي من خلال توفير واجهة سهلة الاستخدام، بينما يتعامل الجزء الخلفي عادةً مع منطق الأعمال وتخزين البيانات.

في مجال الاتصالات، يمكن اعتبار الواجهة بمثابة جهاز أو خدمة، في حين أن الجزء الخلفي هو البنية التحتية التي تدعم توفير الخدمة.

قاعدة الإبهام هي أن جانب العميل (أو "الواجهة الأمامية") هو أي مكون يتم معالجته بواسطة المستخدم. جانب الخادم (أو "النهاية الخلفية") هو الكود الموجود عادةً على الخادم، وغالبًا ما يتم إزالته فعليًا من المستخدم.

تعريفات البرمجياتعدل

في أنظمة إدارة المحتوى، قد تشير المصطلحات الأمامية والخلفية إلى وجهات نظر المستخدم النهائي التي تواجه CMS والآراء الإدارية، على التوالي [4]. في تركيب الكلام، تشير النهاية الأمامية إلى جزء من نظام التوليف الذي يحول نص الإدخال إلى تمثيل صوتي رمزي، وتحول النهاية الخلفية التمثيل الصوتي الرمزي إلى أصوات فعلية[5]. بالنسبة للأنظمة الفرعية الرئيسية للكمبيوتر، تعد إدارة الملفات الرسومية بمثابة واجهة أمامية لنظام ملفات الكمبيوتر، وواجهة shell مع نظام التشغيل. تواجه الواجهة الأمامية المستخدم، بينما تقوم الواجهة الخلفية بتشغيل برامج نظام التشغيل استجابةً لذلك. في برامج التحويل البرمجي، تقوم الواجهة الأمامية بترجمة شفرة مصدر برمجة الكمبيوتر إلى تمثيل وسيط، وتعمل الواجهة الخلفية مع التمثيل الوسيط لإنتاج رمز بلغة إخراج الكمبيوتر. عادةً ما يتم تحسين الواجهة الخلفية لإنتاج رمز يعمل بشكل أسرع. يمكن للفرق الأمامي / الخلفي أن يفصل بين قسم المحلل اللغوي الذي يتعامل مع شفرة المصدر والطرف الخلفي الذي يولد الكود ويحسنه. تقدم بعض التصميمات، مثل GCC، خيارات بين نهايات أمامية متعددة (تحليل لغات المصدر المختلفة) أو نهايات خلفية (إنشاء كود لمعالجات هدف مختلفة) [6]. يتطلب استخدام واجهة سطر الأوامر (CLI) الحصول على مصطلحات خاصة وحفظ الأوامر، وبالتالي فإن واجهة المستخدم الرسومية (GUI) تعمل كبيئة سطح مكتب أمامية بدلاً من ذلك.

تطوير الويب كمثالعدل

هناك طريقة أخرى لفهم الفرق بين الاثنين وهي فهم المعرفة المطلوبة من مطور برامج الواجهة الأمامية. تركز القائمة أدناه على تطوير الويب كمثال.


كلاهماعدل

تركز الواجهة الأماميةعدل

تركز الخلفيةعدل

لاحظ أن كلتا المواضع، على الرغم من إمكانية العمل على منتج واحد، لديها مجموعة مميزة للغاية من المهارات.

تعريفات الأجهزةعدل

في حوسبة الشبكة، يمكن أن تشير الواجهة الأمامية إلى أي جهاز يعمل على تحسين حركة مرور الشبكة أو حمايتها[7] . يُطلق عليه اسم الجهاز للواجهة الأمامية للتطبيق لأنه يتم وضعه على الواجهة أو الحدود الخارجية للشبكة. تمر حركة مرور الشبكة عبر الأجهزة الأمامية قبل الدخول إلى الشبكة.

في تصميم المعالج، سيكون تصميم الواجهة الأمامية هو الوصف الأولي لسلوك الدائرة في لغة وصف الأجهزة مثل Verilog، في حين أن التصميم الخلفي سيكون عملية تعيين هذا السلوك إلى الترانزستورات المادية عند الموت[8].

انظر ايضاًعدل

المراجععدل

مراجععدل

  1. ^ Gutierrez-Osuna، Ricardo. "L18: Speech synthesis (back end)" (PDF). tamu.edu. Texas A&M University. مؤرشف من الأصل (PDF) في 14 فبراير 2019. اطلع عليه بتاريخ 29 ديسمبر 2016. 
  2. ^ "Front-End Design | Online Documentation for Altium Products". techdocs.altium.com. مؤرشف من الأصل في 30 يونيو 2019. اطلع عليه بتاريخ 30 ديسمبر 2016. 
  3. ^ Thapliyal، Vimal. "Difference Between Frontend and Backend MVC – Joomlatuts". joomlatuts.net. مؤرشف من الأصل في 11 مارس 2018. اطلع عليه بتاريخ 30 ديسمبر 2016. 
  4. ^ Thapliyal، Vimal. "Difference Between Frontend and Backend MVC – Joomlatuts". joomlatuts.net. مؤرشف من الأصل في 11 مارس 2018. اطلع عليه بتاريخ 30 ديسمبر 2016. 
  5. ^ Gutierrez--Osuna، Ricardo. "L18: Speech synthesis (back end)" (PDF). tamu.edu. Texas A&M University. مؤرشف من الأصل (PDF) في 8 سبتمبر 2017. اطلع عليه بتاريخ 29 ديسمبر 2016. 
  6. ^ Bin Muhammad، Rashid. "Operating Systems Notes". www.personal.kent.edu. Kent State University. مؤرشف من الأصل في 31 أغسطس 2018. اطلع عليه بتاريخ 30 ديسمبر 2016. 
  7. ^ O'Dell، Mike. "Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM". cacm.acm.org. مؤرشف من الأصل في 30 ديسمبر 2016. اطلع عليه بتاريخ 30 ديسمبر 2016. 
  8. ^ "Front-End Design | Online Documentation for Altium Products". techdocs.altium.com. مؤرشف من الأصل في 27 مارس 2019. اطلع عليه بتاريخ 30 ديسمبر 2016.