الصفحة الرئيسية > مجلة تصميم > عدد جيتكس ٢٠٠٠ > مواقع النسيج الديناميكية: تجربة مع دريمويفر التراديف
مواقع النسيج الديناميكية: تجربة مع دريمويفر التراديف
بقلم
تتكاثر برامج تطوير مواقع النسيج العالمي ولا تتشابه. الا انها تنقسم الى فئتين واضحتين حسب معيار واحد لا يتغير هو نظافة رموز HTML التي تنتجها وتمكين المطور من التحكم بهذه الرموز.

فالفئة الاولى من برامج التطوير تستهدف المستخدمين غير المهنيين (ومنهم العديد من الذين يدعون المهنية) الذين يكتفون بمشاهدة موقعهم على شاشاتهم ليرضون عنه دون تكليف النفس باختبار الموقع لدى مستخدمين آخرين والتأكد من انه يعرض بشكل سليم. وهذه البرامج تنتج رموزها الخاصة من لغة HTML ولا تمنح مستخدمها اي امكان للتحكم بهذه الرموز، ويكون عادة جزء كبير منها فاقداً للتوافق مع توصيات تجمع النسيج العالمي وبالتالي مع عدد من برامج التصفح.
اما الفئة الثانية من برامج التطوير، فهي التي تضع نظافة رموز HTML في رأس اولوياتها وتمتنع عن ادخال اي رموز خاصة وتعطي مستخدمها كل الوسائل للتحكم بالرموز. وبالطبع تتوجه هذه البرامج الى المطورين المهنيين الحقيقيين المتعمقين برموز HTML وجافاسكريبت واوراق الانماط وغيرها والذين يلجأون دائماً الى تعيير هذه الرموز يدوياً للوصول الى افضل موقع يمكن عرضه على اكبر عدد من الشاشات وفي اكبر عدد من برامج التصفح التي تدعم اكبر عدد من انظمة التشغيل.
وينتمي برنامج دريم ويفر (Dreamweaver) من شركة ماكروميديا الى هذه الفئة الثانية من البرامج ويستخدمه عدد كبير جداً من مطوري مواقع النسيج لأنه يوفر كل ما يحتاج المطور من ادوات لتصميم موقع متطور وجذاب، لا سيما عندما يأتي البرنامج في الرزمة التي تضمه وبرنامج فايرووركس الذي يتكفل بإنشاء الرسوم الضرورية للموقع.
وتقدم هذه الرزمة كل ما يحتاجه المطور الى ان يصل الى مرحلة يحتاج فيها الى تطوير مواقع ديناميكية، اي المواقع التي تنتج صفحاتها بشكل ديناميكي من خلال ارتباطها بقواعد البيانات (مثل مواقع التجارة الالكترونية مثلاً). وتوفر هذه المواقع معلومات مختلفة (تفاصيل برامج محطة تلفزيون مثلاً) تعتمد على ما ادخله الزائر من اوامر (طلب لائحة بالبرامج الفكاهية مثلاً).
وعند هذا الحد يواجه المطور خياراً محدداً. فإذا اراد متابعة استخدام برامج ماكروميديا، يمكنه اختيار برنامج درامبيت (Drumbeat) المتخصص بمواقع التجارة الالكترونية والذي يدعم صفحات ASP وتقنيات مشابهة. ولكن يبدو ان شركة ماكروميديا لم تكن راضية عن هذا البرنامج لأنه لم يكن من البديهي دمجه في رزمة دريم ويفر وفايرووركس. كما ان المستخدمين وجدوا ان شراء تطبيق ثالث من ماكروميديا (اضافة الى دريم ويفر وفايرووكس) يشكل كلفة اضافية ليست دائماً مبررة.

اثنان في واحد
تظن ماكروميديا انها حلت المشكلة بطرح دريم ويفر التراديف (Dreamweaver Ultradev) الذي يشكل نوعاً من الامتداد لدريم ويفر ويوفر ادوات تطوير صفحات ديناميكية.
فإضافة الى دريم ويفر نفسه الذي يستخدم لتصميم الموقع وادارته، يآتي في الرزمة التراديف لتصميم الصفحات الديناميكية باستخدام ثلاث تقنيات خدمة هي ASP من مايكروسوفت وJSP من صن وColdFusion من اللير (Allaire مطورة برنامج هوم سايت). ويشكل دعم هذه التقنيات الثلاث ميزة كبيرة خاصة للمطورين الذين يتعاملون مع زبائن مختلفين. فلا يعني استخدام احد الزبائن لتقنية ASP وآخر لتقنية JSP ان على المطور اتقان برنامجي تطوير مختلفين. فيكفيه اتقان التراديف ليلبي حاجات معظم الزبائن. ولكن لا يجب على المستخدم الوقوع في فخ الاعتقاد بآنه لتطوير موقع نسيج يحتوي صفحات ديناميكية يكفي جهاز كومبيوتر قوي تتم البرمجة عليه. فعندما يتم وضع الموقع على النسيج سيتم انتاج الصفحات الديناميكية بواسطة خادم تطبيقات ASP او JSP او ColdFusion. لذلك يحتاج المطور الى جهاز خادم للنسيج محلي معدّ بشكل سليم يحتوي على نظام خدمة تطبيقات مناسب قبل الشروع في تطوير الموقع بواسطة التراديف.
وفي حال تعذر وجود جهاز خدمة من هذا النوع، توجد حلول بديلة. فإذا كان المطلوب استخدام تقنية ASP (على الاقل لضرورات التطوير) يمكن اعداد جهاز بنظام ويندوز ٩٨ وتثبيت خادم النسيج الشخصي من مايكروسوفت (Microsoft Personal Web Server). ويجعل هذا الخادم الجهاز يتصرف كما لو انه خادم نسيج صغير يتيح اختبار الصفحات التي تم تطويرها حتى لو انه غير كاف لتشغيل موقع تم اتمامه. ويأتي هذا الخادم على قرص ويندوز ٩٨ كما يمكن تحميله من موقع مايكروسوفت مجاناً.

اربع مراحل
يحتوي التراديف اسلوب حلقات التعليم الممتاز نفسه الموجود في دريم ويفر وفايرووركس. وتستخدم هذه الحلقات خليطاً من الدروس على الشاشة وعروض متعددة الوسائط وتدرب المستخدم على اساسيات البرنامج وبعض الوظائف المتطورة. ولا يمكن تجاهل قيمة هذه الحلقات اذ ان المستخدم الجديد يمكنه البدء بتطوير موقع خلال ساعات معدودات.
الا ان حلقات التعليم هذه تأتي بالخطر نفسه الذي يمكن للمستخدم ان يواجهه في دريم ويفر. فخلال متابعة هذه الحلقات يشعر المستخدم ان كل ما يقوم به البرنامج منطقي وبسيط. فمهما بلغت المهمة من تعقيد يبدو ان حلقات التدريب تجعلها سهلة للغاية. ولكن بعد الانتهاء من هذه الحلقات والشروع بموقع حقيقي، يواجه المستخدم الشاشة الخالية بالتساؤل حول ما يجب ان يفعله.
تتطلب عملية تصميم صفحة ديناميكية اربع مراحل لإتمامها. وتنحصر المرحلة الاولى في تصميم شكل الصفحة كما ستظهر للزائر. واذا تابعنا الاعتماد على برامج ماكروميديا، يتم ذلك باستخدام فايرووركس لمعالجة رسوم الصفحة والقسم العادي من دريم ويفر. وهذه المرحلة سهلة جداً للذي اعتاد على تصميم المواقع الثابتة.
اما المرحلة الثانية، فهي انشاء طقم سجلات (recordset) وهو مجموعة فرعية من السجلات الموجودة في قاعدة البيانات التي ستتصل بموقع النسيج. ويتم اضافة طقم السجلات الى الصفحة في المرحلة الثالثة. واخيراً، في مرحلة رابعة، يتم اضافة اوامر سلوك خادم الموقع (server side scripts) وهي مجموعة من الاوامر التي يجب على جهاز خدمة الموقع تنفيذها عندما يتم استخدام الصفحة الديناميكية. الا ان هذه المراحل الاربعة تغفل مرحلة مهمة قد تستهلك وقتاً طويلاً وعناءً جماً وهي مرحلة تحضير البيانات. فقبل وصل صفحة ديناميكية بقاعدة بيانات، يجب علينا انشاء القاعدة وملؤها بالبيانات. ثم يستخدم «الاتصال» كرابط بين موقع النسيج وقاعدة البيانات. وعلى المستخدم ان يعطي اسماً لهذا الاتصال وتحديد نوعه (بالاعتماد على نوع تقنية الخدمة المستخدمة) وانشاء مؤشر الى الموقع واسمه. ويمكن ايضاً ادخال تفاصيل فتح قاعدة البيانات ليقوم الاتصال بالسماح لكل صفحة في الموقع بالارتباط بالقاعدة.

اطقم السجلات
يشكل طقم السجلات جزءاً من المعلومات المخزنة في قاعدة البيانات التي تكون عادة مكونة من عدة جداول من المعلومات. ويحتوي كل جدول على معلومات حول وجه معين من وجوه قاعدة البيانات. فإذا عدنا الى موقع محطة التلفزيون، يمكن لقاعدة بيانات مسلسلاتها الفكاهية ان تحتوي على ثلاثة جداول هي معلومات المسلسل وتوقيت ارساله واسماء الممثلين فيه.
ويمكن لطقم سجلات معين ان يحتوي على معلومات من اكثر من جدول واحد كما يمكنه احتواء معلومات جدول بكامله او جزء منها. اما انشاء طقم سجلات فلا يشكل اي صعوبة اذ يكفي اعطاء اسم لهذا الطقم واختيار الاتصال بقاعدة البيانات المطلوب استخدامها ثم تحديد الجدول المناسب في هذه القاعدة واختيار الحقول في الجدول.
بالطبع ما نحصل عليه بهذه العملية هو طقم سجلات بسيط جداً اذ اننا لم نقم باختيار بيانات من جداول مختلفة ولا اختيار جزء من البيانات الموجودة في هذه الجداول. فيتطلب انشاء طقم سجلات اكثر تعقيداً استخدام لغة الاستفسار المركبة (SQL). وهنا سيجد المستخدمون المتمرسون في التعامل مع قواعد البيانات سهولة اكبر في اتمام العمل من المستخدمين الذين يتمتعون بخبرة في تصميم المواقع وحسب.
بعد تصميم طقم السجلات، يمكن لصق اي حقل يحتويه (ويدل على حقل مناسب في قاعدة البيانات) مباشرة على صفحة الموقع. ولا تتطلب العملية اكثر من سحب اسم الحقل على الصفحة ليظهر فيها مستوعب يلعب دور المعلومات الموجودة في القاعدة. وتحول هذه السهولة دون اطلاع المستخدم على تعقيد الاوامر الضرورية لتنفيذ العملية والتي كتبها التراديف آلياً داخل علامات HTML المناسبة للصفحة.
اما عملية استبدال المستوعب ببيانات فعلية، فهو ما يطلق عليه التراديف اسم سلوك الخادم (server behaviour) وهو ببساطة تنفيذ اوامر تم ارسالها الى الخادم. ويمكن لهذه الاوامر ان تنفذ اموراً معقدة اكثر بكثير من استبدال مستوعب ببيانات. فمن ابسط التحسينات التي يمكن ادخالها على الصفحة اوامر تنسيق تحدد كيف يجب على البيانات ان تظهر على الصفحة. ويمكن تغيير طريقة عرض البيانات كلياً على الصفحة وبشكل مستقل تماماً عن طريقة تخزينها في قاعدة البيانات. فعلى سبيل المثال، يمكن عرض تاريخ مخزّن في القاعدة على شكل ٠١/٨/٣٠ بتنسيق ٣٠ آب ٢٠٠١ على الصفحة. وكذلك الحال في قيم العملة والنسب المئوية وغير ذلك. ولا يتطلب تنسيق الصفحة اكثر من تحديد احد الخيارات في قوائم منسدلة.
لا يشكل تصميم صفحات تتغير حسب ما يفعله الزائر مهمة معقدة. كذلك ليس من البراعة الخارقة وصل صفحة موقع بقاعدة بيانات. الا ان ما يميز الموقع المتطور عن الموقع العادي هو القدرة على تعديل صفحة ما بالاعتماد على ما فعله الزائر في الصفحة السابقة. اي بمعنى آخر، ان القدرة على تمرير المعلومات بين الصفحات هي التي تجعل الموقع بارزاً.
والحال، يوفر التراديف هذه القدرة باعتماده مفهوم الصفحة الاساسية (master) وصفحات التفاصيل (details) للتحكم بالعلاقات بين الصفحات حيث ينفذ الزائر عملية ما (اي الصفحات الاساسية) والصفحات التي تعرض نتائج هذه العملية (اي صفحات التفاصيل).
وليس من السهل انشاء العلاقات بين الصفحة الاساسية وصفحات التفاصيل في التراديف الا انه اسهل بكثير من كتابة اوامر هذه العلاقات يدوياً. فيقوم الزائر اولاً باختيار حقل معين في الصفحة الاساسية، وهو الحقل الذي ينقر عليه الزائر لطلب المزيد من المعلومات. والى هذا الحقل يتم اضافة سلوك معين للخادم يأخذ الزائر الى صفحة التفاصيل المناسبة للحقل. ويتطلب ذلك توفير اسم صفحة التفاصيل واسم المعلومة التي تعرّف عن الطلب وطقم السجلات والحقل اللذين يحتويان المعلومات المطلوبة.
ففي مثالنا حول المسلسلات الفكاهية، قد يكون هناك صفحة اساسية تعرض لائحة بعدة مسلسلات. هنا يمكن ان يكون الحقل الذي يطلق العملية هو اسم المسلسل. فإذا نقر الزائر مثلاً على «حمام الهنا»، يتم تنفيذ سلوك خادم لجلب صفحة التفاصيل. ويتكون هذا السلوك من اوامر تطلب ان اسم المسلسل (وهو المعلومة التي تعرّف عن الطلب) الذي يريد عرضه هو «حمام الهنا». وتوضح ايضاً هذه الاوامر ان هذا الاسم موجود في حقل «اسم المسلسل» في طقم السجلات المسمى «مسلسلات». وعلى ضوء هذه المعلومات يمكن للموقع عرض صفحة تفاصيل «حمام الهنا».

اعداد البيانات
لا يشكل عرض صفحة ديناميكية لمعلومات مستقاة من قاعدة بيانات الا جزءاً مما هو مطلوب من موقع نسيج يعتمد على قواعد البيانات. فغالباً ما يطلب الموقع من الزائر ادخال بيانات في القاعدة. ولكن هذه المهمة تعادل ببساطتها مهمة عرض البيانات، وقد تكون ابسط لأنها لا تحتاج الى اي لغة استفسار. ويوفر التراديف مجموعة من سلوك الخادم تشمل اضافة بيانات وتحديثها وحذف سجلات ولا يطلب من الزائر الا توفير تفاصيل العملية المطلوبة.
فلإضافة سجل الى القاعدة مثلاً، يحدد المستخدم اولاً الزر الذي يطلق سلوك «ادخال سجل» ثم يحدد الجدول الذي سيستقبل السجل ويربط الحقول في صفحة الموقع بالحقول في القاعدة مما يؤمن تخزين البيانات في الموقع الصحيح في القاعدة. اخيراً يحدد صفحة معينة تظهر بعد اتمام العملية.
ولكن تطوير الموقع هو نصف المهمة اذ يبقى نشره على النسيج. فعند استخدام دريم ويفر لتطوير موقع ثابت، تقتصر عملية النشر على ارسال الصفحات ومكوناتها الى الخادم المستقبِل الذي سيقوم بتخزينه. فصفحات الموقع الثابت لا تحتاج الى اي زوائد، اما صفحات الموقع الديناميكي فتحتاج الى العديد من الادوات التي لا غنى عن وجودها في الخادم المستقبِل ليس اقلها قاعدة البيانات التي تتصل بالموقع. اضافة الى ذلك يتحتم على الخادم احتواء تقنية الخدمة الملائمة للموقع وما يستخدمه من لغة اكانت ASP او JSP او ColdFusion. وقد لا يكون هذا الامر متاحاً لدى موفر خدمات عادي لا يعطي المساحة الكافية لتخزين قاعدة البيانات ولا التقنية المناسبة للموقع. على ان تقنية ASP منتشرة بشكل معقول حول الشبكة وحتى تقنية JSP الا ان دعم ColdFusion فهو اقل وجوداً. ويجب على المطور سؤال المؤسسة التي ستستضيف موقعه قبل الخوض في التطوير. وقد يعتمد المطور انشاء خادم نسيج خاص به وتخزين موقعه عليه (بالطبع اذا كان هذا الموقع ضخم لدرجة يستأهل معها هذا الاستثمار).
كلمة اخيرة
لا بد من بعض الملاحظات على برنامج التراديف. فمن الغريب ان يأتي البرنامج بدعم لتقنية ColdFusion في حين هناك حالياً رزمة خاصة بهذه التقنية تدعى ColdFusion Studio وتنشرها شركة اللير، بينما يفتقد البرنامج الى لغة PHP التي تتميز بسهولتها وسرعتها وخاصة دعمها لتعدد البيئات ومنها بيئة يونيكس بنكهاتها المختلفة والتي تنتشر بكثرة في اجهزة خدمة النسيج حول شبكة انترنت اضافة الى دعمها لمفهوم الموارد المفتوحة.
النقطة الثانية هي عدم توفير التراديف اي ادوات مخصصة في تطوير مواقع التجارة الالكترونية. فقد قدمت ماكروميديا سلفه درامبيت على انه اداة تطوير التجارة الالكترونية ولكن لا تنطبق هذه الصفة على التراديف اذ انه لا يوفر مكونات خاصة بالتجارة الالكترونية مثل سلة التسوّق ونظام الدفع المؤمن وغير ذلك. ويترك التراديف هذه المهمة على عاتق المطور الا ان ماكروميديا اشتهرت بدعم ممتاز لبرامجها ولا شك ان لدى قراءة هذه السطور سيكون المطورون اكتشفوا ادوات جديدة لدعم التجارة الالكترونية (من تطوير الشركة او اطراف اخرى) في موقـع التراديف عنـدها.
