إطار عمل الويب
إطار عمل الويب ( WF )، أو إطار عمل تطبيقات الويب ( WAF )، أو إطار عمل تطوير الويب، هو إطار برمجي مصمم لدعم تطوير تطبيقات الويب ، بما في ذلك خدمات الويب وموارد الويب وواجهات برمجة تطبيقات الويب (APIs ). توفر أطر عمل الويب طريقة قياسية لبناء تطبيقات الويب ونشرها على شبكة الإنترنت العالمية . وتهدف إلى أتمتة العمليات الإضافية المرتبطة بالأنشطة الشائعة في تطوير الويب . على سبيل المثال، توفر العديد من أطر عمل الويب مكتبات للوصول إلى قواعد البيانات ، وأطر عمل القوالب، وإدارة الجلسات ، وغالبًا ما تشجع على إعادة استخدام التعليمات البرمجية . [ 1 ] على الرغم من أنها تستهدف في الغالب تطوير مواقع الويب الديناميكية ، إلا أنها قابلة للتطبيق أيضًا على مواقع الويب الثابتة . [ 2 ]
تاريخ
بما أن تصميم شبكة الويب العالمية لم يكن ديناميكيًا بطبيعته، فقد كانت النصوص التشعبية المبكرة تتألف من ملفات نصية مكتوبة بلغة HTML تُنشر على خوادم الويب . وكان على مؤلفي الصفحات إجراء أي تعديلات عليها. وفي عام 1993، طُرح معيار واجهة البوابة العامة (CGI) لربط التطبيقات الخارجية بخوادم الويب، بهدف توفير صفحة ويب ديناميكية تعكس مدخلات المستخدم. [ 3 ]
كانت التطبيقات الأصلية لواجهة CGI تؤثر سلبًا على حمل الخادم، لأن كل طلب كان يبدأ عملية منفصلة . [ 4 ] أما التطبيقات الأحدث فتستخدم العمليات المستمرة، من بين تقنيات أخرى، لتقليل استهلاك موارد الخادم وتحسين الأداء بشكل عام.
في عام 1995، ظهرت بيئات تطوير الخادم/اللغة المتكاملة بالكامل لأول مرة وتم تقديم لغات جديدة خاصة بالويب، مثل ColdFusion و PHP و Active Server Pages .
على الرغم من أن الغالبية العظمى من لغات إنشاء صفحات الويب الديناميكية تحتوي على مكتبات للمساعدة في المهام الشائعة، إلا أن تطبيقات الويب غالباً ما تتطلب مكتبات محددة لمهام معينة، مثل إنشاء HTML (على سبيل المثال، Jakarta Faces ).
في أواخر التسعينيات، بدأت تظهر أطر عمل ناضجة و"كاملة المكدس"، والتي غالباً ما جمعت مكتبات متعددة مفيدة لتطوير الويب في حزمة برمجية متماسكة واحدة ليستخدمها مطورو الويب.
أنواع بنى الأطر
تعتمد معظم أطر عمل الويب على نمط النموذج-العرض-المتحكم (MVC) .
نموذج-عرض-متحكم (MVC)
تتبع العديد من أطر العمل نمط MVC المعماري لفصل نموذج البيانات إلى قواعد العمل (المتحكم) وواجهة المستخدم (العرض). يُعتبر هذا عمومًا ممارسة جيدة لأنه يُقسّم الشيفرة البرمجية إلى وحدات ، ويُعزز إعادة استخدامها ، ويسمح بتطبيق واجهات متعددة. في تطبيقات الويب، يُتيح ذلك عرض طرق عرض مختلفة، على سبيل المثال، عرض صفحات ويب مختلفة لمتصفحات الجوال ومتصفحات سطح المكتب، أو توفير واجهات خدمة ويب قابلة للقراءة آليًا .
الدفع مقابل السحب
تتبع معظم أطر عمل MVC بنيةً قائمة على الدفع، تُعرف أيضًا باسم "البنية القائمة على الإجراءات". تستخدم هذه الأطر إجراءاتٍ تُجري المعالجة المطلوبة، ثم "تدفع" البيانات إلى طبقة العرض لعرض النتائج. [ 5 ] ويُعدّ نموذج "البنية القائمة على السحب" بديلاً لهذه البنية، ويُطلق عليه أحيانًا "البنية القائمة على المكونات". تبدأ هذه الأطر بطبقة العرض، التي يمكنها "سحب" النتائج من وحدات تحكم متعددة حسب الحاجة. في هذه البنية، يمكن أن تشارك وحدات تحكم متعددة في عرض واحد.
منظمة ثلاثية المستويات
في بنية الأنظمة ثلاثية الطبقات ، تُبنى التطبيقات حول ثلاث طبقات مادية: العميل، والتطبيق، وقاعدة البيانات. [ 6 ] [ 7 ] [ 8 ] [ 9 ] عادةً ما تكون قاعدة البيانات نظام إدارة قواعد بيانات علائقية (RDBMS) . يحتوي التطبيق على منطق الأعمال، ويعمل على خادم، ويتواصل مع العميل باستخدام بروتوكول HTTP . [ 10 ] في تطبيقات الويب، يكون العميل متصفح ويب يعرض صفحات HTML التي تُنشئها طبقة التطبيق. [ 11 ] [ 12 ] يجب عدم الخلط بين هذا المصطلح ونمط MVC، حيث يُعتبر، على عكس بنية الأنظمة ثلاثية الطبقات، من الممارسات الجيدة إبقاء منطق الأعمال بعيدًا عن وحدة التحكم، أي "الطبقة الوسطى". [ 13 ] [ 14 ]
تطبيقات الإطار
تم تصميم الأطر البرمجية لدعم بناء تطبيقات الإنترنت باستخدام لغة برمجة واحدة، وتتراوح في تركيزها من الأدوات العامة مثل Zend Framework وRuby on Rails، التي تعزز قدرات لغة معينة، إلى الحزم البرمجية المكتوبة بلغة أصلية والمبنية حول تطبيق مستخدم محدد، مثل أنظمة إدارة المحتوى (CMS) وبعض أدوات تطوير تطبيقات الجوال وبعض أدوات البوابات الإلكترونية. [ 15 ]
أطر عمل مواقع الويب ذات الأغراض العامة
يجب أن تعمل أطر عمل الويب وفقًا للقواعد المعمارية للمتصفحات والبروتوكولات مثل HTTP ، وهو بروتوكول عديم الحالة . تُقدَّم صفحات الويب من خادم ، ويمكن للمتصفح تعديلها باستخدام جافا سكريبت . ولكل من الطريقتين مزاياها وعيوبها.
تتطلب تغييرات الصفحة من جانب الخادم عادةً إعادة تحميل الصفحة، لكنها تتيح استخدام أي لغة برمجة والاستفادة من قدرة حاسوبية أكبر. أما تغييرات جانب العميل فتتيح تحديث الصفحة على دفعات صغيرة، ما يُشبه تطبيقات سطح المكتب، لكنها تقتصر على جافا سكريبت وتُنفذ في متصفح المستخدم، الذي قد تكون قدرته الحاسوبية محدودة. ويُستخدم عادةً مزيج من الطريقتين. [ 16 ] تُسمى التطبيقات التي تستخدم جافا سكريبت بكثافة وتُعيد تحميل أجزاء فقط من الصفحة بتطبيقات الصفحة الواحدة ، وتستخدم عادةً إطار عمل جافا سكريبت من جانب العميل لتنظيم الكود.
جانب الخادم
جانب العميل
وتشمل الأمثلة Backbone.js و AngularJS و Angular و Ember.js و ReactJS و jQuery UI و Svelte و Vue.js. [ 17 ]
القدرات والمفاضلات في الأطر الحديثة
توفر أطر عمل تطبيقات الويب القائمة على جافا سكريبت، مثل React وVue، إمكانيات واسعة، ولكنها تأتي مصحوبة ببعض التنازلات. غالبًا ما تُوسّع هذه الأطر أو تُحسّن الميزات المتاحة من خلال تقنيات الويب الأصلية، مثل التوجيه، والتطوير القائم على المكونات، وإدارة الحالة. على الرغم من التطور الكبير الذي شهدته معايير الويب الأصلية، بما في ذلك مكونات الويب، وواجهات برمجة تطبيقات جافا سكريبت الحديثة مثل Fetch ووحدات ES، وإمكانيات المتصفح مثل Shadow DOM، إلا أن أطر العمل لا تزال شائعة الاستخدام لقدرتها على تعزيز إنتاجية المطورين، وتوفير أنماط مُهيكلة للتطبيقات واسعة النطاق، وتبسيط التعامل مع الحالات الشاذة، وتوفير أدوات لتحسين الأداء. [ 18 ] [ 19 ] [ 20 ]
قد تُضيف الأطر البرمجية طبقات تجريدية تُساهم في زيادة الحمل على الأداء، وحجم الحزم، والتعقيد. تعالج الأطر الحديثة، مثل React 18 وVue 3، هذه التحديات بميزات مثل العرض المتزامن، وتقنية Tree Shaking، والترطيب الانتقائي. ورغم أن هذه التطورات تُحسّن كفاءة العرض وإدارة الموارد، إلا أن فوائدها تعتمد على التطبيق المحدد وسياق التنفيذ. تتبنى الأطر الخفيفة، مثل Svelte وPreact، مناهج معمارية مختلفة؛ إذ يُلغي Svelte نموذج DOM الافتراضي تمامًا لصالح تجميع المكونات إلى كود JavaScript فعال، بينما يُقدم Preact بديلاً بسيطًا ومتوافقًا مع React. يعتمد اختيار الإطار البرمجي على متطلبات التطبيق، بما في ذلك خبرة الفريق، وأهداف الأداء، وأولويات التطوير. [ 18 ] [ 19 ] [ 20 ]
تستفيد فئة جديدة من أطر عمل الويب، تشمل enhance.dev وAstro وFresh، من معايير الويب الأصلية مع تقليل التجريدات وأدوات التطوير. [ 21 ] [ 22 ] [ 23 ] تركز هذه الحلول على التحسين التدريجي ، والعرض من جانب الخادم ، وتحسين الأداء. يعرض Astro صفحات HTML ثابتة افتراضيًا مع تحديث الأجزاء التفاعلية فقط. يركز Fresh على العرض من جانب الخادم دون أي تكلفة إضافية أثناء التشغيل. يعطي Enhance.dev الأولوية لأنماط التحسين التدريجي باستخدام مكونات الويب. على الرغم من أن هذه الأدوات تقلل الاعتماد على جافا سكريبت من جانب العميل عن طريق نقل المنطق إلى وقت الإنشاء أو التنفيذ من جانب الخادم، إلا أنها لا تزال تستخدم جافا سكريبت عند الضرورة للتفاعل. هذا النهج يجعلها مناسبة بشكل خاص للتطبيقات الحساسة للأداء والتطبيقات التي تركز على المحتوى. [ 18 ] [ 19 ] [ 20 ]
سمات
تُحدد الأطر البرمجية عادةً مسار التحكم في البرنامج، وتُمكّن مستخدم الإطار من التفاعل مع هذا المسار من خلال عرض أحداث متنوعة. [ 24 ] يُعتبر نمط تصميم " انعكاس التحكم " مبدأً أساسيًا في الأطر البرمجية، ويُفيد الكود من خلال فرض مسار مشترك للفريق، يُمكن للجميع تخصيصه بطرق متشابهة. [ 24 ] على سبيل المثال، تسمح بعض الأطر البرمجية المصغّرة الشائعة، مثل Sinatra في Ruby (التي استُلهم منها Express.js )، بربط "البرمجيات الوسيطة" قبل وبعد طلبات HTTP. يُمكن أن تكون وظائف البرمجيات الوسيطة هذه أي شيء، وتُمكّن المستخدم من تحديد التسجيل، والمصادقة، وإدارة الجلسات، وإعادة التوجيه. [ 25 ]
أنظمة قوالب الويب
التخزين المؤقت
التخزين المؤقت للويب هو عملية تخزين مؤقتة لمستندات الويب بهدف تقليل استهلاك النطاق الترددي ، وحمل الخادم ، والتأخير الملحوظ . يخزن التخزين المؤقت للويب نسخًا من المستندات التي تمر عبره؛ ويمكن تلبية الطلبات اللاحقة من خلاله إذا تحققت شروط معينة. توفر بعض أطر عمل التطبيقات آليات لتخزين المستندات مؤقتًا وتجاوز مراحل مختلفة من إعداد الصفحة، مثل الوصول إلى قاعدة البيانات أو تفسير القوالب.
حماية
تتضمن بعض أطر عمل الويب أنظمة مصادقة وتفويض ، تُمكّن خادم الويب من تحديد مستخدمي التطبيق، وتقييد الوصول إلى الوظائف بناءً على معايير محددة. يُعدّ دروبال مثالًا على ذلك، إذ يوفر وصولًا قائمًا على الأدوار إلى الصفحات، وواجهة ويب لإنشاء المستخدمين وتعيين أدوارهم.
الوصول إلى قاعدة البيانات، وتعيينها، وتكوينها
تُنشئ العديد من أطر عمل الويب واجهة برمجة تطبيقات موحدة لقاعدة البيانات، مما يُمكّن تطبيقات الويب من العمل مع قواعد بيانات متنوعة دون الحاجة إلى تعديل التعليمات البرمجية، ويتيح للمبرمجين العمل مع مفاهيم أكثر تعقيدًا. بالإضافة إلى ذلك، تحتوي بعض أطر العمل الموجهة للكائنات على أدوات ربط لتوفير ربط الكائنات بالعلاقات ، والذي يربط الكائنات بالصفوف . [ 26 ]
تُقلل بعض أُطر العمل من تهيئة تطبيقات الويب باستخدام الاستبطان و/أو اتباع اصطلاحات معروفة. على سبيل المثال، تستخدم العديد من أُطر عمل جافا Hibernate كطبقة تخزين، والتي تُنشئ مخطط قاعدة بيانات أثناء التشغيل، قادر على حفظ المعلومات الضرورية. يُمكّن هذا مُصمم التطبيق من تصميم كائنات الأعمال دون الحاجة إلى تحديد مخطط قاعدة بيانات بشكل صريح. كما يُمكن لأُطر عمل مثل Ruby on Rails العمل بالعكس، أي تحديد خصائص كائنات النموذج أثناء التشغيل بناءً على مخطط قاعدة البيانات. [ 26 ]
قد تشمل الميزات الأخرى التي قد توفرها أطر عمل الويب دعم المعاملات [ 27 ] وأدوات ترحيل قواعد البيانات . [ 26 ]
تعيين عنوان URL
تُعدّ آلية ربط عناوين URL أو توجيهها في إطار العمل هي الآلية التي يُفسّر بها إطار العمل عناوين URL. بعض أطر العمل، مثل دروبال وجانغو، تُطابق عنوان URL المُقدّم مع أنماط مُحدّدة مُسبقًا باستخدام التعابير النمطية ، بينما تستخدم أطر عمل أخرى تقنيات إعادة الكتابة لترجمة عنوان URL المُقدّم إلى عنوان يتعرّف عليه المُحرّك الأساسي. وهناك تقنية أخرى هي تقنية اجتياز الرسم البياني ، كما هو مُستخدم في Zope ، حيث يتمّ تقسيم عنوان URL إلى خطوات تجتاز رسمًا بيانيًا للكائنات (من النماذج والعروض).
يُتيح نظام ربط عناوين المواقع الإلكترونية (URL) الذي يستخدم مطابقة الأنماط أو إعادة الكتابة لتوجيه الطلبات ومعالجتها، استخدام عناوين URL أقصر وأكثر سهولة في الاستخدام، مما يُبسط الموقع ويُحسّن فهرسته بواسطة محركات البحث. على سبيل المثال، يمكن تغيير عنوان URL الذي ينتهي بـ "/page.cgi?cat=science&topic=physics" إلى "/page/science/physics". هذا يجعل العنوان أسهل في التذكر والقراءة والكتابة، ويُزوّد محركات البحث بمعلومات أفضل حول بنية الموقع. كما يُسهم استخدام أسلوب اجتياز الرسم البياني في إنشاء عناوين URL سهلة الاستخدام. غالبًا ما يكون عنوان URL أقصر مثل "/page/science" موجودًا افتراضيًا، لأنه ببساطة شكل مختصر من المسار الأطول إلى "/page/science/physics".
أجاكس
أجاكس ، اختصارًا لـ " جافا سكريبت غير المتزامنة و XML "، هي تقنية لتطوير تطبيقات الويب. تهدف هذه التقنية إلى جعل صفحات الويب أكثر استجابةً من خلال تبادل كميات صغيرة من البيانات مع الخادم في الخلفية، بحيث لا يُعاد تحميل الصفحة بالكامل في كل مرة يطلب فيها المستخدم تغييرًا. يهدف ذلك إلى تحسين تفاعلية صفحة الويب وسرعتها وسهولة صيانتها واستخدامها . [ 28 ]
نظراً لتعقيد برمجة Ajax في JavaScript، توجد العديد من أطر عمل Ajax التي تُعنى حصرياً بدعمها. بل إن بعض أطر عمل Ajax مُدمجة كجزء من أطر عمل أكبر. على سبيل المثال، مكتبة jQuery JavaScript مُضمنة في Ruby on Rails.
مع تزايد الاهتمام بتطوير تطبيقات الويب الغنية " ويب 2.0 " ، باتت صعوبة البرمجة مباشرةً باستخدام Ajax وJavaScript واضحةً للغاية، ما استدعى ظهور تقنيات المترجمات البرمجية لتمكين المطورين من البرمجة بلغات عالية المستوى مثل Java وPython وRuby. كان Morfik أول هذه المترجمات، تبعه Google Web Toolkit ، ثم ظهرت نسخٌ منه للغتين Python وRuby في شكل Pyjs وRubyJS بعد فترة. هذه المترجمات ومكتبات الأدوات البرمجية المرتبطة بها تجعل تطوير تطبيقات Ajax الغنية بالوسائط أقرب بكثير إلى تطوير تطبيقات سطح المكتب.
خدمات الويب
توفر بعض الأطر أدوات لإنشاء وتقديم خدمات الويب. وقد تقدم هذه الأدوات المساعدة أدوات مماثلة لبقية تطبيقات الويب. [ 29 ]
موارد الويب
توفر الآن مجموعة من أطر عمل Web 2.0 RESTful الأحدث بنية معمارية موجهة نحو الموارد (ROA) لبناء مجموعات من الموارد في نوع من علم الوجود للويب الدلالي ، استنادًا إلى مفاهيم من إطار وصف الموارد (RDF).
انظر أيضاً
- إطار عمل التطبيق – إطار عمل في برامج الحاسوب
- أمن التطبيقات – التدابير المتخذة لتحسين أمان التطبيق
- خادم التطبيقات – الخادم الذي يستضيف التطبيقات
- مقارنة بين أطر عمل الويب القائمة على جافا سكريبت (من جانب العميل، للواجهة الأمامية)
- مقارنة بين أطر عمل الويب من جانب الخادم (للواجهة الخلفية)
- الاتفاقيات بدلاً من التكوين – نموذج تصميم البرمجيات
- إطار عمل CSS (للواجهة الأمامية)
- لا تكرر نفسك ( DRY ) - مبدأ من مبادئ تطوير البرمجيات
- قائمة أطر عمل خدمات الويب
- تطبيق ويب غني (قديم)
- مجموعة الحلول – مجموعة من الأنظمة الفرعية أو المكونات البرمجية اللازمة لإنشاء منصة كاملة
مراجع
- ↑ متعدد (ويكي). "إطار عمل تطبيقات الويب" . دوكفورج . مؤرشف من الأصل بتاريخ 23-07-2015.
- ↑ "أفضل مولدات المواقع الثابتة مفتوحة المصدر" . StaticGen .
- ↑ "CGI: واجهة البوابة المشتركة" . مؤرشف من الأصل بتاريخ 2009-04-09.
- ↑ "CGI" . www.ibm.com . تم الاطلاع عليه بتاريخ 7 مايو 2021 .
- ↑ تومسون، كريس (29-10-2003). "توضيح حول MVC = السحب و MVC = الدفع" . تم الاسترجاع في 29-07-2007 .
- ↑ مايكروسوفت. "التوزيع ثلاثي المستويات" . تم الاسترجاع في 19-09-2011 .
- ↑ أوراكل. "مفاهيم التجميع 10en" (ملف PDF) . تم الاطلاع عليه بتاريخ 19-09-2011 .
- ↑ روبرت ر. بيركوسكي. "مقدمة في تطوير الويب" . مؤرشف من الأصل بتاريخ 2013-11-07.
- ↑ IBM. "استخدام Client Access Express في بيئة ثلاثية الطبقات" . تم الاسترجاع في 19-09-2011 .
- ↑ أوراكل. "فهم بنية الطبقات الثلاث" . تم الاطلاع عليه بتاريخ 19-09-2011 .
- ↑ مايكروسوفت. "الهندسة المعمارية العملية: الطبقات" . تم الاسترجاع في 19-09-2011 .
- ↑ أروكيا. "بنية الويب ثلاثية الطبقات" . تم الاطلاع عليه بتاريخ 19-09-2011 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ "أفضل ممارسات وحدة تحكم ASP.NET MVC" . مؤرشف من الأصل بتاريخ 11-10-2011 . تم الاطلاع عليه بتاريخ 19-09-2011 .
- ↑ جاميس باك. "متحكم نحيف، عارضة أزياء سمينة" . مؤرشف من الأصل بتاريخ 16-05-2015.
- ↑ "البدء باستخدام أطر عمل الويب" . مجلة وايرد . تم الاطلاع عليه بتاريخ 2018-04-02 .
- ↑ كليموشين، ميل (6 أبريل 2015). "هندسة تطبيقات الويب - جانب العميل مقابل جانب الخادم" . أتوميك سبين . تم الاسترجاع في 6 مارس 2016 .
- ↑ "AngularJS مقابل Backbone.js مقابل Ember.js" . www.airpair.com . مؤرشف من الأصل بتاريخ 26-03-2023 . تم الاطلاع عليه بتاريخ 04-06-2016 .
- 1 2 3 عزير، سفيان بن؛ كلاود، نيكولاس؛ أمبلر، تيم (نوفمبر 2019). أطر عمل جافا سكريبت لتطوير الويب الحديث: الأطر والمكتبات والأدوات الأساسية التي يجب تعلمها الآن . أبريس. ISBN 978-1484249949.
- 1 2 3 روخاس، كارلوس (13 نوفمبر 2020). بناء مكونات الويب الأصلية: تطوير الواجهة الأمامية باستخدام Polymer وVue.js. Apress. ISBN 978-1484259047.
- ١ ٢ ٣ تطبيقات عملية عالية الأداء في جافا سكريبت: بناء تطبيقات ويب أسرع باستخدام Node.js وSvelte.js وWebAssembly . ISBN 978-1838821098.
- ↑ "تحسين" . GitHub .
- ↑ "إطار عمل Astro" . GitHub .
- ↑ "جديد" . GitHub .
- 1 2 فاولر، مارتن. "bliki: InversionOfControl" . martinfowler.com . تم الاسترجاع في 2016-03-06 .
- ↑ شو، تشيانغ. "هندسة كابيتال وان - فلسفات شكلت أطر عمل ناجحة" . www.capitalone.io . مؤرشف من الأصل بتاريخ 13 مارس 2016. تم الاطلاع عليه بتاريخ 6 مارس 2016 .
- 1 2 3 " أساسيات Active Record" . Ruby on Rails . تم الاطلاع عليه في 20 مارس 2021.
تُعرف تقنية ربط الكائنات العلائقية، أو اختصارًا ORM، بأنها تقنية تربط الكائنات الغنية في التطبيق بالجداول في نظام إدارة قواعد البيانات العلائقية... يقوم Active Record تلقائيًا بإنشاء طرق تسمح للتطبيق بقراءة البيانات المخزنة في جداوله ومعالجتها.
- ↑ "معاملات السجل النشط" . روبي أون ريلز . تم الاسترجاع في 20 مارس 2021 .
- ↑ "إنشاء موقع باستخدام AJAX Webplano" . webplano.com . تم الاطلاع عليه بتاريخ 23-11-2025 .
- ↑ ماكسيميليان، إي إم (2006). "الدرس التعليمي 4: خدمات الويب على ريلز: استخدام روبي وريلز لتطوير خدمات الويب وتطبيقات الدمج". المؤتمر الدولي لخدمات الويب IEEE لعام 2006 (ICWS'06) . ص. 43. doi : 10.1109/ICWS.2006.139 . ISBN 0-7695-2669-1.
- أطر عمل الويب
