العربية  

books web framework

If you do not find what you're looking for, you can use more accurate words.

View more

إطار عمل ويب (Info)


المنصة البرمجية لتطبيقات الإنترنت (بالإنجليزية: Web framework)‏ هي إطار عمل ( برمجة ) صممت من اجل المساهمة في تطوير صفحة ويب ديناميكية وتطبيق ويب وخدمة ويب , وتهدف الأطر على شبكة الإنترنت لتخفيف العبئ المرتبط والنشئ من تطوير مواقع الويب وإلى تقليل زمن المعالجة اللازم للقيام بالانشطة العادية أثناء عملية تطوير المواقع الإلكترونية، فنجد على سبيل المثال ان العديد من المنصات البرمجية توفر مكتبات من اجل الوصول إلى قاعدة بيانات , وعمل قالب للبرامج وإدارة جلسات العمل، وكثيرا ما تدعم هذه المنصات البرمجية اعادة استخدام التعليمات البرمجية.

لمحة تاريخية

لم يكن تصميم الشبكة العنكبوتية العالمية تفاعليا بطبيعته بمعنى ديناميكي، فكان نص تشعبي في البداية يتالف من تعليمات برمجية يتم اعدادها يديويا باستخدام لغة النص التشعبي HTML ثم يتم نشر هذه الصفحات البرمجية على خادوم ويب Web Host ؛ وكان مبرمج تلك الصفحات هو الوحيد القادر على اجراء اية تعديلات على صفحة الويب الديناميكيةالتي نشرت؛ ولهذا وضع معيار سي جي أي CGI أو واجهة المعابر العامة من اجل الربط بين البرامج الخارجية وأجهزة تزويد الخدمة؛ إلا أن هذا المعيار يمكن ان يؤثر سلبيا في حمل مزود الخدمة حيث ان كل طلب لابد ان يبدا عملية منفصلة.

وكان المبرمجين في حاجة إلى وجود تكامل أفضل مع أجهزة تزويد الخدمة من اجل تفعيل تطبيق ويب؛ فنجد على سبيل المثال ان خادوم إتش تي تي بي أباتشي HTTP يدعم الوحدات البرمجية التي يمكن ان تقوم بعمليات تنفيذ عشوائي للتعليمات البرمجية في أجهزة تزويد الخدمة (مثل وحدة مود بيرل Mod Perl البرمجية) أو تقوم بارسال طلبات محددة لاحد أجهزة تزويد الخدمة يمكنه التعامل مع المحتوى التفاعلي (مثل وحدة مود جي كي Mod Jk البرمجية)؛ وبعض مزودات الويب (مثل اباتشي تومكات Apache Tomcat) صممت خصيصا من اجل التعامل مع المحتوى التفاعلي من خلال تنفيذ التعليمات البرمجية التي كتبت ببعض اللغات مثل جافا (لغة برمجة).

وأثناء ذلك الوقت كانت هناك جهود لتصميم لغات جديدة تستخدم خصيصا مع شبكة الإنترنت مثل لغات كولدفيوشن ColdFusion وبي إتش بي PHP وصفحات خادم نشطة Active Sever Pages. الجزء الاعظم من لغات البرمجة التي يستخدمها المبرمجون في عمل صفحات الإنترنت التفاعلية يكون له مكتبة برمجية للمساعدة في انجاز المهام العادية، اما تطبيق ويب فعادة ما تحتاج إلى مكتبات خاصة تكون ذات فائدة في تلك التطبيقات بحيث تستخدم مثلا في عمل صفحات لغة رقم النص الفائق (مثل جافا سيرفر فيسيز Java Server Faces).

في النهاية ظهر على الساحة منصات برمجية مكتملة "ذات مساحات تخزين كاملة" تقوم غالبا بتجميع المكتبات المتعددة التي تفيد في تطوير الإنترنت في حزمة برمجية واحدة متماسكة يسهل على مبرمجو الإنترنت استخدامها؛ ومن بين الامثلة على ذلك منصة جافا النسخة التجارية Java EE (برامج تطبيقية صغيرة) وويب اوبجيكتس WebObjects واوبن ايه سي اس OpenACS وكاتاليست Catalyst وروبي على قضبان Ruby on Railsوجانغو (إطار عمل وب) Djangoو زيند فريمورك Zend Framework.

بنية المنصات البرمجية

تعتمد معظم المنصات البرمجية لتطبيقات الإنترنت على نظام ام في سي MVC، ونجد من ناحية البنية ان هناك بصفة عامة خمسة أنواع رئيسية هي: منصات برمجية تعتمد على الطلب وأخرى تعتمد على العناصر وثالثة تجمع بين الاثنين ورابعة تعتمد على لغة ميتا وخامسة تعتمد على ار أي ايه RIA..

وحدة التحكم في عرض النموذج 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.

انظمة إدارة المحتوى

بدات بعض المشروعات التي سميت تاريخيا باسم نظام إدارة المحتوى بلعب دور المنصات البرمجية عالية الطبقات لبرامج الإنترنت ؛ فنجد على سبيل المثال ان بنية المنصة البرمجية دروبال Drupal تمثل حدا ادنى من الذاكرة Core التي تقوم بوظيفة تمتد داخل الوحدات البرمجية التي تقوم بوظائف ترتبط بصفة عامة بالمنصات البرمجية لبرامج الإنترنت؛ الا انه هناك خلاف حول هل "إدارة المحتوى" هي القيمة الرئيسية لهذه الأنظمة وخاصة ان بعض تلك الأنظمة مثل سيلفرستريب Silver Stripe تمثل منصة برمجية كائنية من النوع ام في سي؛ والوحدات البرمجية المضافة تمكن الآن هذه الأنظمة من التحول إلى تطبيقات كاملة تتجاوز نطاق إدارة المحتوى؛ فمن الممكن ان تقدم هذه الأنظمة لغات برمجة فاعلة ومنصات برمجية فاعلة ومعايير لكتابة التعلميات البرمجية والكثير من الوظائف التي ترتبط تقليديا بالمنصات البرمجية لتطبيقات الإنترنت.

سمات المنصات البرمجية بتطبيقات الانترنت

نظام قوالب الانترنت

عادة ما تتالف صفحات الإنترنت التفاعلية من جزء ثابت (HTML) وجزء تفاعلي وهو عبارة عن نص برمجي ينتج صفحات HTML؛ ويمكن لهذا النص البرمجي القيام بذلك باستخدام بعض المتغيرات الموجودة في القالب أو استنادا إلى نص برمجي اخر؛ ويمكن ان ياتي النص الذي يتم إنتاجه من قاعدة بيانات وبالتالي يكون من الممكن تقليل عدد الصفحات في الموقع إلى أقصى حد ممكن. واليك مثال على ذلك وهو سمسار العقارات الذي يريد بيع 500 منزل، ففي حالة المواقع الإلكترونية غير التفاعلية يكون على هذا السمسار عمل 500 صفحة من اجل اتاحة المعلومات الخاصة بهذه المنازل، اما في المواقع التفاعلية يقوم السمسار فقط بربط الصفحة التفاعلية بجدول قاعدة بيانات يحتوي على 500 سجل.

ومع قوالب الويب يمكن ادخال المتغيرات الخاصة بلغة البرمجة دون الحاجة إلى استخدام نص برمجي وبالتالي لا يكون هناك حاجة إلى وجود معرفة بالبرمجة من اجل تحديث الصفحات الموجودة في أحد المواقع الإلكترونية، ويمكن التمييز بين لغة HTML والمتغيرات من خلال تركيبة الجمل البرمجية، فنجد على سبيل المثال في حالة نظام صفحات خادم جافا Java Server Pages ان علامة الترميز <c:out> تستخدم من اجل إخراج المتغيرات، وفي نظام سمارتي Smarty تستخدم علامة الترميز {$variable}.

والكثير من محركات القوالب تدعم بالفعل علامات الترميز المنطقية المحدودة مثل IF و FOR-EACH، وتستخدم هذه العلامات فقط مع القرارات التي يجب اتخاذها بالنسبة لطبقة العرض Presentation Layer من اجل الفصل التام بينها وبين طبقة مخطط العمل Business Logic Layer أو النموذج في نظام MVC.

التخزين الاحتياطي

    تقدم بعض المنصات البرمجية بعض الأدوات التي تساعد في توفير خدمة ويب، وهذه الخدمات يمكن ان تقدم ادوات مشابهة مثل غيرها من عناصر تطبيق الإنترنت.

    Source: wikipedia.org