RSS

التقنيات المستخدمة في بناء المواقع

قبل التذكير في بناء موقع على شبكة الإنترنت لا بد من النظر أولاً إلى التقنية التي سيتم استخدامها في بناء الموقع وحتى نتعرف على تلك التقنيات فإننا لابد أن نشير إلى نوعين أساسين من المواقع :
مواقع ثابتة (static web site): وهي المواقع ذات الصفحات الثابتة التي لا تتغير.بحيث يتم تصميمها ونشرها على الإنترنت بنفس الأسلوب المستخدم في طباعة البروشورات والنشرات ويطلق على تلك المواقع عادة ( مواقع بروشور)
مواقع دينامكية (Dynamic Websites): وهي تلك المواقع التي تحتوى في طياتها معلومات متغيرة يتحكم فيها صاحب الموقع بحيث يتم التحديث المستمر في تلك المواقع وبشكل دائم كما أنها تملك إمكانية التفاعل مع زائر الموقع من خلال النماذج والمنتديات ونحوها مما يعطيها روحا وحيوية وحركة.

ولا يخفى على أحد أن المواقع الديناميكية هيى الأساس لمواقع الإنترنت بينما المواقع الثابتة لا فائدة منها لأنه لا يستغل إمكانيات الإنترنت في التحديث المستمر والتفاعل مع الزوار

التقنيات المستخدمة
لبناء أياً من المواقع السالفة ذكرهما فإن هناك ثلاث تقنيات أساسية:
استخدام برامج التصميم الخاصة بمواقع الإنترنت كـ (Front page)ونحوها وتستخدم هذه التقنية في بناء المواقع الصغيرة و الثابتة التي تم الحديث عنها سابقا والحقيقة أن هذه التقنية هدفها الأساسي تصميم الموقع وليس بنائه واستخدامها في بناء المواقع أكبر خطأ يمكن ارتكابه لأنها ستنتج مواقع ثابتة غير متغيرة ولا متفاعلة مع زوارها كما أن تكلفة تعديلها وبنائها عالية جداً.
استخدام الصفحات الدينامكية (Dynamic Web Pages): وهي تلك الصفحات التي يتم بنائها بإحدى لغات الويب “Scripting Language”والتي تعمل على ربط الموقع الذي تم تصميمه مع قاعدة بيانات خاصة بالموقع لجلب المعلومات الخاصة أولاً بأول، وتلك المعلومات يتم عادة تحديثها من قبل صاحب الموقع وذلك من خلال لوحة تحكم تخوله من التحكم في النطاق الذي سمح به المبرمج، وأيضاً حسب حاجته التي تم تحديدها عند بناء الموقع.
كما يوفر هذا الأسلوب إمكانية التحديث المستمر للمعلومات كما تمكن زوار الموقع الذي تم بنائه بهذا الأسلوب من التفاعل معه بشكل جيد.
إلا أن هذا الأسلوب يتم استخدامه عادة في المواقع الصغيرة ومتوسطة الحجم ولا يصلح إطلاقا للمواقع الكبيرة التي يزداد حجم المحتوي فيها يوما بعد يوم كما تزداد زيارات الزوار وتفاعلاتهم أيضا.
استخدام تقنيات حلول إدارة المحتويات (CMS) وهي تلك التقنيات التي تساعد ليس في بناء موقع ضخم على شبكة الإنترنت فحسب بل أنها تساعد في إدارة المعلومات التي يتم تداولها من خلال الإنترنت وغيرها من وسائل النشر وبما تشمله هذه الإدارة من مستخدمين وصلاحيات ودورة عمل ونحو ذلك. أنها ببساطة نشرة الكترونية مصغرة تجعل بالإمكان التحكم الكامل بالمحتوى مهما كان حجمه ومهما كان عدد من يعملون في إعداده وتأليفه كما أنها تحدد صاحب الموقع من سيطرة المبرمج أو المصمم أو قيود البرمجة المزعجة حيث تعطي له الحرية الكاملة الفصل بين المحتوى التصميم والتحرك بين الصفحات وتوزيع المحتوي فيها.

عوامل اختيار التقنية الثابتة:
أولا: التكلفة والميزانية المحدودة لذلك.
ثانيا: حجم المحتوى وعدد الزوار المتوقع ونوعيتهم.
ثالثا: الخدمات المقدمة من قبل الموقع ومدى مشاركة الزوار.
 رابعا: الهدف الأساسي من الموقع.     

منقول 

  

 
التعليقات على التقنيات المستخدمة في بناء المواقع مغلقة

Posted by في 2011/10/23 بوصة تصميم مواقع

 

النظام العددي الثنائي Binary system

الحاسوب, ذلك الجهاز الذي يقوم بتلك الحسابات الخارقة, ويقوم بالتخزين والاسترجاع, والمحاكاة والتنفيذ, ذلك الجهاز الذي قلما تجد منزلاً لا يحتويه, الذي أصبح ضرورة من ضروريات الحياة اليومية ! , ألم تتساءل يوماً: ” سبحان الله, كيف يقوم بكل هذا ؟”
في موضوعنا هذا, سنتحدث بشكل مُبسط ومختصر عن أهم أساسيات عمل الحاسب الآلي, وهي الأعداد الثنائية (Binary number ), والتي تعتبر – تجاوزاً – لغة الحاسب الآلي, فكما يوجد للعرب لغة تتكون أبجدياتها من 28 حرفاً ( أ – ي ) , وللإنجليز لغة تتكون أبجدياتها من 26 حرفاً ( A – Z ) , كذلك الحاسب يمتلك لغة تتكون أبجدياتها من حرفين ( 0 , 1 ) , أو ( ON , OFF ) , أو بمعنى أكثر وضوحاً ( يوجد تيار , لا يوجد تيار ), وهذه اللغة كما ذكرنا تعرف باسم: الأعداد الثنائية… 

* تمثيل الأعداد الثنائية:

أعتقد الآن أنك تتساءل: ” ماذا يعني للحاسب يوجد تيار أم لا ؟ وماذا يفهم من ذلك ؟ ” , في الحقيقة كما هو الحال في لغة العرب فالألف لوحدها قد لا تعني شيئاً وكذلك الحال مع أختها الباء, ولكن عندما نجمعهم سويةً تتشكل لنا جملة مفهومة عند العرب وهي (أب) , وكذلك هو الحال مع الحاسب فمن خلال تشكيل مجموعة من الـ(1 , 0 ( يتمثل لنا رقم أو كلمة معينة, فعلى سبيل المثال: عندما نريد تمثيل العدد واحد بواسطة الأعداد الثنائية فإنه يتم تمثيله بهذا الشكل ( 01 )…

ومما تجدر الإشارة إليه, إننا عندما نريد أن نمثل عدداً ما, فإننا نكون محصورين بعدد معين من الـBit , وكل واحد أو صفر هو في الحقيقة عبارة عن ( one bit ) , وللتوضيح أكثر سنمثل الآن العدد واحد بواسطة ( 5 bit ) والتي ستكون بالشكل التالي (00001) 

كما ذكرنا, إننا محصورين بعدد معين من الـBit عندما نريد تمثيل عدداً ما, وليتضح الموضوع بشكل أكبر الآن سنمثل العدد 15 بالأرقام الثنائية والتي تكون كالتالي (1111) , نلاحظ إنه تم تمثيلها بواسطة (4 bit) , إذاً عندما أطلب منك أن تمثل لي العدد 15 بواسطة (3 bit) هل تستطيع ؟ .. في الحقيقة لا تستطيع وذلك لأنك لا تمتلك عدداً كافياً من الـBit, فكما لاحظنا إن العدد 15 يحتاج إلى (4 bit) أو أكثر لتمثيله لذا الـ(3 bit) لا تستطيع أن تقوم بهذه العملية…

قد تتساءل: ” كيف لي أن أعرف الأعداد التي أستطيع تمثيلها بواسطة عدد معين من الـBit ؟ ” , هناك معادلة رياضية بسيطة للإجابة على هذا السؤال, فمثلاً: عندما يكون لديك ( n bit ) حيث n هو رقم موجب متغير, فإنك تستطيع تمثيل الأعداد من العدد صفر إلى العدد (2^n) – 1, – حيث علامة ^ تعني مرفوع إلى الأس n – ولنجرب مثالاً عملياً على ذلك, ولنفرض إننا نريد أن نعرف الأعداد التي نستطيع تمثيلها بواسطة ( 3 bit ), فمن خلال المعادلة نجد إنها من العدد صفر إلى العدد سبعة…

– الأرقام الثنائية التي نستطيع تمثيلها بواسطة (3 bit –

* من الثنائي إلى العشري:

والآن قد تتساءل لتقول: ” ما هذا ؟ كيف سأحفظ مجموعات مكونة من الصفر والواحد لأعرف ماذا تعني؟ “, نجيبك بهدوء لنقول لك: يا أخي العزيز هّون عليك فليس هناك داعٍ للحفظ, توجد هناك عملية حسابية صغيرة نستطيع من خلالها معرفة العدد العشري من العدد الثنائي, ولنأخذ على سبيل المثال هذا العدد الثنائي (011001), في الحقيقة أنا الآن لا أعلم ماذا يُمثل هذا الرقم في الأعداد العشرية ! , ولكن أنا وأنت بعد قليل سنكتشف ماذا يمثل هذا الرقم, بالطريقة التالية:-

كما ترى, العملية بسيطة جداً, مجرد حسابات بالطريقة ذاتها مع إي رقم ثنائي أخر , ولتثبيت المعلومات سنقوم بهذه العملية مع العدد الثنائي (1111) والذي قلنا سابقاً إنه يمثل العدد 15 , لنرى هل ما قلناه كان صحيحاً أم لا ؟…

2^3 + 2^2 + 2^1 + 2^0 = 8 + 4 + 2 + 1 = 15

* من العشري للثنائي:

جميل جداً, ولكن بالتأكيد سنواجه مشكلة أخرى وهي: كيفية معرفة العدد الثنائي الذي يمثله ذلك العدد العشري؟, ولكن لا تخف بواسطة عمليات قسمة بسيطة نستطيع استخلاص العدد الثنائي من العشري, وذلك بقسمة العدد العشري على اثنين, في حالة لا يوجد باقي للقسمة يصبح العدد صفر, وفي حالة وجود باقي للقسمة يصبح العدد واحد, وهكذا نكرر عملية القسمة إلى أن نصل إلى الناتج صفر..أعلم إن الموضوع يبدو معقداً قليلاً , ولكن بالمثال العملي التالي ستتضح الفكرة – بأذن الله -, ولنفرض إننا نريد معرفة العدد الثنائي الذي يمثل العدد 41 , ببساطة نقوم بعمليات القسمة السابق ذكرها للحصول على الناتج:


كما رأينا, الطريقة بسيطة جداً والأمر مماثل لأي عدد عشري أخر نرغب في تمثيله ثنائياً, ولتأكد من صحة الحل نقوم بطريقة التحويل من العدد الثنائي للعشري للناتج الذي حصلنا ( 101001 ) عليه لنرى هل هو مطابق للعد 41 أم لا ؟ , وعند تطبيق هذه الطريقة نجد إن الناتج عبارة عن جمع لـ( 32 + 8 + 1) والذي يكافئ العدد 41…

* جمع الأعداد الثنائية:

والآن بعد أن تعرفنا على مجموعة من أهم الأساسيات في عالم الأعداد الثنائية, سننتقل إلى واحدة من أهم العمليات التي يُمكن تطبيقها على الأعداد الثنائية وهي عملية ( الجمع ) , فلنفرض مثلاً إن لدينا ( 3 bit ) وإننا نريد أن نجمع العدد 1 مع العدد 2 بواسطة الأرقام الثنائية, وأيضاً نريد أن نجمع العدد 3 مع العدد 3, كيف نقوم بهذه العملية ؟..ببساطة, نقوم بالطريقة التالية:

ماذا حدث؟ في المثال الأول ( 1 + 2 ) , أضفنا ( 1 + 0 = 1 ) , وأيضاً ( 0 + 1 = 1 ) , وأخيراً ( 0 + 0 = 0 ) , وبالتالي أصبح الناتج ( 011 ) , ولكن ماذا حدث في المثال الآخر ؟ أولاً ( 1 + 1 = 2 ) ولكن كيف؟ لا يوجد الرقم 2 في الأعداد الثنائية ! , إذاً لنراجع معاً كيفية الجمع في الأعداد العشرية ولنجمع مثلاً: 19 + 11 , في المرة الأولى نجمع (9+1=10) , ولكن في الحقيقة نحن نضع 0 , ويبقى معنا في اليد واحد نضيفه في عملية الجمع التالية والتي هي ( 1 + 1 = 2) , ونضيف عليها الـ1 الذي معنا باليد فيصبح لدينا العدد (30) , وكذلك نفعل مع الأعداد الثنائية ( 1 + 1 = 0 ) ولكن يبقى معنا واحد نضيفه في عملية الجمع التالية والتي هي ( 1 + 1 + 1 = 1 ) وكذلك يبقى لدينا في اليد واحد نضيفه في عملية الجمع التالية ( 0 + 0 + 1 = 1 ) , وهاهي الطريقة مع أي عدد ثنائي آخر…

* تمثيل الأعداد الثنائية السالبة:

تحدثنا عن الأعداد الثنائية ( الموجبة ) , ولكن ماذا عن الأعداد السالبة ؟ , هناك ثلاثة طرق للتعامل مع الأعداد الثنائية السالبة وهي ( sign magnitude ) , ( one’s complement ) , ( two’s complement ) , سنتحدث الآن عن الطريقة المُثلى للتعامل وهي الأخيرة (two’s complement ), والتي سنقوم بالتعامل معها بالشكل التالي:

نقوم بتمثيل العدد الموجب أولاً ( بالطريقة السابقة ) , ومن ثم نقوم بقلب جميع الأعداد ( الصفر للواحد , الواحد للصفر ), وأخيراً نُضيف إليها واحد فنحصل بالتالي على تمثيل العدد السالب, وليتضح الأمر لنفرض إننا نريد تمثيل العدد ( -1 ) والعدد (-3) بواسطة ( 3 bit ) – أنظر للشكل التالي – :

كما رأينا, الطريقة ثابتة مع أي عدد ثنائي أخر نرغب في تمثيله بالشكل السالب, ولكن هناك عدد من الملاحظات المهمة أثناء تعاملنا مع الأعداد السالبة والتي لابد أن تنتبه لها وهي كالآتي:-

– كما رأينا في تمثيل الأعداد الثنائية الموجبة, كنا محصورين بعدد معين من الـbit , وتعرفنا على المعادلة التي تخبرنا بالأعداد التي نستطيع تمثليها بواسطة عدد معين من الـbit , في تمثيل الأعداد الثنائية السالبة سيتكرر الأمر ذاته, ولكن مع اختلاف طفيف بالمعادلة , لماذا ؟ .. لأننا بواسطة ذلك العدد من الـbit , لن نُمثل فقط الأعداد الموجبة , ولكن سنقوم بتمثيل الأعداد الموجبة والسالبة معاً وذلك باستخدام المعادلة التالية: ولنفرض إن لدينا (n bit) , إذاً الأعداد التي نستطيع تمثيلها هي:

 من ( -2^(n-1) ) إلى ( 2^(n-1) – 1 ), ذلك يعني إن الأعداد التي نستطيع تمثيلها بواسطة (3 bit) في الـ(two’s complement ), هي من: ( -2^2 ) إلى ( ( 2^2) – 1) أي: من -4 إلى 3 , ونلاحظ هنا الاختلاف بين تمثيل الأعداد الموجبة والسالبة, حيث كانت الأعداد التي نستطيع تمثيلها بواسطة (3bit) في الأعداد الموجبة هي: من 0 إلى 7
– في نظام الـ(two’s complement ), نستطيع تمييز هل العدد سالب أم موجب من خلال النظر إلى الخانة الأولى من اليسار, فإن كان الرقم بـ0 , فهو في الحقيقة يمثل عدد موجب, وإن كان الرقم بـ1 , فإنه يمثل عدداً سالباً..


– لنستطيع معرفة العدد الثنائي السالب ماذا يمثل في النظام العشري, لا نستطيع استخدام الطريقة التي تعرضنا لها سابقاً (التحويل من ثنائي لعشري ) مباشرةً , ولكن نرى إن كان العدد سالباً ( بالنظر إلى أول خانة على اليسار كما ذكرنا ) , نقوم بعملية الـ(two’s complement ) له, وذلك من خلال القلب والإضافة بواحد – كما ذكرنا – لنحصل على العدد الموجب الذي يمثله ذلك العدد السالب, وبعد ذلك نقوم بالعملية السالف ذكرها وهي: التحويل من ثنائي لعشري, فعلى سبيل المثال نريد أن نعرف العدد السالب التالي ( 1011 ) ماذا يمثل؟ — أنظر للشكل التالي: 

– أخيراً, انتبه ألا تختلط عليك الأمور, فمثلاً عندما أسالك ماذا يمثل العدد التالي ( 111 ) , في الحقيقة الأمر يعتمد على النظام الذي تتعامل معه, فعندما تتعامل مع أرقام ثنائية موجبة فقط فالعدد السابق يمثل العدد 7 , بينما يمثل العدد -1 في نظام الـ(two’s complement ) -كما رأينا سابقاً –

بينما العدد 7 نمثله بالـ(two’s complement ), بالشكل التالي (0111), وبالتالي يجب أن تعرف أولاً مع أي نظام تعمل, لتستطيع التعامل مع الأرقام بالشكل الصحيح..

– قد تتساءل: ” لماذا تعاملنا في بادئ الأمر مع الأعداد الثنائية الموجبة, والآن تعاملنا مع الأعداد الثنائية السالبة, ألا يجدر بنا أن نتعامل معهم بطريقة واحدة ؟ ” , في الحقيقة هناك أنظمة لا تحتاج إلى أعداد ثنائية سالبة, وبالتالي نحن نحجز مساحة للأعداد الثنائية السالبة وهي في الحقيقة لن تستخدم, وبمعنى أوضح: كما ذكرنا سابقاً الـ(3 bit) في الأعداد الثنائية الموجبة نستطيع تمثيل الأعداد فيها إلى العدد 7, بينما عندما نتعامل مع نظام الـ(two’s complement ), لن نستطيع تمثيل إلا للعدد 3 ! , وليصبح الموضوع أكثر وضوحاً, تخيل معي أنك مهندسٌ إلكتروني وطُلب منك أن تُصمم آلة حاسبة, بالتأكيد ستقوم باستعمال نظام الـ(two’s complement ), لأن آلتك الحاسبة ستحتاج إلى أعداد موجبة وسالبة, بينما تخيل لو إنه طُلب منك أن تصمم ساعة إلكترونية, بالتأكيد ستتعامل مع الأعداد الثنائية الموجبة فقط, ومن هنا يكمن الفرق…

 
تعليق واحد

Posted by في 2011/10/21 بوصة حاسوب

 

مقدمة في الشبكات

الشبكة هي مجموعة من الحاسبات والأجهزة المتصلة بعضها ببعض لمشاركة المعلومات والبيانات وزيادة الإنتاجية والسرعة والتواصل .. وسنعرج على فئات الشبكات والمتطلبات الأساسية لتكوينها ..

* فئات الشبكات (Categories of Networks) :-
ثلاثة أنواع تختلف بالكم والحجم والمسافة والتقنية المستخدمة :-
1) الـ LAN اختصارا ً لكلمة (Local Area Network) وهي الشبكات التي يكون الاتصال فيما بين الأجهزة في نفس المكان أو ذات المبنى .. بمعنى هي شبكة محلية ذات نطاق محدود ..
2) الـ MAN اختصارا ً لكلمة (Metropolitan Area Network) أوسع من الـ LAN كأن تستخدم في نفس المدينة وهي عبارة عن مجموعة من شبكات الـ LAN
3) الـ WAN اختصارا ً لكلمة (Wide Area Network) تستخدم في الشبكات الكبيرة جدا ً كأن تكون بين دول أو قارات .. لدعمها المسافات الطويلة جدا ً ..

* أما المتطلبات الأساسية لتكوين أي شبكة :-
1) (NIC Card) وهي اختصار لكلمة Network Interface Circuit Card
2) وسائط الشبكات (Network Media)
3) موصلات الشبكات (Network Devise -Adapter-)
ذكر إيجاز بسيط عن كل متطلب :-

 1. (NIC Card) بطاقة مثبتة (Built-in) على اللوحة الأم (Mother Board) متوفرة في أغلب الأجهزة و إن لم تكن مثبتة, بإمكانك إضافتها عن طريق شراء بطاقة شبكة منفصلة .. فهي أساس الاتصال لأي جهاز وبدونها لا تستطيع الاتصال بأي شبكة في العالم .. فلو لم تكن لديك لما تمكنت من الاتصال بالإنترنت على سبيل المثال .. ونحن نعلم أن الإنترنت هو في الأساس شبكة عالمية كبيرة .. أيضا ً قد يطلق عليها البعض (Modem Card) بطاقة المودم ..

 .2-Network Media وسائط تسمح للبيانات الانتقال والتحرك من جهاز لآخر .. سواء كان هذا الجهاز كمبيوتر أو أي جهاز آخر موصل على الشبكة (Network Devise -Adapter)
* أكثر الوسائط شهرة واستخداماً :-
1. أسلاك متحدة المحور (Coaxial Cables)
2. أسلاك ثنائية ملتوية(Twisted Pair Cables)
3. أسلاك الألياف الضوئية (Fiber Optic Cables)
4. اللاسلكي (Wireless)
وسنتأتي على ذكر كل نوع من وسائط الشبكات بإيجاز :-

1- أسلاك متحدة المحور (Coaxial Cables) و يستخدم في الوصل ما بين الأطباق الفضائية والتلفاز (شبكات التلفزيون والهاتف).. 

2- أسلاك توستيد بير (Twisted Pair Cables) وهي صاحبة الاستخدام السائد في شبكات الـ LAN وأنظمة الهواتف (خطوط الهاتف و الـ DSL line)..
يهمنا معرفة أن لدينا نوعين من هذهـ الأسلاك هما :-Unshielded Twisted Pair Cable (UTP) والآخر Shielded Twisted Pair Cable (STP) .. والفرق بين النوعين هو أن النوع الأخير يتميز بوجود مادة عازلة إضافية تعمل كحجاب واقي ..
* أيضا ً نقطة يجب وضعها في الاعتبار, وهي أن النوع (UTP) يملك عدة فئات و أصناف -Categories- حيث يطلق عليها CAT1, CAT2 …. CAT7 والنوع الأكثر استخداماً من بين كل الفئات هو CAT5 .. وهو متوفر بكثرة ..
* نلاحظ في الصورة أن شكل السلك اعتدنا على رؤيته واستخدامه .. و,طالما أنك تحتاج شبكة سواءً للاتصال بصديق أو تصفح الإنترنت فبالتأكيد أنت بحاجة ٍ إليه .. ولا تنسى أنه الأكثر شيوعاً واستخداماً في وسائط الشبكات لعدة أسباب, من ضمنها التكلفة وسهولة الاستخدام أضف إلى ذلك تقليله حجم التشويش في خطوط الاتصال ..

 3- أسلاك الألياف الضوئية (Fiber Optic Cables) وكما نرى من اسمها أنها تعتمد على الضوء لذا فهي تتميز بالسرعة العالية جدا ً سواء في نقل البيانات أو كمية البيانات المنقولة الكبيرة .. ولأنها تعتمد على الليزر كضوء ٍ أساسي في عملها فبالتالي هي مكلفة جداً جدا ً ونادراً ما نرى من يستخدمها عدا الشركات الكبيرة جداً .. 

4- اللاسلكي (Wireless) وهو باختصار يعتمد على الموجات في عمله .. فالشبكات الاسلكية تستخدم الموجات الصغرى (microwave) أو موجات الراديو (radio waves) أو موجات الأشعة التحت حمراء (Infrared waves)

3. (Network Devise -Adapter) موصلات الشبكات, نطلق عليها أيضا أجهزة الشبكات .. ويُتطلب وجودها لضمان وجود شبكة لدينا .. ولدينا أجهزة عدة تتقارب في صفاتها كثيراً واختلافها عن بعضها الآخر صغير جداً .. لذا سأتطرق لها جميعاً بشكل سريع دون الدخول في التفاصيل ..

1- ريبيتر Repeaters : 

2- هَب :Hub 

3- برج :Bridge 

 

4- سوتش :Switches

5- راوتر  Routers:

* السوتش (Switches) غالبا ً ما يستخدم في الشبكات المنزلية أو في المعامل .. أيضا ً الراوتر (Routers) يُستخدم في الشبكات المتعددة والكبيرة والمختلفة الأنواع .. فلو كان لدينا شبكتان واحدة من نوع LAN و الأخرى من نوع WAN فبالتأكيد أنت بحاجة إلى استخدام الراوتر (Routers) .. أما إذا كانت لدينا شبكتان أو أكثر من نفس النوع فلا بأس من استخدام السوتش (Switches)
غالبا ً هذا هو ما يستعمل في أجهزة (موصلات) الشبكات, مرتبة حسب سهولة وكمية البيانات وحجم الشبكة المستخدمة ..

*المصادر:

Text book: Data Communication and networking by Behrouz A. Forouzan

 

  منقول من              http://knol.google.com/k/مقدمة-في-الشبكات#

 

 

 
أضف تعليق

Posted by في 2011/10/21 بوصة شبكات

 

مقدمة فى برمجة الحاسبات (Computer Programming)

مقدمة فى برمجة الحاسبات (Computer Programming)

1. ما هو الحاسب الالــى ( الكمبيوتر)
2. مما يتكون الحاسب الالـى
§ وحدة إدخال البيانات (Input Unit)
§ وحدة معالجـة البيانات (Processing Unit)
§ وحدة إخراج البيانات (Output Unit)
§ وحدة الذاكــرة الرئيسية المؤقتة (Main Memory Unit)
§ وحدة الحساب والمنطق (Arithmetic And Logical Unit )
§ وحدة تخزين البيانات (Secondary Storage Unit) 
3. كيف يعمل الحاسب الألى
§ ماذا يعنى مصطلح (Hardware)
§ ماذا يعنى مصطلح (Software)
§ أنظمــة تشغيل الحاسب الألى وكيف تتطورت.
4. ما ذا يعنى تطوير برنامج حاسب الى (Computer Program)
1- لغــة الألــة (Machine Language)
 2- لغة الرموز (Assembly Language)
3- اللغات الراقية (High Level Languages)
5.ما هى المراحل التى يمر بها البرنامج قبل ان يكون جاهزاً للعمل.
  1- مرحلة كتابة وتحرير البرنامج (Editing)
  2- مرحلة تحويل البرنامج إلى أوامر يفهمها الحاسب (Compilation)
  3- مرحلة ربط البرنامج بما يحتاجه من أوامر ووظائف خارجية (Linking)
 -4 مرحلة تحميل البرنامج إلى الذاكرة الرئيسية لتنفيذه (Loading)
  5-مرحلة تنفيذ اوامرالبرنامج فعلياً. (Execution)

1. ما هو الحاسب الالــى ( الكمبيوتر)    [1]

الحاسب الالـى هو جهاز متطور صُمم ليساعد الأنسان فى أداء العمليات الحسابية والمنطقيــة المعقدة والتى تحتاج إلى وقت طويل ومجهود كبير لإنجازها. ليس معنى ذلك ان الإنسان لا يستطيع ان يؤدى المهام التى يؤديها الحاسب بل ان الصحيح ان الحاسب دون علم الانسان وخبرته ليس له قيمة. ولكن الحاسب لديه سرعة جبارة فى اداء المهام التى يسندها اليه الانسان , حيث ان سرعة الحاسب تقدر بملايين أضعاف سرعة الانسان. لذلك كان استخدام الحاسب ضرورياً لتوفير الوقت والجهد والتكاليف.وتتلخص طبيعة عمل الحاسب فى انه يقوم بمعالجة البيانات التى يدخلها الإنسان إليـه من مصادر متعددة وفى صور مختلفة وهو ما يطلق عليه فى علم الحاسب (Data) إلى معلومات قيمة ومفيده وهو ما يطلق عليه فى علم الحاسب (Information) مع إمكانية حفظ وتخزين كم هائل من هذه البيانات او المعلومات. فمثلاً لو اردنا ان نجعل الحاسب يقوم بعملية حسابية مثل الجمع أو الضرب او ما شابه من العمليات المعروفة , توجب علينا أولاً ان نعطيه أطراف العمليه الحسابيه ثم نبين له كيف سيقوم بحساب هذه العملية ثم نوجهه الى كيفية انتفاعنا بالناتج من هذه العملية (هل نريده ان يعرض لنا هذا الناتج على الشاشة ام نريده ان يطبعها لنا على ورقة ام نريده ان يحفظ النتيجة لحين إستغلالها فى وقت أخر). وهنا يجب ان نوضح بعض المصطلحات التى يستخدمها محترفى الحاسب الالى مثل :

1- البيانات (Data) هى كل ما يتم إدخاله الى الحاسب الألى ليقوم بتحويله الى شئ مفيد للمستخدم بعد معالجتها ببرامج الحاسب المختلفة. أو لغرض تخزينها فى صورة الكترونية يتم إستخدامها وتحويلها فيما بعد الى أشياء مهمة وذات قيمة . ويمكن تصورها كالمادة الخام التى دون معالجتها بالشكل الصحيح لا تمثل قيمة فى حد ذاتها. وللبيانات (Data) أشكال وصور مختلفة فممكن ان تكون البيانات نصوص أو ارقام وممكن ان تكون صوراً أو مقاطع فيديو وممكن ان تكون مادة صوتية وهكذا الى أخره من الصور المختلفة.
2- المعالجــة (Processing) وهو ما يتم على البيانات الخام المدخلة إلى الكمبيوتر من أجل تحويلها الى معلومات قيمة ومفيدة للمستخدم. وتتم معالجة البيانات بواسطة برامج الحاسب المختلفة والت صممت لتتعامل مع البيانات حسب طبيعتها و الصورة التى اُدخلت بها الى الحاسب.

3- المعلومات (Information) وهى الناتج المفيد القيم الذى تم انتاجه بعد معالجة البيانات الخام التى ادخلت الى الحاسب مسبقاً. وهذه المعلومات يمكن الاستفاده منها بالشكل الذى يرغبه المستخدم فمثلاً يمكن ان تكون معروضة على الشاشة وممكن ان تكون مطبوعة أو حتى من الممكن أن تكون مخزنة ومحفوظة لحين إستغلالها فى اى وقت.

مما يتكون الحاسب الالـى

تُقســم أجزاء ومكونات الحاسب منطقيا أو حسب طبيعة عملها الى ستة وحدات رئيسية وهى كالأتــى: 

1- وحدة إدخال البيانات (Input Unit)

وهى الوحدة المسئولة عن إستقبال البيانات مع إختلاف طبيعتها وصورها وتوصيلها إلى الوحدات الأخرى لتتم معالجتها. ويتم إستقبال البيانات من خلال أجهزة إدخال البيانات المناسبة لنوعية وصورة البيانات المدخلة الى الحاسب فمثلاً تستخدم لوحة المفاتيح (Key Board) إذا كانت البيانات المدخلة فى صورة نصوص أو أرقام, ويستخدم المايكروفون (MIC) إذا كانت البيانات فى صورة مادة صوتية . ويستخدم المصور الضوئى (Scanner) فى حالة إذا كانت البيانات فى صورة صور ضوئية أو صور ورقية. وهكذا كلما أختلفت نوعية البيانات يختلف الجهاز الذى يستخدم فى إدخالها إلى الحاسب. وكلما تطور الحاسب نجد ان هناك أجهزة إدخال جديدة ظهرت لتناسب الانواع المختلفة من البيانات.

2- وحدة الحساب والمنطق (Arithmetic and Logical Unit – ALU)

وهى الوحدة المسئولة عن إجراء العمليات الحسابية والمنطقية مثل عمليات الضرب ,القسمة,الجمع والطرح وغيرها من العمليات الحسابية المعروفة مع ذيادة تعقيدهـا. بالإضافة إلى مسئولية هذه الوحدة عن القرارات المنطقية مثل المقارنة بين عنصرين أو قيمتين وتحديد ما إذا كانو متساويين أم أن أحدهما أكبر من الأخر.

3- وحدة الذاكرة الرئيسية (Main Memory Unit)

وهى المكان الذى يتم فيه تخزين البيانات المدخلة عبر أجهزة إدخال البيانات بشكل مؤقت لحين معالجتها وإجراء العمليات الحسابية والمنطقية عليها. وايضاً تستخدم لتخزين المعلومات الناتجة من عملية المعالجة لحين إخراجها إلى المستخدم أو لحين تخزينها وحفظها بشكل دائم فى وحدات التخزين الدائمة (Secondary Storage). وتتميز هذه الذاكرة الرئيسية بأنها قليلة السعة إذا ما قورنت بوحدات التخزين الدائمة (Secondary Storage) ولكنها فى نفس الوقت سريعة جداً فى التخزين أو فى استرجاع البيانات والمعلومات المخزنة عليها. 

4- وحدة التخزين الدائم للبيانات (Secondary Storage Unit)
وتستخدم هذه الوحدة لتخزين البيانات والمعلومات بشكل دائم يُمكن من إستخدامها والاستفادة منها فى أى وقت لاحق. وتتميز هذه الوحدة التخزينية بالسعــة الضخمة التى تمكن من حفظ بلايين المعلومات وتنظيمها بالشكل المرغوب فيه ولمدد طويلة. كما تتميز أيضاً بتنوع أشكالها فمثلاً هناك ما يعرف بالهارد ديسك
 (Hard Desk) والذى يعتبر الصورة البديهية لوحدات التخزين الدائمة وعادة لا يخلو اى جهاز حاسب اّلى من هذه الوحدة وتتميز بسعتها الكبيرة جداً والتى لا تكف الشركات العاملة فى مجال تصنيعها عن زيادة أحجامها بشكل مستمر وسريع جداً. وهناك ما يعرف بالإسطوانات (Compact Drive – CD) التى تعتمد على تكنولوجيا الليز فى التسجيل عليها والقراءة منها. وهناك العديد من الأشكال الأخرى التى تُستخدم لحفظ البيانات والمعلومات بشكل ثابت يُمكن من نقلها من مكان إلى أخر.

5- وحدة التحكم المركزية (Central processing Unit – CPU )

تعتبر هذه الوحدة هى المدير لجهاز الحاسب الالى وهى المنسق لعمل الوحدات الأخرى. يمكن ان تتخيل هذه الوحدة كما لوكانت مديراً لاوركسترا تعزف سيمفونية أو لحناً . فكلاً من العازفين يستطيع ان يعزف بمفرده ولكن لن يؤدى هذا الى لحن بديعاً او عملاً فنياً ذو قيمة, ولكن ستتزاحم الأصوات وتشُز النغمات. ولكن بوجود القائد ينتظم العمل وينتج إنتاجاً مفيداً ذو قيمة. وهكذا هو دور وحدة التحكم, فهى التى تأمر وحدة إدخال البيانات (Input Unit) بأن تأخذ مدخلات وان تحفظها فى الذاكرة الرئيسية (Main Memory) بل و تحدد لها فى أى مكان فى الذاكرة سيكون التخزين.وهى التى تأمر وحدة الحساب والمنطق(ALU) بأن تأخذ البيانات المخزنة فى الذاكرة الرئيسية فى أماكن محددة وأن تُجرى عليها عمليات حسابية أو منطقية معينة. وهى التى تأمر وحدة إخراج البيانات(Output Unit) بإخراج النتائج والمعلومات الى المستخدم فى الصورة التى يرغبها المستخدم , وهى التى تقوم بحفظ الملفات والمعلومات بشكل دائم على وحدة التخزين الدائمة(Secondary Storage) وهى التى تستدعي هذه البيانات المخزنة مرة أخرى فى حالة الرغبة فى تعديلها أو إستغلالها فى غرض أخر. وهكذا فهى بالفعل العقل المدبر والمتحكم فى كل شئون الحاسب الالـى.
6- وحدة إخراج البيانات (Output Unit)

هذه الوحدة هى المسئولة عن إخراج المعلومات النهائية بعد ان تمت عليها عمليات المعالجة او مايسمى (Processing) . ويمكن ان تخرج هذه المعلومات فى صور مختلفة حسب رغبة المستخدم وحسب توفرأجهزة إخراج البيانات المناسبة (Output Devices). فمثلاً ممكن ان يكون إخراج البيانات فى صورة عرض على الشاشة او فى صورة طباعة على الطابعة او فى صورة رسومات على اجهزة الرسم الهندسى او غيرها من الاشكال المتعددة.

كيف يعمل الحاسب الألى

كما ذكرنا فى تعريفنا للحاسب الألى انه جهاز متطور صُمم ليساعد الأنسان فى أداء العمليات الحسابية والمنطقيــة المعقدة والتى تحتاج إلى وقت طويل ومجهود كبير لإنجازها. وكغيره من الأجهزة يتكون الحاسب الألى من مجموعة كبيرة من الأجزاء والوحدات التى تؤدى كل منها وظيفة ودور محددين. و يُطلق المتخصصين فى مجال الحاسب الألى على هذه الأجزاء مُجمعة مصطلح (Hardware). إذا فكلمة ال (Hardware) تعنى كل الاجزاء الاجهزة والمكونات الاساسية للحاسب الألى وتشمل على سبيل المثال لا الحصر (لوحة المفاتيح – المؤشر-جهاز قراءة الاسطوانات المدمجة- الشاشة – إلخ…) بالإضافة إلى الإجهزة الإضافية المكملة مثل (الطابعــة, السماعات, المايكروفون – إلخ …) .
ولكن كل هذه الأجهزة تحتاج الى أوامر لتشغيلها وحسن إستغلالها للوصول إلى الفائدة منها, فهى وحدها لاتمثل قيمة فى حد ذاتها لذا كان من الضرورى وجود برامج تشغيل لكل هذه الأجهزة. ويطلق المتخصصين فى مجال الحاسب الالى على هذه البرامج مصطلح (Software). إذاً فكلمة (Software) تعنى كل البرامج والاوامر التى تستخدم لتشغيل أجزاء ومكونات الحاسب وايضاً تشمل البرامج التى تعمل على معالجة البيانات المدخلة للحصول على نتائج ومعلومات مفيدة للمستخدم.
 أنظمـة تشغيل الحاسبات وكيف تتطورت
 كما اتضح لنا ان اجزاء ومكونات الحاسب الالى المختلفة الـ (Hardware) لاتعمل بمفردها ولكن تحتاج الى اوامر وبرامج لتديرها وتوظفها كما ينبغى. ولم تكن الحاسبات الالية بهذا التطور والقوة التى عليها الان فقد كانت متواضعة السرعة والسعة التخزينية وكانت تستطيع ان تؤدى وظيفة واحدة فى الوقت الواحد. بمعنى انك لو أردت ان تؤدى اكثر من عمليه حسابية مثلاً فإنه يستلزم عليك ان تأخذ دورك وتنتظر حتى يفرغ الحاسب من أداء المهمة التى شرع فيها وهكذا. لذلك كان الناس يأتون بما يريدون تنفيذه من مهام ويسلمونها للشخص المسئول عن تشغيل الحاسب والذى عادة ما يطلق عليه الـ (Computer Operator) والذى بدوره يدخل البيانات الخاصة بكل عملية إلى الحاسب الالى فى دورها بعد انتهاء الحاسب من أداء المهمة الحالية. فتخيل كيف كانت صعوبة الامر إذا اردت ان تنفذ عشرات او مئات المهام. بمرورالوقت أتضح ان إعتمادنا على العنصر البشرى الـ (Computer Operator) فى الأنتقال بين المهام التى يقوم بأداءها الحاسب الالى قد يضيع الكثير من الوقت فبدأ إشتغال العلماء بأن يعتمدوا على برنامج يقوم هو بإدارة عملية تنفيذ المهام وأطلقوا عليه إسم نظام التشغيل (Operating System) . ويمكننا تعريف نظام التشغيل (Operating System) على انه نظام اّلى(Software) لإدارة كل شئون الحاسب الالى مثل تنفيذ البرامج والاوامـر والتنسيق بين المهام لضمان استمرار عمل الحاسب بشكل منتظم ومحكم.
 تطوير برامج الحاسب الألــى 

برامج الحاسب الالى هى عبارة عن مجموعة مسلسلة من الاوامر التى يقوم الحاسب بتنفيذها لأداء مهمة أو أكثر. عادة مايكون هناك بيانات مدخلة للبرنامج ليقوم بمعالجتها وإخراج معلومات ونتائج ذات قيمة لمستخدم هذا البرنامج.

كيف يتم كتابة برامج الحاسب الالى 

يتم كتابة برامج الحاسب الالى بإستخدام لغات البرمجة (Programming languages) والتى هى عبارة عن مجموعة كبيرة من الاوامر والجمل التى يستخدمها المبرمج او مطور البرنامج للتعبيرعن الاشياء والمهام التى يطلب من الحاسب تنفيذها. فهى كأى لغة بها كلمات وجمل يستخدمها مجموعة من البشر للتواصل بينهم وللتعبير عن كل ما يحتاجه أحدهم من الاخر. وقد مرت لغات البرمجة بعدة مراحل حتى تصل إلى المستوى الراقى الذى هى عليه الأن. وسنسرد أهم هذه المراحل فيما يلى :

لغة الألــة (Machine Language) 

وهى اللغة التى يفهما الحاسب الالى وينفذها مباشرة عن طريقة وحدة التحكم المركزية الخاصة به او ما يسمـى (Central Processing Unit ). وهى مرتبطة فى شكل ومعنى أوامرها بنوع الحاسب الذىستنفذ عليه هذه الاوامر بمعنى ان لكل نوع من انواع الحواسب لغة الة خاصة به لان هذه اللغات عادة ما يضع قواعدها واوامرها مصنعوا أجهزة الحاسب انفسهم.واوامر لغة الالة فى طبيعتها عبارة عن نصوص رقمية تتكون من رقمين 1 , 0 وهى الشكل الذى تفهمه اجزاء الحاسب وتخاطب بعضها بإستخدامه. وبما ان الحاسب لايفهم إلا لغة الالة المكونة من 1 , 0 توجب على مطور البرامج إستخدام نفس اللغة ليخبرالحاسب بما يريده وهو ما كان امراً فى غاية المشقة وهو ما جعل عدد المطورين للبرامج قليل جداً وبالتالى عدد البرامج الحاسوبية المطورة قليل جداً. 

لغـة الرمـوز (Assembly Languages) 

نتيجة لصعوبة التعامل بلغة الالـة (Machine Language) إتجه مطوروا البرامج الى تسهيل مهتهم فى التعامل مع الحاسب فبدلاً من إستخدام الأوامر الصعبة المكونة من 1 , 0 بدأو فى استخدام إختصارات إنجليزية سهلة للتعبير عن الاوامر الصعبة فى لغة الالـة وبعد كتابة البرنامج بإستخدام هذه الاختصارات والرموز يقوم برنامج أخر بعمل المترجم فيقوم بفك هذه الرموز وتحويل هذه الاختصارات الى لغـة الالة حتى يفهمهاالحاسب. ويطلق على هذا البرنامج المترجم (Assembler) . ونتيجة لهذا التقدم الكبير نسبياً فى هذا الوقت تطورت صناعة البرمجيات شيئاً فشيئاً لكنها ما زالت مهنة شاقة وبها الكثير من ضياع الوقت حيث انه كان يستلزم لتنفيذ مهمة واحدة كتابة الكثير من الأوامر فى صورة عدد كبير من الخطوات.

اللغات الراقيــة (High Level Languages)  

بمرور الوقت اصبح طموح مطورى البرامج يتعدى كل ما انجزوه وبدأو فى تطوير لغات برمجة تشبه اللغة التى يتحاورون بها فى حياتهم العادية وهو ما أطلق عليه مصطلح(High Level Languages) وتتميز هذه اللغات بأنها سهلة الإتقان وتستطيع بإستخدام جملة واحدة تنفيذ الكثير من الأوامر مما ادى بإستخدامها إلى زيادة الإنتاج من البرامج والتطبيقات التى يحتاجها الناس فى حياتهم اليومية. ولكن كما اتفقنامسبقاً ان الحاسب لا يفهم إلا لغة الالــة, لذا لابد من وجود مترجم يحول الجمل والاوامر المكتوبة بهذه اللغات الراقية الى لغة الالــة. ويطلق على هذا الببرنام المترجم (Compiler). وسوف نتعامل فى هذه السلسلة من المقالات مع لغة ال (C) كمثال للغات الراقيـة.

ما هى المراحل التى يمر بها البرنامج قبل ان يكون جاهزاً للتنفيذ

1- مرحلة كتابة وتحرير البرنامج (Editing)

يمر البرنامج بعدة مراحل قبل ان يكون جاهزاً للتنفيذ بداية بمرحلـة كتابة البرنامج او ما يطلق عليها مرحلة التحرير للبرنامج (Editing) وعادة ما تتم هذه المرحلة بإستخدام برامج تحريرمخصصة لكتابة البرامج والتطبيقات بلغة برمجة معينة وتسمى (Editors) وعادة ما تكون هذه البرامج مجهزة بالعديد من الوسائل المساعدة التى تجعل مرحلة الكتابة سهلة وشبه نمطية وخالية من الاخطاء النصية فى اوامر لغة البرمجة المستخدمة وهو ما يُطلق عليه (Syntax Errors). وهذه المساعدات بدورها تجعل المبرمج يصرف اهتمامه الى التفكير فى وضع الحل المناسب للمشكلة التى من أجلها كتب البرنامج دون الانشغال بأعمال التنسيق.
2- مرحلة تحويل البرنامج إلى أوامر يفهمها الحاسب (Compilation)
بعد الانتهاء من كتابة البرنامج والتأكد من سلامته من الأخطاء النصية للاوامر والجمل, يتم تحويل البرنامج الى اللغة التى يفهما الحاسب الالى او ما يسمى بلغـة الالـة (Machine Language) لانه كما ذكرنا مسبقاً ان اللغات الراقية (High Level Languages) التى يُكتب بها البرامج هى لغات لا يفهما الحاسب الالى وإنما تُستخدم لتسهيل كتابة البرامج . ويقوم بدور الترجمة والتحويل الى لغة الالــة برنامج يسمى (Compiler).

3- مرحلة ربط البرنامج بما يحتاجه من أوامر و وظائف خارجية (Linking)

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

4-مرحلة تحميل البرنامج إلى الذاكرة الرئيسية لتنفيذه (Loading)

بعد ترجمة البرنامج من لغات البرمجة الراقية (High Level Languages) الى لغة الالة التى يفهمها الحاسب وبعد تجهيزالبرنامج بكل ما يحتاج اليه من اوامر ووظائف خارجية, اصبح البرنامج جاهزاً للتنفيذ ولكن حتى يتسنى لوحدة التحكم المركزية او ما يطلق عليه ال (Centeral Processing Unit) لابد من تحميله من وحدة التخزين الدائمــة (Secondary Storage) إلـى وحدة الذاكرة الرئيسية القريبة من وحدة المعالجة حتى يتم التنفيذ بسرعة.

5-مرحلة تنفيذ أوامر البرنامج فعلياً (Execution)

وهى المرحلة النهائية وفيها يتم تنفيذ اوامر البرنامج بالترتيب واحداً تلو الاخر حتى الانتهاء منها جميعاً وخلال هذه المرحلة يقوم المعالج او ما يسمى بالـ (Processor) بتوجيه وحدات الادخال الى استقبال البيانات اللازمة من المستخدم من خلال أجهزة الإدخال, ويوجه وحدات الاخراج الى اخراج المعلومات الى المستخدم عبر اجهزة الإخراج المناسبة وهكذا حتى ينتهى البرنامج.

 

المراجِع
C How To Program 5th Edition ISBN: 0132404168 © 2007, pp. 1112 by Deitel
http://www.deitel.com/Books/C/CHowtoProgram5e/tabid/1704/Default.aspx

 
أضف تعليق

Posted by في 2011/10/21 بوصة حاسوب

 

الويب الدلالية : فرع من فروع الذكاء الاصطناعي

الويب الدلالية
فرع من فروع الذكاء الاصطناعي

تعرف الويب الدلالية (أو ما يطلق عليها أحيانا “الويب ذات الدلالات اللفظية” أو “الويب ذات المعنى”) (Semantic Web) على أنها “شبكة بيانات بالمعنى، أي أنه يمكن للبرامج الحاسوبية الخاصة أن تعرف ماذا تعني هذه البيانات”(رجب، 2007). ويتطلب الوصول لهذه الطريقة من التفسير والفهم للبيانات الاستعانة بالانتولوجي (Ontology)، والذي يعرف على أنه طريقة لتمثيل المفاهيم وذلك عن طريق الربط بينها بعلاقات ذات معنى، حتى تسهل ربط الأشياء الموجودة بعضها البعض ولفهم أوسع للمفاهيم المختلفة.

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

ومن هذه المشكلة ظهرت فكرة “الويب ذات الدلالات والمعاني اللفظية”، أو ما يطلق عليه بالانجليزية مصطلح “سيمانتك ويب”، والتي هي امتداد للويب الحالية ولكن تختلف عنها بأنها تتفهم مدلولات الألفاظ والمعاني البشرية.

يمكن تمثيل الويب الدلالية بنسيج مترابط من المستندات التي تحتوي على معلومات محولة إلى معطيات يمكن للآلات قراءتها وفهم محتواها ومن ثم تقييمها.

وللويب الدلالية تعريفات عدة من أشهرها تعريف مخترع الويب السيد تيم برنرز لي (Tim Berners-Lee, 2001) والذي ينص على أن الويب الدلالية “… هي امتدادا للشبكة الحالية بحيث تكون للمعلومات معنى محدد، وهذا سيمكن أجهزة الحاسب والبشر على العمل في تعاون أفضل”.
أما موسوعة ويكيبديا العربية، فقد عرفت الويب الدلالية على أنها “… ثورة جديدة في عالم الويب حيث تصبح المعلومات قابلة للمعالجة من قبل الحاسبات بدلاً من كونها بشرية التوجيه في الويب الحالي. وبالتالي فإن الويب الدلالي يسمح للمتصفح أو البرمجيات العميلة بالبحث والعثور على المعلومات ومشاركتها بدلاً عنا.”

ولإضافة طبقة من الدلالات اللفظية (أي المعنى) إلى الشبكة القائمة، هناك ثلاثة تحديات تحتاج إلى تحقيق وهي (Harmelen, 2004 ) :
تركيبة واضحة لتمثيل واصفات البيانات (Metadata).
مفردات لتوصيف واصفات البيانات.
واصفات بيانات لكل صفحة من صفحات الويب.

تقنية الويب الدلالية
يتألف الويب الدلالي من نماذج بيانات (data models) تستخدم عدداً من التقنيات لتمثيلها منها:
لغة لتنسيق تبادل البيانات: مثل لغة إطار وصف المصدر (Resource Description Framework) واختصارها RDF، أو بدائلها مثل RDF/XML و N3 و Turtle و N-Triples.
مخططات العلاقات مثل (RDF Schema) ولغة وجودية الويب (Web Ontology Language) واختصارها OWL، والتي تسهل عملية توصيف المفاهيم والمصطلحات والعلاقات ضمن مجال معين.
محرك الاستدلال: والذي يحتوي على قواعد استدلالية تستخدم اللغتان السابق ذكرهما ولغات أخرى مبنية عليها لإعطاء نتائج منطقية تماما كما يفكر البشر.

فعلى سبيل المثال، لو تم ربط كل صفحة من صفحات الويب بخريطة مفاهيم (أنتولوجي) تبين المفاهيم التي تتناولها صفحة ما، فستتمكن محركات البحث في المستقبل البحث عن مفهوم معين واسترجاع نتائج أكثر دقة أو حتى استرجاع صفحات لم يتم ذكر المفهوم فيها – ولكن لأن خريطتها المفاهمية تحتوي على هذا النوع من المفهوم- قام محرك البحث باسترجاعها.

أهمية الويب الدلالية
تكمن أهمية الويب الدلالية في تقديم معايير مفتوحة يمكن استخدامها في تكشيف محتويات مصادر المعلومات، عن طريق استخدام مجموعة من الأدوات التي تساعد في تحقيق ذلك (آل عبدالمحسن، 2008) مثل:
لغة الترميز الموسعة XML (Extensible Markup Language)، وخرائط المفاهيم أو الأنتولوجي Ontology، والمعيار العام لوصف المصادرRDF schema (Resource Describe Framework)، ولغة انتولوجيا الويب (Ontology Web Language) OWL.

أيضا تعتبر هذه اللغات معايير قياسية (Standards) متاحة للجميع ويمكن الرجوع إليها كمعيار موحد في تمثيل البيانات، وبالتالي فإن استخدامها في تطبيقات الويب الدلالية ستمنح البيانات قابلية أكثر للتبادل (Interoperability) والوصول (Accessible) من دون الحاجة لتحويلها إلى صيغة يفهمها الطرف الآخر.

إن مبادرة الويب الدلالية هي نظرة مستقبلية للشبكة العالمية ويشترك الكل في تكوينها ونجاحها. لذا فإن الأمثلة التي نطرحها تمثل رؤية مستقبلية فيما لوتحقق إنشاء الويب الدلالية. إلا أن هذه الرؤية المستقبلية لا تمنع أبدا من أن نستفيد من تقنياتها حاليا وسنبين في سياق هذا البحث ما يوضح عددا من التطبيقات التي تستخدم تقنيات الويب الدلالية لاستعراض نجاحاتها.

استخدامات الويب الدلالية
يستخدم الويب الدلالية في تطبيقات عدة منها التجارية والطبية والتعليمية واللغوية وغيرها. ولا يمكن حصر جميع التطبيقات الممكنة في هذا البحث ولكن سنعمد إلى إعطاء مثالين من مجالين مهمين هما المجال التجاري والمجال الطبي.

ففي المجال التجاري هناك العديد من التطبيقات والأبحاث المفيدة في هذا المجال، على سبيل المثال، تم استخدام الويب الدلالية في عمل بوابة تجارية تضم معلومات عن قطع غيار السيارات، مجلوبة من قواعد بيانات صناع وموردي ومستخدمي هذه القطع في أوروبا، وتم التوليف بين هذه البيانات باستخدام تقنيات الويب الدلالية وذلك لعمل أنتولوجي مشتركة بين جميع الأطراف المستفيدة لتوصيف بياناتها. كما تم استخدام تقنيات الويب الدلالية لإيجاد حلول لبعض المشاكل التي تحصل لقطع الغيار المعطوبة وذلك عن طريق إجراء استعلامات ذكية على البيانات الموجودة (Bryan M. and Cousins, 2008).

كما يمكن استخدام تقنيات الويب الدلالية لمساعدة الباحثين في المجال الطبي على إدارة البحوث في العلوم الطبية الحديثة، وتمكين فهم أفضل للأمراض، وتسريع عملية تطوير العلاج. فعلى سبيل المثال، قام (Oldham et al, 2006) بعمل نظام للسجلات الطبية للحد من الأخطاء الطبية، وتحسين كفاءة الطبيب مع المريض، وتحسين سلامة المرضى والارتياح في الممارسة الطبية، وتحسين عملية الفوترة لزيادة دقة الترميز. وقد استند النظام على تقنيات الويب الدلالية لتوصيف السجلات الطبية وترميزها لسرعة الوصول إليها وللقيام ببعض العمليات الاستنباطية منها. يذكر أن هذا النظام مستخدم حاليا في مركز أثينا للقلب (Athens Heart Center).

المصادر والمراجع
رجب، عبد الحميد. تقنيات الويب الدلالي للمكتبات الرقمية .- cybrarians journal .- ع 14 (سبتمبر 2007) . – تاريخ الإتاحة 28-6-2008. – موجود على العنوان: http://www.cybrarians.info/journal/no14/semantic.htm

ويكيبيديا، الويب الدلالي. تاريخ الإتاحة 28-6-2008. موجود على العنوان:
http://ar.wikipedia.org/wikiويب_دلالي/

حسين آل عبدالمحسن. نحو معالجة معلوماتية أذكى (Semantic Web) تاريخ الإتاحة 28-6-2008. موجود على العنوان:
http://www.doroob.com/?p=26668

Berners-Lee, T., J. Hendler and O. Lassila (2001). The Semantic Web. Scientific American 284(5): 34-43.

Harmelen, F. v. (2004). The Semantic Web: What, Why, How, and When. IEEE Distributed Systems Online vol. 05 (no. 3).

Bryan M. and Cousins J. (2008). Applying Semantic Web Technologies to Car Repairs. In the Book Semantic Web for Business: Cases and Applications. Information Science Reference. 

Nicole Oldham, Amit Sheth, Subodh Agrawal, Jonathan Lathem, Harry Wingate, Prem Yadav and Kelly Gallagher. (2006). Active Semantic Electronic Medical Record. 5th International Semantic Web Conference, Athens, GA, USA, November 5-9, 2006, LNCS 4273

منقول من http://knol.google.com/k/الويب-الدلالية#

 
أضف تعليق

Posted by في 2011/10/21 بوصة تصميم مواقع

 

مفاهيم في الشبكات – 3

مفهوم المقابس Concept of Sockets

من أجل تمكين التطبيقات من أن تتصل بشبكة حاسوب وتتبادل البيانات مع غيرها من التطبيقات عبر الشبكة نفسها، تم إنشاء مفهوم المقبس socket، كتجريد، يشبه مفهوم واصف الملف file descriptor، في سياق أنظمة التشغيل. لنتوقف أولاً قليلاً لنراجع المفاهيم السابقة من أجل أن نلخص الصورة الكبيرة بسرعة.

تتحكم البروتوكولات في عمليات الاتصال، لأنها هي التي تملي القواعد التي يجب أن يسير عليها جميع أطراف الاتصال. على الإنترنت، مجموعة بروتوكولات TCP/IP هي المسؤولة عن هذا الدور. هذه المجموعة هي عبارة عن مجموعة من البروتوكولات تتوزع على الطبقات المختلفة كما مرّ، ويجب أن يعمل عدد منها (واحد على الأقل في كل طبقة) من أجل إتمام الاتصال وتبادل البيانات. في صميم هذه المجموعة من البروتوكولات، بوتوكول الإنترنت IP، المسؤول عن توصيل الرسائل من طرف إلى آخر، عبر عدة خطوات (مروراً بعدة أطراف وسيطة). هذا البروتوكول يتطلب أن يكون لكل طرف على الشبكة معرّف فريد، أو عنوان خاص لا يتكرر مع أكثر من طرف واحد (هذا العنوان يرتبط بكرت الشبكة، وليس بالحاسوب، لذا فإن حاسوباً واحداً قد يملك أكثر من عنوان). لأن هذه العناوين مرتبطة ببروتوكول IP (هو الذي يتطلبها ويفهما)، فإنها تسمى عناوين IP.

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

هنا يأتي دور بروتوكولات أخرى (من نفس مجموعة بروتوكولات TCP/IP)، في طبقة أخرى (طبقة النقل). هذه البروتوكولات (في الغالب الأعم إما TCP أو UDP)، هي المسؤولة عن إنشاء الاتصال ليس بين طرفين فحسب، وإنما بين تطبيقين محددين على كل طرف. هي مسؤولة عن تمييز الرسائل الواردة (والصادرة)، وإعطاء كل ذي حق حقه. الوسيلة التي يتم بها ذلك تشبه فكرة العنونة في بروتوكول IP، لكن العناوين هنا أبسط وأقصر، وتميز فقط كل الخدمات (التطبيقات) ضمن جهاز واحد بعنوان IP واحد. العنوان لكل تطبيق في هذه الطبقة يسمى رقم منفذ port number. ولذلك تسمع كثيراً عن المنافذ المفتوحة والمغلقة في كل جهاز، والتي تعبّر في النهاية عن الخدمات المتوفرة (أو التطبيقات الشغالة) في كل جهاز. بعض أرقام المنافذ المتعارف عليها لخدمات شهيرة، منفذ 80 لخدمة الوبHTTP ، ومنفذ 25 لخدمة البريد SMTP، ومنفذ 20 لخدمة نقل الملفات FTP. تستطيع أن تجد قائمة كاملة بأرقام المنافذ على هذا الرابط: http://www.iana.org/assignments/port-numbers.

من ذلك تعرف أن التطبيقات إن أرادت أن تتواصل فيما بينها، فلا بد لها من تحديد عنوان الطرف الآخر، وعنوان التطبيق النظير على ذلك الطرف. عندما يكتب المبرمجون التطبيقات فإنهم يحددون هذه الأشياء، أو يتركون تحديدها للمستخدم، كما هو الحال في المتصفح. ربما كان من المفيد أن أذكر هنا أن المبرمج أو المستخدم قد لا يضطر لتحديد عنوان IP مباشرة (من الصعب جداً تذكر هذه العناوين)، لأن هناك نظاماً خاصاً يحول بين عناوين IP وبين أسماء أكثر تعبيراً وأسهل للتذكر تسمى أسماء الدومين domain names. المهم هنا أن هناك ثلاثة عناصر تحدد كل اتصال: عنوان IP، ورقم منفذ، ونوع البروتوكول في طبقة النقل (TCP أو UDP)، حيث يمكن أن يستخدم نفس رقم المنفذ مع أي من هذين البروتوكولين. هذه الثلاث عناصر على طرف، مع ما يقابلها من ثلاث عناصر على الطرف الثاني، تحدد اتصالاً فريداً بين تطبيقين محددين.

لقد وصلنا بالفعل إلى بيت القصيد. باختصار: مجموع المكونات الثلاثة: عنوان IP ورقم منفذ وبروتوكول محدد هو اصطلاحاً مقبس. تخيّل أن الاتصال بين تطبيقين هو عبارة عن سلك طويل في كلا طرفيه قابس plug. وتخيّل أنك تريد أن يكون هذا الاتصال بين تطبيقين محددين على حاسوبين محددين. هذا يعني أنك تريد أن تدخل القابس على أحد أطراف سلك الاتصال في مكان، وتدخل القابس على الطرف الثاني في مكان آخر. القابس يحتاج إلى مقبس socket ليدخل فيه. المقبس هنا هو مجموع عنوان الحاسوب مع رقم المنفذ مع نوع البروتوكول (منطقياً).

من ناحية تقنية، في البرمجيات التي تمثل بروتوكولات TCP/IP، يرتبط المقبس بهيكل بيانات معين data structure، إلى جانب عدد صحيح فريد يعرّف المقبس. تحتوي هياكل البيانات هذه على معلومات تتعلق برقم المنفذ للتطبيق المصدر والتطبيق الوجهة، وعنوان بروتوكول الإنترنتIP للطرف المصدر والطرف الوجهة، وربما معلومات أخرى اعتماداً على نوع المقبس. يوضح الشكل رقم 3 مفهوم المقابس، وعلاقاتها مع التطبيقات وأرقام المنافذ.

مفهوم برمجة المقابس Socket Programming Concept

البرمجيات التي تمثّل مجموعة بروتوكولات TCP/IP (هذا يعني أنها تقوم بعمل البروتوكلات) هي أساساً جزء من نظام التشغيل، لكن مبرمجي التطبيقات لهم القدرة على كتابة تطبيقات الشبكات باستخدام المقابس من خلال مكتبات واجهات برمجية خاصة، مزودة من قبل نظام التشغيل، وتضم مجموعة من الدوال التي تضع الوظيفة المنفّذة من قبل نظام التشغيل في متناول المبرمجين. تسمى هذه المكتبات واجهات برمجة التطبيقاتAPI، والمكتبة الأصل في هذا الصدد هي واجهة مقابس بيركلي Berkeley sockets API، التي بنيت على أساسها العديد من الواجهات، بما في ذلك مقابس ويندوز (WinSock). تمت كتابة هذه المكتبات بلغة سي C، لذلك فإن مبرمجي هذه اللغة مدعومين بشكل افتراضي. ومع ذلك، تملك العديد من لغات البرمجة مكتبات غنية بدوال الشبكات، والتي توفر واجهات مماثلة لتلك التي كتبت بلغة سي، مثل لغة البرمجة جافا ، وبايثون ، وبيرل.

هذه التقنية (برمجة المقابس) أساسية جداً لكتابة تطبيقات الشبكات ومنها الإنترنت، بما في ذلك جميع أدوات الشبكات التي تستخدم إما كوسيلة مساعدة في إدارة الشبكة، أو لتنفيذ تقنيات كسر/اختبار أمن الشبكات.

هناك قدر كبير من الدروس التي تشرح برمجة المقابس على الإنترنت، لكن العمل الكلاسيكي من قبل ويليام ريتشارد ستيفنز، في كتابه برمجة شبكات يونكس، الجزء الأول(Unix Network Programming, volume1)، يبقى المرجعية المعيارية لمبرمجي المقابس منذ عام 1990 ميلادي، لا سيما بعد صدور طبعته الثالثة عام 2003 (بعد وفاته في الحقيقة). 

هناك العديد من التفاصيل التي لا بد من الإلمام بها والتعامل معها عند البرمجة الفعلية مع المقابس، وبطبيعة الحال، فإن ذلك يقع خارج نطاق هذه المقالة التي تقدم للمفهوم فحسب، لكن من باب منح فكرة عن ماهية البرمجة مع المقابس عمليّاً، أختم المقال بقائمة تلخص الدوال التي توفرها مكتبة واجهة بيركلي (مترجمة من صفحة ويكيبيديا على الرابط التالي http://en.wikipedia.org/wiki/Berkeley_sockets):

socket()
تنشئ مقبساً جديداً من نوع محدد، وتعرّفه برقم صحيح، وتخصص له موارد النظام اللازمة.

bind()
تستخدم عادة في جانب الخادم، وتربط مقبساً بهيكل عنوان مقبس، مما يعني رقم منفذ محلياً وعنوان IP.

listen()
تستخدم في جانب الخادم، وتجعل مقبس TCP مربوطاً يدخل في حالة الاستماع.

 connect()
تستخدم في جانب العميل، وتعيّن رقم منفذ محلياً وغير مستخدم من قبل لمقبس. في حالة مقبس من نوع TCP، تتسبب هذه الدالة في محاولة إنشاء اتصال TCP جديد.

accept()
تستخدم في جانب الخادم. تقوم بقبول المحاولات المستقبلة القادمة من عميل بعيد من أجل إنشاء اتصال TCP، وتنشئ مقبساً جديداً مرتبطاً بالعنوان القادم مع طلب الاتصال.

send() و recv(), أو write() و read(), أو sendto() و recvfrom()
تستخدم لإرسال واستقبال البيانات إلى/من مقبس بعيد.

close()
تتسبب في أن يحرر النظام الموارد التي خصّصت لمقبس. في حالة TCP، ينتهي الاتصال.

gethostbyname() و gethostbyaddr()
تحول بين أسماء وعناوين الأجهزة. فقط في IPv4.

select()
تستخدم من أجل فحص مجموعة معطاة من المقابس لتحديد تلك الجاهزة للقراءة أو الكتابة أو التي تعاني من أخطاء.

poll()
تستخدم لفحص حالة مقبس من مجموعة من المقابس. يمكن أن يتم فحص المجموعة لمعرفة ما إذا كان هناك مقبساً يمكن الكتابة إليه، أو القراءة منه، أو إذا حدث خطأ ما.

getsockopt()
تستخدم لاستعادة القيمة الحالية لخيار معين من خيارات المقبس المحدد.

setsockopt()
تستخدم لتعيين خيار معين من خيارات المقبس المحدد.

 
أضف تعليق

Posted by في 2011/10/21 بوصة شبكات

 

مفاهيم في الشبكات – 2

هذه المقالة تكمل ما بدأناه في المقالة السابقة من الكلام عن مفهوم البروتوكولات والطبقات في عالم شبكات الحاسوب. حان الدور الآن لنتعرف على مفهوم رأس البروتوكول protocol header، وهو الجزء الذي يحدد عملياً الفرق بين بروتوكول وآخر داخل الأسلاك. بالنسبة للهاكرز (بالمفهوم الشامل للكلمة) يمثل هذا الجزء القطعة الأهم من الكعكة كلها. بعد ذلك، نعرّج بإذن الله على المصدر الأساسي الذي تجد فيه كل مايتعلق بتفاصيل ما تكلمنا عنه (وما لم نفعل). دور رؤوس البروتوكولات Protocols Headers يمكن تصوير مفهوم الطبقات بسهولة باستخدام الصور والأشكال، ولكن هناك حاجة إلى وسيلة لتطبيق هذا المفهوم في الأسلاك (أو على قناة لاسلكية). كما لوحظ سابقاً، العبء الإضافي overhead من كل رسالة بين طرفين على الشبكة يقسّم إلى عدة أجزاء (راجع من فضلك المقالة السابقة)، كل جزء يخصّ كائناً معيناً في كلا الطرفين، وينتمي إلى طبقة محددة. كل طبقة مسؤولة عن إضافة ما يعنيها من الأعباء الإضافية إلى الرسالة الصادرة عند الإرسال (في شكل عدد محدد من البايتات بالطبع). تضاف هذه الأجزاء من الحمل عادة في بداية الرسالة المنقولة، ولذلك تسمى برأس الرسالة header. الرؤوس التي تلحقها كل طبقة بالرسالة، على طول الطريق من الطبقات العليا وصولاً إلى الطبقات السفلى، هي في الواقع تمثل بروتوكولات تلك الطبقات؛ وهكذا عندما تنطلق الرسالة في الأسلاك (وسيطة النقل الفيزيائية)، فإن الطبقات المنطقية التي تكلمنا عنها سابقاً هي في الواقع متجسدة في أجزاء الرسالة التي تمثل العبء الإضافي، وكل جزء من هذا العبء هو في الحقيقة رأس تم إلحاقه من قبل طبقة محددة. ترتيب الرؤوس في الرسالة يحدد ترتيب الطبقات التي أضافت هذه الرؤوس، ويتم فصله من قبل الطبقات النظيرة على الطرف الآخر، انطلاقاً من الطبقات السفلى حتى تصل الرسالة إلى الطبقات العليا في هذا الطرف. عندما تستخرج كل طبقة في الطرف المستقبل ما يخصها من رأس، فإنها تستخدم معلومات البروتوكول التي يحويها من أجل أداء وظيفتها. لأن كل طبقة تضيف رأس البروتوكول الذي يخصها على التوالي، يبدو الأمر كما لو أنه يتم تغليف البروتوكولات العليا داخل البروتوكولات الأدنى. الشكل رقم 2 يصور هذه الفكرة فيما يتعلق ببروتوكولات TCP/IP، مع بروتوكولات مثال من كل طبقة.

دلالة الشكل أعلاه هي أن جميع المعلومات المتعلقة بروتوكول معين تتلخص في الرأس الذي يخص ذلك البروتوكول. الفهم الجيد لتركيبة هذه الرؤوس، ووظيفة كل جزء منها (ويشار إليها بالحقول)، أمر ضروري من أجل فهم جيد لوظائف البروتوكولات المختلفة، ومن ثمّ وظيفة الشبكة (وكذلك من أجل فهم مختلف التقنيات التي قد تستخدم في كسر أمن الشبكات، لمن كان مهتماً). الوصف التفصيلي لهذه المعلومات متوفر في أدبيات الشبكات بشكل عام، ولكنه متركز بشكل خاص في وثائق رسمية للمعايير أو المقاييس standards، ويشار إليها باسم طلبات للتعليق Request For Comments. الاسم المختصر الأكثر شيوعاً (والأبعد عن غرابة الترجمة، ولذلك سنستخدمه إن شاء الله)، هو RFCs. المزيد من المعلومات حول مستندات RFC ومصادرها بعد هنيهة في هذا المقال.

أود أن أشير هنا إلى أن نظريات بروتوكولات التشبيك ومفاهيم الطبقات، ومختلف النماذج (بخلاف TCP/IP) مفصّل في عدد كبير من كتب شبكات الحاسوب، بعض هذه العناوين المعروفة، التي تستخدم ككتب text books في الجامعات:

1. Tanenbaum Andrew S. 2003. Computer Networks, Fourth Edition. New Jersey: Pearson Education, Inc.

2. Stallings, William. 2007. Data and Computer Communications, Eighth Edition. New Jersey: Pearson Prentice Hall.

3. Forouzan, Behrouz A. 2007. Data Communications and Networking, Fourth Edition. New York: McGraw-Hill Companies Inc. 

مستندات طلبات التعليقات RFCs

وعلى الرغم من أن بروتوكولات TCP/IPلا يخلو تقريباً كتاب في الشبكات من ذكرها وشرحها، تظل المرجعية القياسية الأكثر شمولاً وموثوقية لهذه البروتوكولات، هي مجموعة من الوثائق، متاحة للجميع في الإنترنت، ومعروفة باسم RFC كما مر معنا أعلاه. يمكن كتابة هذه الوثائق من قبل أي شخص، في العادة المهندسين وعلماء الكمبيوتر، ويمكن أن تكون لأغراض إعلامية (من باب الإعلام بالشيء وتعليمه، وليس من باب الإعلام الاصطلاحي هذه الأيام) أو للمراجعة من قبل الزملاء والأقران على مسار التقييس (بهدف أن تصبح مادة المستند مقياساً متفقاً عليه standard). يمكن أن تبدأ RFC كمقياس مقترح، تشرح بالتفصيل على سبيل المثال تعريف بروتوكول جديد، ثم تنتقل إلى حالة مسودة مقياس draft standard، وأخيراً تتحول إلى حالة مقياس معتمد من مقاييس الإنترنت، إذا تمت الموافقة عليها من قبل كيان رسمي (فريق مهام هندسة الإنترنت the Internet Engineering Task Force IETF). عند هذه النقطة، تصبح الـ RFC مرجعية لتنفيذ (برمجة) البروتوكول من قبل أي جهة. لاحظ أن المفترض أن نسخ كل الجهات المختلفة يعمل بعضها مع بعض بسلاسة، لأنهم يستخدمون نفس البروتوكول، ويلتزمون بنفس المرجع، وهذا هو الهدف من التقييس في المقام الأول. المصدر الرسمي لجميع الـ RFCs موقع ويب محرر RFC على الرابط التالي: http://www.faqs.org/rfcs/rfc-index.html.

بروتوكولات TCP/IP وهي تعمل

على الرغم من أن مستندات RFC هي أهم مصدر لتفاصيل بروتوكولات TCP/IP، فهي نظرية بحكم طبيعتها، ومستوى التفاصيل التي تقدمها قد تكون عائقاً أمام فهم سهل لطريقة عمل البروتوكولات، لغير من يريد بالفعل أن ينفذها في منتجه. لحسن الحظ، قام بعض الكتاب باتباع أسلوب مميّز لشرح مجموعة البروتوكولات هذه، عن طريق تشريح رسائل البروتوكولات، وتتبعها على الأسلاك، وهي تنتقل من جهاز إلى جهاز، وذلك باستخدام برامج لالتقاط الحزم packet sniffers، مثل tcpdump. واحدة من أكثر الأعمال شعبية، والتي تستحق جيداً سمعتها، المرجع الكلاسيكي لستيفنز، وكتب أخرى مماثلة في هذا الصدد:

1. Stevens W. Richard. 1993. TCP/IP Illustrated, Volume 1: The Protocols. Massachusetts: Addison Wesley.

2. Goralski, Walter. 2009. The illustrated network: how TCP/IP works in a modern network. Massachusetts: Morgan Kaufmann Publishers is an imprint of Elsevier

3. Northcutt, S., & Novak , J. 2003. Network intrusion detection, Third Edition. Indiana: New Riders Publishing.

 
أضف تعليق

Posted by في 2011/10/21 بوصة شبكات

 

مفاهيم في الشبكات – 1

إذا كنت مبرمجاً، فإن هذا لا يعني بالضرورة أنك مبرمج شبكات أيضاً. مبرمج قواعد البيانات يحتاج بجانب البرمجة إلى معرفة المزيد عن مبادئ قواعد البيانات، ومبرمج الرسوميات يحتاج إلى معرفة المزيد عن عمل الرسوميات في الحاسوب، كما أن مبرمج الشبكات يحتاج إلى معرفة المزيد عن الشبكات. ليس هذا فحسب، بل إن هناك في العادة إلى جانب المبادئ، أدوات ومكتبات برمجية خاصة عليك أن تجيد التعامل معها في كل مجال. بالنسبة للشبكات، مفهوم المقابس والمكتبات التي تحقق هذا المفهوم هي التي تمكن المبرمج من التعامل مع الشبكات. في هذه السلسلة المبسّطة من ثلاث مقالات بإذن الله، أستعرض معك المفاهيم الأساسية للشبكات وللمقابس، على أمل أن نستعرض أكثر تفاصيل برمجة المقابس في مقالات أخرى إن شاء الله تعالى.

المفهوم الأساسي

المفهوم الأساسي للشبكة هو ربط أكثر من جهاز واحد بغرض مشاركة الموارد (موارد حسابية computational ، تخزينية storage، أو طرفيات peripheral) والتواصل communication. تقليدياً ، كانت الأجهزة عبارة عن حواسيب (تسمى hosts) وراوترات، ووسيلة الاتصال هي الأسلاك. أما الآن، فمن الممكن لأية آلة مع بعض الذكاء المدمج (معالج)، أن يكون لها عنوان شبكة (مثل الطابعات مثلاً)، وأن تتبادل الاتصال مع جميع الأنواع الأخرى من الأجهزة، من خلال وسائط من جميع الأنواع، سلكية أو لاسلكية.

التركيب الفيزيائي للشبكة physical topology، وأنواع وسائط الاتصال communication media، تقع في دائرة اهتمام مصممي وفنيي الشبكات. ما يقلق مديري الشبكات، والمبرمجين (بما فيهم الهاكرز) أكثر من ذلك، هو الجانب الآخر من الشبكات: جانب البرمجيات.

دور البروتوكولات

الاتصالات بين أجهزة الحاسوب هي في الأساس تدفق إشارات. باستخدام نفس التمثيل للإشارات ضمن الحاسوب الواحد، فإن هذه الإشارات تمثّل أيضاً باعتبارها تدفق سيل من البتات bit (البت الواحد: إشارة تحتمل قيمتين فقط)، والتي غالبا ما يتم التعامل معها في مجموعات من ثمانية، كل مجموعة منها تسمى بايتاً byte. لذلك، فإن الاتصال بين طرفين (حاسوبين) هو في نهاية المطاف سلسلة من البايتات. العديد من الوحدات ضمن كل طرف قد تتعامل مع هذه السلاسل من البايتات، ابتداءً من البرامج المثبتة على كروت واجهة الشبكة، وحتى الوحدات البرمجية المكوّنة لنظام تشغيل الحاسوب ، أو تطبيقات المستخدمين. المشكلة هي أن هذا السيل المتدفق من سلاسل البايتات عبر وسائط النقل يمكن أن يعني أي شيء لتلك الوحدات؛ ودون اتفاق واضح محدد سلفاً على معنى هذه السلاسل، فإنها ليست أكثر من قمامة إلكترونية. من أجل هذا، اتفق الناس علي تفسيرات مشتركة للبايتات المتبادلة بينهم، وأخذ ذلك شكل مجموعة من القواعد والاصطلاحات التي تتحكم في الاتصال بين الأجهزة على الشبكات. تسمى هذه القواعد، بطبيعة الحال، بروتوكولات الشبكات.

تتطلب البروتوكولات أن يتم تبادل البايتات في كتل تسمى رسائل messages. تحدد البروتوكولات بدقة كلاً من تركيب أنماط البايتات في الرسائل(الـsyntax)، ويشار اليها عادة باسم تنسيقات الرسالة (message format)، بالإضافة إلى دلالات هذه التنسيقات (الـsemantics)؛ أي معنى كل جزء من الأجزاء المختلفة لتلك الرسائل، على افتراض أنه ستكون هناك حاجة إلى عدة أجزاء في كل رسالة متبادلة من أجل التحكم الكامل في الاتصال بين الأطراف المختلفة. أيضاً ، تتحكم البروتوكولات في تزامن الاتصال، ويعني ذلك التأكد من أن هناك توافقاً بين معدلات وتوقيت الإرسال والاستقبال بين كل طرفين. وعلى المستويات الأدنى، فيما يتعلق بأجهزة التشبيك (العتاد الصلب hardware)، فإن هناك حاجة إلى بروتوكولات للسيطرة على توقيت الإشارات المرسلة، وغيرها من المواصفات الكهربائية والميكانيكية للإشارات ولأجهزة الشبكات.

على الرغم من أن عدة مجموعات من هذه البروتوكولات قد أتت من جهات صناعية وعسكرية على مر الوقت، فإن مجموعة واحدة (تسمى مجموعة البروتوكولات المترابطة عادة بكومة stack أو suit) كانت تتمتع بكونها قياسية منذ فترة طويلة، ومطبّقة على نطاق واسع، هذا بالإضافة إلى متانة تصميمها وسلامته (أثبت الوقت ذلك فيما بعد)، مما رشّحها لأن يتم اختيارها كمجموعة بروتوكولات الإنترنت. تلك هي مجموعة بروتوكولات TCP/IP.

مثل كل شيء إذا لم يكن عتاداً صلباً في أجهزة الحاسوب، فإن بروتوكولات الشبكات تنفّذ أساساً كوحدات برمجية، إما في تعريف كرت الشبكة، وإما في نظام التشغيل، وكذلك في تطبيقات المستخدم. إذا أراد طرف أن يتواصل مع طرف آخر باستخدام مجموعة معينة من البروتوكولات، يجب أن تكون لديه البرامج المناسبة التي تمثل هذه المجموعة من البروتوكولات. من هذا يمكن أن تستنتج أن البرمجيات التي تمثّل بروتوكولات TCP/IP مثبتّة على كل جهاز متصل بشبكة الإنترنت (وإلا لم يكن متصلاً بشبكة الإنترنت، لأنه غير قادر على التفاهم مع بقية الأطراف)، وهذه البروتوكولات مدعومة حتى في أنظمة التشغيل التي تقوم بتطبيق بروتوكولات من مجموعات أخرى، مثل نتوير NetWare. تستخدم TCP/IP كذلك في شبكات أخرى، مثل الشبكات المحلية المعزولة، وهذا ما يجعل الدراسة والتجربيب مع بروتوكولاتها ممكناً، سواء داخل مختبر محلي مستقل، أو عبر الشبكة العالمية.

مفهوم الطبقات

كما ذكرت في الفقرات أعلاه، نحتاج عادة إلى البروتوكولات في شكل مجموعات (لا يمكن أن يكفي بروتوكول واحد لإتمام عمليات التواصل بين الأجهزة)، ومجموعة البروتوكولات التي تستخدم معاً لإدارة الاتصالات عبر شبكة اتصال تسمى protocol suit أو protocol stack. الحاجة إلى عدة بروتوكولات تأتي من حقيقة أن سلاسل البايتات المتبادلة في كل رسالة بين نقطتي نهاية، تتعلق بكائنات أو وحدات مختلفة في كل طرف. ليست كل البايتات في رسالة تحمل المحتوى الفعلي الذي يهم المستخدم النهائي عند كل طرف، إذ أن هناك حاجة إلى بعض هذه الباياتات من أجل توفير بعض الوظائف الأساسية لجعل التواصل ممكناً (في الحقيقة، هناك أنواع من الرسائل المتبادلة لا تحوي على الإطلاق أي بيانات تهم المستخدم مباشرة، وإنما تستخدم في تشغيل الشبكة). هذه الوظائف تشمل التزامن synchronization، والعنونة addressing، والكشف عن أخطاء الإرسال وربما تصحيحها error detection and correction، والتحكم في التدفق flow control (هذا يعني أساساً عدم السماح لمرسل سريع بغمر مستقبل بطيء بالبايتات المرسلة)، التوجيه routing (توجيه الرسائل من جهاز إلى آخر حتى تصل إلى الجهاز المقصود كوجهة والذي قد يبعد عن الجهاز المصدر عدة خطوات)، التحكم في الازدحام congestion control (المقصود هو ازدحام الرسائل في مسار واحد من عدة مسارات محتملة مما يستدعي اكتشاف هذا الاختناق ومعالجته)، والأمن security، وغيرها. ويتم تنفيذ العديد من هذه المهام على أكثر من مستوى واحد من قبل أكثر من كائن واحد، في كل من طرفي الاتصال. لأن الأجزاء التي تحقق هذه الوظائف ضمن الرسائل المتبادلة لا تمثّل المحتوى النهائي الذي يستقبله المستخدم، فإنها تسمى مجتمعة بالأعباء الإضافية overhead.

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

في هذا السياق، كل مستوى يعدّ طبقة، ويتم تقسيم وظائف الاتصالات كلها إلى طبقات، كل واحدة منها هي المعنية بمجموعة معينة من المهام، وتستفيد من الخدمات التي تقدمها الطبقة تحتها، أو تقدم خدماتها إلى الطبقة أعلاها. ولأن عدة مهام يتم تعيينها لكل طبقة، فإنه من الممكن أن نجد عدداً من البروتوكولات المختلفة تعمل في كل طبقة. يوضح الشكل رقم 1 مفهوم طبقات الشبكة، والكائنات المتماثلة أو النظائر أو الأنداد peers، والواجهات بين كل طبقة وأخرى interfaces، والبروتوكولات، في سياق نموذج TCP/IP، حيث تقسم البروتوكولات تقليدياً إلى أربع طبقات: طبقة الوصول إلى الشبكة network access، الشبكة inter-network، والنقل transport، وطبقة التطبيقات applications، على الترتيب من المستويات الأدنى إلى المستويات العليا.

م منقول من   http://itwadi.com/node/1509

 
أضف تعليق

Posted by في 2011/10/21 بوصة شبكات

 

(Cascading Style Sheets) وتعني صفحات الأنماط التعاقبية ( CSS )

مقدمة

الـ (CSS) هي إختصارا لـ (Cascading Style Sheets) وتعني صفحات الأنماط التعاقبية و هي لغة نمط الصفحة وتستخدم لوصف مظهر أو شكل الصفحة المكتوبة بأي لغة من لغات لترميز .

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

 تركيب ورموز لغة الـ(CSS)

المصطلحات اللغوية لـ(CSS) بسيطة و تستخدم الانجليزية في عدد من الكلمات الرئيسية لتحديد أسماء مختلف خصائص النمط. كل صفحة من صفحات الأنماط تتكون من قائمة من القواعد. كل قاعدة أو مجموعة قواعد تتكون من واحد أو أكثر من المحددات “SELECTORS” و جزء التوضيح “Declaration-Block” وفيما يلي شرح لكل منهما:

المحددات “SELECTORS”: وهي في الغالب العناصر اللأساسية للغة الـ (HTML) مثل:
(H1, P, BODY, TABLE,….)
جزء التوضيح “Declaration-Block”: و يكون محصوراً بين القوسين { }ومحتوياً على واحد أو أكثر من التوضيحات التي يفصل بينها بفواصل منقوطة (؛) ويتألف كل توضيح من خانتين أساسيتين وهما الخاصية “PROPERTY” والقيمة “VALUE” ويفصل بينها بإستخدام النقطتين الرأسيتين (:) كما هو موضح في الصورة (1).

الخاصية “PROPERTY” : وهي أسماء الخصائص التي تصف العنصر. مثل :
(color, text, font-face, font-size,….)

القيمة “VALUE”: وهي القيم التي تعرف الخصائص مثل:
(color: yellow, font-face: arial, .…)

  ماذا يقصد بـ ” التعاقبية” في لغة (CSS)؟
صفحات الأنماط التعاقبية تم إعداها بطريقة تمكنك من الحصول على عدة خصائص لنفس العنصر من عدة مصادر, بحيث تؤثر جميعها في هذا العنصر. ويمكن أن يحصل العنصر على نمط أو أكثر من المصادر التالية, مع العلم أن المصدر رقم (3) يملك الأولوية الأعلى:

نمط المتصفح:
لكل متصفح أنماط الصفحات الخاصة به يحدد من خلالها النمط الإفتراضي لكل عنصر من عناصر الـ HTML(X), وتظهر على العنصر في حالته الإفتراضية مالم يتأثر بنمط من مصدر آخر, مثال على ذلك اللون الأزرق للروابط في متصفح الإنترنت إكسبلورر.

نمط المستخدم:
يمكن لمستخدم الويب ضبط إعدادات أنماط الصفحات للتحكم في نمط العرض لكل أو بعض من صفحات الويب, ولهذا النمط أولوية أعلى من نمط المتصفح حيث أنه يتم تطبيقه على العنصر في حال وجد تعارض مع نمط المتصفح.

نمط المحرر:
نمط صفحات المحرر هي التي تعد بواسطة محرر أو مصمم الصفحة والتي يحاول من خلالها التغلب على نمط صفحات المتصفح ونمط صفحات المستخدم, بمعنى أن نمط المحرر يملك الأولوية الأعلى بين هذة المصادر الثلاثة. يمكن أن يكون لصفحة الويب الواحدة عدة أنماط من أنماط صفحات المحرر, وقد تأخذ أحد الحالات التالية:

أنماط خارجية: (وتكون قواعد الأنماط فيها مكتوبة في مستند مستقل عن المسنتد الذي يحتوي على مضمون الصفحة) ويتم إستيراداها بعمل رابط داخل صفحة المحتوى يشير لمستند أنماط الصفحة ويكتب الرابط بهذا الشكل داخل وسم <HEAD>:
<LINK rel=“stylesheet” href=“./path/file_name.css” type=“txt/css”>

أنماط داخلية: (وتكون مكتوبة ضمن صفحة المحتوى داخل وسم <HEAD> في الصفحات المكتوبة مثلاً بـلغة (html) مثال على ذلك:

نمط السطر: وهذا النوع هو ما يكتب داخل نمط عنصر في صفحة المحتوى كالتالي:

<P style=“color: #FF0000”>Text</P>  
إذا لم يكن هناك تعارض بين أي من قواعد الأنماط لأي من هذه المصادر ، فإنه يمكن تطبيقها جميعاً. ولكن عندما عندما يكون هناك تعارض كأن يوجد مثلاً قاعدة في نمط المتصفح تحدد لون الخط بالأسود على وسم الفقرة <p> ، ثم في وقت لاحق تأتي قاعدة في نمط المحرر تحدد لون الخط لوسم الفقرة <P> إيضاً باللون الأحمر, فإنه سوف يتم تحديد أي اللونين يطبق بإستخدام ما يسمى بـ”التعاقبية” والتي ستسمح لهذه الأنماط المتعددة بأن “تتعاقب إلى الأسفل” لكل عنصر من العناصر حيث أن النمط الأقل أولوية يظهر قبل النمط الأعلى أولوية, بمعنى أنه سيتم تطبيق قواعد نمط المتصفح وفي حال وجدت أنماط متعارضة معها في نمط المستخدم فإن الأنماط ستتعاقب في التطبيق إلى الأسفل ليتم تطبيق نمط المستخدم الذي يملك الأولوية الأعلى, والصورة (2) تبين ترتيب تعاقبية الأنماط من المصادر المختلفة.
التعاقبية إذاً هي النظام التي يدير الأنماط القادمة من مصادر متعددة، وتحددأي لأنماط تطبق عندما يكون هناك تعارض.

1- السهولة والمرونة العالية في تعديل تنسيق الصفحات:
اضافة (css) على الصفحات المحتوية على المضمون (صفحات HTML مثلاُ) وهو الهدف الرئيسي من إختراع لغة (CSS), من شأنه أن يحسن إمكانية الوصول إلى المحتوى مع توفير المزيد من المرونة والتحكم في تحديد الأنماط والتنسيقات. حيث ستصبح هناك إمكانية لتغيير نمط الصفحة دون المساس بالصفحة المتضمنة للمحتوى. كما يساعد ذلك في تسهيل عملية تغيير النمط لعدة صفحات ويب بإجراء عملية التعديل مرة واحدة.

2- الحد من التعقيد والتكرار في هيكلية المحتوى:

يساعد إستخدام لغة صفحات الأنماط التعاقبية (CSS) إيضاً في الحد من التعقيد والتكرار في هيكلية المحتوى وذلك بتصميم تنسيق موحد لتقسيم وشكل صفحات الموقع مكتوباً في ملف وحيد بلغة (CSS) وتتشارك فيه جميع صفحات الموقع دون الحاجة لتكرار قواعد صفحات الأنماط في كل صفحات الموقع.

3. حل مشاكل التعامل مع الجداول في تصميم الصفحات:

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

يمكن أن يكون هذا التحايل في إستخدام الجداول محبباً لدى معظم المصممين ولكن في الحقيقة سيء جداً فهو يميل إلى التعقيد ويفقد المرونة في عملية التعديل, أيضاً فإن الجدوال توصف لدى الكثيرين بأنها “غدراة” فخطأ بسيط من المصمم قد يفسد التصميم بأكملة, كما أن استخدام الجداول في تخطيط مظهر صفحات الموقع توجد صعوبة لدى محركات البحث في إيجاد مؤشرات لهذة المواقع.

أتت لغة صفحات الأنماط التعاقبية (CSS) لتحل مشاكل التعامل مع الجداول وتساعد في تقسيم وتخطيط صفحات الويب, بالإضافة إلى تقديمها إمكانية إعطاء وصف دقيق لخصائص كل عنصر من العناصر مع تسهيل عملية البحث على محتويات الموقع عبر محركات البحث المختلفة.

 4. الدقة في التنسيق والكتابة: 

من خلال (CSS) يمكن إخراج البيانات بدقة عالية بإستخدام وحدة البيكسل كما تسمح بالتحكم في الفراغات بين السطور والكلمات والحروف ، وتغيير أنماط الحروف من كبيرة إلى صغيرة والعكس.

 5. عرض البيانات في بيئات عرض مختلفة: 

تملك (CSS) عدد من القواعد التي تسمح بعرض محتويات الصفحة في بيئات عرض مختلفة فطريقة العرض على الشاشة تختلف عن طريقة عرض الطباعة مثلاً وهكذا.

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

  المصادر

http://en.wikipedia.org/wiki/Cascading_Style_Sheets

http://www.w3.org/TR/CSS-access

http://www.123triad.com/web-design-articles/web-page-layout-tables/

http://www.w3schools.com/css

http://css.maxdesign.com.au/floatutorial/tutorial0816.htm

http://monc.se/kitchen/38/cascading-order-and-inheritance-in-css

http://www.city.academic.gr/academix/html/present.html

http://www.communitymx.com/content/article.cfm?page=2&cid=2795D

http://webdesign.about.com/od/css/f/blcssfaqcascade.htm

 
أضف تعليق

Posted by في 2011/10/21 بوصة تصميم مواقع

 

آفاق الحوسبة السحابية

أشارت دراسة صادرة عن شركة IDC للأبحاث لتحديد مدى جاهزية دول الخليج للنظم السحابية أن مستويات خدمة العملاء في المنطقة – لقطاعات الاتصالات والتمويل وقطاع البنوك والحكومة والتجزئة والترفيه والضيافة والرعاية الصحية والسياحة والسفر- يمكن أن تتحول لتصبح بمستوى أفضل مع تقنيات السحابية الخاصة.

وأوضح مدير عام شركة IDC ، الشركة المتخصصة في مجال الأبحاث والاستشارات في قطاع الاتصالات وتقنية المعلومات، أن السحابة الخاصة تفضل أكثر من العامة بنسبة 1.7-1، وسوف تسمح بزيادة استخدام السحب الخاصة في 2011-2012.

وأكد أن كبار محللي أي دي سي يعتقدون أن الحوسبة السحابية المؤسسية هي المفتاح الأساسي لفتح الآفاق الواعدة للمؤسسات، ومساعدتها في تغيير الطريقة التي تتفاعل بها مع العميل النهائي أو المستهلك، مشيراً إلى أن “الاقتصاد الذكي” يعتمد على الحوسبة السحابية، وأن الـ 25 عاماً القادمة تتمحور حول التقنيات السحابية في العالم.

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

وأضاف: “إن التوجه نحو السحابة الخاصة يجعل من شؤون تقنية المعلومات أقل عبئاً على القطاعات وتشكل حافزاً لتطوير الأعمال، إنها ببساطة النموذج الصحيح للأعمال في يومنا الحاضر، وتحرص الشركات الملتزمة بالسير في مشوار السحابة الخاصة على الارتقاء بهذه التقنية لتمكين شركات الأعمال من الاستفادة بشكل أكبر من تقنية المعلومات واستغلالها بشكل فعال، مؤكداً أن دراسات IDC تقول أن تبني استخدام الخدمات السحابية العامة سينمو بمعدل 5 مرات حجم نمو الانفاق على تقنية المعلومات”.

وأردف قائلاً: ” تساهم الحوسبة السحابية في حدوث تغييرات جذرية في كيفية استغلال موارد التقنية من قبل الشركات. وبما أن النشاطات في السحابة الحوسبية قابلة للقياس، فإن عملاء الخدمات السحابية يدفعون فقط بقدر ما يستهلكون من هذه الخدمات”، موضحاً أن استراتيجيات IDC للحوسبة السحابية توصي أن هناك ثلاثة قرارات أستراتيجية للمدراء التنفيذيين لتقنية المعلومات وهي: تحديد الاستراتيجية واختيار مزود منصة الخدمة، وتصميم تطبيقات سحابية خاصة بشركة ومتجر سحابي خاص، واختيار مزودي خدمات السحابة الهجينة.

وبناء على استطلاع رأي حديث أجرته IDC، دلت النتائج أن الانفاق على تقنية المعلومات من قبل الفريق الإداري في المؤسسة له ما يبرره بناء على نتائج عديدة مثل تحسين إجراءات الأعمال وتقليل زمن وصول الخدمات والمنتجات إلى الأسواق، وتشكّل هذه الأسباب اثنين من سبع مبررات للاستثمار في تقنية المعلومات، وقد تمكنت الحوسبة السحابية من الأخذ بيد المؤسسات الحكومية والقطاع الخاص بشكل فعلي في رحلة تقليل الإنفاق على تقنية المعلومات داخل المؤسسة، وتعزيز كفاءات أخرى مثل رفع مستوى العلاقة مع العملاء، ويمكن تحقيق ذلك عند الاستفادة من خدمات الحوسبة السحابية عند تطبيقها على التوازي مع استراتيجية شاملة للشركة.

وقال “تشير دراسات شركتنا بشكل واضح إلى أن المزايا الأولية والبسيطة للسحابة بدأت تنال تقدير مجالس الإدارة ومدراء التنفيذيين للتقنية المعلومات في الشركات لكونها عناصر ملموسة النتائج، وتحثُّ الشركات على الاستثمار في البنية الأساسية للحوسبة السحابية”، مضيفاً أن الإنفاق على الخدمات السحابية العامة يتجاوز الإنفاق على القطاع الخدمات السحابية المخصصة.

ومن الجدير بالذكر، أن السحابة ليست مجموعة من التقنيات؛ بل هي نموذج لإدارة وتسليم واستهلاك مصادر المعلومات والخدمات، وهي تقدم حججاً ملموسة لتحسين التقنية، والتقليل من ثقل أعباء شؤون تقنية المعلومات على الشركات، وتفتح المجال أمام نماذج جديدة من ديناميكية ومرونة مجال الأعمال.

 
أضف تعليق

Posted by في 2011/10/21 بوصة غير مصنف