صفحة 2 من 2 الأولىالأولى 12
النتائج 16 إلى 23 من 23

الموضوع: تحليل : كيف تبرمج موقع مثل رتب

  1. #16
    عضو نشيط
    تاريخ التسجيل
    Oct 2008
    المشاركات
    283


    أعتقد أنك دارس برمجية vBulletin جيداً
    فأتمنى إن vBulletin تكون عليها الدور في التحليل المرة القادمة.





    __________________
    اللهم وفقني لما تحبه وترضاه...

  2. #17


    أعتقد أنك دارس برمجية vBulletin جيداً
    فأتمنى إن vBulletin تكون عليها الدور في التحليل المرة القادمة.
    لا أخي لم أدرسها
    كل ما في الأمر أني كنت أبرمج هاكات ليها لموقعي
    فسقطت علي بعض الدوال من هنا وهناك
    لدي موهبة وهي مجال عملي في الحقيقة
    وهي تحليل الأمر من أول نظرة
    ولكني انوي بعدما انهي مذاكرة ال php أن أبدأ في الإطلاع علي 5 برمجيات من البرمجيات العليا كدورابل وورد بريس إلخ
    لأحصل علي أفكار برمجية فهذه البرمجيات مليئة

    لكن لدي خبرة عن نظام الصلاحيات في فيبولتن وإستخدام النظام الثنائي مع ال &
    توضع الصلاحيات في ملف xml لمضاعفات الرقم 2 ( كونها أرقام ثنائية فهي تسير بمضاعفات الرقم 2 كما تعلم - 1 2 4 8 16 32 64 128 256 إلخ )
    وبالتالي يمكن مقارنة الرقم الخاص بالخيار وليكن 32 مع الرقم للصلاحيات الجماعية وهو رقم يكون كبير جدا وفيه تجمع كل الصلاحيات اللي أخترتها ( نعم )
    وهذه توفر من وضع الصلاحيات في حقول منفصلة لكل خيار بنعم أو لا ( تخيل جدول فيه 100 عمود )

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

    كما يمكن نقل كل هذا للكاش بإحدي الهاكات

    أيضا نظام الهوك
    نظام الخيارات و4 أنواع للخيار
    نظام لوحة التحكم حيث توجد دوال لكل الأمور التي تريدها فقط تنادي دالة خيار إدخال text فيظهر لك حقل إدخال إلخ

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





    __________________
    السيف أصدق أنباء من الكتب

  3. #18
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    احييك على الموضوع الاكثر من رائع ، الصراحة القسم اصبح مليء بالمواضيع المفيدة .. نوعية المواضيع المطروحة اصبحت ارقى بمراحل

    احييك اكثر على ملاحظاتك التي ذكرتها ، فقليل من يلاحظها .. وهم من لديهم القدرة على تتبع الامور بمنطقية وتحليل الانظمة حسب تفاعلها معك او its behavior

    ولهذا دعنا نأخذ الموضوع بمزيد من التفصيل .. فرضا :
    1- يتم تجميع كامل البيانات وتخزينها في الداتا بيز ومن ثم معالجتها في وقت لاحق ( 6 - 8 الصبح مثلا )
    2- الموقع او تجميع البيانات يعمل على اكثر من سيرفر او عمل الموقع على اكثر من سيرفر عموما
    3- تحديث البيانات وتحديث معلومات كل المواقع


    يمكننا تقسيم المشروع إلى عدة مراحل اولها هي تجميع البيانات وتخزينها :
    - يتم جلب ال ip والدقة وغيرها من المعلومات من الزائر بالصفحة
    - يتم ارسالها إلى السيرفر المختص بتجميع البيانات ( ومن الممكن ان يكون سيرفر واحد centeral ويقوم بتوزيع الطلبات إلى اكثر من سيرفر )
    - يتم التأكد من البيانات وصحتها
    - يتم التأكد اذا كان هذا الطلب ( زيارة ) او ( زائر ) بمعنى هل تم احتساب الزائر فعلا من قبل وقد قام بفتح صفحة اخرى بالموقع .. ان انه زائر جديد يفتح الموقع لاول مرة اليوم مثلا او هذه الساعة << وهذه نقطة اخرى
    وللتأكد من نقطة كهذه .. فلابد من استعلام للداتا وللاسف سيكون من النوع المخيف ، او يمكن استخدام السيشن .. ولكن للاسف عند فتح اي صفحة جديدة يتم تجديد كود الجافا سكربت وارسال request جديد للسيرفر المختص .. وبالتالي الحصول على session-id جديد .. ولكن يمكن وجود حل من خلال بدء السيشن من الجافا سكربت ومن ثم ارسالها مع ال request او البيانات ..

    وليكن كالتالي
    كود:
    http://srv3.statistics.com/get.php?userid=...&ip=...&resolution=...&sessionid=.... ....

    بعد التأكد اذا كانت هذا الطلب زيارة hit او زائر حقيقي visit يتم اضافة row جديد للداتا بيز فيه معلومات الزيارة والتي ستكون مثلا
    id الموقع المشترك - رابط الصفحة - ip - resoltuion - الوقت - زائر حقيقي ام لا - واي بيانات اخرى يتم جلبها مثلا ..

    hint : يمكن التوفير في حقل ال IP لأن عدد الزيارات من كل زائر محتمل ان تكون مرتفعة فعلى الاقل سيتصفح الزائر في موقع 3 صفحات .. وبالتالي 3 rows في الداتا بيز ممكن يعني ان حقل ال IP ( واحتمال اية حقول مشابهة ) ان تكون مكررة .. وبالتالي يمكن انشاء جدول مستقل للزوار وجدول للزيارات .. وكذلك يمكن تحول ال ip address إلى رقم من نوع long من خلال خوارزمية لا اتذكر اسمها .. ولكنها متوفرة في ال php من خلال الفنكشن ip2long و long2ip


    وبهذا يكون قد وصلنا إلى النتيجة التالية :
    لدينا مثلا 3 سيرفرات تقوم باستقبال البيانات من المواقع المشتركة .. وكل سيرفر يحتوي على داتا بيز بها بيانات لجميع زيارات وزوار المواقع المشتركة والتابعة لهذا السيرفر ( يكون هناك centeral database وتحوي جميع المواقع المشتركة .. وسيرفر محدد لكل موقع مشترك - وطريقة تحديد السيرفر من الممكن ان تكون random او squential او على حسب الدولة .. او اي شيء اخر )


    ندخل في مرحلة تحديث البيانات :
    فرضا سيكون هناك ملف ثابت في كل سيرفر مثلا update.php يقوم بجلب البيانات وتحليلها بحيث يقوم باخراج ارقام واحصائيات لكل موقع ( زيارات - زوار - صفحات - .. إلخ )
    ويتم الاتصال بالسيرفر الرئيسي وتحديث بيانات كل موقع ( اضافة الاحصائيات لهذا اليوم \ الساعة \ ايا كان ) إلى الاحصائيات الكلية ( احصائيات تراكمية )



    وآخر مرحلة هيعرض البيانات :
    فعند دخول الزائر لموقع الاحصائيات رتب يكون التعامل فقط مع ال centeral database وال centeral server لن يكون هناك اي تعامل مع سيرفرات التجميع او المعالجة ..


    الخلاصة
    ===========================
    - الموضوع متشعب ويوجد العديد من الطرق والاساليب التي يمكن تحقيق بها الهدف باكثر من طريقة ، يمكن التعامل مع الملفات بشكل اكبر filesystem وهذا يوفر سرعة اكتر ولود عالسيرفر اقل ..

    - يمكن ادخال السيشنز في الموضوع او الاعتماد على البيانات في الداتابيز

    - عملية تحليل البيانات من الممكن ان تتم من نفس سيرفرات التجميع ولكن بفترات مختلفة .. ومن الممكن ان يكون لها سيرفرات متخصصة ، وحينها يجب النظر لطريقة التعامل بين السيرفرين وتوفير بيئة مريحة لتبادل البيانات او الحصول من البيانات من هنا او هناك

    - الاعتماد على ال API في التعامل الداخلي بين السيرفرات .. لا يمكن الاعتماد عليها فهي لا تصلح للضغط الكبير او الكميات الكبيرة من البيانات .. نظرا لأن كل single data row is considered a server request وبالتالي عدد ال requests سيكون كبير جدا .. لابد من توفير طريقة عملية اكثر واسرع للتعامل الداخلي بين السيرفرات المختصة للعمل في الخلفية


    - من النقاط التي يجب تحديدها جيدا والتعمق فيها بشكل كبير .. هو الداتابيز ديزاين او ال database structure فهو من اهم النقاط .. ويأتي بعدها طريقة الاتصال بين السيرفرات ..


    عموما كما اشرت عزيزي ، البرمجية في حد ذاتها ليست صعبة .. فهدف الموقع هو تجميع البيانات وتحليلها وعرضها مرة اخرى .. ولكن تكمن الصعوبة في كيفية التعامل مع هذه الكميات الكبيرة من البيانات بشكل دقيق ويوفر الاداء الاحسن لسيرفراتك + مواقع المشتركين ..



    احييك مرة اخرى عالموضوع يا باشا واعذرني عالاطالة احببت ان اشارك بما لدي ..
    تحياتي





    __________________
    SWF Thumbnail - tweet me

  4. #19
    عضو نشيط
    تاريخ التسجيل
    May 2008
    المشاركات
    53


    موضوع رائع
    توجد اضافة في الووردبريس اسمها Wassup تعطي النتائج بشكل فوري
    يمكنكم الاطلاع على طريقة عملها
    WordPress › WassUp





    __________________
    اطلب تصميمك العصري
    http://services.ar-tuts.com
    دروس عربية تطوير تصميم تقنية .. ويب
    www.ar-tuts.com

  5. #20


    احييك على الموضوع الاكثر من رائع ، الصراحة القسم اصبح مليء بالمواضيع المفيدة .. نوعية المواضيع المطروحة اصبحت ارقى بمراحل

    احييك اكثر على ملاحظاتك التي ذكرتها ، فقليل من يلاحظها .. وهم من لديهم القدرة على تتبع الامور بمنطقية وتحليل الانظمة حسب تفاعلها معك او its behavior

    ولهذا دعنا نأخذ الموضوع بمزيد من التفصيل .. فرضا :
    1- يتم تجميع كامل البيانات وتخزينها في الداتا بيز ومن ثم معالجتها في وقت لاحق ( 6 - 8 الصبح مثلا )
    2- الموقع او تجميع البيانات يعمل على اكثر من سيرفر او عمل الموقع على اكثر من سيرفر عموما
    3- تحديث البيانات وتحديث معلومات كل المواقع


    يمكننا تقسيم المشروع إلى عدة مراحل اولها هي تجميع البيانات وتخزينها :
    - يتم جلب ال ip والدقة وغيرها من المعلومات من الزائر بالصفحة
    - يتم ارسالها إلى السيرفر المختص بتجميع البيانات ( ومن الممكن ان يكون سيرفر واحد centeral ويقوم بتوزيع الطلبات إلى اكثر من سيرفر )
    - يتم التأكد من البيانات وصحتها
    - يتم التأكد اذا كان هذا الطلب ( زيارة ) او ( زائر ) بمعنى هل تم احتساب الزائر فعلا من قبل وقد قام بفتح صفحة اخرى بالموقع .. ان انه زائر جديد يفتح الموقع لاول مرة اليوم مثلا او هذه الساعة << وهذه نقطة اخرى
    وللتأكد من نقطة كهذه .. فلابد من استعلام للداتا وللاسف سيكون من النوع المخيف ، او يمكن استخدام السيشن .. ولكن للاسف عند فتح اي صفحة جديدة يتم تجديد كود الجافا سكربت وارسال request جديد للسيرفر المختص .. وبالتالي الحصول على session-id جديد .. ولكن يمكن وجود حل من خلال بدء السيشن من الجافا سكربت ومن ثم ارسالها مع ال request او البيانات ..

    وليكن كالتالي
    كود:

    http://srv3.statistics.com/get.php?u......&sessionid=.... ....


    بعد التأكد اذا كانت هذا الطلب زيارة hit او زائر حقيقي visit يتم اضافة row جديد للداتا بيز فيه معلومات الزيارة والتي ستكون مثلا
    id الموقع المشترك - رابط الصفحة - ip - resoltuion - الوقت - زائر حقيقي ام لا - واي بيانات اخرى يتم جلبها مثلا ..

    hint : يمكن التوفير في حقل ال IP لأن عدد الزيارات من كل زائر محتمل ان تكون مرتفعة فعلى الاقل سيتصفح الزائر في موقع 3 صفحات .. وبالتالي 3 rows في الداتا بيز ممكن يعني ان حقل ال IP ( واحتمال اية حقول مشابهة ) ان تكون مكررة .. وبالتالي يمكن انشاء جدول مستقل للزوار وجدول للزيارات .. وكذلك يمكن تحول ال ip address إلى رقم من نوع long من خلال خوارزمية لا اتذكر اسمها .. ولكنها متوفرة في ال php من خلال الفنكشن ip2long و long2ip
    كل هذا لا حاجة له علي الإطلاق أخي فهو عبئ زائد مع كل زائر يدخل لفحص هل هو زائر ام زيارة متكررة

    ادخل فقط معلوماته لقاعدة البيانات بدون أية عمليات نهائي
    مع التوقيت

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

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

    مثلاً انت ستسجل دخول لمليون زائر تصفحوا بمعدل 50 مليون صفحة مستعرضة
    لو زودت عملية واحدة فأنت أزدت علي السيرفر حملها 50 مليون مرة

    لهذا أبتعد تماماً عن أية فلسفة مع أخذ بيانات العضو

    وكثف فلسفتك كلها في وقت الحساب للبيانات فهي الشغل كله والعبقرية كلها في التعامل مع هذه البيانات

    أشوف أفضل سياسة للتعامل مع الوضع كما وضحت

    - عند تسجيل موقع لدينا في موقع الإحصائيات نولد له كود عشوائي

    مثلاً لنفترض ان الملف الذي يقوم بأخذ بيانات من يفتحه ويدخلها لقاعدة البيانات إسمه
    prepare.php
    لو لدينا 3 سيرفرات سيكون كالتالي

    srv1.example.com/prepare.php
    srv2.example.com/prepare.php
    srv3.example.com/prepare.php

    الكود المولد بالجافا سكربت يستخدم هذا الملف الذي بدوره عندما يناديه شخص يأخذ بياناته ويدخلها قاعدة البيانات

    نعطيه رابط عشوائي وليكن
    srv2.example.com/prepare.php

    الأن هذا الموقع بشكل دائم ستتم إحصاء زواره علي السيرفر رقم 2

    كل زائر سيدخل موقعه يتم قراءة بياناته وبيانات الموقع الحالي وصفحته الحالية والصفحة التي قدم منها ثم كويري واحدة فقط
    insert لتدخل البيان في قاعدة البيانات

    كل المواقع ستكون البيانات فيها في جدول واحد فقط في قاعدة البيانات
    وما يميز الداتا لكل موقع هي الكود السري لكل موقع ففي تلك الكويري التي أدخلناها أدخلنا معها الكود السري لهذا الموقع وبالتالي علمنا اين هذا الزائر بالضبط

    هناك سيرفر بعيد كما أسمينا سيرفر الإحصاء سيقوم كل يوم في وقت محدد بالإتصال علي السيرفر الأول من خلال API ويطلب منه من ذا الجدول أول 100 ألف حقل
    ويأخذهم ويخزنهم لديه أولاً لتكون مرجع كما بينت لو أخطأ في الحسبة فيما بعد ثم يعالجهم ثم يخزنهم مرة أخري في جدول أخر خاص بالبيانات النهائية
    يطلب 100 الف أخري ويعالجها ويخزنها إلخ

    حتي ينتهي يأخذ البيانات 100 ألف ب 100 ألف مرة أخري ولكن هذه المرة من الجدول الداخلي المعالج حتي يقلص الحقول لأبسط عدد ممكن بحذق التكرارات ( هذه العملية شبيهة بعمل أناليزس لقواعد البيانات فهي تدخل في عدة مراحل متتالية تسمي ال normalization كل مرحلة نحذف معها نوع معين من التكررارات حتي نوفر أفضل نظام لتخزين الداتا في قواعد البيانات )

    فالزائر يحسب مرة واحدة كزائر جديد
    وعدد مرات الكويري لموقع ما هي عدد مرات الصفحات المستعرضة للموقع
    وعدد مرات الصفحات المستعرضة لكل زائر هي مجموع الكويري لل ip له إلخ

    كلها تعامل مع مصفوفات بدوال المصفوفات العادية

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

    هذا أفضل سيناري للأمر وهو تركيز الجهد كله والحمل كله علي وقت الحساب وليس نهائياً علي وقت الإحصاء للزوار

    بالطبع في صفحة prepare.php أرفض فيها حساب الزائر لو كانت الصفحة الحالية له frame
    او لو كان الموقع الموجود فيه الكود حالياً ليس الموقع صاحب الرقم التعريفي

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





    __________________
    السيف أصدق أنباء من الكتب

  6. #21
    عضو نشيط
    تاريخ التسجيل
    Feb 2008
    المشاركات
    281


    السلام عليكم ورحمة الله وبركاتة

    موضوع أكثر من رائع وأنا أستفد من الأفكار الى تطرح

    أخى المجروح سابقآ مبروك مبروك على نقل العضوية , أرجو المشاركة فى هذا الموضوع http://www.swalif.net/softs/swalif45/softs264276/






  7. #22
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    44


    موضوع قيم .. ومهمل من قبل كثير من السكربتات .. بغض النظر عن عملية حساب الإحصائيات مثل رتب ..

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

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

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

    شكرا لك على الموضوع ..






  8. #23
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    477


    تحليلك رائع ، أهم شيء للمواقع الضخمه هي تحليل فكرتها و تخطيطها قبل تنفيذها ، فكما أنت قلت الفكره بشكل عام سهله ، لكن الاختلاف في تنفيذها و تحليلها

    بالتوفيق ،





    __________________
    أحمد عبد الفتاح
    www.servmix.com
    لمراسلتي : admin@servmix.com






ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض