مقدمة
إن تطوير برامج سحابية (أي تصميم وتنفيذ أنظمة برمجية تستغل بنجاح قدرات الموارد الحاسوبية الموزعة على نطاق واسع) يطرح تحديات هائلة. وتنشأ الصعوبات من تعدد التفاعلات المنطقية الممكنة والتشابكات الزمنية بين العديد من مكونات البرمجيات والأجهزة. وقد يكون من الصعب إعادة إنتاج أخطاء البرنامج، وبسبب سلوك الأداء غير المحدد لبعض البرامج السحابية، يمكن أن يتجاوز تحليل سلوك النظام والتفكير فيه منطقياً القدرة البشرية وحدها.
ومع اكتساب الباحثين والممارسين تدريجياً فهماً أفضل لهذه المشكلة، فقد طوروا نماذج للبرمجة والحساب تخفف من التعقيد المتأصل في أنظمة السحابة. وهذه النماذج، التي تتجسد في أنظمة البرمجيات/الأجهزة، تقف بين المطور والموارد الحسابية الأساسية، توفر للمبرمج أنماط التصميم المنمطة، وطريقة أبسط نسبياً للتفكير في البرمجة الموزعة، وواجهة مرنة للتطبيقات والبيانات والموارد.
يعتمد الجيل الحالي من نماذج البرمجة السحابية على الأسلاف الكلاسيكية التي تدعم الاتصال بين العمليات على أساس الذاكرة المشتركة وتمرير الرسائل. وعلى الرغم من أن هذه الإصدارات السابقة توفر أدوات أساسية للتفاعل بين المهام الموزعة، فإنها تفتقر إلى القدرة على موازاة المهام وتوزيعها تلقائياً والاستعادة من الأخطاء. وتوفر هذه الإصدارات اللاحقة لأسلافها القديمة، بما في ذلك Hadoop MapReduce، وPregel، وGraphLab، المزيد من التطور، وعلى وجه التحديد معالجة متطلبات البرمجة الموزعة والحوسبة في بيئات السحابة. ومن بين المزايا الأخرى، فإن هذه النماذج الحالية تخلص المطورين من المشاكل المرتبطة بالعديد من الجوانب الصعبة للبرمجة الموزعة وتسمح للمبرمجين بالتركيز على أجزاء متتابعة من خوارزميات التطبيق الخاصة بهم.
لأنه تكرار لتصميم باباج 1837 لأول كمبيوتر قابل للبرمجة، نحن نميز نماذج البرمجة السحابية في وقتنا الحاضر من خلال الإشارة إليها باسم محركات التحليلات الموزعة. تدرس هذه الوحدة المفاهيم والتحديات التي تواجه حوسبة السحابة وتقدم أمثلة حالية لمحركات التحليل لتطوير تطبيقات السحابة.
الأهداف التعليمية
خلال هذه الوحدة النمطية، سوف تتمكن مما يلي:
- تصنيف البرامج على أنها متسلسلة، ومتزامنة، ومتوازية، وموزعة
- الإشارة إلى سبب أن المبرمجين عادةً ما يميلون إلى موازاة البرامج المتسلسلة
- توضيح سبب أهمية البرامج السحابية لحل مشاكل الحوسبة المعقدة
- تعريف الأنظمة الموزعة، والإشارة إلى العلاقة بين الأنظمة الموزعة والسحب
- تعريف نماذج البرمجة الموزعة
- الإشارة إلى سبب الحاجة إلى المزامنة في أنظمة الذاكرة المشتركة
- وصف كيف يمكن اتصال المهام باستخدام نموذج البرمجة تمرير الرسائل
- تحديد الاختلاف بين البرامج المتزامنة وغير المتزامنة
- شرح نموذج المتوازي المتزامن المجمع (BSP)
- تحديد الاختلاف بين توازي البيانات وتوازي الرسم البياني
- التمييز بين هذه البرامج الموزعة: أحادي البرنامج متعدد البيانات (SPMD)؛ ومتعدد البرامج متعدد البيانات (MPMD)
- مناقشة التقنيتين الرئيسيتين اللتين يمكن دمجهما في البرامج الموزعة وذلك لمعالجة ازدحام الاتصالات في السحابة
- تحديد السحب المتجانسة وغير المتجانسة، وتحديد الأسباب الرئيسية لعدم التجانس في السحابة
- تحديد الوقت والسبب الذي تلزم عنده المزامنة في السحابة
- تحديد التقنية الرئيسية التي يمكن استخدامها للتسامح مع الأخطاء في السحب
- تحديد الاختلاف بين جدولة المهام وجدولة الوظائف
المتطلبات الأساسية
- فهم حوسبة السحابة، بما في ذلك نماذج الخدمة السحابة ومزودو السحابة الشائعون
- معرفة التقنيات التي تمكّن حوسبة السحابة
- فهم كيفية دفع موفري خدمة السحابة للسحابة وكيفية دفع رسومها
- معرفة ما هي مراكز البيانات وسبب وجودها.
- معرفة كيفية إعداد مراكز البيانات، وتشغيلها، وتوفيرها
- فهم كيفية توفير موارد السحابة وقياسها
- كن على دراية بمفهوم الظاهرية
- معرفة الأنواع المختلفة للمحاكاة الظاهرية
- فهم ظاهرية وحدة المعالجة المركزية
- فهم ظاهرية الذاكرة
- فهم الوضع الظاهري لوحدة الإدخال والإخراج
- معرفة عن أنواع البيانات المختلفة وكيفية تخزينها
- كن على دراية بأنظمة الملفات الموزعة وكيفية عملها
- الإلمام بقواعد بيانات لغة NoSQL البرمجية وتخزين الكائن، وكيفية عملها