هذه مقدة لCGI
ترجمتها و أنشرها هنا
لعل أحد الأخوان ينتفع بها:
( ملحوظة يمكنني أن أواصل ترجمة الكتاب و نشره بناء على تعليقاتكم)
1-1 ماهي سي جي آي ؟
هناك العديد من الصفحات في الإنترنت التي تحتوي نماذج forms تطلب تغذية مرتدة أو معلومات خاصة بالتسجيل و خرائط صورية image mapsو عدادات للزوار و بحث في قواعد بيانات .. و سوف نجد غالباً أن هذا كله يمكن أن يتحقق من خلال استخدام Common Gateway Interface (CGI)
إن Common Gateway Interface (CGI) هي ذلك الجزء من المزود الذي يتعامل مع برامج أخرى على المزود . باستخدام سي جي آي يمكن لمزود الوب أن يقوم باستدعاء برنامج ما ، بينما يقوم بتمرير بيانات خاصة بالمستخدم إلى هذا البرنامج ( مثل المستضيف HOST الذي يقوم المستخدم بالاتصال منه أو المدخلات التي قام المستخدم بإدخالها مستخدما تقنية النموذج في لغة HTML). يقوم البرنامج عندئذ بمعالجة تلك البيانات و يقوم المزود بتمرير استجابة البرنامج مرة أخرى إلى متصفح الوب.
إن سي جي آي ليست سحراً. إنها برمجة في المقام الأول لها أنماط خاصة فيما يتعلق بالمدخلات و بعض القواعد الصارمة في مخرجات البرنامج. كل ما عدا ذلك هو مجرد برمجة . بالطبع هناك تقنيات خاصة تميز CGI و هذا هو موضوع هذه الدورة. و لكن ما يضم كل ذلك موضح بالشكل التالي:
1-2 تطبيقات سي جي آي
تقوم سي جي آي بتحويل الوب من مجموعة بسيطة من الوثائق الفائقة الوسائط Hypermedia الساكنة إلى وسيط تفاعلي جديد تماماً ، يمكن للمستخدم فيه أن يطرح أسئلة و يقوم بتشغيل تطبيقات. و لنلق نظرة على بعض التطبيقات الممكنة التي يمكن تصميمها باستخدام سي جي آي.
النماذج Forms:
أحد أبرز استخدامات CGI هو معالجة النماذج. النماذج هي إحدى مكونات لغة HTML التي تسمح للمستخدم بإعطاء معلومات. إن واجهة النماذج تجعل تصفح الوب عملية تفاعلية بالنسبة للموقع و المستخدم. و يصور لنا الشكل التالي نموذجا بسيطاً :
كما هو واضح من النموذج – هناك العديد من الرموز الرسومية المتاحة لصنع النموذج، مثل أزرار الراديو و الحقول النصية و مربعات الاختيار و القوائم المنسدلة. عندما يتم تعبئة النموذج من قبل المستخدم – يستخدم زر إرسال submit لإرسال المعلومات إلى المزود ، الذي يقوم بدوره بتنفيذ البرنامج المرتبط بذلك النموذج بعينه – لكي يقوم ذلك البرنامج بحل شفرة decode البيانات.
إن النماذج عموما تستخدم لغرضين أساسيين . ففي أبسط صورها تستخدم النماذج لجمع معلومات من المستخدم. و لكنها أيضاً يمكن أن تستخدم على نحو أكثر تعقيداً تمثل تفاعلاً في اتجاهين ما بين الموقع و المستخدم. مثلاً يجد المستخدم نفسه أمام نموذج يحتوي على الصفحات المختلفة المتاحة على المزود. علاوة على خيار للبحث عن معلومات بعينها ضمن هذه الصفحات. إن برنامج سي جي آي يمكن أن يقوم بهذه الوظيفة ويعالج المعلومات ويقوم بإرجاع المستندات التي تتلاءم مع معايير اختيار المستخدم.
الفصل الرابع ( النماذج و سي جي آي يعالج موضوع النماذج بالتفصيل و الفصل السابع ( تطبيقات النماذج المتقدمة) يوضح نماذج لدمج النماذج في عدة تطبيقات نشطة.
البوابـــات Gateways:
بوابات الوب هي برامج أو نصوص برمجية تستخدم للوصول إلى معلومات لا يمكن قراءتها مباشرة بواسطة العميل. على سبيل المثال ، لنفرض أن لدينا قاعدة بيانات بنظام أوراكل تحتوي إحصائيات خاصة بلعبة كرة القدم لفريق المؤسسة التي تعمل بها. كيف نعرضها على الوب؟ لو أنك وضعت وصلة لقاعدة البيانات هذه فإن المستخدم لن يفهم شيئاً أو يفيد من قاعدة البيانات تلك.
تمدنا سي جي آي بحل لهذه المشكلة على شكل بوابة. يمكنك استخدام لغة مثل OraPerl ( انظر الفصل التاسع : ( البوابات و قواعد البيانات و برامج البحث والفهرسة للمزيد من المعلومات) أو DBI Extension للغة بيرل Perl لتشكيل استعلامات بلغة SQL Structured Query Language لقراءة المعلومات الموجودة في قاعدة البيانات. بمجرد حصولك على المعلومات يمكنك تنسيقها و إرسالها إلى العميل . في هذه الحالة يقوم برنامج سي جي آي بعمل بوابة لقاعدة بيانات أوراكل ، كما هو موضح بالشكل 3-1
و بالمثل يمكن كتابة برامج بوابة لأي خدمة معلومات إنترنت أخرى مثل WAIS و NNTP (USENET NEWS) و الفصل العاشر – البوابات إلى مزودات معلومات إنترنت يوضح أمثلة للتفاعل مع خدمات الإنترنت الأخرى. بالإضافة إلى ذلك يمكنك أن تزيد من قوة البوابات باستخدام واجهة النماذج لطلب استعلام أو بحث عبارة من المستخدم و استرجاع و عرض معلومات افتراضية أو ديناميكية. سوف نناقش هذه المستندات الخاصة فيما بعد.
المستندات الافتراضية Virtual Documents :
إنشاء المستند الافتراضي أو الديناميكي هو جوهر سي جي آي . يتم إنشاء المستندات الافتراضية يتم لحظيا (على الطاير on the fly(. استجابة لطلب المعلومات من قبل المستخدم. يمكنك أن تنشيء مستندات افتراضية من نوع HTML أو نصوص أو صورية أو حتى صوتية. و على سبيل المثال، فإن المستند الافتراضي يمكن أن يكون على النحو التالي:
مرحباً بك إلى موقع المصرية لتقنية المعلومات
http://www.egybit.com/
أنت تزورنا من العنوان 216.74.100.135
نسبة التحميل على هذا المزود تبلغ 1.25
في هذا المثال ، هناك معلومتان ديناميكيتان : عنوان إنترنت Ip Address للمستخدم البعيد و متوسط التحميل على المزود. هذا مثال بسيط جداً في الواقع.
فمن ناحية أخرى يمكن إنشاء مستندات شديدة التعقيد بكتابة برامج يمكنها استخدام توليفة من مكتبات الصور و البوابات و النماذج. و على سبيل المثال نفرض أنك تدير معرض لوحات فنية متخصص في بيع نسخ من لوحات عصر النهضة وأنت مهتم بعرض مجموعتك على الوب.
تبدأ بوضع نموذج يطلب معلومات من المستخدم لاستغلالها في الترويج لمنتجاتك و تعرض نموذج بحث يسمح للمستخدم بإدخال اسم اللوحة التي يبحث عنها – كما يحتوي النموذج على قائمة منسدلة يختار منها المستخدم اللوحات الشهيرة و المعروفة.
بمجرد أن يقوم المستخدم بإرسال النموذج إلى المزود – يمكن للبرنامج أن يقوم بإرسال بريد إلكتروني إلى المستخدم أو يخزن المعلومات في ملف. و اعتماداً على اختيار المستخدم ، اما تظهر رسالة للمستخدم تفيد بعدم وجود اللوحة أو يتم عرض اللوحة و معها معلومات تاريخية عنها موجودة في موقع آخر على إنترنت.
و إلى جانب الصورة و المعلومات الأخرى ، يمكن عرض نموذج آخر فيه العديد من خيارات معالجة الصورة من اضاءة و تباين و تعديل حجم الصورة . يمكنك كتابة برنامج سي جي آي آخر لمعالجة الصورة على الطاير باستخدام مكتبات جرافيكية خاصة مثل gd و ارسال الصورة الناتجة إلى العميل.
هذا مثال معقد لبرنامج سي جي آي يستخدم امكانات عديدة ل سي جي آي. و سوف نناقش العديد من الأمثلة في هذا الكتاب.