الحوسبة الموزعة هي مجال من مجالات هندسة الحاسبات، يدرس ما يسمى بالأنظمة الموزعة distributed system. تتألف الأنظمة الموزعة من مجموعة من أجهزة الحواسيب التي تتصل مع بعضها البعض من خلال شبكة موصلة فيما بينها. تتفاعل الحواسيب فيما بينها لتحقيق هدف مشترك. تسمى برامج الحاسوب التي تعمل على الأنظمة الموزعة برامج موزعة.
في الحوسبة الموزعة، يتم تقسيم المشكلة إلى مشاكل صغيرة، ثم يتم توزيعها على الحواسيب ليتم حل هذه المشكلة.
الفكرة من وراء الحوسبة الموزعة
غالباً ما لا نستعمل كل طاقة المعالج المتاحة لنا. نقوم في الأحوال الطبيعية ياستعمال عدد معين من البرامج التي تستدعي قسم معين من طاقة المعالج لدينا ويبقى قسم كبير غير مستخدم. الفكرة من وراء الحوسبة الموزعة هي استعمال هذه الطاقة المتاحة بطريقة ما. ببساطة يتم ربط عدد معين من الكمبيوترات على شكل شبكة بحيث يحتاج الامر لوجود برنامج معين على كل جهاز ضمن هذه الشبكة ويتم توزيع بعض المهام على الأجهزة التي لا يتم استخدام طاقاتها من قبل مستخدمها الرئيسي. تقوم معالجات هذه الأجهزة بدورها بمعالجة الوظائف المرسلة لها عبر هذه الشبكة غالباً من دون ملاحظة هذا العمل الإضافي من قبل مستخدم الجهاز الرئيسي.
تتميز الأنظمة الموزعة بالعديد من المميزات نذكر منها:
لا وجود لنبضات ساعة مشتركة بين الأجهزة، أي كل جهاز له نبضات الساعة مستقلة عن الأجهزة الأخرى.
لا يوجد ذاكرة مشتركة، وكما قلنا يتم تبادل المعلومات عن طريق تمرير الرسائل.
القدرة على تحمل الفشل tolerate failures.
القدرة على التوسع في بنية المنظومة (الشبكة، عدد الأجهزة).
كل جهاز أو عقدة يرى جزء بسيط من المنظومة، ويتعامل مع جزء محدد من الدخل (نوع محدد من المعطيات).
اساسيات للحصول على نظام موزع مثالي : ◦Concurrency of components: يعني ان وجود جهاز على الشبكة لا يؤثر في الأجهزة الآخرى بمعنى يمكن ان اقوم بالعمل على جهازي بينما شخص آخر في نفس الوقت يعمل على جهازه .
◦ No global clock : لا يكون هناك اوقات معينه للدخول على النظام بمعنى يكون مفتوح تماماً دون اي قيود في الوقت ◦ Independent failures: عطل في جهاز واحد لا يؤثر على الاجهزة الآخرى اي يكون الوضع تحت السيطرة
الصعوبات و التحديات التي نواجهها للحصول على نظام موزع :
1/ التغاير ( hetrogeneity ) : اي اختلاف نوع الأجهزة و البرامج و الأنظمة و نوع الشبكة ولحل ذلك نستخدم بعض البروتوكولات ( protocols ), أو استخدام البرمجيات الوسيطة ( middleware ) وهي مجموعة من السوفت وير توضع في الطبقات الداخلية للشبكة, أو استخدام الجهاز الظاهري ( virtual machine ) جعل ملف يفتح على جهاز آخر وهذا الجهاز لا يمتلك البرنامج الرئيسي .
2/ الإنفتاحية ( openess ) : عدد الأجهزة غير محدود .