بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اولا : هذه الدروس ملك للفريق العربى للبرمجة ولايجوز نقلها الى اى مكان اخر بدون الاشارة للمصدر
متى نستخدم اساليب معمارية النظم
"عند القيام بعمل مشاريع جديدة كبيرة الحجم او معقدة مع مراعاة وجود نسبة كبيرة للمغامرة نتيجة التغيرات التى تحدث اثناء الفترة الطويلة المستغرقة فى بناء النظام "
المجموعة الاولى من سلسلة دروس معمارية النظم
تشمل الاساليب التالية :-
· النواة قبل كل شىء Kernel
· الطريق دائما ذهاب وعودة Two-Way
· لايوجد شىء ثابت Dynamic World
· العالم كله افتراضى Virtual World
· كل شىء وارد Everything may occur
· القوانين تمثل العالم The Rules Presents the world
الدرس رقم واحد فى سلسلة الدروس المبسطة لمعمارية النظم
أولا : النواة قبل كل شىء Kernel
قبل ان تفكر فى العمل عليك ان تفكر بماذا تعمل بمعنى ماالذى تستخدمه لانجاز العمل
تخيل انك فقدت ماتستخدمه لانجاز اعمالك بالتاكيد لابد من البحث عن بديل ولكن ذلك ليس حلا للمصيبة حيث انك تواجه انهيار ماقمت بعمله فى الفترة الماضية.
تخيل انك تقوم بالبرمجة باستخدام لغة ما والان تغير العالم واصبحت هناك لغات احدث ولكنك لديك مشاريع عديدة بهذه اللغة فهل حسبت حساب هذا اليوم ؟ اليوم الذى تغادر فيه اللغة التى تستخدمها لانجاز العمل او تغادر نظام التشغيل – او تغادر نوعية الحاسب الذى تستخدمه او المكتبات التى تعتمد عليها.
ماذا لو كان لديك مشروع قمت بعمله خلال (5 سنوات)
هل تعيد بناء المشروع مرة اخرى وتمضى خمس سنوات اخرى لبذل المجهود مرة ثانية ؟
تخيل انك مبرمج بلغة متطورة جدا ولكنها تعمل فى نظام تشغيل واحد
وقمت بعمل مشروع استغرق منك عامين كاملين وفوجئت ان العملاء يطلبون نسخة من نفس المشروع تعمل على جميع انظمة التشغيل ؟
طبعا ستفكر فى الحل وستبحث عنه لانك واجهت المشكلة فى واقعك
ولكن العقل يقول الوقاية خير من العلاج ولهذا فى معمارية النظم يتم مراعاة ذلك
(القاعدة رقم 1 فى معمارية النظم)
"النواة قبل كل شىء"
"النواة هى نقطة البداية التى يبدا منها النظام وهى تمثيل يكون ظاهرا لجميع اجزاء نظامك الذى تقوم به على انه هو العالم كله"
عندما تقوم ببناء النظام فان البداية تكون النواة
والتى هى عبارة عن الرابط بين مشروعك وبين البيئة المحيطة
ثم يتم بناء المشروع بحيث ان كل شىء يتم يعود الى النواة التى هى
مسئولة عن التخاطب مع البيئة
بمعنى انك لاتتعامل مع تعليمات لغة البرمجة مباشرة لبناء النظام
وانما تقوم بعمل رابط بينك وبين لغة البرمجة ثم تستخدم هذا الرابط
وطبيعة النواة قد تكون عبارة عن مكتبات Libraries وقد تكون برامج واحيانا لغات برمجة صغيرة الحجم لمهام خاصة.
ونظرا لان بناء النواة شىء مكلف فان تحديد مهام النواة مهم جدا
فليس كل المشاريع تستلزم بناء نواة كاملة تغطى كل متطلبات النظام
حيث يمكن ان تكون النواة تغطى الاجزاء التى يستعملها النظام فى البيئة وقد يحدث فيها تغير فى المستقبل
والنواة تحميك من انهيار كل شىء فى لحظة نتيجة حدوث تغيرات مفاجئة فى البيئة
كما ان النواة تعتبر حلا استراتيجيا عند الحيرة بين الاختيارات المختلفة
مثال:-
عند قيامى بعمل بيئة رسومية متكاملة كانت البداية تشمل مكتبة جرافك تقوم بالرسم على الشاشة فقط بالاضافة الى استقبال المدخلات من لوحة المفاتيح والفارة وكانت البيئة المتوفرة هى
1 – نظام تشغيل دوس DOS
2 - لغة البرمجة القديمة كليبر CA-Clipper
3 - مكتبة لدعم برمجة الكائنات Class(Y)
4 - اربعة مكتبات شهيرة ومختلفة للجرافك
هما FGLib و LightLib و DGE و FAST
والجزء الرابع الخاص بتوفر اربعة مكتبات شهيرة ومختلفة للجرافك كان هو المشكلة
لان عملية تحديد ماهى المكتبة الافضل امر ليس من السهل الجزم به
فهمناك ملامج المكتبة وماتوفره من امكانيات وايضا السرعة وكذلك الاستقرار الذى يستلزم التطبيق فى مشاريع كبيرة
وكانت النواة حلا لانها تمثل هذه البيئة وتتعامل معها ويتم بناء باقى اجزاء النظام من خلال التعامل مع النواة.
ولهذا كان هناك اصدارات مختلفة من النواة بحيث ان كل اصدار يعتمد على مكتبة جرافك.
وتم العمل خمس سنوات بحيث تتم جميع عمليات الاختبار على الاصدارات الاربعة من النواة التى تظهر للنظام بشكل واحد.
واثناء العمل فى تطوير النظام
خرجت المكتبتين LightLib و FAST من التصفيات مبكرا ولم تكن الملامح المتاحة بهما كافية لبناء كامل النظام.
وبعد اكتمال البيئة الرسومية تم التاكد ان النواة التى تعتمد على المكتبة FGLib هى الافضل من حيث الاستقرار.
بينما المكتبة DGE هى الافضل من حيث السرعة
وتم اختيار الاستقرار على حساب السرعة (لا يعنى هذا ان النظام بطىء)
ومن هنا نجد ان الاعتماد على النواة قلل الخطورة المترتبة على تغير البيئة والغى الحاجة الى اعادة بناء النظام
ملخص الدرس الاول
النواة تحمى استثمارك فى بناء النظام وتختلف النواة فى مستوى التعقيد حسب العامل الذى تراعى تغيره فى البيئة هل هو
1- العتاد Hardware
2- نظام التشغيل Operating System
3- لغة البرمجة Programming Language
4- المكتبات Libraries
من النقطة واحد الى اربعة تزيد نسبة حدوث التغير المفاجىء
بينما تقل التكلفة الناتجة عن عمل حساب التغير المفاجىء
واخيرا اشهر نواة فى معمارية النظم هى نواة نظام التشغيل الخاص بالحاسب وهى تراعى التغير فى العتاد Hardware
والله الموفق