إطار عمل ويب
المحتويات

تعريفًا بالموضوع، المنصة البرمجية لتطبيقات الإنترنت مصطلح يقصد به إطار عمل برمجي صمم من اجل المساهمة في تطوير صفحة ويب ديناميكية وتطبيق ويب وخدمة ويب، وتهدف الأطر على شبكة الإنترنت لتخفيف العبئ المرتبط والنشئ من تطوير مواقع الويب وإلى تقليل زمن المعالجة اللازم للقيام بالانشطة العادية أثناء عملية تطوير المواقع الإلكترونية، فنجد مثلًا ان الكثير من المنصات البرمجية توفر مكتبات من اجل الوصول إلى قاعدة بيانات، وعمل قالب للبرامج وإدارة جلسات العمل، وكثيرا ما تدعم هذه المنصات البرمجية إعادة استخدام التعليمات البرمجية. وتعرض الأقسام التالية جوانب أخرى من الموضوع.
تخطيط قواعد البيانات والوصول اليها
في هذا الإطار، ومن بين المميزات الأخرى التي يمكن ان تقدمها المنصات البرمجية لتطبيقات الإنترنت ادوات دعم المعاملات ونقل قواعد البيانات.
وفي هذا السياق، ان الكثير من المنصات البرمجية لتطبيقات الإنترنت تقدم واجهة برمجة التطبيقات موحدة للمراحل النهائية من قواعد البيانات مما يمكن تطبيقات الإنترنت من العمل مع عدد متنوع من قواعد البيانات دون تغيير في النص البرمجي كما يسمح ذلك للبرامج بالعمل بمفاهيم أعلى؛ ولتحقيق أداء أعلى يجب تجميع الروابط الخاصة بقواعد البيانات مثلما يحدث في مزود الخدمة ايه أو ال سيرفر AOLServer ؛ كما ان بعض المنصات البرمجية برمجة كائنية التوجه Object Oriented تحتوي على ادوات توزيع من اجل التوزيع العلائقي للعناصر Object-Relational Mapping وتوزيع برمجة كائنية التوجه على التتابعات
وحدة التحكم في عرض النموذج MVC
وعلى صعيد آخر، طلب التحديث من قبل مزود الويب في مقابل طلب التحديث من قبل الاجهزة التابعة
من جانب آخر، ان الكثير من المنصات البرمجية يتم تصميمها على خطة (لا يوجد تعريب ثابت للـ خطط التصميم) وحدة التحكم ,العرض و النموذج MVC من اجل الفصل بني نماذج بيانات الذي يحتوي ويدير قواعد البيانات وواجهة المستعمل؛ ويعد ذلك بصفة عامة عادة حميدة حيث انها تؤدي إلى تحويل العمليات البرمجية إلى وحدات برمجية وتساعد في إعادة استخدام التعليمات البرمجية كما تسمح باستخدام واجهات متعددة.
علاوةً على ذلك، ان أغلب المنصات البرمجية التي تعتمد نظام ام في سي تستعمل بنية طلب التحديث من قبل مزود الويبPush-based، وهذه المنصات تستعمل اجراءات تنفذ عملية المعالجة المطلوبة ثم «تدفع» البيانات إلى طبقة العرض من اجل إخراج النتائج، ومن بين الامثلة على هذه البنية بعض المنصات البرمجية مثل أباتشي سترتسStruts وجانغو (إطار عمل وب) Django وروبي على قضبانRuby on Rails وسبرينج ام في سي Spring MVC؛ وتعد بنية طلب التحديث من قبل الأجهزة التابعة Pull-based بديلا اخر وهي تسمى في بعض الأحيان بنية «تعتمد على العناصر» Component based؛ وتبدا هذه المنصات البرمجية بطبقة العرض التي يمكنها فيما بعد «سحب» النتائج من وحدات تحكم متعددة وفق الحاجة؛ وفي هذه البنية يمكن دمج وحدات التحكم المتعددة في نظام عرض واحد؛ ومن بين الامثلة على بنية التحديث من قبل الأجهزة التابعة المنصات البرمجية التالية: أباتشي سترتس 2 Struts 2 وليفت Lift وتابيستري Tapestry وجي بوس سيم J Boss Seam وأباتشي ويكيت Wicket وستريبز Stripes.
التخزين الاحتياطي
وفي السياق ذاته، يشير هذا المصطلح إلى ذاكرة الويب المخبئة وثائق شبكة عنكبوتية عالمية من اجل تقليل استخدام معدل نقل البيانات Bandwidth والحمل على خادوم ويب حالات التعطل المؤقت للمزود؛ وفي هذه العملية تقوم الذاكرة المخبئية بتخزين نسخ من الوثائق التي تمر خلالها بحيث يمكن الاستجابة للطلبات التالية من مخزون الذاكرة المخبئية عند تحقق شروط معينة؛ وبعض المنصات البرمجية للتطبيقات توفر اليات لعمل نسخ احتياطية من الوثائق والتغاضي عن بعض المراحل الخاصة بتجهيز الصفحات مثل إمكانية الوصول إلى قواعد البيانات أو تفسير القوالب.
توزيع العناوين الالكترونية
في هذا الإطار، ويسمح نظام توزيع المواقع باستخدام المطابقة أو إعادة الصياغة باستخدام العناوين الإلكترونية «الصديقة»، وهذا يزيد من بساطة الموقع ويسمح بفهرسة أفضل من خلال محركات البحث، فنجد مثلًا ان العنوان الذي ينتهي بالصيغة التالية "/page.cgi?cat=science&topic=physics" يمكن تغييره إلى صيغة بسيطة هي "/page/science/physics"، وهذا يجعل العنوان أسهل في القراءة ويمد محركات البحث بمعلومات أفضل حول التصميم البنائي للموقع؛ وعادة ما يؤدي منهج اجتياز الرسم البياني إلى ايجاد عناوين صديقة، فعادة ما توجد العناوين القصيرة مثل "/page/science" افتراضيا حيث انها صيغة مختصرة من الصيغة الطويلة "/page/science/physics".
علاوةً على ذلك، تعد اداة توزيع عنوان إنترنت للمنصة البرمجية هي الالية التي تقوم من خلالها المنصة البرمجية بتفسير عنوان الإنترنت، وبعض المنصات البرمجية تقوم بالمقارنة بين العنوان الإلكتروني وانساق محددة مسبقا باستخدام تعابير نمطية مثلما يحدث في نظامي دروبال وجانغو (إطار عمل وب)، وتقوم بعض المنصات البرمجية الأخرى تقوم باعادة كتابة العنوان من اجل تحويل العنوان إلى صيغ يمكن للمحرك الأساسي التعرف عليها، ومن بين الاساليب الأخرى المسح البياني مثل المستعمل في نظام يزوبي Zope حيث يتم تحليل العنوان الإلكتروني في خطوات تعطي رسم بياني عناصري (للنماذج ونظم العرض).
التهيئة التلقائية
وفي هذا الصدد، تقوم بعض المنصات البرمجية بتقليل تهيئة برامج الإنترنت إلى أقصى حد من خلال استخدام الاستبطان اواتباع الأعراف المتبعة أو كلاهما، فنجد مثلًا ان العددي من المنصات البرمجية في جافا تستعمل هيبرنيت Hibernate باعتبارها طبقة ثابتة وهو ما يمكن ان يولد مخطط قاعدة بيانات وقت التشغيل قادرة على الحفاظ على البيانات الضرورية، وهذا يسمح لمصمم التطبيق بتصميم عناصر عمل دون الحاجة إلى تحديد مخطط قاعدة بيانات صراحة، ويمكن للمنصات البرمجية مثل روبي على قضبان ان تعمل بالعكس أي تقوم بتحديد خواص عناصر النموذج وقت التشغيل استنادا إلى مخطط قاعدة بيانات.
خدمات الإنترنت
ومن جهة أخرى، تقدم بعض المنصات البرمجية بعض الأدوات التي تساعد في توفير خدمة ويب، وهذه الخدمات يمكن ان تقدم ادوات مشابهة مثل غيرها من عناصر تطبيق الإنترنت.
اجاكس
في هذا الإطار، كلمة اجاكس Ajax هي اختصار نص جافا غير المتزامن جافا سكريبت ولغة الرقم القابلة للامتداد XMLوهو يشير إلى أسلوب تطوير المواقع الإلكترونية من اجل عمل تطبيق ويب تفاعلية، والهدف هو جعل صفحات الإنترنت تبدو أكثر تفاعلية من خلال تبادل كميات ى صغيرة من البيانات مع مزود الويب خفية بحيث لا يكون هناك حاجة إلى إعادة تحميل الصفحة باكملها في كل مرة يطلب المستعمل فيها عمل بعض التغييرات، ويؤدي ذلك إلى زيادة تفاعلية الصفحة وسرعتها وسهولة
نظام قوالب الإنترنت
كذلك، والكثير من محركات القوالب تدعم بالفعل علامات الترميز المنطقية المحدودة مثل IF و FOR-EACH، وتستعمل هذه العلامات فقط مع القرارات التي يجب اتخاذها بالنسبة لطبقة العرض Presentation Layer من اجل الفصل التام بينها وبين طبقة مخطط العمل Business Logic Layer أو النموذج في نظام MVC.
من جهة ثانية، واليك مثال على ذلك وهو سمسار العقارات الذي يريد بيع 500 منزل، ففي حالة المواقع الإلكترونية غير التفاعلية يكون على هذا السمسار عمل 500 صفحة من اجل اتاحة المعلومات الخاصة بهذه المنازل، اما في المواقع التفاعلية يقوم السمسار فقط بربط الصفحة التفاعلية بجدول قاعدة بيانات يحتوي على 500 سجل.
وفي هذا الصدد، عادة ما تتالف صفحات الإنترنت التفاعلية من جزء ثابت (HTML) وجزء تفاعلي وهو عبارة عن نص برمجي ينتج صفحات HTML؛ ويمكن لهذا النص البرمجي القيام بذلك باستخدام بعض المتغيرات الموجودة في القالب أو استنادا إلى نص برمجي اخر؛ ويمكن ان ياتي النص الذي يتم إنتاجه من قاعدة بيانات وبالتالي يكون من الممكن تقليل عدد الصفحات في الموقع إلى أقصى حد ممكن.
كذلك، ومع قوالب الويب يمكن ادخال المتغيرات الخاصة بلغة البرمجة دون الحاجة إلى استخدام نص برمجي وبالتالي لا يكون هناك حاجة إلى وجود معرفة بالبرمجة من اجل تحديث الصفحات الموجودة في أحد المواقع الإلكترونية، ويمكن التمييز بين لغة HTML والمتغيرات من خلال تركيبة الجمل البرمجية، فنجد مثلًا في حالة نظام صفحات خادم جافا Java Server Pages ان علامة الترميز تستعمل من اجل إخراج المتغيرات، وفي نظام سمارتي Smarty تستعمل علامة الترميز {$variable}.
الامان
كذلك، تاتي بعض المنصات البرمجية لتطبيقات الإنترنت ومعها منصات برمجية استيقان والترخيص وهذه تمكن خادوم ويب من التعرف على مستعملي التطبيقات وحصر إمكانية الوصول إلى المزود على عدد من الوظائف التي تتوقف على بعض المعايير المحددة؛ ويعد نظام دروبال Drupal الذي يمكن من الوصول إلى صفحات الإنترنت استنادا إلى الدور Role-based ويقدم واجهة مستعمل على الإنترنت من اجل إضافة المستعملين وتخصيص ادوار لهم.
بنية المنصات البرمجية
في هذا الإطار، تعتمد أغلب المنصات البرمجية لتطبيقات الإنترنت على نظام ام في سي MVC، ونجد من ناحية البنية ان هناك بصفة عامة خمسة أنواع رئيسية هي: منصات برمجية تعتمد على الطلب وأخرى تعتمد على العناصر وثالثة تجمع بين الاثنين ورابعة تعتمد على لغة ميتا وخامسة تعتمد على ار أي ايه RIA.
لمحة تاريخية
كذلك، وأثناء ذلك الوقت كانت هناك جهود لتصميم لغات جديدة تستعمل خصيصا مع شبكة الإنترنت مثل لغات كولدفيوشن ColdFusion وبي إتش بي PHP وصفحات خادم نشطة Active Sever Pages. الجزء الاعظم من لغات البرمجة التي يستعملها المبرمجون في عمل صفحات الإنترنت التفاعلية يكون له مكتبة برمجية للمساعدة في انجاز المهام العادية، اما تطبيق ويب فعادة ما تحتاج إلى مكتبات خاصة تكون ذات فائدة في تلك التطبيقات بحيث تستعمل مثلا في عمل صفحات لغة رقم النص الفائق (مثل جافا سيرفر فيسيز Java Server Faces).
علاوةً على ذلك، ولهذا وضع معيار سي جي أي CGI أو واجهة المعابر العامة من اجل الربط بين البرامج الخارجية وأجهزة تزويد الخدمة؛ إلا أن هذا المعيار يمكن ان يؤثر سلبيا في حمل مزود الخدمة حيث ان كل طلب لابد ان يبدا عملية منفصلة.
وفي هذا الصدد، لم يكن تصميم الشبكة العنكبوتية العالمية تفاعليا بطبيعته بمعنى ديناميكي، فكان نص تشعبي في البداية يتالف من تعليمات برمجية يتم اعدادها يديويا باستخدام لغة النص التشعبي HTML ثم يتم نشر هذه الصفحات البرمجية على خادوم ويب Web Host ؛ وكان مبرمج تلك الصفحات هو الوحيد القادر على إجراء اية تعديلات على صفحة الويب الديناميكيةالتي نشرت؛
وعلى صعيد آخر، في النهاية ظهر على الساحة منصات برمجية مكتملة «ذات مساحات تخزين كاملة» تقوم غالبا بتجميع المكتبات المتعددة التي تفيد في تطوير الإنترنت في حزمة برمجية واحدة متماسكة يسهل على مبرمجو الإنترنت استخدامها؛ ومن بين الامثلة على ذلك منصة جافا النسخة التجارية Java EE (برامج تطبيقية صغيرة) وويب اوبجيكتس WebObjects واوبن ايه سي اس OpenACS وكاتاليست Catalyst وروبي على قضبان Ruby on Railsوجانغو (إطار عمل وب) Djangoو زيند فريمورك Zend Framework.
إضافةً إلى ذلك، وكان المبرمجين في حاجة إلى وجود تكامل أفضل مع أجهزة تزويد الخدمة من اجل تفعيل تطبيق ويب؛ فنجد مثلًا ان خادوم إتش تي تي بي أباتشي HTTP يدعم الوحدات البرمجية التي يمكن ان تقوم بعمليات تنفيذ عشوائي للتعليمات البرمجية في أجهزة تزويد الخدمة (مثل وحدة مود بيرل Mod Perl البرمجية) أو تقوم بارسال طلبات محددة لاحد أجهزة تزويد الخدمة يمكنه التعامل مع المحتوى التفاعلي (مثل وحدة مود جي كي Mod Jk البرمجية)؛ وبعض مزودات الويب (مثل اباتشي تومكات Apache Tomcat) صممت خصيصا من اجل التعامل مع المحتوى التفاعلي من خلال تنفيذ التعليمات البرمجية التي كتبت ببعض اللغات مثل جافا (لغة برمجة).
انظمة إدارة المحتوى
سمات المنصات البرمجية بتطبيقات الإنترنت
من جانب آخر، بدات بعض المشروعات التي سميت تاريخيا باسم نظام إدارة المحتوى بلعب دور المنصات البرمجية عالية الطبقات لبرامج الإنترنت؛ فنجد مثلًا ان بنية المنصة البرمجية دروبال Drupal تمثل حدا ادنى من الذاكرة Core التي تقوم بوظيفة تمتد داخل الوحدات البرمجية التي تقوم بوظائف ترتبط بصفة عامة بالمنصات البرمجية لبرامج الإنترنت؛ الا انه هناك خلاف حول هل «إدارة المحتوى» هي القيمة الرئيسية لهذه الأنظمة وخاصة ان بعض تلك الأنظمة مثل سيلفرستريب Silver Stripe تمثل منصة برمجية كائنية من النوع ام في سي؛ والوحدات البرمجية المضافة تمكن الآن هذه الأنظمة من التحول إلى تطبيقات كاملة تتجاوز نطاق إدارة المحتوى؛ فمن الممكن ان تقدم هذه الأنظمة لغات برمجة فاعلة ومنصات برمجية فاعلة ومعايير لكتابة التعلميات البرمجية والكثير من الوظائف التي ترتبط تقليديا بالمنصات البرمجية لتطبيقات الإنترنت.
استخدامها
كذلك، ومع زيادة الاهتمام بتطوير تطبيقات الوسائط الثرية بنظام ويب 2 اتضح مدى صعوبة البرمجة مباشرة في اجاكس وجافا سكريبت حتى ان تكنولوجيا المحولات ظهرت من اجل تمكين المبرمجين من عمل نصوص برمجية في اللغات الراقية مثل جافا وبيثون وروبي، وكان أول تلك المحولات هو موفيك Morfik وبعده ادوات جوجل للإنترنت مع وجود بورتات لبيثون وروبي في صورة بيجامز وروبي جي اس بعدها بوقت قصير، وهذه المحولات ومع يصاحبها من عناصر ومكتبات تؤدي وظائف معينة تجعل تطوير تطبيقات اجاكس للوسائط الثرية يشبه تطوير تطبيقات الحاسب الشخصي.
كذلك، ونظرا لتعقيد عملية البرمجة باستخدام نظام اجاكس في جافا سكريبت توجد الكثير من إطار عمل الأجاكس والتي تتعامل حصريا مع اجاكس، بل ان بعض المنصات البرمجية لنظام اجاكس يتم دمجها باعتبارها جزء من منصات أكبر، فنجد مثلًا ان بروتوتيب (إطار عمل) سكريب مدمجة في نظام روبي على قضبان.
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟