Distributed Computation And Systems

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Distributed Computation And Systems as PDF for free.

More details

  • Words: 1,554
  • Pages: 5
‫مقدمة‬ ‫سأحاول فى هذه الكتابة توضيح تأثير أمكانية توصيل الحواسيب اللية ببعضها البعض و قدرتها على‬ ‫أستبدال المعلومات فيما بينها )شبكات الحاسب اللى( على طريقة التفكير فى تصميم البرامج و أمكانية‬ ‫تنفيذ البرامج التى كان من الصعب الحصول على قدرة معالجة تستطيع تنفيذها‪.‬‬ ‫مع بداية الثمانينات بدأ التقدم فى أتجاهين بالنسبة للحاسب ‪ ,‬و هما تصنيع المعالجات الميكرو و التى‬ ‫أستطاعت التطور فى فترة زمنية قصيرة نسبيا ً أستنادا ً الى قانون موور ‪ ,‬و ذلك أدى الى تطور سريع لم‬ ‫تشهده أى صناعة أخرى حيث أستطعنا التطوير فى الصناعة حتى وصلنا الى تصنيع الجهزة التى كانت‬ ‫تكلف مليين الدولرات سابقا ً و لكنها الن فى حدود ‪ 1000‬دولر‪ ,‬بينما التطوير الخر كان فى أتجاه حعل‬ ‫هذه الجهزة قادرة على التصال ببعضها فتم تطوير ال ‪ LAN‬لتسمح بالتصال ما بين مئات الحواسيب و‬ ‫بسرعات كبيرة جدًا‪.‬‬ ‫ساعدت الشبكات على أنتشار نوع من البرامج أو التطبيقات المعروفة بـ ‪ Distributed Computing‬و‬ ‫ال ‪.Distributed Systems‬‬

‫‪Distributed Computing‬‬ ‫الفكرة الساسية هنا تنطبق على جميع المجتمعات و الكائنات الحية كما تنطبق على الحواسب ‪ ,‬فكل‬ ‫مجتمع و فريق يتكاتف لحل مشاكل ل يستطيع الفرد حلها بمفرده‪ ,‬فيقوم المنظم بتحليل المشكلة و‬ ‫تقسيمها الى مشاكل أصغر و بذلك يسهل توزيعها على الفراد كمهمة‪ ,‬كل ً حسب مقدرته و بذلك أستفدنا‬ ‫بجميع القدرات المتاحة لحل المشكلة فى أقصر وقت ممكن‪ ,‬أقصر مما يمكن لفرد واحد مهما كانت‬ ‫قدرته على حل المشكلة‪.‬‬ ‫هذه هى نفس الفكرة فى النظم و البرامج التى تقوم بتوزيع المهام التى تقوم بها على عدة أجهزة لتقوم‬ ‫بتنفيذها حسب الجزء المطلوب من كل منها‪.‬‬ ‫‪:Distributed Algorithm‬‬ ‫النوع الول هو البرنامج الذى يعمل على جهاز واحد و لكن يوجد به أكثر من معالج يتشاركون نفس‬ ‫الذاكرة و هذا النوع يعرف أكثر بال ‪.Parallel Algorithms‬‬ ‫النوع الثانى‪:‬‬ ‫هو مجموعة من العمليات الغير متزامنة ) غير متتابعة( و التى تتصل ببعضها عن طريق تبادل الرسائل فيما‬ ‫بينها عبر وسائل التصال سواء كانت سلكية أو لسلكية‪ ,‬و يتم أفتراض أن كل ً من هذه العمليات تعمل‬ ‫بمفردها على معالج منفصل عن الذى تعمل عليه المعالجات الخرى و أيضا ً لها الذاكرة المنفصلة عن‬ ‫الباقيين و بذلك فأن وسيلة التصال الوحيدة هى هذه الرسائل عبر الشبكة المشتركة‪ ,‬هذه الطريقة‬

‫‪2‬‬

‫‪Computer Networks Design and‬‬ ‫‪Programming report‬‬

‫مشابهة لطريقة أتصال العمليات داخل الجهاز الواحد عن طريق ال ‪IPC (Inter-process‬‬ ‫‪.(Communication‬‬ ‫الن نفترض وجود قناة أتصال بين عمليتان "أ" و "ب" ‪ ,‬و أرسلت "أ" رسالة الى "ب" فهناك تأخر زمنى ل‬ ‫يمكن أستنتاجه أو تحديده مسبقا ً و أيضا ً ليس هناك ضمان بأن "ب" قد قامت بإستلم هذه الرسالة سواء‬ ‫كان ذلك لعيب فى الشبكة أو لن "ب" ليس موجودا ً فى الصل و لذلك فى هذه النظمة تكون العمليات‬ ‫غير متزامنة فل تنتظر "أ" "ب" للنتهاء من العملية و الرد عليها و لكن تباشر "أ" القيام بمهام أخرى‬ ‫كتوزيع أوامر لعمليات أخرى غير "ب" أو حتى أذا لم يوجد المزيد من المهام فانها أيضا ً ل تنتظر "ب" و‬ ‫لكن تقفل قناة التصال و تنتظر فقد تريد عمليات أخر التصال بها‪.‬‬ ‫هذا الساس فى تنفيذ البرنامج يعد تقييد له عند تصمييمه ‪ ,‬فتصمييم ألجوريثم عادى لعملية يختلف فى‬ ‫تكوينه عن تصميم نفس اللجوريثم ليعمل على نظام موزع كهذا و قد يصل المر الى تغيير فكرة العمل‬ ‫الصلية للستفادة من كثرة الموارد المتاحة فى الشبكة و التى لم يكن من الممكن تطبيقه عندما كان‬ ‫اللجوريثم يعمل على جهاز واحد و ربما معالج واحد‪.‬‬ ‫نقطة فاصلة فى هنا وهى أنه ليس أي برنامج يتم تطبيقه كألجوريثم موزع يجب أن يكون أسرع من‬ ‫البرنامج الذى يعمل على على معالج واحد‪ ,‬فكما زكرنا أنه يوجد عوامل قد تؤدي الى تباطأ العمليات‬ ‫بشكل غير محسوب اذا كانت الشبكة بها عيوب أو البعد المكانى للجهزة التى تنفذ العمليات‪ ,‬و لهذا ال‬ ‫‪ Distributed Computing‬أكثر حيوية فى نطاق العمليات التى تعمل على مجموعة بيانات قد تصل الى‬ ‫العديد من الجيجابايت فى الثانية و هذا قد يبدو مستحيل أن يتحمله جهاز واحد‪.‬‬

‫و لذلك نتعرف على‬

‫‪Grid Computing‬‬ ‫و هو صياغة لل ‪ Distributed Computing‬و خصائصه‪:‬‬ ‫•مجموعة من الجهزة المنفصلة ك ‪ hardware‬مرتبطة ببعضها بشبكة كبيرة‪.‬‬ ‫•يعمل على تنفيذ مهام كبيرة و معقدة تستخدم فى حسابات علمية أو رياضية ‪.‬‬ ‫•قد يكون حجمها صغير فى نطاق شركة أو كبيرة على نطاق العديد من الشركات و الشبكات‬ ‫المتصلة ببعضها‪.‬‬ ‫•المميز لهذا النوع هو أنه ل يوجد شروط على الجهزة المشتركة سواء بعدها و تناثرها و عدم‬ ‫تشابه امكانيات هذه الجهزة من حيث ال ‪ hardware‬أو ال ‪ , software‬و بذلك يختلف عن ال‬ ‫‪ Cluster Computing‬و الذى يتطلب تواجد الجهزة قريبة من بعضها و متصلة بشبكة ‪LAN‬‬ ‫سريعة‪.‬‬ ‫•يتطلب ال ‪ Grid‬الكثير من الدوات ‪ ,‬البرامج و الدارة‪.‬‬ ‫من أشهر التطبيقات لهاذا النوع هو ما تقدمه مؤسسات البحث علمى من امكانية تسمح للمتطوعين بأن‬ ‫يتم أستخدام أجهزتهم للمشاركة فى ال ‪ Grid‬التى تقوم بتحليل البيانات العلمية التى تعمل المؤسسة‬ ‫عليها فيقوم المتطوع بتنصيب البرنامج الخاص و الذى يحتوى على العملية التى تقوم بتحليل بيانات التى‬ ‫يأخذها من خادم على النترنت و بعد تحليلها يرجع الناتج الى الخادم و هنا يمكن أن يستغرق جهاز المتطوع‬ ‫الكثير من الوقت قد يصل الى أيام لكى يرجع الناتج‪ ,‬و بهذا يتم تكوين ‪ ,Grid‬شبكة أتصالها هى النترنت و‬ ‫قد يصل الجهزة المشتركة فيها الى مليين المتطوعين ‪.‬‬

‫‪3‬‬

‫‪Computer Networks Design and‬‬ ‫‪Programming report‬‬

‫مثال ‪ Bionic :‬و هو اختصار ‪Berkeley Open Infrastructure for Network Computing‬‬

‫و هو منصة برمجية تساعد الباحثين و المؤسسات العلمبة على توزيع كم هائل من البيانات المراد تحليلها‬ ‫على الحواسب الشخصية للمتطوعين للبرنامج حول العالم‪ ,‬و بذلك تكون ‪ Super Computer‬بدون تكلفة‬ ‫تذكر و يوجد للبرنامج أكثر من نصف مليون متطوع نشط و يقومون بعمليات تصل الى ‪ 2peta‬عملية فى‬ ‫الثانية و ال ‪ Peta‬هى ‪ 1015‬لتتفوق على أسرع حاسب فى العالم و هو ‪.IBM Roadrunner‬‬ ‫من المؤسسات التى تستفيد من هذه الخدمة ‪ SETI@HOME :‬ل بل أن ‪ BIONIC‬صمم لهذه الخدمة‬ ‫فقط فى البداية ثم بدأ يساعد المؤسسات الخرى بعدها‪ ,‬و ‪ SETI‬تهدف الى تحليل الشارات التى تلتقط‬ ‫من الفضاء الخارجى للتعرف على وجود كائنات حية فضائية‪.‬‬ ‫اختصار ‪Search for Extra-Terrestrial Intelligence :‬‬ ‫‪http://setiathome.berkeley.edu/‬‬

‫‪Distributed Systems‬‬ ‫هو مفهوم مصاحب لل ‪ Distributed Computing‬و المقصود هو تصميم شبكة من الجهزة و ربطها مع‬ ‫بعض بأستخدام نظام برمجى يجعل مستخدم هذا النظام يعتقد انه يعمل على حاسب واحد و ليس عدة‬ ‫حواسب مرتبطة‪ ,‬و هذا هو أهم ما يميز هذه النظمة و هو إبعاد المستخدم عن التصميم الداخلى و تعقيد‬ ‫التعامل مع أكثر من حاسب و كيفية التصال بينهم و توزيع المهام ‪...‬‬ ‫أهداف ‪ /‬خواص النظمة الموزعة‪:‬‬

‫‪4‬‬

‫‪Computer Networks Design and‬‬ ‫‪Programming report‬‬ ‫•الهذف الساسى هو توفير و تسهيل وصول المستخدمين و التطبيقات الى الموارد البعيدة و التى‬ ‫قد تكون على جهاز أخر فى شبكة ما بطريقة فعالة و سهلة بدون تعقيد‪ .‬هذه الموارد قد تكون أى‬ ‫شئ ‪ :‬وسيط تخزين ‪ ,‬معالج ‪ ,‬طابعة ‪...‬‬ ‫•يجب على النظام إخفاء عن المستخدم حقيقة أن المهام و الموارد التى يقوم بها و يستخدمها‬ ‫موزعة فعليا ً على أكثر من جهاز‪ ,‬و هذا يتضمن ‪:‬‬ ‫‪‬إخفاء المكان الحقيقي للمورد ‪.‬‬ ‫‪‬عدم تأثر المستخدم بنقل المورد من مكان لخر‪.‬‬ ‫‪‬إخفاء إذا ما كان المورد يتم استخدامه من قبل مستخدمين أخرين أم ل‪.‬‬ ‫‪‬إخفاء ما يمكن أن يحدث إذا حدث خلل فى مورد ما )مثل فقدان بعض البيانات( و‬ ‫كذلك العمل على معالجة المشكلة بدون معرفة المستخدم‪.‬‬ ‫‪‬إذا كانت الجهزة المشاركة مختلفة فى تكوينها ‪ ,‬فمثل ً قد يعمل بعضها بنظام‬ ‫تشغيل ويندوز و الخر بنظام لينكس ‪ ,‬فيجب أيضا ً "إخفاء" هذه الفروق و خاصة‬ ‫فى طريقة تخزين البيانات و عند الحصول عليها‪.‬‬ ‫•تقديم صيغ معيارية و قواعد للتعامل مع هذا النظام‪ ,‬و التى يستعملها المستخدمين له لكى يقوموا‬ ‫بتنفيذ تطبيقاتهم‪.‬‬ ‫•‪ :Scalability‬و هى من أهم التحديات التى تواجه مبرمجين و مصممى النظم‪ ,‬و هى القدرة على‬ ‫جعل النظام قابل لتحمل المزيد من المستخدمين و إضافة المزيد من الجهزة المكونة و زيادة‬ ‫البعد بين أمكان المستخدمين عن الموارد و كل ذلك مع عدم تغييرات أساسية فى النظام المبدئى‬ ‫و عدم تغيير كيفية تعامل المستخدميين معه )مثل القوانين و الصيغ فى نقطة ‪ (3‬و سهولة إدارة‬ ‫النظام مع كبره‪.‬‬

‫المصطلح ‪ Virtualization‬يستخدم للدللة على تجميع موارد و إخفاء حقيقة وجود الكثير منها و يجعل‬ ‫المستخدم يعتقد أنه يتعامل مع مورد واحد‪ ,‬مثل ‪Storage virtualization ,Network virtualization ,‬‬ ‫‪ ,Virtual private network‬و ‪.Database virtualization‬‬

‫‪Cloud Computing‬‬ ‫و هو ‪ Architecture‬تعتمد على ال ‪ Distributed Systems‬حيث تقدم الموارد و الخدمات التى توجد‬ ‫داخل النظام الى المستخدمين فى مقابل نظير مادى‪ ,‬فكل مورد تستطيع أن تدفع فى مقابله‪ ,‬تستطيع أن‬ ‫تدفع مقابل مساحة تخزينية محددة تناسب تطبيقك و أيضا ً تريد ‪ Bandwidth‬محدد و خدمات و برامج‬ ‫معينة فيمكنك أن تطلب خادم قواعد بيانات ‪ Oracle‬و ‪ SQL‬و كل هذا مقابل ما ستدفعه لكل خدمة من‬ ‫هذه‪.‬‬

‫و عندها تبدأ بوضع برنامجك ‪ /‬تطبيقك على ال "‪ "Cloud‬حيث هناك تنطبق جميع خصائص ال‬ ‫‪ Distributed System‬فيضمن لك عدم فقدان بياناتك و عدم وجود ‪ Downtime‬لخادم و ذلك لنه ل‬ ‫ً‬ ‫يوجد خادم محدد من الساس مما يجعل برنامجك موثوق فيه و أدائه‪ .‬و بجانب كل هذا يمكنك مستقبل و‬ ‫فى أى وقت زيادة هذه الخادمات بدون أى مشاكل‪ ,‬مثل زيادة ال ‪ Bandwidth‬الخاص بك أذا وجدت أنه‬ ‫لم يعد كافى لمتطلباتك الحالية‪.‬‬

‫‪5‬‬

‫‪Computer Networks Design and‬‬ ‫‪Programming report‬‬

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

‫‪Google App engine‬‬

‫‪Amazon Elastic Compute Cloud‬‬

Related Documents